From c82cc510e18fbbae4cdc077bbe6592d52ca00f5c Mon Sep 17 00:00:00 2001 From: kirjavascript Date: Thu, 10 Feb 2022 21:25:57 +0000 Subject: [PATCH 01/94] one at a time --- irc/events.js | 32 +++++++++++++++++++++++++------- 1 file changed, 25 insertions(+), 7 deletions(-) diff --git a/irc/events.js b/irc/events.js index 6bd2560..5fd7430 100644 --- a/irc/events.js +++ b/irc/events.js @@ -109,14 +109,14 @@ function createEventManager(node) { await loadEvents(ref.vm); } + let runningEvents = false; + function emit(name, eventData) { // eventData: { target, server, message? } - if ( - ref.vm && - ref.runEvents && - !ref.vm.isolate.isDisposed && - node.getTargetCfg(eventData.target, 'enableEvents', true) - ) { + const queue = []; + + function run() { + runningEvents = true; ref.vm .setConfig({ print: { @@ -128,7 +128,25 @@ function createEventManager(node) { }, }) .then(() => ref.runEvents.run(ref.vm.context)) - .catch(console.error); + .catch(console.error) + .finally(() => { + runningEvents = false; + if (queue.length) queue.pop()(); + }); + } + + if ( + ref.vm && + ref.runEvents && + !ref.vm.isolate.isDisposed && + node.getTargetCfg(eventData.target, 'enableEvents', true) + ) { + + if (runningEvents) { + queue.push(run) + } else { + run(); + } } } From 11b4e4f0811cfd255f8a488b3e6feb42f5751409 Mon Sep 17 00:00:00 2001 From: kirjavascript Date: Thu, 10 Feb 2022 23:11:22 +0100 Subject: [PATCH 02/94] event stuff --- commands/event-b306be3528b0.json | 2 +- commands/eventfetchURL-798176d44de4.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/commands/event-b306be3528b0.json b/commands/event-b306be3528b0.json index b665465..bf19170 100644 --- a/commands/event-b306be3528b0.json +++ b/commands/event-b306be3528b0.json @@ -3,5 +3,5 @@ "locked": true, "starred": true, "name": "event", - "command": "// Auth example;\n//\n// curl -X POST --data-binary '{\"passcode\":\"demo\"}' -H \"Content-Type: application/json\" http://localhost:8888/api/webhook/test\n\n// const tripcode = require('tripcode');\n\n// IRC.listen('webhook.test', event => {\n// const authed = tripcode(event.body.passcode) === IRC.queryConfig('testCode');\n// print(authed ? 'pass' : 'fail');\n// });\n\nIRC.listen('message', event => {\n if (event.message.text.includes(IRC.nick + ':')) {\n print('TODO: give the bot a brain');\n }\n});\n\nconst faces = [ '(◕ᴗ◕✿)', '(◕◡◕✿)', '(◔◡◔✿)', '(。◕‿◕。✿)', '(◡‿◡✿)', '(◠‿◠✿)', '(◕ܫ◕✿)', '(◕▿◕✿)', '(◕ ワ ◕✿)' ];\nIRC.listen('message', ({ message: { from, text } }) => {\n if (from === 'cake^' && text.includes('❤')) {\n print(' '.repeat(text.indexOf('❤')) + ' ⟍' +faces[0|Math.random()*faces.length]);\n }\n});\n\nconst daily = () => 0 === (0|new Date/1000)%86400;\n\nIRC.listen('tick', ({ target }) => {\n if (target === '#eggchan' && daily()) {\n print('egg');\n }\n});" + "command": "// Auth example;\n//\n// curl -X POST --data-binary '{\"passcode\":\"demo\"}' -H \"Content-Type: application/json\" http://localhost:8888/api/webhook/test\n\n// const tripcode = require('tripcode');\n\n// IRC.listen('webhook.test', event => {\n// const authed = tripcode(event.body.passcode) === IRC.queryConfig('testCode');\n// print(authed ? 'pass' : 'fail');\n// });\n\nIRC.listen('message', event => {\n if (event.message.text.includes(IRC.nick + ':')) {\n print('TODO: give the bot a brain');\n }\n});\n\n\nconst faces = [ '(◕ᴗ◕✿)', '(◕◡◕✿)', '(◔◡◔✿)', '(。◕‿◕。✿)', '(◡‿◡✿)', '(◠‿◠✿)', '(◕ܫ◕✿)', '(◕▿◕✿)', '(◕ ワ ◕✿)' ];\nIRC.listen('message', ({ message: { from, text } }) => {\n if (from === 'cake^' && text.includes('❤')) {\n print(' '.repeat(text.indexOf('❤')) + ' ⟍' +faces[0|Math.random()*faces.length]);\n }\n});\n\nconst daily = () => 0 === (0|new Date/1000)%86400;\n\nIRC.listen('tick', ({ target }) => {\n if (target === '#eggchan' && daily()) {\n print('egg');\n }\n});" } \ No newline at end of file diff --git a/commands/eventfetchURL-798176d44de4.json b/commands/eventfetchURL-798176d44de4.json index e156685..48ebbef 100644 --- a/commands/eventfetchURL-798176d44de4.json +++ b/commands/eventfetchURL-798176d44de4.json @@ -3,5 +3,5 @@ "locked": true, "starred": true, "name": "event.fetchURL", - "command": "const { document, window } = new (jsdom().JSDOM)('');\nconst anchor = document.createElement('a');\nconst bytes = IRC.require('bytes');\n\nfunction setDOM(page) {\n document.open();\n document.write(page);\n document.close();\n};\n\nfunction domTitle() {\n const metaTitle = document.head.querySelector('meta[name=\"title\"]');\n return metaTitle ? metaTitle.content : document.title;\n}\n\nconst filterWords = /forbidden|not found|access denied|your browser|rick roll|never gonna give you up/i;\n\nfunction hasInfo(url, _title) {\n const title = _title.replace(/\\s+/g, ' ').trim();\n const isFresh = title.split(' ')\n .filter(word => (\n !(new RegExp(word.replace(/[^.a-zA-Z0-9\\u00c0-\\u017e]+/g, ''), 'i')).test(url)\n )).length >= 1;\n return isFresh && !filterWords.test(title);\n}\n\nIRC.listen('message', event => {\n if (!IRC.queryConfig('fetchURL', true)) return;\n const { text, from } = event.message;\n const urls = text.match(/(\\b(https?):\\/\\/[-A-Z0-9+&@#\\/%?=~_|!:,.;()]*[-A-Z0-9+&@#\\/%=~_|()])/ig);\n const fromSelf = from === IRC.nick;\n if (!urls || fromSelf || text.startsWith(IRC.trigger) || text.includes('##')) return;\n\n urls.forEach(url => {\n handleURL(url, global.print)\n .catch(print.error);\n });\n});\n\nasync function handleURL(url, print) {\n anchor.setAttribute('href', url);\n if (await customURL(url, print)) return;\n\n const res = await fetch(url, {\n headers: {\n 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',\n 'Accept-Language': 'en-GB,en;q=0.5',\n 'Content-Language': 'en-GB,en;q=0.5',\n 'User-Agent': /youtu\\.?be|google|reddit/.test(url) ? '' : 'Googlebot',\n },\n });\n\n const length = res.headers.get('content-length');\n\n if (length > 5.243e6) {\n const filename = anchor.pathname.split('/').pop();\n print.info(`{dc}${filename}{/} ${bytes(length)} {dgr}${res.headers.get('content-type')}{/}`);\n return;\n }\n\n const page = await res.text();\n setDOM(page);\n\n const title = domTitle();\n\n if (title.length < 400 && (IRC.queryConfig('fetchURLAll', false) || hasInfo(url, title))) {\n print.info(title);\n }\n\n}\n\nasync function customURL(url, print) {\n const { hostname, pathname } = anchor;\n if (hostname.includes('github.')) {\n if (pathname.split('/').length === 3) {\n // it's a repo url\n const {\n description,\n html_url,\n stargazers_count,\n language,\n license, // { name }\n } = await (\n await fetch(`https://api.github.com/repos${pathname}`)\n ).json();\n\n print(`{gr}Github{/} ${description} ${IRC.colors.nick(language, false)} {y}★{/} {bo}${stargazers_count}{/} {dgr}${license ? license.name : ''}{/}`);\n return true;\n }\n // TODO reddit\n // https://github.com/mendel5/alternative-front-ends\n } \n if (hostname.includes('youtube.') || hostname === 'youtu.be') {\n try {\n const json = await (await fetch(`https://www.youtube.com/oembed?url=${encodeURI(url)}&format=json`)).json();\n const {\n title, author_name,\n } = json;\n print(`{w,r} YouTube {/} {dc}${author_name}{/} ${title}`);\n return true;\n } catch (e) { }\n // url.match(/(?!v=|v\\/|\\.be\\/|watch\\/)([0-9a-z\\-_]{11})/i);\n }\n if (hostname.includes('twitter.')) {\n const id = pathname.match(/status\\/(\\d+)/);\n if (id) {\n const page = await (await fetch(`https://nitter.net/_/status/${id[1]}`)).text();\n setDOM(page);\n const name = document.querySelector('.fullname').textContent;\n const user = document.querySelector('.username').textContent;\n const tweet = document.querySelector('.tweet-content').textContent.replace(/\\s+/g, ' ');\n print(`{bo}${name}{/} {c}${user}{/} ${tweet}`);\n return true;\n }\n }\n}" + "command": "const { document, window } = new (jsdom().JSDOM)('');\nconst anchor = document.createElement('a');\nconst bytes = IRC.require('bytes');\n\nfunction setDOM(page) {\n document.open();\n document.write(page);\n document.close();\n};\n\nfunction domTitle() {\n const metaTitle = document.head.querySelector('meta[name=\"title\"]');\n return metaTitle ? metaTitle.content : document.title;\n}\n\nconst filterWords = /forbidden|not found|access denied|your browser|rick roll|never gonna give you up/i;\n\nfunction hasInfo(url, _title) {\n const title = _title.replace(/\\s+/g, ' ').trim();\n const isFresh = title.split(' ')\n .filter(word => (\n !(new RegExp(word.replace(/[^.a-zA-Z0-9\\u00c0-\\u017e]+/g, ''), 'i')).test(url)\n )).length >= 1;\n return isFresh && !filterWords.test(title);\n}\n\nIRC.listen('message', event => {\n if (!IRC.queryConfig('fetchURL', true)) return;\n const { text, from } = event.message;\n const urls = text.match(/(\\b(https?):\\/\\/[-A-Z0-9+&@#\\/%?=~_|!:,.;()]*[-A-Z0-9+&@#\\/%=~_|()])/ig);\n const fromSelf = from === IRC.nick;\n if (!urls || fromSelf || text.startsWith(IRC.trigger) || text.includes('##')) return;\n\n urls.forEach(url => {\n handleURL(url, global.print)\n //.catch(print.error);\n });\n});\n\nasync function handleURL(url, print) {\n anchor.setAttribute('href', url);\n if (await customURL(url, print)) return;\n\n const res = await fetch(url, {\n headers: {\n 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',\n 'Accept-Language': 'en-GB,en;q=0.5',\n 'Content-Language': 'en-GB,en;q=0.5',\n 'User-Agent': /youtu\\.?be|google|reddit/.test(url) ? '' : 'Googlebot',\n },\n });\n\n const length = res.headers.get('content-length');\n\n if (length > 5.243e6) {\n const filename = anchor.pathname.split('/').pop();\n print.info(`{dc}${filename}{/} ${bytes(length)} {dgr}${res.headers.get('content-type')}{/}`);\n return;\n }\n\n const page = await res.text();\n setDOM(page);\n\n const title = domTitle();\n\n if (title.length < 400 && (IRC.queryConfig('fetchURLAll', false) || hasInfo(url, title))) {\n print.info(title);\n }\n\n}\n\nasync function customURL(url, print) {\n const { hostname, pathname } = anchor;\n if (hostname.includes('github.')) {\n if (pathname.split('/').length === 3) {\n // it's a repo url\n const {\n description,\n html_url,\n stargazers_count,\n language,\n license, // { name }\n } = await (\n await fetch(`https://api.github.com/repos${pathname}`)\n ).json();\n\n print(`{gr}Github{/} ${description} ${IRC.colors.nick(language, false)} {y}★{/} {bo}${stargazers_count}{/} {dgr}${license ? license.name : ''}{/}`);\n return true;\n }\n // TODO reddit\n // https://github.com/mendel5/alternative-front-ends\n } \n if (hostname.includes('youtube.') || hostname === 'youtu.be') {\n try {\n const json = await (await fetch(`https://www.youtube.com/oembed?url=${encodeURI(url)}&format=json`)).json();\n const {\n title, author_name,\n } = json;\n print(`{w,r} YouTube {/} {dc}${author_name}{/} ${title}`);\n return true;\n } catch (e) { }\n // url.match(/(?!v=|v\\/|\\.be\\/|watch\\/)([0-9a-z\\-_]{11})/i);\n }\n if (hostname.includes('twitter.')) {\n const id = pathname.match(/status\\/(\\d+)/);\n if (id) {\n const page = await (await fetch(`https://nitter.net/_/status/${id[1]}`)).text();\n setDOM(page);\n const name = document.querySelector('.fullname').textContent;\n const user = document.querySelector('.username').textContent;\n const tweet = document.querySelector('.tweet-content').textContent.replace(/\\s+/g, ' ');\n print(`{bo}${name}{/} {c}${user}{/} ${tweet}`);\n return true;\n }\n }\n}" } \ No newline at end of file From 538295e8450fd23e26241d78dad085e2fe312a0a Mon Sep 17 00:00:00 2001 From: kirjavascript Date: Thu, 10 Feb 2022 22:25:35 +0000 Subject: [PATCH 03/94] move event queue to the right place --- irc/events.js | 43 +++++++++++++++++++++---------------------- 1 file changed, 21 insertions(+), 22 deletions(-) diff --git a/irc/events.js b/irc/events.js index 5fd7430..a633c91 100644 --- a/irc/events.js +++ b/irc/events.js @@ -110,31 +110,10 @@ function createEventManager(node) { } let runningEvents = false; + const queue = []; function emit(name, eventData) { // eventData: { target, server, message? } - const queue = []; - - function run() { - runningEvents = true; - ref.vm - .setConfig({ - print: { - target: eventData.target, - }, - IRC: { - message: eventData.message, - _event: [name, eventData], - }, - }) - .then(() => ref.runEvents.run(ref.vm.context)) - .catch(console.error) - .finally(() => { - runningEvents = false; - if (queue.length) queue.pop()(); - }); - } - if ( ref.vm && ref.runEvents && @@ -142,6 +121,26 @@ function createEventManager(node) { node.getTargetCfg(eventData.target, 'enableEvents', true) ) { + function run() { + runningEvents = true; + ref.vm + .setConfig({ + print: { + target: eventData.target, + }, + IRC: { + message: eventData.message, + _event: [name, eventData], + }, + }) + .then(() => ref.runEvents.run(ref.vm.context)) + .catch(console.error) + .finally(() => { + runningEvents = false; + if (queue.length) queue.pop()(); + }); + } + if (runningEvents) { queue.push(run) } else { From d820a1e3d43fe447016fcff574864ffe1999fe4a Mon Sep 17 00:00:00 2001 From: kirjavascript Date: Fri, 11 Feb 2022 01:12:01 +0100 Subject: [PATCH 04/94] fixed up some events --- commands/event-b306be3528b0.json | 2 +- commands/eventfetchURL-798176d44de4.json | 2 +- irc/events.js | 2 +- package.json | 3 ++- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/commands/event-b306be3528b0.json b/commands/event-b306be3528b0.json index bf19170..5ea25b8 100644 --- a/commands/event-b306be3528b0.json +++ b/commands/event-b306be3528b0.json @@ -3,5 +3,5 @@ "locked": true, "starred": true, "name": "event", - "command": "// Auth example;\n//\n// curl -X POST --data-binary '{\"passcode\":\"demo\"}' -H \"Content-Type: application/json\" http://localhost:8888/api/webhook/test\n\n// const tripcode = require('tripcode');\n\n// IRC.listen('webhook.test', event => {\n// const authed = tripcode(event.body.passcode) === IRC.queryConfig('testCode');\n// print(authed ? 'pass' : 'fail');\n// });\n\nIRC.listen('message', event => {\n if (event.message.text.includes(IRC.nick + ':')) {\n print('TODO: give the bot a brain');\n }\n});\n\n\nconst faces = [ '(◕ᴗ◕✿)', '(◕◡◕✿)', '(◔◡◔✿)', '(。◕‿◕。✿)', '(◡‿◡✿)', '(◠‿◠✿)', '(◕ܫ◕✿)', '(◕▿◕✿)', '(◕ ワ ◕✿)' ];\nIRC.listen('message', ({ message: { from, text } }) => {\n if (from === 'cake^' && text.includes('❤')) {\n print(' '.repeat(text.indexOf('❤')) + ' ⟍' +faces[0|Math.random()*faces.length]);\n }\n});\n\nconst daily = () => 0 === (0|new Date/1000)%86400;\n\nIRC.listen('tick', ({ target }) => {\n if (target === '#eggchan' && daily()) {\n print('egg');\n }\n});" + "command": "// Auth example;\n//\n// curl -X POST --data-binary '{\"passcode\":\"demo\"}' -H \"Content-Type: application/json\" http://localhost:8888/api/webhook/test\n\n// const tripcode = require('tripcode');\n\n// IRC.listen('webhook.test', event => {\n// const authed = tripcode(event.body.passcode) === IRC.queryConfig('testCode');\n// print(authed ? 'pass' : 'fail');\n// });\n\nIRC.listen('message', event => {\n if (event.message.text.includes(IRC.nick + ':')) {\n print('TODO: give the bot a brain');\n }\n});\n\nIRC.listen('webhook.leakip', event => {\n\tif (event.target === '#rubik') {\n \tprint('hello ' + event.ip) \n }\n});\n\n//IRC.listen('tick', event => event.target === '#eggchan' && print('egg'));\n\nconst faces = [ '(◕ᴗ◕✿)', '(◕◡◕✿)', '(◔◡◔✿)', '(。◕‿◕。✿)', '(◡‿◡✿)', '(◠‿◠✿)', '(◕ܫ◕✿)', '(◕▿◕✿)', '(◕ ワ ◕✿)' ];\nIRC.listen('message', ({ message: { from, text } }) => {\n if (text.includes('❤')) {\n print(' '.repeat(text.indexOf('❤')) + ' ⟍' +faces[0|Math.random()*faces.length]);\n }\n});\n\nconst daily = () => 0 === (0|new Date/1000)%86400;\n\nIRC.listen('tick', ({ target }) => {\n if (target === '#eggchan' && daily()) {\n print('egg');\n }\n});" } \ No newline at end of file diff --git a/commands/eventfetchURL-798176d44de4.json b/commands/eventfetchURL-798176d44de4.json index 48ebbef..4f5f1d9 100644 --- a/commands/eventfetchURL-798176d44de4.json +++ b/commands/eventfetchURL-798176d44de4.json @@ -3,5 +3,5 @@ "locked": true, "starred": true, "name": "event.fetchURL", - "command": "const { document, window } = new (jsdom().JSDOM)('');\nconst anchor = document.createElement('a');\nconst bytes = IRC.require('bytes');\n\nfunction setDOM(page) {\n document.open();\n document.write(page);\n document.close();\n};\n\nfunction domTitle() {\n const metaTitle = document.head.querySelector('meta[name=\"title\"]');\n return metaTitle ? metaTitle.content : document.title;\n}\n\nconst filterWords = /forbidden|not found|access denied|your browser|rick roll|never gonna give you up/i;\n\nfunction hasInfo(url, _title) {\n const title = _title.replace(/\\s+/g, ' ').trim();\n const isFresh = title.split(' ')\n .filter(word => (\n !(new RegExp(word.replace(/[^.a-zA-Z0-9\\u00c0-\\u017e]+/g, ''), 'i')).test(url)\n )).length >= 1;\n return isFresh && !filterWords.test(title);\n}\n\nIRC.listen('message', event => {\n if (!IRC.queryConfig('fetchURL', true)) return;\n const { text, from } = event.message;\n const urls = text.match(/(\\b(https?):\\/\\/[-A-Z0-9+&@#\\/%?=~_|!:,.;()]*[-A-Z0-9+&@#\\/%=~_|()])/ig);\n const fromSelf = from === IRC.nick;\n if (!urls || fromSelf || text.startsWith(IRC.trigger) || text.includes('##')) return;\n\n urls.forEach(url => {\n handleURL(url, global.print)\n //.catch(print.error);\n });\n});\n\nasync function handleURL(url, print) {\n anchor.setAttribute('href', url);\n if (await customURL(url, print)) return;\n\n const res = await fetch(url, {\n headers: {\n 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',\n 'Accept-Language': 'en-GB,en;q=0.5',\n 'Content-Language': 'en-GB,en;q=0.5',\n 'User-Agent': /youtu\\.?be|google|reddit/.test(url) ? '' : 'Googlebot',\n },\n });\n\n const length = res.headers.get('content-length');\n\n if (length > 5.243e6) {\n const filename = anchor.pathname.split('/').pop();\n print.info(`{dc}${filename}{/} ${bytes(length)} {dgr}${res.headers.get('content-type')}{/}`);\n return;\n }\n\n const page = await res.text();\n setDOM(page);\n\n const title = domTitle();\n\n if (title.length < 400 && (IRC.queryConfig('fetchURLAll', false) || hasInfo(url, title))) {\n print.info(title);\n }\n\n}\n\nasync function customURL(url, print) {\n const { hostname, pathname } = anchor;\n if (hostname.includes('github.')) {\n if (pathname.split('/').length === 3) {\n // it's a repo url\n const {\n description,\n html_url,\n stargazers_count,\n language,\n license, // { name }\n } = await (\n await fetch(`https://api.github.com/repos${pathname}`)\n ).json();\n\n print(`{gr}Github{/} ${description} ${IRC.colors.nick(language, false)} {y}★{/} {bo}${stargazers_count}{/} {dgr}${license ? license.name : ''}{/}`);\n return true;\n }\n // TODO reddit\n // https://github.com/mendel5/alternative-front-ends\n } \n if (hostname.includes('youtube.') || hostname === 'youtu.be') {\n try {\n const json = await (await fetch(`https://www.youtube.com/oembed?url=${encodeURI(url)}&format=json`)).json();\n const {\n title, author_name,\n } = json;\n print(`{w,r} YouTube {/} {dc}${author_name}{/} ${title}`);\n return true;\n } catch (e) { }\n // url.match(/(?!v=|v\\/|\\.be\\/|watch\\/)([0-9a-z\\-_]{11})/i);\n }\n if (hostname.includes('twitter.')) {\n const id = pathname.match(/status\\/(\\d+)/);\n if (id) {\n const page = await (await fetch(`https://nitter.net/_/status/${id[1]}`)).text();\n setDOM(page);\n const name = document.querySelector('.fullname').textContent;\n const user = document.querySelector('.username').textContent;\n const tweet = document.querySelector('.tweet-content').textContent.replace(/\\s+/g, ' ');\n print(`{bo}${name}{/} {c}${user}{/} ${tweet}`);\n return true;\n }\n }\n}" + "command": "const { document, window } = new (jsdom().JSDOM)('');\nconst anchor = document.createElement('a');\nconst bytes = IRC.require('bytes');\n\nfunction setDOM(page) {\n document.open();\n document.write(page);\n document.close();\n};\n\nfunction domTitle() {\n const metaTitle = document.head.querySelector('meta[name=\"title\"]');\n return metaTitle ? metaTitle.content : document.title;\n}\n\nconst filterWords = /forbidden|not found|access denied|your browser|rick roll|never gonna give you up/i;\n\nfunction hasInfo(url, _title) {\n const title = _title.replace(/\\s+/g, ' ').trim();\n const isFresh = title.split(' ')\n .filter(word => (\n !(new RegExp(word.replace(/[^.a-zA-Z0-9\\u00c0-\\u017e]+/g, ''), 'i')).test(url)\n )).length >= 1;\n return isFresh && !filterWords.test(title);\n}\n\nIRC.listen('message', event => {\n if (!IRC.queryConfig('fetchURL', true)) return;\n const { text, from } = event.message;\n const urls = text.match(/(\\b(https?):\\/\\/[-A-Z0-9+&@#\\/%?=~_|!:,.;()]*[-A-Z0-9+&@#\\/%=~_|()])/ig);\n const fromSelf = from === IRC.nick;\n if (!urls || fromSelf || text.startsWith(IRC.trigger) || text.includes('##')) return;\n\n urls.forEach(url => {\n handleURL(url, global.print)\n //.catch(print.error);\n });\n});\n\nasync function handleURL(url, print) {\n anchor.setAttribute('href', url);\n if (await customURL(url, print)) return;\n\n const res = await fetch(url, {\n headers: {\n 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',\n 'Accept-Language': 'en-GB,en;q=0.5',\n 'Content-Language': 'en-GB,en;q=0.5',\n 'User-Agent': /youtu\\.?be|google|reddit/.test(url) ? '' : 'Googlebot',\n },\n });\n\n const length = res.headers.get('content-length');\n\n if (length > 5.243e6) {\n const filename = anchor.pathname.split('/').pop();\n print.info(`{dc}${filename}{/} ${bytes(length)} {dgr}${res.headers.get('content-type')}{/}`);\n return;\n }\n\n const page = await res.text();\n setDOM(page);\n\n const title = domTitle();\n\n if (title.length && title.length < 400 && (IRC.queryConfig('fetchURLAll', false) || hasInfo(url, title))) {\n print.info(title);\n }\n\n}\n\nasync function customURL(url, print) {\n const { hostname, pathname } = anchor;\n if (hostname.includes('github.')) {\n if (pathname.split('/').length === 3) {\n // it's a repo url\n const {\n description,\n html_url,\n stargazers_count,\n language,\n license, // { name }\n } = await (\n await fetch(`https://api.github.com/repos${pathname}`)\n ).json();\n\n print(`{gr}Github{/} ${description} ${IRC.colors.nick(language, false)} {y}★{/} {bo}${stargazers_count}{/} {dgr}${license ? license.name : ''}{/}`);\n return true;\n }\n // TODO reddit\n // https://github.com/mendel5/alternative-front-ends\n } \n if (hostname.includes('youtube.') || hostname === 'youtu.be') {\n try {\n const json = await (await fetch(`https://www.youtube.com/oembed?url=${encodeURI(url)}&format=json`)).json();\n const {\n title, author_name,\n } = json;\n print(`{w,r} YouTube {/} {dc}${author_name}{/} ${title}`);\n return true;\n } catch (e) { }\n // url.match(/(?!v=|v\\/|\\.be\\/|watch\\/)([0-9a-z\\-_]{11})/i);\n }\n if (hostname.includes('twitter.')) {\n const id = pathname.match(/status\\/(\\d+)/);\n if (id) {\n const page = await (await fetch(`https://nitter.net/_/status/${id[1]}`)).text();\n setDOM(page);\n const name = document.querySelector('.fullname').textContent;\n const user = document.querySelector('.username').textContent;\n const tweet = document.querySelector('.tweet-content').textContent.replace(/\\s+/g, ' ');\n print(`{bo}${name}{/} {c}${user}{/} ${tweet}`);\n return true;\n }\n }\n}" } \ No newline at end of file diff --git a/irc/events.js b/irc/events.js index a633c91..a80ef0e 100644 --- a/irc/events.js +++ b/irc/events.js @@ -156,7 +156,7 @@ function createEventManager(node) { target: channel.toLowerCase(), server: node.config.address, }; - emit(name, eventData ? Object.assign(eventData, defaultData) : defaultData); + emit(name, eventData ? Object.assign({}, eventData, defaultData) : defaultData); }); } diff --git a/package.json b/package.json index af089f7..c403680 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,8 @@ { "version": "4.0.0", "engines": { - "node": ">=14" + "node": ">=14", + "npm": ">=7" }, "scripts": { "start": "node index.js", From 8ca87c54fc8b7942c1ac3c3970ddc81133c42393 Mon Sep 17 00:00:00 2001 From: kirjavascript Date: Fri, 11 Feb 2022 18:23:31 +0000 Subject: [PATCH 05/94] Removed exit(), use exitHandler instead --- TODO | 47 +++++++++++++++++++++------------------------- irc/evaluate/vm.js | 4 ---- 2 files changed, 21 insertions(+), 30 deletions(-) diff --git a/TODO b/TODO index eed7ad3..f2ff18c 100644 --- a/TODO +++ b/TODO @@ -1,41 +1,36 @@ sudo: debug|reboot|reload|update|join|part|mode|topic|kick|nick|msg|redirect|ignore repl: rs|clojure|vlang|cj|scheme|jsx|html -DOC / CMDS -=== -use a better password -when updating - get commands - make a v3-final branch - merge PR -update config - memo / remind - enableMemo / enableRemind opt in - +migrate cuteserv data -migration +14:02 ~> store.set("letters",1); print("store.get( " + store.get("letters") + ")"); store.set("letters",10); print("store.get( " + store.get("letters") + ")") +14:02 store.get( 1) +14:02 store.get( 1) +14:02 undefined -// happy new year -// s/thing/thing -// IP Address leak +writes happening at the right time +db.pragma('synchronous = FULL') -IRC.require() in events allows whitelisting stuff for others +exit() should call the graceful shutdown (send sigint) +process.kill(process.pid, "SIGINT"); -14:07 <+cake^> I should make CuteServ autoreply with the colour of a hex value -CuteServ: question? +redo / fix stats +remind pms not working + remind.pending +dont resolve URLs from selfbcz apis +09:10 https://twitter.com/Kiwiseabreeze/status/1491861303723696129 +09:10 Rochelle F @Kiwiseabreeze For those government usability folks out there : -IRC.listen('tick', () => { - print('the time is ' + new Date); -}, { filter: ({ channel }) => channel === '#8bitvape'}); +wordle +hex-to-color-name +redditvideourl -IRC.listen('command', (event) => { - if (command.root === 'ginger') { - e.preventDefault(); - } -}); +IRC.require() in events allows whitelisting stuff for others --------- +select * from sqlite_schema + isSelf migration: PRAGMA table_info(foo_table_name) // print|command|eval|join|part|nick|acquire diff --git a/irc/evaluate/vm.js b/irc/evaluate/vm.js index 6852b0a..e12b8fb 100644 --- a/irc/evaluate/vm.js +++ b/irc/evaluate/vm.js @@ -130,9 +130,6 @@ async function createVM({ node, maxTimeout = 60000 }) { ))); ctx.setSync('_sudoProxy', timeoutRef((config) => { - if (config === 'exit') { - process.kill(process.pid, 'SIGINT'); - } const { key, value, path } = config; const leaf = path.pop(); const parent = path.reduce((a, c) => { @@ -402,7 +399,6 @@ async function createVM({ node, maxTimeout = 60000 }) { } return { node: node(), - exit: () => ref.sudoProxy.applySync(undefined, ['exit']), }; }; From efa38095e4f349a9ff073db90ed82c8ddaf67dc1 Mon Sep 17 00:00:00 2001 From: kirjavascript Date: Fri, 11 Feb 2022 18:40:28 +0000 Subject: [PATCH 06/94] =?UTF-8?q?fix=20issue=20with=20store=20updates?= =?UTF-8?q?=C2=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- TODO | 3 --- database/server/worker.js | 2 +- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/TODO b/TODO index f2ff18c..85ae002 100644 --- a/TODO +++ b/TODO @@ -11,9 +11,6 @@ migrate cuteserv data writes happening at the right time db.pragma('synchronous = FULL') -exit() should call the graceful shutdown (send sigint) -process.kill(process.pid, "SIGINT"); - redo / fix stats remind pms not working remind.pending diff --git a/database/server/worker.js b/database/server/worker.js index 1d315dd..7961b3f 100644 --- a/database/server/worker.js +++ b/database/server/worker.js @@ -56,7 +56,7 @@ const get = (namespace, key) => { }; // set // const set = (namespace, key, value) => { - const hasData = typeof get(key) != 'undefined'; + const hasData = typeof get(namespace, key) != 'undefined'; // delete data if (Object.is(null, value) || typeof value == 'undefined') { hasData && setDeleteQuery.run(namespace, key); From fa0a817d373353f9efff55d9c6667012e963e691 Mon Sep 17 00:00:00 2001 From: kirjavascript Date: Fri, 11 Feb 2022 23:14:49 +0000 Subject: [PATCH 07/94] fixed /api/stats/base --- TODO | 20 +++++--------------- database/server/index.js | 1 + database/server/worker.js | 18 ++++++++++++++++++ irc/evaluate/vm.js | 2 +- web/server/api/stats.js | 38 ++++++++++++++++++++------------------ 5 files changed, 45 insertions(+), 34 deletions(-) diff --git a/TODO b/TODO index 85ae002..4c7079d 100644 --- a/TODO +++ b/TODO @@ -2,30 +2,20 @@ sudo: debug|reboot|reload|update|join|part|mode|topic|kick|nick|msg|redirect|ign repl: rs|clojure|vlang|cj|scheme|jsx|html migrate cuteserv data - -14:02 ~> store.set("letters",1); print("store.get( " + store.get("letters") + ")"); store.set("letters",10); print("store.get( " + store.get("letters") + ")") -14:02 store.get( 1) -14:02 store.get( 1) -14:02 undefined - -writes happening at the right time -db.pragma('synchronous = FULL') - redo / fix stats + remind pms not working remind.pending dont resolve URLs from selfbcz apis -09:10 https://twitter.com/Kiwiseabreeze/status/1491861303723696129 -09:10 Rochelle F @Kiwiseabreeze For those government usability folks out there : -wordle -hex-to-color-name redditvideourl -IRC.require() in events allows whitelisting stuff for others - --------- +poker2: have a fakeout poker game + +htmlpastebin built in for shit + select * from sqlite_schema isSelf migration: diff --git a/database/server/index.js b/database/server/index.js index 7a24398..9863c81 100644 --- a/database/server/index.js +++ b/database/server/index.js @@ -92,6 +92,7 @@ function createServerDB(node) { } }, + query: queryFn('query'), dispose: closeWorker, }; } diff --git a/database/server/worker.js b/database/server/worker.js index 7961b3f..78657f9 100644 --- a/database/server/worker.js +++ b/database/server/worker.js @@ -165,6 +165,17 @@ const logFns = (() => { return { get, count, user, random, regex }; })(); +// only used in query + +const prepareCache = new Map(); + +const prepare = (query) => { + if (prepareCache.has(query)) return prepareCache.get(query); + const statement = db.prepare(query); + prepareCache.set(query, statement); + return statement; +}; + parentPort.on('message', ([id, type, subtype, args]) => { if (type === 'log') { try { @@ -179,6 +190,13 @@ parentPort.on('message', ([id, type, subtype, args]) => { } catch (e) { parentPort.postMessage(['error', id, e.message]); } + } else if (type === 'query') { + try { + const [method, query, params] = args; + parentPort.postMessage(['result', id, prepare(query)[method](...params)]); + } catch (e) { + parentPort.postMessage(['error', id, e.message]); + } } else if (type === 'close') { db.close(); process.exit(0); diff --git a/irc/evaluate/vm.js b/irc/evaluate/vm.js index e12b8fb..22c129c 100644 --- a/irc/evaluate/vm.js +++ b/irc/evaluate/vm.js @@ -155,7 +155,7 @@ async function createVM({ node, maxTimeout = 60000 }) { '_commandFnsKeys', Object.keys(node.parent.database.commands.fns).join('|'), ); - let commandFnsLimit = 5; + let commandFnsLimit = 20; ctx.setSync('_commandFns', timeoutCallback((fnName, args) => { if (commandFnsLimit--) { return node.parent.database.commands.fns[fnName](...args); diff --git a/web/server/api/stats.js b/web/server/api/stats.js index 03cd40e..0f30bc4 100644 --- a/web/server/api/stats.js +++ b/web/server/api/stats.js @@ -9,31 +9,33 @@ module.exports = async ({ parent, app }) => { const databases = parent.servers.map(node => ({ name: node.config.address, - db: node.database.db, + query: node.database.query, trigger: node.trigger, })); app.post('/api/stats/base', (req, res) => { const { month } = req.body; const dateTo = month ? `${month}-01` : 'now' - // flip - const servers = databases.map(({ db, name }) => { - return { - server: name, - channels: db.prepare(` - SELECT DISTINCT lower(target) as channel - FROM log - WHERE command='PRIVMSG' - AND target LIKE '#%' - AND time BETWEEN date(?, '-1 month') AND date(?) - `).all(dateTo, dateTo).map(d => d.channel), - }; - }); - res.json({ - servers, - uptime: 0 | (new Date() - parent.epoch) / 36e5, - }); + Promise.all(databases.map(({ query, name }) => { + return query('all', ` + SELECT DISTINCT lower(target) as channel + FROM log + WHERE command='PRIVMSG' + AND target LIKE '#%' + AND time BETWEEN date(?, '-1 month') AND date(?) + `, [dateTo, dateTo]).then(rows => ({ + server: name, + channels: rows.map(row => row.channel), + })) + })) + .then(servers => { + res.json({ + servers, + uptime: 0 | (new Date() - parent.epoch) / 36e5, + }); + }) + .catch((e) => res.status(500).send(e.message)); }); // cache middleware From e262bd9d8093e063f99a828e440c77ed4c2ff8da Mon Sep 17 00:00:00 2001 From: kirjavascript Date: Sat, 12 Feb 2022 00:43:25 +0000 Subject: [PATCH 08/94] fixed stats page --- TODO | 1 - web/server/api/stats.js | 54 +++++++++++++++++++++-------------------- 2 files changed, 28 insertions(+), 27 deletions(-) diff --git a/TODO b/TODO index 4c7079d..a6e0f62 100644 --- a/TODO +++ b/TODO @@ -2,7 +2,6 @@ sudo: debug|reboot|reload|update|join|part|mode|topic|kick|nick|msg|redirect|ign repl: rs|clojure|vlang|cj|scheme|jsx|html migrate cuteserv data -redo / fix stats remind pms not working remind.pending diff --git a/web/server/api/stats.js b/web/server/api/stats.js index 0f30bc4..c73b2bd 100644 --- a/web/server/api/stats.js +++ b/web/server/api/stats.js @@ -110,7 +110,7 @@ module.exports = async ({ parent, app }) => { return items.filter(d => d[accessor] === max); } - app.post('/api/stats/all', (req, res) => { + app.post('/api/stats/all', async (req, res) => { const { server, channel, month } = req.body; const dateTo = month ? `${addMonth(month)}-01` : 'now'; const dbList = databases.filter(({ name }) => !server || name === server); @@ -118,14 +118,15 @@ module.exports = async ({ parent, app }) => { ? ['AND lower(target) = ?', [channel]] : ['', []]; - function getStat(statement, args) { - return dbList.reduce((acc, server) => { - acc.push(...server.db.prepare(statement(server)).all(...args)) - return acc; - }, []); + async function getStat(statement, args) { + const acc = []; + for (const server of dbList) { + acc.push(...(await (server.query('all', statement(server), args)))); + } + return acc; } - const commands = dedupe(getStat(({ trigger }) => ` + const commands = dedupe(await getStat(({ trigger }) => ` SELECT command_trigger as command, count(command_trigger) as count FROM ( SELECT CASE WHEN instr(message, ' ') <> 0 THEN substr(message, 1, instr(message, ' ')-1) ELSE message END as command_trigger @@ -142,7 +143,7 @@ module.exports = async ({ parent, app }) => { `, [dateTo, dateTo, ...channelArgs]), 'command', (a, b) => b.count - a.count) .slice(0, 10).reverse(); - const activityHours = dedupe(getStat(() => ` + const activityHours = dedupe(await getStat(() => ` SELECT strftime('%H', time) as hour, count(*) as count FROM log WHERE time BETWEEN date(?, '-1 month') AND date(?) @@ -151,7 +152,7 @@ module.exports = async ({ parent, app }) => { GROUP BY hour `, [dateTo, dateTo, ...channelArgs]), 'hour'); - const activityDays = dedupe(getStat(() => ` + const activityDays = dedupe(await getStat(() => ` SELECT strftime('%Y-%m-%d', time) as day, count(*) as count FROM log WHERE time BETWEEN date(?, '-1 month') AND date(?) @@ -160,8 +161,10 @@ module.exports = async ({ parent, app }) => { GROUP BY day `, [dateTo, dateTo, ...channelArgs]), 'day'); - const linkItems = dbList.map(({ db, name }) => { - const activity = db.prepare(` + const linkItems = []; + + for (const { query, name } of dbList) { + const activity = await query('all', ` SELECT user, count(lower(user)) as count FROM log WHERE time BETWEEN date(?, '-1 month') AND date(?) @@ -169,14 +172,13 @@ module.exports = async ({ parent, app }) => { GROUP BY lower(user) ORDER BY count DESC LIMIT 10 - `) - .all([dateTo, dateTo, ...channelArgs]) + `, [dateTo, dateTo, ...channelArgs]); const users = activity.map(d => d.user); if (!users.length) return [name, activity, []]; - return [name, activity, db.prepare( + linkItems.push([name, activity, await query('all', users.map(() => ` SELECT user as source, count(*) as count, ? as target FROM log @@ -185,18 +187,17 @@ module.exports = async ({ parent, app }) => { AND message LIKE ? AND command = 'PRIVMSG' GROUP BY source - `).join(' UNION ') - ).all( + `).join(' UNION '), users.flatMap((user) => [ user, dateTo, dateTo, ...channelArgs, `%${user}%`, - ]) - )]; - }); + ]))] + ); + } // crush up the data for storage / interchange const links = linkItems.map(([name, activity, links]) => { const data = {}; - for ({ source, count, target } of links) { + for (const { source, count, target } of links) { if (!data[source]) { data[source] = {}; } @@ -207,7 +208,7 @@ module.exports = async ({ parent, app }) => { // short stats - const avgLineLengthHigh = getBest(getStat(() => ` + const avgLineLengthHigh = getBest(await getStat(() => ` SELECT user, avg(length(message)) as average FROM log WHERE time BETWEEN date(?, '-1 month') AND date(?) @@ -219,7 +220,7 @@ module.exports = async ({ parent, app }) => { LIMIT 1 `, [dateTo, dateTo, ...channelArgs]), 'average'); - const avgLineLengthLow = getBest(getStat(() => ` + const avgLineLengthLow = getBest(await getStat(() => ` SELECT user, avg(length(message)) as average FROM log WHERE time BETWEEN date(?, '-1 month') AND date(?) @@ -231,7 +232,7 @@ module.exports = async ({ parent, app }) => { LIMIT 1 `, [dateTo, dateTo, ...channelArgs]), 'average', 'min'); - const shouting = getBest(getStat(() => ` + const shouting = getBest(await getStat(() => ` SELECT user, count(message) as count FROM LOG WHERE time BETWEEN date(?, '-1 month') AND date(?) @@ -244,7 +245,7 @@ module.exports = async ({ parent, app }) => { LIMIT 1 `, [dateTo, dateTo, ...channelArgs])); - const questions = getBest(getStat(() => ` + const questions = getBest(await getStat(() => ` SELECT user, count(message) as count FROM LOG WHERE time BETWEEN date(?, '-1 month') AND date(?) @@ -255,7 +256,7 @@ module.exports = async ({ parent, app }) => { LIMIT 1 `, [dateTo, dateTo, ...channelArgs])); - const kicks = getBest(getStat(() => ` + const kicks = getBest(await getStat(() => ` SELECT user, count(lower(user)) as count FROM log WHERE time BETWEEN date(?, '-1 month') AND date(?) @@ -266,7 +267,7 @@ module.exports = async ({ parent, app }) => { LIMIT 10 `, [dateTo, dateTo, ...channelArgs])); - const kicked = getBest(getStat(() => ` + const kicked = getBest(await getStat(() => ` SELECT user, count(user) as count FROM ( SELECT substr(message, 1, instr(message, ' ')-1) as user @@ -292,6 +293,7 @@ module.exports = async ({ parent, app }) => { kicks, kicked, }); + }); }; From 992404db7426fe77567ae802d986a99fe28dd805 Mon Sep 17 00:00:00 2001 From: kirjavascript Date: Sat, 12 Feb 2022 15:50:03 +0000 Subject: [PATCH 09/94] patch recursion out temporarily --- database/sql/worker.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/database/sql/worker.js b/database/sql/worker.js index ff9d423..ab8e0da 100644 --- a/database/sql/worker.js +++ b/database/sql/worker.js @@ -14,12 +14,15 @@ const traverse = item => { if (variant === 'attach') throw new Error('parity interrupt'); if (variant === 'detach') throw new Error('wrong calendar'); if (variant === 'pragma') throw new Error('insert floppy #2'); + if (variant === 'recursive') throw new Error('pls hold'); if ( type === 'identifier' && variant === 'function' && name.includes('extension') ) throw new Error('dont breathe this'); + console.log(item); + for (const child of Object.values(item)) { if (typeof child === 'object' && child !== null) { traverse(child); From 4ffe3f94385bc36d23becfaa68875061949ba05a Mon Sep 17 00:00:00 2001 From: kirjavascript Date: Sat, 12 Feb 2022 15:52:52 +0000 Subject: [PATCH 10/94] remove console log --- TODO | 1 - database/sql/worker.js | 2 -- 2 files changed, 3 deletions(-) diff --git a/TODO b/TODO index a6e0f62..7fa2d9a 100644 --- a/TODO +++ b/TODO @@ -1,7 +1,6 @@ sudo: debug|reboot|reload|update|join|part|mode|topic|kick|nick|msg|redirect|ignore repl: rs|clojure|vlang|cj|scheme|jsx|html -migrate cuteserv data remind pms not working remind.pending diff --git a/database/sql/worker.js b/database/sql/worker.js index ab8e0da..1069858 100644 --- a/database/sql/worker.js +++ b/database/sql/worker.js @@ -21,8 +21,6 @@ const traverse = item => { && name.includes('extension') ) throw new Error('dont breathe this'); - console.log(item); - for (const child of Object.values(item)) { if (typeof child === 'object' && child !== null) { traverse(child); From f1538c5ac51a983ac831adb2fd7d194a2c935f2b Mon Sep 17 00:00:00 2001 From: kirjavascript Date: Sun, 13 Feb 2022 16:35:54 +0100 Subject: [PATCH 11/94] new memo stuff --- commands/-fbdcbe735a57.json | 7 +++++++ commands/cr0sissucks-7d11ff2a2e45.json | 7 +++++++ commands/crash-3fea58ead05d.json | 7 +++++++ commands/dsonmk-8b5b749e347b.json | 7 +++++++ commands/event-b306be3528b0.json | 2 +- commands/eventfetchURL-798176d44de4.json | 2 +- commands/eventhexcolours-f73ec85888e9.json | 7 +++++++ commands/memo-9eb56acc7022.json | 2 +- commands/memodelete-5e72aaed4d28.json | 7 +++++++ commands/memomulti-3c4b32e346d5.json | 7 +++++++ commands/memopending-804bf390d495.json | 7 +++++++ commands/reboot-5edf7d3c6994.json | 2 +- commands/wcaauth-dfb977aac42d.json | 6 ------ commands/wordle-6137dfca6956.json | 4 ++-- commands/wordlestats-a28789fb5347.json | 7 +++++++ 15 files changed, 69 insertions(+), 12 deletions(-) create mode 100644 commands/-fbdcbe735a57.json create mode 100644 commands/cr0sissucks-7d11ff2a2e45.json create mode 100644 commands/crash-3fea58ead05d.json create mode 100644 commands/dsonmk-8b5b749e347b.json create mode 100644 commands/eventhexcolours-f73ec85888e9.json create mode 100644 commands/memodelete-5e72aaed4d28.json create mode 100644 commands/memomulti-3c4b32e346d5.json create mode 100644 commands/memopending-804bf390d495.json delete mode 100644 commands/wcaauth-dfb977aac42d.json create mode 100644 commands/wordlestats-a28789fb5347.json diff --git a/commands/-fbdcbe735a57.json b/commands/-fbdcbe735a57.json new file mode 100644 index 0000000..18a25ab --- /dev/null +++ b/commands/-fbdcbe735a57.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "===", + "command": "const cool = 7\n\nif (! 'cr0sis' === cool) {\n print('{r}cr0sis gay lelmao')\n} else {\n print('{r}cr0sis gay lelmAo')\n}" +} \ No newline at end of file diff --git a/commands/cr0sissucks-7d11ff2a2e45.json b/commands/cr0sissucks-7d11ff2a2e45.json new file mode 100644 index 0000000..dea9a80 --- /dev/null +++ b/commands/cr0sissucks-7d11ff2a2e45.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "cr0sissucks", + "command": "let sucks = 'cr0sis sucks '\n\nwhile (true) {\n sucks += 'cr0sis sucks '\n print(sucks) \n}" +} \ No newline at end of file diff --git a/commands/crash-3fea58ead05d.json b/commands/crash-3fea58ead05d.json new file mode 100644 index 0000000..9544e1f --- /dev/null +++ b/commands/crash-3fea58ead05d.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "crash", + "command": "SQL.many`with recursive f(x) as (select 1 union all select 1 from f) select * from f`" +} \ No newline at end of file diff --git a/commands/dsonmk-8b5b749e347b.json b/commands/dsonmk-8b5b749e347b.json new file mode 100644 index 0000000..b6325ab --- /dev/null +++ b/commands/dsonmk-8b5b749e347b.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "dsonmk", + "command": "/*__TEXTCMD__*/print(`donk`);" +} \ No newline at end of file diff --git a/commands/event-b306be3528b0.json b/commands/event-b306be3528b0.json index 5ea25b8..ec2a27b 100644 --- a/commands/event-b306be3528b0.json +++ b/commands/event-b306be3528b0.json @@ -3,5 +3,5 @@ "locked": true, "starred": true, "name": "event", - "command": "// Auth example;\n//\n// curl -X POST --data-binary '{\"passcode\":\"demo\"}' -H \"Content-Type: application/json\" http://localhost:8888/api/webhook/test\n\n// const tripcode = require('tripcode');\n\n// IRC.listen('webhook.test', event => {\n// const authed = tripcode(event.body.passcode) === IRC.queryConfig('testCode');\n// print(authed ? 'pass' : 'fail');\n// });\n\nIRC.listen('message', event => {\n if (event.message.text.includes(IRC.nick + ':')) {\n print('TODO: give the bot a brain');\n }\n});\n\nIRC.listen('webhook.leakip', event => {\n\tif (event.target === '#rubik') {\n \tprint('hello ' + event.ip) \n }\n});\n\n//IRC.listen('tick', event => event.target === '#eggchan' && print('egg'));\n\nconst faces = [ '(◕ᴗ◕✿)', '(◕◡◕✿)', '(◔◡◔✿)', '(。◕‿◕。✿)', '(◡‿◡✿)', '(◠‿◠✿)', '(◕ܫ◕✿)', '(◕▿◕✿)', '(◕ ワ ◕✿)' ];\nIRC.listen('message', ({ message: { from, text } }) => {\n if (text.includes('❤')) {\n print(' '.repeat(text.indexOf('❤')) + ' ⟍' +faces[0|Math.random()*faces.length]);\n }\n});\n\nconst daily = () => 0 === (0|new Date/1000)%86400;\n\nIRC.listen('tick', ({ target }) => {\n if (target === '#eggchan' && daily()) {\n print('egg');\n }\n});" + "command": "// Auth example;\n//\n// curl -X POST --data-binary '{\"passcode\":\"demo\"}' -H \"Content-Type: application/json\" http://localhost:8888/api/webhook/test\n\n// const tripcode = require('tripcode');\n\n// IRC.listen('webhook.test', event => {\n// const authed = tripcode(event.body.passcode) === IRC.queryConfig('testCode');\n// print(authed ? 'pass' : 'fail');\n// });\n\nIRC.listen('message', event => {\n if (event.message.text.includes(IRC.nick + ':')) {\n print('TODO: give the bot a brain');\n }\n});\n\nIRC.listen('message', (event) => {\n\tif (event.target === '#8bitvape'){\n \tif (event.message.text.includes('donk')) print('donk'); \n \tif (event.message.text.includes('dongers')) print( \"{p}ヽ༼ຈل͜ຈ༽ノ {r}raise your dongers {p}ヽ༼ຈل͜ຈ༽ノ\")\n } \n});\n\nIRC.listen('message', (event) => {\n if (event.message.from.toLowerCase() === 'lambdacomplex' && event.message.text.includes('egg'))\n IRC.require('evilegg');\n});\n\n//IRC.listen('tick', event => event.target === '#eggchan' && print('egg'));\n\nconst faces = [ '(◕ᴗ◕✿)', '(◕◡◕✿)', '(◔◡◔✿)', '(。◕‿◕。✿)', '(◡‿◡✿)', '(◠‿◠✿)', '(◕ܫ◕✿)', '(◕▿◕✿)', '(◕ ワ ◕✿)' ];\nIRC.listen('message', ({ message: { from, text } }) => {\n if (text.includes('❤')) {\n print(' '.repeat(text.indexOf('❤')) + ' ⟍' +faces[0|Math.random()*faces.length]);\n }\n});\n\n\nIRC.listen('tick', () => (\n (new Date).toISOString().slice(5,19)\n \t=== '01-01T00:00:00'\n \t&& print('(*⌒∇⌒*) //// 🎉 {rb}happy new year')\n));\n\n\nconst daily = () => 0 === (0|new Date/1000)%86400;\n\nconst hourly = () => 420 === (0|new Date/1000)%3600;\n\nIRC.listen('tick', ({ target }) => {\n if (target === '#8bitvape' && hourly()) {\n print('7');\n }\n});\n\nIRC.listen('tick', ({ target }) => {\n if (target === '#eggchan' && daily()) {\n print('egg');\n }\n});" } \ No newline at end of file diff --git a/commands/eventfetchURL-798176d44de4.json b/commands/eventfetchURL-798176d44de4.json index 4f5f1d9..ad6a0c9 100644 --- a/commands/eventfetchURL-798176d44de4.json +++ b/commands/eventfetchURL-798176d44de4.json @@ -3,5 +3,5 @@ "locked": true, "starred": true, "name": "event.fetchURL", - "command": "const { document, window } = new (jsdom().JSDOM)('');\nconst anchor = document.createElement('a');\nconst bytes = IRC.require('bytes');\n\nfunction setDOM(page) {\n document.open();\n document.write(page);\n document.close();\n};\n\nfunction domTitle() {\n const metaTitle = document.head.querySelector('meta[name=\"title\"]');\n return metaTitle ? metaTitle.content : document.title;\n}\n\nconst filterWords = /forbidden|not found|access denied|your browser|rick roll|never gonna give you up/i;\n\nfunction hasInfo(url, _title) {\n const title = _title.replace(/\\s+/g, ' ').trim();\n const isFresh = title.split(' ')\n .filter(word => (\n !(new RegExp(word.replace(/[^.a-zA-Z0-9\\u00c0-\\u017e]+/g, ''), 'i')).test(url)\n )).length >= 1;\n return isFresh && !filterWords.test(title);\n}\n\nIRC.listen('message', event => {\n if (!IRC.queryConfig('fetchURL', true)) return;\n const { text, from } = event.message;\n const urls = text.match(/(\\b(https?):\\/\\/[-A-Z0-9+&@#\\/%?=~_|!:,.;()]*[-A-Z0-9+&@#\\/%=~_|()])/ig);\n const fromSelf = from === IRC.nick;\n if (!urls || fromSelf || text.startsWith(IRC.trigger) || text.includes('##')) return;\n\n urls.forEach(url => {\n handleURL(url, global.print)\n //.catch(print.error);\n });\n});\n\nasync function handleURL(url, print) {\n anchor.setAttribute('href', url);\n if (await customURL(url, print)) return;\n\n const res = await fetch(url, {\n headers: {\n 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',\n 'Accept-Language': 'en-GB,en;q=0.5',\n 'Content-Language': 'en-GB,en;q=0.5',\n 'User-Agent': /youtu\\.?be|google|reddit/.test(url) ? '' : 'Googlebot',\n },\n });\n\n const length = res.headers.get('content-length');\n\n if (length > 5.243e6) {\n const filename = anchor.pathname.split('/').pop();\n print.info(`{dc}${filename}{/} ${bytes(length)} {dgr}${res.headers.get('content-type')}{/}`);\n return;\n }\n\n const page = await res.text();\n setDOM(page);\n\n const title = domTitle();\n\n if (title.length && title.length < 400 && (IRC.queryConfig('fetchURLAll', false) || hasInfo(url, title))) {\n print.info(title);\n }\n\n}\n\nasync function customURL(url, print) {\n const { hostname, pathname } = anchor;\n if (hostname.includes('github.')) {\n if (pathname.split('/').length === 3) {\n // it's a repo url\n const {\n description,\n html_url,\n stargazers_count,\n language,\n license, // { name }\n } = await (\n await fetch(`https://api.github.com/repos${pathname}`)\n ).json();\n\n print(`{gr}Github{/} ${description} ${IRC.colors.nick(language, false)} {y}★{/} {bo}${stargazers_count}{/} {dgr}${license ? license.name : ''}{/}`);\n return true;\n }\n // TODO reddit\n // https://github.com/mendel5/alternative-front-ends\n } \n if (hostname.includes('youtube.') || hostname === 'youtu.be') {\n try {\n const json = await (await fetch(`https://www.youtube.com/oembed?url=${encodeURI(url)}&format=json`)).json();\n const {\n title, author_name,\n } = json;\n print(`{w,r} YouTube {/} {dc}${author_name}{/} ${title}`);\n return true;\n } catch (e) { }\n // url.match(/(?!v=|v\\/|\\.be\\/|watch\\/)([0-9a-z\\-_]{11})/i);\n }\n if (hostname.includes('twitter.')) {\n const id = pathname.match(/status\\/(\\d+)/);\n if (id) {\n const page = await (await fetch(`https://nitter.net/_/status/${id[1]}`)).text();\n setDOM(page);\n const name = document.querySelector('.fullname').textContent;\n const user = document.querySelector('.username').textContent;\n const tweet = document.querySelector('.tweet-content').textContent.replace(/\\s+/g, ' ');\n print(`{bo}${name}{/} {c}${user}{/} ${tweet}`);\n return true;\n }\n }\n}" + "command": "const { document, window } = new (jsdom().JSDOM)('');\nconst anchor = document.createElement('a');\nconst bytes = IRC.require('bytes');\n\nfunction setDOM(page) {\n document.open();\n document.write(page);\n document.close();\n};\n\nfunction domTitle() {\n const metaTitle = document.head.querySelector('meta[name=\"title\"]');\n return metaTitle ? metaTitle.content : document.title;\n}\n\nconst filterWords = /cloudflare|forbidden|not found|access denied|your browser|rick roll|never gonna give you up/i;\n\nfunction hasInfo(url, _title) {\n const title = _title.replace(/\\s+/g, ' ').trim();\n const isFresh = title.split(' ')\n .filter(word => (\n !(new RegExp(word.replace(/[^.a-zA-Z0-9\\u00c0-\\u017e]+/g, ''), 'i')).test(url)\n )).length >= 1;\n return isFresh && !filterWords.test(title);\n}\n\nIRC.listen('message', event => {\n if (!IRC.queryConfig('fetchURL', true)) return;\n const { text, from } = event.message;\n const urls = text.match(/(\\b(https?):\\/\\/[-A-Z0-9+&@#\\/%?=~_|!:,.;()]*[-A-Z0-9+&@#\\/%=~_|()])/ig);\n const fromSelf = from === IRC.nick;\n if (!urls || fromSelf || text.startsWith(IRC.trigger) || text.includes('##')) return;\n\n urls.slice(0, 2).forEach(url => {\n handleURL(url, global.print)\n //.catch(print.error);\n });\n});\n\nasync function handleURL(url, print) {\n anchor.setAttribute('href', url);\n if (await customURL(url, print)) return;\n\n const res = await fetch(url, {\n headers: {\n 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',\n 'Accept-Language': 'en-GB,en;q=0.5',\n 'Content-Language': 'en-GB,en;q=0.5',\n 'User-Agent': /youtu\\.?be|google|reddit/.test(url) ? '' : 'Googlebot',\n },\n });\n\n const length = res.headers.get('content-length');\n\n if (length > 5.243e6) {\n const filename = anchor.pathname.split('/').pop();\n print.info(`{dc}${filename}{/} ${bytes(length)} {dgr}${res.headers.get('content-type')}{/}`);\n return;\n }\n\n const page = await res.text();\n setDOM(page);\n\n const title = domTitle();\n\n if (title.length && title.length < 400 && (IRC.queryConfig('fetchURLAll', false) || hasInfo(url, title))) {\n print.info(title);\n }\n\n}\n\nasync function customURL(url, print) {\n const { hostname, pathname } = anchor;\n if (hostname.includes('github.')) {\n if (pathname.split('/').length === 3) {\n // it's a repo url\n const {\n description,\n html_url,\n stargazers_count,\n language,\n license, // { name }\n } = await (\n await fetch(`https://api.github.com/repos${pathname}`)\n ).json();\n\n print(`{gr}Github{/} ${description} ${IRC.colors.nick(language, false)} {y}★{/} {bo}${stargazers_count}{/} {dgr}${license ? license.name : ''}{/}`);\n return true;\n }\n // TODO reddit\n // https://github.com/mendel5/alternative-front-ends\n } \n if (hostname.includes('youtube.') || hostname === 'youtu.be') {\n try {\n const json = await (await fetch(`https://www.youtube.com/oembed?url=${encodeURI(url)}&format=json`)).json();\n const {\n title, author_name,\n } = json;\n print(`{r}YouTube{/} {c}${author_name}{/} ${title}`);\n return true;\n } catch (e) { }\n // url.match(/(?!v=|v\\/|\\.be\\/|watch\\/)([0-9a-z\\-_]{11})/i);\n }\n if (hostname.includes('twitter.')) {\n const id = pathname.match(/status\\/(\\d+)/);\n if (id) {\n const page = await (await fetch(`https://nitter.net/_/status/${id[1]}`)).text();\n setDOM(page);\n const maintweet = document.querySelector('.main-tweet');\n const name = maintweet.querySelector('.fullname').textContent;\n const user = maintweet.querySelector('.username').textContent;\n \tconst image = maintweet.querySelector('.still-image img');\n const tweet = maintweet.querySelector('.tweet-content').textContent.replace(/\\s+/g, ' ');\n let output = `{bo}${name}{/} {c}${user}{/} ${tweet}`;\n \tif (image) {\n \toutput += ' ' + IRC.colors.link(`https://nitter.net${image.getAttribute('src').replace(/%3Fname.+/, '')}`);\n }\n \tprint(output);\n \n return true;\n }\n }\n}" } \ No newline at end of file diff --git a/commands/eventhexcolours-f73ec85888e9.json b/commands/eventhexcolours-f73ec85888e9.json new file mode 100644 index 0000000..0bd3aad --- /dev/null +++ b/commands/eventhexcolours-f73ec85888e9.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "event.hexcolours", + "command": "const name = require('hex-to-color-name');\n\nconst map = {\n red: 'FF0000',\n darkred: '800000',\n white: 'FFFFFF',\n black: '000000',\n rebeccablack: '221133',\n cyan: '00FFFF',\n darkcyan: '008080',\n blue: '0000FF',\n darkblue: '000080',\n green: '00FF00',\n darkgreen: '008000',\n magenta: 'FF00FF',\n purple: '800080',\n rebeccapurple: '663399',\n orange: 'FFA500',\n brown: '964B00',\n yellow: 'FFFF00',\n grey: 'AAAAAA',\n darkgrey: '666666',\n};\nconst lookup = {\n red: 'r',\n darkred: 'dr',\n white: 'w',\n black: 'bl',\n rebeccablack: 'bl',\n cyan: 'c',\n darkcyan: 'dc',\n blue: 'b',\n darkblue: 'db',\n green: 'g',\n darkgreen: 'dg',\n magenta: 'p',\n purple: 'dp',\n rebeccapurple: 'dp',\n orange: 'o',\n brown: 'o',\n yellow: 'y',\n grey: 'gr',\n darkgrey: 'dgr',\n};\n\nconst rx = /#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})/;\n\nIRC.listen('message', (event) => {\n if (rx.test(event.message.text)) {\n let [hex] = event.message.text.match(rx);\n if (hex.length === 4) {\n hex = `#${[...hex.slice(1)].map(d=>d+d).join``}`\n }\n const color = name(hex, map);\n print(`{${lookup[color]}}${color}`);\n }\n});\n" +} \ No newline at end of file diff --git a/commands/memo-9eb56acc7022.json b/commands/memo-9eb56acc7022.json index 5995d7a..dd267d0 100644 --- a/commands/memo-9eb56acc7022.json +++ b/commands/memo-9eb56acc7022.json @@ -1,6 +1,6 @@ { "name": "memo", - "command": "const dateFns = require('date-fns@1.30.1');\nconst [name] = IRC.command.params;\n\nif (!name || !input.trim()) throw `usage: ${IRC.colors.cmd('memo', 'message', 'name')}`;\n\nSQL.run`\n INSERT INTO memo (\"from\", \"to\", server, channel, message) \n VALUES (${IRC.message.from}, ${name}, ${IRC.server}, ${IRC.channel}, ${input})\n`;\n\nprint(`Saved message for ${IRC.colors.nick(name, false)}`);", + "command": "const [name] = IRC.command.params;\n\nif (!name || !input.trim()) throw `usage: ${IRC.colors.cmd('memo', 'message', 'name')}`;\n\nSQL.run`\n INSERT INTO memo (\"from\", \"to\", server, channel, message) \n VALUES (${IRC.message.from}, ${name}, ${IRC.server}, ${IRC.channel}, ${input})\n`;\n\nprint(`Saved message for ${IRC.colors.nick(name, false)}`);", "locked": true, "starred": true } \ No newline at end of file diff --git a/commands/memodelete-5e72aaed4d28.json b/commands/memodelete-5e72aaed4d28.json new file mode 100644 index 0000000..e99b334 --- /dev/null +++ b/commands/memodelete-5e72aaed4d28.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "memo.delete", + "command": "imput = input.trim();\nif (!input) throw `usage: ${IRC.colors.cmd('memo', 'id')} (get the id from ${IRC.colors.cmd('memo.pending')})`;\n\nconst memo = SQL.one`\n SELECT 1 FROM memo\n WHERE \"from\" = ${IRC.message.from}\n AND \"key\" = ${+input}\n`;\n\nif (memo) {\n SQL.run`DELETE FROM memo WHERE \"key\" = ${input}`;\n print.success(`memo ${input} deleted`)\n} else {\n throw `memo does not exist`\n}" +} \ No newline at end of file diff --git a/commands/memomulti-3c4b32e346d5.json b/commands/memomulti-3c4b32e346d5.json new file mode 100644 index 0000000..4e9e2bc --- /dev/null +++ b/commands/memomulti-3c4b32e346d5.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "memo.multi", + "command": "const names = IRC.command.params;\n\nif (!names.length || !input.trim()) throw `usage: ${IRC.colors.cmd('memo', 'message', ['name1', 'name2', '...'])}`;\n\n\nnames.forEach(name => {\n SQL.run`\n INSERT INTO memo (\"from\", \"to\", server, channel, message) \n VALUES (${IRC.message.from}, ${String(name)}, ${IRC.server}, ${IRC.channel}, ${input})\n `;\n});\n\n\nprint(`Saved message for ${names.map(name => IRC.colors.nick(name, false)).join(', ')}`);" +} \ No newline at end of file diff --git a/commands/memopending-804bf390d495.json b/commands/memopending-804bf390d495.json new file mode 100644 index 0000000..d0baf0b --- /dev/null +++ b/commands/memopending-804bf390d495.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "memo.pending", + "command": "const _ = require('lodash');\n\nconst memos = SQL.many`\n SELECT \"key\", \"from\", \"to\", server, channel, message FROM memo \n WHERE \"from\" = ${IRC.message.from}\n AND (${String(+!IRC.channel)} OR channel = ${IRC.channel})\n`;\n\n\nif (memos.length) {\n\n if (memos.length < 5) {\n print.success(\n memos.map(({key, to, message}) => {\n return `${key}: ${IRC.colors.nick(to, true)} ${_.truncate(message)}`\n })\n .join(', ')\n )\n } else if (messages.length > 1) {\n const text = memos.map(({key, to, message}) => {\n return `${key}: <${to}> ${_.truncate(message)}`\n }).join('\\n');\n const url = IRC.require('module.paste')(text)\n print(`${from}: you have {o}${memos.length}{/} pending messages ${url}`);\n }\n} else {\n print.info('no pending memos')\n}" +} \ No newline at end of file diff --git a/commands/reboot-5edf7d3c6994.json b/commands/reboot-5edf7d3c6994.json index 25114f1..5d97c37 100644 --- a/commands/reboot-5edf7d3c6994.json +++ b/commands/reboot-5edf7d3c6994.json @@ -1,6 +1,6 @@ { "name": "reboot", - "command": "IRC.sudo().exit();", + "command": "IRC.sudo().node.parent.exitHandler.call();", "locked": true, "starred": true } \ No newline at end of file diff --git a/commands/wcaauth-dfb977aac42d.json b/commands/wcaauth-dfb977aac42d.json deleted file mode 100644 index 8a1c221..0000000 --- a/commands/wcaauth-dfb977aac42d.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "locked": false, - "starred": false, - "name": "wca_auth", - "command": "let FormData = require('form-data')\n\nfunction authorize(){\n const obj = fetchSync('http://fca.ickler.cloud/oauth/token', {type: 'json', method:\"post\", body: `grant_type=password&username=8%40worldcubeassociation.org&password=wca`, headers: {\n \"Content-Type\": \"application/x-www-form-urlencoded\",\n }});\n if(obj){\n return obj[\"access_token\"]\n }\n}\n\nmodule.exports = {authorize}" -} \ No newline at end of file diff --git a/commands/wordle-6137dfca6956.json b/commands/wordle-6137dfca6956.json index f97e312..6a7265a 100644 --- a/commands/wordle-6137dfca6956.json +++ b/commands/wordle-6137dfca6956.json @@ -1,6 +1,6 @@ { "locked": false, - "starred": false, + "starred": true, "name": "wordle", - "command": "let wordList= [\n \"ABOUT\",\n \"OTHER\",\n \"WHICH\",\n \"THEIR\",\n \"THERE\",\n \"FIRST\",\n \"WOULD\",\n \"THESE\",\n \"CLICK\",\n \"PRICE\",\n \"STATE\",\n \"EMAIL\",\n \"WORLD\",\n \"MUSIC\",\n \"AFTER\",\n \"VIDEO\",\n \"WHERE\",\n \"BOOKS\",\n \"LINKS\",\n \"YEARS\",\n \"ORDER\",\n \"ITEMS\",\n \"GROUP\",\n \"UNDER\",\n \"GAMES\",\n \"COULD\",\n \"GREAT\",\n \"HOTEL\",\n \"STORE\",\n \"TERMS\",\n \"RIGHT\",\n \"LOCAL\",\n \"THOSE\",\n \"USING\",\n \"PHONE\",\n \"FORUM\",\n \"BASED\",\n \"BLACK\",\n \"CHECK\",\n \"INDEX\",\n \"BEING\",\n \"WOMEN\",\n \"TODAY\",\n \"SOUTH\",\n \"PAGES\",\n \"FOUND\",\n \"HOUSE\",\n \"PHOTO\",\n \"POWER\",\n \"WHILE\",\n \"THREE\",\n \"TOTAL\",\n \"PLACE\",\n \"THINK\",\n \"NORTH\",\n \"POSTS\",\n \"MEDIA\",\n \"WATER\",\n \"SINCE\",\n \"GUIDE\",\n \"BOARD\",\n \"WHITE\",\n \"SMALL\",\n \"TIMES\",\n \"SITES\",\n \"LEVEL\",\n \"HOURS\",\n \"IMAGE\",\n \"TITLE\",\n \"SHALL\",\n \"CLASS\",\n \"STILL\",\n \"MONEY\",\n \"EVERY\",\n \"VISIT\",\n \"TOOLS\",\n \"REPLY\",\n \"VALUE\",\n \"PRESS\",\n \"LEARN\",\n \"PRINT\",\n \"STOCK\",\n \"POINT\",\n \"SALES\",\n \"LARGE\",\n \"TABLE\",\n \"START\",\n \"MODEL\",\n \"HUMAN\",\n \"MOVIE\",\n \"MARCH\",\n \"YAHOO\",\n \"GOING\",\n \"STUDY\",\n \"STAFF\",\n \"AGAIN\",\n \"APRIL\",\n \"NEVER\",\n \"USERS\",\n \"TOPIC\",\n \"BELOW\",\n \"PARTY\",\n \"LOGIN\",\n \"LEGAL\",\n \"ABOVE\",\n \"QUOTE\",\n \"STORY\",\n \"RATES\",\n \"YOUNG\",\n \"FIELD\",\n \"PAPER\",\n \"GIRLS\",\n \"NIGHT\",\n \"TEXAS\",\n \"POKER\",\n \"ISSUE\",\n \"RANGE\",\n \"COURT\",\n \"AUDIO\",\n \"LIGHT\",\n \"WRITE\",\n \"OFFER\",\n \"GIVEN\",\n \"FILES\",\n \"EVENT\",\n \"CHINA\",\n \"NEEDS\",\n \"MIGHT\",\n \"MONTH\",\n \"MAJOR\",\n \"AREAS\",\n \"SPACE\",\n \"CARDS\",\n \"CHILD\",\n \"ENTER\",\n \"SHARE\",\n \"ADDED\",\n \"RADIO\",\n \"UNTIL\",\n \"COLOR\",\n \"TRACK\",\n \"LEAST\",\n \"TRADE\",\n \"DAVID\",\n \"GREEN\",\n \"CLOSE\",\n \"DRIVE\",\n \"SHORT\",\n \"MEANS\",\n \"DAILY\",\n \"BEACH\",\n \"COSTS\",\n \"STYLE\",\n \"FRONT\",\n \"PARTS\",\n \"EARLY\",\n \"MILES\",\n \"SOUND\",\n \"WORKS\",\n \"RULES\",\n \"FINAL\",\n \"ADULT\",\n \"THING\",\n \"CHEAP\",\n \"THIRD\",\n \"GIFTS\",\n \"COVER\",\n \"OFTEN\",\n \"WATCH\",\n \"DEALS\",\n \"WORDS\",\n \"LINUX\",\n \"JAMES\",\n \"HEART\",\n \"ERROR\",\n \"CLEAR\",\n \"MAKES\",\n \"INDIA\",\n \"TAKEN\",\n \"KNOWN\",\n \"CASES\",\n \"QUICK\",\n \"WHOLE\",\n \"LATER\",\n \"BASIC\",\n \"SHOWS\",\n \"ALONG\",\n \"AMONG\",\n \"DEATH\",\n \"SPEED\",\n \"BRAND\",\n \"STUFF\",\n \"JAPAN\",\n \"DOING\",\n \"LOANS\",\n \"SHOES\",\n \"ENTRY\",\n \"NOTES\",\n \"FORCE\",\n \"RIVER\",\n \"ALBUM\",\n \"VIEWS\",\n \"PLANS\",\n \"BUILD\",\n \"TYPES\",\n \"LINES\",\n \"APPLY\",\n \"ASKED\",\n \"CROSS\",\n \"WEEKS\",\n \"LOWER\",\n \"UNION\",\n \"NAMES\",\n \"LEAVE\",\n \"TEENS\",\n \"WOMAN\",\n \"CABLE\",\n \"SCORE\",\n \"SHOWN\",\n \"FLASH\",\n \"IDEAS\",\n \"ALLOW\",\n \"HOMES\",\n \"SUPER\",\n \"ASIAN\",\n \"CAUSE\",\n \"FOCUS\",\n \"ROOMS\",\n \"VOICE\",\n \"COMES\",\n \"BROWN\",\n \"FORMS\",\n \"GLASS\",\n \"HAPPY\",\n \"SMITH\",\n \"THANK\",\n \"PRIOR\",\n \"SPORT\",\n \"READY\",\n \"ROUND\",\n \"BUILT\",\n \"BLOOD\",\n \"EARTH\",\n \"NOKIA\",\n \"ITALY\",\n \"BASIS\",\n \"AWARD\",\n \"PETER\",\n \"EXTRA\",\n \"PUSSY\",\n \"RATED\",\n \"QUITE\",\n \"HORSE\",\n \"STARS\",\n \"LISTS\",\n \"OWNER\",\n \"TAKES\",\n \"BRING\",\n \"INPUT\",\n \"AGENT\",\n \"VALID\",\n \"GRAND\",\n \"TRIAL\",\n \"UNITS\",\n \"WROTE\",\n \"SHIPS\",\n \"METAL\",\n \"FUNDS\",\n \"GUEST\",\n \"SEEMS\",\n \"TRUST\",\n \"MULTI\",\n \"GRADE\",\n \"PANEL\",\n \"FLOOR\",\n \"MATCH\",\n \"PLANT\",\n \"SENSE\",\n \"STAGE\",\n \"GOODS\",\n \"MAYBE\",\n \"SPAIN\",\n \"YOUTH\",\n \"BREAK\",\n \"DANCE\",\n \"APPLE\",\n \"ENJOY\",\n \"BLOCK\",\n \"CIVIL\",\n \"STEEL\",\n \"SONGS\",\n \"FIXED\",\n \"WRONG\",\n \"HANDS\",\n \"PARIS\",\n \"FULLY\",\n \"WORTH\",\n \"PEACE\",\n \"COAST\",\n \"GRANT\",\n \"AGREE\",\n \"BLOGS\",\n \"SCALE\",\n \"STAND\",\n \"FRAME\",\n \"CHIEF\",\n \"GIVES\",\n \"HEARD\",\n \"BEGIN\",\n \"ROYAL\",\n \"CLEAN\",\n \"BIBLE\",\n \"SUITE\",\n \"VEGAS\",\n \"CHRIS\",\n \"PIECE\",\n \"SHEET\",\n \"SEVEN\",\n \"OLDER\",\n \"CELLS\",\n \"LOOKS\",\n \"CALLS\",\n \"WHOSE\",\n \"NAKED\",\n \"LIVES\",\n \"STONE\",\n \"TESTS\",\n \"BUYER\",\n \"STEVE\",\n \"LABEL\",\n \"SCOTT\",\n \"CANON\",\n \"WASTE\",\n \"CHAIR\",\n \"PHASE\",\n \"MOTOR\",\n \"SHIRT\",\n \"CRIME\",\n \"COUNT\",\n \"CLAIM\",\n \"PATCH\",\n \"SANTA\",\n \"ALONE\",\n \"JONES\",\n \"SAINT\",\n \"DRUGS\",\n \"JOINT\",\n \"FRESH\",\n \"DATES\",\n \"UPPER\",\n \"PRIME\",\n \"LIMIT\",\n \"BEGAN\",\n \"LOUIS\",\n \"STEPS\",\n \"SHOPS\",\n \"CREEK\",\n \"URBAN\",\n \"TOURS\",\n \"LABOR\",\n \"ADMIN\",\n \"HEAVY\",\n \"SOLID\",\n \"THEME\",\n \"PORNO\",\n \"TOUCH\",\n \"GOALS\",\n \"SERVE\",\n \"MAGIC\",\n \"MOUNT\",\n \"SMART\",\n \"LATIN\",\n \"AVOID\",\n \"BIRTH\",\n \"VIRUS\",\n \"ABUSE\",\n \"FACTS\",\n \"FAITH\",\n \"CHAIN\",\n \"MOVED\",\n \"REACH\",\n \"SORRY\",\n \"GAMMA\",\n \"TRUTH\",\n \"FILMS\",\n \"OWNED\",\n \"DRAFT\",\n \"CHART\",\n \"JESUS\",\n \"CLUBS\",\n \"EQUAL\",\n \"CODES\",\n \"KINDS\",\n \"TEAMS\",\n \"FUNNY\",\n \"TRIED\",\n \"NAMED\",\n \"LASER\",\n \"HARRY\",\n \"TAXES\",\n \"MOUSE\",\n \"BRAIN\",\n \"DREAM\",\n \"FALSE\",\n \"FALLS\",\n \"STATS\",\n \"CARRY\",\n \"HELLO\",\n \"CLIPS\",\n \"BRIEF\",\n \"ENDED\",\n \"EIGHT\",\n \"WANTS\",\n \"ALERT\",\n \"QUEEN\",\n \"SWEET\",\n \"DIEGO\",\n \"TRUCK\",\n \"VOTES\",\n \"OCEAN\",\n \"SIGNS\",\n \"DEPTH\",\n \"TRAIN\",\n \"FEEDS\",\n \"ROUTE\",\n \"FRANK\",\n \"ANIME\",\n \"SPEAK\",\n \"QUERY\",\n \"RURAL\",\n \"JUDGE\",\n \"BYTES\",\n \"FIGHT\",\n \"FILED\",\n \"KOREA\",\n \"BANKS\",\n \"KELLY\",\n \"LEADS\",\n \"BRIAN\",\n \"MIAMI\",\n \"WALES\",\n \"MINOR\",\n \"NOTED\",\n \"SPENT\",\n \"DAVIS\",\n \"HELPS\",\n \"CYCLE\",\n \"SLEEP\",\n \"SCENE\",\n \"DRINK\",\n \"INTEL\",\n \"RINGS\",\n \"HENRY\",\n \"GUESS\",\n \"AHEAD\",\n \"DEVEL\",\n \"DELTA\",\n \"CISCO\",\n \"ALPHA\",\n \"BONUS\",\n \"ADOBE\",\n \"TREES\",\n \"DRESS\",\n \"REFER\",\n \"BABES\",\n \"LAYER\",\n \"SPEND\",\n \"CLOCK\",\n \"RATIO\",\n \"PROOF\",\n \"EMPTY\",\n \"MAINE\",\n \"IDEAL\",\n \"SPECS\",\n \"PARKS\",\n \"CREAM\",\n \"BOXES\",\n \"HILLS\",\n \"AWARE\",\n \"SHAPE\",\n \"IRISH\",\n \"FIRMS\",\n \"USAGE\",\n \"MIXED\",\n \"EXIST\",\n \"WHEEL\",\n \"ANGEL\",\n \"WIDTH\",\n \"NOISE\",\n \"ARRAY\",\n \"GREEK\",\n \"SHARP\",\n \"OCCUR\",\n \"KNOWS\",\n \"COACH\",\n \"KEVIN\",\n \"PLATE\",\n \"LOGIC\",\n \"SIZES\",\n \"PLAIN\",\n \"COSTA\",\n \"TRAIL\",\n \"BUDDY\",\n \"SETUP\",\n \"BLUES\",\n \"SCOPE\",\n \"CRAZY\",\n \"BEARS\",\n \"MOUTH\",\n \"METER\",\n \"FRUIT\",\n \"MYSQL\",\n \"LEWIS\",\n \"SUGAR\",\n \"STICK\",\n \"ALLEN\",\n \"GENRE\",\n \"SLIDE\",\n \"EXACT\",\n \"BOUND\",\n \"STORM\",\n \"MICRO\",\n \"DOLLS\",\n \"PAINT\",\n \"DELAY\",\n \"PILOT\",\n \"CZECH\",\n \"NOVEL\",\n \"ULTRA\",\n \"IDAHO\",\n \"PLAYS\",\n \"TRULY\",\n \"LODGE\",\n \"BOOBS\",\n \"BROAD\",\n \"SWISS\",\n \"SARAH\",\n \"CLARK\",\n \"FOODS\",\n \"GUARD\",\n \"NEWLY\",\n \"RAISE\",\n \"DRAMA\",\n \"BANDS\",\n \"LUNCH\",\n \"DILDO\",\n \"AUDIT\",\n \"POLLS\",\n \"TOWER\",\n \"YOURS\",\n \"JASON\",\n \"SHELL\",\n \"SOLAR\",\n \"CATCH\",\n \"DOUBT\",\n \"TASKS\",\n \"CONST\",\n \"DOORS\",\n \"FORTH\",\n \"BRUCE\",\n \"SPLIT\",\n \"TWICE\",\n \"EGYPT\",\n \"SHIFT\",\n \"SIMON\",\n \"MARKS\",\n \"LOVED\",\n \"BIRDS\",\n \"SAVED\",\n \"SHOTS\",\n \"MOORE\",\n \"TREAT\",\n \"PIANO\",\n \"RISKS\",\n \"PORTS\",\n \"TEACH\",\n \"RAPID\",\n \"HAIRY\",\n \"DUTCH\",\n \"BOOTS\",\n \"HOLDS\",\n \"PULSE\",\n \"METRO\",\n \"STRIP\",\n \"PEARL\",\n \"PENIS\",\n \"HEADS\",\n \"LOGOS\",\n \"MILFS\",\n \"HONDA\",\n \"BILLS\",\n \"OPERA\",\n \"ASSET\",\n \"BLANK\",\n \"HUMOR\",\n \"LIVED\",\n \"TIGHT\",\n \"MEANT\",\n \"PLANE\",\n \"MEETS\",\n \"TAMPA\",\n \"GRACE\",\n \"SUSAN\",\n \"ADAMS\",\n \"VILLA\",\n \"INNER\",\n \"ROMAN\",\n \"TASTE\",\n \"TRIPS\",\n \"SIDES\",\n \"TURNS\",\n \"CACHE\",\n \"LEASE\",\n \"PROUD\",\n \"GIANT\",\n \"SEATS\",\n \"ALARM\",\n \"USUAL\",\n \"ANGLE\",\n \"VINYL\",\n \"WORST\",\n \"HONOR\",\n \"EAGLE\",\n \"PANTS\",\n \"NURSE\",\n \"QUIET\",\n \"COMIC\",\n \"CROWN\",\n \"MAKER\",\n \"CRACK\",\n \"PICKS\",\n \"SMOKE\",\n \"CRAFT\",\n \"APART\",\n \"BLIND\",\n \"COINS\",\n \"GROSS\",\n \"EPSON\",\n \"ACTOR\",\n \"FINDS\",\n \"FIFTH\",\n \"PRIZE\",\n \"DIRTY\",\n \"WAYNE\",\n \"ALIVE\",\n \"PROVE\",\n \"WINGS\",\n \"RIDGE\",\n \"MODEM\",\n \"LARRY\",\n \"SKILL\",\n \"MOVES\",\n \"THROW\",\n \"TREND\",\n \"RHODE\",\n \"BUSTY\",\n \"WORSE\",\n \"BOATS\",\n \"TELLS\",\n \"FIBER\",\n \"GRAPH\",\n \"TALKS\",\n \"BONDS\",\n \"FRAUD\",\n \"ROGER\",\n \"CRASH\",\n \"INTER\",\n \"GROVE\",\n \"SPRAY\",\n \"ROADS\",\n \"FACES\",\n \"COCKS\",\n \"MAYOR\",\n \"YIELD\",\n \"HENCE\",\n \"RADAR\",\n \"LAKES\",\n \"DIARY\",\n \"KINGS\",\n \"FLAGS\",\n \"BAKER\",\n \"SHOCK\",\n \"WALLS\",\n \"EBONY\",\n \"DRAWN\",\n \"BEAST\",\n \"DODGE\",\n \"PIZZA\",\n \"YARDS\",\n \"WOODS\",\n \"JOKES\",\n \"TWIKI\",\n \"GLOBE\",\n \"DICKE\",\n \"KERRY\",\n \"GHOST\",\n \"PRIDE\",\n \"KEITH\",\n \"LINDA\",\n \"CHILE\",\n \"MARIA\",\n \"BRASS\",\n \"PLAZA\",\n \"QUEST\",\n \"TRANS\",\n \"BOOTY\",\n \"ACRES\",\n \"VENUE\",\n \"VITAL\",\n \"EXCEL\",\n \"MODES\",\n \"ENEMY\",\n \"WELLS\",\n \"OPENS\",\n \"LUCKY\",\n \"THICK\",\n \"IRAQI\",\n \"VISTA\",\n \"CHIPS\",\n \"TERRY\",\n \"FLOOD\",\n \"ARENA\",\n \"GROWN\",\n \"JERRY\",\n \"SMILE\",\n \"LANDS\",\n \"ARMED\",\n \"LAURA\",\n \"TOKYO\",\n \"NIKON\",\n \"CANDY\",\n \"PILLS\",\n \"TIGER\",\n \"FOLKS\",\n \"BALLS\",\n \"BOOST\",\n \"ICONS\",\n \"MORAL\",\n \"KEEPS\",\n \"POUND\",\n \"ROSES\",\n \"BREAD\",\n \"TOUGH\",\n \"GONNA\",\n \"CHEST\",\n \"BILLY\",\n \"CRAIG\",\n \"SOLVE\",\n \"NANCY\",\n \"TONES\",\n \"SIGHT\",\n \"TOWNS\",\n \"WORRY\",\n \"READS\",\n \"ROLES\",\n \"GLORY\",\n \"SAUDI\",\n \"FAULT\",\n \"KAREN\",\n \"JIMMY\",\n \"RUGBY\",\n \"FLUID\",\n \"BARRY\",\n \"DEVIL\",\n \"GRASS\",\n \"MARIE\",\n \"KENYA\",\n \"SIZED\",\n \"MANGA\",\n \"THEFT\",\n \"SWING\",\n \"DATED\",\n \"SHOOT\",\n \"ELITE\",\n \"POEMS\",\n \"ROBOT\",\n \"WINDS\",\n \"GNOME\",\n \"ROOTS\",\n \"NOBLE\",\n \"SHORE\",\n \"LOVES\",\n \"LOOSE\",\n \"SLOTS\",\n \"ROCKS\",\n \"GENES\",\n \"HORNY\",\n \"HOSTS\",\n \"ATLAS\",\n \"FEELS\",\n \"RALPH\",\n \"CORPS\",\n \"LIVER\",\n \"DECOR\",\n \"TEXTS\",\n \"EVANS\",\n \"FAILS\",\n \"AGING\",\n \"ALICE\",\n \"INTRO\",\n \"CLERK\",\n \"MILLS\",\n \"JEANS\",\n \"FONTS\",\n \"FAVOR\",\n \"SIGMA\",\n \"XHTML\",\n \"ASIDE\",\n \"ESSAY\",\n \"CAMPS\",\n \"AARON\",\n \"TRACE\",\n \"PACKS\",\n \"SPOKE\",\n \"ARROW\",\n \"ROUGH\",\n \"WEIRD\",\n \"HOLES\",\n \"BLADE\",\n \"MEALS\",\n \"ROBIN\",\n \"STRAP\",\n \"CROWD\",\n \"CLOUD\",\n \"VALVE\",\n \"KNIFE\",\n \"SHELF\",\n \"LIKED\",\n \"ADOPT\",\n \"FOTOS\",\n \"OUTER\",\n \"TALES\",\n \"ISLAM\",\n \"NODES\",\n \"SEEDS\",\n \"CITED\",\n \"SKYPE\",\n \"TIRED\",\n \"STEAM\",\n \"ACUTE\",\n \"STOOD\",\n \"CAROL\",\n \"STACK\",\n \"CURVE\",\n \"AMBER\",\n \"TRUNK\",\n \"WAVES\",\n \"CAMEL\",\n \"LAMPS\",\n \"JUICE\",\n \"CHASE\",\n \"SAUCE\",\n \"BEADS\",\n \"FLOWS\",\n \"FEWER\",\n \"PROXY\",\n \"LANKA\",\n \"VOTED\",\n \"BIKES\",\n \"GATES\",\n \"SLAVE\",\n \"LYCOS\",\n \"ZDNET\",\n \"COMBO\",\n \"HAVEN\",\n \"CHARM\",\n \"BASIN\",\n \"RANCH\",\n \"DRUNK\",\n \"TONER\",\n \"LATEX\",\n \"DELHI\",\n \"ALIEN\",\n \"BROKE\",\n \"NEPAL\",\n \"NYLON\",\n \"DISCS\",\n \"ROCKY\",\n \"FLEET\",\n \"BUNCH\",\n \"CENTS\",\n \"OMEGA\",\n \"CIVIC\",\n \"SAVER\",\n \"GRILL\",\n \"GRAIN\",\n \"WANNA\",\n \"SEEKS\",\n \"GAINS\",\n \"SPOTS\",\n \"SALON\",\n \"TURBO\",\n \"THATS\",\n \"AIMED\",\n \"RESET\",\n \"BRUSH\",\n \"SPARE\",\n \"KODAK\",\n \"SKIRT\",\n \"HONEY\",\n \"GAUGE\",\n \"FACED\",\n \"SIXTH\",\n \"FARMS\",\n \"CHEAT\",\n \"SANDY\",\n \"MACRO\",\n \"LAUGH\",\n \"PITCH\",\n \"AUTOS\",\n \"PERRY\",\n \"DOZEN\",\n \"TEETH\",\n \"CLOTH\",\n \"STAMP\",\n \"LOTUS\",\n \"CARGO\",\n \"SALEM\",\n \"LIKES\",\n \"TAPES\",\n \"ZONES\",\n \"RACES\",\n \"MAPLE\",\n \"DEPOT\",\n \"BLEND\",\n \"JULIE\",\n \"JANET\",\n \"PHPBB\",\n \"PROBE\",\n \"HELEN\",\n \"LOPEZ\",\n \"DEBUG\",\n \"CHUCK\",\n \"EBOOK\",\n \"BINGO\",\n \"MINDS\",\n \"XANAX\",\n \"SUNNY\",\n \"LEEDS\",\n \"CEDAR\",\n \"BLAIR\",\n \"HOPES\",\n \"MASON\",\n \"BURNS\",\n \"PUMPS\",\n \"MARIO\",\n \"UTILS\",\n \"PAIRS\",\n \"CHOSE\",\n \"BLAST\",\n \"TOMMY\",\n \"BRAKE\",\n \"CONGO\",\n \"OLIVE\",\n \"CYBER\",\n \"CLONE\",\n \"DICKS\",\n \"RELAY\",\n \"TEARS\",\n \"OASIS\",\n \"ANGRY\",\n \"LOVER\",\n \"ROLLS\",\n \"MALTA\",\n \"DADDY\",\n \"FERRY\",\n \"OMAHA\",\n \"LOADS\",\n \"MOTEL\",\n \"RALLY\",\n \"DYING\",\n \"STUCK\",\n \"STOPS\",\n \"VOCAL\",\n \"ORGAN\",\n \"LEMON\",\n \"TOXIC\",\n \"BENCH\",\n \"RIDER\",\n \"BUTTS\",\n \"BOBBY\",\n \"SHEEP\",\n \"WINES\",\n \"SALAD\",\n \"PASTE\",\n \"KATIE\",\n \"RELAX\",\n \"SWORD\",\n \"SELLS\",\n \"CORAL\",\n \"PIXEL\",\n \"FLOAT\",\n \"COLIN\",\n \"PATHS\",\n \"ACIDS\",\n \"DAIRY\",\n \"ADMIT\",\n \"FANCY\",\n \"SAMOA\",\n \"SQUAD\",\n \"WAGES\",\n \"MALES\",\n \"CHAOS\",\n \"WHEAT\",\n \"BASES\",\n \"UNITY\",\n \"BRIDE\",\n \"BEGUN\",\n \"SOCKS\",\n \"ESSEX\",\n \"FEVER\",\n \"DRUMS\",\n \"ROVER\",\n \"FLAME\",\n \"TANKS\",\n \"SPELL\",\n \"EMILY\",\n \"ANNEX\",\n \"SUDAN\",\n \"SLUTS\",\n \"HINTS\",\n \"WIRED\",\n \"ELVIS\",\n \"ARGUE\",\n \"ARISE\",\n \"JAMIE\",\n \"BITCH\",\n \"CHESS\",\n \"OSCAR\",\n \"MENUS\",\n \"CANAL\",\n \"AMINO\",\n \"HERBS\",\n \"LYING\",\n \"DRILL\",\n \"BRYAN\",\n \"HOBBY\",\n \"TRIES\",\n \"TRICK\",\n \"MYERS\",\n \"DROPS\",\n \"WIDER\",\n \"SCREW\",\n \"BLAME\",\n \"FIFTY\",\n \"UNCLE\",\n \"JACOB\",\n \"RANDY\",\n \"BRICK\",\n \"NAVAL\",\n \"DONNA\",\n \"CABIN\",\n \"EDDIE\",\n \"FIRED\",\n \"PERTH\",\n \"SYRIA\",\n \"KLEIN\",\n \"TIRES\",\n \"RETRO\",\n \"ANGER\",\n \"SUITS\",\n \"GLENN\",\n \"HANDY\",\n \"CROPS\",\n \"GUILD\",\n \"TRIBE\",\n \"BATCH\",\n \"ALTER\",\n \"GHANA\",\n \"EDGES\",\n \"TWINS\",\n \"AMEND\",\n \"CHICK\",\n \"THONG\",\n \"MEDAL\",\n \"WALKS\",\n \"SUCKS\",\n \"BOOTH\",\n \"INDIE\",\n \"BONES\",\n \"BREED\",\n \"POLAR\",\n \"MSGID\",\n \"CAREY\",\n \"DANNY\",\n \"PATIO\",\n \"LLOYD\",\n \"BEANS\",\n \"ELLIS\",\n \"SNAKE\",\n \"JULIA\",\n \"BERRY\",\n \"OUGHT\",\n \"FIXES\",\n \"SENDS\",\n \"MAZDA\",\n \"TIMER\",\n \"TYLER\",\n \"VERSE\",\n \"HIGHS\",\n \"ELLEN\",\n \"RACKS\",\n \"NASTY\",\n \"TUMOR\",\n \"WATTS\",\n \"FORTY\",\n \"TUBES\",\n \"FLOYD\",\n \"QUEUE\",\n \"SKINS\",\n \"EXAMS\",\n \"WELSH\",\n \"BELLY\",\n \"HAITI\",\n \"ELDER\",\n \"SONIC\",\n \"THUMB\",\n \"TWIST\",\n \"RANKS\",\n \"DEBUT\",\n \"VOLVO\",\n \"PENNY\",\n \"IVORY\",\n \"REMIX\",\n \"ALIAS\",\n \"NEWER\",\n \"SPICE\",\n \"ASCII\",\n \"DONOR\",\n \"TRASH\",\n \"MANOR\",\n \"DIANE\",\n \"DISCO\",\n \"ENDIF\",\n \"MINUS\",\n \"MILAN\",\n \"SHADE\",\n \"DIGIT\",\n \"LIONS\",\n \"POOLS\",\n \"LYRIC\",\n \"GRAVE\",\n \"HOWTO\",\n \"DEVON\",\n \"SAVES\",\n \"LOBBY\",\n \"PUNCH\",\n \"GOTTA\",\n \"KARMA\",\n \"BETTY\",\n \"LUCAS\",\n \"MARDI\",\n \"SHAKE\",\n \"HOLLY\",\n \"SILLY\",\n \"MERCY\",\n \"FENCE\",\n \"DIANA\",\n \"SHAME\",\n \"FATAL\",\n \"FLESH\",\n \"JESSE\",\n \"QATAR\",\n \"SHEER\",\n \"WITCH\",\n \"COHEN\",\n \"PUPPY\",\n \"KATHY\",\n \"SMELL\",\n \"SATIN\",\n \"PROMO\",\n \"TUNES\",\n \"LUCIA\",\n \"NERVE\",\n \"RENEW\",\n \"LOCKS\",\n \"EUROS\",\n \"REBEL\",\n \"HIRED\",\n \"HINDU\",\n \"KILLS\",\n \"SLOPE\",\n \"NAILS\",\n \"WHATS\",\n \"RIDES\",\n \"REHAB\",\n \"MERIT\",\n \"DISKS\",\n \"CONDO\",\n \"FAIRY\",\n \"SHAFT\",\n \"CASIO\",\n \"KITTY\",\n \"DRAIN\",\n \"MONTE\",\n \"FIRES\",\n \"PANIC\",\n \"LEONE\",\n \"ONION\",\n \"BEATS\",\n \"MERRY\",\n \"SCUBA\",\n \"VERDE\",\n \"DRIED\",\n \"DERBY\",\n \"ANNIE\",\n \"DEREK\",\n \"STEAL\",\n \"FEARS\",\n \"TUNER\",\n \"ALIKE\",\n \"SAGEM\",\n \"SCOUT\",\n \"DEALT\",\n \"BUCKS\",\n \"BADGE\",\n \"WRIST\",\n \"HEATH\",\n \"LEXUS\",\n \"REALM\",\n \"JENNY\",\n \"YEMEN\",\n \"BUSES\",\n \"ROUGE\",\n \"YEAST\",\n \"KENNY\",\n \"YUKON\",\n \"SINGH\",\n \"BROOK\",\n \"WIVES\",\n \"XEROX\",\n \"SORTS\",\n \"VSNET\",\n \"PAPUA\",\n \"ARMOR\",\n \"VIRAL\",\n \"PIPES\",\n \"LADEN\",\n \"ARUBA\",\n \"MERGE\",\n \"EDGAR\",\n \"DUBAI\",\n \"ALLAN\",\n \"SPERM\",\n \"FILME\",\n \"CRAPS\",\n \"FROST\",\n \"SALLY\",\n \"YACHT\",\n \"TRACY\",\n \"WHALE\",\n \"SHARK\",\n \"GROWS\",\n \"CLIFF\",\n \"TRACT\",\n \"SHINE\",\n \"WENDY\",\n \"DIFFS\",\n \"OZONE\",\n \"PASTA\",\n \"SERUM\",\n \"SWIFT\",\n \"INBOX\",\n \"FOCAL\",\n \"SAMBA\",\n \"WOUND\",\n \"BELLE\",\n \"CINDY\",\n \"LINED\",\n \"BOXED\",\n \"CUBIC\",\n \"SPIES\",\n \"ELECT\",\n \"BUNNY\",\n \"CHEVY\",\n \"TIONS\",\n \"FLYER\",\n \"BATHS\",\n \"EMACS\",\n \"CLIMB\",\n \"SPARC\",\n \"DOVER\",\n \"TOKEN\",\n \"KINDA\",\n \"DYLAN\",\n \"BELTS\",\n \"BURKE\",\n \"CLARA\",\n \"FLUSH\",\n \"HAYES\",\n \"MOSES\",\n \"JOHNS\",\n \"JEWEL\",\n \"TEDDY\",\n \"DRYER\",\n \"RULED\",\n \"FUNKY\",\n \"JOINS\",\n \"SCARY\",\n \"MPEGS\",\n \"CAKES\",\n \"MIXER\",\n \"SBJCT\",\n \"TOOTH\",\n \"STAYS\",\n \"DROVE\",\n \"UPSET\",\n \"MINES\",\n \"LOGAN\",\n \"LANCE\",\n \"COLON\",\n \"LANES\",\n \"PURSE\",\n \"ALIGN\",\n \"BLESS\",\n \"CREST\",\n \"ALLOY\",\n \"PLOTS\",\n \"TULSA\",\n \"CASEY\",\n \"DRAWS\",\n \"BLOOM\",\n \"LOOPS\",\n \"SURGE\",\n \"TAHOE\",\n \"SOULS\",\n \"SPANK\",\n \"VAULT\",\n \"WIRES\",\n \"MAILS\",\n \"BLAKE\",\n \"ORBIT\",\n \"NIGER\",\n \"BACON\",\n \"PAXIL\",\n \"SPINE\",\n \"TROUT\",\n \"APNIC\",\n \"FATTY\",\n \"JOYCE\",\n \"MARCO\",\n \"ISAAC\",\n \"OXIDE\",\n \"BADLY\",\n \"SCOOP\",\n \"SANYO\",\n \"BLINK\",\n \"CARLO\",\n \"TILES\",\n \"TAMIL\",\n \"FUZZY\",\n \"GRAMS\",\n \"FORGE\",\n \"DENSE\",\n \"BRAVE\",\n \"AWFUL\",\n \"MEYER\",\n \"WHORE\",\n \"WAGON\",\n \"KNOCK\",\n \"PEERS\",\n \"QUILT\",\n \"NOTRE\",\n \"MAMBO\",\n \"FLOUR\",\n \"CHOIR\",\n \"BLOND\",\n \"BURST\",\n \"WILEY\",\n \"FIBRE\",\n \"DAISY\",\n \"CRUDE\",\n \"BORED\",\n \"ALLAH\",\n \"FARES\",\n \"HOPED\",\n \"SAFER\",\n \"MARSH\",\n \"RICKY\",\n \"THETA\",\n \"STAKE\",\n \"ARBOR\",\n \"RIFLE\",\n \"BULBS\",\n \"WAIST\",\n \"SEWER\",\n \"BOSCH\",\n \"VITRO\",\n \"HYATT\",\n \"ROMEO\",\n \"TURKS\",\n \"DEMOS\",\n \"SIDED\",\n \"CUBAN\",\n \"RESIN\",\n \"LINEN\",\n \"SEALS\",\n \"DECAY\",\n \"USHER\",\n \"SKATE\",\n \"LYNCH\",\n \"FRANC\",\n \"TIMOR\",\n \"FLATS\",\n \"HEELS\",\n \"VOTER\",\n \"URINE\",\n \"CAPRI\",\n \"TOWEL\",\n \"SEARS\",\n \"FLIES\",\n \"CRANE\",\n \"POPUP\",\n \"HABIT\",\n \"COUPE\",\n \"BENIN\",\n \"LORDS\",\n \"TENDS\",\n \"SIXTY\",\n \"SPARK\",\n \"SPIKE\",\n \"TONGA\",\n \"BACKS\",\n \"SOILS\",\n \"HUNKS\",\n \"LIBYA\",\n \"SEDAN\",\n \"CARES\",\n \"FLORA\",\n \"KAZAA\",\n \"HARDY\",\n \"BELLS\",\n \"DENIM\",\n \"ANDRE\",\n \"BUICK\",\n \"DOSES\",\n \"BAKED\",\n \"GLOVE\",\n \"ALITO\",\n \"PLUSH\",\n \"WEBER\",\n \"NELLY\",\n \"URGED\",\n \"BRENT\",\n \"KYOTO\",\n \"ADAPT\",\n \"FUELS\",\n \"BRETT\",\n \"PAULA\",\n \"STERN\",\n \"SHAWN\",\n \"TUTOR\",\n \"IDIOT\",\n \"DEBIT\",\n \"EDITS\",\n \"RAVEN\",\n \"SLICE\",\n \"ASPEN\",\n \"LEMMA\",\n \"VENUS\",\n \"DOLBY\",\n \"NIKKI\",\n \"HALLS\",\n \"PAUSE\",\n \"DEMON\",\n \"GABON\",\n \"ATARI\",\n \"ASSES\",\n \"COUCH\",\n \"DOWNS\",\n \"ROGUE\",\n \"SDRAM\",\n \"OPTIC\",\n \"CHILI\",\n \"GRIEF\",\n \"SWEAT\",\n \"MASKS\",\n \"CELEB\",\n \"ASSOC\",\n \"QUAKE\",\n \"ALLEY\",\n \"TWAIN\",\n \"BOISE\",\n \"NEVIS\",\n \"BUFFY\",\n \"LOYAL\",\n \"RENAL\",\n \"SPITE\",\n \"IMPLY\",\n \"CHILL\",\n \"LINER\",\n \"LIFTS\",\n \"VIVID\",\n \"ACTED\",\n \"BYRON\",\n \"SKULL\",\n \"RILEY\",\n \"NINJA\",\n \"SANDS\",\n \"STEAK\",\n \"COBRA\",\n \"GUCCI\",\n \"THREW\",\n \"HTTPS\",\n \"WALSH\",\n \"NINTH\",\n \"MARRY\",\n \"WILLS\",\n \"ATOMS\",\n \"DRAKE\",\n \"DELLA\",\n \"RAILS\",\n \"PGSQL\",\n \"FRIED\",\n \"CAIRO\",\n \"MALLS\",\n \"WOODY\",\n \"CRIED\",\n \"PLUGS\",\n \"CODED\",\n \"SUPRA\",\n \"MOLLY\",\n \"FRANZ\",\n \"PALAU\",\n \"RIVAL\",\n \"BEIGE\",\n \"ROLEX\",\n \"HOMER\",\n \"GASES\",\n \"GENUS\",\n \"DIXON\",\n \"DEBTS\",\n \"ICANN\",\n \"AVRIL\",\n \"MYTHS\",\n \"KNEES\",\n \"POETS\",\n \"WOVEN\",\n \"PEDRO\",\n \"TRENT\",\n \"RIGID\",\n \"SALSA\",\n \"BLOWN\",\n \"BATON\",\n \"ABBEY\",\n \"BRUNO\",\n \"EVITE\",\n \"DIETS\",\n \"SAUNA\",\n \"BAUER\",\n \"BOWLS\",\n \"QAEDA\",\n \"KITTS\",\n \"MACAU\",\n \"CRUEL\",\n \"EAGER\",\n \"CHANG\",\n \"PUPIL\",\n \"FEAST\",\n \"ACURA\",\n \"FEDEX\",\n \"ANKLE\",\n \"DECKS\",\n \"BLUNT\",\n \"HAMAS\",\n \"REACT\",\n \"RISES\",\n \"SHANE\",\n \"COATS\",\n \"ASTON\",\n \"FAIRS\",\n \"FLUTE\",\n \"HINDI\",\n \"HARSH\",\n \"WHOIS\",\n \"BURMA\",\n \"CEASE\",\n \"POLES\",\n \"SIOUX\",\n \"JENNA\",\n \"FARGO\",\n \"EQUIP\",\n \"REGED\",\n \"HEDGE\",\n \"CURRY\",\n \"WORMS\",\n \"DEWEY\",\n \"POUCH\",\n \"HOOKS\",\n \"PEAKS\",\n \"DIDNT\",\n \"SPOON\",\n \"BOMBS\",\n \"NICHE\",\n \"CIGAR\",\n \"CURSE\",\n \"FOREX\",\n \"TITAN\",\n \"ANITA\",\n \"SHOUT\",\n \"NUDES\",\n \"STRAW\",\n \"FGETS\",\n \"REUSE\",\n \"LOSES\",\n \"SUEDE\",\n \"PEACH\",\n \"UNCUT\",\n \"STOVE\",\n \"NIXON\",\n \"BRADY\",\n \"ZHANG\",\n \"FREAK\",\n \"BLUFF\",\n \"SADLY\",\n \"AVAIL\",\n \"HATCH\",\n \"STEIN\",\n \"SPILL\",\n \"DRIFT\",\n \"WINXP\",\n \"CRISP\",\n \"SCANS\",\n \"ONSET\",\n \"ASSAY\",\n \"LEIGH\",\n \"TENTS\",\n \"SNACK\",\n \"PULLS\",\n \"SQUID\",\n \"MAXIM\",\n \"SLATE\",\n \"PAGAN\",\n \"WIDOW\",\n \"SKIES\",\n \"KICKS\",\n \"CANOE\",\n \"JUICY\",\n \"MOODY\",\n \"PEDAL\",\n \"TUNED\",\n \"MAYER\",\n \"GEOFF\",\n \"SCRAP\",\n \"BELLA\",\n \"TERRA\",\n \"VAPOR\",\n \"ALOUD\",\n \"GOOSE\",\n \"WINNT\",\n \"HYDRO\",\n \"PLAYA\",\n \"NOISY\",\n \"ABIDE\",\n \"SOCIO\",\n \"BLISS\",\n \"PARSE\",\n \"JELLY\",\n \"MANIA\",\n \"EDWIN\",\n \"CLARE\",\n \"BOLTS\",\n \"TYPED\",\n \"SATAN\",\n \"MEGAN\",\n \"CHEER\",\n \"MARTY\",\n \"XLIBS\",\n \"CLAMP\",\n \"GRAPE\",\n \"DEEDS\",\n \"TRAPS\",\n \"RACER\",\n \"GUILT\",\n \"SWEEP\",\n \"DOYLE\",\n \"DUCKS\",\n \"VINCE\",\n \"PARAM\",\n \"LUNAR\",\n \"POSED\",\n \"FORKS\",\n \"BOXER\",\n \"WEIGH\",\n \"RODEO\",\n \"MOOSE\",\n \"CRUSH\",\n \"CATHY\",\n \"PAULO\",\n \"LEVER\",\n \"TASTY\",\n \"RANTS\",\n \"TAROT\",\n \"CARTS\",\n \"COCOA\",\n \"MIXES\",\n \"PANTY\",\n \"AIRES\",\n \"BULLS\",\n \"ORION\",\n \"HURRY\",\n \"CLASH\",\n \"BIKER\",\n \"NAURU\",\n \"STAIN\",\n \"REIGN\",\n \"BARON\",\n \"BATES\",\n \"STIFF\",\n \"RABBI\",\n \"SUSHI\",\n \"PUFFY\",\n \"ELBOW\",\n \"STARK\",\n \"CIRCA\",\n \"QUINN\",\n \"RAZOR\",\n \"COUGH\",\n \"TIBET\",\n \"ISLES\",\n \"OVENS\",\n \"INLET\",\n \"BRONX\",\n \"GLOSS\",\n \"PANDA\",\n \"PORCH\",\n \"ISUZU\",\n \"EATEN\",\n \"SINKS\",\n \"STEEP\",\n \"DINAR\",\n \"CREED\",\n \"CARAT\",\n \"NOBEL\",\n \"FAXES\",\n \"PLUMP\",\n \"MIDST\",\n \"BORNE\",\n \"TESCO\",\n \"TEMPO\",\n \"GETTY\",\n \"PAYNE\",\n \"TORCH\",\n \"LOHAN\",\n \"HACKS\",\n \"ATTIC\",\n \"PIPER\",\n \"STEMS\",\n \"AVERY\",\n \"TOONS\",\n \"TENTH\",\n \"DESKS\",\n \"AIDED\",\n \"CUTIE\",\n \"NOTCH\",\n \"SEOUL\",\n \"LACKS\",\n \"BOWIE\",\n \"POSES\",\n \"SCENT\",\n \"AKRON\",\n \"FINES\",\n \"GRASP\",\n \"OUNCE\",\n \"BUENA\",\n \"TOAST\",\n \"KUMAR\",\n \"KINKY\",\n \"OWENS\",\n \"QUOTA\",\n \"VERSA\",\n \"STARR\",\n \"JUMBO\",\n \"MATHS\",\n \"FLINT\",\n \"DUMMY\",\n \"AWAKE\",\n \"BURNT\",\n \"STUDS\",\n \"ROAST\",\n \"PETTY\",\n \"FELIX\",\n \"SHINY\",\n \"SMASH\",\n \"BRAUN\",\n \"AMPLE\",\n \"ROYCE\",\n \"SCARF\",\n \"HATED\",\n \"SPICY\",\n \"FOOLS\",\n \"BEARD\",\n \"WEDGE\",\n \"PEGGY\",\n \"RUINS\",\n \"DENIS\",\n \"HYPER\",\n \"GMAIL\",\n \"CITES\",\n \"EZINE\",\n \"GAMER\",\n \"ALEXA\",\n \"SAVVY\",\n \"TERRI\",\n \"NORMS\",\n \"SILVA\",\n \"PRIMA\",\n \"ZELDA\",\n \"FETAL\",\n \"PALMS\",\n \"CHORD\",\n \"KUDOZ\",\n \"HAWKS\",\n \"IRONS\",\n \"COMET\",\n \"LOTTO\",\n \"SYRUP\",\n \"ERASE\",\n \"BITES\",\n \"PROSE\",\n \"SWEAR\",\n \"INTRA\",\n \"CLOWN\",\n \"TABOO\",\n \"OLSON\",\n \"DWARF\",\n \"IFDEF\",\n \"PINES\",\n \"FUCKS\",\n \"URGES\",\n \"ENRON\",\n \"CODEC\",\n \"PABLO\",\n \"BEAMS\",\n \"PROPS\",\n \"DOUGH\",\n \"STOOL\",\n \"WELCH\",\n \"BOONE\",\n \"HORDE\",\n \"MOMMY\",\n \"NANNY\",\n \"ROACH\",\n \"ANGUS\",\n \"ASHES\",\n \"NATAL\",\n \"LOCUS\",\n \"MSNBC\",\n \"ELTON\",\n \"PRONE\",\n \"CLUES\",\n \"CREWS\",\n \"TIMED\",\n \"SCARE\",\n \"THIEF\",\n \"MOTIF\",\n \"HURTS\",\n \"SOFIA\",\n \"SPEAR\",\n \"NIGEL\",\n \"JOLIE\",\n \"BLANC\",\n \"BIRCH\",\n \"SLASH\",\n \"MIKES\",\n \"SEIKO\",\n \"ARIAL\",\n \"STACY\",\n \"HELIX\",\n \"DIXIE\",\n \"SHOOK\",\n \"MATTE\",\n \"HEIDI\",\n \"ZEBRA\",\n \"FETCH\",\n \"FAROE\",\n \"LOGON\",\n \"TRONG\",\n \"UNITE\",\n \"SHEAR\",\n \"PONDS\",\n \"TRUMP\",\n \"MATES\",\n \"AVIAN\",\n \"VISAS\",\n \"WEBMD\",\n \"CHAMP\",\n \"RECAP\",\n \"ASTRO\",\n \"CRAWL\",\n \"FLAWS\",\n \"OLSEN\",\n \"HAZEL\",\n \"MESSY\",\n \"RUPEE\",\n \"MENTS\",\n \"IRENE\",\n \"LUNGS\",\n \"VINCI\",\n \"JACKS\",\n \"STOLE\",\n \"KIRBY\",\n \"QUASI\",\n \"EXILE\",\n \"ANGLO\",\n \"KNOTS\",\n \"ANTON\",\n \"GERRY\",\n \"KAPPA\",\n \"JUMPS\",\n \"SNOOP\",\n \"VAGUE\",\n \"WRAPS\",\n \"RUSTY\",\n \"WARNS\",\n \"STING\",\n \"BRAVO\",\n \"SECSG\",\n \"LITER\",\n \"NICHT\",\n \"BASIL\",\n \"PACED\",\n \"RENEE\",\n \"WEISS\",\n \"GILES\",\n \"SHACK\",\n \"SLEEK\",\n \"ARIEL\",\n \"MONTY\",\n \"CAFES\",\n \"HITCH\",\n \"NEXUS\",\n \"TANGO\",\n \"ERNST\",\n \"SINGS\",\n \"CARTE\",\n \"QUEER\",\n \"PAINS\",\n \"VIOXX\",\n \"AHMED\",\n \"SOBRE\",\n \"KUALA\",\n \"COMMA\",\n \"GEEKS\",\n \"AVANT\",\n \"REPEC\",\n \"PEREZ\",\n \"CIMEL\",\n \"LEICA\",\n \"TORAH\",\n \"BUSCH\",\n \"TIAVA\",\n \"FREED\",\n \"CHEEK\",\n \"GAVIN\",\n \"LASTS\",\n \"HTTPD\",\n \"BOWEL\",\n \"CHATS\",\n \"MAFIA\",\n \"LILLY\",\n \"SHIRE\",\n \"LYONS\",\n \"SCAMS\",\n \"LIPID\",\n \"CLYDE\",\n \"IRWIN\",\n \"MAINS\",\n \"MISTY\",\n \"PRISM\",\n \"RESTS\",\n \"VEGAN\",\n \"COREL\",\n \"GROOM\",\n \"OSAMA\",\n \"WEEDS\",\n \"OPRAH\",\n \"BEERS\",\n \"CLIVE\",\n \"DARBY\",\n \"FILLS\",\n \"GRIPS\",\n \"KAYAK\",\n \"ALTAR\",\n \"GEARS\",\n \"RISEN\",\n \"RHINO\",\n \"EATON\",\n \"RULER\",\n \"HENRI\",\n \"SWEPT\",\n \"TROOP\",\n \"AROSE\",\n \"BECKY\",\n \"LESBO\",\n \"KLAUS\",\n \"HOGAN\",\n \"DEBRA\",\n \"CDROM\",\n \"COREY\",\n \"SLIPS\",\n \"TRAYS\",\n \"FLOCK\",\n \"CHUNG\",\n \"BORIS\",\n \"SHAVE\",\n \"SWAMP\",\n \"FAINT\",\n \"GLAND\",\n \"BLOWS\",\n \"STOKE\",\n \"KAUAI\",\n \"UNDEF\",\n \"NASAL\",\n \"NITRO\",\n \"MARIN\",\n \"LOSER\",\n \"CLAUS\",\n \"HIPAA\",\n \"PORTO\",\n \"JOLLY\",\n \"FEMME\",\n \"SIEGE\",\n \"WOLFE\",\n \"TYRES\",\n \"BUTTE\",\n \"HICKS\",\n \"PRATT\",\n \"CHALK\",\n \"NEGRO\",\n \"WRATH\",\n \"GRIND\",\n \"CLINT\",\n \"BLITZ\",\n \"OSAKA\",\n \"JORGE\",\n \"COOKS\",\n \"RAINY\",\n \"DIGGS\",\n \"PLUTO\",\n \"MITCH\",\n \"VIOLA\",\n \"RUMOR\",\n \"VOLTS\",\n \"DIVER\",\n \"BLAZE\",\n \"WRECK\",\n \"SAMMY\",\n \"ARABS\",\n \"BROCK\",\n \"HOOPS\",\n \"MACON\",\n \"LYNNE\",\n \"CHLOE\",\n \"PLONE\",\n \"HORNS\",\n \"KYLIE\",\n \"RISKY\",\n \"CLAIR\",\n \"CRETE\",\n \"TULIP\",\n \"CIARA\",\n \"DAMON\",\n \"OWING\",\n \"BENNY\",\n \"IPODS\",\n \"ANNUM\",\n \"ROCHE\",\n \"ROPES\",\n \"MORSE\",\n \"CORDS\",\n \"WAREZ\",\n \"DITCH\",\n \"SLICK\",\n \"CHUNK\",\n \"REELS\",\n \"SLEPT\",\n \"GREGG\",\n \"HUANG\",\n \"IBOOK\",\n \"WAITS\",\n \"TENOR\",\n \"SCRUB\",\n \"CELLO\",\n \"CAVES\",\n \"COCOS\",\n \"METRE\",\n \"THURS\",\n \"TOPAZ\",\n \"SOAPS\",\n \"RICOH\",\n \"GIBBS\",\n \"DUSTY\",\n \"PATTY\",\n \"CRATE\",\n \"KANYE\",\n \"CARED\",\n \"SWORN\",\n \"TWINK\",\n \"BOWEN\",\n \"BEECH\",\n \"FROGS\",\n \"EXPAT\",\n \"AGNES\",\n \"MAORI\",\n \"TENSE\",\n \"BASEL\",\n \"OXLEY\",\n \"FOLEY\",\n \"MORAN\",\n \"DECAL\",\n \"TEMPS\",\n \"FIONA\",\n \"FRITZ\",\n \"MOVER\",\n \"ERICA\",\n \"BETSY\",\n \"SHAUN\",\n \"FAUNA\",\n \"DETOX\",\n \"SPURS\",\n \"ORTHO\",\n \"GOULD\",\n \"ELIZA\",\n \"USAID\",\n \"DARTS\",\n \"TAILS\",\n \"HANGS\",\n \"QUARK\",\n \"DOLCE\",\n \"VEINS\",\n \"FOLDS\",\n \"ANGIE\",\n \"SNEAK\",\n \"OCTET\",\n \"MCCOY\",\n \"MATEO\",\n \"FREAD\",\n \"WILLY\",\n \"EDITH\",\n \"MAGNA\",\n \"POLLY\",\n \"TIDAL\",\n \"JULES\",\n \"ERNIE\",\n \"POOLE\",\n \"CRUST\",\n \"DOLLY\",\n \"LENOX\",\n \"MINER\",\n \"CECIL\",\n \"CAJUN\",\n \"DINER\",\n \"REGIS\",\n \"MOUND\",\n \"ETHAN\",\n \"IBIZA\",\n \"REESE\",\n \"CHEFS\",\n \"SCION\",\n \"MANDY\",\n \"HOODS\",\n \"PROTO\",\n \"JARED\",\n \"WEARS\",\n \"REGAL\",\n \"ALVIN\",\n \"RATON\",\n \"CURLY\",\n \"HOUND\",\n \"WHARF\",\n \"FLICK\",\n \"DATUM\",\n \"MAIZE\",\n \"BANFF\",\n \"PSALM\",\n \"GOWNS\",\n \"LUTON\",\n \"LEAKS\",\n \"SWELL\",\n \"VILLE\",\n \"CHICO\",\n \"IRONY\",\n \"LASIK\",\n \"LEVIN\",\n \"AMIGA\",\n \"VIPER\",\n \"GYPSY\",\n \"LITRE\",\n \"BINDS\",\n \"TITUS\",\n \"FLARE\",\n \"WIGHT\",\n \"CRANK\",\n \"GOATS\",\n \"RAINS\",\n \"BRACE\",\n \"ABDUL\",\n \"RYDER\",\n \"GARTH\",\n \"NOLAN\",\n \"PAOLO\",\n \"ARGUS\",\n \"MANGO\",\n \"THIGH\",\n \"CARLA\",\n \"MEATS\",\n \"WINDY\",\n \"ALAMO\",\n \"STEER\",\n \"VOGUE\",\n \"AIRED\",\n \"VODKA\",\n \"ZAIRE\",\n \"KNOBS\",\n \"INLOG\",\n \"SALTS\",\n \"SOUPS\",\n \"MOIST\",\n \"TRINA\",\n \"PESTS\",\n \"ENTRE\",\n \"PLANO\",\n \"DORIS\",\n \"PETIT\",\n \"FRIES\",\n \"SAXON\",\n \"STALL\",\n \"DEERE\",\n \"SERIF\",\n \"MONKS\",\n \"ALOHA\",\n \"UTTER\",\n \"RENTS\",\n \"CATER\",\n \"COLTS\",\n \"DUNES\",\n \"PINCH\",\n \"FLYNN\",\n \"TROLL\",\n \"FILTH\",\n \"KRAFT\",\n \"ALGAE\",\n \"ARDEN\",\n \"BYRNE\",\n \"SHADY\",\n \"ERECT\",\n \"VESTS\",\n \"LYDIA\",\n \"VALET\",\n \"CHENG\",\n \"ELIOT\",\n \"JIHAD\",\n \"ELGIN\",\n \"JONAH\",\n \"RAPED\",\n \"DENON\",\n \"SLOAN\",\n \"PLATO\",\n \"PALMA\",\n \"TAXIS\",\n \"HATES\",\n \"HAGUE\",\n \"TAMMY\",\n \"OGDEN\",\n \"MADAM\",\n \"TEASE\",\n \"AROMA\",\n \"ROWAN\",\n \"DWELL\",\n \"STAIR\",\n \"SONNY\",\n \"ROTOR\",\n \"QUART\",\n \"BISON\",\n \"FUNGI\",\n \"GREED\",\n \"ELENA\",\n \"BLEED\",\n \"SERIE\",\n \"INCUR\",\n \"TEMPE\",\n \"CORES\",\n \"NIFTY\",\n \"YATES\",\n \"DUKES\",\n \"FUDGE\",\n \"HOMME\",\n \"ROSSI\",\n \"WEAVE\",\n \"VICKI\",\n \"EXITS\",\n \"SIENA\",\n \"REIKI\",\n \"DANTE\",\n \"LANGE\",\n \"ROSEN\",\n \"CURED\",\n \"BUGGY\",\n \"RECON\",\n \"SLACK\",\n \"VINES\",\n \"GORGE\",\n \"LIENS\",\n \"BOYLE\",\n \"LAMAR\",\n \"JONAS\",\n \"LOCKE\",\n \"CAGES\",\n \"PAGER\",\n \"JOLLA\",\n \"BANJO\",\n \"STOUT\",\n \"DUANE\",\n \"HANNA\",\n \"ADLER\",\n \"STARE\",\n \"MISSY\",\n \"MEADE\",\n \"FLAIR\",\n \"CETTE\",\n \"AISLE\",\n \"DUNNO\",\n \"LIMBS\",\n \"PAVED\",\n \"SCOTS\",\n \"TYSON\",\n \"SEIZE\",\n \"SPAWN\",\n \"EPOXY\",\n \"STONY\",\n \"PUNTA\",\n \"CRYPT\",\n \"BOGUS\",\n \"JBOSS\",\n \"FADED\",\n \"MOBIL\",\n \"TYING\",\n \"DIODE\",\n \"JOHAN\",\n \"MOTTO\",\n \"ALTON\",\n \"JANIS\",\n \"RUBIN\",\n \"ALAIN\",\n \"DETER\",\n \"FURRY\",\n \"CUBES\",\n \"LINUS\",\n \"RINSE\",\n \"TIDES\",\n \"VENOM\",\n \"VOYER\",\n \"MUMMY\",\n \"CRIES\",\n \"ETHER\",\n \"SHEDS\",\n \"SOFAS\",\n \"CROIX\",\n \"BOING\",\n \"ROSIE\",\n \"TERRE\",\n \"TECHS\",\n \"ELISA\",\n \"HAUTE\",\n \"WACKY\",\n \"REITS\",\n \"MUDDY\",\n \"NUEVO\",\n \"SHALT\",\n \"VISOR\",\n \"NAIVE\",\n \"HIRES\",\n \"TANYA\",\n \"FOLIO\",\n \"BARRE\",\n \"FIERY\",\n \"FAKES\",\n \"FOMIT\",\n \"AHMAD\",\n \"COOKE\",\n \"EMULE\",\n \"ACORN\",\n \"BAYER\",\n \"BASAL\",\n \"TOPPS\",\n \"WILDE\",\n \"SMOKY\",\n \"FLIRT\",\n \"SLANG\",\n \"FINCH\",\n \"LARGO\",\n \"TALLY\",\n \"CREEP\",\n \"AGILE\",\n \"SACKS\",\n \"KIOSK\",\n \"IONIC\",\n \"STRAY\",\n \"POPPY\",\n \"TURIN\",\n \"FORTE\",\n \"SESSO\",\n \"HANOI\",\n \"WAIVE\",\n \"VANCE\",\n \"GREET\",\n \"LYMPH\",\n \"SONIA\",\n \"LATCH\",\n \"VERBS\",\n \"DRANK\",\n \"SANTO\",\n \"TORSO\",\n \"RAMON\",\n \"DANSK\",\n \"HOBBS\",\n \"MAYEN\",\n \"GRABS\",\n \"GEILE\",\n \"WARDS\",\n \"HINGE\",\n \"PATTI\",\n \"FAIRE\",\n \"EMORY\",\n \"STUNT\",\n \"MAVEN\",\n \"VITAE\",\n \"WITTY\",\n \"HERTZ\",\n \"FLOWN\",\n \"SILKY\",\n \"MICAH\",\n \"REPAY\",\n \"AWAIT\",\n \"FETUS\",\n \"CIDER\",\n \"GANGS\",\n \"LENNY\",\n \"ARXIV\",\n \"PERCY\",\n \"CONAN\",\n \"LILAC\",\n \"SINUS\",\n \"DENNY\",\n \"HEARS\",\n \"LEXAR\",\n \"PIVOT\",\n \"HURON\",\n \"GLIDE\",\n \"TODOS\",\n \"CREME\",\n \"WALTZ\",\n \"PAIGE\",\n \"BLUSH\",\n \"MONDE\",\n \"MALAY\",\n \"MODAL\",\n \"CADET\",\n \"LOREN\",\n \"CARBS\",\n \"OPTED\",\n \"TWEAK\",\n \"TRAIT\",\n \"SHREK\",\n \"EATER\",\n \"CYMRU\",\n \"CYRUS\",\n \"HIDES\",\n \"SYNTH\",\n \"LAYUP\",\n \"NAZIS\",\n \"PILES\",\n \"BEZEL\",\n \"HAVOC\",\n \"SLING\",\n \"RICAN\",\n \"GUPTA\",\n \"TUMMY\",\n \"AXIAL\",\n \"JULIO\",\n \"EPOCH\",\n \"PLAID\",\n \"FABLE\",\n \"SCARS\",\n \"SUSIE\",\n \"REYES\",\n \"PESOS\",\n \"SPANS\",\n \"OBESE\",\n \"SOBER\",\n \"TREAD\",\n \"WIGAN\",\n \"PADDY\",\n \"NORMA\",\n \"ASTRA\",\n \"MONDO\",\n \"WYATT\",\n \"OTTER\",\n \"EARNS\",\n \"SASSY\",\n \"DEMUX\",\n \"VASES\",\n \"GARDE\",\n \"ARIES\",\n \"RAMPS\",\n \"DREAD\",\n \"QWEST\",\n \"DYSON\",\n \"JOSEF\",\n \"CASTS\",\n \"HEINZ\",\n \"ARGOS\",\n \"NEEDY\",\n \"REICH\",\n \"WEARY\",\n \"TWEED\",\n \"SNOWY\",\n \"GENIE\",\n \"BLING\",\n \"CHARS\",\n \"MCGEE\",\n \"DELLE\",\n \"FINED\",\n \"GEORG\",\n \"APRON\",\n \"AIDES\",\n \"GOMEZ\",\n \"YUMMY\",\n \"MOMMA\",\n \"TRISH\",\n \"SEXES\",\n \"HUSKY\",\n \"BLAND\",\n \"DARTH\",\n \"CHING\"\n]\nconst words_6 =['abroad','absent','accent','access','acting','actors','adding','adjust','adrian','advert','advise','affair','affect','afraid','africa','agency','agenda','agents','agreed','agrees','alaska','albany','albert','albums','alerts','allied','ambien','amount','analog','andrew','angela','angels','angola','annual','anyone','apache','appeal','approx','arabia','arcade','arctic','argued','around','arrive','arthur','artist','ashley','asking','aspect','assets','assign','assist','asylum','athens','atomic','attach','august','author','autumn','avenue','awards','backed','bailey','ballet','banana','banner','barbie','barely','basket','beaver','become','behalf','behind','belief','berlin','beside','better','beyond','bidder','bikini','bishop','blacks','blades','boards','bodies','bottle','boxing','brakes','branch','brands','brazil','breach','breaks','breast','breeds','bridal','bridge','briefs','bright','broken','bronze','brooks','brutal','bufing','builds','bullet','bundle','burden','bureau','buried','burner','butter','button','buyers','buying','cached','called','calvin','camera','campus','cancel','carbon','caring','carlos','carpet','carter','casino','castle','casual','cattle','caused','causes','cayman','celebs','celtic','cement','census','center','centre','chains','chairs','change','charge','charts','cheats','checks','cheese','cheque','cherry','chicks','choice','choose','chrome','church','cialis','circus','claims','client','clinic','closed','coated','collar','colony','colour','column','combat','comics','commit','common','compaq','comply','condos','config','cooked','cookie','cooler','cooper','copies','copper','corner','corpus','courts','cowboy','create','credit','crimes','cursor','curtis','curves','cycles','cyprus','danger','daniel','danish','darwin','dating','dealer','debate','debian','decide','deemed','defend','define','degree','delays','delete','deluxe','demand','denial','denied','denver','design','desire','detail','detect','device','dialog','diesel','dinner','direct','dishes','divide','divine','diving','doctor','dollar','domain','donald','donors','dosage','double','driven','driver','drives','durham','during','eagles','easily','easter','ebooks','edward','effect','effort','either','eleven','emails','employ','energy','enzyme','equity','erotic','escape','essays','ethics','ethnic','exceed','except','exempt','exists','exotic','expert','export','extend','extras','fabric','facial','facing','factor','failed','fallen','family','famous','father','favors','fellow','female','fetish','figure','finest','finger','finish','fitted','fleece','flight','floppy','flower','folder','follow','forbes','forced','forces','forest','forgot','formal','formed','former','forums','fought','fraser','freely','freeze','french','friday','fridge','friend','frozen','fusion','future','galaxy','gaming','garage','garlic','gender','geneva','genius','genome','genres','gerald','gibson','glance','golden','gossip','gothic','grades','grande','granny','grants','graphs','gratis','greene','ground','groups','growth','guards','guests','guinea','guitar','guyana','habits','hacker','hammer','hansen','happen','harbor','harley','harold','harper','harris','hawaii','hazard','headed','header','hearts','heated','heaven','hebrew','height','helmet','hentai','herbal','hereby','heroes','hidden','higher','highly','hilton','hockey','holdem','honest','honors','horror','horses','hotels','hourly','hudson','humans','hunger','hungry','hybrid','ignore','import','incest','inches','income','indoor','infant','inform','inkjet','inline','inputs','invest','invite','island','israel','issues','italia','italic','itself','itunes','jacket','jackie','jaguar','jeremy','johnny','joined','jordan','joseph','judges','julian','junior','justin','kelkoo','killed','knight','knives','korean','kruger','labels','labour','lambda','larger','lately','latest','latina','latter','lawyer','layers','layout','leader','league','leaves','legacy','legend','lender','lenses','lesser','lesson','letter','likely','linear','linked','liquid','listed','listen','little','locate','logged','lolita','london','lonely','lovely','loving','lowest','luther','luxury','lyrics','madrid','mailed','mailto','mainly','manage','manner','marcus','margin','mariah','marine','marked','marker','market','martha','martin','matrix','matter','mature','meetup','memory','merely','metals','metres','metric','michel','middle','miller','milton','mining','mirror','modems','modern','module','moment','monaco','monica','monkey','morris','mostly','mother','mounts','movers','movies','moving','msgstr','munich','murphy','murray','muscle','mutual','myrtle','myself','namely','nasdaq','nathan','nation','native','nature','nearly','needed','needle','nelson','nested','nevada','newbie','newest','newman','nextel','nickel','nicole','nights','nobody','norman','norton','norway','notice','notify','novels','nurses','nutten','object','obtain','occurs','office','offset','oliver','online','opened','optics','option','oracle','orange','orders','oregon','origin','outlet','output','oxford','packed','packet','palace','palmer','panels','parade','parcel','parish','partly','passes','pastor','paying','peeing','pencil','people','permit','philip','phones','picked','pickup','pierce','pillow','placed','places','planet','plants','plates','played','player','please','pledge','plenty','pocket','points','poison','police','policy','polish','porter','posing','postal','posted','poster','potato','powder','powell','powers','praise','prayer','prefer','pretty','priest','prince','prints','prompt','proved','proven','prozac','pulled','pupils','pushed','puzzle','quebec','queens','quoted','quotes','racial','racing','raises','random','ranges','rapids','rarely','rather','rating','ratios','reader','realty','reason','recent','recipe','record','redeem','reduce','refers','refund','refuse','regard','region','reject','relate','reload','remedy','remote','remove','repair','rescue','resist','result','resume','retain','reward','rhythm','riding','rivers','robert','robust','rogers','roland','ronald','rounds','router','routes','rubber','ruling','runner','russia','rwanda','saddam','safari','safely','safety','saints','salary','salmon','sample','samuel','sandra','saturn','savage','saving','scales','scared','schema','school','scored','scores','screen','script','scroll','search','season','second','secret','sector','seeker','seemed','seller','senate','sender','sensor','serial','served','server','sewing','sexual','shades','shared','shares','sharon','shaved','sheets','shield','shirts','shorts','should','sierra','signal','silent','silver','simply','single','sister','skiing','skirts','sleeps','smooth','soccer','social','solely','soviet','spaces','speaks','speech','sphere','spider','spoken','spouse','spread','sprint','squirt','stable','stated','states','stayed','stereo','steven','sticky','stocks','stolen','stored','stores','stream','street','strict','string','strong','stuart','styles','stylus','subaru','subtle','suffer','summer','summit','sunday','sunset','superb','surrey','suzuki','sweden','sydney','symbol','syntax','system','tables','tackle','taiwan','taking','talent','talked','target','tariff','tattoo','taylor','techno','tenant','terror','thanks','theory','things','thinks','thomas','thongs','though','thread','threat','throat','thrown','thumbs','ticket','tigers','timber','timing','titans','titled','titten','toilet','topics','toward','toyota','trains','trance','trauma','travel','treaty','trends','tribes','tricks','triple','trivia','troops','trusts','tuning','turner','twelve','typing','uganda','ultram','unable','unlike','unlock','upload','urgent','vagina','valued','values','valves','varied','varies','velvet','venice','verbal','verify','vernon','viagra','victor','videos','vienna','viewed','villas','violin','virgin','vision','visits','visual','vocals','voices','volume','voters','voting','voyeur','voyuer','wagner','waiver','walked','walnut','wanted','warner','warren','waters','watson','weapon','webcam','weblog','wesley','wheels','whilst','wicked','wilson','winter','wisdom','wishes','within','wizard','wooden','worked','worker','worthy','wright','writer','yamaha','yearly','zambia','zoning','zshops']\n\nconst words_7 =['ability','abraham','account','accused','acquire','acrylic','actions','actress','adapted','adaptor','address','advance','advised','affairs','affects','against','airfare','airline','airport','albania','alberta','algeria','alleged','allergy','allowed','already','altered','amateur','amazing','ambient','amended','amounts','anaheim','analyst','analyze','andreas','andrews','answers','antenna','antigua','anxiety','anybody','anymore','anytime','appeals','applied','applies','aquatic','arizona','armenia','arrange','arrival','article','artists','artwork','aspects','assumed','assumes','atlanta','attract','auction','auditor','austria','average','awesome','baghdad','bahamas','bahrain','bangkok','banking','baptist','barbara','bargain','baskets','battery','bearing','because','becomes','bedding','bedford','bedroom','beijing','belfast','belgium','belongs','beneath','benefit','bermuda','bernard','between','beverly','bicycle','bidding','biggest','billing','binding','biology','bizrate','blanket','blessed','blowing','blowjob','booking','borders','borough','bouquet','bradley','brandon','breasts','bridges','briefly','bristol','britain','british','britney','brokers','brother','browser','budgets','buffalo','builder','burning','cabinet','calcium','calling','cameras','cameron','camping','capable','capital','capitol','captain','capture','cardiff','careers','careful','carries','carroll','casinos','casting','catalog','caution','ceiling','centers','central','certain','chamber','chances','changed','charged','charges','charity','checked','chinese','circles','circuit','claimed','classes','classic','cleaner','cleanup','cleared','clearly','climate','clinton','closely','closing','clothes','cluster','coaches','coating','collins','cologne','colours','command','compete','complex','concert','confirm','connect','consist','console','contact','contain','content','contest','context','convert','cookies','cooling','copying','council','counsel','counter','country','coupled','coupons','courage','courses','covered','created','creates','creator','cricket','critics','croatia','cruises','crystal','cuisine','culture','cumshot','curious','current','customs','damaged','dancing','dealing','deborah','decades','decided','declare','default','defects','defence','deficit','defines','degrees','delight','denmark','density','depends','deposit','desired','desktop','despite','destroy','detroit','develop','deviant','devoted','diamond','dietary','digital','diploma','discuss','disease','display','distant','divided','divorce','doctors','dollars','domains','donated','douglas','drawing','drivers','driving','dropped','dynamic','earning','eastern','eclipse','ecology','economy','ecuador','edition','edwards','effects','efforts','elected','elegant','element','embassy','emerald','enables','endless','enemies','engaged','engines','england','english','enhance','enjoyed','enlarge','enquiry','ensures','entries','escorts','essence','estates','estonia','eternal','ethical','evident','exactly','examine','example','execute','exhibit','expense','experts','expired','expires','explain','exports','exposed','express','extends','extract','extreme','failing','failure','falling','fantasy','farmers','fashion','fastest','fathers','federal','feeling','females','fifteen','fighter','figures','filling','filters','finally','finance','findlaw','finland','fishing','fisting','fitness','flights','flowers','folders','follows','foreign','forever','formats','forming','formula','fortune','forward','founded','founder','francis','freight','friends','funding','funeral','further','futures','gabriel','gallery','garbage','gazette','general','genesis','genetic','genuine','geology','germany','gilbert','glucose','gourmet','grammar','granted','greater','greatly','gregory','grocery','grounds','growing','guitars','halifax','hamburg','hampton','happens','harbour','harmful','harmony','harvest','hazards','heading','headset','healing','healthy','heavily','heights','helpful','helping','herself','highest','highway','history','hitachi','hitting','holders','holiday','holland','horizon','hotmail','housing','hundred','hungary','hunting','husband','hygiene','iceland','ignored','illegal','imagine','imaging','impacts','implies','include','indexed','indians','infants','initial','insects','insider','install','instant','insulin','insured','intense','invalid','involve','ireland','islamic','islands','israeli','january','jeffrey','jelsoft','jessica','justice','katrina','keeping','kennedy','kenneth','keyword','killing','kingdom','kissing','knights','labeled','landing','largely','largest','laundry','lawsuit','lawyers','leaders','leading','learned','leasing','leaving','lebanon','legends','leisure','leonard','lesbian','lessons','letters','letting','lexmark','liberal','liberty','lincoln','lindsay','linking','livecam','livesex','loading','locally','locking','lodging','logging','logical','looking','madison','madness','magical','mailing','mailman','manager','mandate','marilyn','markers','marking','martial','massage','massive','matches','matters','matthew','meaning','medline','memphis','mercury','message','mexican','michael','mileage','minimal','minimum','minolta','miracle','mirrors','missile','missing','mission','mistake','mobiles','modular','moldova','moments','monitor','montana','monthly','mounted','mozilla','muscles','museums','mystery','nations','natural','nearest','nervous','newport','nigeria','norfolk','nothing','noticed','notices','nowhere','numeric','nursery','oakland','obesity','observe','october','officer','offices','olympic','ongoing','opening','operate','opposed','optical','optimum','ordered','origins','orlando','orleans','outcome','outline','outlook','outputs','overall','package','packets','painful','parking','partner','passage','passing','passive','patches','patrick','payable','payment','pendant','pension','percent','perhaps','persian','persons','philips','phoenix','phrases','physics','picking','picture','pioneer','pirates','pissing','placing','planets','planned','plastic','players','podcast','polymer','pontiac','popular','porsche','portion','possess','posters','posting','pottery','poultry','poverty','powered','prairie','prayers','precise','premium','prepaid','prepare','preston','primary','printed','printer','privacy','private','proceed','product','profile','profits','program','project','promise','promote','prophet','protect','protest','provide','pulling','pushing','putting','puzzles','qualify','quality','quantum','queries','radical','rainbow','raising','raleigh','rangers','ranging','ranking','ratings','reached','reaches','reading','realize','rebecca','rebound','receive','recipes','records','recover','refined','reflect','reforms','refused','regards','related','relates','release','relying','remains','remarks','removed','renewal','rentals','replace','replica','replies','reprint','request','require','reserve','resorts','resumes','retreat','reunion','reuters','reveals','revenge','revenue','richard','roberts','rolling','romance','romania','roughly','routers','routine','royalty','running','runtime','russell','russian','sailing','samsung','satisfy','savings','scanned','schemes','schools','scripts','seafood','seattle','seconds','secrets','section','sectors','secured','seekers','seeking','selling','seminar','senator','senegal','serious','servers','serving','seventh','several','shadows','shakira','shannon','shemale','sheriff','sherman','shipped','shorter','shortly','showing','shuttle','siemens','silence','silicon','similar','simpson','sisters','sitemap','skilled','smoking','society','solaris','soldier','solomon','solving','somalia','spatial','speaker','species','specify','spencer','spirits','sponsor','stadium','started','starter','startup','stating','station','statute','staying','stephen','stewart','sticker','stopped','storage','stories','strange','stretch','strings','student','studied','studies','studios','stuffed','subject','success','sucking','suggest','summary','sunrise','support','surface','surfing','surgery','surplus','survive','suspect','swedish','symbols','systems','tablets','tactics','talking','teacher','teaches','telecom','telling','tension','terrace','terrain','texture','theatre','therapy','thereof','thermal','thought','threads','thunder','timothy','tobacco','tonight','toolkit','totally','touring','tourism','towards','tracked','tractor','trading','traffic','tragedy','trailer','trainer','transit','travels','treated','triumph','trouble','trusted','trustee','tsunami','tuition','twisted','unknown','updated','upgrade','uruguay','utility','utilize','vampire','vanilla','various','varying','vendors','venture','verizon','version','vessels','veteran','victims','victory','vietnam','viewers','vincent','vintage','violent','virtual','visible','visited','visitor','vitamin','voltage','walking','wallace','wanting','warning','warrant','warrior','washing','wearing','weather','webcams','webpage','webster','wedding','welcome','welding','western','whereas','whether','wichita','windows','winning','winston','wishing','without','worried','worship','wrapped','written','wyoming','younger']\n\nconst words_8 = ['aberdeen','abortion','absolute','abstract','academic','accepted','accessed','accident','accounts','achieved','acoustic','acquired','activity','actually','adapters','adelaide','adequate','admitted','adoption','advances','advisors','advisory','advocacy','advocate','airplane','alliance','allowing','although','aluminum','american','americas','analyses','analysis','analysts','analyzed','animated','announce','annoying','annually','antibody','antiques','anything','anywhere','apparent','appeared','appendix','applying','approach','approval','approved','aquarium','archived','archives','arrested','articles','artistic','asbestos','assembly','assessed','assigned','athletic','atlantic','attached','attempts','attorney','auckland','auctions','audience','aviation','avoiding','bacteria','balanced','barbados','bargains','barriers','baseball','baseline','basement','basename','bathroom','bedrooms','beginner','behavior','believed','believes','benefits','benjamin','berkeley','beverage','biblical','bleeding','blocking','bloggers','blogging','blowjobs','bookings','bookmark','botswana','bracelet','bradford','branches','breaking','breeding','briefing','brighton','bringing','brisbane','brooklyn','brothers','browsers','browsing','brunette','budapest','builders','building','bulgaria','business','cadillac','calendar','cambodia','cameroon','campaign','campbell','canadian','canberra','capacity','captured','carnival','carolina','carriers','cartoons','cassette','catering','catholic','cellular','cemetery','centered','ceremony','chairman','changing','channels','chapters','chargers','charging','charming','checking','checkout','chemical','choosing','churches','cingular','circuits','citation','citizens','civilian','classics','cleaners','cleaning','clearing','clicking','clinical','clothing','clusters','coaching','cocktail','collapse','colleges','colombia','colonial','colorado','columbia','columbus','combines','commands','comments','commerce','commonly','compiled','complete','composer','compound','computed','computer','concepts','concerns','conclude','concrete','conflict','congress','consider','consists','consoles','constant','contacts','contains','contents','contests','contrary','contrast','controls','cookbook','cordless','costumes','councils','counties','coverage','covering','creating','creative','creature','criminal','critical','crossing','cultural','cultures','cumshots','currency','customer','database','davidson','deadline','dealtime','december','decision','declared','declined','decrease','deferred','delaware','delivers','democrat','dentists','deposits','describe','desktops','detailed','detector','deutsche','develops','diabetes','dialogue','diameter','diamonds','directed','directly','disabled','disagree','disclose','discount','discover','diseases','disorder','dispatch','displays','disputes','distinct','district','dividend','division','document','domestic','dominant','donation','download','downtown','drainage','dressing','drilling','drinking','duration','dynamics','earliest','earnings','earrings','economic','editions','educated','egyptian','elements','elephant','emerging','emirates','emission','emphasis','employed','employee','employer','encoding','engaging','engineer','enhanced','enormous','ensemble','entering','entirely','entities','entitled','entrance','envelope','epinions','episodes','equality','equation','equipped','ethernet','ethiopia','everyday','everyone','evidence','examined','examples','excluded','executed','exercise','exhibits','existing','expanded','expansys','expected','expenses','explicit','explorer','exposure','extended','external','fabulous','facility','familiar','families','favorite','featured','features','february','feedback','feelings','fighters','fighting','filename','finances','findings','fioricet','firewall','firewire','firmware','fixtures','flashers','florists','followed','footwear','forestry','formerly','fountain','fraction','franklin','freeware','frequent','friendly','frontier','function','gamecube','gamespot','gangbang','gasoline','generate','genetics','geometry','gorgeous','governor','graduate','grateful','greatest','greeting','guardian','guidance','hamilton','handbags','handbook','handjobs','handling','happened','hardcore','hardware','hardwood','harrison','hartford','hawaiian','headline','hearings','heritage','highland','hispanic','historic','holdings','holidays','homeland','homepage','hometown','honduras','horrible','hospital','humidity','hydrogen','identify','identity','impaired','improved','incident','included','includes','incoming','increase','incurred','indicate','indirect','industry','infinite','informal','informed','injuries','innocent','inserted','insights','inspired','integral','interact','interest','interior','internal','interval','intranet','invasion','investor','invision','involved','involves','istanbul','italiano','japanese','jennifer','johnston','jonathan','journals','judicial','junction','kentucky','keywords','kingston','launched','launches','lawrence','learners','learning','lectures','lesbians','licensed','licenses','lightbox','lighting','likewise','limiting','lingerie','listings','literacy','literary','location','logitech','machines','magazine','mainland','maintain','majority','maldives','manitoba','manually','marathon','margaret','maritime','marriage','marriott','marshall','matching','material','mattress','maximize','measured','measures','medicaid','medicare','medieval','meetings','membrane','memories','messages','metadata','michelle','michigan','midlands','midnight','military','millions','minerals','minimize','minister','ministry','minority','missions','missouri','mistakes','mistress','mitchell','mobility','modeling','moderate','modified','moisture','momentum','monetary','mongolia','monitors','monsters','moreover','mortgage','mountain','movement','multiple','musician','naturals','navigate','nebraska','necklace','negative','neighbor','netscape','networks','nicholas','nickname','nintendo','nitrogen','normally','northern','notebook','notified','november','numerous','observed','obtained','occasion','occupied','offering','officers','official','offshore','oklahoma','olympics','openings','operated','operates','operator','opinions','opponent','opposite','ordering','ordinary','oriented','original','outcomes','outlined','outreach','overcome','overhead','overview','packages','painting','pakistan','paraguay','particle','partners','passport','password','patricia','patterns','pavilion','payments','peaceful','pensions','personal','peterson','petition','pharmacy','phillips','physical','pictures','pipeline','planning','plastics','platform','playback','playlist','pleasant','plumbing','plymouth','podcasts','pointing','policies','portable','portions','portland','portrait','positive','possibly','postcard','postings','potatoes','practice','precious','pregnant','premiere','premises','presence','presents','preserve','pressure','princess','printers','priority','prisoner','probably','problems','proceeds','producer','produces','products','profiles','programs','progress','projects','promised','promoted','promotes','promptly','propecia','properly','property','proposal','proposed','prospect','prostate','proteins','provider','provides','province','publicly','purchase','pursuant','quantity','quarters','question','reaching','reaction','readings','realtors','received','receiver','receives','recently','receptor','recovery','reducing','referred','reflects','refugees','regarded','regional','registry','relating','relation','relative','released','releases','religion','remained','remedies','remember','reminder','removing','rendered','repeated','replaced','reported','reporter','republic','requests','required','requires','research','reseller','reserves','resident','resolved','resource','response','restored','restrict','resulted','retailer','retained','retrieve','returned','revealed','revenues','reviewer','revision','reynolds','richards','richmond','ringtone','robinson','romantic','rotation','roulette','routines','salaries','salvador','sampling','sandwich','sapphire','savannah','scanners','scanning','scenario','schedule','scholars','sciences','scotland','scottish','searched','seasonal','sections','securely','security','selected','semester','seminars','sentence','separate','sequence','sessions','settings','sexually','shanghai','shemales','shepherd','shipment','shipping','shooting','shoppers','shopping','shoulder','simpsons','situated','sleeping','slightly','smallest','softball','software','soldiers','solution','somebody','somerset','somewhat','southern','spanking','speaking','specific','speeches','spelling','sponsors','sporting','springer','staffing','standard','standing','starting','stations','steering','sterling','stopping','straight','strength','striking','stronger','strongly','struggle','students','stunning','suburban','suddenly','suffered','suitable','superior','supplied','supplier','supplies','supposed','surfaces','surgeons','surgical','surprise','survival','survivor','swimming','swingers','switched','sympathy','symphony','symptoms','syndrome','synopsis','talented','tanzania','targeted','taxation','template','terminal','terrible','thailand','theaters','theology','thinking','thinkpad','thompson','thorough','thoughts','thousand','threaded','throwing','thursday','timeline','titanium','together','tomatoes','tracking','trailers','trainers','training','transfer','transmit','treasure','treasury','treating','triangle','tribunal','trinidad','tropical','trustees','tutorial','ultimate','universe','untitled','upcoming','upgrades','uploaded','upskirts','vacation','validity','valuable','variable','variance','ventures','verified','versions','vertical','veterans','vibrator','victoria','villages','visitors','vitamins','warcraft','warnings','warranty','warriors','watching','webshots','websites','weddings','weekends','weighted','wellness','whatever','whenever','wherever','wildlife','wireless','wishlist','workflow','workshop','worldcat','worldsex','zimbabwe']\n\nconst words_9 = ['abandoned','abilities','abstracts','academics','accepting','accessing','accessory','accidents','according','achieving','activated','activists','addiction','additions','addressed','addresses','admission','advantage','adventure','advertise','aerospace','affecting','affiliate','aggregate','agreement','alexander','algorithm','alignment','allocated','allowance','alternate','aluminium','amendment','amenities','americans','amplifier','amsterdam','animation','annotated','announced','announces','anonymous','answering','antivirus','apartment','apparatus','appearing','appliance','applicant','appointed','appraisal','arbitrary','architect','argentina','arguments','arlington','armstrong','arthritis','assembled','assessing','assistant','associate','assurance','astrology','astronomy','athletics','attempted','attending','attention','attitudes','attorneys','attribute','australia','authentic','authority','automated','automatic','available','awareness','bacterial','baltimore','bandwidth','barcelona','basically','bathrooms','batteries','beautiful','beginners','beginning','behaviour','benchmark','beverages','biography','blackjack','bloomberg','bluetooth','bookmarks','bookstore','boulevard','bracelets','brazilian','breakdown','breakfast','breathing','brilliant','broadband','broadcast','brochures','brunswick','buildings','bulgarian','butterfly','calculate','calendars','cambridge','camcorder','campaigns','cancelled','candidate','carefully','caribbean','cartridge','catalogue','cathedral','catherine','celebrate','celebrity','centuries','certainly','certified','challenge','champagne','champions','changelog','character','charlotte','checklist','chemicals','chemistry','chevrolet','childhood','childrens','chocolate','christian','christina','christine','christmas','chronicle','cigarette','citations','classical','classroom','clearance','cleveland','coalition','cognitive','colleague','collected','collector','combining','commander','commented','committed','committee','commodity','communist','community','companies','companion','comparing','competent','competing','complaint','completed','compliant','component','composite','compounds','computers','computing','concerned','concluded','condition','conducted','confident','configure','confirmed','conflicts','confusion','connected','connector','conscious','consensus','considers','construct','consumers','contacted','contained','container','continent','continued','continues','contracts','converted','converter','convicted','convinced','copyright','corporate','corrected','correctly','cosmetics','countries','creations','creatures','criterion','criticism','crossword','currently','customers','customise','customize','dangerous','databases','daughters','decisions','decreased','dedicated','defendant','defensive','delicious','delivered','demanding','democracy','democrats','departure','dependent','depending','described','describes','designers','designing','desirable','desperate','destroyed','detection','detective','determine','developed','developer','deviation','diagnosis','different','difficult','dimension','direction','directive','directors','directory','discharge','discounts','discovery','discussed','discusses','disorders','displayed','distances','districts','disturbed','diversity','divisions','documents','dominican','donations','downloads','duplicate','ecommerce','economics','economies','edinburgh','editorial','educators','effective','efficient','elections','electoral','elevation','eliminate','elizabeth','elsewhere','emergency','emissions','emotional','empirical','employees','employers','enclosure','encounter','encourage','engineers','enhancing','enquiries','equations','equipment','essential','establish','estimated','estimates','evaluated','everybody','evolution','examining','excellent','exception','excessive','exchanges','excluding','exclusion','exclusive','execution','executive','exemption','exercises','existence','expanding','expansion','expensive','expertise','explained','exploring','explosion','expressed','extending','extension','extensive','extremely','fairfield','fantastic','favorites','favourite','featuring','festivals','filtering','financial','financing','fingering','finishing','fireplace','fisheries','following','forbidden','forecasts','forgotten','formation','fragrance','framework','franchise','francisco','frankfurt','frederick','freelance','frequency','frontpage','functions','furnished','furniture','galleries','gardening','gathering','genealogy','generally','generated','generates','generator','gentleman','geography','gibraltar','governing','gradually','graduates','greetings','guarantee','guatemala','guestbook','halloween','hampshire','handhelds','happening','happiness','hardcover','hazardous','headlines','henderson','hepatitis','hierarchy','highlight','hollywood','holocaust','hopefully','hospitals','household','hungarian','hurricane','hydraulic','identical','immediate','implement','important','impressed','improving','incentive','incidence','incidents','including','inclusion','inclusive','incorrect','increased','increases','indicated','indicates','indicator','indonesia','induction','infection','inflation','influence','inherited','initially','initiated','injection','inquiries','insertion','inspector','installed','instances','instantly','institute','insurance','integrate','integrity','intensity','intensive','intention','interests','interface','intervals','interview','introduce','invention','inventory','investing','investors','invisible','involving','isolation','jefferson','jerusalem','jewellery','keyboards','knowledge','lafayette','lancaster','landscape','languages','legendary','lexington','liability','librarian','libraries','licensing','lifestyle','lightning','listening','listprice','literally','lithuania','liverpool','livestock','logistics','longitude','looksmart','louisiana','macedonia','machinery','macintosh','magazines','magnitude','maintains','mandatory','manhattan','marijuana','marketing','materials','maternity','mauritius','meanwhile','measuring','mechanics','mechanism','mediawiki','medicines','melbourne','mentioned','merchants','messaging','metallica','microsoft','microwave','migration','milwaukee','miniature','ministers','minnesota','modelling','moderator','molecular','molecules','monitored','mortality','mortgages','motivated','movements','municipal','musicians','namespace','narrative','nashville','naturally','navigator','necessary','necessity','neighbors','newcastle','newspaper','nicaragua','nightlife','nightmare','nominated','nonprofit','northeast','northwest','norwegian','notebooks','numerical','nutrition','objective','obtaining','obviously','occasions','occurring','offensive','offerings','officials','omissions','operating','operation','operators','opponents','orchestra','ordinance','organised','organisms','organized','otherwise','ourselves','overnight','ownership','packaging','paintball','paintings','palestine','panasonic','pantyhose','paperback','paragraph','parameter','parenting','partially','particles','partition','passenger','passwords','pathology','pediatric','penalties','perceived','perfectly','performed','performer','permalink','permanent','permitted','personals','personnel','petroleum','photoshop','physician','pichunter','placement','plaintiff','platforms','political','pollution','polyester','porcelain','portfolio','portraits','positions','postcards','potential','practical','practices','preceding','precisely','precision','predicted','preferred','pregnancy','preparing','presented','presently','president','primarily','princeton','principal','principle','printable','prisoners','privilege','procedure','processed','processes','processor','producers','producing','professor','programme','projected','projector','prominent','promising','promoting','promotion','proposals','prospects','prostores','protected','protocols','prototype','providers','providing','provinces','provision','publicity','published','publisher','purchased','purchases','qualified','qualities','quarterly','questions','radiation','reactions','realistic','reasoning','receivers','receiving','reception','receptors','recipient','recognize','recommend','recorders','recording','recovered','recycling','reduction','reference','referrals','referring','refinance','reflected','regarding','registrar','regularly','regulated','relations','relatives','relevance','religions','religious','remainder','remaining','removable','rendering','renewable','replacing','reporters','reporting','represent','reproduce','requested','requiring','reservoir','residence','residents','resistant','resources','respected','responded','responses','resulting','retailers','retention','retrieval','retrieved','returning','reviewing','revisions','ringtones','riverside','robertson','rochester','roommates','sacrifice','salvation','satellite','satisfied','scenarios','scheduled','schedules','scientist','screening','scripting','sculpture','searching','secondary','secretary','selecting','selection','selective','sensitive','sentences','separated','september','sequences','seriously','sexuality','shareware','sheffield','shipments','shopzilla','shortcuts','showtimes','signature','similarly','singapore','situation','slideshow','snowboard','societies','sociology','solutions','something','sometimes','somewhere','southeast','southwest','specially','specialty','specifics','specified','specifies','spiritual','spokesman','sponsored','spotlight','spreading','squirting','stability','stainless','standards','standings','statement','statewide','statutory','stephanie','stockholm','stockings','strategic','streaming','strengths','structure','submitted','subscribe','substance','suffering','suggested','summaries','suppliers','supported','surprised','survivors','suspected','suspended','sustained','swaziland','switching','symposium','syndicate','synthesis','synthetic','technical','technique','telephone','telephony','telescope','templates','temporary','tennessee','terminals','territory','terrorism','terrorist','testament','testimony','textbooks','therapist','therefore','thesaurus','thickness','thousands','threesome','threshold','thumbnail','tolerance','trackback','trademark','tradition','transfers','transform','translate','transport','travelers','traveling','traveller','treasurer','treasures','treatment','tutorials','typically','undefined','undertake','underwear','uniprotkb','universal','unlimited','upgrading','utilities','vacancies','vacations','valentine','valuation','vancouver','variables','variation','varieties','vbulletin','vegetable','venezuela','vibrators','victorian','violation','virtually','voluntary','volunteer','voyeurweb','wallpaper','warehouse','watershed','webmaster','wednesday','wholesale','wikipedia','wisconsin','witnesses','wonderful','wondering','worcester','wordpress','workforce','workplace','workshops','worldwide','wrestling','yesterday','yorkshire','zoophilia']\n\nconst words_10 = ['aboriginal','absolutely','absorption','acceptable','acceptance','accessible','accomplish','accordance','accounting','accredited','accurately','acdbentity','activation','activities','adaptation','additional','addressing','adjustable','adjustment','admissions','adolescent','advantages','adventures','advertiser','affiliated','affiliates','affordable','afterwards','aggressive','agreements','alexandria','algorithms','allocation','ambassador','amendments','analytical','annotation','antarctica','antibodies','apartments','apparently','appearance','appliances','applicable','applicants','appreciate','approaches','architects','artificial','assessment','assignment','assistance','associated','associates','assumption','atmosphere','attachment','attempting','attendance','attraction','attractive','attributes','australian','authorized','automation','automobile','automotive','azerbaijan','background','bangladesh','bankruptcy','basketball','beastality','behavioral','beneficial','bestiality','biological','birmingham','blackberry','boundaries','britannica','burlington','businesses','calculated','calculator','california','camcorders','candidates','capability','cartridges','categories','challenged','challenges','chancellor','characters','charitable','charleston','christians','chronicles','cigarettes','cincinnati','citysearch','classified','colleagues','collecting','collection','collective','collectors','columnists','commentary','commercial','commission','commitment','committees','comparable','comparison','compatible','complaints','complement','completely','completing','completion','complexity','compliance','components','compressed','compromise','conceptual','concerning','conclusion','conditions','conducting','conference','confidence','configured','connecting','connection','connectors','considered','consistent','consisting','consortium','conspiracy','constantly','constitute','constraint','consultant','consulting','contacting','containers','containing','continuing','continuity','continuous','contractor','contribute','controlled','controller','convenient','convention','conversion','conviction','coordinate','copyrights','correction','corruption','counseling','creativity','cumulative','currencies','curriculum','customized','decorating','decorative','definitely','definition','delegation','delivering','democratic','department','dependence','deployment','depression','descending','describing','designated','determined','determines','developers','developing','diagnostic','dictionary','difference','difficulty','dimensions','directions','disability','discipline','disclaimer','disclosure','discounted','discovered','discretion','discussing','discussion','dispatched','displaying','distribute','documented','downloaded','earthquake','ecological','editorials','efficiency','electrical','electronic','elementary','employment','encouraged','encourages','encryption','endangered','engagement','enrollment','enterprise','equivalent','especially','essentials','estimation','evaluating','evaluation','eventually','everything','everywhere','excellence','exceptions','excitement','executives','exhibition','experience','experiment','expiration','explaining','explicitly','expression','extensions','extraction','facilitate','facilities','favourites','federation','fellowship','formatting','forwarding','foundation','fragrances','frequently','friendship','functional','generating','generation','generators','geographic','geological','girlfriend','governance','government','graduation','greenhouse','greensboro','guaranteed','guarantees','guidelines','harassment','headphones','healthcare','helicopter','highlights','historical','horizontal','households','housewares','housewives','humanities','huntington','hypothesis','identified','identifier','identifies','immigrants','immunology','importance','impossible','impression','impressive','incentives','incomplete','increasing','incredible','indicating','indication','indicators','indigenous','individual','indonesian','industrial','industries','infections','infectious','influenced','influences','initiative','innovation','innovative','inspection','installing','institutes','instructor','instrument','insulation','integrated','interested','interfaces','internship','interstate','interviews','introduced','introduces','investment','invitation','irrigation','javascript','journalism','journalist','kazakhstan','kilometers','laboratory','landscapes','lauderdale','leadership','legitimate','likelihood','limitation','limousines','literature','litigation','louisville','luxembourg','macromedia','madagascar','mainstream','maintained','management','manchester','mastercard','meaningful','mechanical','mechanisms','medication','meditation','membership','metabolism','microphone','milfhunter','millennium','ministries','mitsubishi','moderators','monitoring','montgomery','motivation','motorcycle','mozambique','multimedia','mysterious','nationally','nationwide','navigation','networking','newsletter','newspapers','nomination','nottingham','obituaries','objectives','obligation','occasional','occupation','occurrence','officially','operations','opposition','organizing','originally','paperbacks','paragraphs','parameters','parliament','particular','passengers','percentage','perception','performing','peripheral','permission','persistent','personally','petersburg','pharmacies','phenomenon','philosophy','photograph','physically','physicians','physiology','pittsburgh','polyphonic','popularity','population','portsmouth','portuguese','possession','postposted','powerpoint','prediction','preference','prescribed','presenting','preventing','prevention','previously','principles','priorities','privileges','procedures','proceeding','processing','processors','production','productive','profession','programmer','programmes','prohibited','projection','projectors','promotions','properties','proportion','protecting','protection','protective','providence','provincial','provisions','psychiatry','psychology','publishers','publishing','punishment','purchasing','qualifying','quantities','queensland','quotations','reasonable','reasonably','recipients','recognised','recognized','recommends','recordings','recreation','recruiting','reductions','referenced','references','reflection','regardless','registered','regression','regulation','regulatory','relatively','relaxation','relocation','remarkable','remembered','repository','represents','reproduced','republican','reputation','requesting','researcher','resistance','resolution','respective','respondent','responding','restaurant','restricted','retirement','revelation','revolution','richardson','sacramento','scheduling','scientific','scientists','screenshot','securities','selections','separately','separation','settlement','signatures','simplified','simulation','situations','soundtrack','specialist','statements','stationery','statistics','strategies','strengthen','structural','structured','structures','subjective','submission','submitting','subscriber','subsection','subsequent','subsidiary','substances','substitute','successful','sufficient','suggesting','suggestion','sunglasses','supervisor','supplement','supporters','supporting','surprising','surrounded','suspension','systematic','technician','techniques','technology','television','terrorists','themselves','thereafter','thoroughly','threatened','throughout','thumbnails','thumbzilla','tournament','trackbacks','trademarks','traditions','transcript','transexual','transition','translated','translator','travelling','treatments','tremendous','ultimately','underlying','understand','understood','undertaken','unexpected','university','uzbekistan','validation','variations','vegetables','vegetarian','vegetation','veterinary','vietnamese','violations','visibility','vocabulary','vocational','volkswagen','volleyball','volunteers','vulnerable','wallpapers','warranties','washington','waterproof','webmasters','wellington','widescreen','widespread','wilderness','withdrawal','yugoslavia']\n\nconst extra_words = [words_6,words_7,words_8,words_9,words_10]\n \nfunction isGameRunning(){\n return storeExist(\"game\")\n}\nfunction getRandomWord(length){\n let filtered;\n \tif(length == 5 || length > 10){\n filtered = wordList.filter(x => x.length == 5);\n }\n else{\n filtered = extra_words[length - 6]\n }\n \tlet word = filtered[Math.floor(Math.random() * filtered.length)].toUpperCase()\n if(!IRC.wordList.includes(word))\n return getRandomWord(length)\n return word;\n}\nfunction startGame(length){\n let word = getRandomWord(length);\n store.set(\"game\",word);\n store.set(\"hint\",'_ '.repeat(length))\n store.set(\"correct\",\"\")\n store.set(\"guesses\", 0)\n store.set(\"letters\",\"\")\n print(`★ {y}Game{/} started ${'_ '.repeat(length)}`)\n IRC.require('module.count').next()\n}\nfunction getGuesses(){\n return +store.get(\"guesses\")\n}\nfunction resetGuesses(){\n store.set(\"guesses\", 0)\n}\nfunction increaseGuesses(){\n store.set(\"guesses\", getGuesses() + 1)\n}\nfunction storeExist(key){\n return typeof(store.get(key)) !== \"undefined\"\n}\nfunction endGame(){\n resetGuesses();\n store.set(\"letters\",\"\")\n store.set(\"correct\",\"\")\n store.set(\"game\",undefined)\n}\nfunction computeHint(input){\n const word = store.get(\"game\")\n let hint = \"\"\n let correct = store.get(\"correct\")\n for(let i = 0; i < word.length; i++){\n if(word[i] == input[i]){\n hint = hint.concat(`{g}${word[i]}{/} `)\n if(!correct.includes(`{g}${word[i]}{/}${i+1} `)){\n correct = correct.concat(`{g}${word[i]}{/}${i+1} `)\n if(correct.includes(`{y}${word[i]}{/}`)){\n correct = correct.replaceAll(`{y}${word[i]}{/} `, \"\")\n }\n }\n }\n else if(word.includes(input[i]) && !hint.includes(`{y}${input[i]}{/}`) && !hint.includes(`{g}${input[i]}{/}`)){\n hint = hint.concat(`{y}${input[i]}{/} `)\n if(!correct.includes(input[i])){\n \tcorrect = correct.concat(`{y}${input[i]}{/} `)\n } \n }\n else{\n hint = hint.concat('_ ')\n }\n }\n store.set(\"hint\",hint)\n store.set(\"correct\",correct)\n}\nfunction removeDups(str){\n return Array.from(new Set(str.split())).join();\n}\n\nfunction isCorrect(input){\n return input == store.get(\"game\")\n}\n \nfunction unguessedLetters(input){\n // remove duplicates\n const alphabet = Array.from(\"ABCDEFGHIJKLMNOPQRSTUVWXYZ\")\n let guessedLetters = store.get(\"letters\")\n let update = guessedLetters.concat(removeDups(input))\n store.set(\"letters\",update)\n return alphabet.filter(x => !update.includes(x))\n}\n\n\nfunction saveHighScore(user){\n // Increase the High Score of a user who answered correctly\n let score = 8 - +store.get(\"guesses\")\n if (storeExist(user)){\n store.set(user, +store.get(user) + score)\n }else{\n store.set(user,score)\n }\n}\n\nconst { from } = IRC.message;\n\nfunction main(){\n if(isGameRunning()){\n if(!input){\n print(`Game running: ${store.get(\"hint\")}`)\n print(`Unguessed: ${unguessedLetters(\"\").sort().join(\" \")}`)\n print(`Correct : ${store.get(\"correct\")}`)\n }else{\n input = input.toUpperCase()\n if(!IRC.wordList.includes(input) || input.length != store.get(\"game\").length){\n print(\"Not a valid word\")\n return\n }\n increaseGuesses()\n if(isCorrect(input)){\n saveHighScore(from);\n print(`Correct from {dc}${from}{/}. {dc}${from}{/} has ${+store.get(from)} points`);\n endGame();\n }else{\n let user_try = getGuesses()\n if (user_try > 6){\n \tprint('Incorrect')\n print('You all lost') \n print(`The word was ${store.get(\"game\")}`)\n \tendGame();\n }else{\n computeHint(input)\n print(store.get(\"hint\")) \n print(`Unguessed: ${unguessedLetters(input).sort().join(\" \")}`)\n print(`Correct : ${store.get(\"correct\")}`)\n print(`${6 - user_try} Guess${6 - user_try == 1 ? '' : 'es'} left`)\n } \n }\n }\n }else{\n if (input.length > 0){\n if(isNaN(input) || +input < 5){\n print(\"No game running dummy\")\n }else{\n print(\"Starting game of length: \" + input)\n startGame(+input);\n }\n \n }else{\n print(\"Starting normal wordle game\")\n startGame(5); \n }\n }\n}\nif(!module.required){\n main();\n}" + "command": "let wordList= [\n \"ABOUT\",\n \"OTHER\",\n \"WHICH\",\n \"THEIR\",\n \"THERE\",\n \"FIRST\",\n \"WOULD\",\n \"THESE\",\n \"CLICK\",\n \"PRICE\",\n \"STATE\",\n \"EMAIL\",\n \"WORLD\",\n \"MUSIC\",\n \"AFTER\",\n \"VIDEO\",\n \"WHERE\",\n \"BOOKS\",\n \"LINKS\",\n \"YEARS\",\n \"ORDER\",\n \"ITEMS\",\n \"GROUP\",\n \"UNDER\",\n \"GAMES\",\n \"COULD\",\n \"GREAT\",\n \"HOTEL\",\n \"STORE\",\n \"TERMS\",\n \"RIGHT\",\n \"LOCAL\",\n \"THOSE\",\n \"USING\",\n \"PHONE\",\n \"FORUM\",\n \"BASED\",\n \"BLACK\",\n \"CHECK\",\n \"INDEX\",\n \"BEING\",\n \"WOMEN\",\n \"TODAY\",\n \"SOUTH\",\n \"PAGES\",\n \"FOUND\",\n \"HOUSE\",\n \"PHOTO\",\n \"POWER\",\n \"WHILE\",\n \"THREE\",\n \"TOTAL\",\n \"PLACE\",\n \"THINK\",\n \"NORTH\",\n \"POSTS\",\n \"MEDIA\",\n \"WATER\",\n \"SINCE\",\n \"GUIDE\",\n \"BOARD\",\n \"WHITE\",\n \"SMALL\",\n \"TIMES\",\n \"SITES\",\n \"LEVEL\",\n \"HOURS\",\n \"IMAGE\",\n \"TITLE\",\n \"SHALL\",\n \"CLASS\",\n \"STILL\",\n \"MONEY\",\n \"EVERY\",\n \"VISIT\",\n \"TOOLS\",\n \"REPLY\",\n \"VALUE\",\n \"PRESS\",\n \"LEARN\",\n \"PRINT\",\n \"STOCK\",\n \"POINT\",\n \"SALES\",\n \"LARGE\",\n \"TABLE\",\n \"START\",\n \"MODEL\",\n \"HUMAN\",\n \"MOVIE\",\n \"MARCH\",\n \"YAHOO\",\n \"GOING\",\n \"STUDY\",\n \"STAFF\",\n \"AGAIN\",\n \"APRIL\",\n \"NEVER\",\n \"USERS\",\n \"TOPIC\",\n \"BELOW\",\n \"PARTY\",\n \"LOGIN\",\n \"LEGAL\",\n \"ABOVE\",\n \"QUOTE\",\n \"STORY\",\n \"RATES\",\n \"YOUNG\",\n \"FIELD\",\n \"PAPER\",\n \"GIRLS\",\n \"NIGHT\",\n \"TEXAS\",\n \"POKER\",\n \"ISSUE\",\n \"RANGE\",\n \"COURT\",\n \"AUDIO\",\n \"LIGHT\",\n \"WRITE\",\n \"OFFER\",\n \"GIVEN\",\n \"FILES\",\n \"EVENT\",\n \"CHINA\",\n \"NEEDS\",\n \"MIGHT\",\n \"MONTH\",\n \"MAJOR\",\n \"AREAS\",\n \"SPACE\",\n \"CARDS\",\n \"CHILD\",\n \"ENTER\",\n \"SHARE\",\n \"ADDED\",\n \"RADIO\",\n \"UNTIL\",\n \"COLOR\",\n \"TRACK\",\n \"LEAST\",\n \"TRADE\",\n \"DAVID\",\n \"GREEN\",\n \"CLOSE\",\n \"DRIVE\",\n \"SHORT\",\n \"MEANS\",\n \"DAILY\",\n \"BEACH\",\n \"COSTS\",\n \"STYLE\",\n \"FRONT\",\n \"PARTS\",\n \"EARLY\",\n \"MILES\",\n \"SOUND\",\n \"WORKS\",\n \"RULES\",\n \"FINAL\",\n \"ADULT\",\n \"THING\",\n \"CHEAP\",\n \"THIRD\",\n \"GIFTS\",\n \"COVER\",\n \"OFTEN\",\n \"WATCH\",\n \"DEALS\",\n \"WORDS\",\n \"LINUX\",\n \"JAMES\",\n \"HEART\",\n \"ERROR\",\n \"CLEAR\",\n \"MAKES\",\n \"INDIA\",\n \"TAKEN\",\n \"KNOWN\",\n \"CASES\",\n \"QUICK\",\n \"WHOLE\",\n \"LATER\",\n \"BASIC\",\n \"SHOWS\",\n \"ALONG\",\n \"AMONG\",\n \"DEATH\",\n \"SPEED\",\n \"BRAND\",\n \"STUFF\",\n \"JAPAN\",\n \"DOING\",\n \"LOANS\",\n \"SHOES\",\n \"ENTRY\",\n \"NOTES\",\n \"FORCE\",\n \"RIVER\",\n \"ALBUM\",\n \"VIEWS\",\n \"PLANS\",\n \"BUILD\",\n \"TYPES\",\n \"LINES\",\n \"APPLY\",\n \"ASKED\",\n \"CROSS\",\n \"WEEKS\",\n \"LOWER\",\n \"UNION\",\n \"NAMES\",\n \"LEAVE\",\n \"TEENS\",\n \"WOMAN\",\n \"CABLE\",\n \"SCORE\",\n \"SHOWN\",\n \"FLASH\",\n \"IDEAS\",\n \"ALLOW\",\n \"HOMES\",\n \"SUPER\",\n \"ASIAN\",\n \"CAUSE\",\n \"FOCUS\",\n \"ROOMS\",\n \"VOICE\",\n \"COMES\",\n \"BROWN\",\n \"FORMS\",\n \"GLASS\",\n \"HAPPY\",\n \"SMITH\",\n \"THANK\",\n \"PRIOR\",\n \"SPORT\",\n \"READY\",\n \"ROUND\",\n \"BUILT\",\n \"BLOOD\",\n \"EARTH\",\n \"NOKIA\",\n \"ITALY\",\n \"BASIS\",\n \"AWARD\",\n \"PETER\",\n \"EXTRA\",\n \"PUSSY\",\n \"RATED\",\n \"QUITE\",\n \"HORSE\",\n \"STARS\",\n \"LISTS\",\n \"OWNER\",\n \"TAKES\",\n \"BRING\",\n \"INPUT\",\n \"AGENT\",\n \"VALID\",\n \"GRAND\",\n \"TRIAL\",\n \"UNITS\",\n \"WROTE\",\n \"SHIPS\",\n \"METAL\",\n \"FUNDS\",\n \"GUEST\",\n \"SEEMS\",\n \"TRUST\",\n \"MULTI\",\n \"GRADE\",\n \"PANEL\",\n \"FLOOR\",\n \"MATCH\",\n \"PLANT\",\n \"SENSE\",\n \"STAGE\",\n \"GOODS\",\n \"MAYBE\",\n \"SPAIN\",\n \"YOUTH\",\n \"BREAK\",\n \"DANCE\",\n \"APPLE\",\n \"ENJOY\",\n \"BLOCK\",\n \"CIVIL\",\n \"STEEL\",\n \"SONGS\",\n \"FIXED\",\n \"WRONG\",\n \"HANDS\",\n \"PARIS\",\n \"FULLY\",\n \"WORTH\",\n \"PEACE\",\n \"COAST\",\n \"GRANT\",\n \"AGREE\",\n \"BLOGS\",\n \"SCALE\",\n \"STAND\",\n \"FRAME\",\n \"CHIEF\",\n \"GIVES\",\n \"HEARD\",\n \"BEGIN\",\n \"ROYAL\",\n \"CLEAN\",\n \"BIBLE\",\n \"SUITE\",\n \"VEGAS\",\n \"CHRIS\",\n \"PIECE\",\n \"SHEET\",\n \"SEVEN\",\n \"OLDER\",\n \"CELLS\",\n \"LOOKS\",\n \"CALLS\",\n \"WHOSE\",\n \"NAKED\",\n \"LIVES\",\n \"STONE\",\n \"TESTS\",\n \"BUYER\",\n \"STEVE\",\n \"LABEL\",\n \"SCOTT\",\n \"CANON\",\n \"WASTE\",\n \"CHAIR\",\n \"PHASE\",\n \"MOTOR\",\n \"SHIRT\",\n \"CRIME\",\n \"COUNT\",\n \"CLAIM\",\n \"PATCH\",\n \"SANTA\",\n \"ALONE\",\n \"JONES\",\n \"SAINT\",\n \"DRUGS\",\n \"JOINT\",\n \"FRESH\",\n \"DATES\",\n \"UPPER\",\n \"PRIME\",\n \"LIMIT\",\n \"BEGAN\",\n \"LOUIS\",\n \"STEPS\",\n \"SHOPS\",\n \"CREEK\",\n \"URBAN\",\n \"TOURS\",\n \"LABOR\",\n \"ADMIN\",\n \"HEAVY\",\n \"SOLID\",\n \"THEME\",\n \"PORNO\",\n \"TOUCH\",\n \"GOALS\",\n \"SERVE\",\n \"MAGIC\",\n \"MOUNT\",\n \"SMART\",\n \"LATIN\",\n \"AVOID\",\n \"BIRTH\",\n \"VIRUS\",\n \"ABUSE\",\n \"FACTS\",\n \"FAITH\",\n \"CHAIN\",\n \"MOVED\",\n \"REACH\",\n \"SORRY\",\n \"GAMMA\",\n \"TRUTH\",\n \"FILMS\",\n \"OWNED\",\n \"DRAFT\",\n \"CHART\",\n \"JESUS\",\n \"CLUBS\",\n \"EQUAL\",\n \"CODES\",\n \"KINDS\",\n \"TEAMS\",\n \"FUNNY\",\n \"TRIED\",\n \"NAMED\",\n \"LASER\",\n \"HARRY\",\n \"TAXES\",\n \"MOUSE\",\n \"BRAIN\",\n \"DREAM\",\n \"FALSE\",\n \"FALLS\",\n \"STATS\",\n \"CARRY\",\n \"HELLO\",\n \"CLIPS\",\n \"BRIEF\",\n \"ENDED\",\n \"EIGHT\",\n \"WANTS\",\n \"ALERT\",\n \"QUEEN\",\n \"SWEET\",\n \"DIEGO\",\n \"TRUCK\",\n \"VOTES\",\n \"OCEAN\",\n \"SIGNS\",\n \"DEPTH\",\n \"TRAIN\",\n \"FEEDS\",\n \"ROUTE\",\n \"FRANK\",\n \"ANIME\",\n \"SPEAK\",\n \"QUERY\",\n \"RURAL\",\n \"JUDGE\",\n \"BYTES\",\n \"FIGHT\",\n \"FILED\",\n \"KOREA\",\n \"BANKS\",\n \"KELLY\",\n \"LEADS\",\n \"BRIAN\",\n \"MIAMI\",\n \"WALES\",\n \"MINOR\",\n \"NOTED\",\n \"SPENT\",\n \"DAVIS\",\n \"HELPS\",\n \"CYCLE\",\n \"SLEEP\",\n \"SCENE\",\n \"DRINK\",\n \"INTEL\",\n \"RINGS\",\n \"HENRY\",\n \"GUESS\",\n \"AHEAD\",\n \"DEVEL\",\n \"DELTA\",\n \"CISCO\",\n \"ALPHA\",\n \"BONUS\",\n \"ADOBE\",\n \"TREES\",\n \"DRESS\",\n \"REFER\",\n \"BABES\",\n \"LAYER\",\n \"SPEND\",\n \"CLOCK\",\n \"RATIO\",\n \"PROOF\",\n \"EMPTY\",\n \"MAINE\",\n \"IDEAL\",\n \"SPECS\",\n \"PARKS\",\n \"CREAM\",\n \"BOXES\",\n \"HILLS\",\n \"AWARE\",\n \"SHAPE\",\n \"IRISH\",\n \"FIRMS\",\n \"USAGE\",\n \"MIXED\",\n \"EXIST\",\n \"WHEEL\",\n \"ANGEL\",\n \"WIDTH\",\n \"NOISE\",\n \"ARRAY\",\n \"GREEK\",\n \"SHARP\",\n \"OCCUR\",\n \"KNOWS\",\n \"COACH\",\n \"KEVIN\",\n \"PLATE\",\n \"LOGIC\",\n \"SIZES\",\n \"PLAIN\",\n \"COSTA\",\n \"TRAIL\",\n \"BUDDY\",\n \"SETUP\",\n \"BLUES\",\n \"SCOPE\",\n \"CRAZY\",\n \"BEARS\",\n \"MOUTH\",\n \"METER\",\n \"FRUIT\",\n \"MYSQL\",\n \"LEWIS\",\n \"SUGAR\",\n \"STICK\",\n \"ALLEN\",\n \"GENRE\",\n \"SLIDE\",\n \"EXACT\",\n \"BOUND\",\n \"STORM\",\n \"MICRO\",\n \"DOLLS\",\n \"PAINT\",\n \"DELAY\",\n \"PILOT\",\n \"CZECH\",\n \"NOVEL\",\n \"ULTRA\",\n \"IDAHO\",\n \"PLAYS\",\n \"TRULY\",\n \"LODGE\",\n \"BOOBS\",\n \"BROAD\",\n \"SWISS\",\n \"SARAH\",\n \"CLARK\",\n \"FOODS\",\n \"GUARD\",\n \"NEWLY\",\n \"RAISE\",\n \"DRAMA\",\n \"BANDS\",\n \"LUNCH\",\n \"DILDO\",\n \"AUDIT\",\n \"POLLS\",\n \"TOWER\",\n \"YOURS\",\n \"JASON\",\n \"SHELL\",\n \"SOLAR\",\n \"CATCH\",\n \"DOUBT\",\n \"TASKS\",\n \"CONST\",\n \"DOORS\",\n \"FORTH\",\n \"BRUCE\",\n \"SPLIT\",\n \"TWICE\",\n \"EGYPT\",\n \"SHIFT\",\n \"SIMON\",\n \"MARKS\",\n \"LOVED\",\n \"BIRDS\",\n \"SAVED\",\n \"SHOTS\",\n \"MOORE\",\n \"TREAT\",\n \"PIANO\",\n \"RISKS\",\n \"PORTS\",\n \"TEACH\",\n \"RAPID\",\n \"HAIRY\",\n \"DUTCH\",\n \"BOOTS\",\n \"HOLDS\",\n \"PULSE\",\n \"METRO\",\n \"STRIP\",\n \"PEARL\",\n \"PENIS\",\n \"HEADS\",\n \"LOGOS\",\n \"MILFS\",\n \"HONDA\",\n \"BILLS\",\n \"OPERA\",\n \"ASSET\",\n \"BLANK\",\n \"HUMOR\",\n \"LIVED\",\n \"TIGHT\",\n \"MEANT\",\n \"PLANE\",\n \"MEETS\",\n \"TAMPA\",\n \"GRACE\",\n \"SUSAN\",\n \"ADAMS\",\n \"VILLA\",\n \"INNER\",\n \"ROMAN\",\n \"TASTE\",\n \"TRIPS\",\n \"SIDES\",\n \"TURNS\",\n \"CACHE\",\n \"LEASE\",\n \"PROUD\",\n \"GIANT\",\n \"SEATS\",\n \"ALARM\",\n \"USUAL\",\n \"ANGLE\",\n \"VINYL\",\n \"WORST\",\n \"HONOR\",\n \"EAGLE\",\n \"PANTS\",\n \"NURSE\",\n \"QUIET\",\n \"COMIC\",\n \"CROWN\",\n \"MAKER\",\n \"CRACK\",\n \"PICKS\",\n \"SMOKE\",\n \"CRAFT\",\n \"APART\",\n \"BLIND\",\n \"COINS\",\n \"GROSS\",\n \"EPSON\",\n \"ACTOR\",\n \"FINDS\",\n \"FIFTH\",\n \"PRIZE\",\n \"DIRTY\",\n \"WAYNE\",\n \"ALIVE\",\n \"PROVE\",\n \"WINGS\",\n \"RIDGE\",\n \"MODEM\",\n \"LARRY\",\n \"SKILL\",\n \"MOVES\",\n \"THROW\",\n \"TREND\",\n \"RHODE\",\n \"BUSTY\",\n \"WORSE\",\n \"BOATS\",\n \"TELLS\",\n \"FIBER\",\n \"GRAPH\",\n \"TALKS\",\n \"BONDS\",\n \"FRAUD\",\n \"ROGER\",\n \"CRASH\",\n \"INTER\",\n \"GROVE\",\n \"SPRAY\",\n \"ROADS\",\n \"FACES\",\n \"COCKS\",\n \"MAYOR\",\n \"YIELD\",\n \"HENCE\",\n \"RADAR\",\n \"LAKES\",\n \"DIARY\",\n \"KINGS\",\n \"FLAGS\",\n \"BAKER\",\n \"SHOCK\",\n \"WALLS\",\n \"EBONY\",\n \"DRAWN\",\n \"BEAST\",\n \"DODGE\",\n \"PIZZA\",\n \"YARDS\",\n \"WOODS\",\n \"JOKES\",\n \"TWIKI\",\n \"GLOBE\",\n \"DICKE\",\n \"KERRY\",\n \"GHOST\",\n \"PRIDE\",\n \"KEITH\",\n \"LINDA\",\n \"CHILE\",\n \"MARIA\",\n \"BRASS\",\n \"PLAZA\",\n \"QUEST\",\n \"TRANS\",\n \"BOOTY\",\n \"ACRES\",\n \"VENUE\",\n \"VITAL\",\n \"EXCEL\",\n \"MODES\",\n \"ENEMY\",\n \"WELLS\",\n \"OPENS\",\n \"LUCKY\",\n \"THICK\",\n \"IRAQI\",\n \"VISTA\",\n \"CHIPS\",\n \"TERRY\",\n \"FLOOD\",\n \"ARENA\",\n \"GROWN\",\n \"JERRY\",\n \"SMILE\",\n \"LANDS\",\n \"ARMED\",\n \"LAURA\",\n \"TOKYO\",\n \"NIKON\",\n \"CANDY\",\n \"PILLS\",\n \"TIGER\",\n \"FOLKS\",\n \"BALLS\",\n \"BOOST\",\n \"ICONS\",\n \"MORAL\",\n \"KEEPS\",\n \"POUND\",\n \"ROSES\",\n \"BREAD\",\n \"TOUGH\",\n \"GONNA\",\n \"CHEST\",\n \"BILLY\",\n \"CRAIG\",\n \"SOLVE\",\n \"NANCY\",\n \"TONES\",\n \"SIGHT\",\n \"TOWNS\",\n \"WORRY\",\n \"READS\",\n \"ROLES\",\n \"GLORY\",\n \"SAUDI\",\n \"FAULT\",\n \"KAREN\",\n \"JIMMY\",\n \"RUGBY\",\n \"FLUID\",\n \"BARRY\",\n \"DEVIL\",\n \"GRASS\",\n \"MARIE\",\n \"KENYA\",\n \"SIZED\",\n \"MANGA\",\n \"THEFT\",\n \"SWING\",\n \"DATED\",\n \"SHOOT\",\n \"ELITE\",\n \"POEMS\",\n \"ROBOT\",\n \"WINDS\",\n \"GNOME\",\n \"ROOTS\",\n \"NOBLE\",\n \"SHORE\",\n \"LOVES\",\n \"LOOSE\",\n \"SLOTS\",\n \"ROCKS\",\n \"GENES\",\n \"HORNY\",\n \"HOSTS\",\n \"ATLAS\",\n \"FEELS\",\n \"RALPH\",\n \"CORPS\",\n \"LIVER\",\n \"DECOR\",\n \"TEXTS\",\n \"EVANS\",\n \"FAILS\",\n \"AGING\",\n \"ALICE\",\n \"INTRO\",\n \"CLERK\",\n \"MILLS\",\n \"JEANS\",\n \"FONTS\",\n \"FAVOR\",\n \"SIGMA\",\n \"XHTML\",\n \"ASIDE\",\n \"ESSAY\",\n \"CAMPS\",\n \"AARON\",\n \"TRACE\",\n \"PACKS\",\n \"SPOKE\",\n \"ARROW\",\n \"ROUGH\",\n \"WEIRD\",\n \"HOLES\",\n \"BLADE\",\n \"MEALS\",\n \"ROBIN\",\n \"STRAP\",\n \"CROWD\",\n \"CLOUD\",\n \"VALVE\",\n \"KNIFE\",\n \"SHELF\",\n \"LIKED\",\n \"ADOPT\",\n \"FOTOS\",\n \"OUTER\",\n \"TALES\",\n \"ISLAM\",\n \"NODES\",\n \"SEEDS\",\n \"CITED\",\n \"SKYPE\",\n \"TIRED\",\n \"STEAM\",\n \"ACUTE\",\n \"STOOD\",\n \"CAROL\",\n \"STACK\",\n \"CURVE\",\n \"AMBER\",\n \"TRUNK\",\n \"WAVES\",\n \"CAMEL\",\n \"LAMPS\",\n \"JUICE\",\n \"CHASE\",\n \"SAUCE\",\n \"BEADS\",\n \"FLOWS\",\n \"FEWER\",\n \"PROXY\",\n \"LANKA\",\n \"VOTED\",\n \"BIKES\",\n \"GATES\",\n \"SLAVE\",\n \"LYCOS\",\n \"ZDNET\",\n \"COMBO\",\n \"HAVEN\",\n \"CHARM\",\n \"BASIN\",\n \"RANCH\",\n \"DRUNK\",\n \"TONER\",\n \"LATEX\",\n \"DELHI\",\n \"ALIEN\",\n \"BROKE\",\n \"NEPAL\",\n \"NYLON\",\n \"DISCS\",\n \"ROCKY\",\n \"FLEET\",\n \"BUNCH\",\n \"CENTS\",\n \"OMEGA\",\n \"CIVIC\",\n \"SAVER\",\n \"GRILL\",\n \"GRAIN\",\n \"WANNA\",\n \"SEEKS\",\n \"GAINS\",\n \"SPOTS\",\n \"SALON\",\n \"TURBO\",\n \"THATS\",\n \"AIMED\",\n \"RESET\",\n \"BRUSH\",\n \"SPARE\",\n \"KODAK\",\n \"SKIRT\",\n \"HONEY\",\n \"GAUGE\",\n \"FACED\",\n \"SIXTH\",\n \"FARMS\",\n \"CHEAT\",\n \"SANDY\",\n \"MACRO\",\n \"LAUGH\",\n \"PITCH\",\n \"AUTOS\",\n \"PERRY\",\n \"DOZEN\",\n \"TEETH\",\n \"CLOTH\",\n \"STAMP\",\n \"LOTUS\",\n \"CARGO\",\n \"SALEM\",\n \"LIKES\",\n \"TAPES\",\n \"ZONES\",\n \"RACES\",\n \"MAPLE\",\n \"DEPOT\",\n \"BLEND\",\n \"JULIE\",\n \"JANET\",\n \"PHPBB\",\n \"PROBE\",\n \"HELEN\",\n \"LOPEZ\",\n \"DEBUG\",\n \"CHUCK\",\n \"EBOOK\",\n \"BINGO\",\n \"MINDS\",\n \"XANAX\",\n \"SUNNY\",\n \"LEEDS\",\n \"CEDAR\",\n \"BLAIR\",\n \"HOPES\",\n \"MASON\",\n \"BURNS\",\n \"PUMPS\",\n \"MARIO\",\n \"UTILS\",\n \"PAIRS\",\n \"CHOSE\",\n \"BLAST\",\n \"TOMMY\",\n \"BRAKE\",\n \"CONGO\",\n \"OLIVE\",\n \"CYBER\",\n \"CLONE\",\n \"DICKS\",\n \"RELAY\",\n \"TEARS\",\n \"OASIS\",\n \"ANGRY\",\n \"LOVER\",\n \"ROLLS\",\n \"MALTA\",\n \"DADDY\",\n \"FERRY\",\n \"OMAHA\",\n \"LOADS\",\n \"MOTEL\",\n \"RALLY\",\n \"DYING\",\n \"STUCK\",\n \"STOPS\",\n \"VOCAL\",\n \"ORGAN\",\n \"LEMON\",\n \"TOXIC\",\n \"BENCH\",\n \"RIDER\",\n \"BUTTS\",\n \"BOBBY\",\n \"SHEEP\",\n \"WINES\",\n \"SALAD\",\n \"PASTE\",\n \"KATIE\",\n \"RELAX\",\n \"SWORD\",\n \"SELLS\",\n \"CORAL\",\n \"PIXEL\",\n \"FLOAT\",\n \"COLIN\",\n \"PATHS\",\n \"ACIDS\",\n \"DAIRY\",\n \"ADMIT\",\n \"FANCY\",\n \"SAMOA\",\n \"SQUAD\",\n \"WAGES\",\n \"MALES\",\n \"CHAOS\",\n \"WHEAT\",\n \"BASES\",\n \"UNITY\",\n \"BRIDE\",\n \"BEGUN\",\n \"SOCKS\",\n \"ESSEX\",\n \"FEVER\",\n \"DRUMS\",\n \"ROVER\",\n \"FLAME\",\n \"TANKS\",\n \"SPELL\",\n \"EMILY\",\n \"ANNEX\",\n \"SUDAN\",\n \"SLUTS\",\n \"HINTS\",\n \"WIRED\",\n \"ELVIS\",\n \"ARGUE\",\n \"ARISE\",\n \"JAMIE\",\n \"BITCH\",\n \"CHESS\",\n \"OSCAR\",\n \"MENUS\",\n \"CANAL\",\n \"AMINO\",\n \"HERBS\",\n \"LYING\",\n \"DRILL\",\n \"BRYAN\",\n \"HOBBY\",\n \"TRIES\",\n \"TRICK\",\n \"MYERS\",\n \"DROPS\",\n \"WIDER\",\n \"SCREW\",\n \"BLAME\",\n \"FIFTY\",\n \"UNCLE\",\n \"JACOB\",\n \"RANDY\",\n \"BRICK\",\n \"NAVAL\",\n \"DONNA\",\n \"CABIN\",\n \"EDDIE\",\n \"FIRED\",\n \"PERTH\",\n \"SYRIA\",\n \"KLEIN\",\n \"TIRES\",\n \"RETRO\",\n \"ANGER\",\n \"SUITS\",\n \"GLENN\",\n \"HANDY\",\n \"CROPS\",\n \"GUILD\",\n \"TRIBE\",\n \"BATCH\",\n \"ALTER\",\n \"GHANA\",\n \"EDGES\",\n \"TWINS\",\n \"AMEND\",\n \"CHICK\",\n \"THONG\",\n \"MEDAL\",\n \"WALKS\",\n \"SUCKS\",\n \"BOOTH\",\n \"INDIE\",\n \"BONES\",\n \"BREED\",\n \"POLAR\",\n \"MSGID\",\n \"CAREY\",\n \"DANNY\",\n \"PATIO\",\n \"LLOYD\",\n \"BEANS\",\n \"ELLIS\",\n \"SNAKE\",\n \"JULIA\",\n \"BERRY\",\n \"OUGHT\",\n \"FIXES\",\n \"SENDS\",\n \"MAZDA\",\n \"TIMER\",\n \"TYLER\",\n \"VERSE\",\n \"HIGHS\",\n \"ELLEN\",\n \"RACKS\",\n \"NASTY\",\n \"TUMOR\",\n \"WATTS\",\n \"FORTY\",\n \"TUBES\",\n \"FLOYD\",\n \"QUEUE\",\n \"SKINS\",\n \"EXAMS\",\n \"WELSH\",\n \"BELLY\",\n \"HAITI\",\n \"ELDER\",\n \"SONIC\",\n \"THUMB\",\n \"TWIST\",\n \"RANKS\",\n \"DEBUT\",\n \"VOLVO\",\n \"PENNY\",\n \"IVORY\",\n \"REMIX\",\n \"ALIAS\",\n \"NEWER\",\n \"SPICE\",\n \"ASCII\",\n \"DONOR\",\n \"TRASH\",\n \"MANOR\",\n \"DIANE\",\n \"DISCO\",\n \"ENDIF\",\n \"MINUS\",\n \"MILAN\",\n \"SHADE\",\n \"DIGIT\",\n \"LIONS\",\n \"POOLS\",\n \"LYRIC\",\n \"GRAVE\",\n \"HOWTO\",\n \"DEVON\",\n \"SAVES\",\n \"LOBBY\",\n \"PUNCH\",\n \"GOTTA\",\n \"KARMA\",\n \"BETTY\",\n \"LUCAS\",\n \"MARDI\",\n \"SHAKE\",\n \"HOLLY\",\n \"SILLY\",\n \"MERCY\",\n \"FENCE\",\n \"DIANA\",\n \"SHAME\",\n \"FATAL\",\n \"FLESH\",\n \"JESSE\",\n \"QATAR\",\n \"SHEER\",\n \"WITCH\",\n \"COHEN\",\n \"PUPPY\",\n \"KATHY\",\n \"SMELL\",\n \"SATIN\",\n \"PROMO\",\n \"TUNES\",\n \"LUCIA\",\n \"NERVE\",\n \"RENEW\",\n \"LOCKS\",\n \"EUROS\",\n \"REBEL\",\n \"HIRED\",\n \"HINDU\",\n \"KILLS\",\n \"SLOPE\",\n \"NAILS\",\n \"WHATS\",\n \"RIDES\",\n \"REHAB\",\n \"MERIT\",\n \"DISKS\",\n \"CONDO\",\n \"FAIRY\",\n \"SHAFT\",\n \"CASIO\",\n \"KITTY\",\n \"DRAIN\",\n \"MONTE\",\n \"FIRES\",\n \"PANIC\",\n \"LEONE\",\n \"ONION\",\n \"BEATS\",\n \"MERRY\",\n \"SCUBA\",\n \"VERDE\",\n \"DRIED\",\n \"DERBY\",\n \"ANNIE\",\n \"DEREK\",\n \"STEAL\",\n \"FEARS\",\n \"TUNER\",\n \"ALIKE\",\n \"SAGEM\",\n \"SCOUT\",\n \"DEALT\",\n \"BUCKS\",\n \"BADGE\",\n \"WRIST\",\n \"HEATH\",\n \"LEXUS\",\n \"REALM\",\n \"JENNY\",\n \"YEMEN\",\n \"BUSES\",\n \"ROUGE\",\n \"YEAST\",\n \"KENNY\",\n \"YUKON\",\n \"SINGH\",\n \"BROOK\",\n \"WIVES\",\n \"XEROX\",\n \"SORTS\",\n \"VSNET\",\n \"PAPUA\",\n \"ARMOR\",\n \"VIRAL\",\n \"PIPES\",\n \"LADEN\",\n \"ARUBA\",\n \"MERGE\",\n \"EDGAR\",\n \"DUBAI\",\n \"ALLAN\",\n \"SPERM\",\n \"FILME\",\n \"CRAPS\",\n \"FROST\",\n \"SALLY\",\n \"YACHT\",\n \"TRACY\",\n \"WHALE\",\n \"SHARK\",\n \"GROWS\",\n \"CLIFF\",\n \"TRACT\",\n \"SHINE\",\n \"WENDY\",\n \"DIFFS\",\n \"OZONE\",\n \"PASTA\",\n \"SERUM\",\n \"SWIFT\",\n \"INBOX\",\n \"FOCAL\",\n \"SAMBA\",\n \"WOUND\",\n \"BELLE\",\n \"CINDY\",\n \"LINED\",\n \"BOXED\",\n \"CUBIC\",\n \"SPIES\",\n \"ELECT\",\n \"BUNNY\",\n \"CHEVY\",\n \"TIONS\",\n \"FLYER\",\n \"BATHS\",\n \"EMACS\",\n \"CLIMB\",\n \"SPARC\",\n \"DOVER\",\n \"TOKEN\",\n \"KINDA\",\n \"DYLAN\",\n \"BELTS\",\n \"BURKE\",\n \"CLARA\",\n \"FLUSH\",\n \"HAYES\",\n \"MOSES\",\n \"JOHNS\",\n \"JEWEL\",\n \"TEDDY\",\n \"DRYER\",\n \"RULED\",\n \"FUNKY\",\n \"JOINS\",\n \"SCARY\",\n \"MPEGS\",\n \"CAKES\",\n \"MIXER\",\n \"SBJCT\",\n \"TOOTH\",\n \"STAYS\",\n \"DROVE\",\n \"UPSET\",\n \"MINES\",\n \"LOGAN\",\n \"LANCE\",\n \"COLON\",\n \"LANES\",\n \"PURSE\",\n \"ALIGN\",\n \"BLESS\",\n \"CREST\",\n \"ALLOY\",\n \"PLOTS\",\n \"TULSA\",\n \"CASEY\",\n \"DRAWS\",\n \"BLOOM\",\n \"LOOPS\",\n \"SURGE\",\n \"TAHOE\",\n \"SOULS\",\n \"SPANK\",\n \"VAULT\",\n \"WIRES\",\n \"MAILS\",\n \"BLAKE\",\n \"ORBIT\",\n \"NIGER\",\n \"BACON\",\n \"PAXIL\",\n \"SPINE\",\n \"TROUT\",\n \"APNIC\",\n \"FATTY\",\n \"JOYCE\",\n \"MARCO\",\n \"ISAAC\",\n \"OXIDE\",\n \"BADLY\",\n \"SCOOP\",\n \"SANYO\",\n \"BLINK\",\n \"CARLO\",\n \"TILES\",\n \"TAMIL\",\n \"FUZZY\",\n \"GRAMS\",\n \"FORGE\",\n \"DENSE\",\n \"BRAVE\",\n \"AWFUL\",\n \"MEYER\",\n \"WHORE\",\n \"WAGON\",\n \"KNOCK\",\n \"PEERS\",\n \"QUILT\",\n \"NOTRE\",\n \"MAMBO\",\n \"FLOUR\",\n \"CHOIR\",\n \"BLOND\",\n \"BURST\",\n \"WILEY\",\n \"FIBRE\",\n \"DAISY\",\n \"CRUDE\",\n \"BORED\",\n \"ALLAH\",\n \"FARES\",\n \"HOPED\",\n \"SAFER\",\n \"MARSH\",\n \"RICKY\",\n \"THETA\",\n \"STAKE\",\n \"ARBOR\",\n \"RIFLE\",\n \"BULBS\",\n \"WAIST\",\n \"SEWER\",\n \"BOSCH\",\n \"VITRO\",\n \"HYATT\",\n \"ROMEO\",\n \"TURKS\",\n \"DEMOS\",\n \"SIDED\",\n \"CUBAN\",\n \"RESIN\",\n \"LINEN\",\n \"SEALS\",\n \"DECAY\",\n \"USHER\",\n \"SKATE\",\n \"LYNCH\",\n \"FRANC\",\n \"TIMOR\",\n \"FLATS\",\n \"HEELS\",\n \"VOTER\",\n \"URINE\",\n \"CAPRI\",\n \"TOWEL\",\n \"SEARS\",\n \"FLIES\",\n \"CRANE\",\n \"POPUP\",\n \"HABIT\",\n \"COUPE\",\n \"BENIN\",\n \"LORDS\",\n \"TENDS\",\n \"SIXTY\",\n \"SPARK\",\n \"SPIKE\",\n \"TONGA\",\n \"BACKS\",\n \"SOILS\",\n \"HUNKS\",\n \"LIBYA\",\n \"SEDAN\",\n \"CARES\",\n \"FLORA\",\n \"KAZAA\",\n \"HARDY\",\n \"BELLS\",\n \"DENIM\",\n \"ANDRE\",\n \"BUICK\",\n \"DOSES\",\n \"BAKED\",\n \"GLOVE\",\n \"ALITO\",\n \"PLUSH\",\n \"WEBER\",\n \"NELLY\",\n \"URGED\",\n \"BRENT\",\n \"KYOTO\",\n \"ADAPT\",\n \"FUELS\",\n \"BRETT\",\n \"PAULA\",\n \"STERN\",\n \"SHAWN\",\n \"TUTOR\",\n \"IDIOT\",\n \"DEBIT\",\n \"EDITS\",\n \"RAVEN\",\n \"SLICE\",\n \"ASPEN\",\n \"LEMMA\",\n \"VENUS\",\n \"DOLBY\",\n \"NIKKI\",\n \"HALLS\",\n \"PAUSE\",\n \"DEMON\",\n \"GABON\",\n \"ATARI\",\n \"ASSES\",\n \"COUCH\",\n \"DOWNS\",\n \"ROGUE\",\n \"SDRAM\",\n \"OPTIC\",\n \"CHILI\",\n \"GRIEF\",\n \"SWEAT\",\n \"MASKS\",\n \"CELEB\",\n \"ASSOC\",\n \"QUAKE\",\n \"ALLEY\",\n \"TWAIN\",\n \"BOISE\",\n \"NEVIS\",\n \"BUFFY\",\n \"LOYAL\",\n \"RENAL\",\n \"SPITE\",\n \"IMPLY\",\n \"CHILL\",\n \"LINER\",\n \"LIFTS\",\n \"VIVID\",\n \"ACTED\",\n \"BYRON\",\n \"SKULL\",\n \"RILEY\",\n \"NINJA\",\n \"SANDS\",\n \"STEAK\",\n \"COBRA\",\n \"GUCCI\",\n \"THREW\",\n \"HTTPS\",\n \"WALSH\",\n \"NINTH\",\n \"MARRY\",\n \"WILLS\",\n \"ATOMS\",\n \"DRAKE\",\n \"DELLA\",\n \"RAILS\",\n \"PGSQL\",\n \"FRIED\",\n \"CAIRO\",\n \"MALLS\",\n \"WOODY\",\n \"CRIED\",\n \"PLUGS\",\n \"CODED\",\n \"SUPRA\",\n \"MOLLY\",\n \"FRANZ\",\n \"PALAU\",\n \"RIVAL\",\n \"BEIGE\",\n \"ROLEX\",\n \"HOMER\",\n \"GASES\",\n \"GENUS\",\n \"DIXON\",\n \"DEBTS\",\n \"ICANN\",\n \"AVRIL\",\n \"MYTHS\",\n \"KNEES\",\n \"POETS\",\n \"WOVEN\",\n \"PEDRO\",\n \"TRENT\",\n \"RIGID\",\n \"SALSA\",\n \"BLOWN\",\n \"BATON\",\n \"ABBEY\",\n \"BRUNO\",\n \"EVITE\",\n \"DIETS\",\n \"SAUNA\",\n \"BAUER\",\n \"BOWLS\",\n \"QAEDA\",\n \"KITTS\",\n \"MACAU\",\n \"CRUEL\",\n \"EAGER\",\n \"CHANG\",\n \"PUPIL\",\n \"FEAST\",\n \"ACURA\",\n \"FEDEX\",\n \"ANKLE\",\n \"DECKS\",\n \"BLUNT\",\n \"HAMAS\",\n \"REACT\",\n \"RISES\",\n \"SHANE\",\n \"COATS\",\n \"ASTON\",\n \"FAIRS\",\n \"FLUTE\",\n \"HINDI\",\n \"HARSH\",\n \"WHOIS\",\n \"BURMA\",\n \"CEASE\",\n \"POLES\",\n \"SIOUX\",\n \"JENNA\",\n \"FARGO\",\n \"EQUIP\",\n \"REGED\",\n \"HEDGE\",\n \"CURRY\",\n \"WORMS\",\n \"DEWEY\",\n \"POUCH\",\n \"HOOKS\",\n \"PEAKS\",\n \"DIDNT\",\n \"SPOON\",\n \"BOMBS\",\n \"NICHE\",\n \"CIGAR\",\n \"CURSE\",\n \"FOREX\",\n \"TITAN\",\n \"ANITA\",\n \"SHOUT\",\n \"NUDES\",\n \"STRAW\",\n \"FGETS\",\n \"REUSE\",\n \"LOSES\",\n \"SUEDE\",\n \"PEACH\",\n \"UNCUT\",\n \"STOVE\",\n \"NIXON\",\n \"BRADY\",\n \"ZHANG\",\n \"FREAK\",\n \"BLUFF\",\n \"SADLY\",\n \"AVAIL\",\n \"HATCH\",\n \"STEIN\",\n \"SPILL\",\n \"DRIFT\",\n \"WINXP\",\n \"CRISP\",\n \"SCANS\",\n \"ONSET\",\n \"ASSAY\",\n \"LEIGH\",\n \"TENTS\",\n \"SNACK\",\n \"PULLS\",\n \"SQUID\",\n \"MAXIM\",\n \"SLATE\",\n \"PAGAN\",\n \"WIDOW\",\n \"SKIES\",\n \"KICKS\",\n \"CANOE\",\n \"JUICY\",\n \"MOODY\",\n \"PEDAL\",\n \"TUNED\",\n \"MAYER\",\n \"GEOFF\",\n \"SCRAP\",\n \"BELLA\",\n \"TERRA\",\n \"VAPOR\",\n \"ALOUD\",\n \"GOOSE\",\n \"WINNT\",\n \"HYDRO\",\n \"PLAYA\",\n \"NOISY\",\n \"ABIDE\",\n \"SOCIO\",\n \"BLISS\",\n \"PARSE\",\n \"JELLY\",\n \"MANIA\",\n \"EDWIN\",\n \"CLARE\",\n \"BOLTS\",\n \"TYPED\",\n \"SATAN\",\n \"MEGAN\",\n \"CHEER\",\n \"MARTY\",\n \"XLIBS\",\n \"CLAMP\",\n \"GRAPE\",\n \"DEEDS\",\n \"TRAPS\",\n \"RACER\",\n \"GUILT\",\n \"SWEEP\",\n \"DOYLE\",\n \"DUCKS\",\n \"VINCE\",\n \"PARAM\",\n \"LUNAR\",\n \"POSED\",\n \"FORKS\",\n \"BOXER\",\n \"WEIGH\",\n \"RODEO\",\n \"MOOSE\",\n \"CRUSH\",\n \"CATHY\",\n \"PAULO\",\n \"LEVER\",\n \"TASTY\",\n \"RANTS\",\n \"TAROT\",\n \"CARTS\",\n \"COCOA\",\n \"MIXES\",\n \"PANTY\",\n \"AIRES\",\n \"BULLS\",\n \"ORION\",\n \"HURRY\",\n \"CLASH\",\n \"BIKER\",\n \"NAURU\",\n \"STAIN\",\n \"REIGN\",\n \"BARON\",\n \"BATES\",\n \"STIFF\",\n \"RABBI\",\n \"SUSHI\",\n \"PUFFY\",\n \"ELBOW\",\n \"STARK\",\n \"CIRCA\",\n \"QUINN\",\n \"RAZOR\",\n \"COUGH\",\n \"TIBET\",\n \"ISLES\",\n \"OVENS\",\n \"INLET\",\n \"BRONX\",\n \"GLOSS\",\n \"PANDA\",\n \"PORCH\",\n \"ISUZU\",\n \"EATEN\",\n \"SINKS\",\n \"STEEP\",\n \"DINAR\",\n \"CREED\",\n \"CARAT\",\n \"NOBEL\",\n \"FAXES\",\n \"PLUMP\",\n \"MIDST\",\n \"BORNE\",\n \"TESCO\",\n \"TEMPO\",\n \"GETTY\",\n \"PAYNE\",\n \"TORCH\",\n \"LOHAN\",\n \"HACKS\",\n \"ATTIC\",\n \"PIPER\",\n \"STEMS\",\n \"AVERY\",\n \"TOONS\",\n \"TENTH\",\n \"DESKS\",\n \"AIDED\",\n \"CUTIE\",\n \"NOTCH\",\n \"SEOUL\",\n \"LACKS\",\n \"BOWIE\",\n \"POSES\",\n \"SCENT\",\n \"AKRON\",\n \"FINES\",\n \"GRASP\",\n \"OUNCE\",\n \"BUENA\",\n \"TOAST\",\n \"KUMAR\",\n \"KINKY\",\n \"OWENS\",\n \"QUOTA\",\n \"VERSA\",\n \"STARR\",\n \"JUMBO\",\n \"MATHS\",\n \"FLINT\",\n \"DUMMY\",\n \"AWAKE\",\n \"BURNT\",\n \"STUDS\",\n \"ROAST\",\n \"PETTY\",\n \"FELIX\",\n \"SHINY\",\n \"SMASH\",\n \"BRAUN\",\n \"AMPLE\",\n \"ROYCE\",\n \"SCARF\",\n \"HATED\",\n \"SPICY\",\n \"FOOLS\",\n \"BEARD\",\n \"WEDGE\",\n \"PEGGY\",\n \"RUINS\",\n \"DENIS\",\n \"HYPER\",\n \"GMAIL\",\n \"CITES\",\n \"EZINE\",\n \"GAMER\",\n \"ALEXA\",\n \"SAVVY\",\n \"TERRI\",\n \"NORMS\",\n \"SILVA\",\n \"PRIMA\",\n \"ZELDA\",\n \"FETAL\",\n \"PALMS\",\n \"CHORD\",\n \"KUDOZ\",\n \"HAWKS\",\n \"IRONS\",\n \"COMET\",\n \"LOTTO\",\n \"SYRUP\",\n \"ERASE\",\n \"BITES\",\n \"PROSE\",\n \"SWEAR\",\n \"INTRA\",\n \"CLOWN\",\n \"TABOO\",\n \"OLSON\",\n \"DWARF\",\n \"IFDEF\",\n \"PINES\",\n \"FUCKS\",\n \"URGES\",\n \"ENRON\",\n \"CODEC\",\n \"PABLO\",\n \"BEAMS\",\n \"PROPS\",\n \"DOUGH\",\n \"STOOL\",\n \"WELCH\",\n \"BOONE\",\n \"HORDE\",\n \"MOMMY\",\n \"NANNY\",\n \"ROACH\",\n \"ANGUS\",\n \"ASHES\",\n \"NATAL\",\n \"LOCUS\",\n \"MSNBC\",\n \"ELTON\",\n \"PRONE\",\n \"CLUES\",\n \"CREWS\",\n \"TIMED\",\n \"SCARE\",\n \"THIEF\",\n \"MOTIF\",\n \"HURTS\",\n \"SOFIA\",\n \"SPEAR\",\n \"NIGEL\",\n \"JOLIE\",\n \"BLANC\",\n \"BIRCH\",\n \"SLASH\",\n \"MIKES\",\n \"SEIKO\",\n \"ARIAL\",\n \"STACY\",\n \"HELIX\",\n \"DIXIE\",\n \"SHOOK\",\n \"MATTE\",\n \"HEIDI\",\n \"ZEBRA\",\n \"FETCH\",\n \"FAROE\",\n \"LOGON\",\n \"TRONG\",\n \"UNITE\",\n \"SHEAR\",\n \"PONDS\",\n \"TRUMP\",\n \"MATES\",\n \"AVIAN\",\n \"VISAS\",\n \"WEBMD\",\n \"CHAMP\",\n \"RECAP\",\n \"ASTRO\",\n \"CRAWL\",\n \"FLAWS\",\n \"OLSEN\",\n \"HAZEL\",\n \"MESSY\",\n \"RUPEE\",\n \"MENTS\",\n \"IRENE\",\n \"LUNGS\",\n \"VINCI\",\n \"JACKS\",\n \"STOLE\",\n \"KIRBY\",\n \"QUASI\",\n \"EXILE\",\n \"ANGLO\",\n \"KNOTS\",\n \"ANTON\",\n \"GERRY\",\n \"KAPPA\",\n \"JUMPS\",\n \"SNOOP\",\n \"VAGUE\",\n \"WRAPS\",\n \"RUSTY\",\n \"WARNS\",\n \"STING\",\n \"BRAVO\",\n \"SECSG\",\n \"LITER\",\n \"NICHT\",\n \"BASIL\",\n \"PACED\",\n \"RENEE\",\n \"WEISS\",\n \"GILES\",\n \"SHACK\",\n \"SLEEK\",\n \"ARIEL\",\n \"MONTY\",\n \"CAFES\",\n \"HITCH\",\n \"NEXUS\",\n \"TANGO\",\n \"ERNST\",\n \"SINGS\",\n \"CARTE\",\n \"QUEER\",\n \"PAINS\",\n \"VIOXX\",\n \"AHMED\",\n \"SOBRE\",\n \"KUALA\",\n \"COMMA\",\n \"GEEKS\",\n \"AVANT\",\n \"REPEC\",\n \"PEREZ\",\n \"CIMEL\",\n \"LEICA\",\n \"TORAH\",\n \"BUSCH\",\n \"TIAVA\",\n \"FREED\",\n \"CHEEK\",\n \"GAVIN\",\n \"LASTS\",\n \"HTTPD\",\n \"BOWEL\",\n \"CHATS\",\n \"MAFIA\",\n \"LILLY\",\n \"SHIRE\",\n \"LYONS\",\n \"SCAMS\",\n \"LIPID\",\n \"CLYDE\",\n \"IRWIN\",\n \"MAINS\",\n \"MISTY\",\n \"PRISM\",\n \"RESTS\",\n \"VEGAN\",\n \"COREL\",\n \"GROOM\",\n \"OSAMA\",\n \"WEEDS\",\n \"OPRAH\",\n \"BEERS\",\n \"CLIVE\",\n \"DARBY\",\n \"FILLS\",\n \"GRIPS\",\n \"KAYAK\",\n \"ALTAR\",\n \"GEARS\",\n \"RISEN\",\n \"RHINO\",\n \"EATON\",\n \"RULER\",\n \"HENRI\",\n \"SWEPT\",\n \"TROOP\",\n \"AROSE\",\n \"BECKY\",\n \"LESBO\",\n \"KLAUS\",\n \"HOGAN\",\n \"DEBRA\",\n \"CDROM\",\n \"COREY\",\n \"SLIPS\",\n \"TRAYS\",\n \"FLOCK\",\n \"CHUNG\",\n \"BORIS\",\n \"SHAVE\",\n \"SWAMP\",\n \"FAINT\",\n \"GLAND\",\n \"BLOWS\",\n \"STOKE\",\n \"KAUAI\",\n \"UNDEF\",\n \"NASAL\",\n \"NITRO\",\n \"MARIN\",\n \"LOSER\",\n \"CLAUS\",\n \"HIPAA\",\n \"PORTO\",\n \"JOLLY\",\n \"FEMME\",\n \"SIEGE\",\n \"WOLFE\",\n \"TYRES\",\n \"BUTTE\",\n \"HICKS\",\n \"PRATT\",\n \"CHALK\",\n \"NEGRO\",\n \"WRATH\",\n \"GRIND\",\n \"CLINT\",\n \"BLITZ\",\n \"OSAKA\",\n \"JORGE\",\n \"COOKS\",\n \"RAINY\",\n \"DIGGS\",\n \"PLUTO\",\n \"MITCH\",\n \"VIOLA\",\n \"RUMOR\",\n \"VOLTS\",\n \"DIVER\",\n \"BLAZE\",\n \"WRECK\",\n \"SAMMY\",\n \"ARABS\",\n \"BROCK\",\n \"HOOPS\",\n \"MACON\",\n \"LYNNE\",\n \"CHLOE\",\n \"PLONE\",\n \"HORNS\",\n \"KYLIE\",\n \"RISKY\",\n \"CLAIR\",\n \"CRETE\",\n \"TULIP\",\n \"CIARA\",\n \"DAMON\",\n \"OWING\",\n \"BENNY\",\n \"IPODS\",\n \"ANNUM\",\n \"ROCHE\",\n \"ROPES\",\n \"MORSE\",\n \"CORDS\",\n \"WAREZ\",\n \"DITCH\",\n \"SLICK\",\n \"CHUNK\",\n \"REELS\",\n \"SLEPT\",\n \"GREGG\",\n \"HUANG\",\n \"IBOOK\",\n \"WAITS\",\n \"TENOR\",\n \"SCRUB\",\n \"CELLO\",\n \"CAVES\",\n \"COCOS\",\n \"METRE\",\n \"THURS\",\n \"TOPAZ\",\n \"SOAPS\",\n \"RICOH\",\n \"GIBBS\",\n \"DUSTY\",\n \"PATTY\",\n \"CRATE\",\n \"KANYE\",\n \"CARED\",\n \"SWORN\",\n \"TWINK\",\n \"BOWEN\",\n \"BEECH\",\n \"FROGS\",\n \"EXPAT\",\n \"AGNES\",\n \"MAORI\",\n \"TENSE\",\n \"BASEL\",\n \"OXLEY\",\n \"FOLEY\",\n \"MORAN\",\n \"DECAL\",\n \"TEMPS\",\n \"FIONA\",\n \"FRITZ\",\n \"MOVER\",\n \"ERICA\",\n \"BETSY\",\n \"SHAUN\",\n \"FAUNA\",\n \"DETOX\",\n \"SPURS\",\n \"ORTHO\",\n \"GOULD\",\n \"ELIZA\",\n \"USAID\",\n \"DARTS\",\n \"TAILS\",\n \"HANGS\",\n \"QUARK\",\n \"DOLCE\",\n \"VEINS\",\n \"FOLDS\",\n \"ANGIE\",\n \"SNEAK\",\n \"OCTET\",\n \"MCCOY\",\n \"MATEO\",\n \"FREAD\",\n \"WILLY\",\n \"EDITH\",\n \"MAGNA\",\n \"POLLY\",\n \"TIDAL\",\n \"JULES\",\n \"ERNIE\",\n \"POOLE\",\n \"CRUST\",\n \"DOLLY\",\n \"LENOX\",\n \"MINER\",\n \"CECIL\",\n \"CAJUN\",\n \"DINER\",\n \"REGIS\",\n \"MOUND\",\n \"ETHAN\",\n \"IBIZA\",\n \"REESE\",\n \"CHEFS\",\n \"SCION\",\n \"MANDY\",\n \"HOODS\",\n \"PROTO\",\n \"JARED\",\n \"WEARS\",\n \"REGAL\",\n \"ALVIN\",\n \"RATON\",\n \"CURLY\",\n \"HOUND\",\n \"WHARF\",\n \"FLICK\",\n \"DATUM\",\n \"MAIZE\",\n \"BANFF\",\n \"PSALM\",\n \"GOWNS\",\n \"LUTON\",\n \"LEAKS\",\n \"SWELL\",\n \"VILLE\",\n \"CHICO\",\n \"IRONY\",\n \"LASIK\",\n \"LEVIN\",\n \"AMIGA\",\n \"VIPER\",\n \"GYPSY\",\n \"LITRE\",\n \"BINDS\",\n \"TITUS\",\n \"FLARE\",\n \"WIGHT\",\n \"CRANK\",\n \"GOATS\",\n \"RAINS\",\n \"BRACE\",\n \"ABDUL\",\n \"RYDER\",\n \"GARTH\",\n \"NOLAN\",\n \"PAOLO\",\n \"ARGUS\",\n \"MANGO\",\n \"THIGH\",\n \"CARLA\",\n \"MEATS\",\n \"WINDY\",\n \"ALAMO\",\n \"STEER\",\n \"VOGUE\",\n \"AIRED\",\n \"VODKA\",\n \"ZAIRE\",\n \"KNOBS\",\n \"INLOG\",\n \"SALTS\",\n \"SOUPS\",\n \"MOIST\",\n \"TRINA\",\n \"PESTS\",\n \"ENTRE\",\n \"PLANO\",\n \"DORIS\",\n \"PETIT\",\n \"FRIES\",\n \"SAXON\",\n \"STALL\",\n \"DEERE\",\n \"SERIF\",\n \"MONKS\",\n \"ALOHA\",\n \"UTTER\",\n \"RENTS\",\n \"CATER\",\n \"COLTS\",\n \"DUNES\",\n \"PINCH\",\n \"FLYNN\",\n \"TROLL\",\n \"FILTH\",\n \"KRAFT\",\n \"ALGAE\",\n \"ARDEN\",\n \"BYRNE\",\n \"SHADY\",\n \"ERECT\",\n \"VESTS\",\n \"LYDIA\",\n \"VALET\",\n \"CHENG\",\n \"ELIOT\",\n \"JIHAD\",\n \"ELGIN\",\n \"JONAH\",\n \"RAPED\",\n \"DENON\",\n \"SLOAN\",\n \"PLATO\",\n \"PALMA\",\n \"TAXIS\",\n \"HATES\",\n \"HAGUE\",\n \"TAMMY\",\n \"OGDEN\",\n \"MADAM\",\n \"TEASE\",\n \"AROMA\",\n \"ROWAN\",\n \"DWELL\",\n \"STAIR\",\n \"SONNY\",\n \"ROTOR\",\n \"QUART\",\n \"BISON\",\n \"FUNGI\",\n \"GREED\",\n \"ELENA\",\n \"BLEED\",\n \"SERIE\",\n \"INCUR\",\n \"TEMPE\",\n \"CORES\",\n \"NIFTY\",\n \"YATES\",\n \"DUKES\",\n \"FUDGE\",\n \"HOMME\",\n \"ROSSI\",\n \"WEAVE\",\n \"VICKI\",\n \"EXITS\",\n \"SIENA\",\n \"REIKI\",\n \"DANTE\",\n \"LANGE\",\n \"ROSEN\",\n \"CURED\",\n \"BUGGY\",\n \"RECON\",\n \"SLACK\",\n \"VINES\",\n \"GORGE\",\n \"LIENS\",\n \"BOYLE\",\n \"LAMAR\",\n \"JONAS\",\n \"LOCKE\",\n \"CAGES\",\n \"PAGER\",\n \"JOLLA\",\n \"BANJO\",\n \"STOUT\",\n \"DUANE\",\n \"HANNA\",\n \"ADLER\",\n \"STARE\",\n \"MISSY\",\n \"MEADE\",\n \"FLAIR\",\n \"CETTE\",\n \"AISLE\",\n \"DUNNO\",\n \"LIMBS\",\n \"PAVED\",\n \"SCOTS\",\n \"TYSON\",\n \"SEIZE\",\n \"SPAWN\",\n \"EPOXY\",\n \"STONY\",\n \"PUNTA\",\n \"CRYPT\",\n \"BOGUS\",\n \"JBOSS\",\n \"FADED\",\n \"MOBIL\",\n \"TYING\",\n \"DIODE\",\n \"JOHAN\",\n \"MOTTO\",\n \"ALTON\",\n \"JANIS\",\n \"RUBIN\",\n \"ALAIN\",\n \"DETER\",\n \"FURRY\",\n \"CUBES\",\n \"LINUS\",\n \"RINSE\",\n \"TIDES\",\n \"VENOM\",\n \"VOYER\",\n \"MUMMY\",\n \"CRIES\",\n \"ETHER\",\n \"SHEDS\",\n \"SOFAS\",\n \"CROIX\",\n \"BOING\",\n \"ROSIE\",\n \"TERRE\",\n \"TECHS\",\n \"ELISA\",\n \"HAUTE\",\n \"WACKY\",\n \"REITS\",\n \"MUDDY\",\n \"NUEVO\",\n \"SHALT\",\n \"VISOR\",\n \"NAIVE\",\n \"HIRES\",\n \"TANYA\",\n \"FOLIO\",\n \"BARRE\",\n \"FIERY\",\n \"FAKES\",\n \"FOMIT\",\n \"AHMAD\",\n \"COOKE\",\n \"EMULE\",\n \"ACORN\",\n \"BAYER\",\n \"BASAL\",\n \"TOPPS\",\n \"WILDE\",\n \"SMOKY\",\n \"FLIRT\",\n \"SLANG\",\n \"FINCH\",\n \"LARGO\",\n \"TALLY\",\n \"CREEP\",\n \"AGILE\",\n \"SACKS\",\n \"KIOSK\",\n \"IONIC\",\n \"STRAY\",\n \"POPPY\",\n \"TURIN\",\n \"FORTE\",\n \"SESSO\",\n \"HANOI\",\n \"WAIVE\",\n \"VANCE\",\n \"GREET\",\n \"LYMPH\",\n \"SONIA\",\n \"LATCH\",\n \"VERBS\",\n \"DRANK\",\n \"SANTO\",\n \"TORSO\",\n \"RAMON\",\n \"DANSK\",\n \"HOBBS\",\n \"MAYEN\",\n \"GRABS\",\n \"GEILE\",\n \"WARDS\",\n \"HINGE\",\n \"PATTI\",\n \"FAIRE\",\n \"EMORY\",\n \"STUNT\",\n \"MAVEN\",\n \"VITAE\",\n \"WITTY\",\n \"HERTZ\",\n \"FLOWN\",\n \"SILKY\",\n \"MICAH\",\n \"REPAY\",\n \"AWAIT\",\n \"FETUS\",\n \"CIDER\",\n \"GANGS\",\n \"LENNY\",\n \"ARXIV\",\n \"PERCY\",\n \"CONAN\",\n \"LILAC\",\n \"SINUS\",\n \"DENNY\",\n \"HEARS\",\n \"LEXAR\",\n \"PIVOT\",\n \"HURON\",\n \"GLIDE\",\n \"TODOS\",\n \"CREME\",\n \"WALTZ\",\n \"PAIGE\",\n \"BLUSH\",\n \"MONDE\",\n \"MALAY\",\n \"MODAL\",\n \"CADET\",\n \"LOREN\",\n \"CARBS\",\n \"OPTED\",\n \"TWEAK\",\n \"TRAIT\",\n \"SHREK\",\n \"EATER\",\n \"CYMRU\",\n \"CYRUS\",\n \"HIDES\",\n \"SYNTH\",\n \"LAYUP\",\n \"NAZIS\",\n \"PILES\",\n \"BEZEL\",\n \"HAVOC\",\n \"SLING\",\n \"RICAN\",\n \"GUPTA\",\n \"TUMMY\",\n \"AXIAL\",\n \"JULIO\",\n \"EPOCH\",\n \"PLAID\",\n \"FABLE\",\n \"SCARS\",\n \"SUSIE\",\n \"REYES\",\n \"PESOS\",\n \"SPANS\",\n \"OBESE\",\n \"SOBER\",\n \"TREAD\",\n \"WIGAN\",\n \"PADDY\",\n \"NORMA\",\n \"ASTRA\",\n \"MONDO\",\n \"WYATT\",\n \"OTTER\",\n \"EARNS\",\n \"SASSY\",\n \"DEMUX\",\n \"VASES\",\n \"GARDE\",\n \"ARIES\",\n \"RAMPS\",\n \"DREAD\",\n \"QWEST\",\n \"DYSON\",\n \"JOSEF\",\n \"CASTS\",\n \"HEINZ\",\n \"ARGOS\",\n \"NEEDY\",\n \"REICH\",\n \"WEARY\",\n \"TWEED\",\n \"SNOWY\",\n \"GENIE\",\n \"BLING\",\n \"CHARS\",\n \"MCGEE\",\n \"DELLE\",\n \"FINED\",\n \"GEORG\",\n \"APRON\",\n \"AIDES\",\n \"GOMEZ\",\n \"YUMMY\",\n \"MOMMA\",\n \"TRISH\",\n \"SEXES\",\n \"HUSKY\",\n \"BLAND\",\n \"DARTH\",\n \"CHING\"\n]\nconst words_6 =['abroad','absent','accent','access','acting','actors','adding','adjust','adrian','advert','advise','affair','affect','afraid','africa','agency','agenda','agents','agreed','agrees','alaska','albany','albert','albums','alerts','allied','ambien','amount','analog','andrew','angela','angels','angola','annual','anyone','apache','appeal','approx','arabia','arcade','arctic','argued','around','arrive','arthur','artist','ashley','asking','aspect','assets','assign','assist','asylum','athens','atomic','attach','august','author','autumn','avenue','awards','backed','bailey','ballet','banana','banner','barbie','barely','basket','beaver','become','behalf','behind','belief','berlin','beside','better','beyond','bidder','bikini','bishop','blacks','blades','boards','bodies','bottle','boxing','brakes','branch','brands','brazil','breach','breaks','breast','breeds','bridal','bridge','briefs','bright','broken','bronze','brooks','brutal','bufing','builds','bullet','bundle','burden','bureau','buried','burner','butter','button','buyers','buying','cached','called','calvin','camera','campus','cancel','carbon','caring','carlos','carpet','carter','casino','castle','casual','cattle','caused','causes','cayman','celebs','celtic','cement','census','center','centre','chains','chairs','change','charge','charts','cheats','checks','cheese','cheque','cherry','chicks','choice','choose','chrome','church','cialis','circus','claims','client','clinic','closed','coated','collar','colony','colour','column','combat','comics','commit','common','compaq','comply','condos','config','cooked','cookie','cooler','cooper','copies','copper','corner','corpus','courts','cowboy','create','credit','crimes','cursor','curtis','curves','cycles','cyprus','danger','daniel','danish','darwin','dating','dealer','debate','debian','decide','deemed','defend','define','degree','delays','delete','deluxe','demand','denial','denied','denver','design','desire','detail','detect','device','dialog','diesel','dinner','direct','dishes','divide','divine','diving','doctor','dollar','domain','donald','donors','dosage','double','driven','driver','drives','durham','during','eagles','easily','easter','ebooks','edward','effect','effort','either','eleven','emails','employ','energy','enzyme','equity','erotic','escape','essays','ethics','ethnic','exceed','except','exempt','exists','exotic','expert','export','extend','extras','fabric','facial','facing','factor','failed','fallen','family','famous','father','favors','fellow','female','fetish','figure','finest','finger','finish','fitted','fleece','flight','floppy','flower','folder','follow','forbes','forced','forces','forest','forgot','formal','formed','former','forums','fought','fraser','freely','freeze','french','friday','fridge','friend','frozen','fusion','future','galaxy','gaming','garage','garlic','gender','geneva','genius','genome','genres','gerald','gibson','glance','golden','gossip','gothic','grades','grande','granny','grants','graphs','gratis','greene','ground','groups','growth','guards','guests','guinea','guitar','guyana','habits','hacker','hammer','hansen','happen','harbor','harley','harold','harper','harris','hawaii','hazard','headed','header','hearts','heated','heaven','hebrew','height','helmet','hentai','herbal','hereby','heroes','hidden','higher','highly','hilton','hockey','holdem','honest','honors','horror','horses','hotels','hourly','hudson','humans','hunger','hungry','hybrid','ignore','import','incest','inches','income','indoor','infant','inform','inkjet','inline','inputs','invest','invite','island','israel','issues','italia','italic','itself','itunes','jacket','jackie','jaguar','jeremy','johnny','joined','jordan','joseph','judges','julian','junior','justin','kelkoo','killed','knight','knives','korean','kruger','labels','labour','lambda','larger','lately','latest','latina','latter','lawyer','layers','layout','leader','league','leaves','legacy','legend','lender','lenses','lesser','lesson','letter','likely','linear','linked','liquid','listed','listen','little','locate','logged','lolita','london','lonely','lovely','loving','lowest','luther','luxury','lyrics','madrid','mailed','mailto','mainly','manage','manner','marcus','margin','mariah','marine','marked','marker','market','martha','martin','matrix','matter','mature','meetup','memory','merely','metals','metres','metric','michel','middle','miller','milton','mining','mirror','modems','modern','module','moment','monaco','monica','monkey','morris','mostly','mother','mounts','movers','movies','moving','msgstr','munich','murphy','murray','muscle','mutual','myrtle','myself','namely','nasdaq','nathan','nation','native','nature','nearly','needed','needle','nelson','nested','nevada','newbie','newest','newman','nextel','nickel','nicole','nights','nobody','norman','norton','norway','notice','notify','novels','nurses','nutten','object','obtain','occurs','office','offset','oliver','online','opened','optics','option','oracle','orange','orders','oregon','origin','outlet','output','oxford','packed','packet','palace','palmer','panels','parade','parcel','parish','partly','passes','pastor','paying','peeing','pencil','people','permit','philip','phones','picked','pickup','pierce','pillow','placed','places','planet','plants','plates','played','player','please','pledge','plenty','pocket','points','poison','police','policy','polish','porter','posing','postal','posted','poster','potato','powder','powell','powers','praise','prayer','prefer','pretty','priest','prince','prints','prompt','proved','proven','prozac','pulled','pupils','pushed','puzzle','quebec','queens','quoted','quotes','racial','racing','raises','random','ranges','rapids','rarely','rather','rating','ratios','reader','realty','reason','recent','recipe','record','redeem','reduce','refers','refund','refuse','regard','region','reject','relate','reload','remedy','remote','remove','repair','rescue','resist','result','resume','retain','reward','rhythm','riding','rivers','robert','robust','rogers','roland','ronald','rounds','router','routes','rubber','ruling','runner','russia','rwanda','saddam','safari','safely','safety','saints','salary','salmon','sample','samuel','sandra','saturn','savage','saving','scales','scared','schema','school','scored','scores','screen','script','scroll','search','season','second','secret','sector','seeker','seemed','seller','senate','sender','sensor','serial','served','server','sewing','sexual','shades','shared','shares','sharon','shaved','sheets','shield','shirts','shorts','should','sierra','signal','silent','silver','simply','single','sister','skiing','skirts','sleeps','smooth','soccer','social','solely','soviet','spaces','speaks','speech','sphere','spider','spoken','spouse','spread','sprint','squirt','stable','stated','states','stayed','stereo','steven','sticky','stocks','stolen','stored','stores','stream','street','strict','string','strong','stuart','styles','stylus','subaru','subtle','suffer','summer','summit','sunday','sunset','superb','surrey','suzuki','sweden','sydney','symbol','syntax','system','tables','tackle','taiwan','taking','talent','talked','target','tariff','tattoo','taylor','techno','tenant','terror','thanks','theory','things','thinks','thomas','thongs','though','thread','threat','throat','thrown','thumbs','ticket','tigers','timber','timing','titans','titled','titten','toilet','topics','toward','toyota','trains','trance','trauma','travel','treaty','trends','tribes','tricks','triple','trivia','troops','trusts','tuning','turner','twelve','typing','uganda','ultram','unable','unlike','unlock','upload','urgent','vagina','valued','values','valves','varied','varies','velvet','venice','verbal','verify','vernon','viagra','victor','videos','vienna','viewed','villas','violin','virgin','vision','visits','visual','vocals','voices','volume','voters','voting','voyeur','voyuer','wagner','waiver','walked','walnut','wanted','warner','warren','waters','watson','weapon','webcam','weblog','wesley','wheels','whilst','wicked','wilson','winter','wisdom','wishes','within','wizard','wooden','worked','worker','worthy','wright','writer','yamaha','yearly','zambia','zoning','zshops']\n\nconst words_7 =['ability','abraham','account','accused','acquire','acrylic','actions','actress','adapted','adaptor','address','advance','advised','affairs','affects','against','airfare','airline','airport','albania','alberta','algeria','alleged','allergy','allowed','already','altered','amateur','amazing','ambient','amended','amounts','anaheim','analyst','analyze','andreas','andrews','answers','antenna','antigua','anxiety','anybody','anymore','anytime','appeals','applied','applies','aquatic','arizona','armenia','arrange','arrival','article','artists','artwork','aspects','assumed','assumes','atlanta','attract','auction','auditor','austria','average','awesome','baghdad','bahamas','bahrain','bangkok','banking','baptist','barbara','bargain','baskets','battery','bearing','because','becomes','bedding','bedford','bedroom','beijing','belfast','belgium','belongs','beneath','benefit','bermuda','bernard','between','beverly','bicycle','bidding','biggest','billing','binding','biology','bizrate','blanket','blessed','blowing','blowjob','booking','borders','borough','bouquet','bradley','brandon','breasts','bridges','briefly','bristol','britain','british','britney','brokers','brother','browser','budgets','buffalo','builder','burning','cabinet','calcium','calling','cameras','cameron','camping','capable','capital','capitol','captain','capture','cardiff','careers','careful','carries','carroll','casinos','casting','catalog','caution','ceiling','centers','central','certain','chamber','chances','changed','charged','charges','charity','checked','chinese','circles','circuit','claimed','classes','classic','cleaner','cleanup','cleared','clearly','climate','clinton','closely','closing','clothes','cluster','coaches','coating','collins','cologne','colours','command','compete','complex','concert','confirm','connect','consist','console','contact','contain','content','contest','context','convert','cookies','cooling','copying','council','counsel','counter','country','coupled','coupons','courage','courses','covered','created','creates','creator','cricket','critics','croatia','cruises','crystal','cuisine','culture','cumshot','curious','current','customs','damaged','dancing','dealing','deborah','decades','decided','declare','default','defects','defence','deficit','defines','degrees','delight','denmark','density','depends','deposit','desired','desktop','despite','destroy','detroit','develop','deviant','devoted','diamond','dietary','digital','diploma','discuss','disease','display','distant','divided','divorce','doctors','dollars','domains','donated','douglas','drawing','drivers','driving','dropped','dynamic','earning','eastern','eclipse','ecology','economy','ecuador','edition','edwards','effects','efforts','elected','elegant','element','embassy','emerald','enables','endless','enemies','engaged','engines','england','english','enhance','enjoyed','enlarge','enquiry','ensures','entries','escorts','essence','estates','estonia','eternal','ethical','evident','exactly','examine','example','execute','exhibit','expense','experts','expired','expires','explain','exports','exposed','express','extends','extract','extreme','failing','failure','falling','fantasy','farmers','fashion','fastest','fathers','federal','feeling','females','fifteen','fighter','figures','filling','filters','finally','finance','findlaw','finland','fishing','fisting','fitness','flights','flowers','folders','follows','foreign','forever','formats','forming','formula','fortune','forward','founded','founder','francis','freight','friends','funding','funeral','further','futures','gabriel','gallery','garbage','gazette','general','genesis','genetic','genuine','geology','germany','gilbert','glucose','gourmet','grammar','granted','greater','greatly','gregory','grocery','grounds','growing','guitars','halifax','hamburg','hampton','happens','harbour','harmful','harmony','harvest','hazards','heading','headset','healing','healthy','heavily','heights','helpful','helping','herself','highest','highway','history','hitachi','hitting','holders','holiday','holland','horizon','hotmail','housing','hundred','hungary','hunting','husband','hygiene','iceland','ignored','illegal','imagine','imaging','impacts','implies','include','indexed','indians','infants','initial','insects','insider','install','instant','insulin','insured','intense','invalid','involve','ireland','islamic','islands','israeli','january','jeffrey','jelsoft','jessica','justice','katrina','keeping','kennedy','kenneth','keyword','killing','kingdom','kissing','knights','labeled','landing','largely','largest','laundry','lawsuit','lawyers','leaders','leading','learned','leasing','leaving','lebanon','legends','leisure','leonard','lesbian','lessons','letters','letting','lexmark','liberal','liberty','lincoln','lindsay','linking','livecam','livesex','loading','locally','locking','lodging','logging','logical','looking','madison','madness','magical','mailing','mailman','manager','mandate','marilyn','markers','marking','martial','massage','massive','matches','matters','matthew','meaning','medline','memphis','mercury','message','mexican','michael','mileage','minimal','minimum','minolta','miracle','mirrors','missile','missing','mission','mistake','mobiles','modular','moldova','moments','monitor','montana','monthly','mounted','mozilla','muscles','museums','mystery','nations','natural','nearest','nervous','newport','nigeria','norfolk','nothing','noticed','notices','nowhere','numeric','nursery','oakland','obesity','observe','october','officer','offices','olympic','ongoing','opening','operate','opposed','optical','optimum','ordered','origins','orlando','orleans','outcome','outline','outlook','outputs','overall','package','packets','painful','parking','partner','passage','passing','passive','patches','patrick','payable','payment','pendant','pension','percent','perhaps','persian','persons','philips','phoenix','phrases','physics','picking','picture','pioneer','pirates','pissing','placing','planets','planned','plastic','players','podcast','polymer','pontiac','popular','porsche','portion','possess','posters','posting','pottery','poultry','poverty','powered','prairie','prayers','precise','premium','prepaid','prepare','preston','primary','printed','printer','privacy','private','proceed','product','profile','profits','program','project','promise','promote','prophet','protect','protest','provide','pulling','pushing','putting','puzzles','qualify','quality','quantum','queries','radical','rainbow','raising','raleigh','rangers','ranging','ranking','ratings','reached','reaches','reading','realize','rebecca','rebound','receive','recipes','records','recover','refined','reflect','reforms','refused','regards','related','relates','release','relying','remains','remarks','removed','renewal','rentals','replace','replica','replies','reprint','request','require','reserve','resorts','resumes','retreat','reunion','reuters','reveals','revenge','revenue','richard','roberts','rolling','romance','romania','roughly','routers','routine','royalty','running','runtime','russell','russian','sailing','samsung','satisfy','savings','scanned','schemes','schools','scripts','seafood','seattle','seconds','secrets','section','sectors','secured','seekers','seeking','selling','seminar','senator','senegal','serious','servers','serving','seventh','several','shadows','shakira','shannon','shemale','sheriff','sherman','shipped','shorter','shortly','showing','shuttle','siemens','silence','silicon','similar','simpson','sisters','sitemap','skilled','smoking','society','solaris','soldier','solomon','solving','somalia','spatial','speaker','species','specify','spencer','spirits','sponsor','stadium','started','starter','startup','stating','station','statute','staying','stephen','stewart','sticker','stopped','storage','stories','strange','stretch','strings','student','studied','studies','studios','stuffed','subject','success','sucking','suggest','summary','sunrise','support','surface','surfing','surgery','surplus','survive','suspect','swedish','symbols','systems','tablets','tactics','talking','teacher','teaches','telecom','telling','tension','terrace','terrain','texture','theatre','therapy','thereof','thermal','thought','threads','thunder','timothy','tobacco','tonight','toolkit','totally','touring','tourism','towards','tracked','tractor','trading','traffic','tragedy','trailer','trainer','transit','travels','treated','triumph','trouble','trusted','trustee','tsunami','tuition','twisted','unknown','updated','upgrade','uruguay','utility','utilize','vampire','vanilla','various','varying','vendors','venture','verizon','version','vessels','veteran','victims','victory','vietnam','viewers','vincent','vintage','violent','virtual','visible','visited','visitor','vitamin','voltage','walking','wallace','wanting','warning','warrant','warrior','washing','wearing','weather','webcams','webpage','webster','wedding','welcome','welding','western','whereas','whether','wichita','windows','winning','winston','wishing','without','worried','worship','wrapped','written','wyoming','younger']\n\nconst words_8 = ['aberdeen','abortion','absolute','abstract','academic','accepted','accessed','accident','accounts','achieved','acoustic','acquired','activity','actually','adapters','adelaide','adequate','admitted','adoption','advances','advisors','advisory','advocacy','advocate','airplane','alliance','allowing','although','aluminum','american','americas','analyses','analysis','analysts','analyzed','animated','announce','annoying','annually','antibody','antiques','anything','anywhere','apparent','appeared','appendix','applying','approach','approval','approved','aquarium','archived','archives','arrested','articles','artistic','asbestos','assembly','assessed','assigned','athletic','atlantic','attached','attempts','attorney','auckland','auctions','audience','aviation','avoiding','bacteria','balanced','barbados','bargains','barriers','baseball','baseline','basement','basename','bathroom','bedrooms','beginner','behavior','believed','believes','benefits','benjamin','berkeley','beverage','biblical','bleeding','blocking','bloggers','blogging','blowjobs','bookings','bookmark','botswana','bracelet','bradford','branches','breaking','breeding','briefing','brighton','bringing','brisbane','brooklyn','brothers','browsers','browsing','brunette','budapest','builders','building','bulgaria','business','cadillac','calendar','cambodia','cameroon','campaign','campbell','canadian','canberra','capacity','captured','carnival','carolina','carriers','cartoons','cassette','catering','catholic','cellular','cemetery','centered','ceremony','chairman','changing','channels','chapters','chargers','charging','charming','checking','checkout','chemical','choosing','churches','cingular','circuits','citation','citizens','civilian','classics','cleaners','cleaning','clearing','clicking','clinical','clothing','clusters','coaching','cocktail','collapse','colleges','colombia','colonial','colorado','columbia','columbus','combines','commands','comments','commerce','commonly','compiled','complete','composer','compound','computed','computer','concepts','concerns','conclude','concrete','conflict','congress','consider','consists','consoles','constant','contacts','contains','contents','contests','contrary','contrast','controls','cookbook','cordless','costumes','councils','counties','coverage','covering','creating','creative','creature','criminal','critical','crossing','cultural','cultures','cumshots','currency','customer','database','davidson','deadline','dealtime','december','decision','declared','declined','decrease','deferred','delaware','delivers','democrat','dentists','deposits','describe','desktops','detailed','detector','deutsche','develops','diabetes','dialogue','diameter','diamonds','directed','directly','disabled','disagree','disclose','discount','discover','diseases','disorder','dispatch','displays','disputes','distinct','district','dividend','division','document','domestic','dominant','donation','download','downtown','drainage','dressing','drilling','drinking','duration','dynamics','earliest','earnings','earrings','economic','editions','educated','egyptian','elements','elephant','emerging','emirates','emission','emphasis','employed','employee','employer','encoding','engaging','engineer','enhanced','enormous','ensemble','entering','entirely','entities','entitled','entrance','envelope','epinions','episodes','equality','equation','equipped','ethernet','ethiopia','everyday','everyone','evidence','examined','examples','excluded','executed','exercise','exhibits','existing','expanded','expansys','expected','expenses','explicit','explorer','exposure','extended','external','fabulous','facility','familiar','families','favorite','featured','features','february','feedback','feelings','fighters','fighting','filename','finances','findings','fioricet','firewall','firewire','firmware','fixtures','flashers','florists','followed','footwear','forestry','formerly','fountain','fraction','franklin','freeware','frequent','friendly','frontier','function','gamecube','gamespot','gangbang','gasoline','generate','genetics','geometry','gorgeous','governor','graduate','grateful','greatest','greeting','guardian','guidance','hamilton','handbags','handbook','handjobs','handling','happened','hardcore','hardware','hardwood','harrison','hartford','hawaiian','headline','hearings','heritage','highland','hispanic','historic','holdings','holidays','homeland','homepage','hometown','honduras','horrible','hospital','humidity','hydrogen','identify','identity','impaired','improved','incident','included','includes','incoming','increase','incurred','indicate','indirect','industry','infinite','informal','informed','injuries','innocent','inserted','insights','inspired','integral','interact','interest','interior','internal','interval','intranet','invasion','investor','invision','involved','involves','istanbul','italiano','japanese','jennifer','johnston','jonathan','journals','judicial','junction','kentucky','keywords','kingston','launched','launches','lawrence','learners','learning','lectures','lesbians','licensed','licenses','lightbox','lighting','likewise','limiting','lingerie','listings','literacy','literary','location','logitech','machines','magazine','mainland','maintain','majority','maldives','manitoba','manually','marathon','margaret','maritime','marriage','marriott','marshall','matching','material','mattress','maximize','measured','measures','medicaid','medicare','medieval','meetings','membrane','memories','messages','metadata','michelle','michigan','midlands','midnight','military','millions','minerals','minimize','minister','ministry','minority','missions','missouri','mistakes','mistress','mitchell','mobility','modeling','moderate','modified','moisture','momentum','monetary','mongolia','monitors','monsters','moreover','mortgage','mountain','movement','multiple','musician','naturals','navigate','nebraska','necklace','negative','neighbor','netscape','networks','nicholas','nickname','nintendo','nitrogen','normally','northern','notebook','notified','november','numerous','observed','obtained','occasion','occupied','offering','officers','official','offshore','oklahoma','olympics','openings','operated','operates','operator','opinions','opponent','opposite','ordering','ordinary','oriented','original','outcomes','outlined','outreach','overcome','overhead','overview','packages','painting','pakistan','paraguay','particle','partners','passport','password','patricia','patterns','pavilion','payments','peaceful','pensions','personal','peterson','petition','pharmacy','phillips','physical','pictures','pipeline','planning','plastics','platform','playback','playlist','pleasant','plumbing','plymouth','podcasts','pointing','policies','portable','portions','portland','portrait','positive','possibly','postcard','postings','potatoes','practice','precious','pregnant','premiere','premises','presence','presents','preserve','pressure','princess','printers','priority','prisoner','probably','problems','proceeds','producer','produces','products','profiles','programs','progress','projects','promised','promoted','promotes','promptly','propecia','properly','property','proposal','proposed','prospect','prostate','proteins','provider','provides','province','publicly','purchase','pursuant','quantity','quarters','question','reaching','reaction','readings','realtors','received','receiver','receives','recently','receptor','recovery','reducing','referred','reflects','refugees','regarded','regional','registry','relating','relation','relative','released','releases','religion','remained','remedies','remember','reminder','removing','rendered','repeated','replaced','reported','reporter','republic','requests','required','requires','research','reseller','reserves','resident','resolved','resource','response','restored','restrict','resulted','retailer','retained','retrieve','returned','revealed','revenues','reviewer','revision','reynolds','richards','richmond','ringtone','robinson','romantic','rotation','roulette','routines','salaries','salvador','sampling','sandwich','sapphire','savannah','scanners','scanning','scenario','schedule','scholars','sciences','scotland','scottish','searched','seasonal','sections','securely','security','selected','semester','seminars','sentence','separate','sequence','sessions','settings','sexually','shanghai','shemales','shepherd','shipment','shipping','shooting','shoppers','shopping','shoulder','simpsons','situated','sleeping','slightly','smallest','softball','software','soldiers','solution','somebody','somerset','somewhat','southern','spanking','speaking','specific','speeches','spelling','sponsors','sporting','springer','staffing','standard','standing','starting','stations','steering','sterling','stopping','straight','strength','striking','stronger','strongly','struggle','students','stunning','suburban','suddenly','suffered','suitable','superior','supplied','supplier','supplies','supposed','surfaces','surgeons','surgical','surprise','survival','survivor','swimming','swingers','switched','sympathy','symphony','symptoms','syndrome','synopsis','talented','tanzania','targeted','taxation','template','terminal','terrible','thailand','theaters','theology','thinking','thinkpad','thompson','thorough','thoughts','thousand','threaded','throwing','thursday','timeline','titanium','together','tomatoes','tracking','trailers','trainers','training','transfer','transmit','treasure','treasury','treating','triangle','tribunal','trinidad','tropical','trustees','tutorial','ultimate','universe','untitled','upcoming','upgrades','uploaded','upskirts','vacation','validity','valuable','variable','variance','ventures','verified','versions','vertical','veterans','vibrator','victoria','villages','visitors','vitamins','warcraft','warnings','warranty','warriors','watching','webshots','websites','weddings','weekends','weighted','wellness','whatever','whenever','wherever','wildlife','wireless','wishlist','workflow','workshop','worldcat','worldsex','zimbabwe']\n\nconst words_9 = ['abandoned','abilities','abstracts','academics','accepting','accessing','accessory','accidents','according','achieving','activated','activists','addiction','additions','addressed','addresses','admission','advantage','adventure','advertise','aerospace','affecting','affiliate','aggregate','agreement','alexander','algorithm','alignment','allocated','allowance','alternate','aluminium','amendment','amenities','americans','amplifier','amsterdam','animation','annotated','announced','announces','anonymous','answering','antivirus','apartment','apparatus','appearing','appliance','applicant','appointed','appraisal','arbitrary','architect','argentina','arguments','arlington','armstrong','arthritis','assembled','assessing','assistant','associate','assurance','astrology','astronomy','athletics','attempted','attending','attention','attitudes','attorneys','attribute','australia','authentic','authority','automated','automatic','available','awareness','bacterial','baltimore','bandwidth','barcelona','basically','bathrooms','batteries','beautiful','beginners','beginning','behaviour','benchmark','beverages','biography','blackjack','bloomberg','bluetooth','bookmarks','bookstore','boulevard','bracelets','brazilian','breakdown','breakfast','breathing','brilliant','broadband','broadcast','brochures','brunswick','buildings','bulgarian','butterfly','calculate','calendars','cambridge','camcorder','campaigns','cancelled','candidate','carefully','caribbean','cartridge','catalogue','cathedral','catherine','celebrate','celebrity','centuries','certainly','certified','challenge','champagne','champions','changelog','character','charlotte','checklist','chemicals','chemistry','chevrolet','childhood','childrens','chocolate','christian','christina','christine','christmas','chronicle','cigarette','citations','classical','classroom','clearance','cleveland','coalition','cognitive','colleague','collected','collector','combining','commander','commented','committed','committee','commodity','communist','community','companies','companion','comparing','competent','competing','complaint','completed','compliant','component','composite','compounds','computers','computing','concerned','concluded','condition','conducted','confident','configure','confirmed','conflicts','confusion','connected','connector','conscious','consensus','considers','construct','consumers','contacted','contained','container','continent','continued','continues','contracts','converted','converter','convicted','convinced','copyright','corporate','corrected','correctly','cosmetics','countries','creations','creatures','criterion','criticism','crossword','currently','customers','customise','customize','dangerous','databases','daughters','decisions','decreased','dedicated','defendant','defensive','delicious','delivered','demanding','democracy','democrats','departure','dependent','depending','described','describes','designers','designing','desirable','desperate','destroyed','detection','detective','determine','developed','developer','deviation','diagnosis','different','difficult','dimension','direction','directive','directors','directory','discharge','discounts','discovery','discussed','discusses','disorders','displayed','distances','districts','disturbed','diversity','divisions','documents','dominican','donations','downloads','duplicate','ecommerce','economics','economies','edinburgh','editorial','educators','effective','efficient','elections','electoral','elevation','eliminate','elizabeth','elsewhere','emergency','emissions','emotional','empirical','employees','employers','enclosure','encounter','encourage','engineers','enhancing','enquiries','equations','equipment','essential','establish','estimated','estimates','evaluated','everybody','evolution','examining','excellent','exception','excessive','exchanges','excluding','exclusion','exclusive','execution','executive','exemption','exercises','existence','expanding','expansion','expensive','expertise','explained','exploring','explosion','expressed','extending','extension','extensive','extremely','fairfield','fantastic','favorites','favourite','featuring','festivals','filtering','financial','financing','fingering','finishing','fireplace','fisheries','following','forbidden','forecasts','forgotten','formation','fragrance','framework','franchise','francisco','frankfurt','frederick','freelance','frequency','frontpage','functions','furnished','furniture','galleries','gardening','gathering','genealogy','generally','generated','generates','generator','gentleman','geography','gibraltar','governing','gradually','graduates','greetings','guarantee','guatemala','guestbook','halloween','hampshire','handhelds','happening','happiness','hardcover','hazardous','headlines','henderson','hepatitis','hierarchy','highlight','hollywood','holocaust','hopefully','hospitals','household','hungarian','hurricane','hydraulic','identical','immediate','implement','important','impressed','improving','incentive','incidence','incidents','including','inclusion','inclusive','incorrect','increased','increases','indicated','indicates','indicator','indonesia','induction','infection','inflation','influence','inherited','initially','initiated','injection','inquiries','insertion','inspector','installed','instances','instantly','institute','insurance','integrate','integrity','intensity','intensive','intention','interests','interface','intervals','interview','introduce','invention','inventory','investing','investors','invisible','involving','isolation','jefferson','jerusalem','jewellery','keyboards','knowledge','lafayette','lancaster','landscape','languages','legendary','lexington','liability','librarian','libraries','licensing','lifestyle','lightning','listening','listprice','literally','lithuania','liverpool','livestock','logistics','longitude','looksmart','louisiana','macedonia','machinery','macintosh','magazines','magnitude','maintains','mandatory','manhattan','marijuana','marketing','materials','maternity','mauritius','meanwhile','measuring','mechanics','mechanism','mediawiki','medicines','melbourne','mentioned','merchants','messaging','metallica','microsoft','microwave','migration','milwaukee','miniature','ministers','minnesota','modelling','moderator','molecular','molecules','monitored','mortality','mortgages','motivated','movements','municipal','musicians','namespace','narrative','nashville','naturally','navigator','necessary','necessity','neighbors','newcastle','newspaper','nicaragua','nightlife','nightmare','nominated','nonprofit','northeast','northwest','norwegian','notebooks','numerical','nutrition','objective','obtaining','obviously','occasions','occurring','offensive','offerings','officials','omissions','operating','operation','operators','opponents','orchestra','ordinance','organised','organisms','organized','otherwise','ourselves','overnight','ownership','packaging','paintball','paintings','palestine','panasonic','pantyhose','paperback','paragraph','parameter','parenting','partially','particles','partition','passenger','passwords','pathology','pediatric','penalties','perceived','perfectly','performed','performer','permalink','permanent','permitted','personals','personnel','petroleum','photoshop','physician','pichunter','placement','plaintiff','platforms','political','pollution','polyester','porcelain','portfolio','portraits','positions','postcards','potential','practical','practices','preceding','precisely','precision','predicted','preferred','pregnancy','preparing','presented','presently','president','primarily','princeton','principal','principle','printable','prisoners','privilege','procedure','processed','processes','processor','producers','producing','professor','programme','projected','projector','prominent','promising','promoting','promotion','proposals','prospects','prostores','protected','protocols','prototype','providers','providing','provinces','provision','publicity','published','publisher','purchased','purchases','qualified','qualities','quarterly','questions','radiation','reactions','realistic','reasoning','receivers','receiving','reception','receptors','recipient','recognize','recommend','recorders','recording','recovered','recycling','reduction','reference','referrals','referring','refinance','reflected','regarding','registrar','regularly','regulated','relations','relatives','relevance','religions','religious','remainder','remaining','removable','rendering','renewable','replacing','reporters','reporting','represent','reproduce','requested','requiring','reservoir','residence','residents','resistant','resources','respected','responded','responses','resulting','retailers','retention','retrieval','retrieved','returning','reviewing','revisions','ringtones','riverside','robertson','rochester','roommates','sacrifice','salvation','satellite','satisfied','scenarios','scheduled','schedules','scientist','screening','scripting','sculpture','searching','secondary','secretary','selecting','selection','selective','sensitive','sentences','separated','september','sequences','seriously','sexuality','shareware','sheffield','shipments','shopzilla','shortcuts','showtimes','signature','similarly','singapore','situation','slideshow','snowboard','societies','sociology','solutions','something','sometimes','somewhere','southeast','southwest','specially','specialty','specifics','specified','specifies','spiritual','spokesman','sponsored','spotlight','spreading','squirting','stability','stainless','standards','standings','statement','statewide','statutory','stephanie','stockholm','stockings','strategic','streaming','strengths','structure','submitted','subscribe','substance','suffering','suggested','summaries','suppliers','supported','surprised','survivors','suspected','suspended','sustained','swaziland','switching','symposium','syndicate','synthesis','synthetic','technical','technique','telephone','telephony','telescope','templates','temporary','tennessee','terminals','territory','terrorism','terrorist','testament','testimony','textbooks','therapist','therefore','thesaurus','thickness','thousands','threesome','threshold','thumbnail','tolerance','trackback','trademark','tradition','transfers','transform','translate','transport','travelers','traveling','traveller','treasurer','treasures','treatment','tutorials','typically','undefined','undertake','underwear','uniprotkb','universal','unlimited','upgrading','utilities','vacancies','vacations','valentine','valuation','vancouver','variables','variation','varieties','vbulletin','vegetable','venezuela','vibrators','victorian','violation','virtually','voluntary','volunteer','voyeurweb','wallpaper','warehouse','watershed','webmaster','wednesday','wholesale','wikipedia','wisconsin','witnesses','wonderful','wondering','worcester','wordpress','workforce','workplace','workshops','worldwide','wrestling','yesterday','yorkshire','zoophilia']\n\nconst words_10 = ['aboriginal','absolutely','absorption','acceptable','acceptance','accessible','accomplish','accordance','accounting','accredited','accurately','acdbentity','activation','activities','adaptation','additional','addressing','adjustable','adjustment','admissions','adolescent','advantages','adventures','advertiser','affiliated','affiliates','affordable','afterwards','aggressive','agreements','alexandria','algorithms','allocation','ambassador','amendments','analytical','annotation','antarctica','antibodies','apartments','apparently','appearance','appliances','applicable','applicants','appreciate','approaches','architects','artificial','assessment','assignment','assistance','associated','associates','assumption','atmosphere','attachment','attempting','attendance','attraction','attractive','attributes','australian','authorized','automation','automobile','automotive','azerbaijan','background','bangladesh','bankruptcy','basketball','beastality','behavioral','beneficial','bestiality','biological','birmingham','blackberry','boundaries','britannica','burlington','businesses','calculated','calculator','california','camcorders','candidates','capability','cartridges','categories','challenged','challenges','chancellor','characters','charitable','charleston','christians','chronicles','cigarettes','cincinnati','citysearch','classified','colleagues','collecting','collection','collective','collectors','columnists','commentary','commercial','commission','commitment','committees','comparable','comparison','compatible','complaints','complement','completely','completing','completion','complexity','compliance','components','compressed','compromise','conceptual','concerning','conclusion','conditions','conducting','conference','confidence','configured','connecting','connection','connectors','considered','consistent','consisting','consortium','conspiracy','constantly','constitute','constraint','consultant','consulting','contacting','containers','containing','continuing','continuity','continuous','contractor','contribute','controlled','controller','convenient','convention','conversion','conviction','coordinate','copyrights','correction','corruption','counseling','creativity','cumulative','currencies','curriculum','customized','decorating','decorative','definitely','definition','delegation','delivering','democratic','department','dependence','deployment','depression','descending','describing','designated','determined','determines','developers','developing','diagnostic','dictionary','difference','difficulty','dimensions','directions','disability','discipline','disclaimer','disclosure','discounted','discovered','discretion','discussing','discussion','dispatched','displaying','distribute','documented','downloaded','earthquake','ecological','editorials','efficiency','electrical','electronic','elementary','employment','encouraged','encourages','encryption','endangered','engagement','enrollment','enterprise','equivalent','especially','essentials','estimation','evaluating','evaluation','eventually','everything','everywhere','excellence','exceptions','excitement','executives','exhibition','experience','experiment','expiration','explaining','explicitly','expression','extensions','extraction','facilitate','facilities','favourites','federation','fellowship','formatting','forwarding','foundation','fragrances','frequently','friendship','functional','generating','generation','generators','geographic','geological','girlfriend','governance','government','graduation','greenhouse','greensboro','guaranteed','guarantees','guidelines','harassment','headphones','healthcare','helicopter','highlights','historical','horizontal','households','housewares','housewives','humanities','huntington','hypothesis','identified','identifier','identifies','immigrants','immunology','importance','impossible','impression','impressive','incentives','incomplete','increasing','incredible','indicating','indication','indicators','indigenous','individual','indonesian','industrial','industries','infections','infectious','influenced','influences','initiative','innovation','innovative','inspection','installing','institutes','instructor','instrument','insulation','integrated','interested','interfaces','internship','interstate','interviews','introduced','introduces','investment','invitation','irrigation','javascript','journalism','journalist','kazakhstan','kilometers','laboratory','landscapes','lauderdale','leadership','legitimate','likelihood','limitation','limousines','literature','litigation','louisville','luxembourg','macromedia','madagascar','mainstream','maintained','management','manchester','mastercard','meaningful','mechanical','mechanisms','medication','meditation','membership','metabolism','microphone','milfhunter','millennium','ministries','mitsubishi','moderators','monitoring','montgomery','motivation','motorcycle','mozambique','multimedia','mysterious','nationally','nationwide','navigation','networking','newsletter','newspapers','nomination','nottingham','obituaries','objectives','obligation','occasional','occupation','occurrence','officially','operations','opposition','organizing','originally','paperbacks','paragraphs','parameters','parliament','particular','passengers','percentage','perception','performing','peripheral','permission','persistent','personally','petersburg','pharmacies','phenomenon','philosophy','photograph','physically','physicians','physiology','pittsburgh','polyphonic','popularity','population','portsmouth','portuguese','possession','postposted','powerpoint','prediction','preference','prescribed','presenting','preventing','prevention','previously','principles','priorities','privileges','procedures','proceeding','processing','processors','production','productive','profession','programmer','programmes','prohibited','projection','projectors','promotions','properties','proportion','protecting','protection','protective','providence','provincial','provisions','psychiatry','psychology','publishers','publishing','punishment','purchasing','qualifying','quantities','queensland','quotations','reasonable','reasonably','recipients','recognised','recognized','recommends','recordings','recreation','recruiting','reductions','referenced','references','reflection','regardless','registered','regression','regulation','regulatory','relatively','relaxation','relocation','remarkable','remembered','repository','represents','reproduced','republican','reputation','requesting','researcher','resistance','resolution','respective','respondent','responding','restaurant','restricted','retirement','revelation','revolution','richardson','sacramento','scheduling','scientific','scientists','screenshot','securities','selections','separately','separation','settlement','signatures','simplified','simulation','situations','soundtrack','specialist','statements','stationery','statistics','strategies','strengthen','structural','structured','structures','subjective','submission','submitting','subscriber','subsection','subsequent','subsidiary','substances','substitute','successful','sufficient','suggesting','suggestion','sunglasses','supervisor','supplement','supporters','supporting','surprising','surrounded','suspension','systematic','technician','techniques','technology','television','terrorists','themselves','thereafter','thoroughly','threatened','throughout','thumbnails','thumbzilla','tournament','trackbacks','trademarks','traditions','transcript','transexual','transition','translated','translator','travelling','treatments','tremendous','ultimately','underlying','understand','understood','undertaken','unexpected','university','uzbekistan','validation','variations','vegetables','vegetarian','vegetation','veterinary','vietnamese','violations','visibility','vocabulary','vocational','volkswagen','volleyball','volunteers','vulnerable','wallpapers','warranties','washington','waterproof','webmasters','wellington','widescreen','widespread','wilderness','withdrawal','yugoslavia']\n\nconst extra_words = [words_6,words_7,words_8,words_9,words_10]\n \nfunction isGameRunning(){\n return storeExist(\"game\")\n}\nfunction getRandomWord(length){\n let filtered;\n \tif(length == 5 || length > 10){\n filtered = wordList.filter(x => x.length == 5);\n }\n else{\n filtered = extra_words[length - 6]\n }\n \tlet word = filtered[Math.floor(Math.random() * filtered.length)].toUpperCase()\n if(!IRC.wordList.includes(word))\n return getRandomWord(length)\n return word;\n}\nfunction startGame(length){\n let word = getRandomWord(length);\n store.set(\"game\",word);\n store.set(\"hint\",'_ '.repeat(length))\n store.set(\"correct\",\"\")\n store.set(\"guesses\", 0)\n store.set(\"letters\",\"\")\n print(`★ {y}Game{/} started ${'_ '.repeat(length)}`)\n IRC.require('module.count').next()\n}\nfunction getGuesses(){\n return +store.get(\"guesses\")\n}\nfunction resetGuesses(){\n store.set(\"guesses\", 0)\n}\nfunction increaseGuesses(){\n store.set(\"guesses\", getGuesses() + 1)\n}\nfunction storeExist(key){\n return typeof(store.get(key)) !== \"undefined\"\n}\nfunction endGame(){\n resetGuesses();\n store.set(\"letters\",\"\")\n store.set(\"correct\",\"\")\n store.set(\"game\",undefined)\n}\nfunction computeHint(input){\n const word = store.get(\"game\")\n let hint = \"\"\n let correct = store.get(\"correct\")\n for(let i = 0; i < word.length; i++){\n if(word[i] == input[i]){\n hint = hint.concat(`{g}${word[i]}{/} `)\n if(!correct.includes(`{g}${word[i]}{/}${i+1} `)){\n correct = correct.concat(`{g}${word[i]}{/}${i+1} `)\n if(correct.includes(`{y}${word[i]}{/}`)){\n correct = correct.replaceAll(`{y}${word[i]}{/} `, \"\")\n }\n }\n }\n else if(word.includes(input[i]) && !hint.includes(`{y}${input[i]}{/}`) && !hint.includes(`{g}${input[i]}{/}`)){\n hint = hint.concat(`{y}${input[i]}{/} `)\n if(!correct.includes(input[i])){\n \tcorrect = correct.concat(`{y}${input[i]}{/} `)\n } \n }\n else{\n hint = hint.concat('_ ')\n }\n }\n store.set(\"hint\",hint)\n store.set(\"correct\",correct)\n}\nfunction removeDups(str){\n return Array.from(new Set(str.split())).join();\n}\n\nfunction isCorrect(input){\n return input == store.get(\"game\")\n}\n \nfunction unguessedLetters(input){\n // remove duplicates\n const alphabet = Array.from(\"ABCDEFGHIJKLMNOPQRSTUVWXYZ\");\n let guessedLetters = store.get(\"letters\");\n let update = guessedLetters.concat(removeDups(input)).toUpperCase();\n store.set(\"letters\", update)\n return alphabet.filter(x => !update.includes(x));\n}\n\n\nfunction saveHighScore(user){\n // Increase the High Score of a user who answered correctly\n let score = 8 - +store.get(\"guesses\")\n if (storeExist(user)){\n store.set(user, +store.get(user) + score)\n }else{\n store.set(user,score)\n }\n}\n\nconst { from } = IRC.message;\n\nfunction main(){\n if(isGameRunning()){\n if(!input){\n print(`Game running: ${store.get(\"hint\")}`)\n print(`Unguessed: ${unguessedLetters(\"\").sort().join(\" \")}`)\n print(`Correct : ${store.get(\"correct\")}`)\n }else{\n input = input.toUpperCase()\n if(!IRC.wordList.includes(input) || input.length != store.get(\"game\").length){\n print(\"Not a valid word\")\n return\n }\n increaseGuesses()\n if(isCorrect(input)){\n print(`Correct! Good job Team.`);\n endGame();\n }else{\n let user_try = getGuesses()\n if (user_try > 6){\n \tprint('Incorrect')\n print('You all lost') \n print(`The word was ${store.get(\"game\")}`)\n \tendGame();\n }else{\n computeHint(input)\n print(store.get(\"hint\")) \n print(`Unguessed: ${unguessedLetters(input).sort().join(\" \")}`)\n print(`Correct : ${store.get(\"correct\")}`)\n print(`${6 - user_try} Guess${6 - user_try == 1 ? '' : 'es'} left`)\n } \n }\n }\n }else{\n if (input.length > 0){\n if(isNaN(input) || +input < 5){\n print(\"No game running dummy\")\n }else{\n print(\"Starting game of length: \" + input)\n startGame(+input);\n }\n \n }else{\n print(\"Starting normal wordle game\")\n startGame(5); \n }\n }\n}\nif(!module.required){\n main();\n}" } \ No newline at end of file diff --git a/commands/wordlestats-a28789fb5347.json b/commands/wordlestats-a28789fb5347.json new file mode 100644 index 0000000..bd39a53 --- /dev/null +++ b/commands/wordlestats-a28789fb5347.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "wordle.stats", + "command": "print(\"It's a cooperative game!\")" +} \ No newline at end of file From ecd06eb6e538ede40b42f70c0c3572a70bca2df7 Mon Sep 17 00:00:00 2001 From: kirjavascript Date: Mon, 14 Feb 2022 23:47:29 +0100 Subject: [PATCH 12/94] more memo stuff, added setnamespace to sudo --- commands/dayssincegithubruinedtheui-1d21c2374d84.json | 4 ++-- commands/event-b306be3528b0.json | 2 +- commands/eventfetchURL-798176d44de4.json | 2 +- commands/memodelete-5e72aaed4d28.json | 2 +- commands/memodupe-b62c535fd3c8.json | 7 +++++++ commands/memomulti-3c4b32e346d5.json | 2 +- irc/evaluate/vm.js | 11 +++++++---- 7 files changed, 20 insertions(+), 10 deletions(-) create mode 100644 commands/memodupe-b62c535fd3c8.json diff --git a/commands/dayssincegithubruinedtheui-1d21c2374d84.json b/commands/dayssincegithubruinedtheui-1d21c2374d84.json index f0d7569..b770302 100644 --- a/commands/dayssincegithubruinedtheui-1d21c2374d84.json +++ b/commands/dayssincegithubruinedtheui-1d21c2374d84.json @@ -2,5 +2,5 @@ "locked": false, "starred": false, "name": "dayssincegithubruinedtheui", - "command": "const dateFns = require('date-fns@1.30.1');n=dateFns.differenceInDays(new Date(), new Date('2020-06-23T19:04:15.522Z'));\nn=`${n} day${n==1?'':'s'}`\nm=dateFns.differenceInDays(new Date(), new Date('2021-10-01T00:50:15.522Z')); \nm=`${m} day${m==1?'':'s'}`\n\nprint(`initially: ${n}, most recently: ${m}`)" -} + "command": "const dateFns = require('date-fns@1.30.1');n=dateFns.differenceInDays(new Date(), new Date('2020-06-23T19:04:15.522Z'));\nn=`${n} day${n==1?'':'s'}`\nm=dateFns.differenceInDays(new Date(), new Date('2022-02-13T16:43:15.522Z')); \nm=`${m} day${m==1?'':'s'}`\n\nprint(`initially: ${n}, most recently: ${m}`)" +} \ No newline at end of file diff --git a/commands/event-b306be3528b0.json b/commands/event-b306be3528b0.json index ec2a27b..a97fed5 100644 --- a/commands/event-b306be3528b0.json +++ b/commands/event-b306be3528b0.json @@ -3,5 +3,5 @@ "locked": true, "starred": true, "name": "event", - "command": "// Auth example;\n//\n// curl -X POST --data-binary '{\"passcode\":\"demo\"}' -H \"Content-Type: application/json\" http://localhost:8888/api/webhook/test\n\n// const tripcode = require('tripcode');\n\n// IRC.listen('webhook.test', event => {\n// const authed = tripcode(event.body.passcode) === IRC.queryConfig('testCode');\n// print(authed ? 'pass' : 'fail');\n// });\n\nIRC.listen('message', event => {\n if (event.message.text.includes(IRC.nick + ':')) {\n print('TODO: give the bot a brain');\n }\n});\n\nIRC.listen('message', (event) => {\n\tif (event.target === '#8bitvape'){\n \tif (event.message.text.includes('donk')) print('donk'); \n \tif (event.message.text.includes('dongers')) print( \"{p}ヽ༼ຈل͜ຈ༽ノ {r}raise your dongers {p}ヽ༼ຈل͜ຈ༽ノ\")\n } \n});\n\nIRC.listen('message', (event) => {\n if (event.message.from.toLowerCase() === 'lambdacomplex' && event.message.text.includes('egg'))\n IRC.require('evilegg');\n});\n\n//IRC.listen('tick', event => event.target === '#eggchan' && print('egg'));\n\nconst faces = [ '(◕ᴗ◕✿)', '(◕◡◕✿)', '(◔◡◔✿)', '(。◕‿◕。✿)', '(◡‿◡✿)', '(◠‿◠✿)', '(◕ܫ◕✿)', '(◕▿◕✿)', '(◕ ワ ◕✿)' ];\nIRC.listen('message', ({ message: { from, text } }) => {\n if (text.includes('❤')) {\n print(' '.repeat(text.indexOf('❤')) + ' ⟍' +faces[0|Math.random()*faces.length]);\n }\n});\n\n\nIRC.listen('tick', () => (\n (new Date).toISOString().slice(5,19)\n \t=== '01-01T00:00:00'\n \t&& print('(*⌒∇⌒*) //// 🎉 {rb}happy new year')\n));\n\n\nconst daily = () => 0 === (0|new Date/1000)%86400;\n\nconst hourly = () => 420 === (0|new Date/1000)%3600;\n\nIRC.listen('tick', ({ target }) => {\n if (target === '#8bitvape' && hourly()) {\n print('7');\n }\n});\n\nIRC.listen('tick', ({ target }) => {\n if (target === '#eggchan' && daily()) {\n print('egg');\n }\n});" + "command": "// Auth example;\n//\n// curl -X POST --data-binary '{\"passcode\":\"demo\"}' -H \"Content-Type: application/json\" http://localhost:8888/api/webhook/test\n\n// const tripcode = require('tripcode');\n\n// IRC.listen('webhook.test', event => {\n// const authed = tripcode(event.body.passcode) === IRC.queryConfig('testCode');\n// print(authed ? 'pass' : 'fail');\n// });\n\nIRC.listen('message', event => {\n if (event.message.text.includes(IRC.nick + ':')) {\n print('TODO: give the bot a brain');\n }\n});\n\nIRC.listen('message', (event) => {\n\tif (event.target === '#8bitvape'){\n \tif (event.message.text.includes('donk')) print('donk'); \n \tif (event.message.text.includes('dongers')) print( \"{p}ヽ༼ຈل͜ຈ༽ノ {r}raise your dongers {p}ヽ༼ຈل͜ຈ༽ノ\")\n } \n});\n\nIRC.listen('message', (event) => {\n if (event.message.from.toLowerCase() === 'lambdacomplex' && \t\t/\\begg\\b/.test(event.message.text))\n IRC.require('evilegg');\n});\n\n//IRC.listen('tick', event => event.target === '#eggchan' && print('egg'));\n\nconst faces = [ '(◕ᴗ◕✿)', '(◕◡◕✿)', '(◔◡◔✿)', '(。◕‿◕。✿)', '(◡‿◡✿)', '(◠‿◠✿)', '(◕ܫ◕✿)', '(◕▿◕✿)', '(◕ ワ ◕✿)' ];\nIRC.listen('message', ({ message: { from, text } }) => {\n if (text.includes('❤')) {\n print(' '.repeat(text.indexOf('❤')) + ' ⟍' +faces[0|Math.random()*faces.length]);\n }\n});\n\n\nIRC.listen('tick', () => (\n (new Date).toISOString().slice(5,19)\n \t=== '01-01T00:00:00'\n \t&& print('(*⌒∇⌒*) //// 🎉 {rb}happy new year')\n));\n\n\nconst daily = () => 0 === (0|new Date/1000)%86400;\n\nconst hourly = () => 420 === (0|new Date/1000)%3600;\n\nIRC.listen('tick', ({ target }) => {\n if (target === '#8bitvape') {\n \tif (daily()) IRC.require('7');\n else if (hourly()) print('7');\n }\n});\n\nIRC.listen('tick', ({ target }) => {\n if (target === '#eggchan' && daily()) {\n print('egg');\n }\n});" } \ No newline at end of file diff --git a/commands/eventfetchURL-798176d44de4.json b/commands/eventfetchURL-798176d44de4.json index ad6a0c9..1d57b27 100644 --- a/commands/eventfetchURL-798176d44de4.json +++ b/commands/eventfetchURL-798176d44de4.json @@ -3,5 +3,5 @@ "locked": true, "starred": true, "name": "event.fetchURL", - "command": "const { document, window } = new (jsdom().JSDOM)('');\nconst anchor = document.createElement('a');\nconst bytes = IRC.require('bytes');\n\nfunction setDOM(page) {\n document.open();\n document.write(page);\n document.close();\n};\n\nfunction domTitle() {\n const metaTitle = document.head.querySelector('meta[name=\"title\"]');\n return metaTitle ? metaTitle.content : document.title;\n}\n\nconst filterWords = /cloudflare|forbidden|not found|access denied|your browser|rick roll|never gonna give you up/i;\n\nfunction hasInfo(url, _title) {\n const title = _title.replace(/\\s+/g, ' ').trim();\n const isFresh = title.split(' ')\n .filter(word => (\n !(new RegExp(word.replace(/[^.a-zA-Z0-9\\u00c0-\\u017e]+/g, ''), 'i')).test(url)\n )).length >= 1;\n return isFresh && !filterWords.test(title);\n}\n\nIRC.listen('message', event => {\n if (!IRC.queryConfig('fetchURL', true)) return;\n const { text, from } = event.message;\n const urls = text.match(/(\\b(https?):\\/\\/[-A-Z0-9+&@#\\/%?=~_|!:,.;()]*[-A-Z0-9+&@#\\/%=~_|()])/ig);\n const fromSelf = from === IRC.nick;\n if (!urls || fromSelf || text.startsWith(IRC.trigger) || text.includes('##')) return;\n\n urls.slice(0, 2).forEach(url => {\n handleURL(url, global.print)\n //.catch(print.error);\n });\n});\n\nasync function handleURL(url, print) {\n anchor.setAttribute('href', url);\n if (await customURL(url, print)) return;\n\n const res = await fetch(url, {\n headers: {\n 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',\n 'Accept-Language': 'en-GB,en;q=0.5',\n 'Content-Language': 'en-GB,en;q=0.5',\n 'User-Agent': /youtu\\.?be|google|reddit/.test(url) ? '' : 'Googlebot',\n },\n });\n\n const length = res.headers.get('content-length');\n\n if (length > 5.243e6) {\n const filename = anchor.pathname.split('/').pop();\n print.info(`{dc}${filename}{/} ${bytes(length)} {dgr}${res.headers.get('content-type')}{/}`);\n return;\n }\n\n const page = await res.text();\n setDOM(page);\n\n const title = domTitle();\n\n if (title.length && title.length < 400 && (IRC.queryConfig('fetchURLAll', false) || hasInfo(url, title))) {\n print.info(title);\n }\n\n}\n\nasync function customURL(url, print) {\n const { hostname, pathname } = anchor;\n if (hostname.includes('github.')) {\n if (pathname.split('/').length === 3) {\n // it's a repo url\n const {\n description,\n html_url,\n stargazers_count,\n language,\n license, // { name }\n } = await (\n await fetch(`https://api.github.com/repos${pathname}`)\n ).json();\n\n print(`{gr}Github{/} ${description} ${IRC.colors.nick(language, false)} {y}★{/} {bo}${stargazers_count}{/} {dgr}${license ? license.name : ''}{/}`);\n return true;\n }\n // TODO reddit\n // https://github.com/mendel5/alternative-front-ends\n } \n if (hostname.includes('youtube.') || hostname === 'youtu.be') {\n try {\n const json = await (await fetch(`https://www.youtube.com/oembed?url=${encodeURI(url)}&format=json`)).json();\n const {\n title, author_name,\n } = json;\n print(`{r}YouTube{/} {c}${author_name}{/} ${title}`);\n return true;\n } catch (e) { }\n // url.match(/(?!v=|v\\/|\\.be\\/|watch\\/)([0-9a-z\\-_]{11})/i);\n }\n if (hostname.includes('twitter.')) {\n const id = pathname.match(/status\\/(\\d+)/);\n if (id) {\n const page = await (await fetch(`https://nitter.net/_/status/${id[1]}`)).text();\n setDOM(page);\n const maintweet = document.querySelector('.main-tweet');\n const name = maintweet.querySelector('.fullname').textContent;\n const user = maintweet.querySelector('.username').textContent;\n \tconst image = maintweet.querySelector('.still-image img');\n const tweet = maintweet.querySelector('.tweet-content').textContent.replace(/\\s+/g, ' ');\n let output = `{bo}${name}{/} {c}${user}{/} ${tweet}`;\n \tif (image) {\n \toutput += ' ' + IRC.colors.link(`https://nitter.net${image.getAttribute('src').replace(/%3Fname.+/, '')}`);\n }\n \tprint(output);\n \n return true;\n }\n }\n}" + "command": "const { document, window } = new (jsdom().JSDOM)('');\nconst anchor = document.createElement('a');\nconst bytes = IRC.require('bytes');\n\nfunction setDOM(page) {\n document.open();\n document.write(page);\n document.close();\n};\n\nfunction domTitle() {\n const metaTitle = document.head.querySelector('meta[name=\"title\"]');\n return metaTitle ? metaTitle.content : document.title;\n}\n\nconst filterWords = /cloudflare|forbidden|not found|access denied|your browser|rick roll|never gonna give you up/i;\n\nfunction hasInfo(url, _title) {\n const title = _title.replace(/\\s+/g, ' ').trim();\n const isFresh = title.split(' ')\n .filter(word => (\n !(new RegExp(word.replace(/[^.a-zA-Z0-9\\u00c0-\\u017e]+/g, ''), 'i')).test(url)\n )).length >= 1;\n return isFresh && !filterWords.test(title);\n}\n\nIRC.listen('message', event => {\n if (!IRC.queryConfig('fetchURL', true)) return;\n const { text, from } = event.message;\n const urls = text.match(/(\\b(https?):\\/\\/[-A-Z0-9+&@#\\/%?=~_|!:,.;()]*[-A-Z0-9+&@#\\/%=~_|()])/ig);\n const fromSelf = from === IRC.nick;\n if (!urls || fromSelf || text.startsWith(IRC.trigger) || text.includes('##')) return;\n\n urls.slice(0, 2).forEach(url => {\n handleURL(url, global.print)\n //.catch(print.error);\n });\n});\n\nasync function handleURL(url, print) {\n anchor.setAttribute('href', url);\n if (await customURL(url, print)) return;\n\n const res = await fetch(url, {\n headers: {\n 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',\n 'Accept-Language': 'en-GB,en;q=0.5',\n 'Content-Language': 'en-GB,en;q=0.5',\n 'User-Agent': /youtu\\.?be|google|reddit/.test(url) ? '' : 'Googlebot',\n },\n });\n\n const length = res.headers.get('content-length');\n\n if (length > 5.243e6) {\n const filename = anchor.pathname.split('/').pop();\n print.info(`{dc}${filename}{/} ${bytes(length)} {dgr}${res.headers.get('content-type')}{/}`);\n return;\n }\n\n const page = await res.text();\n setDOM(page);\n\n const title = domTitle();\n\n if (title.length && title.length < 400 && (IRC.queryConfig('fetchURLAll', false) || hasInfo(url, title))) {\n print.info(title);\n }\n\n}\n\nasync function customURL(url, print) {\n const { hostname, pathname } = anchor;\n if (hostname.includes('github.')) {\n if (pathname.split('/').length === 3) {\n // it's a repo url\n const {\n description,\n html_url,\n stargazers_count,\n language,\n license, // { name }\n } = await (\n await fetch(`https://api.github.com/repos${pathname}`)\n ).json();\n\n print(`{gr}Github{/} ${description} ${IRC.colors.nick(language, false)} {y}★{/} {bo}${stargazers_count}{/} {dgr}${license ? license.name : ''}{/}`);\n return true;\n }\n // TODO reddit\n // https://github.com/mendel5/alternative-front-ends\n } \n if (hostname.includes('youtube.') || hostname === 'youtu.be') {\n try {\n const json = await (await fetch(`https://www.youtube.com/oembed?url=${encodeURI(url)}&format=json`)).json();\n const {\n title, author_name,\n } = json;\n print(`{r}YouTube{/} {c}${author_name}{/} ${title}`);\n return true;\n } catch (e) { }\n // url.match(/(?!v=|v\\/|\\.be\\/|watch\\/)([0-9a-z\\-_]{11})/i);\n }\n if (hostname.includes('twitter.')) {\n const id = pathname.match(/status\\/(\\d+)/);\n if (id) {\n const page = await (await fetch(`https://nitter.net/_/status/${id[1]}#m`)).text();\n setDOM(page);\n const maintweet = document.querySelector('.main-tweet');\n const name = maintweet.querySelector('.fullname').textContent;\n const user = maintweet.querySelector('.username').textContent;\n \tconst image = maintweet.querySelector('.still-image img');\n const tweet = maintweet.querySelector('.tweet-content').textContent.replace(/\\s+/g, ' ');\n let output = `{bo}${name}{/} {c}${user}{/} ${tweet}`;\n \tif (image) {\n \toutput += ' ' + IRC.colors.link(`https://nitter.net${image.getAttribute('src').replace(/%3Fname.+/, '')}`);\n }\n \tprint(output);\n \n return true;\n }\n }\n}" } \ No newline at end of file diff --git a/commands/memodelete-5e72aaed4d28.json b/commands/memodelete-5e72aaed4d28.json index e99b334..d45f0c5 100644 --- a/commands/memodelete-5e72aaed4d28.json +++ b/commands/memodelete-5e72aaed4d28.json @@ -3,5 +3,5 @@ "locked": false, "starred": false, "name": "memo.delete", - "command": "imput = input.trim();\nif (!input) throw `usage: ${IRC.colors.cmd('memo', 'id')} (get the id from ${IRC.colors.cmd('memo.pending')})`;\n\nconst memo = SQL.one`\n SELECT 1 FROM memo\n WHERE \"from\" = ${IRC.message.from}\n AND \"key\" = ${+input}\n`;\n\nif (memo) {\n SQL.run`DELETE FROM memo WHERE \"key\" = ${input}`;\n print.success(`memo ${input} deleted`)\n} else {\n throw `memo does not exist`\n}" + "command": "imput = input.trim();\nif (!input) throw `usage: ${IRC.colors.cmd('memo.delete', 'id')} (get the id from ${IRC.colors.cmd('memo.pending')})`;\n\nconst memo = SQL.one`\n SELECT 1 FROM memo\n WHERE \"from\" = ${IRC.message.from}\n AND \"key\" = ${+input}\n`;\n\nif (memo) {\n SQL.run`DELETE FROM memo WHERE \"key\" = ${input}`;\n print.success(`memo ${input} deleted`)\n} else {\n throw `memo does not exist`\n}" } \ No newline at end of file diff --git a/commands/memodupe-b62c535fd3c8.json b/commands/memodupe-b62c535fd3c8.json new file mode 100644 index 0000000..de5bea3 --- /dev/null +++ b/commands/memodupe-b62c535fd3c8.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "memo.dupe", + "command": "imput = input.trim();\nif (!input) throw `usage: ${IRC.colors.cmd('memo.dupe', 'id')} (get the id from ${IRC.colors.cmd('memo.pending')})`;\n\nconst memo = SQL.one`\n SELECT * FROM memo\n WHERE \"from\" = ${IRC.message.from}\n AND \"key\" = ${+input}\n`;\n\nif (memo) {\n SQL.run`\n INSERT INTO memo (\"from\", \"to\", server, channel, message) \n VALUES (${IRC.message.from}, ${memo.to}, ${memo.server}, ${memo.channel}, ${memo.message})\n`;\n print.success(`memo ${input} duplicated`)\n} else {\n throw `memo does not exist`\n}" +} \ No newline at end of file diff --git a/commands/memomulti-3c4b32e346d5.json b/commands/memomulti-3c4b32e346d5.json index 4e9e2bc..1b164d4 100644 --- a/commands/memomulti-3c4b32e346d5.json +++ b/commands/memomulti-3c4b32e346d5.json @@ -3,5 +3,5 @@ "locked": false, "starred": false, "name": "memo.multi", - "command": "const names = IRC.command.params;\n\nif (!names.length || !input.trim()) throw `usage: ${IRC.colors.cmd('memo', 'message', ['name1', 'name2', '...'])}`;\n\n\nnames.forEach(name => {\n SQL.run`\n INSERT INTO memo (\"from\", \"to\", server, channel, message) \n VALUES (${IRC.message.from}, ${String(name)}, ${IRC.server}, ${IRC.channel}, ${input})\n `;\n});\n\n\nprint(`Saved message for ${names.map(name => IRC.colors.nick(name, false)).join(', ')}`);" + "command": "const names = IRC.command.params;\n\nif (!names.length || !input.trim()) throw `usage: ${IRC.colors.cmd('memo', 'message', ['name1', 'name2', '...'])}`;\n\n\nnames.forEach(name => {\n SQL.run`\n INSERT INTO memo (\"from\", \"to\", server, channel, message) \n VALUES (${IRC.message.from}, ${String(name.trim())}, ${IRC.server}, ${IRC.channel}, ${input})\n `;\n});\n\n\nprint(`Saved message for ${names.map(name => IRC.colors.nick(name.trim(), false)).join(', ')}`);" } \ No newline at end of file diff --git a/irc/evaluate/vm.js b/irc/evaluate/vm.js index 22c129c..9be203d 100644 --- a/irc/evaluate/vm.js +++ b/irc/evaluate/vm.js @@ -44,6 +44,10 @@ async function createVM({ node, maxTimeout = 60000 }) { }, maxTimeout); } + function setNamespace(namespace) { + env.namespace = namespace; + } + const timeoutRef = wrapTimeout(ivm.Reference, env); const timeoutCallback = wrapTimeout(ivm.Callback, env); @@ -129,6 +133,8 @@ async function createVM({ node, maxTimeout = 60000 }) { }) ))); + ctx.setSync('_setNamespace', timeoutCallback(setNamespace)); + ctx.setSync('_sudoProxy', timeoutRef((config) => { const { key, value, path } = config; const leaf = path.pop(); @@ -399,6 +405,7 @@ async function createVM({ node, maxTimeout = 60000 }) { } return { node: node(), + setNamespace: ref.setNamespace, }; }; @@ -536,10 +543,6 @@ async function createVM({ node, maxTimeout = 60000 }) { await configScript.run(context); } - function setNamespace(namespace) { - env.namespace = namespace; - } - async function evaluate(script, { timeout = 30000, evalType }) { const rawScript = { evalPrint: ` From 9e50fecc62bf1bf523f2e485b1ea717c7cb4e15d Mon Sep 17 00:00:00 2001 From: kirjavascript Date: Tue, 15 Feb 2022 20:07:43 +0100 Subject: [PATCH 13/94] fixed libera auth check --- commands/eventfetchURL-798176d44de4.json | 2 +- irc/evaluate/access.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/commands/eventfetchURL-798176d44de4.json b/commands/eventfetchURL-798176d44de4.json index 1d57b27..a211515 100644 --- a/commands/eventfetchURL-798176d44de4.json +++ b/commands/eventfetchURL-798176d44de4.json @@ -3,5 +3,5 @@ "locked": true, "starred": true, "name": "event.fetchURL", - "command": "const { document, window } = new (jsdom().JSDOM)('');\nconst anchor = document.createElement('a');\nconst bytes = IRC.require('bytes');\n\nfunction setDOM(page) {\n document.open();\n document.write(page);\n document.close();\n};\n\nfunction domTitle() {\n const metaTitle = document.head.querySelector('meta[name=\"title\"]');\n return metaTitle ? metaTitle.content : document.title;\n}\n\nconst filterWords = /cloudflare|forbidden|not found|access denied|your browser|rick roll|never gonna give you up/i;\n\nfunction hasInfo(url, _title) {\n const title = _title.replace(/\\s+/g, ' ').trim();\n const isFresh = title.split(' ')\n .filter(word => (\n !(new RegExp(word.replace(/[^.a-zA-Z0-9\\u00c0-\\u017e]+/g, ''), 'i')).test(url)\n )).length >= 1;\n return isFresh && !filterWords.test(title);\n}\n\nIRC.listen('message', event => {\n if (!IRC.queryConfig('fetchURL', true)) return;\n const { text, from } = event.message;\n const urls = text.match(/(\\b(https?):\\/\\/[-A-Z0-9+&@#\\/%?=~_|!:,.;()]*[-A-Z0-9+&@#\\/%=~_|()])/ig);\n const fromSelf = from === IRC.nick;\n if (!urls || fromSelf || text.startsWith(IRC.trigger) || text.includes('##')) return;\n\n urls.slice(0, 2).forEach(url => {\n handleURL(url, global.print)\n //.catch(print.error);\n });\n});\n\nasync function handleURL(url, print) {\n anchor.setAttribute('href', url);\n if (await customURL(url, print)) return;\n\n const res = await fetch(url, {\n headers: {\n 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',\n 'Accept-Language': 'en-GB,en;q=0.5',\n 'Content-Language': 'en-GB,en;q=0.5',\n 'User-Agent': /youtu\\.?be|google|reddit/.test(url) ? '' : 'Googlebot',\n },\n });\n\n const length = res.headers.get('content-length');\n\n if (length > 5.243e6) {\n const filename = anchor.pathname.split('/').pop();\n print.info(`{dc}${filename}{/} ${bytes(length)} {dgr}${res.headers.get('content-type')}{/}`);\n return;\n }\n\n const page = await res.text();\n setDOM(page);\n\n const title = domTitle();\n\n if (title.length && title.length < 400 && (IRC.queryConfig('fetchURLAll', false) || hasInfo(url, title))) {\n print.info(title);\n }\n\n}\n\nasync function customURL(url, print) {\n const { hostname, pathname } = anchor;\n if (hostname.includes('github.')) {\n if (pathname.split('/').length === 3) {\n // it's a repo url\n const {\n description,\n html_url,\n stargazers_count,\n language,\n license, // { name }\n } = await (\n await fetch(`https://api.github.com/repos${pathname}`)\n ).json();\n\n print(`{gr}Github{/} ${description} ${IRC.colors.nick(language, false)} {y}★{/} {bo}${stargazers_count}{/} {dgr}${license ? license.name : ''}{/}`);\n return true;\n }\n // TODO reddit\n // https://github.com/mendel5/alternative-front-ends\n } \n if (hostname.includes('youtube.') || hostname === 'youtu.be') {\n try {\n const json = await (await fetch(`https://www.youtube.com/oembed?url=${encodeURI(url)}&format=json`)).json();\n const {\n title, author_name,\n } = json;\n print(`{r}YouTube{/} {c}${author_name}{/} ${title}`);\n return true;\n } catch (e) { }\n // url.match(/(?!v=|v\\/|\\.be\\/|watch\\/)([0-9a-z\\-_]{11})/i);\n }\n if (hostname.includes('twitter.')) {\n const id = pathname.match(/status\\/(\\d+)/);\n if (id) {\n const page = await (await fetch(`https://nitter.net/_/status/${id[1]}#m`)).text();\n setDOM(page);\n const maintweet = document.querySelector('.main-tweet');\n const name = maintweet.querySelector('.fullname').textContent;\n const user = maintweet.querySelector('.username').textContent;\n \tconst image = maintweet.querySelector('.still-image img');\n const tweet = maintweet.querySelector('.tweet-content').textContent.replace(/\\s+/g, ' ');\n let output = `{bo}${name}{/} {c}${user}{/} ${tweet}`;\n \tif (image) {\n \toutput += ' ' + IRC.colors.link(`https://nitter.net${image.getAttribute('src').replace(/%3Fname.+/, '')}`);\n }\n \tprint(output);\n \n return true;\n }\n }\n}" + "command": "const { document, window } = new (jsdom().JSDOM)('');\nconst anchor = document.createElement('a');\nconst bytes = IRC.require('bytes');\n\nfunction setDOM(page) {\n document.open();\n document.write(page);\n document.close();\n};\n\nfunction domTitle() {\n const metaTitle = document.head.querySelector('meta[name=\"title\"]');\n return metaTitle ? metaTitle.content : document.title;\n}\n\nconst filterWords = /cloudflare|forbidden|not found|access denied|your browser|rick roll|never gonna give you up/i;\n\nfunction hasInfo(url, _title) {\n const title = _title.replace(/\\s+/g, ' ').trim();\n const isFresh = title.split(' ')\n .filter(word => (\n !(new RegExp(word.replace(/[^.a-zA-Z0-9\\u00c0-\\u017e]+/g, ''), 'i')).test(url)\n )).length >= 1;\n return isFresh;\n}\n\nIRC.listen('message', event => {\n if (!IRC.queryConfig('fetchURL', true)) return;\n const { text, from } = event.message;\n const urls = text.match(/(\\b(https?):\\/\\/[-A-Z0-9+&@#\\/%?=~_|!:,.;()]*[-A-Z0-9+&@#\\/%=~_|()])/ig);\n const fromSelf = from === IRC.nick;\n if (!urls || fromSelf || text.startsWith(IRC.trigger) || text.includes('##')) return;\n\n urls.slice(0, 2).forEach(url => {\n handleURL(url, global.print)\n //.catch(print.error);\n });\n});\n\nasync function handleURL(url, print) {\n anchor.setAttribute('href', url);\n if (await customURL(url, print)) return;\n\n const res = await fetch(url, {\n headers: {\n 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',\n 'Accept-Language': 'en-GB,en;q=0.5',\n 'Content-Language': 'en-GB,en;q=0.5',\n 'User-Agent': /youtu\\.?be|google|reddit/.test(url) ? '' : 'Googlebot',\n },\n });\n\n const length = res.headers.get('content-length');\n\n if (length > 5.243e6) {\n const filename = anchor.pathname.split('/').pop();\n print.info(`{dc}${filename}{/} ${bytes(length)} {dgr}${res.headers.get('content-type')}{/}`);\n return;\n }\n\n const page = await res.text();\n setDOM(page);\n\n const title = domTitle();\n\n if (\n title.length \n && title.length < 400 \n && !filterWords.test(title)\n && (IRC.queryConfig('fetchURLAll', false) || hasInfo(url, title))) {\n print.info(title);\n }\n\n}\n\nasync function customURL(url, print) {\n const { hostname, pathname } = anchor;\n if (hostname.includes('github.')) {\n if (pathname.split('/').length === 3) {\n // it's a repo url\n const {\n description,\n html_url,\n stargazers_count,\n language,\n license, // { name }\n } = await (\n await fetch(`https://api.github.com/repos${pathname}`)\n ).json();\n\n print(`{gr}Github{/} ${description} ${IRC.colors.nick(language, false)} {y}★{/} {bo}${stargazers_count}{/} {dgr}${license ? license.name : ''}{/}`);\n return true;\n }\n // TODO reddit\n // https://github.com/mendel5/alternative-front-ends\n } \n if (hostname.includes('youtube.') || hostname === 'youtu.be') {\n try {\n const json = await (await fetch(`https://www.youtube.com/oembed?url=${encodeURI(url)}&format=json`)).json();\n const {\n title, author_name,\n } = json;\n print(`{r}YouTube{/} {c}${author_name}{/} ${title}`);\n return true;\n } catch (e) { }\n // url.match(/(?!v=|v\\/|\\.be\\/|watch\\/)([0-9a-z\\-_]{11})/i);\n }\n if (hostname.includes('twitter.')) {\n const id = pathname.match(/status\\/(\\d+)/);\n if (id) {\n const page = await (await fetch(`https://nitter.net/_/status/${id[1]}#m`)).text();\n setDOM(page);\n const maintweet = document.querySelector('.main-tweet');\n const name = maintweet.querySelector('.fullname').textContent;\n const user = maintweet.querySelector('.username').textContent;\n \tconst image = maintweet.querySelector('.still-image img');\n const tweet = maintweet.querySelector('.tweet-content').textContent.replace(/\\s+/g, ' ');\n let output = `{bo}${name}{/} {c}${user}{/} ${tweet}`;\n \tif (image) {\n \toutput += ' ' + IRC.colors.link(`https://nitter.net${image.getAttribute('src').replace(/%3Fname.+/, '')}`);\n }\n \tprint(output);\n \n return true;\n }\n }\n}" } \ No newline at end of file diff --git a/irc/evaluate/access.js b/irc/evaluate/access.js index aa751f5..ab5b509 100644 --- a/irc/evaluate/access.js +++ b/irc/evaluate/access.js @@ -1,5 +1,5 @@ function checkAccess({ from, node, callback }) { - const name = /libera/.test(node.address) + const name = /libera/.test(node.config.address) ? 'ACC' : 'STATUS'; From 272c75c64bb7a9fcd99e7b5d4fab20fab9455b56 Mon Sep 17 00:00:00 2001 From: kirjavascript Date: Tue, 15 Feb 2022 20:08:45 +0100 Subject: [PATCH 14/94] set version to 4.0.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index c403680..b30319e 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "version": "4.0.0", + "version": "4.0.1", "engines": { "node": ">=14", "npm": ">=7" From bf2818b6a92bf879c0c991cfdb31bb5ebf664ecb Mon Sep 17 00:00:00 2001 From: kirjavascript Date: Thu, 17 Feb 2022 00:01:57 +0100 Subject: [PATCH 15/94] instagram, whois --- commands/event-b306be3528b0.json | 2 +- commands/eventfetchURL-798176d44de4.json | 2 +- commands/ignore-64ae46ffb13e.json | 4 ++-- commands/whois-1954518b8de0.json | 7 +++++++ 4 files changed, 11 insertions(+), 4 deletions(-) create mode 100644 commands/whois-1954518b8de0.json diff --git a/commands/event-b306be3528b0.json b/commands/event-b306be3528b0.json index a97fed5..5866afb 100644 --- a/commands/event-b306be3528b0.json +++ b/commands/event-b306be3528b0.json @@ -3,5 +3,5 @@ "locked": true, "starred": true, "name": "event", - "command": "// Auth example;\n//\n// curl -X POST --data-binary '{\"passcode\":\"demo\"}' -H \"Content-Type: application/json\" http://localhost:8888/api/webhook/test\n\n// const tripcode = require('tripcode');\n\n// IRC.listen('webhook.test', event => {\n// const authed = tripcode(event.body.passcode) === IRC.queryConfig('testCode');\n// print(authed ? 'pass' : 'fail');\n// });\n\nIRC.listen('message', event => {\n if (event.message.text.includes(IRC.nick + ':')) {\n print('TODO: give the bot a brain');\n }\n});\n\nIRC.listen('message', (event) => {\n\tif (event.target === '#8bitvape'){\n \tif (event.message.text.includes('donk')) print('donk'); \n \tif (event.message.text.includes('dongers')) print( \"{p}ヽ༼ຈل͜ຈ༽ノ {r}raise your dongers {p}ヽ༼ຈل͜ຈ༽ノ\")\n } \n});\n\nIRC.listen('message', (event) => {\n if (event.message.from.toLowerCase() === 'lambdacomplex' && \t\t/\\begg\\b/.test(event.message.text))\n IRC.require('evilegg');\n});\n\n//IRC.listen('tick', event => event.target === '#eggchan' && print('egg'));\n\nconst faces = [ '(◕ᴗ◕✿)', '(◕◡◕✿)', '(◔◡◔✿)', '(。◕‿◕。✿)', '(◡‿◡✿)', '(◠‿◠✿)', '(◕ܫ◕✿)', '(◕▿◕✿)', '(◕ ワ ◕✿)' ];\nIRC.listen('message', ({ message: { from, text } }) => {\n if (text.includes('❤')) {\n print(' '.repeat(text.indexOf('❤')) + ' ⟍' +faces[0|Math.random()*faces.length]);\n }\n});\n\n\nIRC.listen('tick', () => (\n (new Date).toISOString().slice(5,19)\n \t=== '01-01T00:00:00'\n \t&& print('(*⌒∇⌒*) //// 🎉 {rb}happy new year')\n));\n\n\nconst daily = () => 0 === (0|new Date/1000)%86400;\n\nconst hourly = () => 420 === (0|new Date/1000)%3600;\n\nIRC.listen('tick', ({ target }) => {\n if (target === '#8bitvape') {\n \tif (daily()) IRC.require('7');\n else if (hourly()) print('7');\n }\n});\n\nIRC.listen('tick', ({ target }) => {\n if (target === '#eggchan' && daily()) {\n print('egg');\n }\n});" + "command": "// Auth example;\n//\n// curl -X POST --data-binary '{\"passcode\":\"demo\"}' -H \"Content-Type: application/json\" http://localhost:8888/api/webhook/test\n\n// const tripcode = require('tripcode');\n\n// IRC.listen('webhook.test', event => {\n// const authed = tripcode(event.body.passcode) === IRC.queryConfig('testCode');\n// print(authed ? 'pass' : 'fail');\n// });\n\nIRC.listen('message', event => {\n if (event.message.text.includes(IRC.nick + ':')) {\n print('TODO: give the bot a brain');\n }\n});\n\nIRC.listen('message', (event) => {\n\tif (event.target === '#8bitvape'){\n \tif (event.message.text.includes('donk')) print('donk'); \n \telse if (event.message.text.includes('dongers')) print( \"{p}ヽ༼ຈل͜ຈ༽ノ {r}raise your dongers {p}ヽ༼ຈل͜ຈ༽ノ\") \n\n } \n});\n\nIRC.listen('message', (event) => {\n if (event.message.from.toLowerCase() === 'lambdacomplex' && \t\t/\\begg\\b/.test(event.message.text))\n IRC.require('evilegg');\n});\n\n//IRC.listen('tick', event => event.target === '#eggchan' && print('egg'));\n\nconst faces = [ '(◕ᴗ◕✿)', '(◕◡◕✿)', '(◔◡◔✿)', '(。◕‿◕。✿)', '(◡‿◡✿)', '(◠‿◠✿)', '(◕ܫ◕✿)', '(◕▿◕✿)', '(◕ ワ ◕✿)' ];\nIRC.listen('message', ({ message: { from, text } }) => {\n if (text.includes('❤')) {\n print(' '.repeat(text.indexOf('❤')) + ' ⟍' +faces[0|Math.random()*faces.length]);\n }\n});\n\n\nIRC.listen('tick', () => (\n (new Date).toISOString().slice(5,19)\n \t=== '01-01T00:00:00'\n \t&& print('(*⌒∇⌒*) //// 🎉 {rb}happy new year')\n));\n\n\nconst daily = () => 0 === (0|new Date/1000)%86400;\n\nconst hourly = () => 420 === (0|new Date/1000)%3600;\n\nIRC.listen('tick', ({ target }) => {\n if (target === '#8bitvape') {\n \tif (daily()) IRC.require('7');\n else if (hourly()) print('7');\n }\n});\n\nIRC.listen('tick', ({ target }) => {\n if (target === '#eggchan' && daily()) {\n print('egg');\n }\n});" } \ No newline at end of file diff --git a/commands/eventfetchURL-798176d44de4.json b/commands/eventfetchURL-798176d44de4.json index a211515..3fd7ba9 100644 --- a/commands/eventfetchURL-798176d44de4.json +++ b/commands/eventfetchURL-798176d44de4.json @@ -3,5 +3,5 @@ "locked": true, "starred": true, "name": "event.fetchURL", - "command": "const { document, window } = new (jsdom().JSDOM)('');\nconst anchor = document.createElement('a');\nconst bytes = IRC.require('bytes');\n\nfunction setDOM(page) {\n document.open();\n document.write(page);\n document.close();\n};\n\nfunction domTitle() {\n const metaTitle = document.head.querySelector('meta[name=\"title\"]');\n return metaTitle ? metaTitle.content : document.title;\n}\n\nconst filterWords = /cloudflare|forbidden|not found|access denied|your browser|rick roll|never gonna give you up/i;\n\nfunction hasInfo(url, _title) {\n const title = _title.replace(/\\s+/g, ' ').trim();\n const isFresh = title.split(' ')\n .filter(word => (\n !(new RegExp(word.replace(/[^.a-zA-Z0-9\\u00c0-\\u017e]+/g, ''), 'i')).test(url)\n )).length >= 1;\n return isFresh;\n}\n\nIRC.listen('message', event => {\n if (!IRC.queryConfig('fetchURL', true)) return;\n const { text, from } = event.message;\n const urls = text.match(/(\\b(https?):\\/\\/[-A-Z0-9+&@#\\/%?=~_|!:,.;()]*[-A-Z0-9+&@#\\/%=~_|()])/ig);\n const fromSelf = from === IRC.nick;\n if (!urls || fromSelf || text.startsWith(IRC.trigger) || text.includes('##')) return;\n\n urls.slice(0, 2).forEach(url => {\n handleURL(url, global.print)\n //.catch(print.error);\n });\n});\n\nasync function handleURL(url, print) {\n anchor.setAttribute('href', url);\n if (await customURL(url, print)) return;\n\n const res = await fetch(url, {\n headers: {\n 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',\n 'Accept-Language': 'en-GB,en;q=0.5',\n 'Content-Language': 'en-GB,en;q=0.5',\n 'User-Agent': /youtu\\.?be|google|reddit/.test(url) ? '' : 'Googlebot',\n },\n });\n\n const length = res.headers.get('content-length');\n\n if (length > 5.243e6) {\n const filename = anchor.pathname.split('/').pop();\n print.info(`{dc}${filename}{/} ${bytes(length)} {dgr}${res.headers.get('content-type')}{/}`);\n return;\n }\n\n const page = await res.text();\n setDOM(page);\n\n const title = domTitle();\n\n if (\n title.length \n && title.length < 400 \n && !filterWords.test(title)\n && (IRC.queryConfig('fetchURLAll', false) || hasInfo(url, title))) {\n print.info(title);\n }\n\n}\n\nasync function customURL(url, print) {\n const { hostname, pathname } = anchor;\n if (hostname.includes('github.')) {\n if (pathname.split('/').length === 3) {\n // it's a repo url\n const {\n description,\n html_url,\n stargazers_count,\n language,\n license, // { name }\n } = await (\n await fetch(`https://api.github.com/repos${pathname}`)\n ).json();\n\n print(`{gr}Github{/} ${description} ${IRC.colors.nick(language, false)} {y}★{/} {bo}${stargazers_count}{/} {dgr}${license ? license.name : ''}{/}`);\n return true;\n }\n // TODO reddit\n // https://github.com/mendel5/alternative-front-ends\n } \n if (hostname.includes('youtube.') || hostname === 'youtu.be') {\n try {\n const json = await (await fetch(`https://www.youtube.com/oembed?url=${encodeURI(url)}&format=json`)).json();\n const {\n title, author_name,\n } = json;\n print(`{r}YouTube{/} {c}${author_name}{/} ${title}`);\n return true;\n } catch (e) { }\n // url.match(/(?!v=|v\\/|\\.be\\/|watch\\/)([0-9a-z\\-_]{11})/i);\n }\n if (hostname.includes('twitter.')) {\n const id = pathname.match(/status\\/(\\d+)/);\n if (id) {\n const page = await (await fetch(`https://nitter.net/_/status/${id[1]}#m`)).text();\n setDOM(page);\n const maintweet = document.querySelector('.main-tweet');\n const name = maintweet.querySelector('.fullname').textContent;\n const user = maintweet.querySelector('.username').textContent;\n \tconst image = maintweet.querySelector('.still-image img');\n const tweet = maintweet.querySelector('.tweet-content').textContent.replace(/\\s+/g, ' ');\n let output = `{bo}${name}{/} {c}${user}{/} ${tweet}`;\n \tif (image) {\n \toutput += ' ' + IRC.colors.link(`https://nitter.net${image.getAttribute('src').replace(/%3Fname.+/, '')}`);\n }\n \tprint(output);\n \n return true;\n }\n }\n}" + "command": "const { document, window } = new (jsdom().JSDOM)('');\nconst anchor = document.createElement('a');\nconst bytes = IRC.require('bytes');\n\nfunction setDOM(page) {\n document.open();\n document.write(page);\n document.close();\n};\n\nfunction domTitle() {\n const metaTitle = document.head.querySelector('meta[name=\"title\"]');\n return metaTitle ? metaTitle.content : document.title;\n}\n\nconst filterWords = /cloudflare|forbidden|not found|access denied|your browser|rick roll|never gonna give you up|log in/i;\n\nfunction hasInfo(url, _title) {\n const title = _title.replace(/\\s+/g, ' ').trim();\n const isFresh = title.split(' ')\n .filter(word => (\n !(new RegExp(word.replace(/[^.a-zA-Z0-9\\u00c0-\\u017e]+/g, ''), 'i')).test(url)\n )).length >= 1;\n return isFresh;\n}\n\nIRC.listen('message', event => {\n if (!IRC.queryConfig('fetchURL', true)) return;\n const { text, from } = event.message;\n const urls = text.match(/(\\b(https?):\\/\\/[-A-Z0-9+&@#\\/%?=~_|!:,.;()]*[-A-Z0-9+&@#\\/%=~_|()])/ig);\n const fromSelf = from === IRC.nick;\n if (!urls || fromSelf || text.startsWith(IRC.trigger) || text.includes('##')) return;\n\n urls.slice(0, 2).forEach(url => {\n handleURL(url, global.print)\n //.catch(print.error);\n });\n});\n\nasync function handleURL(url, print) {\n anchor.setAttribute('href', url);\n if (await customURL(url, print)) return;\n\n const res = await fetch(url, {\n headers: {\n 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',\n 'Accept-Language': 'en-GB,en;q=0.5',\n 'Content-Language': 'en-GB,en;q=0.5',\n 'User-Agent': /youtu\\.?be|google|reddit/.test(url) ? '' : 'Googlebot',\n },\n });\n\n const length = res.headers.get('content-length');\n\n if (length > 5.243e6) {\n const filename = anchor.pathname.split('/').pop();\n print.info(`{dc}${filename}{/} ${bytes(length)} {dgr}${res.headers.get('content-type')}{/}`);\n return;\n }\n\n const page = await res.text();\n setDOM(page);\n\n const title = domTitle();\n\n if (\n title.length \n && title.length < 400 \n && !filterWords.test(title)\n && (IRC.queryConfig('fetchURLAll', false) || hasInfo(url, title))) {\n print.info(title);\n }\n\n}\n\nasync function customURL(url, print) {\n const { hostname, pathname } = anchor;\n if (hostname.includes('youtube.') || hostname === 'youtu.be') {\n try {\n const json = await (await fetch(`https://www.youtube.com/oembed?url=${encodeURI(url)}&format=json`)).json();\n const {\n title, author_name,\n } = json;\n print(`{r}YouTube{/} {c}${author_name}{/} ${title}`);\n return true;\n } catch (e) { }\n // url.match(/(?!v=|v\\/|\\.be\\/|watch\\/)([0-9a-z\\-_]{11})/i);\n }\n if (hostname.includes('github.')) {\n if (pathname.split('/').length === 3) {\n // it's a repo url\n const {\n description,\n html_url,\n stargazers_count,\n language,\n license, // { name }\n } = await (\n await fetch(`https://api.github.com/repos${pathname}`)\n ).json();\n\n print(`{gr}Github{/} ${description} ${IRC.colors.nick(language, false)} {y}★{/} {bo}${stargazers_count}{/} {dgr}${license ? license.name : ''}{/}`);\n return true;\n }\n // TODO reddit\n // https://github.com/mendel5/alternative-front-ends\n } \n if (hostname.includes('instagram.')) {\n // https://git.sr.ht/~cadence/bibliogram-docs/tree/master/docs/Instances.md\n const id = pathname.match(/\\/([A-Za-z-0-9]{11})/);\n if (id) {\n const page = await (await fetch(`https://bibliogram.1d4.us/p/${id[1]}`)).text();\n setDOM(page);\n const text = document.querySelector('.structured-text').textContent;\n const name = document.querySelector('.name').textContent;\n const image = document.querySelector('.sized-image');\n\n let output = `{bo}Instagram{/} {c}${name}{/} ${text.replace(/\\s+/g, ' ')}`;\n print(output);\n }\n return true;\n }\n if (hostname.includes('twitter.')) {\n const id = pathname.match(/status\\/(\\d+)/);\n if (id) {\n const page = await (await fetch(`https://nitter.net/_/status/${id[1]}#m`)).text();\n setDOM(page);\n const maintweet = document.querySelector('.main-tweet');\n const name = maintweet.querySelector('.fullname').textContent;\n const user = maintweet.querySelector('.username').textContent;\n \tconst image = maintweet.querySelector('.still-image img');\n const tweet = maintweet.querySelector('.tweet-content').textContent.replace(/\\s+/g, ' ');\n let output = `{bo}${name}{/} {c}${user}{/} ${tweet}`;\n \tif (image) {\n \toutput += ' ' + IRC.colors.link(`https://nitter.net${image.getAttribute('src').replace(/%3Fname.+/, '')}`);\n }\n print(output);\n \n return true;\n }\n }\n}" } \ No newline at end of file diff --git a/commands/ignore-64ae46ffb13e.json b/commands/ignore-64ae46ffb13e.json index 07df86a..5dea915 100644 --- a/commands/ignore-64ae46ffb13e.json +++ b/commands/ignore-64ae46ffb13e.json @@ -1,6 +1,6 @@ { "name": "ignore", - "command": "const [cmd, user] = input.trim().split(/\\s+/);\nif (!cmd || !user) {\n throw (`usage: ${IRC.colors.cmd('ignore', ['add/remove', 'nick'])}`)\n}\nconst { node } = IRC.sudo();\nconst admins = node.admins.get() || [];\n\n\n const data = IRC.whois(user);\n if (!data.host) {\n throw new Error(`${user} not found`);\n }\n if (admins.includes(user)) {\n throw new Error('do not do this');\n }\n const { host } = data;\n const hostList = node['ignoreHosts'].get() || [];\n if (cmd == 'add') {\n hostList.push(host);\n node['ignoreHosts'].set(hostList)\n print.info(`${user} has been ignored`);\n } else if (cmd == 'remove') {\n node['ignoreHosts'].set(hostList.filter(d => d != host));\n print.info(`${user} has been unignored`);\n }", + "command": "throw '@deprecated, use ~whois and update config instead'\nconst [cmd, user] = input.trim().split(/\\s+/);\nif (!cmd || !user) {\n throw (`usage: ${IRC.colors.cmd('ignore', ['add/remove', 'nick'])}`)\n}\nconst { node } = IRC.sudo();\nconst admins = node.admins.get() || [];\n\n\n const data = IRC.whois(user);\n if (!data.host) {\n throw new Error(`${user} not found`);\n }\n if (admins.includes(user)) {\n throw new Error('do not do this');\n }\n const { host } = data;\n const hostList = node.config.['ignoreHosts'].get() || [];\n if (cmd == 'add') {\n hostList.push(host);\n node.config.['ignoreHosts'].set(hostList)\n print.info(`${user} has been ignored`);\n } else if (cmd == 'remove') {\n node.config.['ignoreHosts'].set(hostList.filter(d => d != host));\n print.info(`${user} has been unignored`);\n }", "locked": true, "starred": true -} +} \ No newline at end of file diff --git a/commands/whois-1954518b8de0.json b/commands/whois-1954518b8de0.json new file mode 100644 index 0000000..d484749 --- /dev/null +++ b/commands/whois-1954518b8de0.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": true, + "starred": false, + "name": "whois", + "command": "log(IRC.whois(input.trim()));" +} \ No newline at end of file From 222c8803e923ecabc89ef88fd20c2e2bb3a9faf4 Mon Sep 17 00:00:00 2001 From: kirjavascript Date: Fri, 18 Feb 2022 02:51:04 +0100 Subject: [PATCH 16/94] lastfm username setting --- commands/-73df838fbf9e.json | 2 +- commands/event-b306be3528b0.json | 2 +- commands/eventIBIP-5695eeca1975.json | 2 +- commands/eventfetchURL-798176d44de4.json | 2 +- commands/lastfmset-ffa3cc5721b2.json | 7 +++++++ commands/lfm-4d36f707a23f.json | 2 +- commands/lfmset-28447f2b3c65.json | 7 +++++++ commands/poker2-ab6d1026bcca.json | 2 +- commands/r8ball-dc4a5ef1a771.json | 2 +- commands/supertest-0f6dadcf5b11.json | 7 +++++++ commands/uno-740351b89639.json | 7 +++++++ commands/weathercurrent-2249bdf87e04.json | 4 ++-- 12 files changed, 37 insertions(+), 9 deletions(-) create mode 100644 commands/lastfmset-ffa3cc5721b2.json create mode 100644 commands/lfmset-28447f2b3c65.json create mode 100644 commands/supertest-0f6dadcf5b11.json create mode 100644 commands/uno-740351b89639.json diff --git a/commands/-73df838fbf9e.json b/commands/-73df838fbf9e.json index 4d6e13d..d453ced 100644 --- a/commands/-73df838fbf9e.json +++ b/commands/-73df838fbf9e.json @@ -1,6 +1,6 @@ { "name": "!!!", - "command": "print(\"https://www.youtube.com/watch?v=MHr3ag7B410\");", + "command": "print(\"https://www.youtube.com/watch?v=MHr3ag7B410\");drfgdfg", "locked": false, "starred": false } \ No newline at end of file diff --git a/commands/event-b306be3528b0.json b/commands/event-b306be3528b0.json index 5866afb..7b081f3 100644 --- a/commands/event-b306be3528b0.json +++ b/commands/event-b306be3528b0.json @@ -3,5 +3,5 @@ "locked": true, "starred": true, "name": "event", - "command": "// Auth example;\n//\n// curl -X POST --data-binary '{\"passcode\":\"demo\"}' -H \"Content-Type: application/json\" http://localhost:8888/api/webhook/test\n\n// const tripcode = require('tripcode');\n\n// IRC.listen('webhook.test', event => {\n// const authed = tripcode(event.body.passcode) === IRC.queryConfig('testCode');\n// print(authed ? 'pass' : 'fail');\n// });\n\nIRC.listen('message', event => {\n if (event.message.text.includes(IRC.nick + ':')) {\n print('TODO: give the bot a brain');\n }\n});\n\nIRC.listen('message', (event) => {\n\tif (event.target === '#8bitvape'){\n \tif (event.message.text.includes('donk')) print('donk'); \n \telse if (event.message.text.includes('dongers')) print( \"{p}ヽ༼ຈل͜ຈ༽ノ {r}raise your dongers {p}ヽ༼ຈل͜ຈ༽ノ\") \n\n } \n});\n\nIRC.listen('message', (event) => {\n if (event.message.from.toLowerCase() === 'lambdacomplex' && \t\t/\\begg\\b/.test(event.message.text))\n IRC.require('evilegg');\n});\n\n//IRC.listen('tick', event => event.target === '#eggchan' && print('egg'));\n\nconst faces = [ '(◕ᴗ◕✿)', '(◕◡◕✿)', '(◔◡◔✿)', '(。◕‿◕。✿)', '(◡‿◡✿)', '(◠‿◠✿)', '(◕ܫ◕✿)', '(◕▿◕✿)', '(◕ ワ ◕✿)' ];\nIRC.listen('message', ({ message: { from, text } }) => {\n if (text.includes('❤')) {\n print(' '.repeat(text.indexOf('❤')) + ' ⟍' +faces[0|Math.random()*faces.length]);\n }\n});\n\n\nIRC.listen('tick', () => (\n (new Date).toISOString().slice(5,19)\n \t=== '01-01T00:00:00'\n \t&& print('(*⌒∇⌒*) //// 🎉 {rb}happy new year')\n));\n\n\nconst daily = () => 0 === (0|new Date/1000)%86400;\n\nconst hourly = () => 420 === (0|new Date/1000)%3600;\n\nIRC.listen('tick', ({ target }) => {\n if (target === '#8bitvape') {\n \tif (daily()) IRC.require('7');\n else if (hourly()) print('7');\n }\n});\n\nIRC.listen('tick', ({ target }) => {\n if (target === '#eggchan' && daily()) {\n print('egg');\n }\n});" + "command": "// Auth example;\n//\n// curl -X POST --data-binary '{\"passcode\":\"demo\"}' -H \"Content-Type: application/json\" http://localhost:8888/api/webhook/test\n\n// const tripcode = require('tripcode');\n\n// IRC.listen('webhook.test', event => {\n// const authed = tripcode(event.body.passcode) === IRC.queryConfig('testCode');\n// print(authed ? 'pass' : 'fail');\n// });\n\nIRC.listen('message', event => {\n if (event.message.text.includes(IRC.nick + ':') && event.message.text.endsWith('?')) {\n print('{g}' + IRC.require('r8ball')());\n }\n});\n\nIRC.listen('tick', () => (\n (new Date).toISOString().slice(5,19)\n \t=== '01-01T00:00:00'\n \t&& print('(*⌒∇⌒*) //// 🎉 {rb}happy new year')\n));\n\nconst faces = [ '(◕ᴗ◕✿)', '(◕◡◕✿)', '(◔◡◔✿)', '(。◕‿◕。✿)', '(◡‿◡✿)', '(◠‿◠✿)', '(◕ܫ◕✿)', '(◕▿◕✿)', '(◕ ワ ◕✿)' ];\nIRC.listen('message', ({ message: { from, text } }) => {\n if (text.includes('❤')) {\n print(' '.repeat(text.indexOf('❤')) + ' ⟍' +faces[0|Math.random()*faces.length]);\n }\n});\n\nIRC.listen('message', (event) => {\n if (event.target === '#8bitvape'){\n \tif (event.message.text.includes('donk')) print('donk'); \n \telse if (event.message.text.includes('dongers')) print(\"{p}ヽ༼ຈل͜ຈ༽ノ {r}raise your dongers {p}ヽ༼ຈل͜ຈ༽ノ\") \n else if (/^who\\b|^why\\b|\\bthey\\b|\\bthere\\b|\\btheres\\b|\\bi\\b|\\bive\\b|^im\\b|\\bwill\\b|\\bit\\b|\\bits\\b|\\bthats\\b|\\bthat\\b/i.test(event.message.text) && (0|Math.random()*100)===0) IRC.require('command.random');\n } \n});\n\nIRC.listen('message', (event) => {\n if (event.message.from.toLowerCase() === 'lambdacomplex' && /\\begg\\b/.test(event.message.text))\n IRC.require('evilegg');\n});\n\n\nconst daily = () => 0 === (0|new Date/1000)%86400;\n\nconst hourly = () => 420 === (0|new Date/1000)%3600;\n\nIRC.listen('tick', ({ target }) => {\n if (target === '#8bitvape') {\n \tif (daily()) IRC.require('7');\n else if (hourly()) print('7');\n }\n});\n\nIRC.listen('tick', ({ target }) => {\n if (target === '#eggchan' && daily()) {\n print('egg');\n }\n});" } \ No newline at end of file diff --git a/commands/eventIBIP-5695eeca1975.json b/commands/eventIBIP-5695eeca1975.json index 1beb63b..fcc3471 100644 --- a/commands/eventIBIP-5695eeca1975.json +++ b/commands/eventIBIP-5695eeca1975.json @@ -3,5 +3,5 @@ "locked": true, "starred": true, "name": "event.IBIP", - "command": "// handle IBIP (https://git.teknik.io/Teknikode/IBIP)\n\nIRC.listen('message', event => {\n if (event.message.text === '.bots' && IRC.queryConfig('enableIBIP', true)) {\n \tprint(`Reporting in! [JavaScript] use ${IRC.trigger}help`);\n }\n});" + "command": "// handle IBIP (https://git.teknik.io/Teknikode/IBIP)\n\nIRC.listen('message', event => {\n if (event.message.text === '.bots' && IRC.queryConfig('enableIBIP', true)) {\n \tIRC.require('help');\n \t// spec conforming version:\n \t//print(`Reporting in! [JavaScript] use ${IRC.trigger}help`);\n }\n});" } \ No newline at end of file diff --git a/commands/eventfetchURL-798176d44de4.json b/commands/eventfetchURL-798176d44de4.json index 3fd7ba9..f924b5c 100644 --- a/commands/eventfetchURL-798176d44de4.json +++ b/commands/eventfetchURL-798176d44de4.json @@ -3,5 +3,5 @@ "locked": true, "starred": true, "name": "event.fetchURL", - "command": "const { document, window } = new (jsdom().JSDOM)('');\nconst anchor = document.createElement('a');\nconst bytes = IRC.require('bytes');\n\nfunction setDOM(page) {\n document.open();\n document.write(page);\n document.close();\n};\n\nfunction domTitle() {\n const metaTitle = document.head.querySelector('meta[name=\"title\"]');\n return metaTitle ? metaTitle.content : document.title;\n}\n\nconst filterWords = /cloudflare|forbidden|not found|access denied|your browser|rick roll|never gonna give you up|log in/i;\n\nfunction hasInfo(url, _title) {\n const title = _title.replace(/\\s+/g, ' ').trim();\n const isFresh = title.split(' ')\n .filter(word => (\n !(new RegExp(word.replace(/[^.a-zA-Z0-9\\u00c0-\\u017e]+/g, ''), 'i')).test(url)\n )).length >= 1;\n return isFresh;\n}\n\nIRC.listen('message', event => {\n if (!IRC.queryConfig('fetchURL', true)) return;\n const { text, from } = event.message;\n const urls = text.match(/(\\b(https?):\\/\\/[-A-Z0-9+&@#\\/%?=~_|!:,.;()]*[-A-Z0-9+&@#\\/%=~_|()])/ig);\n const fromSelf = from === IRC.nick;\n if (!urls || fromSelf || text.startsWith(IRC.trigger) || text.includes('##')) return;\n\n urls.slice(0, 2).forEach(url => {\n handleURL(url, global.print)\n //.catch(print.error);\n });\n});\n\nasync function handleURL(url, print) {\n anchor.setAttribute('href', url);\n if (await customURL(url, print)) return;\n\n const res = await fetch(url, {\n headers: {\n 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',\n 'Accept-Language': 'en-GB,en;q=0.5',\n 'Content-Language': 'en-GB,en;q=0.5',\n 'User-Agent': /youtu\\.?be|google|reddit/.test(url) ? '' : 'Googlebot',\n },\n });\n\n const length = res.headers.get('content-length');\n\n if (length > 5.243e6) {\n const filename = anchor.pathname.split('/').pop();\n print.info(`{dc}${filename}{/} ${bytes(length)} {dgr}${res.headers.get('content-type')}{/}`);\n return;\n }\n\n const page = await res.text();\n setDOM(page);\n\n const title = domTitle();\n\n if (\n title.length \n && title.length < 400 \n && !filterWords.test(title)\n && (IRC.queryConfig('fetchURLAll', false) || hasInfo(url, title))) {\n print.info(title);\n }\n\n}\n\nasync function customURL(url, print) {\n const { hostname, pathname } = anchor;\n if (hostname.includes('youtube.') || hostname === 'youtu.be') {\n try {\n const json = await (await fetch(`https://www.youtube.com/oembed?url=${encodeURI(url)}&format=json`)).json();\n const {\n title, author_name,\n } = json;\n print(`{r}YouTube{/} {c}${author_name}{/} ${title}`);\n return true;\n } catch (e) { }\n // url.match(/(?!v=|v\\/|\\.be\\/|watch\\/)([0-9a-z\\-_]{11})/i);\n }\n if (hostname.includes('github.')) {\n if (pathname.split('/').length === 3) {\n // it's a repo url\n const {\n description,\n html_url,\n stargazers_count,\n language,\n license, // { name }\n } = await (\n await fetch(`https://api.github.com/repos${pathname}`)\n ).json();\n\n print(`{gr}Github{/} ${description} ${IRC.colors.nick(language, false)} {y}★{/} {bo}${stargazers_count}{/} {dgr}${license ? license.name : ''}{/}`);\n return true;\n }\n // TODO reddit\n // https://github.com/mendel5/alternative-front-ends\n } \n if (hostname.includes('instagram.')) {\n // https://git.sr.ht/~cadence/bibliogram-docs/tree/master/docs/Instances.md\n const id = pathname.match(/\\/([A-Za-z-0-9]{11})/);\n if (id) {\n const page = await (await fetch(`https://bibliogram.1d4.us/p/${id[1]}`)).text();\n setDOM(page);\n const text = document.querySelector('.structured-text').textContent;\n const name = document.querySelector('.name').textContent;\n const image = document.querySelector('.sized-image');\n\n let output = `{bo}Instagram{/} {c}${name}{/} ${text.replace(/\\s+/g, ' ')}`;\n print(output);\n }\n return true;\n }\n if (hostname.includes('twitter.')) {\n const id = pathname.match(/status\\/(\\d+)/);\n if (id) {\n const page = await (await fetch(`https://nitter.net/_/status/${id[1]}#m`)).text();\n setDOM(page);\n const maintweet = document.querySelector('.main-tweet');\n const name = maintweet.querySelector('.fullname').textContent;\n const user = maintweet.querySelector('.username').textContent;\n \tconst image = maintweet.querySelector('.still-image img');\n const tweet = maintweet.querySelector('.tweet-content').textContent.replace(/\\s+/g, ' ');\n let output = `{bo}${name}{/} {c}${user}{/} ${tweet}`;\n \tif (image) {\n \toutput += ' ' + IRC.colors.link(`https://nitter.net${image.getAttribute('src').replace(/%3Fname.+/, '')}`);\n }\n print(output);\n \n return true;\n }\n }\n}" + "command": "const { document, window } = new (jsdom().JSDOM)('');\nconst anchor = document.createElement('a');\nconst bytes = IRC.require('bytes');\n\nfunction setDOM(page) {\n document.open();\n document.write(page);\n document.close();\n};\n\nfunction domTitle() {\n const metaTitle = document.head.querySelector('meta[name=\"title\"]');\n return metaTitle ? metaTitle.content : document.title;\n}\n\nconst filterWords = /cloudflare|forbidden|not found|access restricted|access denied|your browser|rick roll|never gonna give you up|log in/i;\n\nfunction hasInfo(url, _title) {\n const title = _title.replace(/\\s+/g, ' ').trim();\n const isFresh = title.split(' ')\n .filter(word => (\n !(new RegExp(word.replace(/[^.a-zA-Z0-9\\u00c0-\\u017e]+/g, ''), 'i')).test(url)\n )).length >= 1;\n return isFresh;\n}\n\nIRC.listen('message', event => {\n if (!IRC.queryConfig('fetchURL', true)) return;\n const { text, from } = event.message;\n const urls = text.match(/(\\b(https?):\\/\\/[-A-Z0-9+&@#\\/%?=~_|!:,.;()]*[-A-Z0-9+&@#\\/%=~_|()])/ig);\n const fromSelf = from === IRC.nick;\n if (!urls || fromSelf || text.startsWith(IRC.trigger) || text.includes('##')) return;\n\n urls.slice(0, 2).forEach(url => {\n handleURL(url, global.print)\n //.catch(print.error);\n });\n});\n\nasync function handleURL(url, print) {\n anchor.setAttribute('href', url);\n if (await customURL(url, print)) return;\n\n const res = await fetch(url, {\n headers: {\n 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',\n 'Accept-Language': 'en-GB,en;q=0.5',\n 'Content-Language': 'en-GB,en;q=0.5',\n 'User-Agent': /youtu\\.?be|google|reddit/.test(url) ? '' : 'Googlebot',\n },\n });\n\n const length = res.headers.get('content-length');\n\n if (length > 5.243e6) {\n const filename = anchor.pathname.split('/').pop();\n print.info(`{dc}${filename}{/} ${bytes(length)} {dgr}${res.headers.get('content-type')}{/}`);\n return;\n }\n\n const page = await res.text();\n setDOM(page);\n\n const title = domTitle();\n\n if (\n title.length \n && title.length < 400 \n && !filterWords.test(title)\n && (IRC.queryConfig('fetchURLAll', false) || hasInfo(url, title))) {\n print.info(title);\n }\n\n}\n\nasync function customURL(url, print) {\n const { hostname, pathname } = anchor;\n if (hostname.includes('youtube.') || hostname === 'youtu.be') {\n try {\n const json = await (await fetch(`https://www.youtube.com/oembed?url=${encodeURI(url)}&format=json`)).json();\n const {\n title, author_name,\n } = json;\n print(`{r}YouTube{/} {c}${author_name}{/} ${title}`);\n return true;\n } catch (e) { }\n // url.match(/(?!v=|v\\/|\\.be\\/|watch\\/)([0-9a-z\\-_]{11})/i);\n }\n if (hostname.includes('github.')) {\n if (pathname.split('/').length === 3) {\n // it's a repo url\n const {\n description,\n html_url,\n stargazers_count,\n language,\n license, // { name }\n } = await (\n await fetch(`https://api.github.com/repos${pathname}`)\n ).json();\n\n print(`{gr}Github{/} ${description} ${IRC.colors.nick(language, false)} {y}★{/} {bo}${stargazers_count}{/} {dgr}${license ? license.name : ''}{/}`);\n return true;\n }\n // TODO reddit\n // https://github.com/mendel5/alternative-front-ends\n } \n if (hostname.includes('instagram.')) {\n // https://git.sr.ht/~cadence/bibliogram-docs/tree/master/docs/Instances.md\n const id = pathname.match(/\\/([A-Za-z-0-9]{11})/);\n if (id) {\n const page = await (await fetch(`https://bibliogram.1d4.us/p/${id[1]}`)).text();\n setDOM(page);\n const text = document.querySelector('.structured-text').textContent;\n const name = document.querySelector('.name').textContent;\n const image = document.querySelector('.sized-image');\n\n let output = `{bo}Instagram{/} {c}${name}{/} ${text.replace(/\\s+/g, ' ')}`;\n print(output);\n }\n return true;\n }\n if (hostname.includes('twitter.')) {\n const id = pathname.match(/status\\/(\\d+)/);\n if (id) {\n const page = await (await fetch(`https://nitter.net/_/status/${id[1]}#m`)).text();\n setDOM(page);\n const maintweet = document.querySelector('.main-tweet');\n const name = maintweet.querySelector('.fullname').textContent;\n const user = maintweet.querySelector('.username').textContent;\n \tconst image = maintweet.querySelector('.still-image img');\n const tweet = maintweet.querySelector('.tweet-content').textContent.replace(/\\s+/g, ' ');\n let output = `{bo}${name}{/} {c}${user}{/} ${tweet}`;\n \tif (image) {\n \toutput += ' ' + IRC.colors.link(`https://nitter.net${image.getAttribute('src').replace(/%3Fname.+/, '')}`);\n }\n print(output);\n \n return true;\n }\n }\n}" } \ No newline at end of file diff --git a/commands/lastfmset-ffa3cc5721b2.json b/commands/lastfmset-ffa3cc5721b2.json new file mode 100644 index 0000000..9b02401 --- /dev/null +++ b/commands/lastfmset-ffa3cc5721b2.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "lastfm.set", + "command": "IRC.require('lfm.set');" +} \ No newline at end of file diff --git a/commands/lfm-4d36f707a23f.json b/commands/lfm-4d36f707a23f.json index baf1caf..a849a69 100644 --- a/commands/lfm-4d36f707a23f.json +++ b/commands/lfm-4d36f707a23f.json @@ -1,6 +1,6 @@ { "name": "lfm", - "command": "if (IRC.message.from == 'megasconed') IRC.message.from = 'megaproxy';\nconst from = input.trim() || IRC.message.from;\nconst { recenttracks, error, message } = fetchSync.json(`http://ws.audioscrobbler.com/2.0/?method=user.getrecenttracks&user=${from}&api_key=a5db9686e8a52248af25d9d4d8965527&format=json`);\nif (error) throw message;\nconst { track } = recenttracks;\nif (track.length) {\n const NP = '@attr' in track[0] && track[0]['@attr'].nowplaying;\n const [{ name, artist, album }] = track;\n print(`{y}♫{/} ${IRC.colors.nick(from, false)} ${NP?'is now playing':'last played'} {dc}${name}{/} by ${artist['#text']} {dgr}from ${album['#text']}`)\n}", + "command": "if (IRC.message.from == 'megasconed') IRC.message.from = 'megaproxy';\nconst from = input.trim() || store.get(IRC.message.from) || IRC.message.from;\nconst { recenttracks, error, message } = fetchSync.json(`http://ws.audioscrobbler.com/2.0/?method=user.getrecenttracks&user=${from}&api_key=a5db9686e8a52248af25d9d4d8965527&format=json`);\nif (error) throw message;\nconst { track } = recenttracks;\nif (track.length) {\n const NP = '@attr' in track[0] && track[0]['@attr'].nowplaying;\n const [{ name, artist, album }] = track;\n print(`{y}♫{/} ${IRC.colors.nick(from, false)} ${NP?'is now playing':'last played'} {dc}${name}{/} by ${artist['#text']} {dgr}from ${album['#text']}`)\n}", "locked": true, "starred": false } \ No newline at end of file diff --git a/commands/lfmset-28447f2b3c65.json b/commands/lfmset-28447f2b3c65.json new file mode 100644 index 0000000..b2525fc --- /dev/null +++ b/commands/lfmset-28447f2b3c65.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "lfm.set", + "command": "function getDefault(user){\n \treturn store.get(user)\n}\n\nfunction hasSetDefault(user){\n return typeof(store.get(user)) !== \"undefined\"\n}\n\nif(!module.required){\n from = IRC.message.from\n\tvalue = input\n\tstore.set(from, value)\n \tprint(`Successfully set ${value} as lastfm name`)\n}\n\nmodule.exports = {getDefault, hasSetDefault}" +} \ No newline at end of file diff --git a/commands/poker2-ab6d1026bcca.json b/commands/poker2-ab6d1026bcca.json index 08cd1c0..bfc18ac 100644 --- a/commands/poker2-ab6d1026bcca.json +++ b/commands/poker2-ab6d1026bcca.json @@ -1,6 +1,6 @@ { "name": "poker2", - "command": "throw new Error('coming 2046™');", + "command": "throw new Error('coming 2022™');", "locked": true, "starred": false } \ No newline at end of file diff --git a/commands/r8ball-dc4a5ef1a771.json b/commands/r8ball-dc4a5ef1a771.json index 364f1df..6d8c3a2 100644 --- a/commands/r8ball-dc4a5ef1a771.json +++ b/commands/r8ball-dc4a5ef1a771.json @@ -1,6 +1,6 @@ { "name": "r8ball", - "command": "print(( // legacy command wrapper\n function r8ball(a){return '{r}' + [\n\"It is certain\",\n\"It is decidedly so\",\n\"Without a doubt\",\n\"Yes, definitely\",\n\"You may rely on it\",\n\"As I see it, yes\",\n\"Most likely\",\n\"Outlook good\",\n\"Yes\",\n\"Signs point to yes\",\n\"Reply hazy try again\",\n\"Ask again later\",\n\"Better not tell you now\",\n\"Cannot predict now\",\n\"Concentrate and ask again\",\n\"Don't count on it\",\n\"My reply is no\",\n\"My sources say no\",\n\"Outlook not so good\",\n\"Very doubtful\"][\n(Math.random()*20)|0\n]}\n)(input, input.split(' '), IRC.message));", + "command": "function r8ball(){return [\n\"It is certain\",\n\"It is decidedly so\",\n\"Without a doubt\",\n\"Yes, definitely\",\n\"You may rely on it\",\n\"As I see it, yes\",\n\"Most likely\",\n\"Outlook good\",\n\"Yes\",\n\"Signs point to yes\",\n\"Reply hazy try again\",\n\"Ask again later\",\n\"Better not tell you now\",\n\"Cannot predict now\",\n\"Concentrate and ask again\",\n\"Don't count on it\",\n\"My reply is no\",\n\"My sources say no\",\n\"Outlook not so good\",\n\"Very doubtful\"][(Math.random()*20)|0]};\n!module.required && print('{r}'+r8ball());\nmodule.exports = r8ball;", "locked": true, "starred": false } \ No newline at end of file diff --git a/commands/supertest-0f6dadcf5b11.json b/commands/supertest-0f6dadcf5b11.json new file mode 100644 index 0000000..7a2acd3 --- /dev/null +++ b/commands/supertest-0f6dadcf5b11.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "supertest", + "command": "print(\"This is a super awesome test\");" +} \ No newline at end of file diff --git a/commands/uno-740351b89639.json b/commands/uno-740351b89639.json new file mode 100644 index 0000000..ec321c6 --- /dev/null +++ b/commands/uno-740351b89639.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "uno", + "command": "throw `coming`" +} \ No newline at end of file diff --git a/commands/weathercurrent-2249bdf87e04.json b/commands/weathercurrent-2249bdf87e04.json index d1c58b5..a1c88c2 100644 --- a/commands/weathercurrent-2249bdf87e04.json +++ b/commands/weathercurrent-2249bdf87e04.json @@ -2,5 +2,5 @@ "locked": false, "starred": false, "name": "weather.current", - "command": "let {getDefault, hasSetDefault} = IRC.require('weather.set')\n\nfunction format_weather(json){\n const dateFns = require('date-fns@1.30.1');const { format } = dateFns;\n const emoji = {\n Snow: '🌨', \n Thunderstorm : '🌩',\n Rain: '🌧', \n Drizzle : '🌦',\n Clouds: '☁️', \n Clear : '☀️',\n Mist: '🌫️',\n Fog: '🌫️',\n Smoke: '🌫️',\n Haze: '🌫️',\n Dust: '🌫️',\n Sand: '🏜️',\n Ash: '⚱️',\n Squall: '💨',\n Tornado: '🌪️'\n };\n const main = json.main\n const wind = json.wind\n const weather = json.weather[0]\n const sys = json.sys\n print([\n `${json.name}, ${sys.country}: `,\n `{c}${weather[\"description\"].padEnd(15, ' ')}{/}`,\n `${emoji[weather[\"main\"]].padEnd(4,' ')}`,\n `low: {y}${String((0|main.temp_min)).padStart(2, 0)}{/}{bo}°C{/} `,\n `high: {y}${String((0|main.temp_max)).padStart(2, 0)}{/}{bo}°C{/} `,\n `feels: {y}${String((0|main.feels_like)).padStart(2, 0)}{/}{bo}°C{/} `,\n `humidity: {y}${main.humidity|0}%{/} `,\n `wind: {y}${wind.speed|0}mph (${wind.deg|0}°){/} `,\n `air pressure: {y}${main.pressure|0} mbar{/} `,\n ].join``)\n print(`Timezone - UTC + {dg}${json.timezone / 60 / 60}{/} Sunrise: {dc}${format(new Date(sys.sunrise * 1000),'HH:mm')}{/} Sunset: {dc}${format(new Date(sys.sunset * 1000),'HH:mm')}{/}`);\n}\n\nfunction get(){\n try{\n const API_URL = \"http://api.openweathermap.org/data/2.5/weather/"\n\t\n let args = [];\n \n if(input.includes(\",\")){\n args = input.split(\",\")\n }\n else{\n args = input.split(\" \")\n }\n \n const user = IRC.message.from\n if (input == ''){\n if(hasSetDefault(user)){\n \targs = [getDefault(user)]\n }\n else{\n print(`usage: {p}${IRC.trigger}weather{/} [location] [,state] [,country] {dgr}(service provided by openweathermap.org){/}`)\n return\n }\n }\n\tconst request = fetchSync.json(API_URL + `?q=${args.join(\",\")}&appid=${IRC.secret}&units=metric`);\n print(format_weather(request));\n }\n catch(error){\n print(`No Results for Location ${error}:`)\n }\n}\n\nif(!module.required){\n get();\n}\nmodule.exports = {get, format_weather}" -} + "command": "let {getDefault, hasSetDefault} = IRC.require('weather.set')\n\nfunction format_weather(json){\n const dateFns = require('date-fns@1.30.1');const { format } = dateFns;\n const emoji = {\n Snow: '🌨', \n Thunderstorm : '🌩',\n Rain: '🌧', \n Drizzle : '🌦',\n Clouds: '☁️', \n Clear : '☀️',\n Mist: '🌫️',\n Fog: '🌫️',\n Smoke: '🌫️',\n Haze: '🌫️',\n Dust: '🌫️',\n Sand: '🏜️',\n Ash: '⚱️',\n Squall: '💨',\n Tornado: '🌪️'\n };\n const main = json.main\n const wind = json.wind\n if (!json.weather.length) throw 'no data found'\n const weather = json.weather[0]\n const sys = json.sys\n print([\n `${json.name}, ${sys.country}: `,\n `{c}${weather[\"description\"].padEnd(15, ' ')}{/}`,\n `${emoji[weather[\"main\"]].padEnd(4,' ')}`,\n `low: {y}${String((0|main.temp_min)).padStart(2, 0)}{/}{bo}°C{/} `,\n `high: {y}${String((0|main.temp_max)).padStart(2, 0)}{/}{bo}°C{/} `,\n `feels: {y}${String((0|main.feels_like)).padStart(2, 0)}{/}{bo}°C{/} `,\n `humidity: {y}${main.humidity|0}%{/} `,\n `wind: {y}${wind.speed|0}mph (${wind.deg|0}°){/} `,\n `air pressure: {y}${main.pressure|0} mbar{/} `,\n ].join``)\n print(`Timezone - UTC + {dg}${json.timezone / 60 / 60}{/} Sunrise: {dc}${format(new Date(sys.sunrise * 1000),'HH:mm')}{/} Sunset: {dc}${format(new Date(sys.sunset * 1000),'HH:mm')}{/}`);\n}\n\nfunction get(){\n try{\n const API_URL = \"http://api.openweathermap.org/data/2.5/weather/"\n\t\n let args = [];\n \n if(input.includes(\",\")){\n args = input.split(\",\")\n }\n else{\n args = input.split(\" \")\n }\n \n const user = IRC.message.from\n if (input == ''){\n if(hasSetDefault(user)){\n \targs = [getDefault(user)]\n }\n else{\n print(`usage: {p}${IRC.trigger}weather{/} [location] [,state] [,country] {dgr}(service provided by openweathermap.org){/}`)\n return\n }\n }\n\tconst request = fetchSync.json(API_URL + `?q=${args.join(\",\")}&appid=${IRC.secret}&units=metric`);\n print(format_weather(request));\n }\n catch(error){\n print(`No Results for Location ${error}:`)\n }\n}\n\nif(!module.required){\n get();\n}\nmodule.exports = {get, format_weather}" +} \ No newline at end of file From bc6cabaf69a4d269842e3f60d050a0982c2e7803 Mon Sep 17 00:00:00 2001 From: kirjavascript Date: Sat, 26 Feb 2022 18:24:34 +0100 Subject: [PATCH 17/94] added reddit to fetchurl --- commands/event-b306be3528b0.json | 2 +- commands/eventfetchURL-798176d44de4.json | 2 +- commands/eventhexcolours-f73ec85888e9.json | 2 +- commands/eventmemo-84d5d58f85cc.json | 2 +- commands/npset-ac56a02b298f.json | 7 +++++++ commands/sponge-7089ef2380b9.json | 7 +++++++ commands/test3-201130ad3c78.json | 7 +++++++ 7 files changed, 25 insertions(+), 4 deletions(-) create mode 100644 commands/npset-ac56a02b298f.json create mode 100644 commands/sponge-7089ef2380b9.json create mode 100644 commands/test3-201130ad3c78.json diff --git a/commands/event-b306be3528b0.json b/commands/event-b306be3528b0.json index 7b081f3..601744d 100644 --- a/commands/event-b306be3528b0.json +++ b/commands/event-b306be3528b0.json @@ -3,5 +3,5 @@ "locked": true, "starred": true, "name": "event", - "command": "// Auth example;\n//\n// curl -X POST --data-binary '{\"passcode\":\"demo\"}' -H \"Content-Type: application/json\" http://localhost:8888/api/webhook/test\n\n// const tripcode = require('tripcode');\n\n// IRC.listen('webhook.test', event => {\n// const authed = tripcode(event.body.passcode) === IRC.queryConfig('testCode');\n// print(authed ? 'pass' : 'fail');\n// });\n\nIRC.listen('message', event => {\n if (event.message.text.includes(IRC.nick + ':') && event.message.text.endsWith('?')) {\n print('{g}' + IRC.require('r8ball')());\n }\n});\n\nIRC.listen('tick', () => (\n (new Date).toISOString().slice(5,19)\n \t=== '01-01T00:00:00'\n \t&& print('(*⌒∇⌒*) //// 🎉 {rb}happy new year')\n));\n\nconst faces = [ '(◕ᴗ◕✿)', '(◕◡◕✿)', '(◔◡◔✿)', '(。◕‿◕。✿)', '(◡‿◡✿)', '(◠‿◠✿)', '(◕ܫ◕✿)', '(◕▿◕✿)', '(◕ ワ ◕✿)' ];\nIRC.listen('message', ({ message: { from, text } }) => {\n if (text.includes('❤')) {\n print(' '.repeat(text.indexOf('❤')) + ' ⟍' +faces[0|Math.random()*faces.length]);\n }\n});\n\nIRC.listen('message', (event) => {\n if (event.target === '#8bitvape'){\n \tif (event.message.text.includes('donk')) print('donk'); \n \telse if (event.message.text.includes('dongers')) print(\"{p}ヽ༼ຈل͜ຈ༽ノ {r}raise your dongers {p}ヽ༼ຈل͜ຈ༽ノ\") \n else if (/^who\\b|^why\\b|\\bthey\\b|\\bthere\\b|\\btheres\\b|\\bi\\b|\\bive\\b|^im\\b|\\bwill\\b|\\bit\\b|\\bits\\b|\\bthats\\b|\\bthat\\b/i.test(event.message.text) && (0|Math.random()*100)===0) IRC.require('command.random');\n } \n});\n\nIRC.listen('message', (event) => {\n if (event.message.from.toLowerCase() === 'lambdacomplex' && /\\begg\\b/.test(event.message.text))\n IRC.require('evilegg');\n});\n\n\nconst daily = () => 0 === (0|new Date/1000)%86400;\n\nconst hourly = () => 420 === (0|new Date/1000)%3600;\n\nIRC.listen('tick', ({ target }) => {\n if (target === '#8bitvape') {\n \tif (daily()) IRC.require('7');\n else if (hourly()) print('7');\n }\n});\n\nIRC.listen('tick', ({ target }) => {\n if (target === '#eggchan' && daily()) {\n print('egg');\n }\n});" + "command": "// Auth example;\n//\n// curl -X POST --data-binary '{\"passcode\":\"demo\"}' -H \"Content-Type: application/json\" http://localhost:8888/api/webhook/test\n\n// const tripcode = require('tripcode');\n\n// IRC.listen('webhook.test', event => {\n// const authed = tripcode(event.body.passcode) === IRC.queryConfig('testCode');\n// print(authed ? 'pass' : 'fail');\n// });\n\nIRC.listen('message', event => {\n if (event.message.text.includes(IRC.nick + ':') && event.message.text.endsWith('?')) {\n print('{g}' + IRC.require('r8ball')());\n }\n});\n\nIRC.listen('tick', () => (\n (new Date).toISOString().slice(5,19)\n \t=== '01-01T00:00:00'\n \t&& print('(*⌒∇⌒*) //// 🎉 {rb}happy new year')\n));\n\nconst faces = [ '(◕ᴗ◕✿)', '(◕◡◕✿)', '(◔◡◔✿)', '(。◕‿◕。✿)', '(◡‿◡✿)', '(◠‿◠✿)', '(◕ܫ◕✿)', '(◕▿◕✿)', '(◕ ワ ◕✿)' ];\nIRC.listen('message', ({ message: { from, text } }) => {\n if (text.includes('❤')) {\n print(' '.repeat(text.indexOf('❤')) + ' ⟍' +faces[0|Math.random()*faces.length]);\n }\n});\n\nIRC.listen('message', (event) => {\n if (event.target === '#8bitvape'){\n \tif (event.message.text.includes('donk')) print('donk'); \n \telse if (event.message.text.includes('dongers')) print(\"{p}ヽ༼ຈل͜ຈ༽ノ {r}raise your dongers {p}ヽ༼ຈل͜ຈ༽ノ\") \n else if (/\\bi\\b/i.test(event.message.text) && (0|Math.random()*100)===0) IRC.require('command.random');\n } \n});\n\nIRC.listen('message', (event) => {\n if (event.message.from.toLowerCase() === 'lambdacomplex' && /\\begg\\b/.test(event.message.text))\n IRC.require('evilegg');\n});\n\n\nconst daily = () => 25200 === (0|new Date/1000)%86400;\n\nconst hourly = () => 420 === (0|new Date/1000)%3600;\n\nIRC.listen('tick', ({ target }) => {\n if (target === '#8bitvape') {\n \tif (daily()) IRC.require('7');\n else if (hourly()) print('7');\n }\n});\n\nIRC.listen('tick', ({ target }) => {\n if (target === '#eggchan' && daily()) {\n print('egg');\n }\n});" } \ No newline at end of file diff --git a/commands/eventfetchURL-798176d44de4.json b/commands/eventfetchURL-798176d44de4.json index f924b5c..3717c1b 100644 --- a/commands/eventfetchURL-798176d44de4.json +++ b/commands/eventfetchURL-798176d44de4.json @@ -3,5 +3,5 @@ "locked": true, "starred": true, "name": "event.fetchURL", - "command": "const { document, window } = new (jsdom().JSDOM)('');\nconst anchor = document.createElement('a');\nconst bytes = IRC.require('bytes');\n\nfunction setDOM(page) {\n document.open();\n document.write(page);\n document.close();\n};\n\nfunction domTitle() {\n const metaTitle = document.head.querySelector('meta[name=\"title\"]');\n return metaTitle ? metaTitle.content : document.title;\n}\n\nconst filterWords = /cloudflare|forbidden|not found|access restricted|access denied|your browser|rick roll|never gonna give you up|log in/i;\n\nfunction hasInfo(url, _title) {\n const title = _title.replace(/\\s+/g, ' ').trim();\n const isFresh = title.split(' ')\n .filter(word => (\n !(new RegExp(word.replace(/[^.a-zA-Z0-9\\u00c0-\\u017e]+/g, ''), 'i')).test(url)\n )).length >= 1;\n return isFresh;\n}\n\nIRC.listen('message', event => {\n if (!IRC.queryConfig('fetchURL', true)) return;\n const { text, from } = event.message;\n const urls = text.match(/(\\b(https?):\\/\\/[-A-Z0-9+&@#\\/%?=~_|!:,.;()]*[-A-Z0-9+&@#\\/%=~_|()])/ig);\n const fromSelf = from === IRC.nick;\n if (!urls || fromSelf || text.startsWith(IRC.trigger) || text.includes('##')) return;\n\n urls.slice(0, 2).forEach(url => {\n handleURL(url, global.print)\n //.catch(print.error);\n });\n});\n\nasync function handleURL(url, print) {\n anchor.setAttribute('href', url);\n if (await customURL(url, print)) return;\n\n const res = await fetch(url, {\n headers: {\n 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',\n 'Accept-Language': 'en-GB,en;q=0.5',\n 'Content-Language': 'en-GB,en;q=0.5',\n 'User-Agent': /youtu\\.?be|google|reddit/.test(url) ? '' : 'Googlebot',\n },\n });\n\n const length = res.headers.get('content-length');\n\n if (length > 5.243e6) {\n const filename = anchor.pathname.split('/').pop();\n print.info(`{dc}${filename}{/} ${bytes(length)} {dgr}${res.headers.get('content-type')}{/}`);\n return;\n }\n\n const page = await res.text();\n setDOM(page);\n\n const title = domTitle();\n\n if (\n title.length \n && title.length < 400 \n && !filterWords.test(title)\n && (IRC.queryConfig('fetchURLAll', false) || hasInfo(url, title))) {\n print.info(title);\n }\n\n}\n\nasync function customURL(url, print) {\n const { hostname, pathname } = anchor;\n if (hostname.includes('youtube.') || hostname === 'youtu.be') {\n try {\n const json = await (await fetch(`https://www.youtube.com/oembed?url=${encodeURI(url)}&format=json`)).json();\n const {\n title, author_name,\n } = json;\n print(`{r}YouTube{/} {c}${author_name}{/} ${title}`);\n return true;\n } catch (e) { }\n // url.match(/(?!v=|v\\/|\\.be\\/|watch\\/)([0-9a-z\\-_]{11})/i);\n }\n if (hostname.includes('github.')) {\n if (pathname.split('/').length === 3) {\n // it's a repo url\n const {\n description,\n html_url,\n stargazers_count,\n language,\n license, // { name }\n } = await (\n await fetch(`https://api.github.com/repos${pathname}`)\n ).json();\n\n print(`{gr}Github{/} ${description} ${IRC.colors.nick(language, false)} {y}★{/} {bo}${stargazers_count}{/} {dgr}${license ? license.name : ''}{/}`);\n return true;\n }\n // TODO reddit\n // https://github.com/mendel5/alternative-front-ends\n } \n if (hostname.includes('instagram.')) {\n // https://git.sr.ht/~cadence/bibliogram-docs/tree/master/docs/Instances.md\n const id = pathname.match(/\\/([A-Za-z-0-9]{11})/);\n if (id) {\n const page = await (await fetch(`https://bibliogram.1d4.us/p/${id[1]}`)).text();\n setDOM(page);\n const text = document.querySelector('.structured-text').textContent;\n const name = document.querySelector('.name').textContent;\n const image = document.querySelector('.sized-image');\n\n let output = `{bo}Instagram{/} {c}${name}{/} ${text.replace(/\\s+/g, ' ')}`;\n print(output);\n }\n return true;\n }\n if (hostname.includes('twitter.')) {\n const id = pathname.match(/status\\/(\\d+)/);\n if (id) {\n const page = await (await fetch(`https://nitter.net/_/status/${id[1]}#m`)).text();\n setDOM(page);\n const maintweet = document.querySelector('.main-tweet');\n const name = maintweet.querySelector('.fullname').textContent;\n const user = maintweet.querySelector('.username').textContent;\n \tconst image = maintweet.querySelector('.still-image img');\n const tweet = maintweet.querySelector('.tweet-content').textContent.replace(/\\s+/g, ' ');\n let output = `{bo}${name}{/} {c}${user}{/} ${tweet}`;\n \tif (image) {\n \toutput += ' ' + IRC.colors.link(`https://nitter.net${image.getAttribute('src').replace(/%3Fname.+/, '')}`);\n }\n print(output);\n \n return true;\n }\n }\n}" + "command": "const { document, window } = new (jsdom().JSDOM)('');\nconst anchor = document.createElement('a');\nconst bytes = IRC.require('bytes');\n\nfunction setDOM(page) {\n document.open();\n document.write(page);\n document.close();\n};\n\nfunction domTitle() {\n const metaTitle = document.head.querySelector('meta[name=\"title\"]');\n return metaTitle ? metaTitle.content : document.title;\n}\n\nconst filterWords = /cloudflare|forbidden|not found|access restricted|access denied|your browser|rick roll|never gonna give you up|log in/i;\n\nfunction hasInfo(url, _title) {\n const title = _title.replace(/\\s+/g, ' ').trim();\n const isFresh = title.split(' ')\n .filter(word => (\n !(new RegExp(word.replace(/[^.a-zA-Z0-9\\u00c0-\\u017e]+/g, ''), 'i')).test(url)\n )).length >= 1;\n return isFresh;\n}\n\nIRC.listen('message', event => {\n if (!IRC.queryConfig('fetchURL', true)) return;\n const { text, from } = event.message;\n const urls = text.match(/(\\b(https?):\\/\\/[-A-Z0-9+&@#\\/%?=~_|!:,.;()]*[-A-Z0-9+&@#\\/%=~_|()])/ig);\n const fromSelf = from === IRC.nick;\n if (!urls || fromSelf || text.startsWith(IRC.trigger) || text.includes('##')) return;\n\n urls.slice(0, 2).forEach(url => {\n handleURL(url, global.print)\n // .catch(print.error);\n });\n});\n\nasync function handleURL(url, print) {\n anchor.setAttribute('href', url);\n if (await customURL(url, print)) return;\n\n const res = await fetch(url, {\n headers: {\n 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',\n 'Accept-Language': 'en-GB,en;q=0.5',\n 'Content-Language': 'en-GB,en;q=0.5',\n 'User-Agent': /youtu\\.?be|google|reddit/.test(url) ? '' : 'Googlebot',\n },\n });\n\n const length = res.headers.get('content-length');\n\n if (length > 5.243e6) {\n const filename = anchor.pathname.split('/').pop();\n print.info(`{dc}${filename}{/} ${bytes(length)} {dgr}${res.headers.get('content-type')}{/}`);\n return;\n }\n\n const page = await res.text();\n setDOM(page);\n\n const title = domTitle();\n\n if (\n title.length \n && title.length < 400 \n && !filterWords.test(title)\n && (IRC.queryConfig('fetchURLAll', false) || hasInfo(url, title))) {\n print.info(title);\n }\n\n}\n\nasync function customURL(url, print) {\n // https://github.com/mendel5/alternative-front-ends\n const { hostname, pathname } = anchor;\n if (hostname.includes('reddit.')) {\n const jsonURL = url.replace(/(\\/?)(\\?.*)?(#.*)?$/, '/.json');\n const json = await(await fetch(jsonURL)).json();\n const data = json?.[0]?.data?.children?.[0]?.data;\n if (data) {\n const url = data?.secure_media?.reddit_video?.fallback_url?.replace('?source=fallback', '') || data.url;\n if (url) {\n print(`{c}Reddit{/} ${data.title} ${IRC.colors.link(url)}`);\n return true;\n }\n }\n // todo\n// print(`{u}{dc}${fetchSync.json(`${input}/.json`)[0].data.children[0].data.secure_media.reddit_video.fallback_url}`);\n return true; \n }\n if (hostname.includes('youtube.') || hostname === 'youtu.be') {\n try {\n const json = await (await fetch(`https://www.youtube.com/oembed?url=${encodeURI(url)}&format=json`)).json();\n const {\n title, author_name,\n } = json;\n print(`{r}YouTube{/} {c}${author_name}{/} ${title}`);\n return true;\n } catch (e) { }\n // url.match(/(?!v=|v\\/|\\.be\\/|watch\\/)([0-9a-z\\-_]{11})/i);\n }\n if (hostname.includes('github.')) {\n if (pathname.split('/').length === 3) {\n // it's a repo url\n const {\n description,\n html_url,\n name,\n stargazers_count,\n language,\n license, // { name }\n } = await (\n await fetch(`https://api.github.com/repos${pathname}`)\n ).json();\n\n print(`{gr}Github{/} ${description || name} ${IRC.colors.nick(language, false)} {y}★{/} {bo}${stargazers_count}{/} {dgr}${license ? license.name : ''}{/}`);\n return true;\n }\n } \n if (hostname.includes('instagram.')) {\n // https://git.sr.ht/~cadence/bibliogram-docs/tree/master/docs/Instances.md\n const id = pathname.match(/\\/([A-Za-z-0-9]{11})/);\n if (id) {\n const page = await (await fetch(`https://bibliogram.1d4.us/p/${id[1]}`)).text();\n setDOM(page);\n const text = document.querySelector('.structured-text').textContent;\n const name = document.querySelector('.name').textContent;\n const image = document.querySelector('.sized-image');\n\n let output = `{bo}Instagram{/} {c}${name}{/} ${text.replace(/\\s+/g, ' ')}`;\n print(output);\n }\n return true;\n }\n if (hostname.includes('twitter.')) {\n const id = pathname.match(/status\\/(\\d+)/);\n if (id) {\n const page = await (await fetch(`https://nitter.net/_/status/${id[1]}#m`)).text();\n setDOM(page);\n const maintweet = document.querySelector('.main-tweet');\n const name = maintweet.querySelector('.fullname').textContent;\n const user = maintweet.querySelector('.username').textContent;\n const image = maintweet.querySelector('.still-image img');\n const tweet = maintweet.querySelector('.tweet-content').textContent.replace(/\\s+/g, ' ');\n let output = `{bo}${name}{/} {c}${user}{/} ${tweet}`;\n if (image) {\n output += ' ' + IRC.colors.link(`https://nitter.net${image.getAttribute('src').replace(/%3Fname.+/, '')}`);\n }\n print(output);\n\n return true;\n }\n }\n}" } \ No newline at end of file diff --git a/commands/eventhexcolours-f73ec85888e9.json b/commands/eventhexcolours-f73ec85888e9.json index 0bd3aad..10312ae 100644 --- a/commands/eventhexcolours-f73ec85888e9.json +++ b/commands/eventhexcolours-f73ec85888e9.json @@ -3,5 +3,5 @@ "locked": false, "starred": false, "name": "event.hexcolours", - "command": "const name = require('hex-to-color-name');\n\nconst map = {\n red: 'FF0000',\n darkred: '800000',\n white: 'FFFFFF',\n black: '000000',\n rebeccablack: '221133',\n cyan: '00FFFF',\n darkcyan: '008080',\n blue: '0000FF',\n darkblue: '000080',\n green: '00FF00',\n darkgreen: '008000',\n magenta: 'FF00FF',\n purple: '800080',\n rebeccapurple: '663399',\n orange: 'FFA500',\n brown: '964B00',\n yellow: 'FFFF00',\n grey: 'AAAAAA',\n darkgrey: '666666',\n};\nconst lookup = {\n red: 'r',\n darkred: 'dr',\n white: 'w',\n black: 'bl',\n rebeccablack: 'bl',\n cyan: 'c',\n darkcyan: 'dc',\n blue: 'b',\n darkblue: 'db',\n green: 'g',\n darkgreen: 'dg',\n magenta: 'p',\n purple: 'dp',\n rebeccapurple: 'dp',\n orange: 'o',\n brown: 'o',\n yellow: 'y',\n grey: 'gr',\n darkgrey: 'dgr',\n};\n\nconst rx = /#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})/;\n\nIRC.listen('message', (event) => {\n if (rx.test(event.message.text)) {\n let [hex] = event.message.text.match(rx);\n if (hex.length === 4) {\n hex = `#${[...hex.slice(1)].map(d=>d+d).join``}`\n }\n const color = name(hex, map);\n print(`{${lookup[color]}}${color}`);\n }\n});\n" + "command": "const name = require('hex-to-color-name');\n\nconst map = {\n red: 'FF0000',\n darkred: '800000',\n white: 'FFFFFF',\n black: '000000',\n cyan: '00FFFF',\n darkcyan: '008080',\n blue: '0000FF',\n darkblue: '000080',\n green: '00FF00',\n darkgreen: '008000',\n magenta: 'FF00FF',\n purple: '800080',\n rebeccapurple: '663399',\n orange: 'FFA500',\n brown: '964B00',\n yellow: 'FFFF00',\n grey: 'AAAAAA',\n darkgrey: '666666',\n};\nconst lookup = {\n red: 'r',\n darkred: 'dr',\n white: 'w',\n black: 'bl',\n cyan: 'c',\n darkcyan: 'dc',\n blue: 'b',\n darkblue: 'db',\n green: 'g',\n darkgreen: 'dg',\n magenta: 'p',\n purple: 'dp',\n rebeccapurple: 'dp',\n orange: 'o',\n brown: 'o',\n yellow: 'y',\n grey: 'gr',\n darkgrey: 'dgr',\n};\n\nconst rx = /#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})/;\n\nIRC.listen('message', (event) => {\n if (rx.test(event.message.text)) {\n let [hex] = event.message.text.match(rx);\n if (hex.length === 4) {\n hex = `#${[...hex.slice(1)].map(d=>d+d).join``}`\n }\n const color = name(hex, map);\n print(`{${lookup[color]}}${color}`);\n }\n});\n" } \ No newline at end of file diff --git a/commands/eventmemo-84d5d58f85cc.json b/commands/eventmemo-84d5d58f85cc.json index 3fc8c26..e5e5c1c 100644 --- a/commands/eventmemo-84d5d58f85cc.json +++ b/commands/eventmemo-84d5d58f85cc.json @@ -3,5 +3,5 @@ "locked": false, "starred": false, "name": "event.memo", - "command": "IRC.listen('message', ({ target, server, message: { from, isPM, text } }) => {\n if (text.startsWith(IRC.trigger)) return;\n\n const print = globalThis.print;\n IRC.setNamespace('memo');\n SQL.async.many`\n SELECT \"from\", \"to\", time, message FROM memo \n WHERE LOWER(\"to\") = LOWER(${from})\n AND server = ${server}\n AND (${String(+isPM)} OR channel = ${target} OR channel IS NULL) \n `.then((messages) => {\n if (messages.length === 1) {\n const msg = messages[0];\n print(`${msg.to}: ${IRC.colors.nick(msg.from, true)} ${msg.message}`);\n } else if (messages.length > 1) {\n const list = messages.map(({ from, message, time }) => `${time} <${from}> ${message}`).join('\\n');\n IRC.require('module.paste').async(list)\n .then(url => {\n print(`${from}: you have {o}${messages.length}{/} messages ${url}`);\n }).catch(() => {});\n }\n\n if (messages.length > 0) {\n IRC.setNamespace('memo');\n SQL.async.run`\n DELETE FROM memo\n WHERE LOWER(\"to\") = LOWER(${from})\n AND server = ${server}\n AND (${String(+isPM)} OR channel = ${target} OR channel IS NULL) \n `.catch(print.error);\n }\n }).catch(print.error);\n\n}, { filter: () => IRC.queryConfig('enableMemo', false) })\n\nIRC.setNamespace('memo');\nif (!SQL.one`SELECT 1 FROM sqlite_master WHERE name='memo'`) {\n SQL.exec`\n DROP TABLE IF EXISTS memo;\n\n CREATE TABLE memo (\n key INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE,\n \"from\" VARCHAR (100),\n \"to\" VARCHAR (100),\n server TEXT,\n channel TEXT,\n message TEXT,\n time DATETIME DEFAULT ((DATETIME(CURRENT_TIMESTAMP, 'LOCALTIME')))\n );\n\n CREATE INDEX idx_to\n ON memo ('to');\n `;\n}" + "command": "const dateFns = require('date-fns@1.30.1');\n\nIRC.listen('message', ({ target, server, message: { from, isPM, text } }) => {\n if (text.startsWith(IRC.trigger)) return;\n\n const print = globalThis.print;\n IRC.setNamespace('memo');\n SQL.async.many`\n SELECT \"from\", \"to\", time, message FROM memo \n WHERE LOWER(\"to\") = LOWER(${from})\n AND server = ${server}\n AND (${String(+isPM)} OR channel = ${target} OR channel IS NULL) \n `.then((messages) => {\n if (messages.length === 1) {\n const msg = messages[0];\n print(`${msg.to}: ${IRC.colors.nick(msg.from, true)} ${msg.message} {/}({dc}${dateFns.distanceInWordsStrict(msg.time, new Date())} ago{/})`);\n } else if (messages.length > 1) {\n const list = messages.map(({ from, message, time }) => `${time} <${from}> ${message}`).join('\\n');\n IRC.require('module.paste').async(list)\n .then(url => {\n print(`${from}: you have {o}${messages.length}{/} messages ${url}`);\n }).catch(() => {});\n }\n\n if (messages.length > 0) {\n IRC.setNamespace('memo');\n SQL.async.run`\n DELETE FROM memo\n WHERE LOWER(\"to\") = LOWER(${from})\n AND server = ${server}\n AND (${String(+isPM)} OR channel = ${target} OR channel IS NULL) \n `.catch(print.error);\n }\n }).catch(print.error);\n\n}, { filter: () => IRC.queryConfig('enableMemo', false) })\n\nIRC.setNamespace('memo');\nif (!SQL.one`SELECT 1 FROM sqlite_master WHERE name='memo'`) {\n SQL.exec`\n DROP TABLE IF EXISTS memo;\n\n CREATE TABLE memo (\n key INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE,\n \"from\" VARCHAR (100),\n \"to\" VARCHAR (100),\n server TEXT,\n channel TEXT,\n message TEXT,\n time DATETIME DEFAULT ((DATETIME(CURRENT_TIMESTAMP, 'LOCALTIME')))\n );\n\n CREATE INDEX idx_to\n ON memo ('to');\n `;\n}" } \ No newline at end of file diff --git a/commands/npset-ac56a02b298f.json b/commands/npset-ac56a02b298f.json new file mode 100644 index 0000000..d2f1164 --- /dev/null +++ b/commands/npset-ac56a02b298f.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "np.set", + "command": "IRC.require('lfm.set')" +} \ No newline at end of file diff --git a/commands/sponge-7089ef2380b9.json b/commands/sponge-7089ef2380b9.json new file mode 100644 index 0000000..2c4ee13 --- /dev/null +++ b/commands/sponge-7089ef2380b9.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "sponge", + "command": "print([...input].map(d => (Math.random()-.5)>0?d.toUpperCase():d).join``)" +} \ No newline at end of file diff --git a/commands/test3-201130ad3c78.json b/commands/test3-201130ad3c78.json new file mode 100644 index 0000000..1e7b991 --- /dev/null +++ b/commands/test3-201130ad3c78.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "test3", + "command": "print([...input].map(d => (Math.random()-.5)>0?d.toUpperCase():d).join``)" +} \ No newline at end of file From ca84073638e2d877202fe8cf1c1453404861ee31 Mon Sep 17 00:00:00 2001 From: kirjavascript Date: Mon, 28 Feb 2022 20:50:07 +0100 Subject: [PATCH 18/94] 4.0.2: ensure event system stays alive --- base/index.js | 11 +++++++++++ commands/eventfetchURL-798176d44de4.json | 2 +- irc/events.js | 3 +++ package.json | 2 +- 4 files changed, 16 insertions(+), 2 deletions(-) diff --git a/base/index.js b/base/index.js index b758d5e..b57b6f8 100644 --- a/base/index.js +++ b/base/index.js @@ -41,6 +41,16 @@ new (class Nibblr { }); }; + const checkAliveInterval = setInterval(() => { + this.servers.forEach(node => { + if (node.events.isDisposed) { + console.error(`${node.config.address} was disposed at ${(new Date()).toISOString()}). restarting...`); + node.events.dispose(); + node.createEventManager(); + } + }) + }, 60000); + this.database = new Database(this); this.servers = []; @@ -106,6 +116,7 @@ new (class Nibblr { this.exitHandler = () => { console.log('cleaning up resources...'); + clearInterval(checkAliveInterval); this.webServer && this.webServer.close(); this.servers.forEach(node => { node.dispose(); diff --git a/commands/eventfetchURL-798176d44de4.json b/commands/eventfetchURL-798176d44de4.json index 3717c1b..02b4962 100644 --- a/commands/eventfetchURL-798176d44de4.json +++ b/commands/eventfetchURL-798176d44de4.json @@ -3,5 +3,5 @@ "locked": true, "starred": true, "name": "event.fetchURL", - "command": "const { document, window } = new (jsdom().JSDOM)('');\nconst anchor = document.createElement('a');\nconst bytes = IRC.require('bytes');\n\nfunction setDOM(page) {\n document.open();\n document.write(page);\n document.close();\n};\n\nfunction domTitle() {\n const metaTitle = document.head.querySelector('meta[name=\"title\"]');\n return metaTitle ? metaTitle.content : document.title;\n}\n\nconst filterWords = /cloudflare|forbidden|not found|access restricted|access denied|your browser|rick roll|never gonna give you up|log in/i;\n\nfunction hasInfo(url, _title) {\n const title = _title.replace(/\\s+/g, ' ').trim();\n const isFresh = title.split(' ')\n .filter(word => (\n !(new RegExp(word.replace(/[^.a-zA-Z0-9\\u00c0-\\u017e]+/g, ''), 'i')).test(url)\n )).length >= 1;\n return isFresh;\n}\n\nIRC.listen('message', event => {\n if (!IRC.queryConfig('fetchURL', true)) return;\n const { text, from } = event.message;\n const urls = text.match(/(\\b(https?):\\/\\/[-A-Z0-9+&@#\\/%?=~_|!:,.;()]*[-A-Z0-9+&@#\\/%=~_|()])/ig);\n const fromSelf = from === IRC.nick;\n if (!urls || fromSelf || text.startsWith(IRC.trigger) || text.includes('##')) return;\n\n urls.slice(0, 2).forEach(url => {\n handleURL(url, global.print)\n // .catch(print.error);\n });\n});\n\nasync function handleURL(url, print) {\n anchor.setAttribute('href', url);\n if (await customURL(url, print)) return;\n\n const res = await fetch(url, {\n headers: {\n 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',\n 'Accept-Language': 'en-GB,en;q=0.5',\n 'Content-Language': 'en-GB,en;q=0.5',\n 'User-Agent': /youtu\\.?be|google|reddit/.test(url) ? '' : 'Googlebot',\n },\n });\n\n const length = res.headers.get('content-length');\n\n if (length > 5.243e6) {\n const filename = anchor.pathname.split('/').pop();\n print.info(`{dc}${filename}{/} ${bytes(length)} {dgr}${res.headers.get('content-type')}{/}`);\n return;\n }\n\n const page = await res.text();\n setDOM(page);\n\n const title = domTitle();\n\n if (\n title.length \n && title.length < 400 \n && !filterWords.test(title)\n && (IRC.queryConfig('fetchURLAll', false) || hasInfo(url, title))) {\n print.info(title);\n }\n\n}\n\nasync function customURL(url, print) {\n // https://github.com/mendel5/alternative-front-ends\n const { hostname, pathname } = anchor;\n if (hostname.includes('reddit.')) {\n const jsonURL = url.replace(/(\\/?)(\\?.*)?(#.*)?$/, '/.json');\n const json = await(await fetch(jsonURL)).json();\n const data = json?.[0]?.data?.children?.[0]?.data;\n if (data) {\n const url = data?.secure_media?.reddit_video?.fallback_url?.replace('?source=fallback', '') || data.url;\n if (url) {\n print(`{c}Reddit{/} ${data.title} ${IRC.colors.link(url)}`);\n return true;\n }\n }\n // todo\n// print(`{u}{dc}${fetchSync.json(`${input}/.json`)[0].data.children[0].data.secure_media.reddit_video.fallback_url}`);\n return true; \n }\n if (hostname.includes('youtube.') || hostname === 'youtu.be') {\n try {\n const json = await (await fetch(`https://www.youtube.com/oembed?url=${encodeURI(url)}&format=json`)).json();\n const {\n title, author_name,\n } = json;\n print(`{r}YouTube{/} {c}${author_name}{/} ${title}`);\n return true;\n } catch (e) { }\n // url.match(/(?!v=|v\\/|\\.be\\/|watch\\/)([0-9a-z\\-_]{11})/i);\n }\n if (hostname.includes('github.')) {\n if (pathname.split('/').length === 3) {\n // it's a repo url\n const {\n description,\n html_url,\n name,\n stargazers_count,\n language,\n license, // { name }\n } = await (\n await fetch(`https://api.github.com/repos${pathname}`)\n ).json();\n\n print(`{gr}Github{/} ${description || name} ${IRC.colors.nick(language, false)} {y}★{/} {bo}${stargazers_count}{/} {dgr}${license ? license.name : ''}{/}`);\n return true;\n }\n } \n if (hostname.includes('instagram.')) {\n // https://git.sr.ht/~cadence/bibliogram-docs/tree/master/docs/Instances.md\n const id = pathname.match(/\\/([A-Za-z-0-9]{11})/);\n if (id) {\n const page = await (await fetch(`https://bibliogram.1d4.us/p/${id[1]}`)).text();\n setDOM(page);\n const text = document.querySelector('.structured-text').textContent;\n const name = document.querySelector('.name').textContent;\n const image = document.querySelector('.sized-image');\n\n let output = `{bo}Instagram{/} {c}${name}{/} ${text.replace(/\\s+/g, ' ')}`;\n print(output);\n }\n return true;\n }\n if (hostname.includes('twitter.')) {\n const id = pathname.match(/status\\/(\\d+)/);\n if (id) {\n const page = await (await fetch(`https://nitter.net/_/status/${id[1]}#m`)).text();\n setDOM(page);\n const maintweet = document.querySelector('.main-tweet');\n const name = maintweet.querySelector('.fullname').textContent;\n const user = maintweet.querySelector('.username').textContent;\n const image = maintweet.querySelector('.still-image img');\n const tweet = maintweet.querySelector('.tweet-content').textContent.replace(/\\s+/g, ' ');\n let output = `{bo}${name}{/} {c}${user}{/} ${tweet}`;\n if (image) {\n output += ' ' + IRC.colors.link(`https://nitter.net${image.getAttribute('src').replace(/%3Fname.+/, '')}`);\n }\n print(output);\n\n return true;\n }\n }\n}" + "command": "const { document, window } = new (jsdom().JSDOM)('');\nconst anchor = document.createElement('a');\nconst bytes = IRC.require('bytes');\n\nfunction setDOM(page) {\n document.open();\n document.write(page);\n document.close();\n};\n\nfunction domTitle() {\n const metaTitle = document.head.querySelector('meta[name=\"title\"]');\n return metaTitle ? metaTitle.content : document.title;\n}\n\nconst filterWords = /cloudflare|forbidden|not found|access restricted|access denied|your browser|rick roll|never gonna give you up|log in/i;\n\nfunction hasInfo(url, _title) {\n const title = _title.replace(/\\s+/g, ' ').trim();\n const isFresh = title.split(' ')\n .filter(word => (\n !(new RegExp(word.replace(/[^.a-zA-Z0-9\\u00c0-\\u017e]+/g, ''), 'i')).test(url)\n )).length >= 1;\n return isFresh;\n}\n\nIRC.listen('message', event => {\n if (!IRC.queryConfig('fetchURL', true)) return;\n const { text, from } = event.message;\n const urls = text.match(/(\\b(https?):\\/\\/[-A-Z0-9+&@#\\/%?=~_|!:,.;()]*[-A-Z0-9+&@#\\/%=~_|()])/ig);\n const fromSelf = from === IRC.nick;\n if (!urls || fromSelf || text.startsWith(IRC.trigger) || text.includes('##')) return;\n\n urls.slice(0, 2).forEach(url => {\n handleURL(url, global.print)\n // .catch(print.error);\n });\n});\n\nasync function handleURL(url, print) {\n anchor.setAttribute('href', url);\n if (await customURL(url, print)) return;\n\n const res = await fetch(url, {\n headers: {\n 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',\n 'Accept-Language': 'en-GB,en;q=0.5',\n 'Content-Language': 'en-GB,en;q=0.5',\n 'User-Agent': /youtu\\.?be|google|reddit/.test(url) ? '' : 'Googlebot',\n },\n });\n\n const length = res.headers.get('content-length');\n\n if (length > 5.243e6) {\n const filename = anchor.pathname.split('/').pop();\n print.info(`{dc}${filename}{/} ${bytes(length)} {dgr}${res.headers.get('content-type')}{/}`);\n return;\n }\n\n const page = await res.text();\n setDOM(page);\n\n const title = domTitle();\n\n if (\n title.length \n && title.length < 400 \n && !filterWords.test(title)\n && (IRC.queryConfig('fetchURLAll', false) || hasInfo(url, title))) {\n print.info(title);\n }\n\n}\n\nasync function customURL(url, print) {\n // https://github.com/mendel5/alternative-front-ends\n const { hostname, pathname } = anchor;\n if (hostname.includes('reddit.')) {\n const jsonURL = url.replace(/(\\/?)(\\?.*)?(#.*)?$/, '/.json');\n const json = await(await fetch(jsonURL)).json();\n const data = json?.[0]?.data?.children?.[0]?.data;\n if (data) {\n const info = `{c}${data.subreddit_name_prefixed}{/} {o}▲${data.score}{/} ${data.title}`;\n const url = data?.secure_media?.reddit_video?.fallback_url?.replace('?source=fallback', '') || data.url;\n if (data.selftext) {\n print(`${info} ${String(data.selftext).replace(/\\s+/g, ' ').slice(0, 300)}`);\n return true;\n } else if (url) {\n print(`${info} ${IRC.colors.link(url)}`);\n return true;\n }\n }\n return true; \n }\n if (hostname.includes('youtube.') || hostname === 'youtu.be') {\n try {\n const json = await (await fetch(`https://www.youtube.com/oembed?url=${encodeURI(url)}&format=json`)).json();\n const {\n title, author_name,\n } = json;\n print(`{r}YouTube{/} {c}${author_name}{/} ${title}`);\n return true;\n } catch (e) { }\n // url.match(/(?!v=|v\\/|\\.be\\/|watch\\/)([0-9a-z\\-_]{11})/i);\n }\n if (hostname.includes('github.')) {\n if (pathname.split('/').length === 3) {\n // it's a repo url\n const {\n description,\n html_url,\n name,\n stargazers_count,\n language,\n license, // { name }\n } = await (\n await fetch(`https://api.github.com/repos${pathname}`)\n ).json();\n\n print(`{gr}Github{/} ${description || name} ${IRC.colors.nick(language, false)} {y}★{/} {bo}${stargazers_count}{/} {dgr}${license ? license.name : ''}{/}`);\n return true;\n }\n } \n if (hostname.includes('instagram.')) {\n // https://git.sr.ht/~cadence/bibliogram-docs/tree/master/docs/Instances.md\n const id = pathname.match(/\\/([A-Za-z-0-9]{11})/);\n if (id) {\n const page = await (await fetch(`https://bibliogram.1d4.us/p/${id[1]}`)).text();\n setDOM(page);\n const text = document.querySelector('.structured-text').textContent;\n const name = document.querySelector('.name').textContent;\n const image = document.querySelector('.sized-image');\n\n let output = `{bo}Instagram{/} {c}${name}{/} ${text.replace(/\\s+/g, ' ')}`;\n print(output);\n }\n return true;\n }\n if (hostname.includes('twitter.')) {\n const id = pathname.match(/status\\/(\\d+)/);\n if (id) {\n const page = await (await fetch(`https://nitter.net/_/status/${id[1]}#m`)).text();\n setDOM(page);\n const maintweet = document.querySelector('.main-tweet');\n const name = maintweet.querySelector('.fullname').textContent;\n const user = maintweet.querySelector('.username').textContent;\n const image = maintweet.querySelector('.still-image img');\n const tweet = maintweet.querySelector('.tweet-content').textContent.replace(/\\s+/g, ' ');\n let output = `{bo}${name}{/} {c}${user}{/} ${tweet}`;\n if (image) {\n output += ' ' + IRC.colors.link(`https://nitter.net${image.getAttribute('src').replace(/%3Fname.+/, '')}`);\n }\n print(output);\n return true;\n }\n }\n // image detection AI\n if (['jpg', 'gif', 'jpeg', 'png'].some(d => url.includes(`.${d}`))) {\n const reqUrl = 'https://api.imagga.com/v2/tags?image_url='+encodeURI(url);\n const json = await (await fetch(reqUrl, {\n headers: { Authorization: 'Basic YWNjX2ZjOWJkMjE5ZGQ1NTVjZTpiYmE4MTU1MTUwM2M4N2IxMmJlZTg4YzY1ZmI2YmM0OA== ' }\n })).json();\n const tags = json.result.tags.filter(tag => tag.confidence >= 65);\n if (tags.length) {\n print(`I'm pretty sure that image contains the following: ${tags.map(tag=>`{g}${tag.tag.en}{/}`).join(', ')}`);\n }\n }\n}" } \ No newline at end of file diff --git a/irc/events.js b/irc/events.js index a80ef0e..e2fbf2c 100644 --- a/irc/events.js +++ b/irc/events.js @@ -167,6 +167,9 @@ function createEventManager(node) { broadcast, reloadEvents, dispose: () => ref.vm.dispose(), + get isDisposed() { + return ref.vm.isolate.isDisposed; + }, }; } diff --git a/package.json b/package.json index b30319e..b075a14 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "version": "4.0.1", + "version": "4.0.2", "engines": { "node": ">=14", "npm": ">=7" From be11df2e6c6026eb3977e9dd42a1af81a7e9f14a Mon Sep 17 00:00:00 2001 From: kirjavascript Date: Sun, 6 Mar 2022 23:34:59 +0100 Subject: [PATCH 19/94] fixed false positives in hex colours --- commands/buttstuff-9dd0f5a25961.json | 7 +++++++ commands/buttstuffForReal-00c79e3a99ae.json | 7 +++++++ commands/event-b306be3528b0.json | 2 +- commands/eventfetchURL-798176d44de4.json | 2 +- commands/eventhexcolours-f73ec85888e9.json | 2 +- commands/fevents-78912a4fd930.json | 6 ------ commands/ts-d16feb88eea3.json | 2 +- 7 files changed, 18 insertions(+), 10 deletions(-) create mode 100644 commands/buttstuff-9dd0f5a25961.json create mode 100644 commands/buttstuffForReal-00c79e3a99ae.json delete mode 100644 commands/fevents-78912a4fd930.json diff --git a/commands/buttstuff-9dd0f5a25961.json b/commands/buttstuff-9dd0f5a25961.json new file mode 100644 index 0000000..397f9a0 --- /dev/null +++ b/commands/buttstuff-9dd0f5a25961.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "buttstuff", + "command": "print(\"Buttstuff.\")" +} \ No newline at end of file diff --git a/commands/buttstuffForReal-00c79e3a99ae.json b/commands/buttstuffForReal-00c79e3a99ae.json new file mode 100644 index 0000000..3514d91 --- /dev/null +++ b/commands/buttstuffForReal-00c79e3a99ae.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "buttstuffForReal", + "command": "print(\"Buttstuff. But for real.\")" +} \ No newline at end of file diff --git a/commands/event-b306be3528b0.json b/commands/event-b306be3528b0.json index 601744d..3684e85 100644 --- a/commands/event-b306be3528b0.json +++ b/commands/event-b306be3528b0.json @@ -3,5 +3,5 @@ "locked": true, "starred": true, "name": "event", - "command": "// Auth example;\n//\n// curl -X POST --data-binary '{\"passcode\":\"demo\"}' -H \"Content-Type: application/json\" http://localhost:8888/api/webhook/test\n\n// const tripcode = require('tripcode');\n\n// IRC.listen('webhook.test', event => {\n// const authed = tripcode(event.body.passcode) === IRC.queryConfig('testCode');\n// print(authed ? 'pass' : 'fail');\n// });\n\nIRC.listen('message', event => {\n if (event.message.text.includes(IRC.nick + ':') && event.message.text.endsWith('?')) {\n print('{g}' + IRC.require('r8ball')());\n }\n});\n\nIRC.listen('tick', () => (\n (new Date).toISOString().slice(5,19)\n \t=== '01-01T00:00:00'\n \t&& print('(*⌒∇⌒*) //// 🎉 {rb}happy new year')\n));\n\nconst faces = [ '(◕ᴗ◕✿)', '(◕◡◕✿)', '(◔◡◔✿)', '(。◕‿◕。✿)', '(◡‿◡✿)', '(◠‿◠✿)', '(◕ܫ◕✿)', '(◕▿◕✿)', '(◕ ワ ◕✿)' ];\nIRC.listen('message', ({ message: { from, text } }) => {\n if (text.includes('❤')) {\n print(' '.repeat(text.indexOf('❤')) + ' ⟍' +faces[0|Math.random()*faces.length]);\n }\n});\n\nIRC.listen('message', (event) => {\n if (event.target === '#8bitvape'){\n \tif (event.message.text.includes('donk')) print('donk'); \n \telse if (event.message.text.includes('dongers')) print(\"{p}ヽ༼ຈل͜ຈ༽ノ {r}raise your dongers {p}ヽ༼ຈل͜ຈ༽ノ\") \n else if (/\\bi\\b/i.test(event.message.text) && (0|Math.random()*100)===0) IRC.require('command.random');\n } \n});\n\nIRC.listen('message', (event) => {\n if (event.message.from.toLowerCase() === 'lambdacomplex' && /\\begg\\b/.test(event.message.text))\n IRC.require('evilegg');\n});\n\n\nconst daily = () => 25200 === (0|new Date/1000)%86400;\n\nconst hourly = () => 420 === (0|new Date/1000)%3600;\n\nIRC.listen('tick', ({ target }) => {\n if (target === '#8bitvape') {\n \tif (daily()) IRC.require('7');\n else if (hourly()) print('7');\n }\n});\n\nIRC.listen('tick', ({ target }) => {\n if (target === '#eggchan' && daily()) {\n print('egg');\n }\n});" + "command": "// Auth example;\n//\n// curl -X POST --data-binary '{\"passcode\":\"demo\"}' -H \"Content-Type: application/json\" http://localhost:8888/api/webhook/test\n\n// const tripcode = require('tripcode');\n\n// IRC.listen('webhook.test', event => {\n// const authed = tripcode(event.body.passcode) === IRC.queryConfig('testCode');\n// print(authed ? 'pass' : 'fail');\n// });\n\nIRC.listen('message', event => {\n if (event.message.text.includes(IRC.nick + ':') && event.message.text.endsWith('?')) {\n print('{g}' + IRC.require('r8ball')());\n }\n});\n\nIRC.listen('tick', () => (\n (new Date).toISOString().slice(5,19)\n \t=== '01-01T00:00:00'\n \t&& print('(*⌒∇⌒*) //// 🎉 {rb}happy new year')\n));\n\nconst faces = [ '(◕ᴗ◕✿)', '(◕◡◕✿)', '(◔◡◔✿)', '(。◕‿◕。✿)', '(◡‿◡✿)', '(◠‿◠✿)', '(◕ܫ◕✿)', '(◕▿◕✿)', '(◕ ワ ◕✿)' ];\nIRC.listen('message', ({ message: { from, text } }) => {\n if (text.includes('❤')) {\n print(' '.repeat(text.indexOf('❤')) + ' ⟍' +faces[0|Math.random()*faces.length]);\n }\n});\n\nIRC.listen('message', (event) => {\n if (event.target === '#8bitvape'){\n \tif (event.message.text.includes('donk')) print('donk'); \n \telse if (event.message.text.includes('dongers')) print(\"{p}ヽ༼ຈل͜ຈ༽ノ {r}raise your dongers {p}ヽ༼ຈل͜ຈ༽ノ\") \n else if (/\\bi\\b/i.test(event.message.text) && (0|Math.random()*100)===0) (input=event.message.text, IRC.require('command.random'));\n } \n});\n\nIRC.listen('message', (event) => {\n if (event.message.from.toLowerCase() === 'lambdacomplex' && /\\begg\\b/.test(event.message.text))\n IRC.require('evilegg');\n});\n\n\nconst daily = () => 25200 === (0|new Date/1000)%86400;\n\nconst hourly = () => 420 === (0|new Date/1000)%3600;\n\nIRC.listen('tick', ({ target }) => {\n if (target === '#8bitvape') {\n \tif (daily()) IRC.require('7');\n else if (hourly()) print('7');\n }\n});\n\nIRC.listen('tick', ({ target }) => {\n if (target === '#eggchan' && daily()) {\n print('egg');\n }\n});" } \ No newline at end of file diff --git a/commands/eventfetchURL-798176d44de4.json b/commands/eventfetchURL-798176d44de4.json index 02b4962..2acc3f1 100644 --- a/commands/eventfetchURL-798176d44de4.json +++ b/commands/eventfetchURL-798176d44de4.json @@ -3,5 +3,5 @@ "locked": true, "starred": true, "name": "event.fetchURL", - "command": "const { document, window } = new (jsdom().JSDOM)('');\nconst anchor = document.createElement('a');\nconst bytes = IRC.require('bytes');\n\nfunction setDOM(page) {\n document.open();\n document.write(page);\n document.close();\n};\n\nfunction domTitle() {\n const metaTitle = document.head.querySelector('meta[name=\"title\"]');\n return metaTitle ? metaTitle.content : document.title;\n}\n\nconst filterWords = /cloudflare|forbidden|not found|access restricted|access denied|your browser|rick roll|never gonna give you up|log in/i;\n\nfunction hasInfo(url, _title) {\n const title = _title.replace(/\\s+/g, ' ').trim();\n const isFresh = title.split(' ')\n .filter(word => (\n !(new RegExp(word.replace(/[^.a-zA-Z0-9\\u00c0-\\u017e]+/g, ''), 'i')).test(url)\n )).length >= 1;\n return isFresh;\n}\n\nIRC.listen('message', event => {\n if (!IRC.queryConfig('fetchURL', true)) return;\n const { text, from } = event.message;\n const urls = text.match(/(\\b(https?):\\/\\/[-A-Z0-9+&@#\\/%?=~_|!:,.;()]*[-A-Z0-9+&@#\\/%=~_|()])/ig);\n const fromSelf = from === IRC.nick;\n if (!urls || fromSelf || text.startsWith(IRC.trigger) || text.includes('##')) return;\n\n urls.slice(0, 2).forEach(url => {\n handleURL(url, global.print)\n // .catch(print.error);\n });\n});\n\nasync function handleURL(url, print) {\n anchor.setAttribute('href', url);\n if (await customURL(url, print)) return;\n\n const res = await fetch(url, {\n headers: {\n 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',\n 'Accept-Language': 'en-GB,en;q=0.5',\n 'Content-Language': 'en-GB,en;q=0.5',\n 'User-Agent': /youtu\\.?be|google|reddit/.test(url) ? '' : 'Googlebot',\n },\n });\n\n const length = res.headers.get('content-length');\n\n if (length > 5.243e6) {\n const filename = anchor.pathname.split('/').pop();\n print.info(`{dc}${filename}{/} ${bytes(length)} {dgr}${res.headers.get('content-type')}{/}`);\n return;\n }\n\n const page = await res.text();\n setDOM(page);\n\n const title = domTitle();\n\n if (\n title.length \n && title.length < 400 \n && !filterWords.test(title)\n && (IRC.queryConfig('fetchURLAll', false) || hasInfo(url, title))) {\n print.info(title);\n }\n\n}\n\nasync function customURL(url, print) {\n // https://github.com/mendel5/alternative-front-ends\n const { hostname, pathname } = anchor;\n if (hostname.includes('reddit.')) {\n const jsonURL = url.replace(/(\\/?)(\\?.*)?(#.*)?$/, '/.json');\n const json = await(await fetch(jsonURL)).json();\n const data = json?.[0]?.data?.children?.[0]?.data;\n if (data) {\n const info = `{c}${data.subreddit_name_prefixed}{/} {o}▲${data.score}{/} ${data.title}`;\n const url = data?.secure_media?.reddit_video?.fallback_url?.replace('?source=fallback', '') || data.url;\n if (data.selftext) {\n print(`${info} ${String(data.selftext).replace(/\\s+/g, ' ').slice(0, 300)}`);\n return true;\n } else if (url) {\n print(`${info} ${IRC.colors.link(url)}`);\n return true;\n }\n }\n return true; \n }\n if (hostname.includes('youtube.') || hostname === 'youtu.be') {\n try {\n const json = await (await fetch(`https://www.youtube.com/oembed?url=${encodeURI(url)}&format=json`)).json();\n const {\n title, author_name,\n } = json;\n print(`{r}YouTube{/} {c}${author_name}{/} ${title}`);\n return true;\n } catch (e) { }\n // url.match(/(?!v=|v\\/|\\.be\\/|watch\\/)([0-9a-z\\-_]{11})/i);\n }\n if (hostname.includes('github.')) {\n if (pathname.split('/').length === 3) {\n // it's a repo url\n const {\n description,\n html_url,\n name,\n stargazers_count,\n language,\n license, // { name }\n } = await (\n await fetch(`https://api.github.com/repos${pathname}`)\n ).json();\n\n print(`{gr}Github{/} ${description || name} ${IRC.colors.nick(language, false)} {y}★{/} {bo}${stargazers_count}{/} {dgr}${license ? license.name : ''}{/}`);\n return true;\n }\n } \n if (hostname.includes('instagram.')) {\n // https://git.sr.ht/~cadence/bibliogram-docs/tree/master/docs/Instances.md\n const id = pathname.match(/\\/([A-Za-z-0-9]{11})/);\n if (id) {\n const page = await (await fetch(`https://bibliogram.1d4.us/p/${id[1]}`)).text();\n setDOM(page);\n const text = document.querySelector('.structured-text').textContent;\n const name = document.querySelector('.name').textContent;\n const image = document.querySelector('.sized-image');\n\n let output = `{bo}Instagram{/} {c}${name}{/} ${text.replace(/\\s+/g, ' ')}`;\n print(output);\n }\n return true;\n }\n if (hostname.includes('twitter.')) {\n const id = pathname.match(/status\\/(\\d+)/);\n if (id) {\n const page = await (await fetch(`https://nitter.net/_/status/${id[1]}#m`)).text();\n setDOM(page);\n const maintweet = document.querySelector('.main-tweet');\n const name = maintweet.querySelector('.fullname').textContent;\n const user = maintweet.querySelector('.username').textContent;\n const image = maintweet.querySelector('.still-image img');\n const tweet = maintweet.querySelector('.tweet-content').textContent.replace(/\\s+/g, ' ');\n let output = `{bo}${name}{/} {c}${user}{/} ${tweet}`;\n if (image) {\n output += ' ' + IRC.colors.link(`https://nitter.net${image.getAttribute('src').replace(/%3Fname.+/, '')}`);\n }\n print(output);\n return true;\n }\n }\n // image detection AI\n if (['jpg', 'gif', 'jpeg', 'png'].some(d => url.includes(`.${d}`))) {\n const reqUrl = 'https://api.imagga.com/v2/tags?image_url='+encodeURI(url);\n const json = await (await fetch(reqUrl, {\n headers: { Authorization: 'Basic YWNjX2ZjOWJkMjE5ZGQ1NTVjZTpiYmE4MTU1MTUwM2M4N2IxMmJlZTg4YzY1ZmI2YmM0OA== ' }\n })).json();\n const tags = json.result.tags.filter(tag => tag.confidence >= 65);\n if (tags.length) {\n print(`I'm pretty sure that image contains the following: ${tags.map(tag=>`{g}${tag.tag.en}{/}`).join(', ')}`);\n }\n }\n}" + "command": "const { document, window } = new (jsdom().JSDOM)('');\nconst anchor = document.createElement('a');\nconst bytes = IRC.require('bytes');\n\nfunction setDOM(page) {\n document.open();\n document.write(page);\n document.close();\n};\n\nfunction domTitle() {\n const metaTitle = document.head.querySelector('meta[name=\"title\"]');\n return metaTitle ? metaTitle.content : document.title;\n}\n\nconst filterWords = /cloudflare|forbidden|not found|access restricted|access denied|your browser|rick roll|never gonna give you up|log in/i;\n\nfunction hasInfo(url, _title) {\n const title = _title.replace(/\\s+/g, ' ').trim();\n const isFresh = title.split(' ')\n .filter(word => (\n !(new RegExp(word.replace(/[^.a-zA-Z0-9\\u00c0-\\u017e]+/g, ''), 'i')).test(url)\n )).length >= 1;\n return isFresh;\n}\n\nIRC.listen('message', event => {\n if (!IRC.queryConfig('fetchURL', true)) return;\n const { text, from } = event.message;\n const urls = text.match(/(\\b(https?):\\/\\/[-A-Z0-9+&@#\\/%?=~_|!:,.;()]*[-A-Z0-9+&@#\\/%=~_|()])/ig);\n const fromSelf = from === IRC.nick;\n if (!urls || fromSelf || text.startsWith(IRC.trigger) || text.includes('##')) return;\n\n urls.slice(0, 2).forEach(url => {\n handleURL(url, global.print)\n // .catch(print.error);\n });\n});\n\nasync function handleURL(url, print) {\n anchor.setAttribute('href', url);\n if (await customURL(url, print)) return;\n\n const res = await fetch(url, {\n headers: {\n 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',\n 'Accept-Language': 'en-GB,en;q=0.5',\n 'Content-Language': 'en-GB,en;q=0.5',\n 'User-Agent': /youtu\\.?be|google|reddit/.test(url) ? '' : 'Googlebot',\n },\n });\n\n const length = res.headers.get('content-length');\n\n if (length > 5.243e6) {\n const filename = anchor.pathname.split('/').pop();\n print.info(`{dc}${filename}{/} ${bytes(length)} {dgr}${res.headers.get('content-type')}{/}`);\n return;\n }\n\n const page = await res.text();\n setDOM(page);\n\n const title = domTitle();\n\n if (\n title.length \n && title.length < 400 \n && !filterWords.test(title)\n && (IRC.queryConfig('fetchURLAll', false) || hasInfo(url, title))) {\n print.info(title);\n }\n\n}\n\nasync function customURL(url, print) {\n // https://github.com/mendel5/alternative-front-ends\n const { hostname, pathname } = anchor;\n if (hostname.includes('reddit.')) {\n const jsonURL = url.replace(/(\\/?)(\\?.*)?(#.*)?$/, '/.json');\n const json = await(await fetch(jsonURL)).json();\n const data = json?.[0]?.data?.children?.[0]?.data;\n if (data) {\n const info = `{c}${data.subreddit_name_prefixed}{/} {o}▲${data.score}{/} ${data.title}`;\n const url = data?.secure_media?.reddit_video?.fallback_url?.replace('?source=fallback', '') || data.url;\n if (data.selftext) {\n print(`${info} ${String(data.selftext).replace(/\\s+/g, ' ').slice(0, 300)}`);\n return true;\n } else if (url) {\n print(`${info} ${IRC.colors.link(url)}`);\n return true;\n }\n }\n return true; \n }\n if (hostname.includes('youtube.') || hostname === 'youtu.be') {\n try {\n const json = await (await fetch(`https://www.youtube.com/oembed?url=${encodeURI(url)}&format=json`)).json();\n const {\n title, author_name,\n } = json;\n print(`{r}YouTube{/} {c}${author_name}{/} ${title}`);\n return true;\n } catch (e) { }\n // url.match(/(?!v=|v\\/|\\.be\\/|watch\\/)([0-9a-z\\-_]{11})/i);\n }\n if (hostname.includes('github.')) {\n if (pathname.split('/').length === 3) {\n // it's a repo url\n const {\n description,\n html_url,\n name,\n stargazers_count,\n language,\n license, // { name }\n } = await (\n await fetch(`https://api.github.com/repos${pathname}`)\n ).json();\n\n print(`{gr}Github{/} ${description || name} ${IRC.colors.nick(language, false)} {y}★{/} {bo}${stargazers_count}{/} {dgr}${license ? license.name : ''}{/}`);\n return true;\n }\n } \n if (hostname.includes('instagram.')) {\n // https://git.sr.ht/~cadence/bibliogram-docs/tree/master/docs/Instances.md\n const id = pathname.match(/\\/([A-Za-z-0-9]{11})/);\n if (id) {\n const page = await (await fetch(`https://bibliogram.1d4.us/p/${id[1]}`)).text();\n setDOM(page);\n const text = document.querySelector('.structured-text').textContent;\n const name = document.querySelector('.name').textContent;\n const image = document.querySelector('.sized-image');\n\n let output = `{bo}Instagram{/} {c}${name}{/} ${text.replace(/\\s+/g, ' ')}`;\n print(output);\n }\n return true;\n }\n if (hostname.includes('twitter.')) {\n const id = pathname.match(/status\\/(\\d+)/);\n if (id) {\n const page = await (await fetch(`https://nitter.net/_/status/${id[1]}#m`)).text();\n setDOM(page);\n const maintweet = document.querySelector('.main-tweet');\n const name = maintweet.querySelector('.fullname').textContent;\n const user = maintweet.querySelector('.username').textContent;\n const image = maintweet.querySelector('.still-image img');\n const tweet = maintweet.querySelector('.tweet-content').textContent.replace(/\\s+/g, ' ');\n let output = `{bo}${name}{/} {c}${user}{/} ${tweet}`;\n if (image) {\n output += ' ' + IRC.colors.link(`https://nitter.net${image.getAttribute('src').replace(/%3Fname.+/, '')}`);\n }\n print(output);\n return true;\n }\n }\n // image detection AI\n if (['jpg', 'gif', 'jpeg', 'png'].some(d => url.includes(`.${d}`))) {\n const reqUrl = 'https://api.imagga.com/v2/tags?image_url='+encodeURI(url);\n const json = await (await fetch(reqUrl, {\n headers: { Authorization: 'Basic YWNjX2ZjOWJkMjE5ZGQ1NTVjZTpiYmE4MTU1MTUwM2M4N2IxMmJlZTg4YzY1ZmI2YmM0OA== ' }\n })).json();\n const tags = json.result.tags.filter(tag => tag.confidence >= 65);\n if (tags.length) {\n print(`I'm pretty sure that image contains the following: ${tags.map(tag=>`{g}${tag.tag.en}{/}`).join(', ')}`);\n } else if (json.result.tags.length) {\n \t//const [tag] = json.result.tags;\n \t//print(`Image may contain: {o}${tag.tag.en}{/} (${0|tag.confidence}% confidence)`);\n }\n }\n}" } \ No newline at end of file diff --git a/commands/eventhexcolours-f73ec85888e9.json b/commands/eventhexcolours-f73ec85888e9.json index 10312ae..210f74d 100644 --- a/commands/eventhexcolours-f73ec85888e9.json +++ b/commands/eventhexcolours-f73ec85888e9.json @@ -3,5 +3,5 @@ "locked": false, "starred": false, "name": "event.hexcolours", - "command": "const name = require('hex-to-color-name');\n\nconst map = {\n red: 'FF0000',\n darkred: '800000',\n white: 'FFFFFF',\n black: '000000',\n cyan: '00FFFF',\n darkcyan: '008080',\n blue: '0000FF',\n darkblue: '000080',\n green: '00FF00',\n darkgreen: '008000',\n magenta: 'FF00FF',\n purple: '800080',\n rebeccapurple: '663399',\n orange: 'FFA500',\n brown: '964B00',\n yellow: 'FFFF00',\n grey: 'AAAAAA',\n darkgrey: '666666',\n};\nconst lookup = {\n red: 'r',\n darkred: 'dr',\n white: 'w',\n black: 'bl',\n cyan: 'c',\n darkcyan: 'dc',\n blue: 'b',\n darkblue: 'db',\n green: 'g',\n darkgreen: 'dg',\n magenta: 'p',\n purple: 'dp',\n rebeccapurple: 'dp',\n orange: 'o',\n brown: 'o',\n yellow: 'y',\n grey: 'gr',\n darkgrey: 'dgr',\n};\n\nconst rx = /#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})/;\n\nIRC.listen('message', (event) => {\n if (rx.test(event.message.text)) {\n let [hex] = event.message.text.match(rx);\n if (hex.length === 4) {\n hex = `#${[...hex.slice(1)].map(d=>d+d).join``}`\n }\n const color = name(hex, map);\n print(`{${lookup[color]}}${color}`);\n }\n});\n" + "command": "const name = require('hex-to-color-name');\n\nconst map = {\n red: 'FF0000',\n darkred: '800000',\n white: 'FFFFFF',\n black: '000000',\n cyan: '00FFFF',\n darkcyan: '008080',\n blue: '0000FF',\n darkblue: '000080',\n green: '00FF00',\n darkgreen: '008000',\n magenta: 'FF00FF',\n purple: '800080',\n rebeccapurple: '663399',\n orange: 'FFA500',\n brown: '964B00',\n yellow: 'FFFF00',\n grey: 'AAAAAA',\n darkgrey: '666666',\n};\nconst lookup = {\n red: 'r',\n darkred: 'dr',\n white: 'w',\n black: 'bl',\n cyan: 'c',\n darkcyan: 'dc',\n blue: 'b',\n darkblue: 'db',\n green: 'g',\n darkgreen: 'dg',\n magenta: 'p',\n purple: 'dp',\n rebeccapurple: 'dp',\n orange: 'o',\n brown: 'o',\n yellow: 'y',\n grey: 'gr',\n darkgrey: 'dgr',\n};\n\nconst rx = /#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})\\b/;\n\nIRC.listen('message', (event) => {\n if (rx.test(event.message.text)) {\n let [hex] = event.message.text.match(rx);\n if (hex.length === 4) {\n hex = `#${[...hex.slice(1)].map(d=>d+d).join``}`\n }\n const color = name(hex, map);\n print(`{${lookup[color]}}${color}`);\n }\n});\n" } \ No newline at end of file diff --git a/commands/fevents-78912a4fd930.json b/commands/fevents-78912a4fd930.json deleted file mode 100644 index 4c96512..0000000 --- a/commands/fevents-78912a4fd930.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "locked": false, - "starred": false, - "name": "fevents", - "command": "let lastId = parseInt( store.get('lastId') || 0)\nreturn\nif( IRC.event) {\n let msgs = IRC.log.get(\"\", 5)\n \n for(let msg of msgs) {\n if( msg.idx > lastId) {\n lastId = msg.idx\n \n if( msg.user !== IRC.nick && msg.message[0] !== IRC.trigger) {\n print( eval( msg.message))\n }\n }\n }\n \n store.set( 'lastId', lastId)\n} else {\n now = new Date()\n\n for(let count=0; count<5; count++) {\n \n now.setSeconds( now.getSeconds()+1)\n\n IRC.eventFns.addEvent( 'tick', {\n callback: 'evcalc',\n time: new Date(now),\n message: 'herp',\n target: 'Buck'\n })\n }\n}\n\n" -} \ No newline at end of file diff --git a/commands/ts-d16feb88eea3.json b/commands/ts-d16feb88eea3.json index 29bb0da..6b9a5e2 100644 --- a/commands/ts-d16feb88eea3.json +++ b/commands/ts-d16feb88eea3.json @@ -2,5 +2,5 @@ "locked": false, "starred": false, "name": "ts", - "command": "const { transform } = require('@babel/standalone');\nconst { code, map, ast } = transform(input, {\n plugins: [\n require('@babel/plugin-transform-typescript'),\n ],\n});\nlog((0, eval)(code));" + "command": "Object.assign(global, require('buffer'));\nconst { transform } = require('@babel/standalone');\nconst { code, map, ast } = transform(input, {\n plugins: [\n require('@babel/plugin-transform-typescript'),\n ],\n});\nlog((0, eval)(code));" } \ No newline at end of file From 7b8bade83d6db8417349fd2812463717a2337250 Mon Sep 17 00:00:00 2001 From: kirjavascript Date: Mon, 7 Mar 2022 23:39:42 +0100 Subject: [PATCH 20/94] cleaned up image recog, added sandcat --- commands/eventfetchURL-798176d44de4.json | 2 +- commands/sandcat-602a100491f3.json | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 commands/sandcat-602a100491f3.json diff --git a/commands/eventfetchURL-798176d44de4.json b/commands/eventfetchURL-798176d44de4.json index 2acc3f1..091d499 100644 --- a/commands/eventfetchURL-798176d44de4.json +++ b/commands/eventfetchURL-798176d44de4.json @@ -3,5 +3,5 @@ "locked": true, "starred": true, "name": "event.fetchURL", - "command": "const { document, window } = new (jsdom().JSDOM)('');\nconst anchor = document.createElement('a');\nconst bytes = IRC.require('bytes');\n\nfunction setDOM(page) {\n document.open();\n document.write(page);\n document.close();\n};\n\nfunction domTitle() {\n const metaTitle = document.head.querySelector('meta[name=\"title\"]');\n return metaTitle ? metaTitle.content : document.title;\n}\n\nconst filterWords = /cloudflare|forbidden|not found|access restricted|access denied|your browser|rick roll|never gonna give you up|log in/i;\n\nfunction hasInfo(url, _title) {\n const title = _title.replace(/\\s+/g, ' ').trim();\n const isFresh = title.split(' ')\n .filter(word => (\n !(new RegExp(word.replace(/[^.a-zA-Z0-9\\u00c0-\\u017e]+/g, ''), 'i')).test(url)\n )).length >= 1;\n return isFresh;\n}\n\nIRC.listen('message', event => {\n if (!IRC.queryConfig('fetchURL', true)) return;\n const { text, from } = event.message;\n const urls = text.match(/(\\b(https?):\\/\\/[-A-Z0-9+&@#\\/%?=~_|!:,.;()]*[-A-Z0-9+&@#\\/%=~_|()])/ig);\n const fromSelf = from === IRC.nick;\n if (!urls || fromSelf || text.startsWith(IRC.trigger) || text.includes('##')) return;\n\n urls.slice(0, 2).forEach(url => {\n handleURL(url, global.print)\n // .catch(print.error);\n });\n});\n\nasync function handleURL(url, print) {\n anchor.setAttribute('href', url);\n if (await customURL(url, print)) return;\n\n const res = await fetch(url, {\n headers: {\n 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',\n 'Accept-Language': 'en-GB,en;q=0.5',\n 'Content-Language': 'en-GB,en;q=0.5',\n 'User-Agent': /youtu\\.?be|google|reddit/.test(url) ? '' : 'Googlebot',\n },\n });\n\n const length = res.headers.get('content-length');\n\n if (length > 5.243e6) {\n const filename = anchor.pathname.split('/').pop();\n print.info(`{dc}${filename}{/} ${bytes(length)} {dgr}${res.headers.get('content-type')}{/}`);\n return;\n }\n\n const page = await res.text();\n setDOM(page);\n\n const title = domTitle();\n\n if (\n title.length \n && title.length < 400 \n && !filterWords.test(title)\n && (IRC.queryConfig('fetchURLAll', false) || hasInfo(url, title))) {\n print.info(title);\n }\n\n}\n\nasync function customURL(url, print) {\n // https://github.com/mendel5/alternative-front-ends\n const { hostname, pathname } = anchor;\n if (hostname.includes('reddit.')) {\n const jsonURL = url.replace(/(\\/?)(\\?.*)?(#.*)?$/, '/.json');\n const json = await(await fetch(jsonURL)).json();\n const data = json?.[0]?.data?.children?.[0]?.data;\n if (data) {\n const info = `{c}${data.subreddit_name_prefixed}{/} {o}▲${data.score}{/} ${data.title}`;\n const url = data?.secure_media?.reddit_video?.fallback_url?.replace('?source=fallback', '') || data.url;\n if (data.selftext) {\n print(`${info} ${String(data.selftext).replace(/\\s+/g, ' ').slice(0, 300)}`);\n return true;\n } else if (url) {\n print(`${info} ${IRC.colors.link(url)}`);\n return true;\n }\n }\n return true; \n }\n if (hostname.includes('youtube.') || hostname === 'youtu.be') {\n try {\n const json = await (await fetch(`https://www.youtube.com/oembed?url=${encodeURI(url)}&format=json`)).json();\n const {\n title, author_name,\n } = json;\n print(`{r}YouTube{/} {c}${author_name}{/} ${title}`);\n return true;\n } catch (e) { }\n // url.match(/(?!v=|v\\/|\\.be\\/|watch\\/)([0-9a-z\\-_]{11})/i);\n }\n if (hostname.includes('github.')) {\n if (pathname.split('/').length === 3) {\n // it's a repo url\n const {\n description,\n html_url,\n name,\n stargazers_count,\n language,\n license, // { name }\n } = await (\n await fetch(`https://api.github.com/repos${pathname}`)\n ).json();\n\n print(`{gr}Github{/} ${description || name} ${IRC.colors.nick(language, false)} {y}★{/} {bo}${stargazers_count}{/} {dgr}${license ? license.name : ''}{/}`);\n return true;\n }\n } \n if (hostname.includes('instagram.')) {\n // https://git.sr.ht/~cadence/bibliogram-docs/tree/master/docs/Instances.md\n const id = pathname.match(/\\/([A-Za-z-0-9]{11})/);\n if (id) {\n const page = await (await fetch(`https://bibliogram.1d4.us/p/${id[1]}`)).text();\n setDOM(page);\n const text = document.querySelector('.structured-text').textContent;\n const name = document.querySelector('.name').textContent;\n const image = document.querySelector('.sized-image');\n\n let output = `{bo}Instagram{/} {c}${name}{/} ${text.replace(/\\s+/g, ' ')}`;\n print(output);\n }\n return true;\n }\n if (hostname.includes('twitter.')) {\n const id = pathname.match(/status\\/(\\d+)/);\n if (id) {\n const page = await (await fetch(`https://nitter.net/_/status/${id[1]}#m`)).text();\n setDOM(page);\n const maintweet = document.querySelector('.main-tweet');\n const name = maintweet.querySelector('.fullname').textContent;\n const user = maintweet.querySelector('.username').textContent;\n const image = maintweet.querySelector('.still-image img');\n const tweet = maintweet.querySelector('.tweet-content').textContent.replace(/\\s+/g, ' ');\n let output = `{bo}${name}{/} {c}${user}{/} ${tweet}`;\n if (image) {\n output += ' ' + IRC.colors.link(`https://nitter.net${image.getAttribute('src').replace(/%3Fname.+/, '')}`);\n }\n print(output);\n return true;\n }\n }\n // image detection AI\n if (['jpg', 'gif', 'jpeg', 'png'].some(d => url.includes(`.${d}`))) {\n const reqUrl = 'https://api.imagga.com/v2/tags?image_url='+encodeURI(url);\n const json = await (await fetch(reqUrl, {\n headers: { Authorization: 'Basic YWNjX2ZjOWJkMjE5ZGQ1NTVjZTpiYmE4MTU1MTUwM2M4N2IxMmJlZTg4YzY1ZmI2YmM0OA== ' }\n })).json();\n const tags = json.result.tags.filter(tag => tag.confidence >= 65);\n if (tags.length) {\n print(`I'm pretty sure that image contains the following: ${tags.map(tag=>`{g}${tag.tag.en}{/}`).join(', ')}`);\n } else if (json.result.tags.length) {\n \t//const [tag] = json.result.tags;\n \t//print(`Image may contain: {o}${tag.tag.en}{/} (${0|tag.confidence}% confidence)`);\n }\n }\n}" + "command": "const { document, window } = new (jsdom().JSDOM)('');\nconst anchor = document.createElement('a');\nconst bytes = IRC.require('bytes');\n\nfunction setDOM(page) {\n document.open();\n document.write(page);\n document.close();\n};\n\nfunction domTitle() {\n const metaTitle = document.head.querySelector('meta[name=\"title\"]');\n return metaTitle ? metaTitle.content : document.title;\n}\n\nconst filterWords = /cloudflare|forbidden|not found|access restricted|access denied|your browser|rick roll|never gonna give you up|log in/i;\n\nfunction hasInfo(url, _title) {\n const title = _title.replace(/\\s+/g, ' ').trim();\n const isFresh = title.split(' ')\n .filter(word => (\n !(new RegExp(word.replace(/[^.a-zA-Z0-9\\u00c0-\\u017e]+/g, ''), 'i')).test(url)\n )).length >= 1;\n return isFresh;\n}\n\nIRC.listen('message', event => {\n if (!IRC.queryConfig('fetchURL', true)) return;\n const { text, from } = event.message;\n const urls = text.match(/(\\b(https?):\\/\\/[-A-Z0-9+&@#\\/%?=~_|!:,.;()]*[-A-Z0-9+&@#\\/%=~_|()])/ig);\n const fromSelf = from === IRC.nick;\n if (!urls || fromSelf || text.startsWith(IRC.trigger) || text.includes('##')) return;\n\n urls.slice(0, 2).forEach(url => {\n handleURL(url, global.print)\n // .catch(print.error);\n });\n});\n\nasync function handleURL(url, print) {\n anchor.setAttribute('href', url);\n if (await customURL(url, print)) return;\n\n const res = await fetch(url, {\n headers: {\n 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',\n 'Accept-Language': 'en-GB,en;q=0.5',\n 'Content-Language': 'en-GB,en;q=0.5',\n 'User-Agent': /youtu\\.?be|google|reddit/.test(url) ? '' : 'Googlebot',\n },\n });\n\n const length = res.headers.get('content-length');\n\n if (length > 5.243e6) {\n const filename = anchor.pathname.split('/').pop();\n print.info(`{dc}${filename}{/} ${bytes(length)} {dgr}${res.headers.get('content-type')}{/}`);\n return;\n }\n\n const page = await res.text();\n setDOM(page);\n\n const title = domTitle();\n\n if (\n title.length \n && title.length < 400 \n && !filterWords.test(title)\n && (IRC.queryConfig('fetchURLAll', false) || hasInfo(url, title))) {\n print.info(title);\n }\n\n}\n\nasync function customURL(url, print) {\n // https://github.com/mendel5/alternative-front-ends\n const { hostname, pathname } = anchor;\n if (hostname.includes('reddit.')) {\n const jsonURL = url.replace(/(\\/?)(\\?.*)?(#.*)?$/, '/.json');\n const json = await(await fetch(jsonURL)).json();\n const data = json?.[0]?.data?.children?.[0]?.data;\n if (data) {\n const info = `{c}${data.subreddit_name_prefixed}{/} {o}▲${data.score}{/} ${data.title}`;\n const url = data?.secure_media?.reddit_video?.fallback_url?.replace('?source=fallback', '') || data.url;\n if (data.selftext) {\n print(`${info} ${String(data.selftext).replace(/\\s+/g, ' ').slice(0, 300)}`);\n return true;\n } else if (url) {\n print(`${info} ${IRC.colors.link(url)}`);\n return true;\n }\n }\n return true; \n }\n if (hostname.includes('youtube.') || hostname === 'youtu.be') {\n try {\n const json = await (await fetch(`https://www.youtube.com/oembed?url=${encodeURI(url)}&format=json`)).json();\n const {\n title, author_name,\n } = json;\n print(`{r}YouTube{/} {c}${author_name}{/} ${title}`);\n return true;\n } catch (e) { }\n // url.match(/(?!v=|v\\/|\\.be\\/|watch\\/)([0-9a-z\\-_]{11})/i);\n }\n if (hostname.includes('github.')) {\n if (pathname.split('/').length === 3) {\n // it's a repo url\n const {\n description,\n html_url,\n name,\n stargazers_count,\n language,\n license, // { name }\n } = await (\n await fetch(`https://api.github.com/repos${pathname}`)\n ).json();\n\n print(`{gr}Github{/} ${description || name} ${IRC.colors.nick(language, false)} {y}★{/} {bo}${stargazers_count}{/} {dgr}${license ? license.name : ''}{/}`);\n return true;\n }\n } \n if (hostname.includes('instagram.')) {\n // https://git.sr.ht/~cadence/bibliogram-docs/tree/master/docs/Instances.md\n const id = pathname.match(/\\/([A-Za-z-0-9]{11})/);\n if (id) {\n const page = await (await fetch(`https://bibliogram.1d4.us/p/${id[1]}`)).text();\n setDOM(page);\n const text = document.querySelector('.structured-text').textContent;\n const name = document.querySelector('.name').textContent;\n const image = document.querySelector('.sized-image');\n\n let output = `{bo}Instagram{/} {c}${name}{/} ${text.replace(/\\s+/g, ' ')}`;\n print(output);\n }\n return true;\n }\n if (hostname.includes('twitter.')) {\n const id = pathname.match(/status\\/(\\d+)/);\n if (id) {\n const page = await (await fetch(`https://nitter.net/_/status/${id[1]}#m`)).text();\n setDOM(page);\n const maintweet = document.querySelector('.main-tweet');\n const name = maintweet.querySelector('.fullname').textContent;\n const user = maintweet.querySelector('.username').textContent;\n const image = maintweet.querySelector('.still-image img');\n const tweet = maintweet.querySelector('.tweet-content').textContent.replace(/\\s+/g, ' ');\n let output = `{bo}${name}{/} {c}${user}{/} ${tweet}`;\n if (image) {\n output += ' ' + IRC.colors.link(`https://nitter.net${image.getAttribute('src').replace(/%3Fname.+/, '')}`);\n }\n print(output);\n return true;\n }\n }\n // image detection AI\n if (['jpg', 'gif', 'jpeg', 'png'].some(d => url.includes(`.${d}`))) {\n const reqUrl = 'https://api.imagga.com/v2/tags?image_url='+encodeURI(url);\n const json = await (await fetch(reqUrl, {\n headers: { Authorization: 'Basic YWNjX2ZjOWJkMjE5ZGQ1NTVjZTpiYmE4MTU1MTUwM2M4N2IxMmJlZTg4YzY1ZmI2YmM0OA== ' }\n })).json();\n const tags = json.result.tags.filter(tag => tag.confidence >= 65);\n if (tags.length) {\n print('🖼️ 👀 '+tags.map(tag=>`{g}${tag.tag.en}{/}`).join(', '));\n } else if (json.result.tags.length) {\n \t//const [tag] = json.result.tags;\n \t//print(`Image may contain: {o}${tag.tag.en}{/} (${0|tag.confidence}% confidence)`);\n }\n }\n}" } \ No newline at end of file diff --git a/commands/sandcat-602a100491f3.json b/commands/sandcat-602a100491f3.json new file mode 100644 index 0000000..ab56ab4 --- /dev/null +++ b/commands/sandcat-602a100491f3.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "sandcat", + "command": "print(IRC.colors.link(fetchSync.dom('https://display-a.sand.cat/').document.querySelector('img').src))" +} \ No newline at end of file From 4dd9b6716fb40c6c31902f6a0f4b7af1f06321ca Mon Sep 17 00:00:00 2001 From: kirjavascript Date: Thu, 10 Mar 2022 00:36:57 +0100 Subject: [PATCH 21/94] removed empty commands --- commands/brazil-cd000002d4c4.json | 7 +++++++ commands/dice-34d30747b307.json | 6 ------ commands/equinox-592b0f43ab03.json | 7 +++++++ commands/eventfetchURL-798176d44de4.json | 2 +- commands/finga-9c3e72343f98.json | 7 +++++++ commands/hhhhhhhhhhhhhhhhhhhhhhhhh-078ff5ea5634.json | 6 ------ commands/id-413fb2d8c6c0.json | 6 ------ commands/isitnsfw-983bcfda480f.json | 6 ------ commands/lesdar-9f71e4062488.json | 7 +++++++ commands/re-009619cda056.json | 6 ------ commands/rot13-44ab4467cd77.json | 6 ------ commands/salvia-85e9d6e4f86f.json | 6 ------ commands/slot-691a7ec35fb1.json | 6 ------ commands/source-ec77677ff32c.json | 7 +++++++ commands/src-c0d21665f682.json | 7 +++++++ commands/task-8a87d57144c3.json | 6 ------ commands/tasks-e1c1069917b7.json | 6 ------ commands/time-e84cad84a6d3.json | 2 +- commands/trackiss-222033c70d9a.json | 6 ------ commands/warstats-f7b4e3b8f647.json | 7 +++++++ commands/we-f8f640c386a0.json | 6 ------ commands/yeet-3c2a5f82d9e4.json | 6 ------ 22 files changed, 51 insertions(+), 80 deletions(-) create mode 100644 commands/brazil-cd000002d4c4.json delete mode 100644 commands/dice-34d30747b307.json create mode 100644 commands/equinox-592b0f43ab03.json create mode 100644 commands/finga-9c3e72343f98.json delete mode 100644 commands/hhhhhhhhhhhhhhhhhhhhhhhhh-078ff5ea5634.json delete mode 100644 commands/id-413fb2d8c6c0.json delete mode 100644 commands/isitnsfw-983bcfda480f.json create mode 100644 commands/lesdar-9f71e4062488.json delete mode 100644 commands/re-009619cda056.json delete mode 100644 commands/rot13-44ab4467cd77.json delete mode 100644 commands/salvia-85e9d6e4f86f.json delete mode 100644 commands/slot-691a7ec35fb1.json create mode 100644 commands/source-ec77677ff32c.json create mode 100644 commands/src-c0d21665f682.json delete mode 100644 commands/task-8a87d57144c3.json delete mode 100644 commands/tasks-e1c1069917b7.json delete mode 100644 commands/trackiss-222033c70d9a.json create mode 100644 commands/warstats-f7b4e3b8f647.json delete mode 100644 commands/we-f8f640c386a0.json delete mode 100644 commands/yeet-3c2a5f82d9e4.json diff --git a/commands/brazil-cd000002d4c4.json b/commands/brazil-cd000002d4c4.json new file mode 100644 index 0000000..ec08544 --- /dev/null +++ b/commands/brazil-cd000002d4c4.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "brazil", + "command": "print(`https://i.redd.it/vs42ibb3oef51.jpg`)" +} \ No newline at end of file diff --git a/commands/dice-34d30747b307.json b/commands/dice-34d30747b307.json deleted file mode 100644 index 7ac3583..0000000 --- a/commands/dice-34d30747b307.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "locked": false, - "starred": false, - "name": "dice", - "command": "" -} \ No newline at end of file diff --git a/commands/equinox-592b0f43ab03.json b/commands/equinox-592b0f43ab03.json new file mode 100644 index 0000000..86d801f --- /dev/null +++ b/commands/equinox-592b0f43ab03.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "equinox", + "command": "for (y of require(\"solstices-and-equinoxes\")) for (e of [y.spring, y.summer, y.fall, y.winter]) if (new Date(e) > new Date()) return print(require('date-fns@2.28.0').formatDistance(new Date(e), new Date(),{addSuffix:true}));\n" +} \ No newline at end of file diff --git a/commands/eventfetchURL-798176d44de4.json b/commands/eventfetchURL-798176d44de4.json index 091d499..8113e64 100644 --- a/commands/eventfetchURL-798176d44de4.json +++ b/commands/eventfetchURL-798176d44de4.json @@ -3,5 +3,5 @@ "locked": true, "starred": true, "name": "event.fetchURL", - "command": "const { document, window } = new (jsdom().JSDOM)('');\nconst anchor = document.createElement('a');\nconst bytes = IRC.require('bytes');\n\nfunction setDOM(page) {\n document.open();\n document.write(page);\n document.close();\n};\n\nfunction domTitle() {\n const metaTitle = document.head.querySelector('meta[name=\"title\"]');\n return metaTitle ? metaTitle.content : document.title;\n}\n\nconst filterWords = /cloudflare|forbidden|not found|access restricted|access denied|your browser|rick roll|never gonna give you up|log in/i;\n\nfunction hasInfo(url, _title) {\n const title = _title.replace(/\\s+/g, ' ').trim();\n const isFresh = title.split(' ')\n .filter(word => (\n !(new RegExp(word.replace(/[^.a-zA-Z0-9\\u00c0-\\u017e]+/g, ''), 'i')).test(url)\n )).length >= 1;\n return isFresh;\n}\n\nIRC.listen('message', event => {\n if (!IRC.queryConfig('fetchURL', true)) return;\n const { text, from } = event.message;\n const urls = text.match(/(\\b(https?):\\/\\/[-A-Z0-9+&@#\\/%?=~_|!:,.;()]*[-A-Z0-9+&@#\\/%=~_|()])/ig);\n const fromSelf = from === IRC.nick;\n if (!urls || fromSelf || text.startsWith(IRC.trigger) || text.includes('##')) return;\n\n urls.slice(0, 2).forEach(url => {\n handleURL(url, global.print)\n // .catch(print.error);\n });\n});\n\nasync function handleURL(url, print) {\n anchor.setAttribute('href', url);\n if (await customURL(url, print)) return;\n\n const res = await fetch(url, {\n headers: {\n 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',\n 'Accept-Language': 'en-GB,en;q=0.5',\n 'Content-Language': 'en-GB,en;q=0.5',\n 'User-Agent': /youtu\\.?be|google|reddit/.test(url) ? '' : 'Googlebot',\n },\n });\n\n const length = res.headers.get('content-length');\n\n if (length > 5.243e6) {\n const filename = anchor.pathname.split('/').pop();\n print.info(`{dc}${filename}{/} ${bytes(length)} {dgr}${res.headers.get('content-type')}{/}`);\n return;\n }\n\n const page = await res.text();\n setDOM(page);\n\n const title = domTitle();\n\n if (\n title.length \n && title.length < 400 \n && !filterWords.test(title)\n && (IRC.queryConfig('fetchURLAll', false) || hasInfo(url, title))) {\n print.info(title);\n }\n\n}\n\nasync function customURL(url, print) {\n // https://github.com/mendel5/alternative-front-ends\n const { hostname, pathname } = anchor;\n if (hostname.includes('reddit.')) {\n const jsonURL = url.replace(/(\\/?)(\\?.*)?(#.*)?$/, '/.json');\n const json = await(await fetch(jsonURL)).json();\n const data = json?.[0]?.data?.children?.[0]?.data;\n if (data) {\n const info = `{c}${data.subreddit_name_prefixed}{/} {o}▲${data.score}{/} ${data.title}`;\n const url = data?.secure_media?.reddit_video?.fallback_url?.replace('?source=fallback', '') || data.url;\n if (data.selftext) {\n print(`${info} ${String(data.selftext).replace(/\\s+/g, ' ').slice(0, 300)}`);\n return true;\n } else if (url) {\n print(`${info} ${IRC.colors.link(url)}`);\n return true;\n }\n }\n return true; \n }\n if (hostname.includes('youtube.') || hostname === 'youtu.be') {\n try {\n const json = await (await fetch(`https://www.youtube.com/oembed?url=${encodeURI(url)}&format=json`)).json();\n const {\n title, author_name,\n } = json;\n print(`{r}YouTube{/} {c}${author_name}{/} ${title}`);\n return true;\n } catch (e) { }\n // url.match(/(?!v=|v\\/|\\.be\\/|watch\\/)([0-9a-z\\-_]{11})/i);\n }\n if (hostname.includes('github.')) {\n if (pathname.split('/').length === 3) {\n // it's a repo url\n const {\n description,\n html_url,\n name,\n stargazers_count,\n language,\n license, // { name }\n } = await (\n await fetch(`https://api.github.com/repos${pathname}`)\n ).json();\n\n print(`{gr}Github{/} ${description || name} ${IRC.colors.nick(language, false)} {y}★{/} {bo}${stargazers_count}{/} {dgr}${license ? license.name : ''}{/}`);\n return true;\n }\n } \n if (hostname.includes('instagram.')) {\n // https://git.sr.ht/~cadence/bibliogram-docs/tree/master/docs/Instances.md\n const id = pathname.match(/\\/([A-Za-z-0-9]{11})/);\n if (id) {\n const page = await (await fetch(`https://bibliogram.1d4.us/p/${id[1]}`)).text();\n setDOM(page);\n const text = document.querySelector('.structured-text').textContent;\n const name = document.querySelector('.name').textContent;\n const image = document.querySelector('.sized-image');\n\n let output = `{bo}Instagram{/} {c}${name}{/} ${text.replace(/\\s+/g, ' ')}`;\n print(output);\n }\n return true;\n }\n if (hostname.includes('twitter.')) {\n const id = pathname.match(/status\\/(\\d+)/);\n if (id) {\n const page = await (await fetch(`https://nitter.net/_/status/${id[1]}#m`)).text();\n setDOM(page);\n const maintweet = document.querySelector('.main-tweet');\n const name = maintweet.querySelector('.fullname').textContent;\n const user = maintweet.querySelector('.username').textContent;\n const image = maintweet.querySelector('.still-image img');\n const tweet = maintweet.querySelector('.tweet-content').textContent.replace(/\\s+/g, ' ');\n let output = `{bo}${name}{/} {c}${user}{/} ${tweet}`;\n if (image) {\n output += ' ' + IRC.colors.link(`https://nitter.net${image.getAttribute('src').replace(/%3Fname.+/, '')}`);\n }\n print(output);\n return true;\n }\n }\n // image detection AI\n if (['jpg', 'gif', 'jpeg', 'png'].some(d => url.includes(`.${d}`))) {\n const reqUrl = 'https://api.imagga.com/v2/tags?image_url='+encodeURI(url);\n const json = await (await fetch(reqUrl, {\n headers: { Authorization: 'Basic YWNjX2ZjOWJkMjE5ZGQ1NTVjZTpiYmE4MTU1MTUwM2M4N2IxMmJlZTg4YzY1ZmI2YmM0OA== ' }\n })).json();\n const tags = json.result.tags.filter(tag => tag.confidence >= 65);\n if (tags.length) {\n print('🖼️ 👀 '+tags.map(tag=>`{g}${tag.tag.en}{/}`).join(', '));\n } else if (json.result.tags.length) {\n \t//const [tag] = json.result.tags;\n \t//print(`Image may contain: {o}${tag.tag.en}{/} (${0|tag.confidence}% confidence)`);\n }\n }\n}" + "command": "const { document, window } = new (jsdom().JSDOM)('');\nconst anchor = document.createElement('a');\nconst bytes = IRC.require('bytes');\n\nfunction setDOM(page) {\n document.open();\n document.write(page);\n document.close();\n};\n\nfunction domTitle() {\n const metaTitle = document.head.querySelector('meta[name=\"title\"]');\n return metaTitle ? metaTitle.content : document.title;\n}\n\nconst filterWords = /cloudflare|forbidden|not found|access restricted|access denied|your browser|rick roll|never gonna give you up|log in/i;\n\nfunction hasInfo(url, _title) {\n const title = _title.replace(/\\s+/g, ' ').trim();\n const isFresh = title.split(' ')\n .filter(word => (\n !(new RegExp(word.replace(/[^.a-zA-Z0-9\\u00c0-\\u017e]+/g, ''), 'i')).test(url)\n )).length >= 1;\n return isFresh;\n}\n\nIRC.listen('message', event => {\n if (!IRC.queryConfig('fetchURL', true)) return;\n const { text, from } = event.message;\n const urls = text.match(/(\\b(https?):\\/\\/[-A-Z0-9+&@#\\/%?=~_|!:,.;()]*[-A-Z0-9+&@#\\/%=~_|()])/ig);\n const fromSelf = from === IRC.nick;\n if (!urls || fromSelf || text.startsWith(IRC.trigger) || text.includes('##')) return;\n\n urls.slice(0, 2).forEach(url => {\n handleURL(url, global.print)\n // .catch(print.error);\n });\n});\n\nasync function handleURL(url, print) {\n anchor.setAttribute('href', url);\n if (await customURL(url, print)) return;\n\n const res = await fetch(url, {\n headers: {\n 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',\n 'Accept-Language': 'en-GB,en;q=0.5',\n 'Content-Language': 'en-GB,en;q=0.5',\n 'User-Agent': /youtu\\.?be|google|reddit/.test(url) ? '' : 'Googlebot',\n },\n });\n\n const length = res.headers.get('content-length');\n\n if (length > 5.243e6) {\n const filename = anchor.pathname.split('/').pop();\n print.info(`{dc}${filename}{/} ${bytes(length)} {dgr}${res.headers.get('content-type')}{/}`);\n return;\n }\n\n const page = await res.text();\n setDOM(page);\n\n const title = domTitle();\n\n if (\n title.length \n && title.length < 400 \n && !filterWords.test(title)\n && (IRC.queryConfig('fetchURLAll', false) || hasInfo(url, title))) {\n print.info(title);\n }\n\n}\n\nasync function customURL(url, print) {\n // https://github.com/mendel5/alternative-front-ends\n const { hostname, pathname } = anchor;\n if (hostname.includes('reddit.')) {\n const jsonURL = url.replace(/(\\/?)(\\?.*)?(#.*)?$/, '/.json');\n const json = await(await fetch(jsonURL)).json();\n const data = json?.[0]?.data?.children?.[0]?.data;\n if (data) {\n const info = `{c}${data.subreddit_name_prefixed}{/} {o}▲${data.score}{/} ${data.title}`;\n const url = data?.secure_media?.reddit_video?.fallback_url?.replace('?source=fallback', '') || data.url;\n if (data.selftext) {\n print(`${info} ${String(data.selftext).replace(/\\s+/g, ' ').slice(0, 300)}`);\n return true;\n } else if (url) {\n print(`${info} ${IRC.colors.link(url)}`);\n return true;\n }\n }\n return true; \n }\n if (hostname.includes('youtube.') || hostname === 'youtu.be') {\n try {\n const json = await (await fetch(`https://www.youtube.com/oembed?url=${encodeURI(url)}&format=json`)).json();\n const {\n title, author_name,\n } = json;\n print(`{r}YouTube{/} {c}${author_name}{/} ${title}`);\n return true;\n } catch (e) { }\n // url.match(/(?!v=|v\\/|\\.be\\/|watch\\/)([0-9a-z\\-_]{11})/i);\n }\n if (hostname.includes('github.')) {\n if (pathname.split('/').length === 3) {\n // it's a repo url\n const {\n description,\n html_url,\n name,\n stargazers_count,\n language,\n license, // { name }\n } = await (\n await fetch(`https://api.github.com/repos${pathname}`)\n ).json();\n\n print(`{gr}Github{/} ${description || name} ${IRC.colors.nick(language, false)} {y}★{/} {bo}${stargazers_count}{/} {dgr}${license ? license.name : ''}{/}`);\n return true;\n }\n } \n if (hostname.includes('instagram.')) {\n // https://git.sr.ht/~cadence/bibliogram-docs/tree/master/docs/Instances.md\n const id = pathname.match(/\\/([A-Za-z-0-9]{11})/);\n if (id) {\n const page = await (await fetch(`https://bibliogram.1d4.us/p/${id[1]}`)).text();\n setDOM(page);\n const text = document.querySelector('.structured-text').textContent;\n const name = document.querySelector('.name').textContent;\n const image = document.querySelector('.sized-image');\n\n let output = `{bo}Instagram{/} {c}${name}{/} ${text.replace(/\\s+/g, ' ')}`;\n print(output);\n }\n return true;\n }\n if (hostname.includes('twitter.')) {\n const id = pathname.match(/status\\/(\\d+)/);\n if (id) {\n const page = await (await fetch(`https://nitter.net/_/status/${id[1]}#m`)).text();\n setDOM(page);\n const maintweet = document.querySelector('.main-tweet');\n const name = maintweet.querySelector('.fullname').textContent;\n const user = maintweet.querySelector('.username').textContent;\n const image = maintweet.querySelector('.still-image img');\n const tweet = maintweet.querySelector('.tweet-content').textContent.replace(/\\s+/g, ' ');\n let output = `{bo}${name}{/} {c}${user}{/} ${tweet}`;\n if (image) {\n output += ' ' + IRC.colors.link(`https://nitter.net${image.getAttribute('src').replace(/%3Fname.+/, '')}`);\n }\n print(output);\n return true;\n }\n }\n // image detection AI\n if (['jpg', 'gif', 'jpeg', 'png'].some(d => url.includes(`.${d}`))) {\n const reqUrl = 'https://api.imagga.com/v2/tags?image_url='+encodeURI(url);\n const json = await (await fetch(reqUrl, {\n headers: { Authorization: 'Basic YWNjX2ZjOWJkMjE5ZGQ1NTVjZTpiYmE4MTU1MTUwM2M4N2IxMmJlZTg4YzY1ZmI2YmM0OA== ' }\n })).json();\n const tags = json.result.tags.filter(tag => tag.confidence >= 70);\n if (tags.length) {\n print('🖼️ 👀 '+tags.map(tag=>`{g}${tag.tag.en}{/}`).join(', '));\n } else if (json.result.tags.length) {\n \t//const [tag] = json.result.tags;\n \t//print(`Image may contain: {o}${tag.tag.en}{/} (${0|tag.confidence}% confidence)`);\n }\n }\n}" } \ No newline at end of file diff --git a/commands/finga-9c3e72343f98.json b/commands/finga-9c3e72343f98.json new file mode 100644 index 0000000..6c16567 --- /dev/null +++ b/commands/finga-9c3e72343f98.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "finga", + "command": "print(`🖕😳🖕`)" +} \ No newline at end of file diff --git a/commands/hhhhhhhhhhhhhhhhhhhhhhhhh-078ff5ea5634.json b/commands/hhhhhhhhhhhhhhhhhhhhhhhhh-078ff5ea5634.json deleted file mode 100644 index 821eca1..0000000 --- a/commands/hhhhhhhhhhhhhhhhhhhhhhhhh-078ff5ea5634.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "locked": false, - "starred": false, - "name": "hhhhhhhhhhhhhhhhhhhhhhhhh", - "command": "" -} \ No newline at end of file diff --git a/commands/id-413fb2d8c6c0.json b/commands/id-413fb2d8c6c0.json deleted file mode 100644 index 11667a8..0000000 --- a/commands/id-413fb2d8c6c0.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "locked": false, - "starred": false, - "name": "id", - "command": "" -} \ No newline at end of file diff --git a/commands/isitnsfw-983bcfda480f.json b/commands/isitnsfw-983bcfda480f.json deleted file mode 100644 index cd0a2d5..0000000 --- a/commands/isitnsfw-983bcfda480f.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "locked": false, - "starred": false, - "name": "isitnsfw", - "command": "" -} \ No newline at end of file diff --git a/commands/lesdar-9f71e4062488.json b/commands/lesdar-9f71e4062488.json new file mode 100644 index 0000000..a6b3ae1 --- /dev/null +++ b/commands/lesdar-9f71e4062488.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "lesdar", + "command": "const amount = (r=>{var n=1,o=0;for(i=0;i {\n if (typeof s !== 'string') return ''\n return (s.charAt(0).toUpperCase() + s.slice(1)).replace(\" \",\"_\")\n}\n\nlet date = new Date();\nlet tz = aryIannaTimeZones.filter( x => x.includes(capitalize(input)) )[0]\n\nif(!tz){\n print(\"invalid timezone\")\n}else{\n\n print(date.toLocaleString(\"en-US\", {timeZone: `${tz}`}))\n}", + "command": "let aryIannaTimeZones =\n[\n 'Europe/Andorra',\n 'Asia/Dubai',\n 'Asia/Kabul',\n 'Europe/Tirane',\n 'Asia/Yerevan',\n 'Antarctica/Casey',\n 'Antarctica/Davis',\n 'Antarctica/DumontDUrville', // https://bugs.chromium.org/p/chromium/issues/detail?id=928068\n 'Antarctica/Mawson',\n 'Antarctica/Palmer',\n 'Antarctica/Rothera',\n 'Antarctica/Syowa',\n 'Antarctica/Troll',\n 'Antarctica/Vostok',\n 'America/Argentina/Buenos_Aires',\n 'America/Argentina/Cordoba',\n 'America/Argentina/Salta',\n 'America/Argentina/Jujuy',\n 'America/Argentina/Tucuman',\n 'America/Argentina/Catamarca',\n 'America/Argentina/La_Rioja',\n 'America/Argentina/San_Juan',\n 'America/Argentina/Mendoza',\n 'America/Argentina/San_Luis',\n 'America/Argentina/Rio_Gallegos',\n 'America/Argentina/Ushuaia',\n 'Pacific/Pago_Pago',\n 'Europe/Vienna',\n 'Australia/Lord_Howe',\n 'Antarctica/Macquarie',\n 'Australia/Hobart',\n 'Australia/Currie',\n 'Australia/Melbourne',\n 'Australia/Sydney',\n 'Australia/Broken_Hill',\n 'Australia/Brisbane',\n 'Australia/Lindeman',\n 'Australia/Adelaide',\n 'Australia/Darwin',\n 'Australia/Perth',\n 'Australia/Eucla',\n 'Asia/Baku',\n 'America/Barbados',\n 'Asia/Dhaka',\n 'Europe/Brussels',\n 'Europe/Sofia',\n 'Atlantic/Bermuda',\n 'Asia/Brunei',\n 'America/La_Paz',\n 'America/Noronha',\n 'America/Belem',\n 'America/Fortaleza',\n 'America/Recife',\n 'America/Araguaina',\n 'America/Maceio',\n 'America/Bahia',\n 'America/Sao_Paulo',\n 'America/Campo_Grande',\n 'America/Cuiaba',\n 'America/Santarem',\n 'America/Porto_Velho',\n 'America/Boa_Vista',\n 'America/Manaus',\n 'America/Eirunepe',\n 'America/Rio_Branco',\n 'America/Nassau',\n 'Asia/Thimphu',\n 'Europe/Minsk',\n 'America/Belize',\n 'America/St_Johns',\n 'America/Halifax',\n 'America/Glace_Bay',\n 'America/Moncton',\n 'America/Goose_Bay',\n 'America/Blanc-Sablon',\n 'America/Toronto',\n 'America/Nipigon',\n 'America/Thunder_Bay',\n 'America/Iqaluit',\n 'America/Pangnirtung',\n 'America/Atikokan',\n 'America/Winnipeg',\n 'America/Rainy_River',\n 'America/Resolute',\n 'America/Rankin_Inlet',\n 'America/Regina',\n 'America/Swift_Current',\n 'America/Edmonton',\n 'America/Cambridge_Bay',\n 'America/Yellowknife',\n 'America/Inuvik',\n 'America/Creston',\n 'America/Dawson_Creek',\n 'America/Fort_Nelson',\n 'America/Vancouver',\n 'America/Whitehorse',\n 'America/Dawson',\n 'Indian/Cocos',\n 'Europe/Zurich',\n 'Africa/Abidjan',\n 'Pacific/Rarotonga',\n 'America/Santiago',\n 'America/Punta_Arenas',\n 'Pacific/Easter',\n 'Asia/Shanghai',\n 'Asia/Urumqi',\n 'America/Bogota',\n 'America/Costa_Rica',\n 'America/Havana',\n 'Atlantic/Cape_Verde',\n 'America/Curacao',\n 'Indian/Christmas',\n 'Asia/Nicosia',\n 'Asia/Famagusta',\n 'Europe/Prague',\n 'Europe/Berlin',\n 'Europe/Copenhagen',\n 'America/Santo_Domingo',\n 'Africa/Algiers',\n 'America/Guayaquil',\n 'Pacific/Galapagos',\n 'Europe/Tallinn',\n 'Africa/Cairo',\n 'Africa/El_Aaiun',\n 'Europe/Madrid',\n 'Africa/Ceuta',\n 'Atlantic/Canary',\n 'Europe/Helsinki',\n 'Pacific/Fiji',\n 'Atlantic/Stanley',\n 'Pacific/Chuuk',\n 'Pacific/Pohnpei',\n 'Pacific/Kosrae',\n 'Atlantic/Faroe',\n 'Europe/Paris',\n 'Europe/London',\n 'Asia/Tbilisi',\n 'America/Cayenne',\n 'Africa/Accra',\n 'Europe/Gibraltar',\n 'America/Godthab',\n 'America/Danmarkshavn',\n 'America/Scoresbysund',\n 'America/Thule',\n 'Europe/Athens',\n 'Atlantic/South_Georgia',\n 'America/Guatemala',\n 'Pacific/Guam',\n 'Africa/Bissau',\n 'America/Guyana',\n 'Asia/Hong_Kong',\n 'America/Tegucigalpa',\n 'America/Port-au-Prince',\n 'Europe/Budapest',\n 'Asia/Jakarta',\n 'Asia/Pontianak',\n 'Asia/Makassar',\n 'Asia/Jayapura',\n 'Europe/Dublin',\n 'Asia/Jerusalem',\n 'Asia/Kolkata',\n 'Indian/Chagos',\n 'Asia/Baghdad',\n 'Asia/Tehran',\n 'Atlantic/Reykjavik',\n 'Europe/Rome',\n 'America/Jamaica',\n 'Asia/Amman',\n 'Asia/Tokyo',\n 'Africa/Nairobi',\n 'Asia/Bishkek',\n 'Pacific/Tarawa',\n 'Pacific/Enderbury',\n 'Pacific/Kiritimati',\n 'Asia/Pyongyang',\n 'Asia/Seoul',\n 'Asia/Almaty',\n 'Asia/Qyzylorda',\n 'Asia/Qostanay', // https://bugs.chromium.org/p/chromium/issues/detail?id=928068\n 'Asia/Aqtobe',\n 'Asia/Aqtau',\n 'Asia/Atyrau',\n 'Asia/Oral',\n 'Asia/Beirut',\n 'Asia/Colombo',\n 'Africa/Monrovia',\n 'Europe/Vilnius',\n 'Europe/Luxembourg',\n 'Europe/Riga',\n 'Africa/Tripoli',\n 'Africa/Casablanca',\n 'Europe/Monaco',\n 'Europe/Chisinau',\n 'Pacific/Majuro',\n 'Pacific/Kwajalein',\n 'Asia/Yangon',\n 'Asia/Ulaanbaatar',\n 'Asia/Hovd',\n 'Asia/Choibalsan',\n 'Asia/Macau',\n 'America/Martinique',\n 'Europe/Malta',\n 'Indian/Mauritius',\n 'Indian/Maldives',\n 'America/Mexico_City',\n 'America/Cancun',\n 'America/Merida',\n 'America/Monterrey',\n 'America/Matamoros',\n 'America/Mazatlan',\n 'America/Chihuahua',\n 'America/Ojinaga',\n 'America/Hermosillo',\n 'America/Tijuana',\n 'America/Bahia_Banderas',\n 'Asia/Kuala_Lumpur',\n 'Asia/Kuching',\n 'Africa/Maputo',\n 'Africa/Windhoek',\n 'Pacific/Noumea',\n 'Pacific/Norfolk',\n 'Africa/Lagos',\n 'America/Managua',\n 'Europe/Amsterdam',\n 'Europe/Oslo',\n 'Asia/Kathmandu',\n 'Pacific/Nauru',\n 'Pacific/Niue',\n 'Pacific/Auckland',\n 'Pacific/Chatham',\n 'America/Panama',\n 'America/Lima',\n 'Pacific/Tahiti',\n 'Pacific/Marquesas',\n 'Pacific/Gambier',\n 'Pacific/Port_Moresby',\n 'Pacific/Bougainville',\n 'Asia/Manila',\n 'Asia/Karachi',\n 'Europe/Warsaw',\n 'America/Miquelon',\n 'Pacific/Pitcairn',\n 'America/Puerto_Rico',\n 'Asia/Gaza',\n 'Asia/Hebron',\n 'Europe/Lisbon',\n 'Atlantic/Madeira',\n 'Atlantic/Azores',\n 'Pacific/Palau',\n 'America/Asuncion',\n 'Asia/Qatar',\n 'Indian/Reunion',\n 'Europe/Bucharest',\n 'Europe/Belgrade',\n 'Europe/Kaliningrad',\n 'Europe/Moscow',\n 'Europe/Simferopol',\n 'Europe/Kirov',\n 'Europe/Astrakhan',\n 'Europe/Volgograd',\n 'Europe/Saratov',\n 'Europe/Ulyanovsk',\n 'Europe/Samara',\n 'Asia/Yekaterinburg',\n 'Asia/Omsk',\n 'Asia/Novosibirsk',\n 'Asia/Barnaul',\n 'Asia/Tomsk',\n 'Asia/Novokuznetsk',\n 'Asia/Krasnoyarsk',\n 'Asia/Irkutsk',\n 'Asia/Chita',\n 'Asia/Yakutsk',\n 'Asia/Khandyga',\n 'Asia/Vladivostok',\n 'Asia/Ust-Nera',\n 'Asia/Magadan',\n 'Asia/Sakhalin',\n 'Asia/Srednekolymsk',\n 'Asia/Kamchatka',\n 'Asia/Anadyr',\n 'Asia/Riyadh',\n 'Pacific/Guadalcanal',\n 'Indian/Mahe',\n 'Africa/Khartoum',\n 'Europe/Stockholm',\n 'Asia/Singapore',\n 'America/Paramaribo',\n 'Africa/Juba',\n 'Africa/Sao_Tome',\n 'America/El_Salvador',\n 'Asia/Damascus',\n 'America/Grand_Turk',\n 'Africa/Ndjamena',\n 'Indian/Kerguelen',\n 'Asia/Bangkok',\n 'Asia/Dushanbe',\n 'Pacific/Fakaofo',\n 'Asia/Dili',\n 'Asia/Ashgabat',\n 'Africa/Tunis',\n 'Pacific/Tongatapu',\n 'Europe/Istanbul',\n 'America/Port_of_Spain',\n 'Pacific/Funafuti',\n 'Asia/Taipei',\n 'Europe/Kiev',\n 'Europe/Uzhgorod',\n 'Europe/Zaporozhye',\n 'Pacific/Wake',\n 'America/New_York',\n 'America/Detroit',\n 'America/Kentucky/Louisville',\n 'America/Kentucky/Monticello',\n 'America/Indiana/Indianapolis',\n 'America/Indiana/Vincennes',\n 'America/Indiana/Winamac',\n 'America/Indiana/Marengo',\n 'America/Indiana/Petersburg',\n 'America/Indiana/Vevay',\n 'America/Chicago',\n 'America/Indiana/Tell_City',\n 'America/Indiana/Knox',\n 'America/Menominee',\n 'America/North_Dakota/Center',\n 'America/North_Dakota/New_Salem',\n 'America/North_Dakota/Beulah',\n 'America/Denver',\n 'America/Boise',\n 'America/Phoenix',\n 'America/Los_Angeles',\n 'America/Anchorage',\n 'America/Juneau',\n 'America/Sitka',\n 'America/Metlakatla',\n 'America/Yakutat',\n 'America/Nome',\n 'America/Adak',\n 'Pacific/Honolulu',\n 'America/Montevideo',\n 'Asia/Samarkand',\n 'Asia/Tashkent',\n 'America/Caracas',\n 'Asia/Ho_Chi_Minh',\n 'Pacific/Efate',\n 'Pacific/Wallis',\n 'Pacific/Apia',\n 'Africa/Johannesburg'\n];\n\nconst capitalize = (s) => {\n if (typeof s !== 'string') return ''\n return (s.charAt(0).toUpperCase() + s.slice(1)).replace(\" \",\"_\")\n}\n\nlet date = new Date();\nlet tz = aryIannaTimeZones.filter( x => x.includes(capitalize(input)) )[0]\n\nif(!tz){\n print(\"invalid timezone\")\n}else{\n\n print(date.toLocaleString(\"da-DK\", {timeZone: `${tz}`}))\n}", "locked": false, "starred": false } \ No newline at end of file diff --git a/commands/trackiss-222033c70d9a.json b/commands/trackiss-222033c70d9a.json deleted file mode 100644 index 6af6a2c..0000000 --- a/commands/trackiss-222033c70d9a.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "locked": false, - "starred": false, - "name": "trackiss", - "command": "" -} \ No newline at end of file diff --git a/commands/warstats-f7b4e3b8f647.json b/commands/warstats-f7b4e3b8f647.json new file mode 100644 index 0000000..0aa2006 --- /dev/null +++ b/commands/warstats-f7b4e3b8f647.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "warstats", + "command": "print(fetchSync.dom('https://en.wikipedia.org/wiki/Russo-Ukrainian_War').document.querySelector('.infobox tbody tr:nth-child(12)').textContent.replace(/\\n[^\\n]/g, r=>' '+r.slice(1)).replace(/\\[(.*?)\\]/g, ''))" +} \ No newline at end of file diff --git a/commands/we-f8f640c386a0.json b/commands/we-f8f640c386a0.json deleted file mode 100644 index df2d0f4..0000000 --- a/commands/we-f8f640c386a0.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "locked": false, - "starred": false, - "name": "we", - "command": "" -} \ No newline at end of file diff --git a/commands/yeet-3c2a5f82d9e4.json b/commands/yeet-3c2a5f82d9e4.json deleted file mode 100644 index af457d8..0000000 --- a/commands/yeet-3c2a5f82d9e4.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "locked": false, - "starred": false, - "name": "yeet", - "command": "" -} \ No newline at end of file From 7219e5f17abe3fee42ce1b176ecc799bffa647b0 Mon Sep 17 00:00:00 2001 From: kirjavascript Date: Fri, 11 Mar 2022 00:55:01 +0100 Subject: [PATCH 22/94] antonym, char --- commands/antonym-fe2d21efe624.json | 7 +++++++ commands/char-a557d09e85e8.json | 7 +++++++ commands/stupid-f28a49206fcd.json | 7 +++++++ 3 files changed, 21 insertions(+) create mode 100644 commands/antonym-fe2d21efe624.json create mode 100644 commands/char-a557d09e85e8.json create mode 100644 commands/stupid-f28a49206fcd.json diff --git a/commands/antonym-fe2d21efe624.json b/commands/antonym-fe2d21efe624.json new file mode 100644 index 0000000..3f9a46e --- /dev/null +++ b/commands/antonym-fe2d21efe624.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "antonym", + "command": "const { document } = fetchSync.dom(`https://www.wordhippo.com/what-is/the-opposite-of/${encodeURIComponent(input)}.html`);\nconst words = Array.from(new Set(Array.from(document.querySelectorAll('.wb a')).map(a => a.textContent)));\nprint(new Intl.ListFormat(\"en-CA\").format(words.slice(0, 10)));" +} \ No newline at end of file diff --git a/commands/char-a557d09e85e8.json b/commands/char-a557d09e85e8.json new file mode 100644 index 0000000..c1a4b53 --- /dev/null +++ b/commands/char-a557d09e85e8.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": true, + "starred": true, + "name": "char", + "command": "const { document } = fetchSync.dom(`https://www.compart.com/en/unicode/U+${input.codePointAt(0).toString(16)}`);\nconst nodes = [...document.querySelectorAll('.second-column')].map(d => d.textContent.replace(/\\[.*?\\]/g,''));\n\nif (nodes.length) {\n\tprint(`${input.trim()} name: ${nodes[0]} version: ${nodes[1]}`);\n}" +} \ No newline at end of file diff --git a/commands/stupid-f28a49206fcd.json b/commands/stupid-f28a49206fcd.json new file mode 100644 index 0000000..d0d3ca6 --- /dev/null +++ b/commands/stupid-f28a49206fcd.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "stupid", + "command": "/*__TEXTCMD__*/print(`https://www.youtube.com/watch?v=TOJbGLBZLxs`);" +} \ No newline at end of file From d4127dd46768ab8107d33ce4ff1e6fbec3aa71b7 Mon Sep 17 00:00:00 2001 From: kirjavascript Date: Sun, 13 Mar 2022 18:26:04 +0100 Subject: [PATCH 23/94] char fix --- commands/angrynpc-b9944b760f9e.json | 7 +++++++ commands/char-a557d09e85e8.json | 2 +- commands/event-b306be3528b0.json | 2 +- commands/memofix-b6ee8c1edea0.json | 7 +++++++ commands/sevenn-fed6a1b5229c.json | 7 +++++++ commands/ye-8cea810e3fba.json | 2 +- 6 files changed, 24 insertions(+), 3 deletions(-) create mode 100644 commands/angrynpc-b9944b760f9e.json create mode 100644 commands/memofix-b6ee8c1edea0.json create mode 100644 commands/sevenn-fed6a1b5229c.json diff --git a/commands/angrynpc-b9944b760f9e.json b/commands/angrynpc-b9944b760f9e.json new file mode 100644 index 0000000..9cb3eea --- /dev/null +++ b/commands/angrynpc-b9944b760f9e.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "angrynpc", + "command": "print('https://i.imgur.com/oThnbnp.png')" +} \ No newline at end of file diff --git a/commands/char-a557d09e85e8.json b/commands/char-a557d09e85e8.json index c1a4b53..616df5e 100644 --- a/commands/char-a557d09e85e8.json +++ b/commands/char-a557d09e85e8.json @@ -3,5 +3,5 @@ "locked": true, "starred": true, "name": "char", - "command": "const { document } = fetchSync.dom(`https://www.compart.com/en/unicode/U+${input.codePointAt(0).toString(16)}`);\nconst nodes = [...document.querySelectorAll('.second-column')].map(d => d.textContent.replace(/\\[.*?\\]/g,''));\n\nif (nodes.length) {\n\tprint(`${input.trim()} name: ${nodes[0]} version: ${nodes[1]}`);\n}" + "command": "const { document } = fetchSync.dom(`https://www.compart.com/en/unicode/U+${input.codePointAt(0).toString(16)}`);\nconst nodes = [...document.querySelectorAll('.second-column')].map(d => d.textContent.replace(/\\[.*?\\]/g,''));\n\nif (nodes.length) {\n\tprint(`${[...input][0]} name: ${nodes[0]} version: ${nodes[1]}`);\n}" } \ No newline at end of file diff --git a/commands/event-b306be3528b0.json b/commands/event-b306be3528b0.json index 3684e85..968af47 100644 --- a/commands/event-b306be3528b0.json +++ b/commands/event-b306be3528b0.json @@ -3,5 +3,5 @@ "locked": true, "starred": true, "name": "event", - "command": "// Auth example;\n//\n// curl -X POST --data-binary '{\"passcode\":\"demo\"}' -H \"Content-Type: application/json\" http://localhost:8888/api/webhook/test\n\n// const tripcode = require('tripcode');\n\n// IRC.listen('webhook.test', event => {\n// const authed = tripcode(event.body.passcode) === IRC.queryConfig('testCode');\n// print(authed ? 'pass' : 'fail');\n// });\n\nIRC.listen('message', event => {\n if (event.message.text.includes(IRC.nick + ':') && event.message.text.endsWith('?')) {\n print('{g}' + IRC.require('r8ball')());\n }\n});\n\nIRC.listen('tick', () => (\n (new Date).toISOString().slice(5,19)\n \t=== '01-01T00:00:00'\n \t&& print('(*⌒∇⌒*) //// 🎉 {rb}happy new year')\n));\n\nconst faces = [ '(◕ᴗ◕✿)', '(◕◡◕✿)', '(◔◡◔✿)', '(。◕‿◕。✿)', '(◡‿◡✿)', '(◠‿◠✿)', '(◕ܫ◕✿)', '(◕▿◕✿)', '(◕ ワ ◕✿)' ];\nIRC.listen('message', ({ message: { from, text } }) => {\n if (text.includes('❤')) {\n print(' '.repeat(text.indexOf('❤')) + ' ⟍' +faces[0|Math.random()*faces.length]);\n }\n});\n\nIRC.listen('message', (event) => {\n if (event.target === '#8bitvape'){\n \tif (event.message.text.includes('donk')) print('donk'); \n \telse if (event.message.text.includes('dongers')) print(\"{p}ヽ༼ຈل͜ຈ༽ノ {r}raise your dongers {p}ヽ༼ຈل͜ຈ༽ノ\") \n else if (/\\bi\\b/i.test(event.message.text) && (0|Math.random()*100)===0) (input=event.message.text, IRC.require('command.random'));\n } \n});\n\nIRC.listen('message', (event) => {\n if (event.message.from.toLowerCase() === 'lambdacomplex' && /\\begg\\b/.test(event.message.text))\n IRC.require('evilegg');\n});\n\n\nconst daily = () => 25200 === (0|new Date/1000)%86400;\n\nconst hourly = () => 420 === (0|new Date/1000)%3600;\n\nIRC.listen('tick', ({ target }) => {\n if (target === '#8bitvape') {\n \tif (daily()) IRC.require('7');\n else if (hourly()) print('7');\n }\n});\n\nIRC.listen('tick', ({ target }) => {\n if (target === '#eggchan' && daily()) {\n print('egg');\n }\n});" + "command": "// Auth example;\n//\n// curl -X POST --data-binary '{\"passcode\":\"demo\"}' -H \"Content-Type: application/json\" http://localhost:8888/api/webhook/test\n\n// const tripcode = require('tripcode');\n\n// IRC.listen('webhook.test', event => {\n// const authed = tripcode(event.body.passcode) === IRC.queryConfig('testCode');\n// print(authed ? 'pass' : 'fail');\n// });\n\nIRC.listen('message', event => {\n if (event.message.text.includes(IRC.nick + ':') && event.message.text.endsWith('?')) {\n print('{g}' + IRC.require('r8ball')());\n }\n});\n\nIRC.listen('tick', () => (\n (new Date).toISOString().slice(5,19)\n \t=== '01-01T00:00:00'\n \t&& print('(*⌒∇⌒*) //// 🎉 {rb}happy new year')\n));\n\nconst faces = [ '(◕ᴗ◕✿)', '(◕◡◕✿)', '(◔◡◔✿)', '(。◕‿◕。✿)', '(◡‿◡✿)', '(◠‿◠✿)', '(◕ܫ◕✿)', '(◕▿◕✿)', '(◕ ワ ◕✿)' ];\nIRC.listen('message', ({ message: { from, text } }) => {\n if (text.includes('❤')) {\n print(' '.repeat(text.indexOf('❤')) + ' ⟍' +faces[0|Math.random()*faces.length]);\n }\n});\n\nIRC.listen('message', (event) => {\n if (event.target === '#8bitvape'){\n \tif (event.message.text.includes('donk')) print('donk'); \n \telse if (event.message.text.includes('dongers')) print(\"{p}ヽ༼ຈل͜ຈ༽ノ {r}raise your dongers {p}ヽ༼ຈل͜ຈ༽ノ\") \n else if (/\\bi\\b/i.test(event.message.text) && (0|Math.random()*100)===0) (IRC.require('command.random'));\n } \n});\n\nIRC.listen('message', (event) => {\n if (event.message.from.toLowerCase() === 'lambdacomplex' && /\\begg\\b/.test(event.message.text))\n IRC.require('evilegg');\n});\n\n\nconst daily = () => 25200 === (0|new Date/1000)%86400;\n\nconst hourly = () => 420 === (0|new Date/1000)%3600;\n\nIRC.listen('tick', ({ target }) => {\n if (target === '#8bitvape') {\n \tif (daily()) IRC.require('7');\n else if (hourly()) print('7');\n }\n});\n\nIRC.listen('tick', ({ target }) => {\n if (target === '#eggchan' && daily()) {\n print('egg');\n }\n});" } \ No newline at end of file diff --git a/commands/memofix-b6ee8c1edea0.json b/commands/memofix-b6ee8c1edea0.json new file mode 100644 index 0000000..9b5e3e2 --- /dev/null +++ b/commands/memofix-b6ee8c1edea0.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "memofix", + "command": "/*__TEXTCMD__*/print(`https://paste.rs/7oT.js`);" +} \ No newline at end of file diff --git a/commands/sevenn-fed6a1b5229c.json b/commands/sevenn-fed6a1b5229c.json new file mode 100644 index 0000000..4387f3c --- /dev/null +++ b/commands/sevenn-fed6a1b5229c.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "sevenn", + "command": "print(`!talklike Shreddy 7\n!talklike Shreddy 7\n!talklike Shreddy 7\n!talklike Shreddy 7\n!talklike Shreddy 7\n!talklike Shreddy 7\n!talklike Shreddy 7\n!talklike Shreddy 7\n!talklike Shreddy 7\n!talklike Shreddy 7\n!talklike Shreddy 7\n!talklike Shreddy 7\n!talklike Shreddy 7\n!talklike Shreddy 7\n!talklike Shreddy 7\n!talklike Shreddy 7\n!talklike Shreddy 7\n!talklike Shreddy 7\n!talklike Shreddy 7\n!talklike Shreddy 7\n!talklike Shreddy 7\n!talklike Shreddy 7\n!talklike Shreddy 7\n!talklike Shreddy 7\n!talklike Shreddy 7`);" +} \ No newline at end of file diff --git a/commands/ye-8cea810e3fba.json b/commands/ye-8cea810e3fba.json index 13fc971..af37b44 100644 --- a/commands/ye-8cea810e3fba.json +++ b/commands/ye-8cea810e3fba.json @@ -2,5 +2,5 @@ "locked": false, "starred": false, "name": "ye", - "command": "print(`https://i.vgy.me/DlswEE.png`)" + "command": "print(`ye`)" } \ No newline at end of file From 1a0039f9618746d52f9b3ee1599869e8eba216db Mon Sep 17 00:00:00 2001 From: kirjavascript Date: Tue, 15 Mar 2022 19:25:35 +0100 Subject: [PATCH 24/94] add dst, fix random event --- commands/dst-2fd273ee46fb.json | 7 +++++++ commands/event-b306be3528b0.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 commands/dst-2fd273ee46fb.json diff --git a/commands/dst-2fd273ee46fb.json b/commands/dst-2fd273ee46fb.json new file mode 100644 index 0000000..f0d004a --- /dev/null +++ b/commands/dst-2fd273ee46fb.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "dst", + "command": "print(fetchSync.dom('https://www.gov.uk/when-do-the-clocks-change').document.querySelector('main article > div').textContent.replace(/\\s+/g,' ').trim())" +} \ No newline at end of file diff --git a/commands/event-b306be3528b0.json b/commands/event-b306be3528b0.json index 968af47..e15e12c 100644 --- a/commands/event-b306be3528b0.json +++ b/commands/event-b306be3528b0.json @@ -3,5 +3,5 @@ "locked": true, "starred": true, "name": "event", - "command": "// Auth example;\n//\n// curl -X POST --data-binary '{\"passcode\":\"demo\"}' -H \"Content-Type: application/json\" http://localhost:8888/api/webhook/test\n\n// const tripcode = require('tripcode');\n\n// IRC.listen('webhook.test', event => {\n// const authed = tripcode(event.body.passcode) === IRC.queryConfig('testCode');\n// print(authed ? 'pass' : 'fail');\n// });\n\nIRC.listen('message', event => {\n if (event.message.text.includes(IRC.nick + ':') && event.message.text.endsWith('?')) {\n print('{g}' + IRC.require('r8ball')());\n }\n});\n\nIRC.listen('tick', () => (\n (new Date).toISOString().slice(5,19)\n \t=== '01-01T00:00:00'\n \t&& print('(*⌒∇⌒*) //// 🎉 {rb}happy new year')\n));\n\nconst faces = [ '(◕ᴗ◕✿)', '(◕◡◕✿)', '(◔◡◔✿)', '(。◕‿◕。✿)', '(◡‿◡✿)', '(◠‿◠✿)', '(◕ܫ◕✿)', '(◕▿◕✿)', '(◕ ワ ◕✿)' ];\nIRC.listen('message', ({ message: { from, text } }) => {\n if (text.includes('❤')) {\n print(' '.repeat(text.indexOf('❤')) + ' ⟍' +faces[0|Math.random()*faces.length]);\n }\n});\n\nIRC.listen('message', (event) => {\n if (event.target === '#8bitvape'){\n \tif (event.message.text.includes('donk')) print('donk'); \n \telse if (event.message.text.includes('dongers')) print(\"{p}ヽ༼ຈل͜ຈ༽ノ {r}raise your dongers {p}ヽ༼ຈل͜ຈ༽ノ\") \n else if (/\\bi\\b/i.test(event.message.text) && (0|Math.random()*100)===0) (IRC.require('command.random'));\n } \n});\n\nIRC.listen('message', (event) => {\n if (event.message.from.toLowerCase() === 'lambdacomplex' && /\\begg\\b/.test(event.message.text))\n IRC.require('evilegg');\n});\n\n\nconst daily = () => 25200 === (0|new Date/1000)%86400;\n\nconst hourly = () => 420 === (0|new Date/1000)%3600;\n\nIRC.listen('tick', ({ target }) => {\n if (target === '#8bitvape') {\n \tif (daily()) IRC.require('7');\n else if (hourly()) print('7');\n }\n});\n\nIRC.listen('tick', ({ target }) => {\n if (target === '#eggchan' && daily()) {\n print('egg');\n }\n});" + "command": "// Auth example;\n//\n// curl -X POST --data-binary '{\"passcode\":\"demo\"}' -H \"Content-Type: application/json\" http://localhost:8888/api/webhook/test\n\n// const tripcode = require('tripcode');\n\n// IRC.listen('webhook.test', event => {\n// const authed = tripcode(event.body.passcode) === IRC.queryConfig('testCode');\n// print(authed ? 'pass' : 'fail');\n// });\n\nIRC.listen('message', event => {\n if (event.message.text.includes(IRC.nick + ':') && event.message.text.endsWith('?')) {\n print('{g}' + IRC.require('r8ball')());\n }\n});\n\nIRC.listen('tick', () => (\n (new Date).toISOString().slice(5,19)\n \t=== '01-01T00:00:00'\n \t&& print('(*⌒∇⌒*) //// 🎉 {rb}happy new year')\n));\n\nconst faces = [ '(◕ᴗ◕✿)', '(◕◡◕✿)', '(◔◡◔✿)', '(。◕‿◕。✿)', '(◡‿◡✿)', '(◠‿◠✿)', '(◕ܫ◕✿)', '(◕▿◕✿)', '(◕ ワ ◕✿)' ];\nIRC.listen('message', ({ message: { from, text } }) => {\n if (text.includes('❤')) {\n print(' '.repeat(text.indexOf('❤')) + ' ⟍' +faces[0|Math.random()*faces.length]);\n }\n});\n\nIRC.listen('message', (event) => {\n if (event.target === '#8bitvape'){\n \tif (event.message.text.includes('donk')) print('donk'); \n \telse if (event.message.text.includes('dongers')) print(\"{p}ヽ༼ຈل͜ຈ༽ノ {r}raise your dongers {p}ヽ༼ຈل͜ຈ༽ノ\") \n else if (/\\bi\\b/i.test(event.message.text) && (0|Math.random()*100)===0) (input='',IRC.require('command.random'));\n } \n});\n\nIRC.listen('message', (event) => {\n if (event.message.from.toLowerCase() === 'lambdacomplex' && /\\begg\\b/.test(event.message.text))\n IRC.require('evilegg');\n});\n\n\nconst daily = () => 25200 === (0|new Date/1000)%86400;\n\nconst hourly = () => 420 === (0|new Date/1000)%3600;\n\nIRC.listen('tick', ({ target }) => {\n if (target === '#8bitvape') {\n \tif (daily()) IRC.require('7');\n else if (hourly()) print('7');\n }\n});\n\nIRC.listen('tick', ({ target }) => {\n if (target === '#eggchan' && daily()) {\n print('egg');\n }\n});" } \ No newline at end of file From b1b5aa24df636f0ebcbec74f2c15ee6d149cdd6b Mon Sep 17 00:00:00 2001 From: kirjavascript Date: Thu, 17 Mar 2022 01:20:01 +0100 Subject: [PATCH 25/94] updated magnet --- commands/magnet-d8c7e02ded66.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/commands/magnet-d8c7e02ded66.json b/commands/magnet-d8c7e02ded66.json index b07f8fb..866669a 100644 --- a/commands/magnet-d8c7e02ded66.json +++ b/commands/magnet-d8c7e02ded66.json @@ -1,6 +1,6 @@ { "name": "magnet", - "command": "getDOM(`https://thepiratebay.org/s/?q=${encodeURIComponent(input)}&page=0&orderby=99`)\n .then(obj => {\n obj.qsa('tr')\n .splice(1, IRC.command.params[0] || 1)\n .forEach(result => {\n const cols = result.querySelectorAll('td');\n const magnet = result.querySelector('.detName').nextElementSibling.href;\n const size = result.querySelector('.detDesc').textContent.match(/Size (.*?),/mi);\n \n print(`{r}${result.querySelector('.detLink').textContent}{/} SE {g}${cols[2].textContent}{/} LE {o}${cols[3].textContent} {p}${size&&size[1]}{/}`);\n print(IRC.colors.link(magnet))\n })\n })\n .catch((e) => {print(`{r}found nothing`)})", + "command": "const { document } = fetchSync.dom(`https://piratebay.party/search/${encodeURIComponent(input)}/1/99/0`);\ntry {\n\nconst item = document.querySelector('tr');\nconst cells = [...document.querySelectorAll('td')];\n\nconst magnet = IRC.require('module.paste')(cells[3].querySelector('a').href)\nconst slim = d => d.replace(/\\s+/g,' ').trim();\n\nprint(`{c}${slim(cells[1].textContent)}{/} SE {g}${cells[5].textContent}{/} LE {o}${cells[6].textContent} {p}${cells[4].textContent}{/} 🧲${IRC.colors.link(magnet)}`);\n \n} catch(e) {\n \tthrow 'cannot find ' + input \n}", "locked": true, "starred": true } \ No newline at end of file From c61adc68d6d1c5198d0ccc46b098b7d08195c9fc Mon Sep 17 00:00:00 2001 From: kirjavascript Date: Thu, 17 Mar 2022 23:20:51 +0100 Subject: [PATCH 26/94] some event tweaks --- commands/event-b306be3528b0.json | 2 +- commands/eventIBIP-5695eeca1975.json | 2 +- commands/eventfetchURL-798176d44de4.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/commands/event-b306be3528b0.json b/commands/event-b306be3528b0.json index e15e12c..6514ff3 100644 --- a/commands/event-b306be3528b0.json +++ b/commands/event-b306be3528b0.json @@ -3,5 +3,5 @@ "locked": true, "starred": true, "name": "event", - "command": "// Auth example;\n//\n// curl -X POST --data-binary '{\"passcode\":\"demo\"}' -H \"Content-Type: application/json\" http://localhost:8888/api/webhook/test\n\n// const tripcode = require('tripcode');\n\n// IRC.listen('webhook.test', event => {\n// const authed = tripcode(event.body.passcode) === IRC.queryConfig('testCode');\n// print(authed ? 'pass' : 'fail');\n// });\n\nIRC.listen('message', event => {\n if (event.message.text.includes(IRC.nick + ':') && event.message.text.endsWith('?')) {\n print('{g}' + IRC.require('r8ball')());\n }\n});\n\nIRC.listen('tick', () => (\n (new Date).toISOString().slice(5,19)\n \t=== '01-01T00:00:00'\n \t&& print('(*⌒∇⌒*) //// 🎉 {rb}happy new year')\n));\n\nconst faces = [ '(◕ᴗ◕✿)', '(◕◡◕✿)', '(◔◡◔✿)', '(。◕‿◕。✿)', '(◡‿◡✿)', '(◠‿◠✿)', '(◕ܫ◕✿)', '(◕▿◕✿)', '(◕ ワ ◕✿)' ];\nIRC.listen('message', ({ message: { from, text } }) => {\n if (text.includes('❤')) {\n print(' '.repeat(text.indexOf('❤')) + ' ⟍' +faces[0|Math.random()*faces.length]);\n }\n});\n\nIRC.listen('message', (event) => {\n if (event.target === '#8bitvape'){\n \tif (event.message.text.includes('donk')) print('donk'); \n \telse if (event.message.text.includes('dongers')) print(\"{p}ヽ༼ຈل͜ຈ༽ノ {r}raise your dongers {p}ヽ༼ຈل͜ຈ༽ノ\") \n else if (/\\bi\\b/i.test(event.message.text) && (0|Math.random()*100)===0) (input='',IRC.require('command.random'));\n } \n});\n\nIRC.listen('message', (event) => {\n if (event.message.from.toLowerCase() === 'lambdacomplex' && /\\begg\\b/.test(event.message.text))\n IRC.require('evilegg');\n});\n\n\nconst daily = () => 25200 === (0|new Date/1000)%86400;\n\nconst hourly = () => 420 === (0|new Date/1000)%3600;\n\nIRC.listen('tick', ({ target }) => {\n if (target === '#8bitvape') {\n \tif (daily()) IRC.require('7');\n else if (hourly()) print('7');\n }\n});\n\nIRC.listen('tick', ({ target }) => {\n if (target === '#eggchan' && daily()) {\n print('egg');\n }\n});" + "command": "// Auth example;\n//\n// curl -X POST --data-binary '{\"passcode\":\"demo\"}' -H \"Content-Type: application/json\" http://localhost:8888/api/webhook/test\n\n// const tripcode = require('tripcode');\n\n// IRC.listen('webhook.test', event => {\n// const authed = tripcode(event.body.passcode) === IRC.queryConfig('testCode');\n// print(authed ? 'pass' : 'fail');\n// });\n\nIRC.listen('message', event => {\n if (event.message.text.includes(IRC.nick + ':') && event.message.text.endsWith('?')) {\n print('{g}' + IRC.require('r8ball')());\n }\n});\n\nIRC.listen('tick', () => (\n (new Date).toISOString().slice(5,19)\n \t=== '01-01T00:00:00'\n \t&& print('(*⌒∇⌒*) //// 🎉 {rb}happy new year')\n));\n\nconst faces = [ '(◕ᴗ◕✿)', '(◕◡◕✿)', '(◔◡◔✿)', '(。◕‿◕。✿)', '(◡‿◡✿)', '(◠‿◠✿)', '(◕ܫ◕✿)', '(◕▿◕✿)', '(◕ ワ ◕✿)' ];\nIRC.listen('message', ({ message: { from, text } }) => {\n if (text.includes('❤')) {\n print(' '.repeat(text.indexOf('❤')) + ' ⟍' +faces[0|Math.random()*faces.length]);\n }\n});\n\nIRC.listen('message', (event) => {\n if (event.target === '#8bitvape'){\n \tif (event.message.text.includes('donk')) print('donk'); \n else if (event.message.from.startsWith('botqu') && event.message.text.includes('7')) print(\"hi botqui\") \n \telse if (event.message.text.includes('dongers')) print(\"{p}ヽ༼ຈل͜ຈ༽ノ {r}raise your dongers {p}ヽ༼ຈل͜ຈ༽ノ\") \n else if (/\\bi\\b/i.test(event.message.text) && (0|Math.random()*100)===0) (input='',IRC.require('command.random'));\n } \n});\n\nIRC.listen('message', (event) => {\n if (event.message.from.toLowerCase() === 'lambdacomplex' && /\\begg\\b/.test(event.message.text))\n IRC.require('evilegg');\n});\n\n\nconst daily = () => 25200 === (0|new Date/1000)%86400;\n\nconst hourly = () => 420 === (0|new Date/1000)%3600;\n\nIRC.listen('tick', ({ target }) => {\n if (target === '#8bitvape') {\n \tif (daily()) IRC.require('7');\n else if (hourly()) print((s=[...'⁷₇⅐⅞⑦⑺⒎㋆㍟㏦7𝟕𝟟𝟩𝟳𝟽🄈🯷'],s[0|Math.random()*s.length]));\n }\n});\n\nIRC.listen('tick', ({ target }) => {\n if (target === '#eggchan' && daily()) {\n print('egg');\n }\n});" } \ No newline at end of file diff --git a/commands/eventIBIP-5695eeca1975.json b/commands/eventIBIP-5695eeca1975.json index fcc3471..a6d9cf2 100644 --- a/commands/eventIBIP-5695eeca1975.json +++ b/commands/eventIBIP-5695eeca1975.json @@ -3,5 +3,5 @@ "locked": true, "starred": true, "name": "event.IBIP", - "command": "// handle IBIP (https://git.teknik.io/Teknikode/IBIP)\n\nIRC.listen('message', event => {\n if (event.message.text === '.bots' && IRC.queryConfig('enableIBIP', true)) {\n \tIRC.require('help');\n \t// spec conforming version:\n \t//print(`Reporting in! [JavaScript] use ${IRC.trigger}help`);\n }\n});" + "command": "// handle IBIP (https://git.teknik.io/Teknikode/IBIP)\n\nIRC.listen('message', event => {\n if (event.message.text === '.bots' && IRC.queryConfig('enableIBIP', true)) {\n \t//IRC.require('help');\n \tprint(`Reporting in! [JavaScript] use ${IRC.trigger}help`);\n }\n});" } \ No newline at end of file diff --git a/commands/eventfetchURL-798176d44de4.json b/commands/eventfetchURL-798176d44de4.json index 8113e64..beb5d2c 100644 --- a/commands/eventfetchURL-798176d44de4.json +++ b/commands/eventfetchURL-798176d44de4.json @@ -3,5 +3,5 @@ "locked": true, "starred": true, "name": "event.fetchURL", - "command": "const { document, window } = new (jsdom().JSDOM)('');\nconst anchor = document.createElement('a');\nconst bytes = IRC.require('bytes');\n\nfunction setDOM(page) {\n document.open();\n document.write(page);\n document.close();\n};\n\nfunction domTitle() {\n const metaTitle = document.head.querySelector('meta[name=\"title\"]');\n return metaTitle ? metaTitle.content : document.title;\n}\n\nconst filterWords = /cloudflare|forbidden|not found|access restricted|access denied|your browser|rick roll|never gonna give you up|log in/i;\n\nfunction hasInfo(url, _title) {\n const title = _title.replace(/\\s+/g, ' ').trim();\n const isFresh = title.split(' ')\n .filter(word => (\n !(new RegExp(word.replace(/[^.a-zA-Z0-9\\u00c0-\\u017e]+/g, ''), 'i')).test(url)\n )).length >= 1;\n return isFresh;\n}\n\nIRC.listen('message', event => {\n if (!IRC.queryConfig('fetchURL', true)) return;\n const { text, from } = event.message;\n const urls = text.match(/(\\b(https?):\\/\\/[-A-Z0-9+&@#\\/%?=~_|!:,.;()]*[-A-Z0-9+&@#\\/%=~_|()])/ig);\n const fromSelf = from === IRC.nick;\n if (!urls || fromSelf || text.startsWith(IRC.trigger) || text.includes('##')) return;\n\n urls.slice(0, 2).forEach(url => {\n handleURL(url, global.print)\n // .catch(print.error);\n });\n});\n\nasync function handleURL(url, print) {\n anchor.setAttribute('href', url);\n if (await customURL(url, print)) return;\n\n const res = await fetch(url, {\n headers: {\n 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',\n 'Accept-Language': 'en-GB,en;q=0.5',\n 'Content-Language': 'en-GB,en;q=0.5',\n 'User-Agent': /youtu\\.?be|google|reddit/.test(url) ? '' : 'Googlebot',\n },\n });\n\n const length = res.headers.get('content-length');\n\n if (length > 5.243e6) {\n const filename = anchor.pathname.split('/').pop();\n print.info(`{dc}${filename}{/} ${bytes(length)} {dgr}${res.headers.get('content-type')}{/}`);\n return;\n }\n\n const page = await res.text();\n setDOM(page);\n\n const title = domTitle();\n\n if (\n title.length \n && title.length < 400 \n && !filterWords.test(title)\n && (IRC.queryConfig('fetchURLAll', false) || hasInfo(url, title))) {\n print.info(title);\n }\n\n}\n\nasync function customURL(url, print) {\n // https://github.com/mendel5/alternative-front-ends\n const { hostname, pathname } = anchor;\n if (hostname.includes('reddit.')) {\n const jsonURL = url.replace(/(\\/?)(\\?.*)?(#.*)?$/, '/.json');\n const json = await(await fetch(jsonURL)).json();\n const data = json?.[0]?.data?.children?.[0]?.data;\n if (data) {\n const info = `{c}${data.subreddit_name_prefixed}{/} {o}▲${data.score}{/} ${data.title}`;\n const url = data?.secure_media?.reddit_video?.fallback_url?.replace('?source=fallback', '') || data.url;\n if (data.selftext) {\n print(`${info} ${String(data.selftext).replace(/\\s+/g, ' ').slice(0, 300)}`);\n return true;\n } else if (url) {\n print(`${info} ${IRC.colors.link(url)}`);\n return true;\n }\n }\n return true; \n }\n if (hostname.includes('youtube.') || hostname === 'youtu.be') {\n try {\n const json = await (await fetch(`https://www.youtube.com/oembed?url=${encodeURI(url)}&format=json`)).json();\n const {\n title, author_name,\n } = json;\n print(`{r}YouTube{/} {c}${author_name}{/} ${title}`);\n return true;\n } catch (e) { }\n // url.match(/(?!v=|v\\/|\\.be\\/|watch\\/)([0-9a-z\\-_]{11})/i);\n }\n if (hostname.includes('github.')) {\n if (pathname.split('/').length === 3) {\n // it's a repo url\n const {\n description,\n html_url,\n name,\n stargazers_count,\n language,\n license, // { name }\n } = await (\n await fetch(`https://api.github.com/repos${pathname}`)\n ).json();\n\n print(`{gr}Github{/} ${description || name} ${IRC.colors.nick(language, false)} {y}★{/} {bo}${stargazers_count}{/} {dgr}${license ? license.name : ''}{/}`);\n return true;\n }\n } \n if (hostname.includes('instagram.')) {\n // https://git.sr.ht/~cadence/bibliogram-docs/tree/master/docs/Instances.md\n const id = pathname.match(/\\/([A-Za-z-0-9]{11})/);\n if (id) {\n const page = await (await fetch(`https://bibliogram.1d4.us/p/${id[1]}`)).text();\n setDOM(page);\n const text = document.querySelector('.structured-text').textContent;\n const name = document.querySelector('.name').textContent;\n const image = document.querySelector('.sized-image');\n\n let output = `{bo}Instagram{/} {c}${name}{/} ${text.replace(/\\s+/g, ' ')}`;\n print(output);\n }\n return true;\n }\n if (hostname.includes('twitter.')) {\n const id = pathname.match(/status\\/(\\d+)/);\n if (id) {\n const page = await (await fetch(`https://nitter.net/_/status/${id[1]}#m`)).text();\n setDOM(page);\n const maintweet = document.querySelector('.main-tweet');\n const name = maintweet.querySelector('.fullname').textContent;\n const user = maintweet.querySelector('.username').textContent;\n const image = maintweet.querySelector('.still-image img');\n const tweet = maintweet.querySelector('.tweet-content').textContent.replace(/\\s+/g, ' ');\n let output = `{bo}${name}{/} {c}${user}{/} ${tweet}`;\n if (image) {\n output += ' ' + IRC.colors.link(`https://nitter.net${image.getAttribute('src').replace(/%3Fname.+/, '')}`);\n }\n print(output);\n return true;\n }\n }\n // image detection AI\n if (['jpg', 'gif', 'jpeg', 'png'].some(d => url.includes(`.${d}`))) {\n const reqUrl = 'https://api.imagga.com/v2/tags?image_url='+encodeURI(url);\n const json = await (await fetch(reqUrl, {\n headers: { Authorization: 'Basic YWNjX2ZjOWJkMjE5ZGQ1NTVjZTpiYmE4MTU1MTUwM2M4N2IxMmJlZTg4YzY1ZmI2YmM0OA== ' }\n })).json();\n const tags = json.result.tags.filter(tag => tag.confidence >= 70);\n if (tags.length) {\n print('🖼️ 👀 '+tags.map(tag=>`{g}${tag.tag.en}{/}`).join(', '));\n } else if (json.result.tags.length) {\n \t//const [tag] = json.result.tags;\n \t//print(`Image may contain: {o}${tag.tag.en}{/} (${0|tag.confidence}% confidence)`);\n }\n }\n}" + "command": "const { document, window } = new (jsdom().JSDOM)('');\nconst anchor = document.createElement('a');\nconst bytes = IRC.require('bytes');\n\nfunction setDOM(page) {\n document.open();\n document.write(page);\n document.close();\n};\n\nfunction domTitle() {\n const metaTitle = document.head.querySelector('meta[name=\"title\"]');\n return metaTitle ? metaTitle.content : document.title;\n}\n\nconst filterWords = /cloudflare|forbidden|not found|access restricted|access denied|your browser|rick roll|never gonna give you up|log in/i;\n\nfunction hasInfo(url, _title) {\n const title = _title.replace(/\\s+/g, ' ').trim();\n const isFresh = title.split(' ')\n .filter(word => (\n !(new RegExp(word.replace(/[^.a-zA-Z0-9\\u00c0-\\u017e]+/g, ''), 'i')).test(url)\n )).length >= 1;\n return isFresh;\n}\n\nIRC.listen('message', event => {\n if (!IRC.queryConfig('fetchURL', true)) return;\n const { text, from } = event.message;\n const urls = text.match(/(\\b(https?):\\/\\/[-A-Z0-9+&@#\\/%?=~_|!:,.;()]*[-A-Z0-9+&@#\\/%=~_|()])/ig);\n const fromSelf = from === IRC.nick;\n if (!urls || fromSelf || text.startsWith(IRC.trigger) || text.includes('##')) return;\n\n urls.slice(0, 3).forEach(url => {\n handleURL(url, global.print)\n //.catch(print.error);\n });\n});\n\nasync function handleURL(url, print) {\n anchor.setAttribute('href', url);\n if (await customURL(url, print)) return;\n\n const res = await fetch(url, {\n headers: {\n 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',\n 'Accept-Language': 'en-GB,en;q=0.5',\n 'Content-Language': 'en-GB,en;q=0.5',\n 'User-Agent': /youtu\\.?be|google|reddit/.test(url) ? '' : 'Googlebot',\n },\n });\n\n const length = res.headers.get('content-length');\n\n if (length > 5.243e6) {\n const filename = anchor.pathname.split('/').pop();\n print.info(`{dc}${filename}{/} ${bytes(length)} {dgr}${res.headers.get('content-type')}{/}`);\n return;\n }\n\n const page = await res.text();\n setDOM(page);\n\n const title = domTitle();\n\n if (\n title.length \n && title.length < 400 \n && !filterWords.test(title)\n && (IRC.queryConfig('fetchURLAll', false) || hasInfo(url, title))) {\n print.info(title);\n }\n\n}\n\nasync function customURL(url, print) {\n // https://github.com/mendel5/alternative-front-ends\n const { hostname, pathname } = anchor;\n if (hostname.includes('reddit.')) {\n const jsonURL = url.replace(/(\\/?)(\\?.*)?(#.*)?$/, '/.json');\n const json = await(await fetch(jsonURL)).json();\n const data = json?.[0]?.data?.children?.[0]?.data;\n if (data) {\n const info = `{c}${data.subreddit_name_prefixed}{/} {o}▲${data.score}{/} ${data.title}`;\n const url = data?.secure_media?.reddit_video?.fallback_url?.replace('?source=fallback', '') || data.url;\n if (data.selftext) {\n print(`${info} ${String(data.selftext).replace(/\\s+/g, ' ').slice(0, 300)}`);\n return true;\n } else if (url) {\n print(`${info} ${IRC.colors.link(url)}`);\n return true;\n }\n }\n return true; \n }\n if (hostname.includes('youtube.') || hostname === 'youtu.be') {\n try {\n const json = await (await fetch(`https://www.youtube.com/oembed?url=${encodeURI(url)}&format=json`)).json();\n const {\n title, author_name,\n } = json;\n print(`{r}YouTube{/} {c}${author_name}{/} ${title}`);\n return true;\n } catch (e) { }\n // url.match(/(?!v=|v\\/|\\.be\\/|watch\\/)([0-9a-z\\-_]{11})/i);\n }\n if (hostname.includes('github.')) {\n if (pathname.split('/').length === 3) {\n // it's a repo url\n const {\n description,\n html_url,\n name,\n stargazers_count,\n language,\n license, // { name }\n } = await (\n await fetch(`https://api.github.com/repos${pathname}`)\n ).json();\n\n print(`{gr}Github{/} ${description || name} ${IRC.colors.nick(language, false)} {y}★{/} {bo}${stargazers_count}{/} {dgr}${license ? license.name : ''}{/}`);\n return true;\n }\n } \n if (hostname.includes('instagram.')) {\n // https://git.sr.ht/~cadence/bibliogram-docs/tree/master/docs/Instances.md\n const id = pathname.match(/\\/([A-Za-z-0-9]{11})/);\n if (id) {\n const page = await (await fetch(`https://bibliogram.1d4.us/p/${id[1]}`)).text();\n setDOM(page);\n const text = document.querySelector('.structured-text').textContent;\n const name = document.querySelector('.name').textContent;\n const image = document.querySelector('.sized-image');\n\n let output = `{bo}Instagram{/} {c}${name}{/} ${text.replace(/\\s+/g, ' ')}`;\n print(output);\n }\n return true;\n }\n if (hostname.includes('twitter.')) {\n const id = pathname.match(/status\\/(\\d+)/);\n if (id) {\n const page = await (await fetch(`https://nitter.net/_/status/${id[1]}#m`)).text();\n setDOM(page);\n const maintweet = document.querySelector('.main-tweet');\n const name = maintweet.querySelector('.fullname').textContent;\n const user = maintweet.querySelector('.username').textContent;\n const image = maintweet.querySelector('.still-image img');\n const tweet = maintweet.querySelector('.tweet-content').textContent.replace(/\\s+/g, ' ');\n let output = `{bo}${name}{/} {c}${user}{/} ${tweet}`;\n if (image) {\n output += ' ' + IRC.colors.link(`https://nitter.net${image.getAttribute('src').replace(/%3Fname.+/, '')}`);\n }\n print(output);\n return true;\n }\n }\n // image detection AI\n if (['jpg', 'gif', 'jpeg', 'png'].some(d => url.includes(`.${d}`))) {\n const reqUrl = 'https://api.imagga.com/v2/tags?image_url='+encodeURI(url);\n const json = await (await fetch(reqUrl, {\n headers: { Authorization: 'Basic YWNjX2ZjOWJkMjE5ZGQ1NTVjZTpiYmE4MTU1MTUwM2M4N2IxMmJlZTg4YzY1ZmI2YmM0OA== ' }\n })).json();\n if (json.type === 'error') {\n \tjson.status.text;\n } else {\n const tags = json.result.tags.filter(tag => tag.confidence >= 70);\n \tif (tags.length) {\n \tprint('🖼️ 👀 '+tags.map(tag=>`{g}${tag.tag.en}{/}`).join(', '));\n \t} else if (json.result.tags.length) {\n \t\t//const [tag] = json.result.tags;\n //print(`Image may contain: {o}${tag.tag.en}{/} (${0|tag.confidence}% confidence)`);\n \t}\n }\n\n \treturn true;\n }\n}" } \ No newline at end of file From 214d609a77cc78a3b6ff88fe8b98edd2d48426bd Mon Sep 17 00:00:00 2001 From: kirjavascript Date: Sat, 19 Mar 2022 21:33:00 +0100 Subject: [PATCH 27/94] memoPrintQuantity --- commands/event-b306be3528b0.json | 2 +- commands/eventmemo-84d5d58f85cc.json | 2 +- commands/police-6a60b7977d02.json | 2 +- commands/sevenn-fed6a1b5229c.json | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/commands/event-b306be3528b0.json b/commands/event-b306be3528b0.json index 6514ff3..b911815 100644 --- a/commands/event-b306be3528b0.json +++ b/commands/event-b306be3528b0.json @@ -3,5 +3,5 @@ "locked": true, "starred": true, "name": "event", - "command": "// Auth example;\n//\n// curl -X POST --data-binary '{\"passcode\":\"demo\"}' -H \"Content-Type: application/json\" http://localhost:8888/api/webhook/test\n\n// const tripcode = require('tripcode');\n\n// IRC.listen('webhook.test', event => {\n// const authed = tripcode(event.body.passcode) === IRC.queryConfig('testCode');\n// print(authed ? 'pass' : 'fail');\n// });\n\nIRC.listen('message', event => {\n if (event.message.text.includes(IRC.nick + ':') && event.message.text.endsWith('?')) {\n print('{g}' + IRC.require('r8ball')());\n }\n});\n\nIRC.listen('tick', () => (\n (new Date).toISOString().slice(5,19)\n \t=== '01-01T00:00:00'\n \t&& print('(*⌒∇⌒*) //// 🎉 {rb}happy new year')\n));\n\nconst faces = [ '(◕ᴗ◕✿)', '(◕◡◕✿)', '(◔◡◔✿)', '(。◕‿◕。✿)', '(◡‿◡✿)', '(◠‿◠✿)', '(◕ܫ◕✿)', '(◕▿◕✿)', '(◕ ワ ◕✿)' ];\nIRC.listen('message', ({ message: { from, text } }) => {\n if (text.includes('❤')) {\n print(' '.repeat(text.indexOf('❤')) + ' ⟍' +faces[0|Math.random()*faces.length]);\n }\n});\n\nIRC.listen('message', (event) => {\n if (event.target === '#8bitvape'){\n \tif (event.message.text.includes('donk')) print('donk'); \n else if (event.message.from.startsWith('botqu') && event.message.text.includes('7')) print(\"hi botqui\") \n \telse if (event.message.text.includes('dongers')) print(\"{p}ヽ༼ຈل͜ຈ༽ノ {r}raise your dongers {p}ヽ༼ຈل͜ຈ༽ノ\") \n else if (/\\bi\\b/i.test(event.message.text) && (0|Math.random()*100)===0) (input='',IRC.require('command.random'));\n } \n});\n\nIRC.listen('message', (event) => {\n if (event.message.from.toLowerCase() === 'lambdacomplex' && /\\begg\\b/.test(event.message.text))\n IRC.require('evilegg');\n});\n\n\nconst daily = () => 25200 === (0|new Date/1000)%86400;\n\nconst hourly = () => 420 === (0|new Date/1000)%3600;\n\nIRC.listen('tick', ({ target }) => {\n if (target === '#8bitvape') {\n \tif (daily()) IRC.require('7');\n else if (hourly()) print((s=[...'⁷₇⅐⅞⑦⑺⒎㋆㍟㏦7𝟕𝟟𝟩𝟳𝟽🄈🯷'],s[0|Math.random()*s.length]));\n }\n});\n\nIRC.listen('tick', ({ target }) => {\n if (target === '#eggchan' && daily()) {\n print('egg');\n }\n});" + "command": "// Auth example;\n//\n// curl -X POST --data-binary '{\"passcode\":\"demo\"}' -H \"Content-Type: application/json\" http://localhost:8888/api/webhook/test\n\n// const tripcode = require('tripcode');\n\n// IRC.listen('webhook.test', event => {\n// const authed = tripcode(event.body.passcode) === IRC.queryConfig('testCode');\n// print(authed ? 'pass' : 'fail');\n// });\n\nIRC.listen('message', event => {\n if (event.message.text.includes(IRC.nick + ':') && event.message.text.endsWith('?')) {\n print('{g}' + IRC.require('r8ball')());\n }\n});\n\nIRC.listen('tick', () => (\n (new Date).toISOString().slice(5,19)\n \t=== '01-01T00:00:00'\n \t&& print('(*⌒∇⌒*) //// 🎉 {rb}happy new year')\n));\n\nconst faces = [ '(◕ᴗ◕✿)', '(◕◡◕✿)', '(◔◡◔✿)', '(。◕‿◕。✿)', '(◡‿◡✿)', '(◠‿◠✿)', '(◕ܫ◕✿)', '(◕▿◕✿)', '(◕ ワ ◕✿)' ];\nIRC.listen('message', ({ message: { from, text } }) => {\n if (text.includes('❤')) {\n print(' '.repeat(text.indexOf('❤')) + ' ⟍' +faces[0|Math.random()*faces.length]);\n }\n});\n\nIRC.listen('message', (event) => {\n if (event.target === '#8bitvape'){\n \tif (event.message.text.includes('donk')) print('donk'); \n \telse if (event.message.text.includes('dongers')) print(\"{p}ヽ༼ຈل͜ຈ༽ノ {r}raise your dongers {p}ヽ༼ຈل͜ຈ༽ノ\") \n else if (/\\bi\\b/i.test(event.message.text) && (0|Math.random()*100)===0) (input='',IRC.require('command.random'));\n } \n});\n\nIRC.listen('message', (event) => {\n if (event.message.from.toLowerCase() === 'lambdacomplex' && /\\begg\\b/.test(event.message.text))\n IRC.require('evilegg');\n});\n\n\nconst daily = () => 25200 === (0|new Date/1000)%86400;\n\nconst hourly = () => 420 === (0|new Date/1000)%3600;\n\nIRC.listen('tick', ({ target }) => {\n if (target === '#8bitvape') {\n \tif (daily()) IRC.require('7');\n else if (hourly()) print((s=[...'⁷₇⅐⅞⑦⑺⒎㋆㍟㏦7𝟕𝟟𝟩𝟳𝟽🄈🯷'],s[0|Math.random()*s.length]));\n }\n});\n\nIRC.listen('tick', ({ target }) => {\n if (target === '#eggchan' && daily()) {\n print('egg');\n }\n});" } \ No newline at end of file diff --git a/commands/eventmemo-84d5d58f85cc.json b/commands/eventmemo-84d5d58f85cc.json index e5e5c1c..c28afcd 100644 --- a/commands/eventmemo-84d5d58f85cc.json +++ b/commands/eventmemo-84d5d58f85cc.json @@ -3,5 +3,5 @@ "locked": false, "starred": false, "name": "event.memo", - "command": "const dateFns = require('date-fns@1.30.1');\n\nIRC.listen('message', ({ target, server, message: { from, isPM, text } }) => {\n if (text.startsWith(IRC.trigger)) return;\n\n const print = globalThis.print;\n IRC.setNamespace('memo');\n SQL.async.many`\n SELECT \"from\", \"to\", time, message FROM memo \n WHERE LOWER(\"to\") = LOWER(${from})\n AND server = ${server}\n AND (${String(+isPM)} OR channel = ${target} OR channel IS NULL) \n `.then((messages) => {\n if (messages.length === 1) {\n const msg = messages[0];\n print(`${msg.to}: ${IRC.colors.nick(msg.from, true)} ${msg.message} {/}({dc}${dateFns.distanceInWordsStrict(msg.time, new Date())} ago{/})`);\n } else if (messages.length > 1) {\n const list = messages.map(({ from, message, time }) => `${time} <${from}> ${message}`).join('\\n');\n IRC.require('module.paste').async(list)\n .then(url => {\n print(`${from}: you have {o}${messages.length}{/} messages ${url}`);\n }).catch(() => {});\n }\n\n if (messages.length > 0) {\n IRC.setNamespace('memo');\n SQL.async.run`\n DELETE FROM memo\n WHERE LOWER(\"to\") = LOWER(${from})\n AND server = ${server}\n AND (${String(+isPM)} OR channel = ${target} OR channel IS NULL) \n `.catch(print.error);\n }\n }).catch(print.error);\n\n}, { filter: () => IRC.queryConfig('enableMemo', false) })\n\nIRC.setNamespace('memo');\nif (!SQL.one`SELECT 1 FROM sqlite_master WHERE name='memo'`) {\n SQL.exec`\n DROP TABLE IF EXISTS memo;\n\n CREATE TABLE memo (\n key INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE,\n \"from\" VARCHAR (100),\n \"to\" VARCHAR (100),\n server TEXT,\n channel TEXT,\n message TEXT,\n time DATETIME DEFAULT ((DATETIME(CURRENT_TIMESTAMP, 'LOCALTIME')))\n );\n\n CREATE INDEX idx_to\n ON memo ('to');\n `;\n}" + "command": "const dateFns = require('date-fns@1.30.1');\n\nIRC.listen('message', ({ target, server, message: { from, isPM, text } }) => {\n if (text.startsWith(IRC.trigger)) return;\n\n const print = globalThis.print;\n const printMessage = (msg) => {\n print(`${msg.to}: ${IRC.colors.nick(msg.from, true)} ${msg.message} {/}({dc}${dateFns.distanceInWordsStrict(msg.time, new Date())} ago{/})`);\n };\n IRC.setNamespace('memo');\n SQL.async.many`\n SELECT \"from\", \"to\", time, message FROM memo \n WHERE LOWER(\"to\") = LOWER(${from})\n AND server = ${server}\n AND (${String(+isPM)} OR channel = ${target} OR channel IS NULL) \n `.then((messages) => {\n if (messages.length <= IRC.queryConfig('memoPrintQuantity', 1)) {\n messages.forEach(printMessage);\n } else if (messages.length) {\n const list = messages.map(({ from, message, time }) => `${time} <${from}> ${message}`).join('\\n');\n IRC.require('module.paste').async(list)\n .then(url => {\n print(`${from}: you have {o}${messages.length}{/} messages ${url}`);\n }).catch(() => {});\n }\n\n if (messages.length > 0) {\n IRC.setNamespace('memo');\n SQL.async.run`\n DELETE FROM memo\n WHERE LOWER(\"to\") = LOWER(${from})\n AND server = ${server}\n AND (${String(+isPM)} OR channel = ${target} OR channel IS NULL) \n `.catch(print.error);\n }\n }).catch(print.error);\n\n}, { filter: () => IRC.queryConfig('enableMemo', false) })\n\nIRC.setNamespace('memo');\nif (!SQL.one`SELECT 1 FROM sqlite_master WHERE name='memo'`) {\n SQL.exec`\n DROP TABLE IF EXISTS memo;\n\n CREATE TABLE memo (\n key INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE,\n \"from\" VARCHAR (100),\n \"to\" VARCHAR (100),\n server TEXT,\n channel TEXT,\n message TEXT,\n time DATETIME DEFAULT ((DATETIME(CURRENT_TIMESTAMP, 'LOCALTIME')))\n );\n\n CREATE INDEX idx_to\n ON memo ('to');\n `;\n}" } \ No newline at end of file diff --git a/commands/police-6a60b7977d02.json b/commands/police-6a60b7977d02.json index abe7fc2..7e9d534 100644 --- a/commands/police-6a60b7977d02.json +++ b/commands/police-6a60b7977d02.json @@ -2,5 +2,5 @@ "locked": false, "starred": false, "name": "police", - "command": "/*__TEXTCMD__*/print(`https://i.imgur.com/4osUobh.png`);" + "command": "print(`https://i.imgur.com/4osUobh.png`)\nprint(`https://i.imgur.com/vq5o0NQ.jpeg`)" } \ No newline at end of file diff --git a/commands/sevenn-fed6a1b5229c.json b/commands/sevenn-fed6a1b5229c.json index 4387f3c..e0d0b3a 100644 --- a/commands/sevenn-fed6a1b5229c.json +++ b/commands/sevenn-fed6a1b5229c.json @@ -3,5 +3,5 @@ "locked": false, "starred": false, "name": "sevenn", - "command": "print(`!talklike Shreddy 7\n!talklike Shreddy 7\n!talklike Shreddy 7\n!talklike Shreddy 7\n!talklike Shreddy 7\n!talklike Shreddy 7\n!talklike Shreddy 7\n!talklike Shreddy 7\n!talklike Shreddy 7\n!talklike Shreddy 7\n!talklike Shreddy 7\n!talklike Shreddy 7\n!talklike Shreddy 7\n!talklike Shreddy 7\n!talklike Shreddy 7\n!talklike Shreddy 7\n!talklike Shreddy 7\n!talklike Shreddy 7\n!talklike Shreddy 7\n!talklike Shreddy 7\n!talklike Shreddy 7\n!talklike Shreddy 7\n!talklike Shreddy 7\n!talklike Shreddy 7\n!talklike Shreddy 7`);" + "command": "print(`7\n7\n7\n7\n7\n7\n7\n7\n7\n7\n7\n7\n7\n7\n7\n7\n7\n7\n7\n7\n7\n7\n7\n7\n7\n7\n7\n7\n7\n7`);" } \ No newline at end of file From 6f069b39db1eab34aa7a775b01cc5e5505cf9dbd Mon Sep 17 00:00:00 2001 From: kirjavascript Date: Wed, 23 Mar 2022 00:41:39 +0100 Subject: [PATCH 28/94] alg and cube --- commands/algexpand-960a621e7f6d.json | 7 +++++++ commands/alginvert-ffcacd719765.json | 7 +++++++ commands/cube-4266a5d58b29.json | 7 +++++++ commands/nick-4cb960ba64fe.json | 2 +- commands/pack-e83df7e52b13.json | 2 +- 5 files changed, 23 insertions(+), 2 deletions(-) create mode 100644 commands/algexpand-960a621e7f6d.json create mode 100644 commands/alginvert-ffcacd719765.json create mode 100644 commands/cube-4266a5d58b29.json diff --git a/commands/algexpand-960a621e7f6d.json b/commands/algexpand-960a621e7f6d.json new file mode 100644 index 0000000..cdf4442 --- /dev/null +++ b/commands/algexpand-960a621e7f6d.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "alg.expand", + "command": "const {Alg}=require('cubing/alg'); print(new Alg(input).expand().toString())" +} \ No newline at end of file diff --git a/commands/alginvert-ffcacd719765.json b/commands/alginvert-ffcacd719765.json new file mode 100644 index 0000000..1e67fa0 --- /dev/null +++ b/commands/alginvert-ffcacd719765.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "alg.invert", + "command": "const {Alg}=require('cubing/alg'); print(new Alg(input).invert().toString())" +} \ No newline at end of file diff --git a/commands/cube-4266a5d58b29.json b/commands/cube-4266a5d58b29.json new file mode 100644 index 0000000..882297b --- /dev/null +++ b/commands/cube-4266a5d58b29.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "cube", + "command": "\nconst centres = [\n // U B R F L D\n { color: 0, axis: 'y', offset: -1 },\n { color: 1, axis: 'z', offset: -1 },\n { color: 2, axis: 'x', offset: 1 },\n { color: 3, axis: 'z', offset: 1 },\n { color: 4, axis: 'x', offset: -1 },\n { color: 5, axis: 'y', offset: 1 },\n];\n\nconst edges = [\n // UB UR UF UL\n [ { color: 1, axis: 'z', offset: -1 }, { color: 0, axis: 'y', offset: -1 } ],\n [ { color: 2, axis: 'x', offset: 1 }, { color: 0, axis: 'y', offset: -1 } ],\n [ { color: 3, axis: 'z', offset: 1 }, { color: 0, axis: 'y', offset: -1 } ],\n [ { color: 4, axis: 'x', offset: -1 }, { color: 0, axis: 'y', offset: -1 } ],\n // BR FR FL BL\n [ { color: 2, axis: 'x', offset: 1 }, { color: 1, axis: 'z', offset: -1 } ],\n [ { color: 2, axis: 'x', offset: 1 }, { color: 3, axis: 'z', offset: 1 } ],\n [ { color: 4, axis: 'x', offset: -1 }, { color: 3, axis: 'z', offset: 1 } ],\n [ { color: 4, axis: 'x', offset: -1 }, { color: 1, axis: 'z', offset: -1 } ],\n // DB DR DF DL\n [ { color: 1, axis: 'z', offset: -1 }, { color: 5, axis: 'y', offset: 1 } ],\n [ { color: 2, axis: 'x', offset: 1 }, { color: 5, axis: 'y', offset: 1 } ],\n [ { color: 3, axis: 'z', offset: 1 }, { color: 5, axis: 'y', offset: 1 } ],\n [ { color: 4, axis: 'x', offset: -1 }, { color: 5, axis: 'y', offset: 1 } ],\n];\n\nconst corners = [\n // UBR URF UFL ULB\n [\n { color: 2, axis: 'x', offset: 1 },\n { color: 0, axis: 'y', offset: -1 },\n { color: 1, axis: 'z', offset: -1 },\n ],\n [\n { color: 2, axis: 'x', offset: 1 },\n { color: 0, axis: 'y', offset: -1 },\n { color: 3, axis: 'z', offset: 1 },\n ],\n [\n { color: 4, axis: 'x', offset: -1 },\n { color: 0, axis: 'y', offset: -1 },\n { color: 3, axis: 'z', offset: 1 },\n ],\n [\n { color: 4, axis: 'x', offset: -1 },\n { color: 0, axis: 'y', offset: -1 },\n { color: 1, axis: 'z', offset: -1 },\n ],\n // DRB DFR DLF DBL\n [\n { color: 2, axis: 'x', offset: 1 },\n { color: 5, axis: 'y', offset: 1 },\n { color: 1, axis: 'z', offset: -1 },\n ],\n [\n { color: 2, axis: 'x', offset: 1 },\n { color: 5, axis: 'y', offset: 1 },\n { color: 3, axis: 'z', offset: 1 },\n ],\n [\n { color: 4, axis: 'x', offset: -1 },\n { color: 5, axis: 'y', offset: 1 },\n { color: 3, axis: 'z', offset: 1 },\n ],\n [\n { color: 4, axis: 'x', offset: -1 },\n { color: 5, axis: 'y', offset: 1 },\n { color: 1, axis: 'z', offset: -1 },\n ],\n];\n\nconst colors = 'wbrgoy';\n\nfunction sticker(obj) {\n return `{${colors[obj.color]}}██{/}`;//■ \n}\n\nfunction render() {\n print([\n [sticker(corners[3][0]),sticker(corners[3][1]),sticker(edges[0][1]),sticker(corners[0][1]),sticker(corners[0][0])].join``,\n [sticker(edges[3][0]),sticker(edges[3][1]),sticker(centres[0]),sticker(edges[1][1]),sticker(edges[1][0])].join``,\n [sticker(corners[2][0]),sticker(corners[2][1]),sticker(edges[2][1]),sticker(corners[1][1]),sticker(corners[1][0])].join``,\n [sticker(corners[2][0]),sticker(corners[2][2]),sticker(edges[2][0]),sticker(corners[1][2]),sticker(corners[1][0])].join``,\n [sticker(edges[6][0]),sticker(edges[6][1]),sticker(centres[3]),sticker(edges[5][1]),sticker(edges[5][0])].join``,\n [sticker(corners[6][0]),sticker(corners[6][2]),sticker(edges[0xA][0]),sticker(corners[5][2]),sticker(corners[5][0])].join``,\n ].join`\\n`)\n}\n\nconst cube = {\n edges,\n corners,\n centres,\n};\n\n\n// U B R F L D\nconst moveList = {\n R: {\n edges: [5, 9, 4, 1],\n corners: [5, 4, 0, 1],\n centre: 2,\n axis: 'x',\n },\n U: {\n edges: [3, 2, 1, 0],\n corners: [3, 2, 1, 0],\n centre: 0,\n axis: 'y',\n },\n F: {\n edges: [6, 10, 5, 2],\n corners: [1, 2, 6, 5],\n centre: 3,\n axis: 'z',\n },\n L: {\n edges: [3, 7, 11, 6],\n corners: [2, 3, 7, 6],\n centre: 4,\n axis: 'x',\n axisFlip: true,\n },\n B: {\n edges: [4, 8, 7, 0],\n corners: [4, 7, 3, 0],\n centre: 1,\n axis: 'z',\n axisFlip: true,\n },\n D: {\n edges: [8, 9, 10, 11],\n corners: [4, 5, 6, 7],\n centre: 5,\n axis: 'y',\n axisFlip: true,\n },\n M: {\n centres: [0, 1, 5, 3],\n edges: [2, 0, 8, 10],\n axis: 'x',\n axisFlip: true,\n },\n E: {\n centres: [3, 4, 1, 2],\n edges: [4, 5, 6, 7],\n axis: 'y',\n axisFlip: true,\n },\n S: {\n centres: [4, 5, 2, 0],\n edges: [3, 11, 9, 1],\n axis: 'z',\n },\n r: { moves: [toObject(`R`), toObject(`M'`)] },\n l: { moves: [toObject(`L`), toObject(`M`)] },\n f: { moves: [toObject(`F`), toObject(`S`)] },\n b: { moves: [toObject(`B`), toObject(`S'`)] },\n u: { moves: [toObject(`U`), toObject(`E'`)] },\n d: { moves: [toObject(`D`), toObject(`E`)] },\n x: { moves: [toObject(`R`), toObject(`M'`), toObject(`L'`)] },\n y: { moves: [toObject(`U`), toObject(`E'`), toObject(`D'`)] },\n z: { moves: [toObject(`F`), toObject(`S`), toObject(`B'`)] },\n};\n\nfunction getMove(moveRaw) {\n const { move, order } = toObject(moveRaw);\n if (!moveList[move]) throw new Error(`invalid move ${move}`);\n const {\n corners,\n edges,\n centres,\n centre,\n axis,\n axisFlip,\n moves,\n } = moveList[move];\n\n // calculate transforms\n const transforms = [];\n corners && transforms.push(...corners.map(index => cube.corners[index]));\n edges && transforms.push(...edges.map(index => cube.edges[index]));\n centres && transforms.push(...centres.map(index => cube.centres[index]));\n typeof centre !== 'undefined' && transforms.push(cube.centres[centre]);\n const axisOrder = axisFlip ? -1 : 1;\n const extraMoves = moves && (\n moves.map(move => getMove(applyOrder(clone(move), order), cube))\n );\n\n // swap stickers / clean up move\n function apply() {\n extraMoves && extraMoves.forEach(move => move.apply());\n if (edges) {\n doCycle(cube.edges, order, edges, centres ? 'z' : axis);\n }\n if (centres) {\n doCycle(cube.centres, order, centres);\n }\n if (corners) {\n doCycle(cube.corners, order, corners, axis);\n }\n }\n\n return {\n apply,\n transforms,\n axis,\n source: { move, order },\n };\n}\n\nfunction getMoves(moves, cube) {\n return splitMoves(moves).map(move => getMove(move, cube));\n}\n\nfunction splitMoves(str) {\n if (typeof str !== 'string') return str;\n return str.split(/(\\ww?\\d?'?)/).filter(d => d.trim());\n}\n\nfunction toObject(move) {\n if (typeof move !== 'string') return move;\n if (move[1] === 'w') move = `${move[0].toLowerCase()}${move.slice(2) || ''}`;\n return {\n move: move[0],\n order: {\n '\\'': -1,\n '2\\'': -2,\n '2': 2,\n }[move.slice(1)] || 1,\n };\n}\n\nfunction clone(move) {\n return Object.assign({}, move);\n}\n\nfunction applyOrder(move, order) {\n if (order === 1) return move;\n if (order === -1) {\n move.order = move.order === 2 ? 2 : -move.order;\n }\n if (order === 2) {\n move.order = move.order === 2 ? 0 : 2;\n }\n return move;\n}\n\n\nconst cornerSwaps = {\n x: [1, 2],\n y: [0, 2],\n z: [0, 1],\n};\n\nfunction doCycle(arr, order, cycle, axis) {\n if (order === 0) return;\n if (order === -1 || order === 3) {\n cycle = [...cycle].reverse();\n }\n if (order === 2 || order === -2) {\n doCycle(arr, 1, cycle, axis);\n }\n\n // cycles\n for (let i = 0; i < cycle.length - 1; i++) {\n swap(arr, cycle[i], cycle[i + 1]);\n }\n\n // corner 'twists'\n if (arr[0].length === 3) {\n for (let i = 0; i < cycle.length; i++) {\n swap(arr[cycle[i]], ...cornerSwaps[axis]);\n }\n }\n // edge flips\n else if (axis === 'z') {\n for (let i = 0; i < cycle.length; i++) {\n swap(arr[cycle[i]], 0, 1);\n }\n }\n}\n\nfunction swap(arr, first, second) {\n const tmp = arr[first];\n arr[first] = arr[second];\n arr[second] = tmp;\n}\n\n\ngetMoves(input).forEach(move => move.apply());\n\nrender();" +} \ No newline at end of file diff --git a/commands/nick-4cb960ba64fe.json b/commands/nick-4cb960ba64fe.json index 7d3feb0..9952531 100644 --- a/commands/nick-4cb960ba64fe.json +++ b/commands/nick-4cb960ba64fe.json @@ -1,6 +1,6 @@ { "name": "nick", - "command": "if (IRC.command.params[0] === 'auth' || !IRC.setNick(input)) {\n const str = input.replace(/[^a-zA-Z0-9]+/g, '');\n const sudo = IRC.sudo();\n sudo.node.client.send.call('NICK', str);\n // reauth in case we got deauthed for whatever reason\n if (str.toLowerCase() == sudo.node.nickname.get().toLowerCase()) {\n sudo.node.client.say.call('nickserv', `identify ${sudo.node.password.get()}`);\n }\n}", + "command": "if (IRC.command.params[0] === 'auth' || !IRC.setNick(input)) {\n const str = input.replace(/[^a-zA-Z0-9]+/g, '');\n const sudo = IRC.sudo();\n sudo.node.client.send.call('NICK', str);\n // reauth in case we got deauthed for whatever reason\n if (str.toLowerCase() == sudo.node.config.nickname.get().toLowerCase()) {\n sudo.node.client.say.call('nickserv', `identify ${sudo.node.password.get()}`);\n }\n}", "locked": true, "starred": true } \ No newline at end of file diff --git a/commands/pack-e83df7e52b13.json b/commands/pack-e83df7e52b13.json index 058eb7e..731ca21 100644 --- a/commands/pack-e83df7e52b13.json +++ b/commands/pack-e83df7e52b13.json @@ -2,5 +2,5 @@ "locked": false, "starred": false, "name": "pack", - "command": "print.raw('\\|/\\|/ listen up... public announcement: Grind your weed, get your weed, pack your weed, just be ready for a chan wide toke-out in 1 minute. \\|/\\|/');" + "command": "print.raw('\\|/\\|/ listen up... public announcement: Grind your {g}weed{/}, get your {g}weed{/}, pack your {g}weed{/}, just be ready for a chan wide toke-out in 1 minute. \\|/\\|/');" } \ No newline at end of file From d41e2b317c31bc87a4701b9604266fa7b4642a02 Mon Sep 17 00:00:00 2001 From: kirjavascript Date: Wed, 23 Mar 2022 18:00:24 +0100 Subject: [PATCH 29/94] cube view, expand, scramble, mini --- commands/cube-4266a5d58b29.json | 2 +- commands/cubeapply-7d8aaf5e466a.json | 7 +++++++ commands/cubeexpand-3835f1c3238d.json | 7 +++++++ commands/cubemini-cd008fce8b41.json | 7 +++++++ commands/cubescramble-9f56b8f9eb1f.json | 7 +++++++ commands/cubeview-0b18f2323aa8.json | 7 +++++++ 6 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 commands/cubeapply-7d8aaf5e466a.json create mode 100644 commands/cubeexpand-3835f1c3238d.json create mode 100644 commands/cubemini-cd008fce8b41.json create mode 100644 commands/cubescramble-9f56b8f9eb1f.json create mode 100644 commands/cubeview-0b18f2323aa8.json diff --git a/commands/cube-4266a5d58b29.json b/commands/cube-4266a5d58b29.json index 882297b..c812218 100644 --- a/commands/cube-4266a5d58b29.json +++ b/commands/cube-4266a5d58b29.json @@ -3,5 +3,5 @@ "locked": false, "starred": false, "name": "cube", - "command": "\nconst centres = [\n // U B R F L D\n { color: 0, axis: 'y', offset: -1 },\n { color: 1, axis: 'z', offset: -1 },\n { color: 2, axis: 'x', offset: 1 },\n { color: 3, axis: 'z', offset: 1 },\n { color: 4, axis: 'x', offset: -1 },\n { color: 5, axis: 'y', offset: 1 },\n];\n\nconst edges = [\n // UB UR UF UL\n [ { color: 1, axis: 'z', offset: -1 }, { color: 0, axis: 'y', offset: -1 } ],\n [ { color: 2, axis: 'x', offset: 1 }, { color: 0, axis: 'y', offset: -1 } ],\n [ { color: 3, axis: 'z', offset: 1 }, { color: 0, axis: 'y', offset: -1 } ],\n [ { color: 4, axis: 'x', offset: -1 }, { color: 0, axis: 'y', offset: -1 } ],\n // BR FR FL BL\n [ { color: 2, axis: 'x', offset: 1 }, { color: 1, axis: 'z', offset: -1 } ],\n [ { color: 2, axis: 'x', offset: 1 }, { color: 3, axis: 'z', offset: 1 } ],\n [ { color: 4, axis: 'x', offset: -1 }, { color: 3, axis: 'z', offset: 1 } ],\n [ { color: 4, axis: 'x', offset: -1 }, { color: 1, axis: 'z', offset: -1 } ],\n // DB DR DF DL\n [ { color: 1, axis: 'z', offset: -1 }, { color: 5, axis: 'y', offset: 1 } ],\n [ { color: 2, axis: 'x', offset: 1 }, { color: 5, axis: 'y', offset: 1 } ],\n [ { color: 3, axis: 'z', offset: 1 }, { color: 5, axis: 'y', offset: 1 } ],\n [ { color: 4, axis: 'x', offset: -1 }, { color: 5, axis: 'y', offset: 1 } ],\n];\n\nconst corners = [\n // UBR URF UFL ULB\n [\n { color: 2, axis: 'x', offset: 1 },\n { color: 0, axis: 'y', offset: -1 },\n { color: 1, axis: 'z', offset: -1 },\n ],\n [\n { color: 2, axis: 'x', offset: 1 },\n { color: 0, axis: 'y', offset: -1 },\n { color: 3, axis: 'z', offset: 1 },\n ],\n [\n { color: 4, axis: 'x', offset: -1 },\n { color: 0, axis: 'y', offset: -1 },\n { color: 3, axis: 'z', offset: 1 },\n ],\n [\n { color: 4, axis: 'x', offset: -1 },\n { color: 0, axis: 'y', offset: -1 },\n { color: 1, axis: 'z', offset: -1 },\n ],\n // DRB DFR DLF DBL\n [\n { color: 2, axis: 'x', offset: 1 },\n { color: 5, axis: 'y', offset: 1 },\n { color: 1, axis: 'z', offset: -1 },\n ],\n [\n { color: 2, axis: 'x', offset: 1 },\n { color: 5, axis: 'y', offset: 1 },\n { color: 3, axis: 'z', offset: 1 },\n ],\n [\n { color: 4, axis: 'x', offset: -1 },\n { color: 5, axis: 'y', offset: 1 },\n { color: 3, axis: 'z', offset: 1 },\n ],\n [\n { color: 4, axis: 'x', offset: -1 },\n { color: 5, axis: 'y', offset: 1 },\n { color: 1, axis: 'z', offset: -1 },\n ],\n];\n\nconst colors = 'wbrgoy';\n\nfunction sticker(obj) {\n return `{${colors[obj.color]}}██{/}`;//■ \n}\n\nfunction render() {\n print([\n [sticker(corners[3][0]),sticker(corners[3][1]),sticker(edges[0][1]),sticker(corners[0][1]),sticker(corners[0][0])].join``,\n [sticker(edges[3][0]),sticker(edges[3][1]),sticker(centres[0]),sticker(edges[1][1]),sticker(edges[1][0])].join``,\n [sticker(corners[2][0]),sticker(corners[2][1]),sticker(edges[2][1]),sticker(corners[1][1]),sticker(corners[1][0])].join``,\n [sticker(corners[2][0]),sticker(corners[2][2]),sticker(edges[2][0]),sticker(corners[1][2]),sticker(corners[1][0])].join``,\n [sticker(edges[6][0]),sticker(edges[6][1]),sticker(centres[3]),sticker(edges[5][1]),sticker(edges[5][0])].join``,\n [sticker(corners[6][0]),sticker(corners[6][2]),sticker(edges[0xA][0]),sticker(corners[5][2]),sticker(corners[5][0])].join``,\n ].join`\\n`)\n}\n\nconst cube = {\n edges,\n corners,\n centres,\n};\n\n\n// U B R F L D\nconst moveList = {\n R: {\n edges: [5, 9, 4, 1],\n corners: [5, 4, 0, 1],\n centre: 2,\n axis: 'x',\n },\n U: {\n edges: [3, 2, 1, 0],\n corners: [3, 2, 1, 0],\n centre: 0,\n axis: 'y',\n },\n F: {\n edges: [6, 10, 5, 2],\n corners: [1, 2, 6, 5],\n centre: 3,\n axis: 'z',\n },\n L: {\n edges: [3, 7, 11, 6],\n corners: [2, 3, 7, 6],\n centre: 4,\n axis: 'x',\n axisFlip: true,\n },\n B: {\n edges: [4, 8, 7, 0],\n corners: [4, 7, 3, 0],\n centre: 1,\n axis: 'z',\n axisFlip: true,\n },\n D: {\n edges: [8, 9, 10, 11],\n corners: [4, 5, 6, 7],\n centre: 5,\n axis: 'y',\n axisFlip: true,\n },\n M: {\n centres: [0, 1, 5, 3],\n edges: [2, 0, 8, 10],\n axis: 'x',\n axisFlip: true,\n },\n E: {\n centres: [3, 4, 1, 2],\n edges: [4, 5, 6, 7],\n axis: 'y',\n axisFlip: true,\n },\n S: {\n centres: [4, 5, 2, 0],\n edges: [3, 11, 9, 1],\n axis: 'z',\n },\n r: { moves: [toObject(`R`), toObject(`M'`)] },\n l: { moves: [toObject(`L`), toObject(`M`)] },\n f: { moves: [toObject(`F`), toObject(`S`)] },\n b: { moves: [toObject(`B`), toObject(`S'`)] },\n u: { moves: [toObject(`U`), toObject(`E'`)] },\n d: { moves: [toObject(`D`), toObject(`E`)] },\n x: { moves: [toObject(`R`), toObject(`M'`), toObject(`L'`)] },\n y: { moves: [toObject(`U`), toObject(`E'`), toObject(`D'`)] },\n z: { moves: [toObject(`F`), toObject(`S`), toObject(`B'`)] },\n};\n\nfunction getMove(moveRaw) {\n const { move, order } = toObject(moveRaw);\n if (!moveList[move]) throw new Error(`invalid move ${move}`);\n const {\n corners,\n edges,\n centres,\n centre,\n axis,\n axisFlip,\n moves,\n } = moveList[move];\n\n // calculate transforms\n const transforms = [];\n corners && transforms.push(...corners.map(index => cube.corners[index]));\n edges && transforms.push(...edges.map(index => cube.edges[index]));\n centres && transforms.push(...centres.map(index => cube.centres[index]));\n typeof centre !== 'undefined' && transforms.push(cube.centres[centre]);\n const axisOrder = axisFlip ? -1 : 1;\n const extraMoves = moves && (\n moves.map(move => getMove(applyOrder(clone(move), order), cube))\n );\n\n // swap stickers / clean up move\n function apply() {\n extraMoves && extraMoves.forEach(move => move.apply());\n if (edges) {\n doCycle(cube.edges, order, edges, centres ? 'z' : axis);\n }\n if (centres) {\n doCycle(cube.centres, order, centres);\n }\n if (corners) {\n doCycle(cube.corners, order, corners, axis);\n }\n }\n\n return {\n apply,\n transforms,\n axis,\n source: { move, order },\n };\n}\n\nfunction getMoves(moves, cube) {\n return splitMoves(moves).map(move => getMove(move, cube));\n}\n\nfunction splitMoves(str) {\n if (typeof str !== 'string') return str;\n return str.split(/(\\ww?\\d?'?)/).filter(d => d.trim());\n}\n\nfunction toObject(move) {\n if (typeof move !== 'string') return move;\n if (move[1] === 'w') move = `${move[0].toLowerCase()}${move.slice(2) || ''}`;\n return {\n move: move[0],\n order: {\n '\\'': -1,\n '2\\'': -2,\n '2': 2,\n }[move.slice(1)] || 1,\n };\n}\n\nfunction clone(move) {\n return Object.assign({}, move);\n}\n\nfunction applyOrder(move, order) {\n if (order === 1) return move;\n if (order === -1) {\n move.order = move.order === 2 ? 2 : -move.order;\n }\n if (order === 2) {\n move.order = move.order === 2 ? 0 : 2;\n }\n return move;\n}\n\n\nconst cornerSwaps = {\n x: [1, 2],\n y: [0, 2],\n z: [0, 1],\n};\n\nfunction doCycle(arr, order, cycle, axis) {\n if (order === 0) return;\n if (order === -1 || order === 3) {\n cycle = [...cycle].reverse();\n }\n if (order === 2 || order === -2) {\n doCycle(arr, 1, cycle, axis);\n }\n\n // cycles\n for (let i = 0; i < cycle.length - 1; i++) {\n swap(arr, cycle[i], cycle[i + 1]);\n }\n\n // corner 'twists'\n if (arr[0].length === 3) {\n for (let i = 0; i < cycle.length; i++) {\n swap(arr[cycle[i]], ...cornerSwaps[axis]);\n }\n }\n // edge flips\n else if (axis === 'z') {\n for (let i = 0; i < cycle.length; i++) {\n swap(arr[cycle[i]], 0, 1);\n }\n }\n}\n\nfunction swap(arr, first, second) {\n const tmp = arr[first];\n arr[first] = arr[second];\n arr[second] = tmp;\n}\n\n\ngetMoves(input).forEach(move => move.apply());\n\nrender();" + "command": "const centres = [\n // U B R F L D\n { color: 0, axis: 'y', offset: -1 },\n { color: 1, axis: 'z', offset: -1 },\n { color: 2, axis: 'x', offset: 1 },\n { color: 3, axis: 'z', offset: 1 },\n { color: 4, axis: 'x', offset: -1 },\n { color: 5, axis: 'y', offset: 1 },\n];\n\nconst edges = [\n // UB UR UF UL\n [ { color: 1, axis: 'z', offset: -1 }, { color: 0, axis: 'y', offset: -1 } ],\n [ { color: 2, axis: 'x', offset: 1 }, { color: 0, axis: 'y', offset: -1 } ],\n [ { color: 3, axis: 'z', offset: 1 }, { color: 0, axis: 'y', offset: -1 } ],\n [ { color: 4, axis: 'x', offset: -1 }, { color: 0, axis: 'y', offset: -1 } ],\n // BR FR FL BL\n [ { color: 2, axis: 'x', offset: 1 }, { color: 1, axis: 'z', offset: -1 } ],\n [ { color: 2, axis: 'x', offset: 1 }, { color: 3, axis: 'z', offset: 1 } ],\n [ { color: 4, axis: 'x', offset: -1 }, { color: 3, axis: 'z', offset: 1 } ],\n [ { color: 4, axis: 'x', offset: -1 }, { color: 1, axis: 'z', offset: -1 } ],\n // DB DR DF DL\n [ { color: 1, axis: 'z', offset: -1 }, { color: 5, axis: 'y', offset: 1 } ],\n [ { color: 2, axis: 'x', offset: 1 }, { color: 5, axis: 'y', offset: 1 } ],\n [ { color: 3, axis: 'z', offset: 1 }, { color: 5, axis: 'y', offset: 1 } ],\n [ { color: 4, axis: 'x', offset: -1 }, { color: 5, axis: 'y', offset: 1 } ],\n];\n\nconst corners = [\n // UBR URF UFL ULB\n [\n { color: 2, axis: 'x', offset: 1 },\n { color: 0, axis: 'y', offset: -1 },\n { color: 1, axis: 'z', offset: -1 },\n ],\n [\n { color: 2, axis: 'x', offset: 1 },\n { color: 0, axis: 'y', offset: -1 },\n { color: 3, axis: 'z', offset: 1 },\n ],\n [\n { color: 4, axis: 'x', offset: -1 },\n { color: 0, axis: 'y', offset: -1 },\n { color: 3, axis: 'z', offset: 1 },\n ],\n [\n { color: 4, axis: 'x', offset: -1 },\n { color: 0, axis: 'y', offset: -1 },\n { color: 1, axis: 'z', offset: -1 },\n ],\n // DRB DFR DLF DBL\n [\n { color: 2, axis: 'x', offset: 1 },\n { color: 5, axis: 'y', offset: 1 },\n { color: 1, axis: 'z', offset: -1 },\n ],\n [\n { color: 2, axis: 'x', offset: 1 },\n { color: 5, axis: 'y', offset: 1 },\n { color: 3, axis: 'z', offset: 1 },\n ],\n [\n { color: 4, axis: 'x', offset: -1 },\n { color: 5, axis: 'y', offset: 1 },\n { color: 3, axis: 'z', offset: 1 },\n ],\n [\n { color: 4, axis: 'x', offset: -1 },\n { color: 5, axis: 'y', offset: 1 },\n { color: 1, axis: 'z', offset: -1 },\n ],\n];\n\nconst cube = {\n edges,\n corners,\n centres,\n};\n\n// U B R F L D\nconst moveList = {\n R: {\n edges: [5, 9, 4, 1],\n corners: [5, 4, 0, 1],\n centre: 2,\n axis: 'x',\n },\n U: {\n edges: [3, 2, 1, 0],\n corners: [3, 2, 1, 0],\n centre: 0,\n axis: 'y',\n },\n F: {\n edges: [6, 10, 5, 2],\n corners: [1, 2, 6, 5],\n centre: 3,\n axis: 'z',\n },\n L: {\n edges: [3, 7, 11, 6],\n corners: [2, 3, 7, 6],\n centre: 4,\n axis: 'x',\n axisFlip: true,\n },\n B: {\n edges: [4, 8, 7, 0],\n corners: [4, 7, 3, 0],\n centre: 1,\n axis: 'z',\n axisFlip: true,\n },\n D: {\n edges: [8, 9, 10, 11],\n corners: [4, 5, 6, 7],\n centre: 5,\n axis: 'y',\n axisFlip: true,\n },\n M: {\n centres: [0, 1, 5, 3],\n edges: [2, 0, 8, 10],\n axis: 'x',\n axisFlip: true,\n },\n E: {\n centres: [3, 4, 1, 2],\n edges: [4, 5, 6, 7],\n axis: 'y',\n axisFlip: true,\n },\n S: {\n centres: [4, 5, 2, 0],\n edges: [3, 11, 9, 1],\n axis: 'z',\n },\n r: { moves: [toObject(`R`), toObject(`M'`)] },\n l: { moves: [toObject(`L`), toObject(`M`)] },\n f: { moves: [toObject(`F`), toObject(`S`)] },\n b: { moves: [toObject(`B`), toObject(`S'`)] },\n u: { moves: [toObject(`U`), toObject(`E'`)] },\n d: { moves: [toObject(`D`), toObject(`E`)] },\n x: { moves: [toObject(`R`), toObject(`M'`), toObject(`L'`)] },\n y: { moves: [toObject(`U`), toObject(`E'`), toObject(`D'`)] },\n z: { moves: [toObject(`F`), toObject(`S`), toObject(`B'`)] },\n};\n\nfunction getMove(moveRaw) {\n const { move, order } = toObject(moveRaw);\n if (!moveList[move]) throw new Error(`invalid move ${move}`);\n const {\n corners,\n edges,\n centres,\n centre,\n axis,\n axisFlip,\n moves,\n } = moveList[move];\n\n // calculate transforms\n const transforms = [];\n corners && transforms.push(...corners.map(index => cube.corners[index]));\n edges && transforms.push(...edges.map(index => cube.edges[index]));\n centres && transforms.push(...centres.map(index => cube.centres[index]));\n typeof centre !== 'undefined' && transforms.push(cube.centres[centre]);\n const axisOrder = axisFlip ? -1 : 1;\n const extraMoves = moves && (\n moves.map(move => getMove(applyOrder(clone(move), order), cube))\n );\n\n // swap stickers / clean up move\n function apply() {\n extraMoves && extraMoves.forEach(move => move.apply());\n if (edges) {\n doCycle(cube.edges, order, edges, centres ? 'z' : axis);\n }\n if (centres) {\n doCycle(cube.centres, order, centres);\n }\n if (corners) {\n doCycle(cube.corners, order, corners, axis);\n }\n }\n\n return {\n apply,\n transforms,\n axis,\n source: { move, order },\n };\n}\n\nfunction getMoves(moves) {\n return splitMoves(moves).map(move => getMove(move, cube));\n}\n\nfunction splitMoves(str) {\n if (typeof str !== 'string') return str;\n return str.split(/(\\ww?\\d?'?)/).filter(d => d.trim());\n}\n\nfunction toObject(move) {\n if (typeof move !== 'string') return move;\n if (move[1] === 'w') move = `${move[0].toLowerCase()}${move.slice(2) || ''}`;\n return {\n move: move[0],\n order: {\n '\\'': -1,\n '2\\'': -2,\n '2': 2,\n }[move.slice(1)] || 1,\n };\n}\n\nfunction clone(move) {\n return Object.assign({}, move);\n}\n\nfunction applyOrder(move, order) {\n if (order === 1) return move;\n if (order === -1) {\n move.order = move.order === 2 ? 2 : -move.order;\n }\n if (order === 2) {\n move.order = move.order === 2 ? 0 : 2;\n }\n return move;\n}\n\n\nconst cornerSwaps = {\n x: [1, 2],\n y: [0, 2],\n z: [0, 1],\n};\n\nfunction doCycle(arr, order, cycle, axis) {\n if (order === 0) return;\n if (order === -1 || order === 3) {\n cycle = [...cycle].reverse();\n }\n if (order === 2 || order === -2) {\n doCycle(arr, 1, cycle, axis);\n }\n\n // cycles\n for (let i = 0; i < cycle.length - 1; i++) {\n swap(arr, cycle[i], cycle[i + 1]);\n }\n\n // corner 'twists'\n if (arr[0].length === 3) {\n for (let i = 0; i < cycle.length; i++) {\n swap(arr[cycle[i]], ...cornerSwaps[axis]);\n }\n }\n // edge flips\n else if (axis === 'z') {\n for (let i = 0; i < cycle.length; i++) {\n swap(arr[cycle[i]], 0, 1);\n }\n }\n}\n\nfunction swap(arr, first, second) {\n const tmp = arr[first];\n arr[first] = arr[second];\n arr[second] = tmp;\n}\n\n\n// IRC stuff\n\nconst colors = 'wbrgoy';\n\nfunction renderNormal() {\n function sticker(obj) {\n return `{${colors[obj.color]}}██{/}`;\n }\n\n print([\n [sticker(cube.corners[3][0]),sticker(cube.corners[3][1]),sticker(cube.edges[0][1]),sticker(cube.corners[0][1]),sticker(cube.corners[0][0])].join``,\n [sticker(cube.edges[3][0]),sticker(cube.edges[3][1]),sticker(cube.centres[0]),sticker(cube.edges[1][1]),sticker(cube.edges[1][0])].join``,\n [sticker(cube.corners[2][0]),sticker(cube.corners[2][1]),sticker(cube.edges[2][1]),sticker(cube.corners[1][1]),sticker(cube.corners[1][0])].join``,\n [sticker(cube.corners[2][0]),sticker(cube.corners[2][2]),sticker(cube.edges[2][0]),sticker(cube.corners[1][2]),sticker(cube.corners[1][0])].join``,\n [sticker(cube.edges[6][0]),sticker(cube.edges[6][1]),sticker(cube.centres[3]),sticker(cube.edges[5][1]),sticker(cube.edges[5][0])].join``,\n [sticker(cube.corners[6][0]),sticker(cube.corners[6][2]),sticker(cube.edges[0xA][0]),sticker(cube.corners[5][2]),sticker(cube.corners[5][0])].join``,\n ].join`\\n`)\n}\n\nfunction renderMini() {\n function sticker(obj) {\n return colors[obj.color]; \n }\n function crunch([l1, l2]) {\n return l1.map((d, i) => `{${d},${l2[i]}}▀{/}`).join``;\n }\n print([\n crunch([[sticker(cube.corners[3][0]),sticker(cube.corners[3][1]),sticker(cube.edges[0][1]),sticker(cube.corners[0][1]),sticker(cube.corners[0][0])],\n [sticker(cube.edges[3][0]),sticker(cube.edges[3][1]),sticker(cube.centres[0]),sticker(cube.edges[1][1]),sticker(cube.edges[1][0])]]),\n crunch([[sticker(cube.corners[2][0]),sticker(cube.corners[2][1]),sticker(cube.edges[2][1]),sticker(cube.corners[1][1]),sticker(cube.corners[1][0])],\n [sticker(cube.corners[2][0]),sticker(cube.corners[2][2]),sticker(cube.edges[2][0]),sticker(cube.corners[1][2]),sticker(cube.corners[1][0])]]),\n crunch([[sticker(cube.edges[6][0]),sticker(cube.edges[6][1]),sticker(cube.centres[3]),sticker(cube.edges[5][1]),sticker(cube.edges[5][0])],\n [sticker(cube.corners[6][0]),sticker(cube.corners[6][2]),sticker(cube.edges[0xA][0]),sticker(cube.corners[5][2]),sticker(cube.corners[5][0])]]),\n ].join`\\n`)\n}\n\n\nconst { from } = IRC.message;\n\nfunction save() {\n store.set(from, JSON.stringify(cube));\n}\n\nfunction load() {\n const next = store.get(from);\n if (next) {\n Object.assign(cube, JSON.parse(next));\n }\n}\n\n// start on first move\n// log scramble, solution\n\nfunction startSolve() {\n}\n\nfunction doMoves(moves) {\n getMoves(moves).forEach(move => move.apply());\n}\n\nconst scrambler = IRC.require('scramble');\n\nfunction scramble(type) {\n type = type.toUpperCase().trim();\n !types['LL', 'LSE'].includes(type) && (type = '3x3');\n\n const scramble = {\n LL: scrambler.getLLScramble(),\n LSE: `xy'` + scrambler.getLSEScramble() + ['', ' M2'][0|Math.random()*2],\n }[type] || (() => scrambler.getRandomScramble())();\n\n doMoves(scramble);\n\n store.save(`${from}:solve`, {\n moves: [],\n scramble,\n type,\n });\n\n save();\n render();\n}\n\nfunction apply(moves) {\n load();\n doMoves(moves);\n save();\n render();\n}\n\nfunction mini() {\n doMoves(input);\n renderMini();\n}\n\nfunction view(view) {\n if (!view) {\n throw `usage: ${IRC.colors.cmd('cube.view', 'mini|normal')}`;\n }\n store.set(`${from}:view`, view);\n print(`Size for ${from} set to ${view}`);\n}\n\nfunction render() {\n if (store.get(`${from}:view`) === 'mini') {\n renderMini();\n } else {\n renderNormal();\n }\n}\n\nif (IRC.command.path === 'cube') {\n doMoves(input);\n render();\n} else {\n module.exports = { cube, scramble, render, apply, getMoves, doMoves, mini, view };\n}" } \ No newline at end of file diff --git a/commands/cubeapply-7d8aaf5e466a.json b/commands/cubeapply-7d8aaf5e466a.json new file mode 100644 index 0000000..5361ecc --- /dev/null +++ b/commands/cubeapply-7d8aaf5e466a.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "cube.apply", + "command": "IRC.require('cube').apply(input);" +} \ No newline at end of file diff --git a/commands/cubeexpand-3835f1c3238d.json b/commands/cubeexpand-3835f1c3238d.json new file mode 100644 index 0000000..e962106 --- /dev/null +++ b/commands/cubeexpand-3835f1c3238d.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "cube.expand", + "command": "const {Alg}=require('cubing/alg');\nx = new Alg(input).expand().toString();\ncube = IRC.require('cube');\ncube.doMoves(x);\ncube.render();\n" +} \ No newline at end of file diff --git a/commands/cubemini-cd008fce8b41.json b/commands/cubemini-cd008fce8b41.json new file mode 100644 index 0000000..b57d525 --- /dev/null +++ b/commands/cubemini-cd008fce8b41.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "cube.mini", + "command": "IRC.require('cube').mini(input);" +} \ No newline at end of file diff --git a/commands/cubescramble-9f56b8f9eb1f.json b/commands/cubescramble-9f56b8f9eb1f.json new file mode 100644 index 0000000..5a378c0 --- /dev/null +++ b/commands/cubescramble-9f56b8f9eb1f.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "cube.scramble", + "command": "IRC.require('cube').scramble(input);" +} \ No newline at end of file diff --git a/commands/cubeview-0b18f2323aa8.json b/commands/cubeview-0b18f2323aa8.json new file mode 100644 index 0000000..f496919 --- /dev/null +++ b/commands/cubeview-0b18f2323aa8.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "cube.view", + "command": "IRC.require('cube').view(input);" +} \ No newline at end of file From 575d8da07b3da53205c0332b03d9b9e644c65073 Mon Sep 17 00:00:00 2001 From: kirjavascript Date: Thu, 24 Mar 2022 21:17:06 +0100 Subject: [PATCH 30/94] timer stuff, more renders --- commands/cube-4266a5d58b29.json | 2 +- commands/cubescores-1321c5832778.json | 7 +++++++ commands/cubetest-a388106f4500.json | 7 +++++++ 3 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 commands/cubescores-1321c5832778.json create mode 100644 commands/cubetest-a388106f4500.json diff --git a/commands/cube-4266a5d58b29.json b/commands/cube-4266a5d58b29.json index c812218..df4e9d8 100644 --- a/commands/cube-4266a5d58b29.json +++ b/commands/cube-4266a5d58b29.json @@ -3,5 +3,5 @@ "locked": false, "starred": false, "name": "cube", - "command": "const centres = [\n // U B R F L D\n { color: 0, axis: 'y', offset: -1 },\n { color: 1, axis: 'z', offset: -1 },\n { color: 2, axis: 'x', offset: 1 },\n { color: 3, axis: 'z', offset: 1 },\n { color: 4, axis: 'x', offset: -1 },\n { color: 5, axis: 'y', offset: 1 },\n];\n\nconst edges = [\n // UB UR UF UL\n [ { color: 1, axis: 'z', offset: -1 }, { color: 0, axis: 'y', offset: -1 } ],\n [ { color: 2, axis: 'x', offset: 1 }, { color: 0, axis: 'y', offset: -1 } ],\n [ { color: 3, axis: 'z', offset: 1 }, { color: 0, axis: 'y', offset: -1 } ],\n [ { color: 4, axis: 'x', offset: -1 }, { color: 0, axis: 'y', offset: -1 } ],\n // BR FR FL BL\n [ { color: 2, axis: 'x', offset: 1 }, { color: 1, axis: 'z', offset: -1 } ],\n [ { color: 2, axis: 'x', offset: 1 }, { color: 3, axis: 'z', offset: 1 } ],\n [ { color: 4, axis: 'x', offset: -1 }, { color: 3, axis: 'z', offset: 1 } ],\n [ { color: 4, axis: 'x', offset: -1 }, { color: 1, axis: 'z', offset: -1 } ],\n // DB DR DF DL\n [ { color: 1, axis: 'z', offset: -1 }, { color: 5, axis: 'y', offset: 1 } ],\n [ { color: 2, axis: 'x', offset: 1 }, { color: 5, axis: 'y', offset: 1 } ],\n [ { color: 3, axis: 'z', offset: 1 }, { color: 5, axis: 'y', offset: 1 } ],\n [ { color: 4, axis: 'x', offset: -1 }, { color: 5, axis: 'y', offset: 1 } ],\n];\n\nconst corners = [\n // UBR URF UFL ULB\n [\n { color: 2, axis: 'x', offset: 1 },\n { color: 0, axis: 'y', offset: -1 },\n { color: 1, axis: 'z', offset: -1 },\n ],\n [\n { color: 2, axis: 'x', offset: 1 },\n { color: 0, axis: 'y', offset: -1 },\n { color: 3, axis: 'z', offset: 1 },\n ],\n [\n { color: 4, axis: 'x', offset: -1 },\n { color: 0, axis: 'y', offset: -1 },\n { color: 3, axis: 'z', offset: 1 },\n ],\n [\n { color: 4, axis: 'x', offset: -1 },\n { color: 0, axis: 'y', offset: -1 },\n { color: 1, axis: 'z', offset: -1 },\n ],\n // DRB DFR DLF DBL\n [\n { color: 2, axis: 'x', offset: 1 },\n { color: 5, axis: 'y', offset: 1 },\n { color: 1, axis: 'z', offset: -1 },\n ],\n [\n { color: 2, axis: 'x', offset: 1 },\n { color: 5, axis: 'y', offset: 1 },\n { color: 3, axis: 'z', offset: 1 },\n ],\n [\n { color: 4, axis: 'x', offset: -1 },\n { color: 5, axis: 'y', offset: 1 },\n { color: 3, axis: 'z', offset: 1 },\n ],\n [\n { color: 4, axis: 'x', offset: -1 },\n { color: 5, axis: 'y', offset: 1 },\n { color: 1, axis: 'z', offset: -1 },\n ],\n];\n\nconst cube = {\n edges,\n corners,\n centres,\n};\n\n// U B R F L D\nconst moveList = {\n R: {\n edges: [5, 9, 4, 1],\n corners: [5, 4, 0, 1],\n centre: 2,\n axis: 'x',\n },\n U: {\n edges: [3, 2, 1, 0],\n corners: [3, 2, 1, 0],\n centre: 0,\n axis: 'y',\n },\n F: {\n edges: [6, 10, 5, 2],\n corners: [1, 2, 6, 5],\n centre: 3,\n axis: 'z',\n },\n L: {\n edges: [3, 7, 11, 6],\n corners: [2, 3, 7, 6],\n centre: 4,\n axis: 'x',\n axisFlip: true,\n },\n B: {\n edges: [4, 8, 7, 0],\n corners: [4, 7, 3, 0],\n centre: 1,\n axis: 'z',\n axisFlip: true,\n },\n D: {\n edges: [8, 9, 10, 11],\n corners: [4, 5, 6, 7],\n centre: 5,\n axis: 'y',\n axisFlip: true,\n },\n M: {\n centres: [0, 1, 5, 3],\n edges: [2, 0, 8, 10],\n axis: 'x',\n axisFlip: true,\n },\n E: {\n centres: [3, 4, 1, 2],\n edges: [4, 5, 6, 7],\n axis: 'y',\n axisFlip: true,\n },\n S: {\n centres: [4, 5, 2, 0],\n edges: [3, 11, 9, 1],\n axis: 'z',\n },\n r: { moves: [toObject(`R`), toObject(`M'`)] },\n l: { moves: [toObject(`L`), toObject(`M`)] },\n f: { moves: [toObject(`F`), toObject(`S`)] },\n b: { moves: [toObject(`B`), toObject(`S'`)] },\n u: { moves: [toObject(`U`), toObject(`E'`)] },\n d: { moves: [toObject(`D`), toObject(`E`)] },\n x: { moves: [toObject(`R`), toObject(`M'`), toObject(`L'`)] },\n y: { moves: [toObject(`U`), toObject(`E'`), toObject(`D'`)] },\n z: { moves: [toObject(`F`), toObject(`S`), toObject(`B'`)] },\n};\n\nfunction getMove(moveRaw) {\n const { move, order } = toObject(moveRaw);\n if (!moveList[move]) throw new Error(`invalid move ${move}`);\n const {\n corners,\n edges,\n centres,\n centre,\n axis,\n axisFlip,\n moves,\n } = moveList[move];\n\n // calculate transforms\n const transforms = [];\n corners && transforms.push(...corners.map(index => cube.corners[index]));\n edges && transforms.push(...edges.map(index => cube.edges[index]));\n centres && transforms.push(...centres.map(index => cube.centres[index]));\n typeof centre !== 'undefined' && transforms.push(cube.centres[centre]);\n const axisOrder = axisFlip ? -1 : 1;\n const extraMoves = moves && (\n moves.map(move => getMove(applyOrder(clone(move), order), cube))\n );\n\n // swap stickers / clean up move\n function apply() {\n extraMoves && extraMoves.forEach(move => move.apply());\n if (edges) {\n doCycle(cube.edges, order, edges, centres ? 'z' : axis);\n }\n if (centres) {\n doCycle(cube.centres, order, centres);\n }\n if (corners) {\n doCycle(cube.corners, order, corners, axis);\n }\n }\n\n return {\n apply,\n transforms,\n axis,\n source: { move, order },\n };\n}\n\nfunction getMoves(moves) {\n return splitMoves(moves).map(move => getMove(move, cube));\n}\n\nfunction splitMoves(str) {\n if (typeof str !== 'string') return str;\n return str.split(/(\\ww?\\d?'?)/).filter(d => d.trim());\n}\n\nfunction toObject(move) {\n if (typeof move !== 'string') return move;\n if (move[1] === 'w') move = `${move[0].toLowerCase()}${move.slice(2) || ''}`;\n return {\n move: move[0],\n order: {\n '\\'': -1,\n '2\\'': -2,\n '2': 2,\n }[move.slice(1)] || 1,\n };\n}\n\nfunction clone(move) {\n return Object.assign({}, move);\n}\n\nfunction applyOrder(move, order) {\n if (order === 1) return move;\n if (order === -1) {\n move.order = move.order === 2 ? 2 : -move.order;\n }\n if (order === 2) {\n move.order = move.order === 2 ? 0 : 2;\n }\n return move;\n}\n\n\nconst cornerSwaps = {\n x: [1, 2],\n y: [0, 2],\n z: [0, 1],\n};\n\nfunction doCycle(arr, order, cycle, axis) {\n if (order === 0) return;\n if (order === -1 || order === 3) {\n cycle = [...cycle].reverse();\n }\n if (order === 2 || order === -2) {\n doCycle(arr, 1, cycle, axis);\n }\n\n // cycles\n for (let i = 0; i < cycle.length - 1; i++) {\n swap(arr, cycle[i], cycle[i + 1]);\n }\n\n // corner 'twists'\n if (arr[0].length === 3) {\n for (let i = 0; i < cycle.length; i++) {\n swap(arr[cycle[i]], ...cornerSwaps[axis]);\n }\n }\n // edge flips\n else if (axis === 'z') {\n for (let i = 0; i < cycle.length; i++) {\n swap(arr[cycle[i]], 0, 1);\n }\n }\n}\n\nfunction swap(arr, first, second) {\n const tmp = arr[first];\n arr[first] = arr[second];\n arr[second] = tmp;\n}\n\n\n// IRC stuff\n\nconst colors = 'wbrgoy';\n\nfunction renderNormal() {\n function sticker(obj) {\n return `{${colors[obj.color]}}██{/}`;\n }\n\n print([\n [sticker(cube.corners[3][0]),sticker(cube.corners[3][1]),sticker(cube.edges[0][1]),sticker(cube.corners[0][1]),sticker(cube.corners[0][0])].join``,\n [sticker(cube.edges[3][0]),sticker(cube.edges[3][1]),sticker(cube.centres[0]),sticker(cube.edges[1][1]),sticker(cube.edges[1][0])].join``,\n [sticker(cube.corners[2][0]),sticker(cube.corners[2][1]),sticker(cube.edges[2][1]),sticker(cube.corners[1][1]),sticker(cube.corners[1][0])].join``,\n [sticker(cube.corners[2][0]),sticker(cube.corners[2][2]),sticker(cube.edges[2][0]),sticker(cube.corners[1][2]),sticker(cube.corners[1][0])].join``,\n [sticker(cube.edges[6][0]),sticker(cube.edges[6][1]),sticker(cube.centres[3]),sticker(cube.edges[5][1]),sticker(cube.edges[5][0])].join``,\n [sticker(cube.corners[6][0]),sticker(cube.corners[6][2]),sticker(cube.edges[0xA][0]),sticker(cube.corners[5][2]),sticker(cube.corners[5][0])].join``,\n ].join`\\n`)\n}\n\nfunction renderMini() {\n function sticker(obj) {\n return colors[obj.color]; \n }\n function crunch([l1, l2]) {\n return l1.map((d, i) => `{${d},${l2[i]}}▀{/}`).join``;\n }\n print([\n crunch([[sticker(cube.corners[3][0]),sticker(cube.corners[3][1]),sticker(cube.edges[0][1]),sticker(cube.corners[0][1]),sticker(cube.corners[0][0])],\n [sticker(cube.edges[3][0]),sticker(cube.edges[3][1]),sticker(cube.centres[0]),sticker(cube.edges[1][1]),sticker(cube.edges[1][0])]]),\n crunch([[sticker(cube.corners[2][0]),sticker(cube.corners[2][1]),sticker(cube.edges[2][1]),sticker(cube.corners[1][1]),sticker(cube.corners[1][0])],\n [sticker(cube.corners[2][0]),sticker(cube.corners[2][2]),sticker(cube.edges[2][0]),sticker(cube.corners[1][2]),sticker(cube.corners[1][0])]]),\n crunch([[sticker(cube.edges[6][0]),sticker(cube.edges[6][1]),sticker(cube.centres[3]),sticker(cube.edges[5][1]),sticker(cube.edges[5][0])],\n [sticker(cube.corners[6][0]),sticker(cube.corners[6][2]),sticker(cube.edges[0xA][0]),sticker(cube.corners[5][2]),sticker(cube.corners[5][0])]]),\n ].join`\\n`)\n}\n\n\nconst { from } = IRC.message;\n\nfunction save() {\n store.set(from, JSON.stringify(cube));\n}\n\nfunction load() {\n const next = store.get(from);\n if (next) {\n Object.assign(cube, JSON.parse(next));\n }\n}\n\n// start on first move\n// log scramble, solution\n\nfunction startSolve() {\n}\n\nfunction doMoves(moves) {\n getMoves(moves).forEach(move => move.apply());\n}\n\nconst scrambler = IRC.require('scramble');\n\nfunction scramble(type) {\n type = type.toUpperCase().trim();\n !types['LL', 'LSE'].includes(type) && (type = '3x3');\n\n const scramble = {\n LL: scrambler.getLLScramble(),\n LSE: `xy'` + scrambler.getLSEScramble() + ['', ' M2'][0|Math.random()*2],\n }[type] || (() => scrambler.getRandomScramble())();\n\n doMoves(scramble);\n\n store.save(`${from}:solve`, {\n moves: [],\n scramble,\n type,\n });\n\n save();\n render();\n}\n\nfunction apply(moves) {\n load();\n doMoves(moves);\n save();\n render();\n}\n\nfunction mini() {\n doMoves(input);\n renderMini();\n}\n\nfunction view(view) {\n if (!view) {\n throw `usage: ${IRC.colors.cmd('cube.view', 'mini|normal')}`;\n }\n store.set(`${from}:view`, view);\n print(`Size for ${from} set to ${view}`);\n}\n\nfunction render() {\n if (store.get(`${from}:view`) === 'mini') {\n renderMini();\n } else {\n renderNormal();\n }\n}\n\nif (IRC.command.path === 'cube') {\n doMoves(input);\n render();\n} else {\n module.exports = { cube, scramble, render, apply, getMoves, doMoves, mini, view };\n}" + "command": "// TODO: axis / offset can be derived from color\n\nconst centers = [\n // U B R F L D\n { color: 0, axis: 'y', offset: -1 },\n { color: 1, axis: 'z', offset: -1 },\n { color: 2, axis: 'x', offset: 1 },\n { color: 3, axis: 'z', offset: 1 },\n { color: 4, axis: 'x', offset: -1 },\n { color: 5, axis: 'y', offset: 1 },\n];\n\nconst edges = [\n // UB UR UF UL\n [ { color: 1, axis: 'z', offset: -1 }, { color: 0, axis: 'y', offset: -1 } ],\n [ { color: 2, axis: 'x', offset: 1 }, { color: 0, axis: 'y', offset: -1 } ],\n [ { color: 3, axis: 'z', offset: 1 }, { color: 0, axis: 'y', offset: -1 } ],\n [ { color: 4, axis: 'x', offset: -1 }, { color: 0, axis: 'y', offset: -1 } ],\n // BR FR FL BL\n [ { color: 2, axis: 'x', offset: 1 }, { color: 1, axis: 'z', offset: -1 } ],\n [ { color: 2, axis: 'x', offset: 1 }, { color: 3, axis: 'z', offset: 1 } ],\n [ { color: 4, axis: 'x', offset: -1 }, { color: 3, axis: 'z', offset: 1 } ],\n [ { color: 4, axis: 'x', offset: -1 }, { color: 1, axis: 'z', offset: -1 } ],\n // DB DR DF DL\n [ { color: 1, axis: 'z', offset: -1 }, { color: 5, axis: 'y', offset: 1 } ],\n [ { color: 2, axis: 'x', offset: 1 }, { color: 5, axis: 'y', offset: 1 } ],\n [ { color: 3, axis: 'z', offset: 1 }, { color: 5, axis: 'y', offset: 1 } ],\n [ { color: 4, axis: 'x', offset: -1 }, { color: 5, axis: 'y', offset: 1 } ],\n];\n\nconst corners = [\n // UBR URF UFL ULB\n [\n { color: 2, axis: 'x', offset: 1 },\n { color: 0, axis: 'y', offset: -1 },\n { color: 1, axis: 'z', offset: -1 },\n ],\n [\n { color: 2, axis: 'x', offset: 1 },\n { color: 0, axis: 'y', offset: -1 },\n { color: 3, axis: 'z', offset: 1 },\n ],\n [\n { color: 4, axis: 'x', offset: -1 },\n { color: 0, axis: 'y', offset: -1 },\n { color: 3, axis: 'z', offset: 1 },\n ],\n [\n { color: 4, axis: 'x', offset: -1 },\n { color: 0, axis: 'y', offset: -1 },\n { color: 1, axis: 'z', offset: -1 },\n ],\n // DRB DFR DLF DBL\n [\n { color: 2, axis: 'x', offset: 1 },\n { color: 5, axis: 'y', offset: 1 },\n { color: 1, axis: 'z', offset: -1 },\n ],\n [\n { color: 2, axis: 'x', offset: 1 },\n { color: 5, axis: 'y', offset: 1 },\n { color: 3, axis: 'z', offset: 1 },\n ],\n [\n { color: 4, axis: 'x', offset: -1 },\n { color: 5, axis: 'y', offset: 1 },\n { color: 3, axis: 'z', offset: 1 },\n ],\n [\n { color: 4, axis: 'x', offset: -1 },\n { color: 5, axis: 'y', offset: 1 },\n { color: 1, axis: 'z', offset: -1 },\n ],\n];\n\nconst cube = {\n edges,\n corners,\n centers,\n};\n\n// U B R F L D\nconst moveList = {\n R: {\n edges: [5, 9, 4, 1],\n corners: [5, 4, 0, 1],\n centre: 2,\n axis: 'x',\n },\n U: {\n edges: [3, 2, 1, 0],\n corners: [3, 2, 1, 0],\n centre: 0,\n axis: 'y',\n },\n F: {\n edges: [6, 10, 5, 2],\n corners: [1, 2, 6, 5],\n centre: 3,\n axis: 'z',\n },\n L: {\n edges: [3, 7, 11, 6],\n corners: [2, 3, 7, 6],\n centre: 4,\n axis: 'x',\n axisFlip: true,\n },\n B: {\n edges: [4, 8, 7, 0],\n corners: [4, 7, 3, 0],\n centre: 1,\n axis: 'z',\n axisFlip: true,\n },\n D: {\n edges: [8, 9, 10, 11],\n corners: [4, 5, 6, 7],\n centre: 5,\n axis: 'y',\n axisFlip: true,\n },\n M: {\n centers: [0, 1, 5, 3],\n edges: [2, 0, 8, 10],\n axis: 'x',\n axisFlip: true,\n },\n E: {\n centers: [3, 4, 1, 2],\n edges: [4, 5, 6, 7],\n axis: 'y',\n axisFlip: true,\n },\n S: {\n centers: [4, 5, 2, 0],\n edges: [3, 11, 9, 1],\n axis: 'z',\n },\n r: { moves: [toObject(`R`), toObject(`M'`)] },\n l: { moves: [toObject(`L`), toObject(`M`)] },\n f: { moves: [toObject(`F`), toObject(`S`)] },\n b: { moves: [toObject(`B`), toObject(`S'`)] },\n u: { moves: [toObject(`U`), toObject(`E'`)] },\n d: { moves: [toObject(`D`), toObject(`E`)] },\n x: { moves: [toObject(`R`), toObject(`M'`), toObject(`L'`)] },\n y: { moves: [toObject(`U`), toObject(`E'`), toObject(`D'`)] },\n z: { moves: [toObject(`F`), toObject(`S`), toObject(`B'`)] },\n};\n\nfunction getMove(moveRaw) {\n const { move, order } = toObject(moveRaw);\n if (!moveList[move]) throw new Error(`invalid move ${move}`);\n const {\n corners,\n edges,\n centers,\n centre,\n axis,\n axisFlip,\n moves,\n } = moveList[move];\n\n // calculate transforms\n const transforms = [];\n corners && transforms.push(...corners.map(index => cube.corners[index]));\n edges && transforms.push(...edges.map(index => cube.edges[index]));\n centers && transforms.push(...centers.map(index => cube.centers[index]));\n typeof centre !== 'undefined' && transforms.push(cube.centers[centre]);\n const axisOrder = axisFlip ? -1 : 1;\n const extraMoves = moves && (\n moves.map(move => getMove(applyOrder(clone(move), order), cube))\n );\n\n // swap stickers / clean up move\n function apply() {\n extraMoves && extraMoves.forEach(move => move.apply());\n if (edges) {\n doCycle(cube.edges, order, edges, centers ? 'z' : axis);\n }\n if (centers) {\n doCycle(cube.centers, order, centers);\n }\n if (corners) {\n doCycle(cube.corners, order, corners, axis);\n }\n }\n\n return {\n apply,\n transforms,\n axis,\n source: { move, order },\n };\n}\n\nfunction getMoves(moves) {\n return splitMoves(moves).map(move => getMove(move, cube));\n}\n\nfunction splitMoves(str) {\n if (typeof str !== 'string') return str;\n return str.split(/(\\ww?\\d?'?)/).filter(d => d.trim());\n}\n\nfunction toObject(move) {\n if (typeof move !== 'string') return move;\n if (move[1] === 'w') move = `${move[0].toLowerCase()}${move.slice(2) || ''}`;\n return {\n move: move[0],\n order: {\n '\\'': -1,\n '2\\'': -2,\n '2': 2,\n }[move.slice(1)] || 1,\n };\n}\n\nfunction clone(move) {\n return Object.assign({}, move);\n}\n\nfunction applyOrder(move, order) {\n if (order === 1) return move;\n if (order === -1) {\n move.order = move.order === 2 ? 2 : -move.order;\n }\n if (order === 2) {\n move.order = move.order === 2 ? 0 : 2;\n }\n return move;\n}\n\n\nconst cornerSwaps = {\n x: [1, 2],\n y: [0, 2],\n z: [0, 1],\n};\n\nfunction doCycle(arr, order, cycle, axis) {\n if (order === 0) return;\n if (order === -1 || order === 3) {\n cycle = [...cycle].reverse();\n }\n if (order === 2 || order === -2) {\n doCycle(arr, 1, cycle, axis);\n }\n\n // cycles\n for (let i = 0; i < cycle.length - 1; i++) {\n swapPiece(arr, cycle[i], cycle[i + 1]);\n }\n\n // corner 'twists'\n if (arr[0].length === 3) {\n for (let i = 0; i < cycle.length; i++) {\n swapSticker(arr[cycle[i]], ...cornerSwaps[axis]);\n }\n }\n // edge flips\n else if (axis === 'z') {\n for (let i = 0; i < cycle.length; i++) {\n swapSticker(arr[cycle[i]], 0, 1);\n }\n }\n}\n\nfunction swapPiece(arr, first, second) {\n if (Array.isArray(arr[first])) {\n const tmpColors = arr[first].map(d => d.color);\n arr[first].forEach((sticker, i) => { sticker.color = arr[second][i].color; });\n arr[second].forEach((sticker, i) => { sticker.color = tmpColors[i]; });\n } else {\n swapSticker(arr, first, second)\n }\n}\n\nfunction swapSticker(arr, first, second) {\n const tmp = arr[first].color;\n arr[first].color = arr[second].color;\n arr[second].color = tmp;\n}\n\nfunction isSolved() {\n const { centers, edges, corners } = cube;\n const lookup = {};\n centers.forEach(({ color, axis, offset }) => {\n lookup[`${axis}|${offset}`] = color;\n });\n const pieces = edges.concat(corners);\n for (let i = 0; i < pieces.length; i++) {\n for (let j = 0; j < pieces[i].length; j++) {\n const { axis, offset, color } = pieces[i][j];\n if (color !== lookup[`${axis}|${offset}`]) {\n return false;\n }\n }\n }\n return true;\n}\n\n\n// IRC stuff\n\nconst { from } = IRC.message;\n\nfunction saveCube() {\n store.set(from, JSON.stringify(cube));\n}\n\nfunction loadCube() {\n const next = store.get(from);\n if (next) {\n Object.assign(cube, JSON.parse(next));\n }\n}\n\nfunction doMoves(moves) {\n getMoves(moves).forEach(move => move.apply());\n}\n\n// render\n\nconst colors = 'wbrgoy';\n\nfunction renderQCube(message = '') {\n function sticker(obj) {\n return `{${colors[obj.color]}}██{/}`;\n }\n\n print([\n [sticker(cube.corners[3][0]),sticker(cube.corners[3][1]),sticker(cube.edges[0][1]),sticker(cube.corners[0][1]),sticker(cube.corners[0][0])].join`` + ` ${message}`,\n [sticker(cube.edges[3][0]),sticker(cube.edges[3][1]),sticker(cube.centers[0]),sticker(cube.edges[1][1]),sticker(cube.edges[1][0])].join``,\n [sticker(cube.corners[2][0]),sticker(cube.corners[2][1]),sticker(cube.edges[2][1]),sticker(cube.corners[1][1]),sticker(cube.corners[1][0])].join``,\n [sticker(cube.corners[2][0]),sticker(cube.corners[2][2]),sticker(cube.edges[2][0]),sticker(cube.corners[1][2]),sticker(cube.corners[1][0])].join``,\n [sticker(cube.edges[6][0]),sticker(cube.edges[6][1]),sticker(cube.centers[3]),sticker(cube.edges[5][1]),sticker(cube.edges[5][0])].join``,\n [sticker(cube.corners[6][0]),sticker(cube.corners[6][2]),sticker(cube.edges[0xA][0]),sticker(cube.corners[5][2]),sticker(cube.corners[5][0])].join``,\n ].join`\\n`)\n}\n\nfunction renderMini(message = '') {\n function sticker(obj) {\n return colors[obj.color]; \n }\n function crunch([l1, l2]) {\n return l1.map((d, i) => `{${d},${l2[i]}}▀{/}`).join``;\n }\n print([\n crunch([[sticker(cube.corners[3][0]),sticker(cube.corners[3][1]),sticker(cube.edges[0][1]),sticker(cube.corners[0][1]),sticker(cube.corners[0][0])],\n [sticker(cube.edges[3][0]),sticker(cube.edges[3][1]),sticker(cube.centers[0]),sticker(cube.edges[1][1]),sticker(cube.edges[1][0])]]) + ` ${message}`,\n crunch([[sticker(cube.corners[2][0]),sticker(cube.corners[2][1]),sticker(cube.edges[2][1]),sticker(cube.corners[1][1]),sticker(cube.corners[1][0])],\n [sticker(cube.corners[2][0]),sticker(cube.corners[2][2]),sticker(cube.edges[2][0]),sticker(cube.corners[1][2]),sticker(cube.corners[1][0])]]),\n crunch([[sticker(cube.edges[6][0]),sticker(cube.edges[6][1]),sticker(cube.centers[3]),sticker(cube.edges[5][1]),sticker(cube.edges[5][0])],\n [sticker(cube.corners[6][0]),sticker(cube.corners[6][2]),sticker(cube.edges[0xA][0]),sticker(cube.corners[5][2]),sticker(cube.corners[5][0])]]),\n ].join`\\n`)\n}\n\nfunction renderT(message = '') {\n function sticker(obj) { return `{${colors[obj.color]}}██{/}`; }\n function crnr(x, y) { return sticker(cube.corners[x][y]); }\n function edge(x, y) { return sticker(cube.edges[x][y]); }\n function cntr(x) { return sticker(cube.centers[x]); }\n const spaces = \" \";\n print([\n [spaces,crnr(3,1),edge(0,1),crnr(0,1)].join`` + ` ${message}`,\n [spaces,edge(3,1),cntr(0), edge(1,1)].join``,\n [spaces,crnr(2,1),edge(2,1),crnr(1,1)].join``,\n [crnr(3,0),edge(3,0),crnr(2,0),crnr(2,2),edge(2,0),crnr(1,2),crnr(1,0),edge(1,0),crnr(0,0)].join``,\n [edge(7,0),cntr(4),edge(6,0),edge(6,1),cntr(3), edge(5,1),edge(5,0),cntr(2),edge(4,0)].join``,\n [crnr(7,0),edge(11,0),crnr(6,0),crnr(6,2),edge(10,0),crnr(5,2),crnr(5,0),edge(9,0),crnr(4,0)].join``,\n ].join`\\n`)\n}\n\n\nfunction mini() {\n doMoves(input);\n renderMini();\n}\n\nfunction view(view) {\n if (!view) {\n throw `usage: ${IRC.colors.cmd('cube.view', 'qcube|mini|T')}`;\n }\n store.set(`${from}:view`, view);\n print(`View for ${from} set to ${view}`);\n}\n\nfunction getView() { return store.get(`${from}:view`) || 'qcube'; }\n\nfunction render(message) {\n const view = getView();\n if (view === 'mini') return renderMini(message);\n else if (view === 'T') return renderT(message);\n return renderQCube();\n}\n\n// solving / scramble / timer\n\nconst scrambler = IRC.require('scramble');\n\nfunction scramble(type) {\n type = type.toUpperCase().trim();\n !['LL', 'LSE', 'TEST'].includes(type) && (type = '3x3');\n\n const scramble = {\n TEST: `RU`,\n LL: scrambler.getLLScramble(),\n LSE: `xy'` + scrambler.getLSEScramble() + ['', ' M2'][0|Math.random()*2],\n }[type] || (() => scrambler.getRandomScramble())();\n\n doMoves(scramble);\n\n store.save(`${from}:solve`, {\n moves: [],\n scrambleTime: +(new Date),\n startTime: undefined,\n endTime: undefined,\n scramble,\n view: getView(),\n type,\n });\n\n saveCube();\n render(`${type} scramble`);\n}\n\nfunction apply(inputMoves) {\n loadCube();\n doMoves(inputMoves);\n saveCube();\n\n const state = store.load(`${from}:solve`, false);\n let message;\n if (state) {\n let { moves, startTime, ...other } = state;\n\n moves.push([+(new Date), inputMoves]);\n\n if (!startTime) {\n if (getMoves(inputMoves).some(move => !'xyz'.includes(move.source.move))) {\n // if there's a non inspection move\n startTime = +(new Date);\n message = 'timer started!';\n }\n }\n\n store.save(`${from}:solve`, {\n moves,\n startTime,\n ...other\n });\n\n\n if (isSolved()) return solved();\n }\n\n render(message);\n}\n\nfunction renderDiff(startTime, endTime) {\n const { intervalToDuration } = require('date-fns@2.28.0');\n const duration = intervalToDuration({ start: new Date(startTime), end: new Date(endTime) });\n return `${duration.minutes}:${duration.seconds}`;\n}\n\nfunction solved() {\n const { moves, startTime, scrambleTime, scramble, view, type } = store.load(`${from}:solve`);\n const endTime = +(new Date);\n const score = endTime - startTime;\n render(`solved in ${renderDiff(startTime, endTime)}!`);\n\n const scores = store.load(`scores:${type}`, {});\n const oldScore = scores[from] || Infinity;\n\n if (score > oldScore) {\n scores[from] = score;\n store.save(`scores:${type}`, scores);\n store.save(`${from}:solution`, {\n startTime, endTime, score, scramble, moves, view, type\n });\n print(`{g}new pb!{/}`);\n }\n\n store.save(`${from}:solve`, false);\n}\n\n\n\n// ~cube.solution joey\n// ~cube.debug joey\n// paste solution to share\n// inspection time\n // scramble, solution\n// notify of new pb / notify in channel\n\n\n\nif (IRC.command.path === 'cube') {\n doMoves(input);\n render();\n} else {\n module.exports = { cube, scramble, render, apply, getMoves, doMoves, mini, view };\n}" } \ No newline at end of file diff --git a/commands/cubescores-1321c5832778.json b/commands/cubescores-1321c5832778.json new file mode 100644 index 0000000..3fe67ed --- /dev/null +++ b/commands/cubescores-1321c5832778.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "cube.scores", + "command": "" +} \ No newline at end of file diff --git a/commands/cubetest-a388106f4500.json b/commands/cubetest-a388106f4500.json new file mode 100644 index 0000000..ec71ceb --- /dev/null +++ b/commands/cubetest-a388106f4500.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "cubetest", + "command": "// TODO: axis / offset can be derived from color\n\nconst centres = [\n // U B R F L D\n { color: 0, axis: 'y', offset: -1 },\n { color: 1, axis: 'z', offset: -1 },\n { color: 2, axis: 'x', offset: 1 },\n { color: 3, axis: 'z', offset: 1 },\n { color: 4, axis: 'x', offset: -1 },\n { color: 5, axis: 'y', offset: 1 },\n];\n\nconst edges = [\n // UB UR UF UL\n [ { color: 1, axis: 'z', offset: -1 }, { color: 0, axis: 'y', offset: -1 } ],\n [ { color: 2, axis: 'x', offset: 1 }, { color: 0, axis: 'y', offset: -1 } ],\n [ { color: 3, axis: 'z', offset: 1 }, { color: 0, axis: 'y', offset: -1 } ],\n [ { color: 4, axis: 'x', offset: -1 }, { color: 0, axis: 'y', offset: -1 } ],\n // BR FR FL BL\n [ { color: 2, axis: 'x', offset: 1 }, { color: 1, axis: 'z', offset: -1 } ],\n [ { color: 2, axis: 'x', offset: 1 }, { color: 3, axis: 'z', offset: 1 } ],\n [ { color: 4, axis: 'x', offset: -1 }, { color: 3, axis: 'z', offset: 1 } ],\n [ { color: 4, axis: 'x', offset: -1 }, { color: 1, axis: 'z', offset: -1 } ],\n // DB DR DF DL\n [ { color: 1, axis: 'z', offset: -1 }, { color: 5, axis: 'y', offset: 1 } ],\n [ { color: 2, axis: 'x', offset: 1 }, { color: 5, axis: 'y', offset: 1 } ],\n [ { color: 3, axis: 'z', offset: 1 }, { color: 5, axis: 'y', offset: 1 } ],\n [ { color: 4, axis: 'x', offset: -1 }, { color: 5, axis: 'y', offset: 1 } ],\n];\n\nconst corners = [\n // UBR URF UFL ULB\n [\n { color: 2, axis: 'x', offset: 1 },\n { color: 0, axis: 'y', offset: -1 },\n { color: 1, axis: 'z', offset: -1 },\n ],\n [\n { color: 2, axis: 'x', offset: 1 },\n { color: 0, axis: 'y', offset: -1 },\n { color: 3, axis: 'z', offset: 1 },\n ],\n [\n { color: 4, axis: 'x', offset: -1 },\n { color: 0, axis: 'y', offset: -1 },\n { color: 3, axis: 'z', offset: 1 },\n ],\n [\n { color: 4, axis: 'x', offset: -1 },\n { color: 0, axis: 'y', offset: -1 },\n { color: 1, axis: 'z', offset: -1 },\n ],\n // DRB DFR DLF DBL\n [\n { color: 2, axis: 'x', offset: 1 },\n { color: 5, axis: 'y', offset: 1 },\n { color: 1, axis: 'z', offset: -1 },\n ],\n [\n { color: 2, axis: 'x', offset: 1 },\n { color: 5, axis: 'y', offset: 1 },\n { color: 3, axis: 'z', offset: 1 },\n ],\n [\n { color: 4, axis: 'x', offset: -1 },\n { color: 5, axis: 'y', offset: 1 },\n { color: 3, axis: 'z', offset: 1 },\n ],\n [\n { color: 4, axis: 'x', offset: -1 },\n { color: 5, axis: 'y', offset: 1 },\n { color: 1, axis: 'z', offset: -1 },\n ],\n];\n\nconst cube = {\n edges,\n corners,\n centres,\n};\n\n// U B R F L D\nconst moveList = {\n R: {\n edges: [5, 9, 4, 1],\n corners: [5, 4, 0, 1],\n centre: 2,\n axis: 'x',\n },\n U: {\n edges: [3, 2, 1, 0],\n corners: [3, 2, 1, 0],\n centre: 0,\n axis: 'y',\n },\n F: {\n edges: [6, 10, 5, 2],\n corners: [1, 2, 6, 5],\n centre: 3,\n axis: 'z',\n },\n L: {\n edges: [3, 7, 11, 6],\n corners: [2, 3, 7, 6],\n centre: 4,\n axis: 'x',\n axisFlip: true,\n },\n B: {\n edges: [4, 8, 7, 0],\n corners: [4, 7, 3, 0],\n centre: 1,\n axis: 'z',\n axisFlip: true,\n },\n D: {\n edges: [8, 9, 10, 11],\n corners: [4, 5, 6, 7],\n centre: 5,\n axis: 'y',\n axisFlip: true,\n },\n M: {\n centres: [0, 1, 5, 3],\n edges: [2, 0, 8, 10],\n axis: 'x',\n axisFlip: true,\n },\n E: {\n centres: [3, 4, 1, 2],\n edges: [4, 5, 6, 7],\n axis: 'y',\n axisFlip: true,\n },\n S: {\n centres: [4, 5, 2, 0],\n edges: [3, 11, 9, 1],\n axis: 'z',\n },\n r: { moves: [toObject(`R`), toObject(`M'`)] },\n l: { moves: [toObject(`L`), toObject(`M`)] },\n f: { moves: [toObject(`F`), toObject(`S`)] },\n b: { moves: [toObject(`B`), toObject(`S'`)] },\n u: { moves: [toObject(`U`), toObject(`E'`)] },\n d: { moves: [toObject(`D`), toObject(`E`)] },\n x: { moves: [toObject(`R`), toObject(`M'`), toObject(`L'`)] },\n y: { moves: [toObject(`U`), toObject(`E'`), toObject(`D'`)] },\n z: { moves: [toObject(`F`), toObject(`S`), toObject(`B'`)] },\n};\n\nfunction getMove(moveRaw) {\n const { move, order } = toObject(moveRaw);\n if (!moveList[move]) throw new Error(`invalid move ${move}`);\n const {\n corners,\n edges,\n centres,\n centre,\n axis,\n axisFlip,\n moves,\n } = moveList[move];\n\n // calculate transforms\n const transforms = [];\n corners && transforms.push(...corners.map(index => cube.corners[index]));\n edges && transforms.push(...edges.map(index => cube.edges[index]));\n centres && transforms.push(...centres.map(index => cube.centres[index]));\n typeof centre !== 'undefined' && transforms.push(cube.centres[centre]);\n const axisOrder = axisFlip ? -1 : 1;\n const extraMoves = moves && (\n moves.map(move => getMove(applyOrder(clone(move), order), cube))\n );\n\n // swap stickers / clean up move\n function apply() {\n extraMoves && extraMoves.forEach(move => move.apply());\n if (edges) {\n doCycle(cube.edges, order, edges, centres ? 'z' : axis);\n }\n if (centres) {\n doCycle(cube.centres, order, centres);\n }\n if (corners) {\n doCycle(cube.corners, order, corners, axis);\n }\n }\n\n return {\n apply,\n transforms,\n axis,\n source: { move, order },\n };\n}\n\nfunction getMoves(moves) {\n return splitMoves(moves).map(move => getMove(move, cube));\n}\n\nfunction splitMoves(str) {\n if (typeof str !== 'string') return str;\n return str.split(/(\\ww?\\d?'?)/).filter(d => d.trim());\n}\n\nfunction toObject(move) {\n if (typeof move !== 'string') return move;\n if (move[1] === 'w') move = `${move[0].toLowerCase()}${move.slice(2) || ''}`;\n return {\n move: move[0],\n order: {\n '\\'': -1,\n '2\\'': -2,\n '2': 2,\n }[move.slice(1)] || 1,\n };\n}\n\nfunction clone(move) {\n return Object.assign({}, move);\n}\n\nfunction applyOrder(move, order) {\n if (order === 1) return move;\n if (order === -1) {\n move.order = move.order === 2 ? 2 : -move.order;\n }\n if (order === 2) {\n move.order = move.order === 2 ? 0 : 2;\n }\n return move;\n}\n\n\nconst cornerSwaps = {\n x: [1, 2],\n y: [0, 2],\n z: [0, 1],\n};\n\nfunction doCycle(arr, order, cycle, axis) {\n if (order === 0) return;\n if (order === -1 || order === 3) {\n cycle = [...cycle].reverse();\n }\n if (order === 2 || order === -2) {\n doCycle(arr, 1, cycle, axis);\n }\n\n // cycles\n for (let i = 0; i < cycle.length - 1; i++) {\n swapPiece(arr, cycle[i], cycle[i + 1]);\n }\n\n // corner 'twists'\n if (arr[0].length === 3) {\n for (let i = 0; i < cycle.length; i++) {\n swapSticker(arr[cycle[i]], ...cornerSwaps[axis]);\n }\n }\n // edge flips\n else if (axis === 'z') {\n for (let i = 0; i < cycle.length; i++) {\n swapSticker(arr[cycle[i]], 0, 1);\n }\n }\n}\n\nfunction swapPiece(arr, first, second) {\n if (Array.isArray(arr[first])) {\n const tmpColors = arr[first].map(d => d.color);\n arr[first].forEach((sticker, i) => { sticker.color = arr[second][i].color; });\n arr[second].forEach((sticker, i) => { sticker.color = tmpColors[i]; });\n } else {\n swapSticker(arr, first, second)\n }\n}\n\nfunction swapSticker(arr, first, second) {\n const tmp = arr[first].color;\n arr[first].color = arr[second].color;\n arr[second].color = tmp;\n}\n\nfunction isSolved() {\n const { centres, edges, corners } = cube;\n const lookup = {};\n centres.forEach(({ color, axis, offset }) => {\n lookup[`${axis}|${offset}`] = color;\n });\n const pieces = edges.concat(corners);\n for (let i = 0; i < pieces.length; i++) {\n for (let j = 0; j < pieces[i].length; j++) {\n const { axis, offset, color } = pieces[i][j];\n if (color !== lookup[`${axis}|${offset}`]) {\n return false;\n }\n }\n }\n return true;\n}\n\n\n// IRC stuff\n\nconst { from } = IRC.message;\n\nfunction saveCube() {\n store.set(from, JSON.stringify(cube));\n}\n\nfunction loadCube() {\n const next = store.get(from);\n if (next) {\n Object.assign(cube, JSON.parse(next));\n }\n}\n\nfunction doMoves(moves) {\n getMoves(moves).forEach(move => move.apply());\n}\n\n// render\n\nconst colors = 'wbrgoy';\n\nfunction renderNormal(message = '') {\n function sticker(obj) {\n return `{${colors[obj.color]}}██{/}`;\n }\n \n function crnr(x, y) {\n return sticker(cube.corners[x][y]);\n }\n \n \tfunction edge(x, y) {\n return sticker(cube.edges[x][y]);\n }\n \n function cntr(x) {\n return sticker(cube.centres[x]);\n }\n\n const spaces = \" \";\n print([\n [spaces, crnr(3,1), edge(0,1), crnr(0,1)].join`` + ` ${message}`,\n [spaces, edge(3,1), cntr(0), edge(1,1)].join``,\n [spaces, crnr(2,1), edge(2,1), crnr(1,1)].join``,\n [crnr(3,0), edge(3,0), crnr(2,0), crnr(2,2), edge(2,0), crnr(1,2), crnr(1,0), edge(1,0), crnr(0,0)].join``,\n [edge(7,0), cntr(4), edge(6,0), edge(6,1), cntr(3), edge(5,1), edge(5,0), cntr(2), edge(4,0)].join``,\n [crnr(7,0), edge(11,0), crnr(6,0), crnr(6,2), edge(10,0), crnr(5,2), crnr(5,0), edge(9,0), crnr(4,0)].join``,\n ].join`\\n`)\n}\n\nfunction renderMini(message = '') {\n function sticker(obj) {\n return colors[obj.color]; \n }\n function crunch([l1, l2]) {\n return l1.map((d, i) => `{${d},${l2[i]}}▀{/}`).join``;\n }\n print([\n crunch([[sticker(cube.corners[3][0]),sticker(cube.corners[3][1]),sticker(cube.edges[0][1]),sticker(cube.corners[0][1]),sticker(cube.corners[0][0])],\n [sticker(cube.edges[3][0]),sticker(cube.edges[3][1]),sticker(cube.centres[0]),sticker(cube.edges[1][1]),sticker(cube.edges[1][0])]]) + ` ${message}`,\n crunch([[sticker(cube.corners[2][0]),sticker(cube.corners[2][1]),sticker(cube.edges[2][1]),sticker(cube.corners[1][1]),sticker(cube.corners[1][0])],\n [sticker(cube.corners[2][0]),sticker(cube.corners[2][2]),sticker(cube.edges[2][0]),sticker(cube.corners[1][2]),sticker(cube.corners[1][0])]]),\n crunch([[sticker(cube.edges[6][0]),sticker(cube.edges[6][1]),sticker(cube.centres[3]),sticker(cube.edges[5][1]),sticker(cube.edges[5][0])],\n [sticker(cube.corners[6][0]),sticker(cube.corners[6][2]),sticker(cube.edges[0xA][0]),sticker(cube.corners[5][2]),sticker(cube.corners[5][0])]]),\n ].join`\\n`)\n}\n\n\nfunction mini() {\n doMoves(input);\n renderMini();\n}\n\nfunction view(view) {\n if (!view) {\n throw `usage: ${IRC.colors.cmd('cube.view', 'mini|normal')}`;\n }\n store.set(`${from}:view`, view);\n print(`Size for ${from} set to ${view}`);\n}\n\nfunction render(message) {\n if (store.get(`${from}:view`) === 'mini') {\n renderMini(message);\n } else {\n renderNormal(message);\n }\n}\n\n// solving / scramble / timer\n\nconst scrambler = IRC.require('scramble');\n\nfunction scramble(type) {\n type = type.toUpperCase().trim();\n !['LL', 'LSE', 'TEST'].includes(type) && (type = '3x3');\n\n const scramble = {\n TEST: `RU`,\n LL: scrambler.getLLScramble(),\n LSE: `xy'` + scrambler.getLSEScramble() + ['', ' M2'][0|Math.random()*2],\n }[type] || (() => scrambler.getRandomScramble())();\n\n doMoves(scramble);\n\n store.save(`${from}:solve`, {\n moves: [],\n scrambleTime: +(new Date),\n startTime: undefined,\n endTime: undefined,\n scramble,\n type,\n });\n\n saveCube();\n render(`${type} scramble`);\n}\n\nconst { intervalToDuration } = require('date-fns@2.28.0');\n\nfunction apply(inputMoves) {\n loadCube();\n doMoves(inputMoves);\n saveCube();\n\n const state = store.load(`${from}:solve`, false);\n let message;\n if (state) {\n let { moves, startTime, ...other } = state;\n\n moves.push([+(new Date), inputMoves, IRC.message.text]);\n\n if (!startTime) {\n if (getMoves(inputMoves).some(move => !'xyz'.includes(move.source.move))) {\n // if there's a non inspection move\n startTime = +(new Date);\n message = 'timer started!';\n }\n }\n\n store.save(`${from}:solve`, {\n moves,\n startTime,\n ...other\n });\n\n\n if (isSolved()) {\n endTime = +(new Date);\n const duration = intervalToDuration({ start: new Date(startTime), end: new Date(endTime) });\n message = `solved in ${duration.minutes}:${duration.seconds}!`\n\n }\n// ~cube.solution joey\n// inspection time\n // scramble, solution\n // debug flag to see everything\n// notify of new pb / notify in channel\n\n }\n\n render(message);\n}\n\nif (IRC.command.path === 'cubetest') {\n doMoves(input);\n render();\n} else {\n module.exports = { cube, scramble, render, apply, getMoves, doMoves, mini, view };\n}" +} \ No newline at end of file From 0f1c9bab29a79d0b6379bc2867e439e9d9fcf233 Mon Sep 17 00:00:00 2001 From: kirjavascript Date: Thu, 24 Mar 2022 23:22:57 +0100 Subject: [PATCH 31/94] cube 1.0: leaderboard, timer, solution reader --- commands/cube-4266a5d58b29.json | 4 ++-- commands/cubescores-1321c5832778.json | 2 +- commands/cubesolution-117b8a0d275f.json | 7 +++++++ commands/dog-ab6a92f48609.json | 2 +- commands/moduleleaderboard-751340fac929.json | 2 +- 5 files changed, 12 insertions(+), 5 deletions(-) create mode 100644 commands/cubesolution-117b8a0d275f.json diff --git a/commands/cube-4266a5d58b29.json b/commands/cube-4266a5d58b29.json index df4e9d8..f077f9c 100644 --- a/commands/cube-4266a5d58b29.json +++ b/commands/cube-4266a5d58b29.json @@ -1,7 +1,7 @@ { "event": false, - "locked": false, + "locked": true, "starred": false, "name": "cube", - "command": "// TODO: axis / offset can be derived from color\n\nconst centers = [\n // U B R F L D\n { color: 0, axis: 'y', offset: -1 },\n { color: 1, axis: 'z', offset: -1 },\n { color: 2, axis: 'x', offset: 1 },\n { color: 3, axis: 'z', offset: 1 },\n { color: 4, axis: 'x', offset: -1 },\n { color: 5, axis: 'y', offset: 1 },\n];\n\nconst edges = [\n // UB UR UF UL\n [ { color: 1, axis: 'z', offset: -1 }, { color: 0, axis: 'y', offset: -1 } ],\n [ { color: 2, axis: 'x', offset: 1 }, { color: 0, axis: 'y', offset: -1 } ],\n [ { color: 3, axis: 'z', offset: 1 }, { color: 0, axis: 'y', offset: -1 } ],\n [ { color: 4, axis: 'x', offset: -1 }, { color: 0, axis: 'y', offset: -1 } ],\n // BR FR FL BL\n [ { color: 2, axis: 'x', offset: 1 }, { color: 1, axis: 'z', offset: -1 } ],\n [ { color: 2, axis: 'x', offset: 1 }, { color: 3, axis: 'z', offset: 1 } ],\n [ { color: 4, axis: 'x', offset: -1 }, { color: 3, axis: 'z', offset: 1 } ],\n [ { color: 4, axis: 'x', offset: -1 }, { color: 1, axis: 'z', offset: -1 } ],\n // DB DR DF DL\n [ { color: 1, axis: 'z', offset: -1 }, { color: 5, axis: 'y', offset: 1 } ],\n [ { color: 2, axis: 'x', offset: 1 }, { color: 5, axis: 'y', offset: 1 } ],\n [ { color: 3, axis: 'z', offset: 1 }, { color: 5, axis: 'y', offset: 1 } ],\n [ { color: 4, axis: 'x', offset: -1 }, { color: 5, axis: 'y', offset: 1 } ],\n];\n\nconst corners = [\n // UBR URF UFL ULB\n [\n { color: 2, axis: 'x', offset: 1 },\n { color: 0, axis: 'y', offset: -1 },\n { color: 1, axis: 'z', offset: -1 },\n ],\n [\n { color: 2, axis: 'x', offset: 1 },\n { color: 0, axis: 'y', offset: -1 },\n { color: 3, axis: 'z', offset: 1 },\n ],\n [\n { color: 4, axis: 'x', offset: -1 },\n { color: 0, axis: 'y', offset: -1 },\n { color: 3, axis: 'z', offset: 1 },\n ],\n [\n { color: 4, axis: 'x', offset: -1 },\n { color: 0, axis: 'y', offset: -1 },\n { color: 1, axis: 'z', offset: -1 },\n ],\n // DRB DFR DLF DBL\n [\n { color: 2, axis: 'x', offset: 1 },\n { color: 5, axis: 'y', offset: 1 },\n { color: 1, axis: 'z', offset: -1 },\n ],\n [\n { color: 2, axis: 'x', offset: 1 },\n { color: 5, axis: 'y', offset: 1 },\n { color: 3, axis: 'z', offset: 1 },\n ],\n [\n { color: 4, axis: 'x', offset: -1 },\n { color: 5, axis: 'y', offset: 1 },\n { color: 3, axis: 'z', offset: 1 },\n ],\n [\n { color: 4, axis: 'x', offset: -1 },\n { color: 5, axis: 'y', offset: 1 },\n { color: 1, axis: 'z', offset: -1 },\n ],\n];\n\nconst cube = {\n edges,\n corners,\n centers,\n};\n\n// U B R F L D\nconst moveList = {\n R: {\n edges: [5, 9, 4, 1],\n corners: [5, 4, 0, 1],\n centre: 2,\n axis: 'x',\n },\n U: {\n edges: [3, 2, 1, 0],\n corners: [3, 2, 1, 0],\n centre: 0,\n axis: 'y',\n },\n F: {\n edges: [6, 10, 5, 2],\n corners: [1, 2, 6, 5],\n centre: 3,\n axis: 'z',\n },\n L: {\n edges: [3, 7, 11, 6],\n corners: [2, 3, 7, 6],\n centre: 4,\n axis: 'x',\n axisFlip: true,\n },\n B: {\n edges: [4, 8, 7, 0],\n corners: [4, 7, 3, 0],\n centre: 1,\n axis: 'z',\n axisFlip: true,\n },\n D: {\n edges: [8, 9, 10, 11],\n corners: [4, 5, 6, 7],\n centre: 5,\n axis: 'y',\n axisFlip: true,\n },\n M: {\n centers: [0, 1, 5, 3],\n edges: [2, 0, 8, 10],\n axis: 'x',\n axisFlip: true,\n },\n E: {\n centers: [3, 4, 1, 2],\n edges: [4, 5, 6, 7],\n axis: 'y',\n axisFlip: true,\n },\n S: {\n centers: [4, 5, 2, 0],\n edges: [3, 11, 9, 1],\n axis: 'z',\n },\n r: { moves: [toObject(`R`), toObject(`M'`)] },\n l: { moves: [toObject(`L`), toObject(`M`)] },\n f: { moves: [toObject(`F`), toObject(`S`)] },\n b: { moves: [toObject(`B`), toObject(`S'`)] },\n u: { moves: [toObject(`U`), toObject(`E'`)] },\n d: { moves: [toObject(`D`), toObject(`E`)] },\n x: { moves: [toObject(`R`), toObject(`M'`), toObject(`L'`)] },\n y: { moves: [toObject(`U`), toObject(`E'`), toObject(`D'`)] },\n z: { moves: [toObject(`F`), toObject(`S`), toObject(`B'`)] },\n};\n\nfunction getMove(moveRaw) {\n const { move, order } = toObject(moveRaw);\n if (!moveList[move]) throw new Error(`invalid move ${move}`);\n const {\n corners,\n edges,\n centers,\n centre,\n axis,\n axisFlip,\n moves,\n } = moveList[move];\n\n // calculate transforms\n const transforms = [];\n corners && transforms.push(...corners.map(index => cube.corners[index]));\n edges && transforms.push(...edges.map(index => cube.edges[index]));\n centers && transforms.push(...centers.map(index => cube.centers[index]));\n typeof centre !== 'undefined' && transforms.push(cube.centers[centre]);\n const axisOrder = axisFlip ? -1 : 1;\n const extraMoves = moves && (\n moves.map(move => getMove(applyOrder(clone(move), order), cube))\n );\n\n // swap stickers / clean up move\n function apply() {\n extraMoves && extraMoves.forEach(move => move.apply());\n if (edges) {\n doCycle(cube.edges, order, edges, centers ? 'z' : axis);\n }\n if (centers) {\n doCycle(cube.centers, order, centers);\n }\n if (corners) {\n doCycle(cube.corners, order, corners, axis);\n }\n }\n\n return {\n apply,\n transforms,\n axis,\n source: { move, order },\n };\n}\n\nfunction getMoves(moves) {\n return splitMoves(moves).map(move => getMove(move, cube));\n}\n\nfunction splitMoves(str) {\n if (typeof str !== 'string') return str;\n return str.split(/(\\ww?\\d?'?)/).filter(d => d.trim());\n}\n\nfunction toObject(move) {\n if (typeof move !== 'string') return move;\n if (move[1] === 'w') move = `${move[0].toLowerCase()}${move.slice(2) || ''}`;\n return {\n move: move[0],\n order: {\n '\\'': -1,\n '2\\'': -2,\n '2': 2,\n }[move.slice(1)] || 1,\n };\n}\n\nfunction clone(move) {\n return Object.assign({}, move);\n}\n\nfunction applyOrder(move, order) {\n if (order === 1) return move;\n if (order === -1) {\n move.order = move.order === 2 ? 2 : -move.order;\n }\n if (order === 2) {\n move.order = move.order === 2 ? 0 : 2;\n }\n return move;\n}\n\n\nconst cornerSwaps = {\n x: [1, 2],\n y: [0, 2],\n z: [0, 1],\n};\n\nfunction doCycle(arr, order, cycle, axis) {\n if (order === 0) return;\n if (order === -1 || order === 3) {\n cycle = [...cycle].reverse();\n }\n if (order === 2 || order === -2) {\n doCycle(arr, 1, cycle, axis);\n }\n\n // cycles\n for (let i = 0; i < cycle.length - 1; i++) {\n swapPiece(arr, cycle[i], cycle[i + 1]);\n }\n\n // corner 'twists'\n if (arr[0].length === 3) {\n for (let i = 0; i < cycle.length; i++) {\n swapSticker(arr[cycle[i]], ...cornerSwaps[axis]);\n }\n }\n // edge flips\n else if (axis === 'z') {\n for (let i = 0; i < cycle.length; i++) {\n swapSticker(arr[cycle[i]], 0, 1);\n }\n }\n}\n\nfunction swapPiece(arr, first, second) {\n if (Array.isArray(arr[first])) {\n const tmpColors = arr[first].map(d => d.color);\n arr[first].forEach((sticker, i) => { sticker.color = arr[second][i].color; });\n arr[second].forEach((sticker, i) => { sticker.color = tmpColors[i]; });\n } else {\n swapSticker(arr, first, second)\n }\n}\n\nfunction swapSticker(arr, first, second) {\n const tmp = arr[first].color;\n arr[first].color = arr[second].color;\n arr[second].color = tmp;\n}\n\nfunction isSolved() {\n const { centers, edges, corners } = cube;\n const lookup = {};\n centers.forEach(({ color, axis, offset }) => {\n lookup[`${axis}|${offset}`] = color;\n });\n const pieces = edges.concat(corners);\n for (let i = 0; i < pieces.length; i++) {\n for (let j = 0; j < pieces[i].length; j++) {\n const { axis, offset, color } = pieces[i][j];\n if (color !== lookup[`${axis}|${offset}`]) {\n return false;\n }\n }\n }\n return true;\n}\n\n\n// IRC stuff\n\nconst { from } = IRC.message;\n\nfunction saveCube() {\n store.set(from, JSON.stringify(cube));\n}\n\nfunction loadCube() {\n const next = store.get(from);\n if (next) {\n Object.assign(cube, JSON.parse(next));\n }\n}\n\nfunction doMoves(moves) {\n getMoves(moves).forEach(move => move.apply());\n}\n\n// render\n\nconst colors = 'wbrgoy';\n\nfunction renderQCube(message = '') {\n function sticker(obj) {\n return `{${colors[obj.color]}}██{/}`;\n }\n\n print([\n [sticker(cube.corners[3][0]),sticker(cube.corners[3][1]),sticker(cube.edges[0][1]),sticker(cube.corners[0][1]),sticker(cube.corners[0][0])].join`` + ` ${message}`,\n [sticker(cube.edges[3][0]),sticker(cube.edges[3][1]),sticker(cube.centers[0]),sticker(cube.edges[1][1]),sticker(cube.edges[1][0])].join``,\n [sticker(cube.corners[2][0]),sticker(cube.corners[2][1]),sticker(cube.edges[2][1]),sticker(cube.corners[1][1]),sticker(cube.corners[1][0])].join``,\n [sticker(cube.corners[2][0]),sticker(cube.corners[2][2]),sticker(cube.edges[2][0]),sticker(cube.corners[1][2]),sticker(cube.corners[1][0])].join``,\n [sticker(cube.edges[6][0]),sticker(cube.edges[6][1]),sticker(cube.centers[3]),sticker(cube.edges[5][1]),sticker(cube.edges[5][0])].join``,\n [sticker(cube.corners[6][0]),sticker(cube.corners[6][2]),sticker(cube.edges[0xA][0]),sticker(cube.corners[5][2]),sticker(cube.corners[5][0])].join``,\n ].join`\\n`)\n}\n\nfunction renderMini(message = '') {\n function sticker(obj) {\n return colors[obj.color]; \n }\n function crunch([l1, l2]) {\n return l1.map((d, i) => `{${d},${l2[i]}}▀{/}`).join``;\n }\n print([\n crunch([[sticker(cube.corners[3][0]),sticker(cube.corners[3][1]),sticker(cube.edges[0][1]),sticker(cube.corners[0][1]),sticker(cube.corners[0][0])],\n [sticker(cube.edges[3][0]),sticker(cube.edges[3][1]),sticker(cube.centers[0]),sticker(cube.edges[1][1]),sticker(cube.edges[1][0])]]) + ` ${message}`,\n crunch([[sticker(cube.corners[2][0]),sticker(cube.corners[2][1]),sticker(cube.edges[2][1]),sticker(cube.corners[1][1]),sticker(cube.corners[1][0])],\n [sticker(cube.corners[2][0]),sticker(cube.corners[2][2]),sticker(cube.edges[2][0]),sticker(cube.corners[1][2]),sticker(cube.corners[1][0])]]),\n crunch([[sticker(cube.edges[6][0]),sticker(cube.edges[6][1]),sticker(cube.centers[3]),sticker(cube.edges[5][1]),sticker(cube.edges[5][0])],\n [sticker(cube.corners[6][0]),sticker(cube.corners[6][2]),sticker(cube.edges[0xA][0]),sticker(cube.corners[5][2]),sticker(cube.corners[5][0])]]),\n ].join`\\n`)\n}\n\nfunction renderT(message = '') {\n function sticker(obj) { return `{${colors[obj.color]}}██{/}`; }\n function crnr(x, y) { return sticker(cube.corners[x][y]); }\n function edge(x, y) { return sticker(cube.edges[x][y]); }\n function cntr(x) { return sticker(cube.centers[x]); }\n const spaces = \" \";\n print([\n [spaces,crnr(3,1),edge(0,1),crnr(0,1)].join`` + ` ${message}`,\n [spaces,edge(3,1),cntr(0), edge(1,1)].join``,\n [spaces,crnr(2,1),edge(2,1),crnr(1,1)].join``,\n [crnr(3,0),edge(3,0),crnr(2,0),crnr(2,2),edge(2,0),crnr(1,2),crnr(1,0),edge(1,0),crnr(0,0)].join``,\n [edge(7,0),cntr(4),edge(6,0),edge(6,1),cntr(3), edge(5,1),edge(5,0),cntr(2),edge(4,0)].join``,\n [crnr(7,0),edge(11,0),crnr(6,0),crnr(6,2),edge(10,0),crnr(5,2),crnr(5,0),edge(9,0),crnr(4,0)].join``,\n ].join`\\n`)\n}\n\n\nfunction mini() {\n doMoves(input);\n renderMini();\n}\n\nfunction view(view) {\n if (!view) {\n throw `usage: ${IRC.colors.cmd('cube.view', 'qcube|mini|T')}`;\n }\n store.set(`${from}:view`, view);\n print(`View for ${from} set to ${view}`);\n}\n\nfunction getView() { return store.get(`${from}:view`) || 'qcube'; }\n\nfunction render(message) {\n const view = getView();\n if (view === 'mini') return renderMini(message);\n else if (view === 'T') return renderT(message);\n return renderQCube();\n}\n\n// solving / scramble / timer\n\nconst scrambler = IRC.require('scramble');\n\nfunction scramble(type) {\n type = type.toUpperCase().trim();\n !['LL', 'LSE', 'TEST'].includes(type) && (type = '3x3');\n\n const scramble = {\n TEST: `RU`,\n LL: scrambler.getLLScramble(),\n LSE: `xy'` + scrambler.getLSEScramble() + ['', ' M2'][0|Math.random()*2],\n }[type] || (() => scrambler.getRandomScramble())();\n\n doMoves(scramble);\n\n store.save(`${from}:solve`, {\n moves: [],\n scrambleTime: +(new Date),\n startTime: undefined,\n endTime: undefined,\n scramble,\n view: getView(),\n type,\n });\n\n saveCube();\n render(`${type} scramble`);\n}\n\nfunction apply(inputMoves) {\n loadCube();\n doMoves(inputMoves);\n saveCube();\n\n const state = store.load(`${from}:solve`, false);\n let message;\n if (state) {\n let { moves, startTime, ...other } = state;\n\n moves.push([+(new Date), inputMoves]);\n\n if (!startTime) {\n if (getMoves(inputMoves).some(move => !'xyz'.includes(move.source.move))) {\n // if there's a non inspection move\n startTime = +(new Date);\n message = 'timer started!';\n }\n }\n\n store.save(`${from}:solve`, {\n moves,\n startTime,\n ...other\n });\n\n\n if (isSolved()) return solved();\n }\n\n render(message);\n}\n\nfunction renderDiff(startTime, endTime) {\n const { intervalToDuration } = require('date-fns@2.28.0');\n const duration = intervalToDuration({ start: new Date(startTime), end: new Date(endTime) });\n return `${duration.minutes}:${duration.seconds}`;\n}\n\nfunction solved() {\n const { moves, startTime, scrambleTime, scramble, view, type } = store.load(`${from}:solve`);\n const endTime = +(new Date);\n const score = endTime - startTime;\n render(`solved in ${renderDiff(startTime, endTime)}!`);\n\n const scores = store.load(`scores:${type}`, {});\n const oldScore = scores[from] || Infinity;\n\n if (score > oldScore) {\n scores[from] = score;\n store.save(`scores:${type}`, scores);\n store.save(`${from}:solution`, {\n startTime, endTime, score, scramble, moves, view, type\n });\n print(`{g}new pb!{/}`);\n }\n\n store.save(`${from}:solve`, false);\n}\n\n\n\n// ~cube.solution joey\n// ~cube.debug joey\n// paste solution to share\n// inspection time\n // scramble, solution\n// notify of new pb / notify in channel\n\n\n\nif (IRC.command.path === 'cube') {\n doMoves(input);\n render();\n} else {\n module.exports = { cube, scramble, render, apply, getMoves, doMoves, mini, view };\n}" + "command": "// TODO: axis / offset can be derived from color\n\nconst centers = [\n // U B R F L D\n { color: 0, axis: 'y', offset: -1 },\n { color: 1, axis: 'z', offset: -1 },\n { color: 2, axis: 'x', offset: 1 },\n { color: 3, axis: 'z', offset: 1 },\n { color: 4, axis: 'x', offset: -1 },\n { color: 5, axis: 'y', offset: 1 },\n];\n\nconst edges = [\n // UB UR UF UL\n [ { color: 1, axis: 'z', offset: -1 }, { color: 0, axis: 'y', offset: -1 } ],\n [ { color: 2, axis: 'x', offset: 1 }, { color: 0, axis: 'y', offset: -1 } ],\n [ { color: 3, axis: 'z', offset: 1 }, { color: 0, axis: 'y', offset: -1 } ],\n [ { color: 4, axis: 'x', offset: -1 }, { color: 0, axis: 'y', offset: -1 } ],\n // BR FR FL BL\n [ { color: 2, axis: 'x', offset: 1 }, { color: 1, axis: 'z', offset: -1 } ],\n [ { color: 2, axis: 'x', offset: 1 }, { color: 3, axis: 'z', offset: 1 } ],\n [ { color: 4, axis: 'x', offset: -1 }, { color: 3, axis: 'z', offset: 1 } ],\n [ { color: 4, axis: 'x', offset: -1 }, { color: 1, axis: 'z', offset: -1 } ],\n // DB DR DF DL\n [ { color: 1, axis: 'z', offset: -1 }, { color: 5, axis: 'y', offset: 1 } ],\n [ { color: 2, axis: 'x', offset: 1 }, { color: 5, axis: 'y', offset: 1 } ],\n [ { color: 3, axis: 'z', offset: 1 }, { color: 5, axis: 'y', offset: 1 } ],\n [ { color: 4, axis: 'x', offset: -1 }, { color: 5, axis: 'y', offset: 1 } ],\n];\n\nconst corners = [\n // UBR URF UFL ULB\n [\n { color: 2, axis: 'x', offset: 1 },\n { color: 0, axis: 'y', offset: -1 },\n { color: 1, axis: 'z', offset: -1 },\n ],\n [\n { color: 2, axis: 'x', offset: 1 },\n { color: 0, axis: 'y', offset: -1 },\n { color: 3, axis: 'z', offset: 1 },\n ],\n [\n { color: 4, axis: 'x', offset: -1 },\n { color: 0, axis: 'y', offset: -1 },\n { color: 3, axis: 'z', offset: 1 },\n ],\n [\n { color: 4, axis: 'x', offset: -1 },\n { color: 0, axis: 'y', offset: -1 },\n { color: 1, axis: 'z', offset: -1 },\n ],\n // DRB DFR DLF DBL\n [\n { color: 2, axis: 'x', offset: 1 },\n { color: 5, axis: 'y', offset: 1 },\n { color: 1, axis: 'z', offset: -1 },\n ],\n [\n { color: 2, axis: 'x', offset: 1 },\n { color: 5, axis: 'y', offset: 1 },\n { color: 3, axis: 'z', offset: 1 },\n ],\n [\n { color: 4, axis: 'x', offset: -1 },\n { color: 5, axis: 'y', offset: 1 },\n { color: 3, axis: 'z', offset: 1 },\n ],\n [\n { color: 4, axis: 'x', offset: -1 },\n { color: 5, axis: 'y', offset: 1 },\n { color: 1, axis: 'z', offset: -1 },\n ],\n];\n\nconst cube = {\n edges,\n corners,\n centers,\n};\n\n// U B R F L D\nconst moveList = {\n R: {\n edges: [5, 9, 4, 1],\n corners: [5, 4, 0, 1],\n centre: 2,\n axis: 'x',\n },\n U: {\n edges: [3, 2, 1, 0],\n corners: [3, 2, 1, 0],\n centre: 0,\n axis: 'y',\n },\n F: {\n edges: [6, 10, 5, 2],\n corners: [1, 2, 6, 5],\n centre: 3,\n axis: 'z',\n },\n L: {\n edges: [3, 7, 11, 6],\n corners: [2, 3, 7, 6],\n centre: 4,\n axis: 'x',\n axisFlip: true,\n },\n B: {\n edges: [4, 8, 7, 0],\n corners: [4, 7, 3, 0],\n centre: 1,\n axis: 'z',\n axisFlip: true,\n },\n D: {\n edges: [8, 9, 10, 11],\n corners: [4, 5, 6, 7],\n centre: 5,\n axis: 'y',\n axisFlip: true,\n },\n M: {\n centers: [0, 1, 5, 3],\n edges: [2, 0, 8, 10],\n axis: 'x',\n axisFlip: true,\n },\n E: {\n centers: [3, 4, 1, 2],\n edges: [4, 5, 6, 7],\n axis: 'y',\n axisFlip: true,\n },\n S: {\n centers: [4, 5, 2, 0],\n edges: [3, 11, 9, 1],\n axis: 'z',\n },\n r: { moves: [toObject(`R`), toObject(`M'`)] },\n l: { moves: [toObject(`L`), toObject(`M`)] },\n f: { moves: [toObject(`F`), toObject(`S`)] },\n b: { moves: [toObject(`B`), toObject(`S'`)] },\n u: { moves: [toObject(`U`), toObject(`E'`)] },\n d: { moves: [toObject(`D`), toObject(`E`)] },\n x: { moves: [toObject(`R`), toObject(`M'`), toObject(`L'`)] },\n y: { moves: [toObject(`U`), toObject(`E'`), toObject(`D'`)] },\n z: { moves: [toObject(`F`), toObject(`S`), toObject(`B'`)] },\n};\n\nfunction getMove(moveRaw) {\n const { move, order } = toObject(moveRaw);\n if (!moveList[move]) throw new Error(`invalid move ${move}`);\n const {\n corners,\n edges,\n centers,\n centre,\n axis,\n axisFlip,\n moves,\n } = moveList[move];\n\n // calculate transforms\n const transforms = [];\n corners && transforms.push(...corners.map(index => cube.corners[index]));\n edges && transforms.push(...edges.map(index => cube.edges[index]));\n centers && transforms.push(...centers.map(index => cube.centers[index]));\n typeof centre !== 'undefined' && transforms.push(cube.centers[centre]);\n const axisOrder = axisFlip ? -1 : 1;\n const extraMoves = moves && (\n moves.map(move => getMove(applyOrder(clone(move), order), cube))\n );\n\n // swap stickers / clean up move\n function apply() {\n extraMoves && extraMoves.forEach(move => move.apply());\n if (edges) {\n doCycle(cube.edges, order, edges, centers ? 'z' : axis);\n }\n if (centers) {\n doCycle(cube.centers, order, centers);\n }\n if (corners) {\n doCycle(cube.corners, order, corners, axis);\n }\n }\n\n return {\n apply,\n transforms,\n axis,\n source: { move, order },\n };\n}\n\nfunction getMoves(moves) {\n return splitMoves(moves).map(move => getMove(move, cube));\n}\n\nfunction splitMoves(str) {\n if (typeof str !== 'string') return str;\n return str.split(/(\\ww?\\d?'?)/).filter(d => d.trim());\n}\n\nfunction toObject(move) {\n if (typeof move !== 'string') return move;\n if (move[1] === 'w') move = `${move[0].toLowerCase()}${move.slice(2) || ''}`;\n return {\n move: move[0],\n order: {\n '\\'': -1,\n '2\\'': -2,\n '2': 2,\n }[move.slice(1)] || 1,\n };\n}\n\nfunction clone(move) {\n return Object.assign({}, move);\n}\n\nfunction applyOrder(move, order) {\n if (order === 1) return move;\n if (order === -1) {\n move.order = move.order === 2 ? 2 : -move.order;\n }\n if (order === 2) {\n move.order = move.order === 2 ? 0 : 2;\n }\n return move;\n}\n\n\nconst cornerSwaps = {\n x: [1, 2],\n y: [0, 2],\n z: [0, 1],\n};\n\nfunction doCycle(arr, order, cycle, axis) {\n if (order === 0) return;\n if (order === -1 || order === 3) {\n cycle = [...cycle].reverse();\n }\n if (order === 2 || order === -2) {\n doCycle(arr, 1, cycle, axis);\n }\n\n // cycles\n for (let i = 0; i < cycle.length - 1; i++) {\n swapPiece(arr, cycle[i], cycle[i + 1]);\n }\n\n // corner 'twists'\n if (arr[0].length === 3) {\n for (let i = 0; i < cycle.length; i++) {\n swapSticker(arr[cycle[i]], ...cornerSwaps[axis]);\n }\n }\n // edge flips\n else if (axis === 'z') {\n for (let i = 0; i < cycle.length; i++) {\n swapSticker(arr[cycle[i]], 0, 1);\n }\n }\n}\n\nfunction swapPiece(arr, first, second) {\n if (Array.isArray(arr[first])) {\n const tmpColors = arr[first].map(d => d.color);\n arr[first].forEach((sticker, i) => { sticker.color = arr[second][i].color; });\n arr[second].forEach((sticker, i) => { sticker.color = tmpColors[i]; });\n } else {\n swapSticker(arr, first, second)\n }\n}\n\nfunction swapSticker(arr, first, second) {\n const tmp = arr[first].color;\n arr[first].color = arr[second].color;\n arr[second].color = tmp;\n}\n\nfunction isSolved() {\n const { centers, edges, corners } = cube;\n const lookup = {};\n centers.forEach(({ color, axis, offset }) => {\n lookup[`${axis}|${offset}`] = color;\n });\n const pieces = edges.concat(corners);\n for (let i = 0; i < pieces.length; i++) {\n for (let j = 0; j < pieces[i].length; j++) {\n const { axis, offset, color } = pieces[i][j];\n if (color !== lookup[`${axis}|${offset}`]) {\n return false;\n }\n }\n }\n return true;\n}\n\n\n// IRC stuff\n\nconst { from } = IRC.message;\n\nfunction saveCube() {\n store.set(from, JSON.stringify(cube));\n}\n\nfunction loadCube() {\n const next = store.get(from);\n if (next) {\n Object.assign(cube, JSON.parse(next));\n }\n}\n\nfunction doMoves(moves) {\n getMoves(moves).forEach(move => move.apply());\n}\n\n// render\n\nconst colors = 'wbrgoy';\n\nfunction renderQCube(message = '') {\n function sticker(obj) {\n return `{${colors[obj.color]}}██{/}`;\n }\n\n print([\n [sticker(cube.corners[3][0]),sticker(cube.corners[3][1]),sticker(cube.edges[0][1]),sticker(cube.corners[0][1]),sticker(cube.corners[0][0])].join`` + ` ${message}`,\n [sticker(cube.edges[3][0]),sticker(cube.edges[3][1]),sticker(cube.centers[0]),sticker(cube.edges[1][1]),sticker(cube.edges[1][0])].join``,\n [sticker(cube.corners[2][0]),sticker(cube.corners[2][1]),sticker(cube.edges[2][1]),sticker(cube.corners[1][1]),sticker(cube.corners[1][0])].join``,\n [sticker(cube.corners[2][0]),sticker(cube.corners[2][2]),sticker(cube.edges[2][0]),sticker(cube.corners[1][2]),sticker(cube.corners[1][0])].join``,\n [sticker(cube.edges[6][0]),sticker(cube.edges[6][1]),sticker(cube.centers[3]),sticker(cube.edges[5][1]),sticker(cube.edges[5][0])].join``,\n [sticker(cube.corners[6][0]),sticker(cube.corners[6][2]),sticker(cube.edges[0xA][0]),sticker(cube.corners[5][2]),sticker(cube.corners[5][0])].join``,\n ].join`\\n`)\n}\n\nfunction renderMini(message = '') {\n function sticker(obj) {\n return colors[obj.color]; \n }\n function crunch([l1, l2]) {\n return l1.map((d, i) => `{${d},${l2[i]}}▀{/}`).join``;\n }\n print([\n crunch([[sticker(cube.corners[3][0]),sticker(cube.corners[3][1]),sticker(cube.edges[0][1]),sticker(cube.corners[0][1]),sticker(cube.corners[0][0])],\n [sticker(cube.edges[3][0]),sticker(cube.edges[3][1]),sticker(cube.centers[0]),sticker(cube.edges[1][1]),sticker(cube.edges[1][0])]]) + ` ${message}`,\n crunch([[sticker(cube.corners[2][0]),sticker(cube.corners[2][1]),sticker(cube.edges[2][1]),sticker(cube.corners[1][1]),sticker(cube.corners[1][0])],\n [sticker(cube.corners[2][0]),sticker(cube.corners[2][2]),sticker(cube.edges[2][0]),sticker(cube.corners[1][2]),sticker(cube.corners[1][0])]]),\n crunch([[sticker(cube.edges[6][0]),sticker(cube.edges[6][1]),sticker(cube.centers[3]),sticker(cube.edges[5][1]),sticker(cube.edges[5][0])],\n [sticker(cube.corners[6][0]),sticker(cube.corners[6][2]),sticker(cube.edges[0xA][0]),sticker(cube.corners[5][2]),sticker(cube.corners[5][0])]]),\n ].join`\\n`)\n}\n\nfunction renderT(message = '') {\n function sticker(obj) { return `{${colors[obj.color]}}██{/}`; }\n function crnr(x, y) { return sticker(cube.corners[x][y]); }\n function edge(x, y) { return sticker(cube.edges[x][y]); }\n function cntr(x) { return sticker(cube.centers[x]); }\n const spaces = \" \";\n print([\n [spaces,crnr(3,1),edge(0,1),crnr(0,1)].join`` + ` ${message}`,\n [spaces,edge(3,1),cntr(0), edge(1,1)].join``,\n [spaces,crnr(2,1),edge(2,1),crnr(1,1)].join``,\n [crnr(3,0),edge(3,0),crnr(2,0),crnr(2,2),edge(2,0),crnr(1,2),crnr(1,0),edge(1,0),crnr(0,0)].join``,\n [edge(7,0),cntr(4),edge(6,0),edge(6,1),cntr(3), edge(5,1),edge(5,0),cntr(2),edge(4,0)].join``,\n [crnr(7,0),edge(11,0),crnr(6,0),crnr(6,2),edge(10,0),crnr(5,2),crnr(5,0),edge(9,0),crnr(4,0)].join``,\n ].join`\\n`)\n}\n\n\nfunction mini() {\n doMoves(input);\n renderMini();\n}\n\nfunction view(view) {\n if (!view || !['qcube','mini','T'].includes(view.trim())) {\n throw `usage: ${IRC.colors.cmd('cube.view', 'qcube|mini|T')}`;\n }\n store.set(`${from}:view`, view);\n print(`View for ${from} set to ${view}`);\n}\n\nfunction getView() { return store.get(`${from}:view`) || 'qcube'; }\n\nfunction render(message) {\n const view = getView();\n if (view === 'mini') return renderMini(message);\n else if (view === 'T') return renderT(message);\n return renderQCube(message);\n}\n\n// solving / scramble / timer\n\nconst scrambler = IRC.require('scramble');\n\nfunction scramble(type) {\n type = type.toUpperCase().trim();\n !['LL', 'LSE', 'TEST'].includes(type) && (type = '3x3');\n\n const scramble = {\n TEST: `RU`,\n LL: scrambler.getLLScramble(),\n LSE: `xy'` + scrambler.getLSEScramble() + ['', ' M2'][0|Math.random()*2],\n }[type] || (() => scrambler.getRandomScramble())();\n\n doMoves(scramble);\n\n store.save(`${from}:solve`, {\n moves: [],\n scrambleTime: +(new Date),\n startTime: undefined,\n scramble,\n view: getView(),\n type,\n });\n\n saveCube();\n render(`${type} scramble`);\n}\n\nfunction apply(inputMoves) {\n loadCube();\n doMoves(inputMoves);\n saveCube();\n\n const state = store.load(`${from}:solve`, false);\n let message;\n if (state) {\n let { moves, startTime, ...other } = state;\n\n moves.push([+(new Date), inputMoves]);\n\n if (!startTime) {\n if (getMoves(inputMoves).some(move => !'xyz'.includes(move.source.move))) {\n // if there's a non inspection move\n startTime = +(new Date);\n message = 'timer started!';\n }\n }\n\n store.save(`${from}:solve`, {\n moves,\n startTime,\n ...other\n });\n\n\n if (isSolved()) return solved();\n }\n\n render(message);\n}\n\nfunction renderDiff(startTime, endTime) {\n const { intervalToDuration } = require('date-fns@2.28.0');\n const duration = intervalToDuration({ start: new Date(startTime), end: new Date(endTime) });\n return `${duration.minutes}:${String(duration.seconds).padStart(2, '0')}`;\n}\n\nfunction solved() {\n const { moves, startTime, scrambleTime, scramble, view, type } = store.load(`${from}:solve`);\n const endTime = +(new Date);\n const score = endTime - startTime;\n render(`solved in ${renderDiff(startTime, endTime)}!`);\n\n const scores = store.load(`scores:${type}`, {});\n const oldScore = scores[from] || Infinity;\n\n if (score < oldScore) {\n scores[from] = score;\n store.save(`scores:${type}`, scores);\n store.save(`${from}:solution`, {\n scrambleTime, startTime, endTime, score, scramble, moves, view, type\n });\n print(`{g}new pb!{/}`);\n print(`${IRC.colors.nick(from, false)} got a new ${type} pb of {dc}${renderDiff(startTime, endTime)}{/}!`, { target: '#rubik' })\n }\n\n store.save(`${from}:solve`, false);\n}\n\nfunction scores(query) {\n const type = query.trim() || '3x3';\n const scores = Object.entries(store.load(`scores:${type}`, {}))\n .map(([name, score]) => {\n const solution = store.load(`${name}:solution`);\n return ({ name, score, extra: solution.view, solution });\n });\n\n print(IRC.require('module.leaderboard')({\n title: `${type} Leaderboard`,\n scores,\n reverse: true,\n fmtNum: (score, { solution: { startTime, endTime } }) => renderDiff(startTime, endTime),\n }));\n}\n\nfunction solution(query) {\n const name = query.trim();\n const solution = store.load(`${name}:solution`)\n if (!solution) throw `no solution for ${name}`\n const { \n moves,\n scrambleTime,\n startTime,\n endTime,\n scramble,\n view,\n type,\n } = solution;\n\n const alg = str => str.replace(/'/g, '-').replace(/\\s+/g, '_');\n\n const output = `\nevent: ${type}\nsolve time: ${renderDiff(startTime, endTime)}\ninspection time: ${scrambleTime && renderDiff(scrambleTime, startTime)}\nscramble: ${scramble}\nview: ${view}\n\n${moves.map(([diff, moveList]) => `${renderDiff(startTime, diff)} ${moveList}`).join`\\n`}\n\nhttps://alg.cubing.net/?setup=${alg(scramble)}&alg=${moves.map(([_, m]) => alg(m)).join('%0A')}\n\n `.trim();\n\n print(IRC.require('module.paste')(output));\n // print(IRC.require('module.paste')(JSON.stringify(solution, 0, 4)));\n}\n\n// ~cube.solution joey (pastebin)\n// alg.cubing.net\n// convert highscores to SQL -> direct copy at first\n\n\nif (IRC.command.path === 'cube') {\n doMoves(input);\n render();\n} else {\n module.exports = { scramble, render, apply, getMoves, doMoves, mini, view, scores, solution };\n}" } \ No newline at end of file diff --git a/commands/cubescores-1321c5832778.json b/commands/cubescores-1321c5832778.json index 3fe67ed..4f0d6a8 100644 --- a/commands/cubescores-1321c5832778.json +++ b/commands/cubescores-1321c5832778.json @@ -3,5 +3,5 @@ "locked": false, "starred": false, "name": "cube.scores", - "command": "" + "command": "IRC.require('cube').scores(input);" } \ No newline at end of file diff --git a/commands/cubesolution-117b8a0d275f.json b/commands/cubesolution-117b8a0d275f.json new file mode 100644 index 0000000..e3210be --- /dev/null +++ b/commands/cubesolution-117b8a0d275f.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "cube.solution", + "command": "IRC.require('cube').solution(input);" +} \ No newline at end of file diff --git a/commands/dog-ab6a92f48609.json b/commands/dog-ab6a92f48609.json index 9498608..ff59712 100644 --- a/commands/dog-ab6a92f48609.json +++ b/commands/dog-ab6a92f48609.json @@ -1,6 +1,6 @@ { "name": "dog", - "command": "print.raw(`\u00030,0.......................................\u00031,1......\u000314,14.\u00030,0..............\n\u00030,0.......................................\u00031,1.........\u00030,0..\u00031,1..\u00030,0........\n\u00030,0....\u00032KITTY\u00030,0.\u00032FALL\u00030,0.\u00032DOWN\u00030,0.....................\u000315,15.\u00031,1......\u00030,0..\u00031,1....\u00030,0.......\n\u00030,0....\u00038KITTY\u00030,0.\u00038FALL\u00030,0.\u00038DOWN\u00030,0....................\u00031,1......\u00030,0...\u00031,1.......\u00030,0.....\n\u00030,0....\u00033KITTY\u00030,0.\u00033FALL\u00030,0.\u00033DOWN\u00030,0..................\u00031,1.......\u00030,0.\u00031,1...........\u00030,0....\n\u00030,0....\u00036KITTY\u00030,0.\u00036FALL\u00030,0.\u00036DOWN\u00030,0.................\u00031,1......................\u00030,0..\n\u00030,0....\u000311KITTY\u00030,0.\u000311FALL\u00030,0.\u000311DOWN\u00030,0...............\u00031,1..........................\n\u00030,0................................\u000315,15.\u00031,1...........................\n\u00030,0...............................\u00031,1.............................\n\u00030,0............................\u000315,15.\u00031,1...............................\n\u00030,0...................\u00031,1.........................................\n\u00030,0.....\u000315,15.\u00031,1..\u000315,15.\u00030,0.......\u00031,1............................................\n\u00030,0.....\u00031,1.....\u00030,0....\u00031,1..............................................\n\u00030,0....\u00031,1.......\u00030,0...\u00031,1..............................................\n\u00030,0...\u00031,1.........................................................\n\u00030,0...\u00031,1......................................................\u00030,0.\u00031,1..\n\u00030,0..\u00031,1......................................................\u00030,0..\u00031,1..\n\u00030,0..\u00031,1....................................................\u00030,0....\u00031,1..\n\u00031,1.....................................................\u00030,0....\u00031,1...\n\u00031,1..................................................\u00030,0......\u00031,1....\n\u000315,15.\u00031,1..........\u000314,14.\u000315,15..\u00030,0.............\u00031,1.....................\u00030,0......\u00031,1.....\u00030,0.\n\u00030,0.............................\u00031,1.................\u00030,0.......\u00031,1....\u00030,0...\n`);", + "command": "print.raw(`🐢`);", "locked": false, "starred": false } \ No newline at end of file diff --git a/commands/moduleleaderboard-751340fac929.json b/commands/moduleleaderboard-751340fac929.json index e064620..aa3aa0d 100644 --- a/commands/moduleleaderboard-751340fac929.json +++ b/commands/moduleleaderboard-751340fac929.json @@ -2,5 +2,5 @@ "locked": false, "starred": false, "name": "module.leaderboard", - "command": "function render({\n currency = '',\n scores = [/*{ name, score, extra }*/],\n combine = true,\n limit = 5,\n reverse = false,\n title = 'Leaderboard',\n groupPosition = false,\n fmtNum = (score) => Intl.NumberFormat().format(+score),\n fmtRank = (item, index) => index + 1,\n}) {\n const output = [];\n if (title) {\n output.push(`{u}${title}{/}`);\n }\n // assert text in extra\n scores.forEach(obj => { obj.extra = obj.extra || ''; })\n\n const sortScores = (combine ? combineScores(scores) : scores)\n .sort((a, b) => a.score - b.score);\n\n const filterScores = (!reverse ? sortScores.reverse() : sortScores)\n .slice(0, limit || undefined);\n\n const longestName = Math.max(15, getLongestName(filterScores));\n const longestValue = filterScores.reduce((acc, cur) => Math.max(acc, fmtNum(cur.score).length), 0) + currency.length;\n\n const colours = ['{y}','{gr}','{o}'];\n\n // name can be string / array\n\n let i = 0;\n filterScores.forEach((item, index) => {\n const { name, score, extra } = item;\n const nameRaw = Array.isArray(name) ? name.join(', ') : name;\n const fmtName = nameRaw.replace(/\\w+/g, IRC.breakHighlight);\n const fmtScore = fmtNum(score);\n const number = fmtRank(item, index);\n const colour = colours[index] || '';\n const padding = '.'.repeat(Math.max(\n 2 + longestName + longestValue - nameRaw.length - fmtScore.length - (String(number).length - 1),\n 0,\n ));\n\n output.push(`${number}. ${colour}${fmtName}{/}{bo}${padding}{/}{y}${currency}${fmtScore}{/}${extra ? ` ${extra}`:''}`);\n\n // inc\n if (!groupPosition || !Array.isArray(name)) {\n i += 1;\n } else {\n i += name.length;\n }\n });\n\n return output.join('\\n');\n}\n\nfunction combineScores(scores) {\n return scores.reduce((acc, cur) => {\n const exists = acc.findIndex((d) => d.score === cur.score);\n if (exists !== -1) {\n acc[exists].name.push(cur.name);\n acc[exists].extra += ' ' + cur.extra;\n } else {\n cur.name = [cur.name];\n acc.push(cur);\n }\n return acc;\n }, []);\n}\n\nfunction getLongestName(scores) {\n return scores.reduce((acc, cur) => (\n Math.max(acc, Array.isArray(cur.name) ? cur.name.join(', ').length : cur.name.length)\n ), 0);\n}\n\nmodule.exports = render;" + "command": "function render({\n currency = '',\n scores = [/*{ name, score, extra }*/],\n combine = true,\n limit = 5,\n reverse = false,\n title = 'Leaderboard',\n groupPosition = false,\n fmtNum = (score, item, index) => Intl.NumberFormat().format(+score),\n fmtRank = (item, index) => index + 1,\n}) {\n const output = [];\n if (title) {\n output.push(`{u}${title}{/}`);\n }\n // assert text in extra\n scores.forEach(obj => { obj.extra = obj.extra || ''; })\n\n const sortScores = (combine ? combineScores(scores) : scores)\n .sort((a, b) => a.score - b.score);\n\n const filterScores = (!reverse ? sortScores.reverse() : sortScores)\n .slice(0, limit || undefined);\n\n const longestName = Math.max(15, getLongestName(filterScores));\n const longestValue = filterScores.reduce((acc, cur, i) => Math.max(acc, fmtNum(cur.score, cur, i).length), 0) + currency.length;\n\n const colours = ['{y}','{gr}','{o}'];\n\n // name can be string / array\n\n let i = 0;\n filterScores.forEach((item, index) => {\n const { name, score, extra } = item;\n const nameRaw = Array.isArray(name) ? name.join(', ') : name;\n const fmtName = nameRaw.replace(/\\w+/g, IRC.breakHighlight);\n const fmtScore = fmtNum(score, item, index);\n const number = fmtRank(item, index);\n const colour = colours[index] || '';\n const padding = '.'.repeat(Math.max(\n 2 + longestName + longestValue - nameRaw.length - fmtScore.length - (String(number).length - 1),\n 0,\n ));\n\n output.push(`${number}. ${colour}${fmtName}{/}{bo}${padding}{/}{y}${currency}${fmtScore}{/}${extra ? ` ${extra}`:''}`);\n\n // inc\n if (!groupPosition || !Array.isArray(name)) {\n i += 1;\n } else {\n i += name.length;\n }\n });\n\n return output.join('\\n');\n}\n\nfunction combineScores(scores) {\n return scores.reduce((acc, cur) => {\n const exists = acc.findIndex((d) => d.score === cur.score);\n if (exists !== -1) {\n acc[exists].name.push(cur.name);\n acc[exists].extra += ' ' + cur.extra;\n } else {\n cur.name = [cur.name];\n acc.push(cur);\n }\n return acc;\n }, []);\n}\n\nfunction getLongestName(scores) {\n return scores.reduce((acc, cur) => (\n Math.max(acc, Array.isArray(cur.name) ? cur.name.join(', ').length : cur.name.length)\n ), 0);\n}\n\nmodule.exports = render;" } \ No newline at end of file From 6b6c3e34b09fe620172cc45775984f5059e81dd3 Mon Sep 17 00:00:00 2001 From: kirjavascript Date: Fri, 25 Mar 2022 16:44:20 +0100 Subject: [PATCH 32/94] ksim --- commands/cube-4266a5d58b29.json | 2 +- commands/ksim-dfe585bac131.json | 7 +++++++ commands/nick-4cb960ba64fe.json | 2 +- commands/whois-1954518b8de0.json | 2 +- 4 files changed, 10 insertions(+), 3 deletions(-) create mode 100644 commands/ksim-dfe585bac131.json diff --git a/commands/cube-4266a5d58b29.json b/commands/cube-4266a5d58b29.json index f077f9c..8d45add 100644 --- a/commands/cube-4266a5d58b29.json +++ b/commands/cube-4266a5d58b29.json @@ -3,5 +3,5 @@ "locked": true, "starred": false, "name": "cube", - "command": "// TODO: axis / offset can be derived from color\n\nconst centers = [\n // U B R F L D\n { color: 0, axis: 'y', offset: -1 },\n { color: 1, axis: 'z', offset: -1 },\n { color: 2, axis: 'x', offset: 1 },\n { color: 3, axis: 'z', offset: 1 },\n { color: 4, axis: 'x', offset: -1 },\n { color: 5, axis: 'y', offset: 1 },\n];\n\nconst edges = [\n // UB UR UF UL\n [ { color: 1, axis: 'z', offset: -1 }, { color: 0, axis: 'y', offset: -1 } ],\n [ { color: 2, axis: 'x', offset: 1 }, { color: 0, axis: 'y', offset: -1 } ],\n [ { color: 3, axis: 'z', offset: 1 }, { color: 0, axis: 'y', offset: -1 } ],\n [ { color: 4, axis: 'x', offset: -1 }, { color: 0, axis: 'y', offset: -1 } ],\n // BR FR FL BL\n [ { color: 2, axis: 'x', offset: 1 }, { color: 1, axis: 'z', offset: -1 } ],\n [ { color: 2, axis: 'x', offset: 1 }, { color: 3, axis: 'z', offset: 1 } ],\n [ { color: 4, axis: 'x', offset: -1 }, { color: 3, axis: 'z', offset: 1 } ],\n [ { color: 4, axis: 'x', offset: -1 }, { color: 1, axis: 'z', offset: -1 } ],\n // DB DR DF DL\n [ { color: 1, axis: 'z', offset: -1 }, { color: 5, axis: 'y', offset: 1 } ],\n [ { color: 2, axis: 'x', offset: 1 }, { color: 5, axis: 'y', offset: 1 } ],\n [ { color: 3, axis: 'z', offset: 1 }, { color: 5, axis: 'y', offset: 1 } ],\n [ { color: 4, axis: 'x', offset: -1 }, { color: 5, axis: 'y', offset: 1 } ],\n];\n\nconst corners = [\n // UBR URF UFL ULB\n [\n { color: 2, axis: 'x', offset: 1 },\n { color: 0, axis: 'y', offset: -1 },\n { color: 1, axis: 'z', offset: -1 },\n ],\n [\n { color: 2, axis: 'x', offset: 1 },\n { color: 0, axis: 'y', offset: -1 },\n { color: 3, axis: 'z', offset: 1 },\n ],\n [\n { color: 4, axis: 'x', offset: -1 },\n { color: 0, axis: 'y', offset: -1 },\n { color: 3, axis: 'z', offset: 1 },\n ],\n [\n { color: 4, axis: 'x', offset: -1 },\n { color: 0, axis: 'y', offset: -1 },\n { color: 1, axis: 'z', offset: -1 },\n ],\n // DRB DFR DLF DBL\n [\n { color: 2, axis: 'x', offset: 1 },\n { color: 5, axis: 'y', offset: 1 },\n { color: 1, axis: 'z', offset: -1 },\n ],\n [\n { color: 2, axis: 'x', offset: 1 },\n { color: 5, axis: 'y', offset: 1 },\n { color: 3, axis: 'z', offset: 1 },\n ],\n [\n { color: 4, axis: 'x', offset: -1 },\n { color: 5, axis: 'y', offset: 1 },\n { color: 3, axis: 'z', offset: 1 },\n ],\n [\n { color: 4, axis: 'x', offset: -1 },\n { color: 5, axis: 'y', offset: 1 },\n { color: 1, axis: 'z', offset: -1 },\n ],\n];\n\nconst cube = {\n edges,\n corners,\n centers,\n};\n\n// U B R F L D\nconst moveList = {\n R: {\n edges: [5, 9, 4, 1],\n corners: [5, 4, 0, 1],\n centre: 2,\n axis: 'x',\n },\n U: {\n edges: [3, 2, 1, 0],\n corners: [3, 2, 1, 0],\n centre: 0,\n axis: 'y',\n },\n F: {\n edges: [6, 10, 5, 2],\n corners: [1, 2, 6, 5],\n centre: 3,\n axis: 'z',\n },\n L: {\n edges: [3, 7, 11, 6],\n corners: [2, 3, 7, 6],\n centre: 4,\n axis: 'x',\n axisFlip: true,\n },\n B: {\n edges: [4, 8, 7, 0],\n corners: [4, 7, 3, 0],\n centre: 1,\n axis: 'z',\n axisFlip: true,\n },\n D: {\n edges: [8, 9, 10, 11],\n corners: [4, 5, 6, 7],\n centre: 5,\n axis: 'y',\n axisFlip: true,\n },\n M: {\n centers: [0, 1, 5, 3],\n edges: [2, 0, 8, 10],\n axis: 'x',\n axisFlip: true,\n },\n E: {\n centers: [3, 4, 1, 2],\n edges: [4, 5, 6, 7],\n axis: 'y',\n axisFlip: true,\n },\n S: {\n centers: [4, 5, 2, 0],\n edges: [3, 11, 9, 1],\n axis: 'z',\n },\n r: { moves: [toObject(`R`), toObject(`M'`)] },\n l: { moves: [toObject(`L`), toObject(`M`)] },\n f: { moves: [toObject(`F`), toObject(`S`)] },\n b: { moves: [toObject(`B`), toObject(`S'`)] },\n u: { moves: [toObject(`U`), toObject(`E'`)] },\n d: { moves: [toObject(`D`), toObject(`E`)] },\n x: { moves: [toObject(`R`), toObject(`M'`), toObject(`L'`)] },\n y: { moves: [toObject(`U`), toObject(`E'`), toObject(`D'`)] },\n z: { moves: [toObject(`F`), toObject(`S`), toObject(`B'`)] },\n};\n\nfunction getMove(moveRaw) {\n const { move, order } = toObject(moveRaw);\n if (!moveList[move]) throw new Error(`invalid move ${move}`);\n const {\n corners,\n edges,\n centers,\n centre,\n axis,\n axisFlip,\n moves,\n } = moveList[move];\n\n // calculate transforms\n const transforms = [];\n corners && transforms.push(...corners.map(index => cube.corners[index]));\n edges && transforms.push(...edges.map(index => cube.edges[index]));\n centers && transforms.push(...centers.map(index => cube.centers[index]));\n typeof centre !== 'undefined' && transforms.push(cube.centers[centre]);\n const axisOrder = axisFlip ? -1 : 1;\n const extraMoves = moves && (\n moves.map(move => getMove(applyOrder(clone(move), order), cube))\n );\n\n // swap stickers / clean up move\n function apply() {\n extraMoves && extraMoves.forEach(move => move.apply());\n if (edges) {\n doCycle(cube.edges, order, edges, centers ? 'z' : axis);\n }\n if (centers) {\n doCycle(cube.centers, order, centers);\n }\n if (corners) {\n doCycle(cube.corners, order, corners, axis);\n }\n }\n\n return {\n apply,\n transforms,\n axis,\n source: { move, order },\n };\n}\n\nfunction getMoves(moves) {\n return splitMoves(moves).map(move => getMove(move, cube));\n}\n\nfunction splitMoves(str) {\n if (typeof str !== 'string') return str;\n return str.split(/(\\ww?\\d?'?)/).filter(d => d.trim());\n}\n\nfunction toObject(move) {\n if (typeof move !== 'string') return move;\n if (move[1] === 'w') move = `${move[0].toLowerCase()}${move.slice(2) || ''}`;\n return {\n move: move[0],\n order: {\n '\\'': -1,\n '2\\'': -2,\n '2': 2,\n }[move.slice(1)] || 1,\n };\n}\n\nfunction clone(move) {\n return Object.assign({}, move);\n}\n\nfunction applyOrder(move, order) {\n if (order === 1) return move;\n if (order === -1) {\n move.order = move.order === 2 ? 2 : -move.order;\n }\n if (order === 2) {\n move.order = move.order === 2 ? 0 : 2;\n }\n return move;\n}\n\n\nconst cornerSwaps = {\n x: [1, 2],\n y: [0, 2],\n z: [0, 1],\n};\n\nfunction doCycle(arr, order, cycle, axis) {\n if (order === 0) return;\n if (order === -1 || order === 3) {\n cycle = [...cycle].reverse();\n }\n if (order === 2 || order === -2) {\n doCycle(arr, 1, cycle, axis);\n }\n\n // cycles\n for (let i = 0; i < cycle.length - 1; i++) {\n swapPiece(arr, cycle[i], cycle[i + 1]);\n }\n\n // corner 'twists'\n if (arr[0].length === 3) {\n for (let i = 0; i < cycle.length; i++) {\n swapSticker(arr[cycle[i]], ...cornerSwaps[axis]);\n }\n }\n // edge flips\n else if (axis === 'z') {\n for (let i = 0; i < cycle.length; i++) {\n swapSticker(arr[cycle[i]], 0, 1);\n }\n }\n}\n\nfunction swapPiece(arr, first, second) {\n if (Array.isArray(arr[first])) {\n const tmpColors = arr[first].map(d => d.color);\n arr[first].forEach((sticker, i) => { sticker.color = arr[second][i].color; });\n arr[second].forEach((sticker, i) => { sticker.color = tmpColors[i]; });\n } else {\n swapSticker(arr, first, second)\n }\n}\n\nfunction swapSticker(arr, first, second) {\n const tmp = arr[first].color;\n arr[first].color = arr[second].color;\n arr[second].color = tmp;\n}\n\nfunction isSolved() {\n const { centers, edges, corners } = cube;\n const lookup = {};\n centers.forEach(({ color, axis, offset }) => {\n lookup[`${axis}|${offset}`] = color;\n });\n const pieces = edges.concat(corners);\n for (let i = 0; i < pieces.length; i++) {\n for (let j = 0; j < pieces[i].length; j++) {\n const { axis, offset, color } = pieces[i][j];\n if (color !== lookup[`${axis}|${offset}`]) {\n return false;\n }\n }\n }\n return true;\n}\n\n\n// IRC stuff\n\nconst { from } = IRC.message;\n\nfunction saveCube() {\n store.set(from, JSON.stringify(cube));\n}\n\nfunction loadCube() {\n const next = store.get(from);\n if (next) {\n Object.assign(cube, JSON.parse(next));\n }\n}\n\nfunction doMoves(moves) {\n getMoves(moves).forEach(move => move.apply());\n}\n\n// render\n\nconst colors = 'wbrgoy';\n\nfunction renderQCube(message = '') {\n function sticker(obj) {\n return `{${colors[obj.color]}}██{/}`;\n }\n\n print([\n [sticker(cube.corners[3][0]),sticker(cube.corners[3][1]),sticker(cube.edges[0][1]),sticker(cube.corners[0][1]),sticker(cube.corners[0][0])].join`` + ` ${message}`,\n [sticker(cube.edges[3][0]),sticker(cube.edges[3][1]),sticker(cube.centers[0]),sticker(cube.edges[1][1]),sticker(cube.edges[1][0])].join``,\n [sticker(cube.corners[2][0]),sticker(cube.corners[2][1]),sticker(cube.edges[2][1]),sticker(cube.corners[1][1]),sticker(cube.corners[1][0])].join``,\n [sticker(cube.corners[2][0]),sticker(cube.corners[2][2]),sticker(cube.edges[2][0]),sticker(cube.corners[1][2]),sticker(cube.corners[1][0])].join``,\n [sticker(cube.edges[6][0]),sticker(cube.edges[6][1]),sticker(cube.centers[3]),sticker(cube.edges[5][1]),sticker(cube.edges[5][0])].join``,\n [sticker(cube.corners[6][0]),sticker(cube.corners[6][2]),sticker(cube.edges[0xA][0]),sticker(cube.corners[5][2]),sticker(cube.corners[5][0])].join``,\n ].join`\\n`)\n}\n\nfunction renderMini(message = '') {\n function sticker(obj) {\n return colors[obj.color]; \n }\n function crunch([l1, l2]) {\n return l1.map((d, i) => `{${d},${l2[i]}}▀{/}`).join``;\n }\n print([\n crunch([[sticker(cube.corners[3][0]),sticker(cube.corners[3][1]),sticker(cube.edges[0][1]),sticker(cube.corners[0][1]),sticker(cube.corners[0][0])],\n [sticker(cube.edges[3][0]),sticker(cube.edges[3][1]),sticker(cube.centers[0]),sticker(cube.edges[1][1]),sticker(cube.edges[1][0])]]) + ` ${message}`,\n crunch([[sticker(cube.corners[2][0]),sticker(cube.corners[2][1]),sticker(cube.edges[2][1]),sticker(cube.corners[1][1]),sticker(cube.corners[1][0])],\n [sticker(cube.corners[2][0]),sticker(cube.corners[2][2]),sticker(cube.edges[2][0]),sticker(cube.corners[1][2]),sticker(cube.corners[1][0])]]),\n crunch([[sticker(cube.edges[6][0]),sticker(cube.edges[6][1]),sticker(cube.centers[3]),sticker(cube.edges[5][1]),sticker(cube.edges[5][0])],\n [sticker(cube.corners[6][0]),sticker(cube.corners[6][2]),sticker(cube.edges[0xA][0]),sticker(cube.corners[5][2]),sticker(cube.corners[5][0])]]),\n ].join`\\n`)\n}\n\nfunction renderT(message = '') {\n function sticker(obj) { return `{${colors[obj.color]}}██{/}`; }\n function crnr(x, y) { return sticker(cube.corners[x][y]); }\n function edge(x, y) { return sticker(cube.edges[x][y]); }\n function cntr(x) { return sticker(cube.centers[x]); }\n const spaces = \" \";\n print([\n [spaces,crnr(3,1),edge(0,1),crnr(0,1)].join`` + ` ${message}`,\n [spaces,edge(3,1),cntr(0), edge(1,1)].join``,\n [spaces,crnr(2,1),edge(2,1),crnr(1,1)].join``,\n [crnr(3,0),edge(3,0),crnr(2,0),crnr(2,2),edge(2,0),crnr(1,2),crnr(1,0),edge(1,0),crnr(0,0)].join``,\n [edge(7,0),cntr(4),edge(6,0),edge(6,1),cntr(3), edge(5,1),edge(5,0),cntr(2),edge(4,0)].join``,\n [crnr(7,0),edge(11,0),crnr(6,0),crnr(6,2),edge(10,0),crnr(5,2),crnr(5,0),edge(9,0),crnr(4,0)].join``,\n ].join`\\n`)\n}\n\n\nfunction mini() {\n doMoves(input);\n renderMini();\n}\n\nfunction view(view) {\n if (!view || !['qcube','mini','T'].includes(view.trim())) {\n throw `usage: ${IRC.colors.cmd('cube.view', 'qcube|mini|T')}`;\n }\n store.set(`${from}:view`, view);\n print(`View for ${from} set to ${view}`);\n}\n\nfunction getView() { return store.get(`${from}:view`) || 'qcube'; }\n\nfunction render(message) {\n const view = getView();\n if (view === 'mini') return renderMini(message);\n else if (view === 'T') return renderT(message);\n return renderQCube(message);\n}\n\n// solving / scramble / timer\n\nconst scrambler = IRC.require('scramble');\n\nfunction scramble(type) {\n type = type.toUpperCase().trim();\n !['LL', 'LSE', 'TEST'].includes(type) && (type = '3x3');\n\n const scramble = {\n TEST: `RU`,\n LL: scrambler.getLLScramble(),\n LSE: `xy'` + scrambler.getLSEScramble() + ['', ' M2'][0|Math.random()*2],\n }[type] || (() => scrambler.getRandomScramble())();\n\n doMoves(scramble);\n\n store.save(`${from}:solve`, {\n moves: [],\n scrambleTime: +(new Date),\n startTime: undefined,\n scramble,\n view: getView(),\n type,\n });\n\n saveCube();\n render(`${type} scramble`);\n}\n\nfunction apply(inputMoves) {\n loadCube();\n doMoves(inputMoves);\n saveCube();\n\n const state = store.load(`${from}:solve`, false);\n let message;\n if (state) {\n let { moves, startTime, ...other } = state;\n\n moves.push([+(new Date), inputMoves]);\n\n if (!startTime) {\n if (getMoves(inputMoves).some(move => !'xyz'.includes(move.source.move))) {\n // if there's a non inspection move\n startTime = +(new Date);\n message = 'timer started!';\n }\n }\n\n store.save(`${from}:solve`, {\n moves,\n startTime,\n ...other\n });\n\n\n if (isSolved()) return solved();\n }\n\n render(message);\n}\n\nfunction renderDiff(startTime, endTime) {\n const { intervalToDuration } = require('date-fns@2.28.0');\n const duration = intervalToDuration({ start: new Date(startTime), end: new Date(endTime) });\n return `${duration.minutes}:${String(duration.seconds).padStart(2, '0')}`;\n}\n\nfunction solved() {\n const { moves, startTime, scrambleTime, scramble, view, type } = store.load(`${from}:solve`);\n const endTime = +(new Date);\n const score = endTime - startTime;\n render(`solved in ${renderDiff(startTime, endTime)}!`);\n\n const scores = store.load(`scores:${type}`, {});\n const oldScore = scores[from] || Infinity;\n\n if (score < oldScore) {\n scores[from] = score;\n store.save(`scores:${type}`, scores);\n store.save(`${from}:solution`, {\n scrambleTime, startTime, endTime, score, scramble, moves, view, type\n });\n print(`{g}new pb!{/}`);\n print(`${IRC.colors.nick(from, false)} got a new ${type} pb of {dc}${renderDiff(startTime, endTime)}{/}!`, { target: '#rubik' })\n }\n\n store.save(`${from}:solve`, false);\n}\n\nfunction scores(query) {\n const type = query.trim() || '3x3';\n const scores = Object.entries(store.load(`scores:${type}`, {}))\n .map(([name, score]) => {\n const solution = store.load(`${name}:solution`);\n return ({ name, score, extra: solution.view, solution });\n });\n\n print(IRC.require('module.leaderboard')({\n title: `${type} Leaderboard`,\n scores,\n reverse: true,\n fmtNum: (score, { solution: { startTime, endTime } }) => renderDiff(startTime, endTime),\n }));\n}\n\nfunction solution(query) {\n const name = query.trim();\n const solution = store.load(`${name}:solution`)\n if (!solution) throw `no solution for ${name}`\n const { \n moves,\n scrambleTime,\n startTime,\n endTime,\n scramble,\n view,\n type,\n } = solution;\n\n const alg = str => str.replace(/'/g, '-').replace(/\\s+/g, '_');\n\n const output = `\nevent: ${type}\nsolve time: ${renderDiff(startTime, endTime)}\ninspection time: ${scrambleTime && renderDiff(scrambleTime, startTime)}\nscramble: ${scramble}\nview: ${view}\n\n${moves.map(([diff, moveList]) => `${renderDiff(startTime, diff)} ${moveList}`).join`\\n`}\n\nhttps://alg.cubing.net/?setup=${alg(scramble)}&alg=${moves.map(([_, m]) => alg(m)).join('%0A')}\n\n `.trim();\n\n print(IRC.require('module.paste')(output));\n // print(IRC.require('module.paste')(JSON.stringify(solution, 0, 4)));\n}\n\n// ~cube.solution joey (pastebin)\n// alg.cubing.net\n// convert highscores to SQL -> direct copy at first\n\n\nif (IRC.command.path === 'cube') {\n doMoves(input);\n render();\n} else {\n module.exports = { scramble, render, apply, getMoves, doMoves, mini, view, scores, solution };\n}" + "command": "// TODO: axis / offset can be derived from color\n// TODO: convert highscores to SQL -> direct copy at first\n\nconst centers = [\n // U B R F L D\n { color: 0, axis: 'y', offset: -1 },\n { color: 1, axis: 'z', offset: -1 },\n { color: 2, axis: 'x', offset: 1 },\n { color: 3, axis: 'z', offset: 1 },\n { color: 4, axis: 'x', offset: -1 },\n { color: 5, axis: 'y', offset: 1 },\n];\n\nconst edges = [\n // UB UR UF UL\n [ { color: 1, axis: 'z', offset: -1 }, { color: 0, axis: 'y', offset: -1 } ],\n [ { color: 2, axis: 'x', offset: 1 }, { color: 0, axis: 'y', offset: -1 } ],\n [ { color: 3, axis: 'z', offset: 1 }, { color: 0, axis: 'y', offset: -1 } ],\n [ { color: 4, axis: 'x', offset: -1 }, { color: 0, axis: 'y', offset: -1 } ],\n // BR FR FL BL\n [ { color: 2, axis: 'x', offset: 1 }, { color: 1, axis: 'z', offset: -1 } ],\n [ { color: 2, axis: 'x', offset: 1 }, { color: 3, axis: 'z', offset: 1 } ],\n [ { color: 4, axis: 'x', offset: -1 }, { color: 3, axis: 'z', offset: 1 } ],\n [ { color: 4, axis: 'x', offset: -1 }, { color: 1, axis: 'z', offset: -1 } ],\n // DB DR DF DL\n [ { color: 1, axis: 'z', offset: -1 }, { color: 5, axis: 'y', offset: 1 } ],\n [ { color: 2, axis: 'x', offset: 1 }, { color: 5, axis: 'y', offset: 1 } ],\n [ { color: 3, axis: 'z', offset: 1 }, { color: 5, axis: 'y', offset: 1 } ],\n [ { color: 4, axis: 'x', offset: -1 }, { color: 5, axis: 'y', offset: 1 } ],\n];\n\nconst corners = [\n // UBR URF UFL ULB\n [\n { color: 2, axis: 'x', offset: 1 },\n { color: 0, axis: 'y', offset: -1 },\n { color: 1, axis: 'z', offset: -1 },\n ],\n [\n { color: 2, axis: 'x', offset: 1 },\n { color: 0, axis: 'y', offset: -1 },\n { color: 3, axis: 'z', offset: 1 },\n ],\n [\n { color: 4, axis: 'x', offset: -1 },\n { color: 0, axis: 'y', offset: -1 },\n { color: 3, axis: 'z', offset: 1 },\n ],\n [\n { color: 4, axis: 'x', offset: -1 },\n { color: 0, axis: 'y', offset: -1 },\n { color: 1, axis: 'z', offset: -1 },\n ],\n // DRB DFR DLF DBL\n [\n { color: 2, axis: 'x', offset: 1 },\n { color: 5, axis: 'y', offset: 1 },\n { color: 1, axis: 'z', offset: -1 },\n ],\n [\n { color: 2, axis: 'x', offset: 1 },\n { color: 5, axis: 'y', offset: 1 },\n { color: 3, axis: 'z', offset: 1 },\n ],\n [\n { color: 4, axis: 'x', offset: -1 },\n { color: 5, axis: 'y', offset: 1 },\n { color: 3, axis: 'z', offset: 1 },\n ],\n [\n { color: 4, axis: 'x', offset: -1 },\n { color: 5, axis: 'y', offset: 1 },\n { color: 1, axis: 'z', offset: -1 },\n ],\n];\n\nconst cube = {\n edges,\n corners,\n centers,\n};\n\n// U B R F L D\nconst moveList = {\n R: {\n edges: [5, 9, 4, 1],\n corners: [5, 4, 0, 1],\n centre: 2,\n axis: 'x',\n },\n U: {\n edges: [3, 2, 1, 0],\n corners: [3, 2, 1, 0],\n centre: 0,\n axis: 'y',\n },\n F: {\n edges: [6, 10, 5, 2],\n corners: [1, 2, 6, 5],\n centre: 3,\n axis: 'z',\n },\n L: {\n edges: [3, 7, 11, 6],\n corners: [2, 3, 7, 6],\n centre: 4,\n axis: 'x',\n axisFlip: true,\n },\n B: {\n edges: [4, 8, 7, 0],\n corners: [4, 7, 3, 0],\n centre: 1,\n axis: 'z',\n axisFlip: true,\n },\n D: {\n edges: [8, 9, 10, 11],\n corners: [4, 5, 6, 7],\n centre: 5,\n axis: 'y',\n axisFlip: true,\n },\n M: {\n centers: [0, 1, 5, 3],\n edges: [2, 0, 8, 10],\n axis: 'x',\n axisFlip: true,\n },\n E: {\n centers: [3, 4, 1, 2],\n edges: [4, 5, 6, 7],\n axis: 'y',\n axisFlip: true,\n },\n S: {\n centers: [4, 5, 2, 0],\n edges: [3, 11, 9, 1],\n axis: 'z',\n },\n r: { moves: [toObject(`R`), toObject(`M'`)] },\n l: { moves: [toObject(`L`), toObject(`M`)] },\n f: { moves: [toObject(`F`), toObject(`S`)] },\n b: { moves: [toObject(`B`), toObject(`S'`)] },\n u: { moves: [toObject(`U`), toObject(`E'`)] },\n d: { moves: [toObject(`D`), toObject(`E`)] },\n x: { moves: [toObject(`R`), toObject(`M'`), toObject(`L'`)] },\n y: { moves: [toObject(`U`), toObject(`E'`), toObject(`D'`)] },\n z: { moves: [toObject(`F`), toObject(`S`), toObject(`B'`)] },\n};\n\nfunction getMove(moveRaw) {\n const { move, order } = toObject(moveRaw);\n if (!moveList[move]) throw new Error(`invalid move ${move}`);\n const {\n corners,\n edges,\n centers,\n centre,\n axis,\n axisFlip,\n moves,\n } = moveList[move];\n\n // calculate transforms\n const transforms = [];\n corners && transforms.push(...corners.map(index => cube.corners[index]));\n edges && transforms.push(...edges.map(index => cube.edges[index]));\n centers && transforms.push(...centers.map(index => cube.centers[index]));\n typeof centre !== 'undefined' && transforms.push(cube.centers[centre]);\n const axisOrder = axisFlip ? -1 : 1;\n const extraMoves = moves && (\n moves.map(move => getMove(applyOrder(clone(move), order), cube))\n );\n\n // swap stickers / clean up move\n function apply() {\n extraMoves && extraMoves.forEach(move => move.apply());\n if (edges) {\n doCycle(cube.edges, order, edges, centers ? 'z' : axis);\n }\n if (centers) {\n doCycle(cube.centers, order, centers);\n }\n if (corners) {\n doCycle(cube.corners, order, corners, axis);\n }\n }\n\n return {\n apply,\n transforms,\n axis,\n source: { move, order },\n };\n}\n\nfunction getMoves(moves) {\n return splitMoves(moves).map(move => getMove(move, cube));\n}\n\nfunction splitMoves(str) {\n if (typeof str !== 'string') return str;\n return str.split(/(\\ww?\\d?'?)/).filter(d => d.trim());\n}\n\nfunction toObject(move) {\n if (typeof move !== 'string') return move;\n if (move[1] === 'w') move = `${move[0].toLowerCase()}${move.slice(2) || ''}`;\n return {\n move: move[0],\n order: {\n '\\'': -1,\n '2\\'': -2,\n '2': 2,\n }[move.slice(1)] || 1,\n };\n}\n\nfunction clone(move) {\n return Object.assign({}, move);\n}\n\nfunction applyOrder(move, order) {\n if (order === 1) return move;\n if (order === -1) {\n move.order = move.order === 2 ? 2 : -move.order;\n }\n if (order === 2) {\n move.order = move.order === 2 ? 0 : 2;\n }\n return move;\n}\n\n\nconst cornerSwaps = {\n x: [1, 2],\n y: [0, 2],\n z: [0, 1],\n};\n\nfunction doCycle(arr, order, cycle, axis) {\n if (order === 0) return;\n if (order === -1 || order === 3) {\n cycle = [...cycle].reverse();\n }\n if (order === 2 || order === -2) {\n doCycle(arr, 1, cycle, axis);\n }\n\n // cycles\n for (let i = 0; i < cycle.length - 1; i++) {\n swapPiece(arr, cycle[i], cycle[i + 1]);\n }\n\n // corner 'twists'\n if (arr[0].length === 3) {\n for (let i = 0; i < cycle.length; i++) {\n swapSticker(arr[cycle[i]], ...cornerSwaps[axis]);\n }\n }\n // edge flips\n else if (axis === 'z') {\n for (let i = 0; i < cycle.length; i++) {\n swapSticker(arr[cycle[i]], 0, 1);\n }\n }\n}\n\nfunction swapPiece(arr, first, second) {\n if (Array.isArray(arr[first])) {\n const tmpColors = arr[first].map(d => d.color);\n arr[first].forEach((sticker, i) => { sticker.color = arr[second][i].color; });\n arr[second].forEach((sticker, i) => { sticker.color = tmpColors[i]; });\n } else {\n swapSticker(arr, first, second)\n }\n}\n\nfunction swapSticker(arr, first, second) {\n const tmp = arr[first].color;\n arr[first].color = arr[second].color;\n arr[second].color = tmp;\n}\n\nfunction isSolved() {\n const { centers, edges, corners } = cube;\n const lookup = {};\n centers.forEach(({ color, axis, offset }) => {\n lookup[`${axis}|${offset}`] = color;\n });\n const pieces = edges.concat(corners);\n for (let i = 0; i < pieces.length; i++) {\n for (let j = 0; j < pieces[i].length; j++) {\n const { axis, offset, color } = pieces[i][j];\n if (color !== lookup[`${axis}|${offset}`]) {\n return false;\n }\n }\n }\n return true;\n}\n\n\n// IRC stuff\n\nconst { from } = IRC.message;\n\nfunction saveCube() {\n store.set(from, JSON.stringify(cube));\n}\n\nfunction loadCube() {\n const next = store.get(from);\n if (next) {\n Object.assign(cube, JSON.parse(next));\n }\n}\n\nfunction ksim(str) {\n const keys = [\n ['i', 'R'], ['k', 'R\\''], ['8', 'R2'], ['u', 'r'], ['m', 'r\\''], ['j', 'U'],\n ['f', 'U\\''], ['s', 'D'], ['l', 'D\\''], ['n', 'F'], ['v', 'F\\''], ['o', 'B\\''],\n ['w', 'B'], ['g', 'M\\''], ['H', 'E2'], ['G', 'E2'], ['h', 'M'], ['d', 'L'], \n ['e', 'L\\''], ['3', 'L2'], ['c', 'l'], ['r', 'l\\''], [';', 'y'], ['a', 'y\\''], \n ['y', 'x'], ['t', 'x\\''], ['p', 'z'], ['q', 'z\\''],\n ];\n const lookup = Object.fromEntries(keys);\n return str.replace(new RegExp(keys.map(d=>d[0]).join`|`,'g'), d => lookup[d]);\n}\n\nfunction applyKeymap(moves) {\n if (IRC.command.params?.[0]?.trim() === 'ksim') {\n return ksim(moves);\n }\n return moves;\n}\n\nfunction doMoves(moves) {\n getMoves(applyKeymap(moves)).forEach(move => move.apply());\n}\n\n// render\n\nconst colors = 'wbrgoy';\n\nfunction renderQCube(message = '') {\n function sticker(obj) {\n return `{${colors[obj.color]}}██{/}`;\n }\n\n print([\n [sticker(cube.corners[3][0]),sticker(cube.corners[3][1]),sticker(cube.edges[0][1]),sticker(cube.corners[0][1]),sticker(cube.corners[0][0])].join`` + ` ${message}`,\n [sticker(cube.edges[3][0]),sticker(cube.edges[3][1]),sticker(cube.centers[0]),sticker(cube.edges[1][1]),sticker(cube.edges[1][0])].join``,\n [sticker(cube.corners[2][0]),sticker(cube.corners[2][1]),sticker(cube.edges[2][1]),sticker(cube.corners[1][1]),sticker(cube.corners[1][0])].join``,\n [sticker(cube.corners[2][0]),sticker(cube.corners[2][2]),sticker(cube.edges[2][0]),sticker(cube.corners[1][2]),sticker(cube.corners[1][0])].join``,\n [sticker(cube.edges[6][0]),sticker(cube.edges[6][1]),sticker(cube.centers[3]),sticker(cube.edges[5][1]),sticker(cube.edges[5][0])].join``,\n [sticker(cube.corners[6][0]),sticker(cube.corners[6][2]),sticker(cube.edges[0xA][0]),sticker(cube.corners[5][2]),sticker(cube.corners[5][0])].join``,\n ].join`\\n`)\n}\n\nfunction renderMini(message = '') {\n function sticker(obj) {\n return colors[obj.color]; \n }\n function crunch([l1, l2]) {\n return l1.map((d, i) => `{${d},${l2[i]}}▀{/}`).join``;\n }\n print([\n crunch([[sticker(cube.corners[3][0]),sticker(cube.corners[3][1]),sticker(cube.edges[0][1]),sticker(cube.corners[0][1]),sticker(cube.corners[0][0])],\n [sticker(cube.edges[3][0]),sticker(cube.edges[3][1]),sticker(cube.centers[0]),sticker(cube.edges[1][1]),sticker(cube.edges[1][0])]]) + ` ${message}`,\n crunch([[sticker(cube.corners[2][0]),sticker(cube.corners[2][1]),sticker(cube.edges[2][1]),sticker(cube.corners[1][1]),sticker(cube.corners[1][0])],\n [sticker(cube.corners[2][0]),sticker(cube.corners[2][2]),sticker(cube.edges[2][0]),sticker(cube.corners[1][2]),sticker(cube.corners[1][0])]]),\n crunch([[sticker(cube.edges[6][0]),sticker(cube.edges[6][1]),sticker(cube.centers[3]),sticker(cube.edges[5][1]),sticker(cube.edges[5][0])],\n [sticker(cube.corners[6][0]),sticker(cube.corners[6][2]),sticker(cube.edges[0xA][0]),sticker(cube.corners[5][2]),sticker(cube.corners[5][0])]]),\n ].join`\\n`)\n}\n\nfunction renderT(message = '') {\n function sticker(obj) { return `{${colors[obj.color]}}██{/}`; }\n function crnr(x, y) { return sticker(cube.corners[x][y]); }\n function edge(x, y) { return sticker(cube.edges[x][y]); }\n function cntr(x) { return sticker(cube.centers[x]); }\n const spaces = \" \";\n print([\n [spaces,crnr(3,1),edge(0,1),crnr(0,1)].join`` + ` ${message}`,\n [spaces,edge(3,1),cntr(0), edge(1,1)].join``,\n [spaces,crnr(2,1),edge(2,1),crnr(1,1)].join``,\n [crnr(3,0),edge(3,0),crnr(2,0),crnr(2,2),edge(2,0),crnr(1,2),crnr(1,0),edge(1,0),crnr(0,0)].join``,\n [edge(7,0),cntr(4),edge(6,0),edge(6,1),cntr(3), edge(5,1),edge(5,0),cntr(2),edge(4,0)].join``,\n [crnr(7,0),edge(11,0),crnr(6,0),crnr(6,2),edge(10,0),crnr(5,2),crnr(5,0),edge(9,0),crnr(4,0)].join``,\n ].join`\\n`)\n}\n\n\nfunction mini() { // legacy command?\n doMoves(input);\n renderMini();\n}\n\nfunction view(view) {\n if (!view || !['qcube','mini','T'].includes(view.trim())) {\n throw `usage: ${IRC.colors.cmd('cube.view', 'qcube|mini|T')}`;\n }\n store.set(`${from}:view`, view);\n print(`View for ${from} set to ${view}`);\n}\n\nfunction getView() { return store.get(`${from}:view`) || 'qcube'; }\n\nfunction render(message) {\n const view = getView();\n if (view === 'mini') return renderMini(message);\n else if (view === 'T') return renderT(message);\n return renderQCube(message);\n}\n\n// solving / scramble / timer\n\nconst scrambler = IRC.require('scramble');\n\nfunction scramble(type) {\n type = type.toUpperCase().trim();\n !['LL', 'LSE', 'TEST'].includes(type) && (type = '3x3');\n\n const scramble = {\n TEST: `RU`,\n LL: scrambler.getLLScramble(),\n LSE: `xy'` + scrambler.getLSEScramble() + ['', ' M2'][0|Math.random()*2],\n }[type] || (() => scrambler.getRandomScramble())();\n\n doMoves(scramble);\n\n store.save(`${from}:solve`, {\n moves: [],\n scrambleTime: +(new Date),\n startTime: undefined,\n scramble,\n view: getView(),\n type,\n });\n\n saveCube();\n render(`${type} scramble`);\n}\n\nfunction apply(inputMoves) {\n loadCube();\n doMoves(inputMoves);\n saveCube();\n\n const state = store.load(`${from}:solve`, false);\n let message;\n if (state) {\n let { moves, startTime, ...other } = state;\n\n moves.push([+(new Date), applyKeymap(inputMoves), inputMoves]);\n\n if (!startTime) {\n if (getMoves(inputMoves).some(move => !'xyz'.includes(move.source.move))) {\n // if there's a non inspection move\n startTime = +(new Date);\n message = 'timer started!';\n }\n } else {\n message = renderDiff(startTime, +new Date)\n }\n\n store.save(`${from}:solve`, {\n moves,\n startTime,\n ...other\n });\n\n\n if (isSolved()) return solved();\n }\n\n render(message);\n}\n\nfunction renderDiff(startTime, endTime) {\n const { intervalToDuration } = require('date-fns@2.28.0');\n const duration = intervalToDuration({ start: new Date(startTime), end: new Date(endTime) });\n return `${duration.minutes}:${String(duration.seconds).padStart(2, '0')}`;\n}\n\nfunction solved() {\n const { moves, startTime, scrambleTime, scramble, view, type } = store.load(`${from}:solve`);\n const endTime = +(new Date);\n const score = endTime - startTime;\n render(`solved in ${renderDiff(startTime, endTime)}!`);\n\n const scores = store.load(`scores:${type}`, {});\n const oldScore = scores[from] || Infinity;\n\n if (score < oldScore) {\n scores[from] = score;\n store.save(`scores:${type}`, scores);\n const key = type === '3x3' ? `${from}:solution` : `${from}:solution:${type}`;\n store.save(key, {\n scrambleTime, startTime, endTime, score, scramble, moves, view, type\n });\n print(`{g}new pb!{/}`);\n print(`${IRC.colors.nick(from, false)} got a new ${type} pb of {dc}${renderDiff(startTime, endTime)}{/}!`, { target: '#rubik' })\n }\n\n store.save(`${from}:solve`, false);\n}\n\nfunction scores(query) {\n const type = query.trim() || '3x3';\n const scores = Object.entries(store.load(`scores:${type}`, {}))\n .map(([name, score]) => {\n const solution = store.load(`${name}:solution`);\n return ({ name, score, extra: solution.view, solution });\n });\n\n print(IRC.require('module.leaderboard')({\n title: `${type} Leaderboard`,\n scores,\n reverse: true,\n limit: 10,\n fmtNum: (score, { solution: { startTime, endTime } }) => renderDiff(startTime, endTime),\n }));\n}\n\nfunction solution(query) {\n const [name, ...etc] = query.trim().split(' ');\n const params = etc.join(' ');\n const solution = store.load(`${name}:solution`)\n if (!solution) throw `no solution for ${name}`\n const { \n moves,\n scrambleTime,\n startTime,\n endTime,\n scramble,\n view,\n type,\n } = solution;\n\n const alg = str => str.replace(/'/g, '-').replace(/\\s+/g, '_');\n\n const link = `https://alg.cubing.net/?setup=${alg(scramble)}&alg=${moves.map(([diff, m]) => alg(m) + '____//_' + renderDiff(startTime, diff)).join('%0A')}`;\n\n if (params.includes('--link')) return print(IRC.colors.link(link));\n\n const output = `\nevent: ${type}\nsolve time: ${renderDiff(startTime, endTime)}\ninspection time: ${scrambleTime && renderDiff(scrambleTime, startTime)}\nscramble: ${scramble}\nview: ${view}\n\n${moves.map(([diff, moveList]) => `${renderDiff(startTime, diff)} ${moveList}`).join`\\n`}\n\n${link}\n\n `.trim();\n\n print(IRC.require('module.paste')(output));\n // print(IRC.require('module.paste')(JSON.stringify(solution, 0, 4)));\n}\n\n// ~cube.apply(ksim) ijkf\n\nif (IRC.command.path === 'cube') {\n doMoves(input);\n render();\n} else {\n module.exports = { scramble, render, apply, getMoves, doMoves, mini, view, scores, solution };\n}" } \ No newline at end of file diff --git a/commands/ksim-dfe585bac131.json b/commands/ksim-dfe585bac131.json new file mode 100644 index 0000000..e303ab5 --- /dev/null +++ b/commands/ksim-dfe585bac131.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "ksim", + "command": "const keys = [\n ['i', 'R'], ['k', 'R\\''], ['8', 'R2'], ['u', 'r'], ['m', 'r\\''], ['j', 'U'], ['f', 'U\\''], ['s', 'D'], ['l', 'D\\''], ['n', 'F'], ['v', 'F\\''], ['o', 'B\\''], ['w', 'B'], ['g', 'M\\''], ['H', 'E2'], ['G', 'E2'], ['h', 'M'], ['d', 'L'], ['e', 'L\\''], ['3', 'L2'], ['c', 'l'], ['r', 'l\\''], [';', 'y'], ['a', 'y\\''], ['y', 'x'], ['t', 'x\\''], ['p', 'z'], ['q', 'z\\'']\n];\nconst lookup = Object.fromEntries(keys);\nprint(input.replace(new RegExp(keys.map(d=>d[0]).join`|`,'g'), d => lookup[d]));" +} \ No newline at end of file diff --git a/commands/nick-4cb960ba64fe.json b/commands/nick-4cb960ba64fe.json index 9952531..54323c4 100644 --- a/commands/nick-4cb960ba64fe.json +++ b/commands/nick-4cb960ba64fe.json @@ -1,6 +1,6 @@ { "name": "nick", - "command": "if (IRC.command.params[0] === 'auth' || !IRC.setNick(input)) {\n const str = input.replace(/[^a-zA-Z0-9]+/g, '');\n const sudo = IRC.sudo();\n sudo.node.client.send.call('NICK', str);\n // reauth in case we got deauthed for whatever reason\n if (str.toLowerCase() == sudo.node.config.nickname.get().toLowerCase()) {\n sudo.node.client.say.call('nickserv', `identify ${sudo.node.password.get()}`);\n }\n}", + "command": "if (IRC.command.params[0] === 'auth' || !IRC.setNick(input)) {\n const str = input.replace(/[^a-zA-Z0-9]+/g, '');\n const sudo = IRC.sudo();\n sudo.node.client.send.call('NICK', str);\n // reauth in case we got deauthed for whatever reason\n if (str.toLowerCase() == sudo.node.config.nickname.get().toLowerCase()) {\n sudo.node.client.say.call('nickserv', `identify ${sudo.node.config.password.get()}`);\n }\n}", "locked": true, "starred": true } \ No newline at end of file diff --git a/commands/whois-1954518b8de0.json b/commands/whois-1954518b8de0.json index d484749..2581d81 100644 --- a/commands/whois-1954518b8de0.json +++ b/commands/whois-1954518b8de0.json @@ -3,5 +3,5 @@ "locked": true, "starred": false, "name": "whois", - "command": "log(IRC.whois(input.trim()));" + "command": "log(IRC.whois(input.trim()||IRC.message.from));" } \ No newline at end of file From 22ec220f0fd94bf3535433cd7324a7230c324692 Mon Sep 17 00:00:00 2001 From: kirjavascript Date: Thu, 31 Mar 2022 13:02:41 +0200 Subject: [PATCH 33/94] cube views, scrambles --- README.md | 3 ++- commands/cube-4266a5d58b29.json | 2 +- commands/cubeapplyKS-44a21b12dc0e.json | 7 +++++++ commands/cubetest-a388106f4500.json | 2 +- commands/cubetest2-928efbc85521.json | 7 +++++++ commands/eval-422a34ceba3b.json | 2 +- commands/eventfetchURL-798176d44de4.json | 2 +- commands/logglobal-35fa4f742503.json | 6 ------ commands/plap-ce1785bfec5f.json | 7 +++++++ 9 files changed, 27 insertions(+), 11 deletions(-) create mode 100644 commands/cubeapplyKS-44a21b12dc0e.json create mode 100644 commands/cubetest2-928efbc85521.json delete mode 100644 commands/logglobal-35fa4f742503.json create mode 100644 commands/plap-ce1785bfec5f.json diff --git a/README.md b/README.md index d17cfc8..824df76 100644 --- a/README.md +++ b/README.md @@ -17,9 +17,10 @@ nibblrjr is an IRC bot framework for creating custom behaviour dynamically * hot reloading of environment * 1000+ example commands; * memo system / reminders - * url scraping + * url scraping / title parsing * various API integrations * texas hold em, roulette, blackjack, roll7, slots + * rubiks cube simulator * stuff that prints cute things [//]: # (__repo__) diff --git a/commands/cube-4266a5d58b29.json b/commands/cube-4266a5d58b29.json index 8d45add..0e89519 100644 --- a/commands/cube-4266a5d58b29.json +++ b/commands/cube-4266a5d58b29.json @@ -3,5 +3,5 @@ "locked": true, "starred": false, "name": "cube", - "command": "// TODO: axis / offset can be derived from color\n// TODO: convert highscores to SQL -> direct copy at first\n\nconst centers = [\n // U B R F L D\n { color: 0, axis: 'y', offset: -1 },\n { color: 1, axis: 'z', offset: -1 },\n { color: 2, axis: 'x', offset: 1 },\n { color: 3, axis: 'z', offset: 1 },\n { color: 4, axis: 'x', offset: -1 },\n { color: 5, axis: 'y', offset: 1 },\n];\n\nconst edges = [\n // UB UR UF UL\n [ { color: 1, axis: 'z', offset: -1 }, { color: 0, axis: 'y', offset: -1 } ],\n [ { color: 2, axis: 'x', offset: 1 }, { color: 0, axis: 'y', offset: -1 } ],\n [ { color: 3, axis: 'z', offset: 1 }, { color: 0, axis: 'y', offset: -1 } ],\n [ { color: 4, axis: 'x', offset: -1 }, { color: 0, axis: 'y', offset: -1 } ],\n // BR FR FL BL\n [ { color: 2, axis: 'x', offset: 1 }, { color: 1, axis: 'z', offset: -1 } ],\n [ { color: 2, axis: 'x', offset: 1 }, { color: 3, axis: 'z', offset: 1 } ],\n [ { color: 4, axis: 'x', offset: -1 }, { color: 3, axis: 'z', offset: 1 } ],\n [ { color: 4, axis: 'x', offset: -1 }, { color: 1, axis: 'z', offset: -1 } ],\n // DB DR DF DL\n [ { color: 1, axis: 'z', offset: -1 }, { color: 5, axis: 'y', offset: 1 } ],\n [ { color: 2, axis: 'x', offset: 1 }, { color: 5, axis: 'y', offset: 1 } ],\n [ { color: 3, axis: 'z', offset: 1 }, { color: 5, axis: 'y', offset: 1 } ],\n [ { color: 4, axis: 'x', offset: -1 }, { color: 5, axis: 'y', offset: 1 } ],\n];\n\nconst corners = [\n // UBR URF UFL ULB\n [\n { color: 2, axis: 'x', offset: 1 },\n { color: 0, axis: 'y', offset: -1 },\n { color: 1, axis: 'z', offset: -1 },\n ],\n [\n { color: 2, axis: 'x', offset: 1 },\n { color: 0, axis: 'y', offset: -1 },\n { color: 3, axis: 'z', offset: 1 },\n ],\n [\n { color: 4, axis: 'x', offset: -1 },\n { color: 0, axis: 'y', offset: -1 },\n { color: 3, axis: 'z', offset: 1 },\n ],\n [\n { color: 4, axis: 'x', offset: -1 },\n { color: 0, axis: 'y', offset: -1 },\n { color: 1, axis: 'z', offset: -1 },\n ],\n // DRB DFR DLF DBL\n [\n { color: 2, axis: 'x', offset: 1 },\n { color: 5, axis: 'y', offset: 1 },\n { color: 1, axis: 'z', offset: -1 },\n ],\n [\n { color: 2, axis: 'x', offset: 1 },\n { color: 5, axis: 'y', offset: 1 },\n { color: 3, axis: 'z', offset: 1 },\n ],\n [\n { color: 4, axis: 'x', offset: -1 },\n { color: 5, axis: 'y', offset: 1 },\n { color: 3, axis: 'z', offset: 1 },\n ],\n [\n { color: 4, axis: 'x', offset: -1 },\n { color: 5, axis: 'y', offset: 1 },\n { color: 1, axis: 'z', offset: -1 },\n ],\n];\n\nconst cube = {\n edges,\n corners,\n centers,\n};\n\n// U B R F L D\nconst moveList = {\n R: {\n edges: [5, 9, 4, 1],\n corners: [5, 4, 0, 1],\n centre: 2,\n axis: 'x',\n },\n U: {\n edges: [3, 2, 1, 0],\n corners: [3, 2, 1, 0],\n centre: 0,\n axis: 'y',\n },\n F: {\n edges: [6, 10, 5, 2],\n corners: [1, 2, 6, 5],\n centre: 3,\n axis: 'z',\n },\n L: {\n edges: [3, 7, 11, 6],\n corners: [2, 3, 7, 6],\n centre: 4,\n axis: 'x',\n axisFlip: true,\n },\n B: {\n edges: [4, 8, 7, 0],\n corners: [4, 7, 3, 0],\n centre: 1,\n axis: 'z',\n axisFlip: true,\n },\n D: {\n edges: [8, 9, 10, 11],\n corners: [4, 5, 6, 7],\n centre: 5,\n axis: 'y',\n axisFlip: true,\n },\n M: {\n centers: [0, 1, 5, 3],\n edges: [2, 0, 8, 10],\n axis: 'x',\n axisFlip: true,\n },\n E: {\n centers: [3, 4, 1, 2],\n edges: [4, 5, 6, 7],\n axis: 'y',\n axisFlip: true,\n },\n S: {\n centers: [4, 5, 2, 0],\n edges: [3, 11, 9, 1],\n axis: 'z',\n },\n r: { moves: [toObject(`R`), toObject(`M'`)] },\n l: { moves: [toObject(`L`), toObject(`M`)] },\n f: { moves: [toObject(`F`), toObject(`S`)] },\n b: { moves: [toObject(`B`), toObject(`S'`)] },\n u: { moves: [toObject(`U`), toObject(`E'`)] },\n d: { moves: [toObject(`D`), toObject(`E`)] },\n x: { moves: [toObject(`R`), toObject(`M'`), toObject(`L'`)] },\n y: { moves: [toObject(`U`), toObject(`E'`), toObject(`D'`)] },\n z: { moves: [toObject(`F`), toObject(`S`), toObject(`B'`)] },\n};\n\nfunction getMove(moveRaw) {\n const { move, order } = toObject(moveRaw);\n if (!moveList[move]) throw new Error(`invalid move ${move}`);\n const {\n corners,\n edges,\n centers,\n centre,\n axis,\n axisFlip,\n moves,\n } = moveList[move];\n\n // calculate transforms\n const transforms = [];\n corners && transforms.push(...corners.map(index => cube.corners[index]));\n edges && transforms.push(...edges.map(index => cube.edges[index]));\n centers && transforms.push(...centers.map(index => cube.centers[index]));\n typeof centre !== 'undefined' && transforms.push(cube.centers[centre]);\n const axisOrder = axisFlip ? -1 : 1;\n const extraMoves = moves && (\n moves.map(move => getMove(applyOrder(clone(move), order), cube))\n );\n\n // swap stickers / clean up move\n function apply() {\n extraMoves && extraMoves.forEach(move => move.apply());\n if (edges) {\n doCycle(cube.edges, order, edges, centers ? 'z' : axis);\n }\n if (centers) {\n doCycle(cube.centers, order, centers);\n }\n if (corners) {\n doCycle(cube.corners, order, corners, axis);\n }\n }\n\n return {\n apply,\n transforms,\n axis,\n source: { move, order },\n };\n}\n\nfunction getMoves(moves) {\n return splitMoves(moves).map(move => getMove(move, cube));\n}\n\nfunction splitMoves(str) {\n if (typeof str !== 'string') return str;\n return str.split(/(\\ww?\\d?'?)/).filter(d => d.trim());\n}\n\nfunction toObject(move) {\n if (typeof move !== 'string') return move;\n if (move[1] === 'w') move = `${move[0].toLowerCase()}${move.slice(2) || ''}`;\n return {\n move: move[0],\n order: {\n '\\'': -1,\n '2\\'': -2,\n '2': 2,\n }[move.slice(1)] || 1,\n };\n}\n\nfunction clone(move) {\n return Object.assign({}, move);\n}\n\nfunction applyOrder(move, order) {\n if (order === 1) return move;\n if (order === -1) {\n move.order = move.order === 2 ? 2 : -move.order;\n }\n if (order === 2) {\n move.order = move.order === 2 ? 0 : 2;\n }\n return move;\n}\n\n\nconst cornerSwaps = {\n x: [1, 2],\n y: [0, 2],\n z: [0, 1],\n};\n\nfunction doCycle(arr, order, cycle, axis) {\n if (order === 0) return;\n if (order === -1 || order === 3) {\n cycle = [...cycle].reverse();\n }\n if (order === 2 || order === -2) {\n doCycle(arr, 1, cycle, axis);\n }\n\n // cycles\n for (let i = 0; i < cycle.length - 1; i++) {\n swapPiece(arr, cycle[i], cycle[i + 1]);\n }\n\n // corner 'twists'\n if (arr[0].length === 3) {\n for (let i = 0; i < cycle.length; i++) {\n swapSticker(arr[cycle[i]], ...cornerSwaps[axis]);\n }\n }\n // edge flips\n else if (axis === 'z') {\n for (let i = 0; i < cycle.length; i++) {\n swapSticker(arr[cycle[i]], 0, 1);\n }\n }\n}\n\nfunction swapPiece(arr, first, second) {\n if (Array.isArray(arr[first])) {\n const tmpColors = arr[first].map(d => d.color);\n arr[first].forEach((sticker, i) => { sticker.color = arr[second][i].color; });\n arr[second].forEach((sticker, i) => { sticker.color = tmpColors[i]; });\n } else {\n swapSticker(arr, first, second)\n }\n}\n\nfunction swapSticker(arr, first, second) {\n const tmp = arr[first].color;\n arr[first].color = arr[second].color;\n arr[second].color = tmp;\n}\n\nfunction isSolved() {\n const { centers, edges, corners } = cube;\n const lookup = {};\n centers.forEach(({ color, axis, offset }) => {\n lookup[`${axis}|${offset}`] = color;\n });\n const pieces = edges.concat(corners);\n for (let i = 0; i < pieces.length; i++) {\n for (let j = 0; j < pieces[i].length; j++) {\n const { axis, offset, color } = pieces[i][j];\n if (color !== lookup[`${axis}|${offset}`]) {\n return false;\n }\n }\n }\n return true;\n}\n\n\n// IRC stuff\n\nconst { from } = IRC.message;\n\nfunction saveCube() {\n store.set(from, JSON.stringify(cube));\n}\n\nfunction loadCube() {\n const next = store.get(from);\n if (next) {\n Object.assign(cube, JSON.parse(next));\n }\n}\n\nfunction ksim(str) {\n const keys = [\n ['i', 'R'], ['k', 'R\\''], ['8', 'R2'], ['u', 'r'], ['m', 'r\\''], ['j', 'U'],\n ['f', 'U\\''], ['s', 'D'], ['l', 'D\\''], ['n', 'F'], ['v', 'F\\''], ['o', 'B\\''],\n ['w', 'B'], ['g', 'M\\''], ['H', 'E2'], ['G', 'E2'], ['h', 'M'], ['d', 'L'], \n ['e', 'L\\''], ['3', 'L2'], ['c', 'l'], ['r', 'l\\''], [';', 'y'], ['a', 'y\\''], \n ['y', 'x'], ['t', 'x\\''], ['p', 'z'], ['q', 'z\\''],\n ];\n const lookup = Object.fromEntries(keys);\n return str.replace(new RegExp(keys.map(d=>d[0]).join`|`,'g'), d => lookup[d]);\n}\n\nfunction applyKeymap(moves) {\n if (IRC.command.params?.[0]?.trim() === 'ksim') {\n return ksim(moves);\n }\n return moves;\n}\n\nfunction doMoves(moves) {\n getMoves(applyKeymap(moves)).forEach(move => move.apply());\n}\n\n// render\n\nconst colors = 'wbrgoy';\n\nfunction renderQCube(message = '') {\n function sticker(obj) {\n return `{${colors[obj.color]}}██{/}`;\n }\n\n print([\n [sticker(cube.corners[3][0]),sticker(cube.corners[3][1]),sticker(cube.edges[0][1]),sticker(cube.corners[0][1]),sticker(cube.corners[0][0])].join`` + ` ${message}`,\n [sticker(cube.edges[3][0]),sticker(cube.edges[3][1]),sticker(cube.centers[0]),sticker(cube.edges[1][1]),sticker(cube.edges[1][0])].join``,\n [sticker(cube.corners[2][0]),sticker(cube.corners[2][1]),sticker(cube.edges[2][1]),sticker(cube.corners[1][1]),sticker(cube.corners[1][0])].join``,\n [sticker(cube.corners[2][0]),sticker(cube.corners[2][2]),sticker(cube.edges[2][0]),sticker(cube.corners[1][2]),sticker(cube.corners[1][0])].join``,\n [sticker(cube.edges[6][0]),sticker(cube.edges[6][1]),sticker(cube.centers[3]),sticker(cube.edges[5][1]),sticker(cube.edges[5][0])].join``,\n [sticker(cube.corners[6][0]),sticker(cube.corners[6][2]),sticker(cube.edges[0xA][0]),sticker(cube.corners[5][2]),sticker(cube.corners[5][0])].join``,\n ].join`\\n`)\n}\n\nfunction renderMini(message = '') {\n function sticker(obj) {\n return colors[obj.color]; \n }\n function crunch([l1, l2]) {\n return l1.map((d, i) => `{${d},${l2[i]}}▀{/}`).join``;\n }\n print([\n crunch([[sticker(cube.corners[3][0]),sticker(cube.corners[3][1]),sticker(cube.edges[0][1]),sticker(cube.corners[0][1]),sticker(cube.corners[0][0])],\n [sticker(cube.edges[3][0]),sticker(cube.edges[3][1]),sticker(cube.centers[0]),sticker(cube.edges[1][1]),sticker(cube.edges[1][0])]]) + ` ${message}`,\n crunch([[sticker(cube.corners[2][0]),sticker(cube.corners[2][1]),sticker(cube.edges[2][1]),sticker(cube.corners[1][1]),sticker(cube.corners[1][0])],\n [sticker(cube.corners[2][0]),sticker(cube.corners[2][2]),sticker(cube.edges[2][0]),sticker(cube.corners[1][2]),sticker(cube.corners[1][0])]]),\n crunch([[sticker(cube.edges[6][0]),sticker(cube.edges[6][1]),sticker(cube.centers[3]),sticker(cube.edges[5][1]),sticker(cube.edges[5][0])],\n [sticker(cube.corners[6][0]),sticker(cube.corners[6][2]),sticker(cube.edges[0xA][0]),sticker(cube.corners[5][2]),sticker(cube.corners[5][0])]]),\n ].join`\\n`)\n}\n\nfunction renderT(message = '') {\n function sticker(obj) { return `{${colors[obj.color]}}██{/}`; }\n function crnr(x, y) { return sticker(cube.corners[x][y]); }\n function edge(x, y) { return sticker(cube.edges[x][y]); }\n function cntr(x) { return sticker(cube.centers[x]); }\n const spaces = \" \";\n print([\n [spaces,crnr(3,1),edge(0,1),crnr(0,1)].join`` + ` ${message}`,\n [spaces,edge(3,1),cntr(0), edge(1,1)].join``,\n [spaces,crnr(2,1),edge(2,1),crnr(1,1)].join``,\n [crnr(3,0),edge(3,0),crnr(2,0),crnr(2,2),edge(2,0),crnr(1,2),crnr(1,0),edge(1,0),crnr(0,0)].join``,\n [edge(7,0),cntr(4),edge(6,0),edge(6,1),cntr(3), edge(5,1),edge(5,0),cntr(2),edge(4,0)].join``,\n [crnr(7,0),edge(11,0),crnr(6,0),crnr(6,2),edge(10,0),crnr(5,2),crnr(5,0),edge(9,0),crnr(4,0)].join``,\n ].join`\\n`)\n}\n\n\nfunction mini() { // legacy command?\n doMoves(input);\n renderMini();\n}\n\nfunction view(view) {\n if (!view || !['qcube','mini','T'].includes(view.trim())) {\n throw `usage: ${IRC.colors.cmd('cube.view', 'qcube|mini|T')}`;\n }\n store.set(`${from}:view`, view);\n print(`View for ${from} set to ${view}`);\n}\n\nfunction getView() { return store.get(`${from}:view`) || 'qcube'; }\n\nfunction render(message) {\n const view = getView();\n if (view === 'mini') return renderMini(message);\n else if (view === 'T') return renderT(message);\n return renderQCube(message);\n}\n\n// solving / scramble / timer\n\nconst scrambler = IRC.require('scramble');\n\nfunction scramble(type) {\n type = type.toUpperCase().trim();\n !['LL', 'LSE', 'TEST'].includes(type) && (type = '3x3');\n\n const scramble = {\n TEST: `RU`,\n LL: scrambler.getLLScramble(),\n LSE: `xy'` + scrambler.getLSEScramble() + ['', ' M2'][0|Math.random()*2],\n }[type] || (() => scrambler.getRandomScramble())();\n\n doMoves(scramble);\n\n store.save(`${from}:solve`, {\n moves: [],\n scrambleTime: +(new Date),\n startTime: undefined,\n scramble,\n view: getView(),\n type,\n });\n\n saveCube();\n render(`${type} scramble`);\n}\n\nfunction apply(inputMoves) {\n loadCube();\n doMoves(inputMoves);\n saveCube();\n\n const state = store.load(`${from}:solve`, false);\n let message;\n if (state) {\n let { moves, startTime, ...other } = state;\n\n moves.push([+(new Date), applyKeymap(inputMoves), inputMoves]);\n\n if (!startTime) {\n if (getMoves(inputMoves).some(move => !'xyz'.includes(move.source.move))) {\n // if there's a non inspection move\n startTime = +(new Date);\n message = 'timer started!';\n }\n } else {\n message = renderDiff(startTime, +new Date)\n }\n\n store.save(`${from}:solve`, {\n moves,\n startTime,\n ...other\n });\n\n\n if (isSolved()) return solved();\n }\n\n render(message);\n}\n\nfunction renderDiff(startTime, endTime) {\n const { intervalToDuration } = require('date-fns@2.28.0');\n const duration = intervalToDuration({ start: new Date(startTime), end: new Date(endTime) });\n return `${duration.minutes}:${String(duration.seconds).padStart(2, '0')}`;\n}\n\nfunction solved() {\n const { moves, startTime, scrambleTime, scramble, view, type } = store.load(`${from}:solve`);\n const endTime = +(new Date);\n const score = endTime - startTime;\n render(`solved in ${renderDiff(startTime, endTime)}!`);\n\n const scores = store.load(`scores:${type}`, {});\n const oldScore = scores[from] || Infinity;\n\n if (score < oldScore) {\n scores[from] = score;\n store.save(`scores:${type}`, scores);\n const key = type === '3x3' ? `${from}:solution` : `${from}:solution:${type}`;\n store.save(key, {\n scrambleTime, startTime, endTime, score, scramble, moves, view, type\n });\n print(`{g}new pb!{/}`);\n print(`${IRC.colors.nick(from, false)} got a new ${type} pb of {dc}${renderDiff(startTime, endTime)}{/}!`, { target: '#rubik' })\n }\n\n store.save(`${from}:solve`, false);\n}\n\nfunction scores(query) {\n const type = query.trim() || '3x3';\n const scores = Object.entries(store.load(`scores:${type}`, {}))\n .map(([name, score]) => {\n const solution = store.load(`${name}:solution`);\n return ({ name, score, extra: solution.view, solution });\n });\n\n print(IRC.require('module.leaderboard')({\n title: `${type} Leaderboard`,\n scores,\n reverse: true,\n limit: 10,\n fmtNum: (score, { solution: { startTime, endTime } }) => renderDiff(startTime, endTime),\n }));\n}\n\nfunction solution(query) {\n const [name, ...etc] = query.trim().split(' ');\n const params = etc.join(' ');\n const solution = store.load(`${name}:solution`)\n if (!solution) throw `no solution for ${name}`\n const { \n moves,\n scrambleTime,\n startTime,\n endTime,\n scramble,\n view,\n type,\n } = solution;\n\n const alg = str => str.replace(/'/g, '-').replace(/\\s+/g, '_');\n\n const link = `https://alg.cubing.net/?setup=${alg(scramble)}&alg=${moves.map(([diff, m]) => alg(m) + '____//_' + renderDiff(startTime, diff)).join('%0A')}`;\n\n if (params.includes('--link')) return print(IRC.colors.link(link));\n\n const output = `\nevent: ${type}\nsolve time: ${renderDiff(startTime, endTime)}\ninspection time: ${scrambleTime && renderDiff(scrambleTime, startTime)}\nscramble: ${scramble}\nview: ${view}\n\n${moves.map(([diff, moveList]) => `${renderDiff(startTime, diff)} ${moveList}`).join`\\n`}\n\n${link}\n\n `.trim();\n\n print(IRC.require('module.paste')(output));\n // print(IRC.require('module.paste')(JSON.stringify(solution, 0, 4)));\n}\n\n// ~cube.apply(ksim) ijkf\n\nif (IRC.command.path === 'cube') {\n doMoves(input);\n render();\n} else {\n module.exports = { scramble, render, apply, getMoves, doMoves, mini, view, scores, solution };\n}" + "command": "// TODO: axis / offset can be derived from color\n// TODO: convert highscores to SQL -> direct copy at first\n\nconst centers = [\n // U B R F L D\n { color: 0, axis: 'y', offset: -1 },\n { color: 1, axis: 'z', offset: -1 },\n { color: 2, axis: 'x', offset: 1 },\n { color: 3, axis: 'z', offset: 1 },\n { color: 4, axis: 'x', offset: -1 },\n { color: 5, axis: 'y', offset: 1 },\n];\n\nconst edges = [\n // UB UR UF UL\n [ { color: 1, axis: 'z', offset: -1 }, { color: 0, axis: 'y', offset: -1 } ],\n [ { color: 2, axis: 'x', offset: 1 }, { color: 0, axis: 'y', offset: -1 } ],\n [ { color: 3, axis: 'z', offset: 1 }, { color: 0, axis: 'y', offset: -1 } ],\n [ { color: 4, axis: 'x', offset: -1 }, { color: 0, axis: 'y', offset: -1 } ],\n // BR FR FL BL\n [ { color: 2, axis: 'x', offset: 1 }, { color: 1, axis: 'z', offset: -1 } ],\n [ { color: 2, axis: 'x', offset: 1 }, { color: 3, axis: 'z', offset: 1 } ],\n [ { color: 4, axis: 'x', offset: -1 }, { color: 3, axis: 'z', offset: 1 } ],\n [ { color: 4, axis: 'x', offset: -1 }, { color: 1, axis: 'z', offset: -1 } ],\n // DB DR DF DL\n [ { color: 1, axis: 'z', offset: -1 }, { color: 5, axis: 'y', offset: 1 } ],\n [ { color: 2, axis: 'x', offset: 1 }, { color: 5, axis: 'y', offset: 1 } ],\n [ { color: 3, axis: 'z', offset: 1 }, { color: 5, axis: 'y', offset: 1 } ],\n [ { color: 4, axis: 'x', offset: -1 }, { color: 5, axis: 'y', offset: 1 } ],\n];\n\nconst corners = [\n // UBR URF UFL ULB\n [\n { color: 2, axis: 'x', offset: 1 },\n { color: 0, axis: 'y', offset: -1 },\n { color: 1, axis: 'z', offset: -1 },\n ],\n [\n { color: 2, axis: 'x', offset: 1 },\n { color: 0, axis: 'y', offset: -1 },\n { color: 3, axis: 'z', offset: 1 },\n ],\n [\n { color: 4, axis: 'x', offset: -1 },\n { color: 0, axis: 'y', offset: -1 },\n { color: 3, axis: 'z', offset: 1 },\n ],\n [\n { color: 4, axis: 'x', offset: -1 },\n { color: 0, axis: 'y', offset: -1 },\n { color: 1, axis: 'z', offset: -1 },\n ],\n // DRB DFR DLF DBL\n [\n { color: 2, axis: 'x', offset: 1 },\n { color: 5, axis: 'y', offset: 1 },\n { color: 1, axis: 'z', offset: -1 },\n ],\n [\n { color: 2, axis: 'x', offset: 1 },\n { color: 5, axis: 'y', offset: 1 },\n { color: 3, axis: 'z', offset: 1 },\n ],\n [\n { color: 4, axis: 'x', offset: -1 },\n { color: 5, axis: 'y', offset: 1 },\n { color: 3, axis: 'z', offset: 1 },\n ],\n [\n { color: 4, axis: 'x', offset: -1 },\n { color: 5, axis: 'y', offset: 1 },\n { color: 1, axis: 'z', offset: -1 },\n ],\n];\n\nconst cube = {\n edges,\n corners,\n centers,\n};\n\n// U B R F L D\nconst moveList = {\n R: {\n edges: [5, 9, 4, 1],\n corners: [5, 4, 0, 1],\n centre: 2,\n axis: 'x',\n },\n U: {\n edges: [3, 2, 1, 0],\n corners: [3, 2, 1, 0],\n centre: 0,\n axis: 'y',\n },\n F: {\n edges: [6, 10, 5, 2],\n corners: [1, 2, 6, 5],\n centre: 3,\n axis: 'z',\n },\n L: {\n edges: [3, 7, 11, 6],\n corners: [2, 3, 7, 6],\n centre: 4,\n axis: 'x',\n axisFlip: true,\n },\n B: {\n edges: [4, 8, 7, 0],\n corners: [4, 7, 3, 0],\n centre: 1,\n axis: 'z',\n axisFlip: true,\n },\n D: {\n edges: [8, 9, 10, 11],\n corners: [4, 5, 6, 7],\n centre: 5,\n axis: 'y',\n axisFlip: true,\n },\n M: {\n centers: [0, 1, 5, 3],\n edges: [2, 0, 8, 10],\n axis: 'x',\n axisFlip: true,\n },\n E: {\n centers: [3, 4, 1, 2],\n edges: [4, 5, 6, 7],\n axis: 'y',\n axisFlip: true,\n },\n S: {\n centers: [4, 5, 2, 0],\n edges: [3, 11, 9, 1],\n axis: 'z',\n },\n r: { moves: [toObject(`R`), toObject(`M'`)] },\n l: { moves: [toObject(`L`), toObject(`M`)] },\n f: { moves: [toObject(`F`), toObject(`S`)] },\n b: { moves: [toObject(`B`), toObject(`S'`)] },\n u: { moves: [toObject(`U`), toObject(`E'`)] },\n d: { moves: [toObject(`D`), toObject(`E`)] },\n x: { moves: [toObject(`R`), toObject(`M'`), toObject(`L'`)] },\n y: { moves: [toObject(`U`), toObject(`E'`), toObject(`D'`)] },\n z: { moves: [toObject(`F`), toObject(`S`), toObject(`B'`)] },\n};\n\nfunction getMove(moveRaw) {\n const { move, order } = toObject(moveRaw);\n if (!moveList[move]) throw new Error(`invalid move ${move}`);\n const {\n corners,\n edges,\n centers,\n centre,\n axis,\n axisFlip,\n moves,\n } = moveList[move];\n\n // calculate transforms\n const transforms = [];\n corners && transforms.push(...corners.map(index => cube.corners[index]));\n edges && transforms.push(...edges.map(index => cube.edges[index]));\n centers && transforms.push(...centers.map(index => cube.centers[index]));\n typeof centre !== 'undefined' && transforms.push(cube.centers[centre]);\n const axisOrder = axisFlip ? -1 : 1;\n const extraMoves = moves && (\n moves.map(move => getMove(applyOrder(clone(move), order), cube))\n );\n\n // swap stickers / clean up move\n function apply() {\n extraMoves && extraMoves.forEach(move => move.apply());\n if (edges) {\n doCycle(cube.edges, order, edges, centers ? 'z' : axis);\n }\n if (centers) {\n doCycle(cube.centers, order, centers);\n }\n if (corners) {\n doCycle(cube.corners, order, corners, axis);\n }\n }\n\n return {\n apply,\n transforms,\n axis,\n source: { move, order },\n };\n}\n\nfunction getMoves(moves) {\n return splitMoves(moves).map(move => getMove(move, cube));\n}\n\nfunction splitMoves(str) {\n if (typeof str !== 'string') return str;\n return str.split(/(\\ww?\\d?'?)/).filter(d => d.trim());\n}\n\nfunction toObject(move) {\n if (typeof move !== 'string') return move;\n if (move[1] === 'w') move = `${move[0].toLowerCase()}${move.slice(2) || ''}`;\n return {\n move: move[0],\n order: {\n '\\'': -1,\n '2\\'': -2,\n '2': 2,\n }[move.slice(1)] || 1,\n };\n}\n\nfunction clone(move) {\n return Object.assign({}, move);\n}\n\nfunction applyOrder(move, order) {\n if (order === 1) return move;\n if (order === -1) {\n move.order = move.order === 2 ? 2 : -move.order;\n }\n if (order === 2) {\n move.order = move.order === 2 ? 0 : 2;\n }\n return move;\n}\n\n\nconst cornerSwaps = {\n x: [1, 2],\n y: [0, 2],\n z: [0, 1],\n};\n\nfunction doCycle(arr, order, cycle, axis) {\n if (order === 0) return;\n if (order === -1 || order === 3) {\n cycle = [...cycle].reverse();\n }\n if (order === 2 || order === -2) {\n doCycle(arr, 1, cycle, axis);\n }\n\n // cycles\n for (let i = 0; i < cycle.length - 1; i++) {\n swapPiece(arr, cycle[i], cycle[i + 1]);\n }\n\n // corner 'twists'\n if (arr[0].length === 3) {\n for (let i = 0; i < cycle.length; i++) {\n swapSticker(arr[cycle[i]], ...cornerSwaps[axis]);\n }\n }\n // edge flips\n else if (axis === 'z') {\n for (let i = 0; i < cycle.length; i++) {\n swapSticker(arr[cycle[i]], 0, 1);\n }\n }\n}\n\nfunction swapPiece(arr, first, second) {\n if (Array.isArray(arr[first])) {\n const tmpColors = arr[first].map(d => d.color);\n arr[first].forEach((sticker, i) => { sticker.color = arr[second][i].color; });\n arr[second].forEach((sticker, i) => { sticker.color = tmpColors[i]; });\n } else {\n swapSticker(arr, first, second)\n }\n}\n\nfunction swapSticker(arr, first, second) {\n const tmp = arr[first].color;\n arr[first].color = arr[second].color;\n arr[second].color = tmp;\n}\n\nfunction isSolved() {\n const { centers, edges, corners } = cube;\n const lookup = {};\n centers.forEach(({ color, axis, offset }) => {\n lookup[`${axis}|${offset}`] = color;\n });\n const pieces = edges.concat(corners);\n for (let i = 0; i < pieces.length; i++) {\n for (let j = 0; j < pieces[i].length; j++) {\n const { axis, offset, color } = pieces[i][j];\n if (color !== lookup[`${axis}|${offset}`]) {\n return false;\n }\n }\n }\n return true;\n}\n\n\n// IRC stuff\n\nconst { from } = IRC.message;\n\nfunction saveCube() {\n store.set(from, JSON.stringify(cube));\n}\n\nfunction loadCube() {\n const next = store.get(from);\n if (next) {\n Object.assign(cube, JSON.parse(next));\n }\n}\n\nfunction ksim(str) {\n const keys = [\n ['i', 'R'], ['k', 'R\\''], ['8', 'R2'], ['u', 'r'], ['m', 'r\\''], ['j', 'U'],\n ['f', 'U\\''], ['s', 'D'], ['l', 'D\\''], ['n', 'F'], ['v', 'F\\''], ['o', 'B\\''],\n ['w', 'B'], ['g', 'M\\''], ['H', 'E2'], ['G', 'E2'], ['h', 'M'], ['d', 'L'], \n ['e', 'L\\''], ['3', 'L2'], ['c', 'l'], ['r', 'l\\''], [';', 'y'], ['a', 'y\\''], \n ['y', 'x'], ['t', 'x\\''], ['p', 'z'], ['q', 'z\\''],\n ];\n const lookup = Object.fromEntries(keys);\n return str.replace(new RegExp(keys.map(d=>d[0]).join`|`,'g'), d => lookup[d]);\n}\n\t\nfunction heise(str) {\n const keys = [\n ['i', 'R'], ['k', 'R\\''], ['j', 'U'], ['f', 'U\\''], ['d', 'L'], ['e', 'L\\''], ['u', 'r'], ['m', 'r\\''], ['v', 'l'], ['r', 'l\\''], ['h', 'F'], ['g', 'F\\''], ['s', 'D'], ['l', 'D\\''], [';', 'y'], ['a', 'y\\''], ['w', 'B'], ['o', 'B\\''], ['y', 'x'], ['n', 'x\\''], ['p', 'z'], ['q', 'z\\''],\n ];\n const lookup = Object.fromEntries(keys);\n return str.replace(new RegExp(keys.map(d=>d[0]).join`|`,'g'), d => lookup[d]);\n}\n\nfunction applyKeymap(moves) {\n const moveType = IRC.command.params?.[0]?.trim();\n if (moveType === 'ksim') return ksim(moves);\n if (moveType === 'heise') return heise(moves);\n return moves;\n}\n\nfunction doMoves(moves) {\n getMoves(applyKeymap(moves)).forEach(move => move.apply());\n}\n\n// render\n\nconst colors = 'wbrgoy';\n\nfunction sticker(obj) { return `{${colors[obj.color]}}██{/}`; }\nfunction crnr(x, y) { return sticker(cube.corners[x][y]); }\nfunction edge(x, y) { return sticker(cube.edges[x][y]); }\nfunction cntr(x) { return sticker(cube.centers[x]); }\n\nfunction renderQCube(message = '') {\n print([\n [sticker(cube.corners[3][0]),sticker(cube.corners[3][1]),sticker(cube.edges[0][1]),sticker(cube.corners[0][1]),sticker(cube.corners[0][0])].join`` + ` ${message}`,\n [sticker(cube.edges[3][0]),sticker(cube.edges[3][1]),sticker(cube.centers[0]),sticker(cube.edges[1][1]),sticker(cube.edges[1][0])].join``,\n [sticker(cube.corners[2][0]),sticker(cube.corners[2][1]),sticker(cube.edges[2][1]),sticker(cube.corners[1][1]),sticker(cube.corners[1][0])].join``,\n [sticker(cube.corners[2][0]),sticker(cube.corners[2][2]),sticker(cube.edges[2][0]),sticker(cube.corners[1][2]),sticker(cube.corners[1][0])].join``,\n [sticker(cube.edges[6][0]),sticker(cube.edges[6][1]),sticker(cube.centers[3]),sticker(cube.edges[5][1]),sticker(cube.edges[5][0])].join``,\n [sticker(cube.corners[6][0]),sticker(cube.corners[6][2]),sticker(cube.edges[0xA][0]),sticker(cube.corners[5][2]),sticker(cube.corners[5][0])].join``,\n ].join`\\n`)\n}\n\nfunction renderQCubeRoux(message = '') {\n const spaces = ' ';\n print([\n [spaces, sticker(cube.corners[3][0]),sticker(cube.corners[3][1]),sticker(cube.edges[0][1]),sticker(cube.corners[0][1]),sticker(cube.corners[0][0]),' ',edge(8,0)].join`` + ` ${message}`,\n [spaces, sticker(cube.edges[3][0]),sticker(cube.edges[3][1]),sticker(cube.centers[0]),sticker(cube.edges[1][1]),sticker(cube.edges[1][0]),' ',edge(8,1)].join``,\n [spaces, sticker(cube.corners[2][0]),sticker(cube.corners[2][1]),sticker(cube.edges[2][1]),sticker(cube.corners[1][1]),sticker(cube.corners[1][0])].join``,\n [crnr(3,0),edge(3,0),crnr(2,0),crnr(2,2),edge(2,0),crnr(1,2),crnr(1,0),edge(1,0),crnr(0,0)].join``,\n [edge(7,0),cntr(4),edge(6,0),edge(6,1),cntr(3), edge(5,1),edge(5,0),cntr(2),edge(4,0)].join``,\n [crnr(7,0),edge(11,0),crnr(6,0),crnr(6,2),edge(10,0),crnr(5,2),crnr(5,0),edge(9,0),crnr(4,0)].join``,\n ].join`\\n`)\n}\n\nfunction renderT(message = '') {\n const spaces = ' ';\n print([\n [spaces,crnr(3,1),edge(0,1),crnr(0,1)].join`` + ` ${message}`,\n [spaces,edge(3,1),cntr(0), edge(1,1)].join``,\n [spaces,crnr(2,1),edge(2,1),crnr(1,1)].join``,\n [crnr(3,0),edge(3,0),crnr(2,0),crnr(2,2),edge(2,0),crnr(1,2),crnr(1,0),edge(1,0),crnr(0,0)].join``,\n [edge(7,0),cntr(4),edge(6,0),edge(6,1),cntr(3), edge(5,1),edge(5,0),cntr(2),edge(4,0)].join``,\n [crnr(7,0),edge(11,0),crnr(6,0),crnr(6,2),edge(10,0),crnr(5,2),crnr(5,0),edge(9,0),crnr(4,0)].join``,\n ].join`\\n`)\n}\n\nfunction renderMini(message = '') {\n function sticker(obj) { return colors[obj.color]; }\n function crunch([l1, l2]) { return l1.map((d, i) => `{${d},${l2[i]}}▀{/}`).join``; }\n print([\n crunch([[sticker(cube.corners[3][0]),sticker(cube.corners[3][1]),sticker(cube.edges[0][1]),sticker(cube.corners[0][1]),sticker(cube.corners[0][0])],\n [sticker(cube.edges[3][0]),sticker(cube.edges[3][1]),sticker(cube.centers[0]),sticker(cube.edges[1][1]),sticker(cube.edges[1][0])]]) + ` ${message}`,\n crunch([[sticker(cube.corners[2][0]),sticker(cube.corners[2][1]),sticker(cube.edges[2][1]),sticker(cube.corners[1][1]),sticker(cube.corners[1][0])],\n [sticker(cube.corners[2][0]),sticker(cube.corners[2][2]),sticker(cube.edges[2][0]),sticker(cube.corners[1][2]),sticker(cube.corners[1][0])]]),\n crunch([[sticker(cube.edges[6][0]),sticker(cube.edges[6][1]),sticker(cube.centers[3]),sticker(cube.edges[5][1]),sticker(cube.edges[5][0])],\n [sticker(cube.corners[6][0]),sticker(cube.corners[6][2]),sticker(cube.edges[0xA][0]),sticker(cube.corners[5][2]),sticker(cube.corners[5][0])]]),\n ].join`\\n`)\n}\n\nfunction renderMiniT(message = '') {\n function sticker(obj) { return colors[obj.color]; }\n function crnr(x, y) { return sticker(cube.corners[x][y]); }\n function edge(x, y) { return sticker(cube.edges[x][y]); }\n function cntr(x) { return sticker(cube.centers[x]); }\n function crunch(l1, l2) { return l1.map((d, i) => `{${d},${l2[i]}}▀{/}`).join``; }\n function crunch1(l) { return l.map(d => `{${d}}▄{/}`).join``; }\n const spaces = ' ';\n print([\n spaces + crunch([crnr(3,1), edge(0,1), crnr(0,1)], [edge(3,1), cntr(0), edge(1,1)]) + ` ${message}`,\n crunch1([crnr(3,0), edge(3,0), crnr(2,0)])\n + crunch([crnr(2,1), edge(2,1), crnr(1,1)], [crnr(2,2), edge(2,0), crnr(1,2)])\n + crunch1([crnr(1,0), edge(1,0), crnr(0,0)]),\n crunch([edge(7,0), cntr(4), edge(6,0), edge(6,1), cntr(3), edge(5,1), edge(5,0), cntr(2), edge(4,0)],\n [crnr(7,0), edge(11,0), crnr(6,0), crnr(6,2), edge(10,0), crnr(5,2), crnr(5,0), edge(9,0), crnr(4,0)])\n ].join`\\n`)\n}\n\n\nfunction mini() { // legacy command?\n doMoves(input);\n renderMini();\n}\n\nfunction view(view) {\n if (!view || !['qcube','qcube-roux', 'mini','T','miniT'].includes(view.trim())) {\n throw `usage: ${IRC.colors.cmd('cube.view', 'qcube|qcube-roux|mini|T|miniT')}`;\n }\n store.set(`${from}:view`, view);\n print(`View for ${from} set to ${view}`);\n}\n\nfunction getView() { return store.get(`${from}:view`) || 'qcube'; }\n\nfunction render(message) {\n const view = getView();\n if (view === 'mini') return renderMini(message);\n else if (view === 'T') return renderT(message);\n else if (view === 'miniT') return renderMiniT(message);\n else if (view === 'qcube-roux') return renderQCubeRoux(message);\n return renderQCube(message);\n}\n\n// solving / scramble / timer\n\nconst scrambler = IRC.require('scramble');\n\nfunction scramble(type) {\n type = type.toUpperCase().trim();\n !['LL', 'LSE', 'TEST'].includes(type) && (type = '3x3');\n\n const scramble = {\n TEST: `RU`,\n LL: scrambler.getLLScramble(),\n LSE: `xy'` + scrambler.getLSEScramble() + ['', ' M2'][0|Math.random()*2],\n }[type] || (() => scrambler.getRandomScramble())();\n\n doMoves(scramble);\n\n store.save(`${from}:solve`, {\n moves: [],\n scrambleTime: +(new Date),\n startTime: undefined,\n scramble,\n view: getView(),\n type,\n });\n\n saveCube();\n render(`${type} scramble`);\n}\n\nfunction apply(inputMoves) {\n loadCube();\n doMoves(inputMoves);\n saveCube();\n\n const state = store.load(`${from}:solve`, false);\n let message;\n if (state) {\n let { moves, startTime, ...other } = state;\n\n const converted = applyKeymap(inputMoves);\n\n moves.push([+(new Date), converted, inputMoves]);\n\n if (!startTime) {\n if (getMoves(converted).some(move => !'xyz'.includes(move.source.move))) {\n // if there's a non inspection move\n startTime = +(new Date);\n message = 'timer started!';\n }\n } else {\n message = renderDiff(startTime, +new Date)\n }\n\n store.save(`${from}:solve`, {\n moves,\n startTime,\n ...other\n });\n\n\n if (isSolved()) return solved();\n }\n\n render(message);\n}\n\nfunction renderDiff(startTime, endTime) {\n const { intervalToDuration } = require('date-fns@2.28.0');\n const duration = intervalToDuration({ start: new Date(startTime), end: new Date(endTime) });\n return `${duration.minutes}:${String(duration.seconds).padStart(2, '0')}`;\n}\n\nfunction solved() {\n const { moves, startTime, scrambleTime, scramble, view, type } = store.load(`${from}:solve`);\n const endTime = +(new Date);\n const score = endTime - startTime;\n render(`solved in ${renderDiff(startTime, endTime)}!`);\n\n const scores = store.load(`scores:${type}`, {});\n const oldScore = scores[from] || Infinity;\n\n if (score < oldScore) {\n scores[from] = score;\n store.save(`scores:${type}`, scores);\n const key = type === '3x3' ? `${from}:solution` : `${from}:solution:${type}`;\n store.save(key, {\n scrambleTime, startTime, endTime, score, scramble, moves, view, type\n });\n print(`{g}new pb!{/}`);\n print(`${IRC.colors.nick(from, false)} got a new ${type} pb of {dc}${renderDiff(startTime, endTime)}{/}!`, { target: '#rubik' })\n }\n\n store.save(`${from}:solve`, false);\n}\n\nfunction scores(query) {\n const type = query.trim() || '3x3';\n const scores = Object.entries(store.load(`scores:${type}`, {}))\n .map(([name, score]) => {\n const solution = store.load(`${name}:solution`);\n \t// if (['eyeoh'].includes(name)) {\n \t// name += '*'; \n // }\n return ({ name, score, extra: solution.view, solution });\n });\n\n print(IRC.require('module.leaderboard')({\n title: `${type} Leaderboard`,\n scores,\n reverse: true,\n limit: 10,\n fmtNum: (score, { solution: { startTime, endTime } }) => renderDiff(startTime, endTime),\n }));\n}\n\nfunction solution(query) {\n const [name, ...etc] = query.trim().split(' ');\n const params = etc.join(' ');\n const solution = store.load(`${name}:solution`)\n if (!solution) throw `no solution for ${name}`\n const { \n moves,\n scrambleTime,\n startTime,\n endTime,\n scramble,\n view,\n type,\n } = solution;\n\n const alg = str => str.replace(/'/g, '-').replace(/\\s+/g, '_');\n\n const link = `https://alg.cubing.net/?setup=${alg(scramble)}&alg=${moves.map(([diff, m]) => alg(m) + '____//_' + renderDiff(startTime, diff)).join('%0A')}`;\n\n if (params.includes('--link')) return print(IRC.colors.link(link));\n\n const output = `\nevent: ${type}\nsolve time: ${renderDiff(startTime, endTime)}\ninspection time: ${scrambleTime && renderDiff(scrambleTime, startTime)}\nscramble: ${scramble}\nview: ${view}\n\n${moves.map(([diff, moveList, inputMoves]) => \n `${renderDiff(startTime, diff)} ${moveList} ${inputMoves && (moveList !== inputMoves) ? `${inputMoves}`: ''}`).join`\\n`}\n\n${link}\n\n `.trim();\n\n print(IRC.require('module.paste')(output));\n}\n\nif (IRC.command.path === 'cube') {\n doMoves(input);\n render();\n} else {\n module.exports = { scramble, render, apply, getMoves, doMoves, mini, view, scores, solution };\n}" } \ No newline at end of file diff --git a/commands/cubeapplyKS-44a21b12dc0e.json b/commands/cubeapplyKS-44a21b12dc0e.json new file mode 100644 index 0000000..d46acfa --- /dev/null +++ b/commands/cubeapplyKS-44a21b12dc0e.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "cube.applyKS", + "command": "IRC.command.params = ['ksim'];\nIRC.require('cube').apply(input);" +} \ No newline at end of file diff --git a/commands/cubetest-a388106f4500.json b/commands/cubetest-a388106f4500.json index ec71ceb..c3f7afe 100644 --- a/commands/cubetest-a388106f4500.json +++ b/commands/cubetest-a388106f4500.json @@ -3,5 +3,5 @@ "locked": false, "starred": false, "name": "cubetest", - "command": "// TODO: axis / offset can be derived from color\n\nconst centres = [\n // U B R F L D\n { color: 0, axis: 'y', offset: -1 },\n { color: 1, axis: 'z', offset: -1 },\n { color: 2, axis: 'x', offset: 1 },\n { color: 3, axis: 'z', offset: 1 },\n { color: 4, axis: 'x', offset: -1 },\n { color: 5, axis: 'y', offset: 1 },\n];\n\nconst edges = [\n // UB UR UF UL\n [ { color: 1, axis: 'z', offset: -1 }, { color: 0, axis: 'y', offset: -1 } ],\n [ { color: 2, axis: 'x', offset: 1 }, { color: 0, axis: 'y', offset: -1 } ],\n [ { color: 3, axis: 'z', offset: 1 }, { color: 0, axis: 'y', offset: -1 } ],\n [ { color: 4, axis: 'x', offset: -1 }, { color: 0, axis: 'y', offset: -1 } ],\n // BR FR FL BL\n [ { color: 2, axis: 'x', offset: 1 }, { color: 1, axis: 'z', offset: -1 } ],\n [ { color: 2, axis: 'x', offset: 1 }, { color: 3, axis: 'z', offset: 1 } ],\n [ { color: 4, axis: 'x', offset: -1 }, { color: 3, axis: 'z', offset: 1 } ],\n [ { color: 4, axis: 'x', offset: -1 }, { color: 1, axis: 'z', offset: -1 } ],\n // DB DR DF DL\n [ { color: 1, axis: 'z', offset: -1 }, { color: 5, axis: 'y', offset: 1 } ],\n [ { color: 2, axis: 'x', offset: 1 }, { color: 5, axis: 'y', offset: 1 } ],\n [ { color: 3, axis: 'z', offset: 1 }, { color: 5, axis: 'y', offset: 1 } ],\n [ { color: 4, axis: 'x', offset: -1 }, { color: 5, axis: 'y', offset: 1 } ],\n];\n\nconst corners = [\n // UBR URF UFL ULB\n [\n { color: 2, axis: 'x', offset: 1 },\n { color: 0, axis: 'y', offset: -1 },\n { color: 1, axis: 'z', offset: -1 },\n ],\n [\n { color: 2, axis: 'x', offset: 1 },\n { color: 0, axis: 'y', offset: -1 },\n { color: 3, axis: 'z', offset: 1 },\n ],\n [\n { color: 4, axis: 'x', offset: -1 },\n { color: 0, axis: 'y', offset: -1 },\n { color: 3, axis: 'z', offset: 1 },\n ],\n [\n { color: 4, axis: 'x', offset: -1 },\n { color: 0, axis: 'y', offset: -1 },\n { color: 1, axis: 'z', offset: -1 },\n ],\n // DRB DFR DLF DBL\n [\n { color: 2, axis: 'x', offset: 1 },\n { color: 5, axis: 'y', offset: 1 },\n { color: 1, axis: 'z', offset: -1 },\n ],\n [\n { color: 2, axis: 'x', offset: 1 },\n { color: 5, axis: 'y', offset: 1 },\n { color: 3, axis: 'z', offset: 1 },\n ],\n [\n { color: 4, axis: 'x', offset: -1 },\n { color: 5, axis: 'y', offset: 1 },\n { color: 3, axis: 'z', offset: 1 },\n ],\n [\n { color: 4, axis: 'x', offset: -1 },\n { color: 5, axis: 'y', offset: 1 },\n { color: 1, axis: 'z', offset: -1 },\n ],\n];\n\nconst cube = {\n edges,\n corners,\n centres,\n};\n\n// U B R F L D\nconst moveList = {\n R: {\n edges: [5, 9, 4, 1],\n corners: [5, 4, 0, 1],\n centre: 2,\n axis: 'x',\n },\n U: {\n edges: [3, 2, 1, 0],\n corners: [3, 2, 1, 0],\n centre: 0,\n axis: 'y',\n },\n F: {\n edges: [6, 10, 5, 2],\n corners: [1, 2, 6, 5],\n centre: 3,\n axis: 'z',\n },\n L: {\n edges: [3, 7, 11, 6],\n corners: [2, 3, 7, 6],\n centre: 4,\n axis: 'x',\n axisFlip: true,\n },\n B: {\n edges: [4, 8, 7, 0],\n corners: [4, 7, 3, 0],\n centre: 1,\n axis: 'z',\n axisFlip: true,\n },\n D: {\n edges: [8, 9, 10, 11],\n corners: [4, 5, 6, 7],\n centre: 5,\n axis: 'y',\n axisFlip: true,\n },\n M: {\n centres: [0, 1, 5, 3],\n edges: [2, 0, 8, 10],\n axis: 'x',\n axisFlip: true,\n },\n E: {\n centres: [3, 4, 1, 2],\n edges: [4, 5, 6, 7],\n axis: 'y',\n axisFlip: true,\n },\n S: {\n centres: [4, 5, 2, 0],\n edges: [3, 11, 9, 1],\n axis: 'z',\n },\n r: { moves: [toObject(`R`), toObject(`M'`)] },\n l: { moves: [toObject(`L`), toObject(`M`)] },\n f: { moves: [toObject(`F`), toObject(`S`)] },\n b: { moves: [toObject(`B`), toObject(`S'`)] },\n u: { moves: [toObject(`U`), toObject(`E'`)] },\n d: { moves: [toObject(`D`), toObject(`E`)] },\n x: { moves: [toObject(`R`), toObject(`M'`), toObject(`L'`)] },\n y: { moves: [toObject(`U`), toObject(`E'`), toObject(`D'`)] },\n z: { moves: [toObject(`F`), toObject(`S`), toObject(`B'`)] },\n};\n\nfunction getMove(moveRaw) {\n const { move, order } = toObject(moveRaw);\n if (!moveList[move]) throw new Error(`invalid move ${move}`);\n const {\n corners,\n edges,\n centres,\n centre,\n axis,\n axisFlip,\n moves,\n } = moveList[move];\n\n // calculate transforms\n const transforms = [];\n corners && transforms.push(...corners.map(index => cube.corners[index]));\n edges && transforms.push(...edges.map(index => cube.edges[index]));\n centres && transforms.push(...centres.map(index => cube.centres[index]));\n typeof centre !== 'undefined' && transforms.push(cube.centres[centre]);\n const axisOrder = axisFlip ? -1 : 1;\n const extraMoves = moves && (\n moves.map(move => getMove(applyOrder(clone(move), order), cube))\n );\n\n // swap stickers / clean up move\n function apply() {\n extraMoves && extraMoves.forEach(move => move.apply());\n if (edges) {\n doCycle(cube.edges, order, edges, centres ? 'z' : axis);\n }\n if (centres) {\n doCycle(cube.centres, order, centres);\n }\n if (corners) {\n doCycle(cube.corners, order, corners, axis);\n }\n }\n\n return {\n apply,\n transforms,\n axis,\n source: { move, order },\n };\n}\n\nfunction getMoves(moves) {\n return splitMoves(moves).map(move => getMove(move, cube));\n}\n\nfunction splitMoves(str) {\n if (typeof str !== 'string') return str;\n return str.split(/(\\ww?\\d?'?)/).filter(d => d.trim());\n}\n\nfunction toObject(move) {\n if (typeof move !== 'string') return move;\n if (move[1] === 'w') move = `${move[0].toLowerCase()}${move.slice(2) || ''}`;\n return {\n move: move[0],\n order: {\n '\\'': -1,\n '2\\'': -2,\n '2': 2,\n }[move.slice(1)] || 1,\n };\n}\n\nfunction clone(move) {\n return Object.assign({}, move);\n}\n\nfunction applyOrder(move, order) {\n if (order === 1) return move;\n if (order === -1) {\n move.order = move.order === 2 ? 2 : -move.order;\n }\n if (order === 2) {\n move.order = move.order === 2 ? 0 : 2;\n }\n return move;\n}\n\n\nconst cornerSwaps = {\n x: [1, 2],\n y: [0, 2],\n z: [0, 1],\n};\n\nfunction doCycle(arr, order, cycle, axis) {\n if (order === 0) return;\n if (order === -1 || order === 3) {\n cycle = [...cycle].reverse();\n }\n if (order === 2 || order === -2) {\n doCycle(arr, 1, cycle, axis);\n }\n\n // cycles\n for (let i = 0; i < cycle.length - 1; i++) {\n swapPiece(arr, cycle[i], cycle[i + 1]);\n }\n\n // corner 'twists'\n if (arr[0].length === 3) {\n for (let i = 0; i < cycle.length; i++) {\n swapSticker(arr[cycle[i]], ...cornerSwaps[axis]);\n }\n }\n // edge flips\n else if (axis === 'z') {\n for (let i = 0; i < cycle.length; i++) {\n swapSticker(arr[cycle[i]], 0, 1);\n }\n }\n}\n\nfunction swapPiece(arr, first, second) {\n if (Array.isArray(arr[first])) {\n const tmpColors = arr[first].map(d => d.color);\n arr[first].forEach((sticker, i) => { sticker.color = arr[second][i].color; });\n arr[second].forEach((sticker, i) => { sticker.color = tmpColors[i]; });\n } else {\n swapSticker(arr, first, second)\n }\n}\n\nfunction swapSticker(arr, first, second) {\n const tmp = arr[first].color;\n arr[first].color = arr[second].color;\n arr[second].color = tmp;\n}\n\nfunction isSolved() {\n const { centres, edges, corners } = cube;\n const lookup = {};\n centres.forEach(({ color, axis, offset }) => {\n lookup[`${axis}|${offset}`] = color;\n });\n const pieces = edges.concat(corners);\n for (let i = 0; i < pieces.length; i++) {\n for (let j = 0; j < pieces[i].length; j++) {\n const { axis, offset, color } = pieces[i][j];\n if (color !== lookup[`${axis}|${offset}`]) {\n return false;\n }\n }\n }\n return true;\n}\n\n\n// IRC stuff\n\nconst { from } = IRC.message;\n\nfunction saveCube() {\n store.set(from, JSON.stringify(cube));\n}\n\nfunction loadCube() {\n const next = store.get(from);\n if (next) {\n Object.assign(cube, JSON.parse(next));\n }\n}\n\nfunction doMoves(moves) {\n getMoves(moves).forEach(move => move.apply());\n}\n\n// render\n\nconst colors = 'wbrgoy';\n\nfunction renderNormal(message = '') {\n function sticker(obj) {\n return `{${colors[obj.color]}}██{/}`;\n }\n \n function crnr(x, y) {\n return sticker(cube.corners[x][y]);\n }\n \n \tfunction edge(x, y) {\n return sticker(cube.edges[x][y]);\n }\n \n function cntr(x) {\n return sticker(cube.centres[x]);\n }\n\n const spaces = \" \";\n print([\n [spaces, crnr(3,1), edge(0,1), crnr(0,1)].join`` + ` ${message}`,\n [spaces, edge(3,1), cntr(0), edge(1,1)].join``,\n [spaces, crnr(2,1), edge(2,1), crnr(1,1)].join``,\n [crnr(3,0), edge(3,0), crnr(2,0), crnr(2,2), edge(2,0), crnr(1,2), crnr(1,0), edge(1,0), crnr(0,0)].join``,\n [edge(7,0), cntr(4), edge(6,0), edge(6,1), cntr(3), edge(5,1), edge(5,0), cntr(2), edge(4,0)].join``,\n [crnr(7,0), edge(11,0), crnr(6,0), crnr(6,2), edge(10,0), crnr(5,2), crnr(5,0), edge(9,0), crnr(4,0)].join``,\n ].join`\\n`)\n}\n\nfunction renderMini(message = '') {\n function sticker(obj) {\n return colors[obj.color]; \n }\n function crunch([l1, l2]) {\n return l1.map((d, i) => `{${d},${l2[i]}}▀{/}`).join``;\n }\n print([\n crunch([[sticker(cube.corners[3][0]),sticker(cube.corners[3][1]),sticker(cube.edges[0][1]),sticker(cube.corners[0][1]),sticker(cube.corners[0][0])],\n [sticker(cube.edges[3][0]),sticker(cube.edges[3][1]),sticker(cube.centres[0]),sticker(cube.edges[1][1]),sticker(cube.edges[1][0])]]) + ` ${message}`,\n crunch([[sticker(cube.corners[2][0]),sticker(cube.corners[2][1]),sticker(cube.edges[2][1]),sticker(cube.corners[1][1]),sticker(cube.corners[1][0])],\n [sticker(cube.corners[2][0]),sticker(cube.corners[2][2]),sticker(cube.edges[2][0]),sticker(cube.corners[1][2]),sticker(cube.corners[1][0])]]),\n crunch([[sticker(cube.edges[6][0]),sticker(cube.edges[6][1]),sticker(cube.centres[3]),sticker(cube.edges[5][1]),sticker(cube.edges[5][0])],\n [sticker(cube.corners[6][0]),sticker(cube.corners[6][2]),sticker(cube.edges[0xA][0]),sticker(cube.corners[5][2]),sticker(cube.corners[5][0])]]),\n ].join`\\n`)\n}\n\n\nfunction mini() {\n doMoves(input);\n renderMini();\n}\n\nfunction view(view) {\n if (!view) {\n throw `usage: ${IRC.colors.cmd('cube.view', 'mini|normal')}`;\n }\n store.set(`${from}:view`, view);\n print(`Size for ${from} set to ${view}`);\n}\n\nfunction render(message) {\n if (store.get(`${from}:view`) === 'mini') {\n renderMini(message);\n } else {\n renderNormal(message);\n }\n}\n\n// solving / scramble / timer\n\nconst scrambler = IRC.require('scramble');\n\nfunction scramble(type) {\n type = type.toUpperCase().trim();\n !['LL', 'LSE', 'TEST'].includes(type) && (type = '3x3');\n\n const scramble = {\n TEST: `RU`,\n LL: scrambler.getLLScramble(),\n LSE: `xy'` + scrambler.getLSEScramble() + ['', ' M2'][0|Math.random()*2],\n }[type] || (() => scrambler.getRandomScramble())();\n\n doMoves(scramble);\n\n store.save(`${from}:solve`, {\n moves: [],\n scrambleTime: +(new Date),\n startTime: undefined,\n endTime: undefined,\n scramble,\n type,\n });\n\n saveCube();\n render(`${type} scramble`);\n}\n\nconst { intervalToDuration } = require('date-fns@2.28.0');\n\nfunction apply(inputMoves) {\n loadCube();\n doMoves(inputMoves);\n saveCube();\n\n const state = store.load(`${from}:solve`, false);\n let message;\n if (state) {\n let { moves, startTime, ...other } = state;\n\n moves.push([+(new Date), inputMoves, IRC.message.text]);\n\n if (!startTime) {\n if (getMoves(inputMoves).some(move => !'xyz'.includes(move.source.move))) {\n // if there's a non inspection move\n startTime = +(new Date);\n message = 'timer started!';\n }\n }\n\n store.save(`${from}:solve`, {\n moves,\n startTime,\n ...other\n });\n\n\n if (isSolved()) {\n endTime = +(new Date);\n const duration = intervalToDuration({ start: new Date(startTime), end: new Date(endTime) });\n message = `solved in ${duration.minutes}:${duration.seconds}!`\n\n }\n// ~cube.solution joey\n// inspection time\n // scramble, solution\n // debug flag to see everything\n// notify of new pb / notify in channel\n\n }\n\n render(message);\n}\n\nif (IRC.command.path === 'cubetest') {\n doMoves(input);\n render();\n} else {\n module.exports = { cube, scramble, render, apply, getMoves, doMoves, mini, view };\n}" + "command": "// TODO: axis / offset can be derived from color\n\nconst centres = [\n // U B R F L D\n { color: 0, axis: 'y', offset: -1 },\n { color: 1, axis: 'z', offset: -1 },\n { color: 2, axis: 'x', offset: 1 },\n { color: 3, axis: 'z', offset: 1 },\n { color: 4, axis: 'x', offset: -1 },\n { color: 5, axis: 'y', offset: 1 },\n];\n\nconst edges = [\n // UB UR UF UL\n [ { color: 1, axis: 'z', offset: -1 }, { color: 0, axis: 'y', offset: -1 } ],\n [ { color: 2, axis: 'x', offset: 1 }, { color: 0, axis: 'y', offset: -1 } ],\n [ { color: 3, axis: 'z', offset: 1 }, { color: 0, axis: 'y', offset: -1 } ],\n [ { color: 4, axis: 'x', offset: -1 }, { color: 0, axis: 'y', offset: -1 } ],\n // BR FR FL BL\n [ { color: 2, axis: 'x', offset: 1 }, { color: 1, axis: 'z', offset: -1 } ],\n [ { color: 2, axis: 'x', offset: 1 }, { color: 3, axis: 'z', offset: 1 } ],\n [ { color: 4, axis: 'x', offset: -1 }, { color: 3, axis: 'z', offset: 1 } ],\n [ { color: 4, axis: 'x', offset: -1 }, { color: 1, axis: 'z', offset: -1 } ],\n // DB DR DF DL\n [ { color: 1, axis: 'z', offset: -1 }, { color: 5, axis: 'y', offset: 1 } ],\n [ { color: 2, axis: 'x', offset: 1 }, { color: 5, axis: 'y', offset: 1 } ],\n [ { color: 3, axis: 'z', offset: 1 }, { color: 5, axis: 'y', offset: 1 } ],\n [ { color: 4, axis: 'x', offset: -1 }, { color: 5, axis: 'y', offset: 1 } ],\n];\n\nconst corners = [\n // UBR URF UFL ULB\n [\n { color: 2, axis: 'x', offset: 1 },\n { color: 0, axis: 'y', offset: -1 },\n { color: 1, axis: 'z', offset: -1 },\n ],\n [\n { color: 2, axis: 'x', offset: 1 },\n { color: 0, axis: 'y', offset: -1 },\n { color: 3, axis: 'z', offset: 1 },\n ],\n [\n { color: 4, axis: 'x', offset: -1 },\n { color: 0, axis: 'y', offset: -1 },\n { color: 3, axis: 'z', offset: 1 },\n ],\n [\n { color: 4, axis: 'x', offset: -1 },\n { color: 0, axis: 'y', offset: -1 },\n { color: 1, axis: 'z', offset: -1 },\n ],\n // DRB DFR DLF DBL\n [\n { color: 2, axis: 'x', offset: 1 },\n { color: 5, axis: 'y', offset: 1 },\n { color: 1, axis: 'z', offset: -1 },\n ],\n [\n { color: 2, axis: 'x', offset: 1 },\n { color: 5, axis: 'y', offset: 1 },\n { color: 3, axis: 'z', offset: 1 },\n ],\n [\n { color: 4, axis: 'x', offset: -1 },\n { color: 5, axis: 'y', offset: 1 },\n { color: 3, axis: 'z', offset: 1 },\n ],\n [\n { color: 4, axis: 'x', offset: -1 },\n { color: 5, axis: 'y', offset: 1 },\n { color: 1, axis: 'z', offset: -1 },\n ],\n];\n\nconst cube = {\n edges,\n corners,\n centres,\n};\n\n// U B R F L D\nconst moveList = {\n R: {\n edges: [5, 9, 4, 1],\n corners: [5, 4, 0, 1],\n centre: 2,\n axis: 'x',\n },\n U: {\n edges: [3, 2, 1, 0],\n corners: [3, 2, 1, 0],\n centre: 0,\n axis: 'y',\n },\n F: {\n edges: [6, 10, 5, 2],\n corners: [1, 2, 6, 5],\n centre: 3,\n axis: 'z',\n },\n L: {\n edges: [3, 7, 11, 6],\n corners: [2, 3, 7, 6],\n centre: 4,\n axis: 'x',\n axisFlip: true,\n },\n B: {\n edges: [4, 8, 7, 0],\n corners: [4, 7, 3, 0],\n centre: 1,\n axis: 'z',\n axisFlip: true,\n },\n D: {\n edges: [8, 9, 10, 11],\n corners: [4, 5, 6, 7],\n centre: 5,\n axis: 'y',\n axisFlip: true,\n },\n M: {\n centres: [0, 1, 5, 3],\n edges: [2, 0, 8, 10],\n axis: 'x',\n axisFlip: true,\n },\n E: {\n centres: [3, 4, 1, 2],\n edges: [4, 5, 6, 7],\n axis: 'y',\n axisFlip: true,\n },\n S: {\n centres: [4, 5, 2, 0],\n edges: [3, 11, 9, 1],\n axis: 'z',\n },\n r: { moves: [toObject(`R`), toObject(`M'`)] },\n l: { moves: [toObject(`L`), toObject(`M`)] },\n f: { moves: [toObject(`F`), toObject(`S`)] },\n b: { moves: [toObject(`B`), toObject(`S'`)] },\n u: { moves: [toObject(`U`), toObject(`E'`)] },\n d: { moves: [toObject(`D`), toObject(`E`)] },\n x: { moves: [toObject(`R`), toObject(`M'`), toObject(`L'`)] },\n y: { moves: [toObject(`U`), toObject(`E'`), toObject(`D'`)] },\n z: { moves: [toObject(`F`), toObject(`S`), toObject(`B'`)] },\n};\n\nfunction getMove(moveRaw) {\n const { move, order } = toObject(moveRaw);\n if (!moveList[move]) throw new Error(`invalid move ${move}`);\n const {\n corners,\n edges,\n centres,\n centre,\n axis,\n axisFlip,\n moves,\n } = moveList[move];\n\n // calculate transforms\n const transforms = [];\n corners && transforms.push(...corners.map(index => cube.corners[index]));\n edges && transforms.push(...edges.map(index => cube.edges[index]));\n centres && transforms.push(...centres.map(index => cube.centres[index]));\n typeof centre !== 'undefined' && transforms.push(cube.centres[centre]);\n const axisOrder = axisFlip ? -1 : 1;\n const extraMoves = moves && (\n moves.map(move => getMove(applyOrder(clone(move), order), cube))\n );\n\n // swap stickers / clean up move\n function apply() {\n extraMoves && extraMoves.forEach(move => move.apply());\n if (edges) {\n doCycle(cube.edges, order, edges, centres ? 'z' : axis);\n }\n if (centres) {\n doCycle(cube.centres, order, centres);\n }\n if (corners) {\n doCycle(cube.corners, order, corners, axis);\n }\n }\n\n return {\n apply,\n transforms,\n axis,\n source: { move, order },\n };\n}\n\nfunction getMoves(moves) {\n return splitMoves(moves).map(move => getMove(move, cube));\n}\n\nfunction splitMoves(str) {\n if (typeof str !== 'string') return str;\n return str.split(/(\\ww?\\d?'?)/).filter(d => d.trim());\n}\n\nfunction toObject(move) {\n if (typeof move !== 'string') return move;\n if (move[1] === 'w') move = `${move[0].toLowerCase()}${move.slice(2) || ''}`;\n return {\n move: move[0],\n order: {\n '\\'': -1,\n '2\\'': -2,\n '2': 2,\n }[move.slice(1)] || 1,\n };\n}\n\nfunction clone(move) {\n return Object.assign({}, move);\n}\n\nfunction applyOrder(move, order) {\n if (order === 1) return move;\n if (order === -1) {\n move.order = move.order === 2 ? 2 : -move.order;\n }\n if (order === 2) {\n move.order = move.order === 2 ? 0 : 2;\n }\n return move;\n}\n\n\nconst cornerSwaps = {\n x: [1, 2],\n y: [0, 2],\n z: [0, 1],\n};\n\nfunction doCycle(arr, order, cycle, axis) {\n if (order === 0) return;\n if (order === -1 || order === 3) {\n cycle = [...cycle].reverse();\n }\n if (order === 2 || order === -2) {\n doCycle(arr, 1, cycle, axis);\n }\n\n // cycles\n for (let i = 0; i < cycle.length - 1; i++) {\n swapPiece(arr, cycle[i], cycle[i + 1]);\n }\n\n // corner 'twists'\n if (arr[0].length === 3) {\n for (let i = 0; i < cycle.length; i++) {\n swapSticker(arr[cycle[i]], ...cornerSwaps[axis]);\n }\n }\n // edge flips\n else if (axis === 'z') {\n for (let i = 0; i < cycle.length; i++) {\n swapSticker(arr[cycle[i]], 0, 1);\n }\n }\n}\n\nfunction swapPiece(arr, first, second) {\n if (Array.isArray(arr[first])) {\n const tmpColors = arr[first].map(d => d.color);\n arr[first].forEach((sticker, i) => { sticker.color = arr[second][i].color; });\n arr[second].forEach((sticker, i) => { sticker.color = tmpColors[i]; });\n } else {\n swapSticker(arr, first, second)\n }\n}\n\nfunction swapSticker(arr, first, second) {\n const tmp = arr[first].color;\n arr[first].color = arr[second].color;\n arr[second].color = tmp;\n}\n\nfunction isSolved() {\n const { centres, edges, corners } = cube;\n const lookup = {};\n centres.forEach(({ color, axis, offset }) => {\n lookup[`${axis}|${offset}`] = color;\n });\n const pieces = edges.concat(corners);\n for (let i = 0; i < pieces.length; i++) {\n for (let j = 0; j < pieces[i].length; j++) {\n const { axis, offset, color } = pieces[i][j];\n if (color !== lookup[`${axis}|${offset}`]) {\n return false;\n }\n }\n }\n return true;\n}\n\n\n// IRC stuff\n\nconst { from } = IRC.message;\n\nfunction saveCube() {\n store.set(from, JSON.stringify(cube));\n}\n\nfunction loadCube() {\n const next = store.get(from);\n if (next) {\n Object.assign(cube, JSON.parse(next));\n }\n}\n\nfunction doMoves(moves) {\n getMoves(moves).forEach(move => move.apply());\n}\n\n// render\n\nconst colors = 'wbrgoy';\n\nfunction renderNormal(message = '') {\n function sticker(obj) {\n return colors[obj.color];\n }\n \n function crnr(x, y) {\n return sticker(cube.corners[x][y]);\n }\n \n \tfunction edge(x, y) {\n return sticker(cube.edges[x][y]);\n }\n \n function cntr(x) {\n return sticker(cube.centres[x]);\n }\n \n function crunch(l1, l2) {\n return l1.map((d, i) => `{${d},${l2[i]}}▀{/}`).join``;\n }\n \n function crunch1(l) {\n return l.map(d => `{${d}}▄{/}`).join``;\n }\n\n const spaces = \" \";\n print([\n spaces + crunch([crnr(3,1), edge(0,1), crnr(0,1)], [edge(3,1), cntr(0), edge(1,1)]) + ` ${message}`,\n crunch1([crnr(3,0), edge(3,0), crnr(2,0)])\n + crunch([crnr(2,1), edge(2,1), crnr(1,1)], [crnr(2,2), edge(2,0), crnr(1,2)])\n + crunch1([crnr(1,0), edge(1,0), crnr(0,0)]),\n crunch([edge(7,0), cntr(4), edge(6,0), edge(6,1), cntr(3), edge(5,1), edge(5,0), cntr(2), edge(4,0)],\n [crnr(7,0), edge(11,0), crnr(6,0), crnr(6,2), edge(10,0), crnr(5,2), crnr(5,0), edge(9,0), crnr(4,0)])\n ].join`\\n`)\n}\n\nfunction renderMini(message = '') {\n function sticker(obj) {\n return colors[obj.color]; \n }\n function crunch([l1, l2]) {\n return l1.map((d, i) => `{${d},${l2[i]}}▀{/}`).join``;\n }\n print([\n crunch([[sticker(cube.corners[3][0]),sticker(cube.corners[3][1]),sticker(cube.edges[0][1]),sticker(cube.corners[0][1]),sticker(cube.corners[0][0])],\n [sticker(cube.edges[3][0]),sticker(cube.edges[3][1]),sticker(cube.centres[0]),sticker(cube.edges[1][1]),sticker(cube.edges[1][0])]]) + ` ${message}`,\n crunch([[sticker(cube.corners[2][0]),sticker(cube.corners[2][1]),sticker(cube.edges[2][1]),sticker(cube.corners[1][1]),sticker(cube.corners[1][0])],\n [sticker(cube.corners[2][0]),sticker(cube.corners[2][2]),sticker(cube.edges[2][0]),sticker(cube.corners[1][2]),sticker(cube.corners[1][0])]]),\n crunch([[sticker(cube.edges[6][0]),sticker(cube.edges[6][1]),sticker(cube.centres[3]),sticker(cube.edges[5][1]),sticker(cube.edges[5][0])],\n [sticker(cube.corners[6][0]),sticker(cube.corners[6][2]),sticker(cube.edges[0xA][0]),sticker(cube.corners[5][2]),sticker(cube.corners[5][0])]]),\n ].join`\\n`)\n}\n\n\nfunction mini() {\n doMoves(input);\n renderMini();\n}\n\nfunction view(view) {\n if (!view) {\n throw `usage: ${IRC.colors.cmd('cube.view', 'mini|normal')}`;\n }\n store.set(`${from}:view`, view);\n print(`Size for ${from} set to ${view}`);\n}\n\nfunction render(message) {\n if (store.get(`${from}:view`) === 'mini') {\n renderMini(message);\n } else {\n renderNormal(message);\n }\n}\n\n// solving / scramble / timer\n\nconst scrambler = IRC.require('scramble');\n\nfunction scramble(type) {\n type = type.toUpperCase().trim();\n !['LL', 'LSE', 'TEST'].includes(type) && (type = '3x3');\n\n const scramble = {\n TEST: `RU`,\n LL: scrambler.getLLScramble(),\n LSE: `xy'` + scrambler.getLSEScramble() + ['', ' M2'][0|Math.random()*2],\n }[type] || (() => scrambler.getRandomScramble())();\n\n doMoves(scramble);\n\n store.save(`${from}:solve`, {\n moves: [],\n scrambleTime: +(new Date),\n startTime: undefined,\n endTime: undefined,\n scramble,\n type,\n });\n\n saveCube();\n render(`${type} scramble`);\n}\n\nconst { intervalToDuration } = require('date-fns@2.28.0');\n\nfunction apply(inputMoves) {\n loadCube();\n doMoves(inputMoves);\n saveCube();\n\n const state = store.load(`${from}:solve`, false);\n let message;\n if (state) {\n let { moves, startTime, ...other } = state;\n\n moves.push([+(new Date), inputMoves, IRC.message.text]);\n\n if (!startTime) {\n if (getMoves(inputMoves).some(move => !'xyz'.includes(move.source.move))) {\n // if there's a non inspection move\n startTime = +(new Date);\n message = 'timer started!';\n }\n }\n\n store.save(`${from}:solve`, {\n moves,\n startTime,\n ...other\n });\n\n\n if (isSolved()) {\n endTime = +(new Date);\n const duration = intervalToDuration({ start: new Date(startTime), end: new Date(endTime) });\n message = `solved in ${duration.minutes}:${duration.seconds}!`\n\n }\n// ~cube.solution joey\n// inspection time\n // scramble, solution\n // debug flag to see everything\n// notify of new pb / notify in channel\n\n }\n\n render(message);\n}\n\nif (IRC.command.path === 'cubetest') {\n doMoves(input);\n render();\n} else {\n module.exports = { cube, scramble, render, apply, getMoves, doMoves, mini, view };\n}" } \ No newline at end of file diff --git a/commands/cubetest2-928efbc85521.json b/commands/cubetest2-928efbc85521.json new file mode 100644 index 0000000..0474c7b --- /dev/null +++ b/commands/cubetest2-928efbc85521.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "cubetest2", + "command": "// TODO: axis / offset can be derived from color\n\nconst centres = [\n // U B R F L D\n { color: 0, axis: 'y', offset: -1 },\n { color: 1, axis: 'z', offset: -1 },\n { color: 2, axis: 'x', offset: 1 },\n { color: 3, axis: 'z', offset: 1 },\n { color: 4, axis: 'x', offset: -1 },\n { color: 5, axis: 'y', offset: 1 },\n];\n\nconst edges = [\n // UB UR UF UL\n [ { color: 1, axis: 'z', offset: -1 }, { color: 0, axis: 'y', offset: -1 } ],\n [ { color: 2, axis: 'x', offset: 1 }, { color: 0, axis: 'y', offset: -1 } ],\n [ { color: 3, axis: 'z', offset: 1 }, { color: 0, axis: 'y', offset: -1 } ],\n [ { color: 4, axis: 'x', offset: -1 }, { color: 0, axis: 'y', offset: -1 } ],\n // BR FR FL BL\n [ { color: 2, axis: 'x', offset: 1 }, { color: 1, axis: 'z', offset: -1 } ],\n [ { color: 2, axis: 'x', offset: 1 }, { color: 3, axis: 'z', offset: 1 } ],\n [ { color: 4, axis: 'x', offset: -1 }, { color: 3, axis: 'z', offset: 1 } ],\n [ { color: 4, axis: 'x', offset: -1 }, { color: 1, axis: 'z', offset: -1 } ],\n // DB DR DF DL\n [ { color: 1, axis: 'z', offset: -1 }, { color: 5, axis: 'y', offset: 1 } ],\n [ { color: 2, axis: 'x', offset: 1 }, { color: 5, axis: 'y', offset: 1 } ],\n [ { color: 3, axis: 'z', offset: 1 }, { color: 5, axis: 'y', offset: 1 } ],\n [ { color: 4, axis: 'x', offset: -1 }, { color: 5, axis: 'y', offset: 1 } ],\n];\n\nconst corners = [\n // UBR URF UFL ULB\n [\n { color: 2, axis: 'x', offset: 1 },\n { color: 0, axis: 'y', offset: -1 },\n { color: 1, axis: 'z', offset: -1 },\n ],\n [\n { color: 2, axis: 'x', offset: 1 },\n { color: 0, axis: 'y', offset: -1 },\n { color: 3, axis: 'z', offset: 1 },\n ],\n [\n { color: 4, axis: 'x', offset: -1 },\n { color: 0, axis: 'y', offset: -1 },\n { color: 3, axis: 'z', offset: 1 },\n ],\n [\n { color: 4, axis: 'x', offset: -1 },\n { color: 0, axis: 'y', offset: -1 },\n { color: 1, axis: 'z', offset: -1 },\n ],\n // DRB DFR DLF DBL\n [\n { color: 2, axis: 'x', offset: 1 },\n { color: 5, axis: 'y', offset: 1 },\n { color: 1, axis: 'z', offset: -1 },\n ],\n [\n { color: 2, axis: 'x', offset: 1 },\n { color: 5, axis: 'y', offset: 1 },\n { color: 3, axis: 'z', offset: 1 },\n ],\n [\n { color: 4, axis: 'x', offset: -1 },\n { color: 5, axis: 'y', offset: 1 },\n { color: 3, axis: 'z', offset: 1 },\n ],\n [\n { color: 4, axis: 'x', offset: -1 },\n { color: 5, axis: 'y', offset: 1 },\n { color: 1, axis: 'z', offset: -1 },\n ],\n];\n\nconst cube = {\n edges,\n corners,\n centres,\n};\n\n// U B R F L D\nconst moveList = {\n R: {\n edges: [5, 9, 4, 1],\n corners: [5, 4, 0, 1],\n centre: 2,\n axis: 'x',\n },\n U: {\n edges: [3, 2, 1, 0],\n corners: [3, 2, 1, 0],\n centre: 0,\n axis: 'y',\n },\n F: {\n edges: [6, 10, 5, 2],\n corners: [1, 2, 6, 5],\n centre: 3,\n axis: 'z',\n },\n L: {\n edges: [3, 7, 11, 6],\n corners: [2, 3, 7, 6],\n centre: 4,\n axis: 'x',\n axisFlip: true,\n },\n B: {\n edges: [4, 8, 7, 0],\n corners: [4, 7, 3, 0],\n centre: 1,\n axis: 'z',\n axisFlip: true,\n },\n D: {\n edges: [8, 9, 10, 11],\n corners: [4, 5, 6, 7],\n centre: 5,\n axis: 'y',\n axisFlip: true,\n },\n M: {\n centres: [0, 1, 5, 3],\n edges: [2, 0, 8, 10],\n axis: 'x',\n axisFlip: true,\n },\n E: {\n centres: [3, 4, 1, 2],\n edges: [4, 5, 6, 7],\n axis: 'y',\n axisFlip: true,\n },\n S: {\n centres: [4, 5, 2, 0],\n edges: [3, 11, 9, 1],\n axis: 'z',\n },\n r: { moves: [toObject(`R`), toObject(`M'`)] },\n l: { moves: [toObject(`L`), toObject(`M`)] },\n f: { moves: [toObject(`F`), toObject(`S`)] },\n b: { moves: [toObject(`B`), toObject(`S'`)] },\n u: { moves: [toObject(`U`), toObject(`E'`)] },\n d: { moves: [toObject(`D`), toObject(`E`)] },\n x: { moves: [toObject(`R`), toObject(`M'`), toObject(`L'`)] },\n y: { moves: [toObject(`U`), toObject(`E'`), toObject(`D'`)] },\n z: { moves: [toObject(`F`), toObject(`S`), toObject(`B'`)] },\n};\n\nfunction getMove(moveRaw) {\n const { move, order } = toObject(moveRaw);\n if (!moveList[move]) throw new Error(`invalid move ${move}`);\n const {\n corners,\n edges,\n centres,\n centre,\n axis,\n axisFlip,\n moves,\n } = moveList[move];\n\n // calculate transforms\n const transforms = [];\n corners && transforms.push(...corners.map(index => cube.corners[index]));\n edges && transforms.push(...edges.map(index => cube.edges[index]));\n centres && transforms.push(...centres.map(index => cube.centres[index]));\n typeof centre !== 'undefined' && transforms.push(cube.centres[centre]);\n const axisOrder = axisFlip ? -1 : 1;\n const extraMoves = moves && (\n moves.map(move => getMove(applyOrder(clone(move), order), cube))\n );\n\n // swap stickers / clean up move\n function apply() {\n extraMoves && extraMoves.forEach(move => move.apply());\n if (edges) {\n doCycle(cube.edges, order, edges, centres ? 'z' : axis);\n }\n if (centres) {\n doCycle(cube.centres, order, centres);\n }\n if (corners) {\n doCycle(cube.corners, order, corners, axis);\n }\n }\n\n return {\n apply,\n transforms,\n axis,\n source: { move, order },\n };\n}\n\nfunction getMoves(moves) {\n return splitMoves(moves).map(move => getMove(move, cube));\n}\n\nfunction splitMoves(str) {\n if (typeof str !== 'string') return str;\n return str.split(/(\\ww?\\d?'?)/).filter(d => d.trim());\n}\n\nfunction toObject(move) {\n if (typeof move !== 'string') return move;\n if (move[1] === 'w') move = `${move[0].toLowerCase()}${move.slice(2) || ''}`;\n return {\n move: move[0],\n order: {\n '\\'': -1,\n '2\\'': -2,\n '2': 2,\n }[move.slice(1)] || 1,\n };\n}\n\nfunction clone(move) {\n return Object.assign({}, move);\n}\n\nfunction applyOrder(move, order) {\n if (order === 1) return move;\n if (order === -1) {\n move.order = move.order === 2 ? 2 : -move.order;\n }\n if (order === 2) {\n move.order = move.order === 2 ? 0 : 2;\n }\n return move;\n}\n\n\nconst cornerSwaps = {\n x: [1, 2],\n y: [0, 2],\n z: [0, 1],\n};\n\nfunction doCycle(arr, order, cycle, axis) {\n if (order === 0) return;\n if (order === -1 || order === 3) {\n cycle = [...cycle].reverse();\n }\n if (order === 2 || order === -2) {\n doCycle(arr, 1, cycle, axis);\n }\n\n // cycles\n for (let i = 0; i < cycle.length - 1; i++) {\n swapPiece(arr, cycle[i], cycle[i + 1]);\n }\n\n // corner 'twists'\n if (arr[0].length === 3) {\n for (let i = 0; i < cycle.length; i++) {\n swapSticker(arr[cycle[i]], ...cornerSwaps[axis]);\n }\n }\n // edge flips\n else if (axis === 'z') {\n for (let i = 0; i < cycle.length; i++) {\n swapSticker(arr[cycle[i]], 0, 1);\n }\n }\n}\n\nfunction swapPiece(arr, first, second) {\n if (Array.isArray(arr[first])) {\n const tmpColors = arr[first].map(d => d.color);\n arr[first].forEach((sticker, i) => { sticker.color = arr[second][i].color; });\n arr[second].forEach((sticker, i) => { sticker.color = tmpColors[i]; });\n } else {\n swapSticker(arr, first, second)\n }\n}\n\nfunction swapSticker(arr, first, second) {\n const tmp = arr[first].color;\n arr[first].color = arr[second].color;\n arr[second].color = tmp;\n}\n\nfunction isSolved() {\n const { centres, edges, corners } = cube;\n const lookup = {};\n centres.forEach(({ color, axis, offset }) => {\n lookup[`${axis}|${offset}`] = color;\n });\n const pieces = edges.concat(corners);\n for (let i = 0; i < pieces.length; i++) {\n for (let j = 0; j < pieces[i].length; j++) {\n const { axis, offset, color } = pieces[i][j];\n if (color !== lookup[`${axis}|${offset}`]) {\n return false;\n }\n }\n }\n return true;\n}\n\n\n// IRC stuff\n\nconst { from } = IRC.message;\n\nfunction saveCube() {\n store.set(from, JSON.stringify(cube));\n}\n\nfunction loadCube() {\n const next = store.get(from);\n if (next) {\n Object.assign(cube, JSON.parse(next));\n }\n}\n\nfunction doMoves(moves) {\n getMoves(moves).forEach(move => move.apply());\n}\n\n// render\n\nconst colors = 'wbrgoy';\n\nfunction renderNormal(message = '') {\n function sticker(obj) {\n return colors[obj.color];\n }\n \n function crnr(x, y) {\n return sticker(cube.corners[x][y]);\n }\n \n \tfunction edge(x, y) {\n return sticker(cube.edges[x][y]);\n }\n \n function cntr(x) {\n return sticker(cube.centres[x]);\n }\n \n function two(x, y) {\n return `{${x},${y}}▀{/}`;\n }\n \n function full(x) {\n return two(x, x);\n }\n \n function down(x) {\n return `{${x}}▄{/}`;\n }\n \n function up(x) {\n return `{${x}}▀{/}`;\n }\n \n function hex(x,i) {\n return parseInt(x.charAt(i),16);\n }\n \n function parse(x) {\n switch (x.charAt(0)) {\n case 'c': return crnr(hex(x,1), hex(x,2));\n case 'e': return edge(hex(x,1), hex(x,2));\n case 't': return cntr(hex(x,1));\n }\n } \n \n function cell(s) {\n var a = s.split(\",\");\n switch(a[0]) {\n case 'u': return up(parse(a[1]));\n case 'd': return down(parse(a[1]));\n case '2': return two(parse(a[1]), parse(a[2]));\n case 'f': return full(parse(a[1]));\n }\n }\n \n function line(s) {\n return s.split(';').map(cell).join``;\n }\n\n print([\n \" \" + line(\"d,c31;f,c31;f,c31;d,e01;d,e01\") + ` ${message}`,\n \" \" + line(\"d,e31;f,e31;f,e31;2,c31,t0;2,e01,t0;f,e01;2,e01,c01;f,c01;f,c01;d,c00\"),\n line(\"d,c21;f,c21;f,c21;2,e31,e21;2,t0,e21;f,t0;2,t0,e11;f,e11;f,e11;2,c01,e10;f,c00;f,c00\"),\n line(\"f,c22;2,c21,c22;2,e21,e20;f,e21;2,e21,c11;f,c11;f,c11;2,e11,c10;f,e10;f,e10;2,c00,e40;f,e40\"),\n line(\"2,c22,e61;f,c22;f,e20;f,e20;f,c12;2,c11,c12;f,c10;f,c10;2,e10,t2;f,t2;f,e40;2,e40,c40\"),\n line(\"f,e61;f,e61;f,t3;2,e20,t3;2,c12,e51;f,c12;2,c10,e50;f,e50;f,t2;2,t2,e90;f,c40;f,c40\"),\n line(\"f,c62;2,e61,c62;2,t3,eA0;f,t3;f,e51;f,e51;f,e50;2,e50,c50;f,e90;f,e90;u,c40\"),\n line(\"u,c62;f,c62;f,eA0;f,eA0;f,c52;2,e51,c52;f,c50;f,c50;u,e90\"),\n \" \" + line(\"u,eA0;u,c52;f,c52;u,c50\"),\n ].join`\\n`)\n}\n\nfunction renderMini(message = '') {\n function sticker(obj) {\n return colors[obj.color]; \n }\n function crunch([l1, l2]) {\n return l1.map((d, i) => `{${d},${l2[i]}}▀{/}`).join``;\n }\n print([\n crunch([[sticker(cube.corners[3][0]),sticker(cube.corners[3][1]),sticker(cube.edges[0][1]),sticker(cube.corners[0][1]),sticker(cube.corners[0][0])],\n [sticker(cube.edges[3][0]),sticker(cube.edges[3][1]),sticker(cube.centres[0]),sticker(cube.edges[1][1]),sticker(cube.edges[1][0])]]) + ` ${message}`,\n crunch([[sticker(cube.corners[2][0]),sticker(cube.corners[2][1]),sticker(cube.edges[2][1]),sticker(cube.corners[1][1]),sticker(cube.corners[1][0])],\n [sticker(cube.corners[2][0]),sticker(cube.corners[2][2]),sticker(cube.edges[2][0]),sticker(cube.corners[1][2]),sticker(cube.corners[1][0])]]),\n crunch([[sticker(cube.edges[6][0]),sticker(cube.edges[6][1]),sticker(cube.centres[3]),sticker(cube.edges[5][1]),sticker(cube.edges[5][0])],\n [sticker(cube.corners[6][0]),sticker(cube.corners[6][2]),sticker(cube.edges[0xA][0]),sticker(cube.corners[5][2]),sticker(cube.corners[5][0])]]),\n ].join`\\n`)\n}\n\n\nfunction mini() {\n doMoves(input);\n renderMini();\n}\n\nfunction view(view) {\n if (!view) {\n throw `usage: ${IRC.colors.cmd('cube.view', 'mini|normal')}`;\n }\n store.set(`${from}:view`, view);\n print(`Size for ${from} set to ${view}`);\n}\n\nfunction render(message) {\n if (store.get(`${from}:view`) === 'mini') {\n renderMini(message);\n } else {\n renderNormal(message);\n }\n}\n\n// solving / scramble / timer\n\nconst scrambler = IRC.require('scramble');\n\nfunction scramble(type) {\n type = type.toUpperCase().trim();\n !['LL', 'LSE', 'TEST'].includes(type) && (type = '3x3');\n\n const scramble = {\n TEST: `RU`,\n LL: scrambler.getLLScramble(),\n LSE: `xy'` + scrambler.getLSEScramble() + ['', ' M2'][0|Math.random()*2],\n }[type] || (() => scrambler.getRandomScramble())();\n\n doMoves(scramble);\n\n store.save(`${from}:solve`, {\n moves: [],\n scrambleTime: +(new Date),\n startTime: undefined,\n endTime: undefined,\n scramble,\n type,\n });\n\n saveCube();\n render(`${type} scramble`);\n}\n\nconst { intervalToDuration } = require('date-fns@2.28.0');\n\nfunction apply(inputMoves) {\n loadCube();\n doMoves(inputMoves);\n saveCube();\n\n const state = store.load(`${from}:solve`, false);\n let message;\n if (state) {\n let { moves, startTime, ...other } = state;\n\n moves.push([+(new Date), inputMoves, IRC.message.text]);\n\n if (!startTime) {\n if (getMoves(inputMoves).some(move => !'xyz'.includes(move.source.move))) {\n // if there's a non inspection move\n startTime = +(new Date);\n message = 'timer started!';\n }\n }\n\n store.save(`${from}:solve`, {\n moves,\n startTime,\n ...other\n });\n\n\n if (isSolved()) {\n endTime = +(new Date);\n const duration = intervalToDuration({ start: new Date(startTime), end: new Date(endTime) });\n message = `solved in ${duration.minutes}:${duration.seconds}!`\n\n }\n// ~cube.solution joey\n// inspection time\n // scramble, solution\n // debug flag to see everything\n// notify of new pb / notify in channel\n\n }\n\n render(message);\n}\n\nif (IRC.command.path === 'cubetest2') {\n doMoves(input);\n render();\n} else {\n module.exports = { cube, scramble, render, apply, getMoves, doMoves, mini, view };\n}" +} \ No newline at end of file diff --git a/commands/eval-422a34ceba3b.json b/commands/eval-422a34ceba3b.json index 1655989..7d0f952 100644 --- a/commands/eval-422a34ceba3b.json +++ b/commands/eval-422a34ceba3b.json @@ -1,6 +1,6 @@ { "name": "eval", - "command": "const REPLS = 'bash gcc g++ ruby lua vim haskell guile racket smalltalk elixir rust perl python php lolcode vlang';\nconst JS_REPLS = 'mozjs node deno quickjs jsx babel';\n\nif (!module.required) {\n throw `usage: ${IRC.colors.cmd('[lang]', 'code')} valid repls are: ${REPLS} ${JS_REPLS}`;\n}\n\nmodule.exports = (lang, script) => {\n try { \n // kirjavascript/eval needs to be running on the same server\n // it only accepts local requests\n response(fetchSync(`http://localhost:8010/${lang}`, {\n method: 'POST',\n body: script.replace(/␤/g, '\\n'),\n }));\n } catch(e) {\n throw 'down for maintenance';\n }\n};\n\nmodule.exports.REPLS = REPLS;\nmodule.exports.JS_REPLS = JS_REPLS;\n\nfunction response(res) {\n let [status, output] = JSON.parse(res);\n output = output.trim().replace(/ +/g, ' ').replace(/\\r|\\n/g, \"␤\");\n output = output.slice(0, 390);\n // output = output.slice(output.length - 390);\n if (!output) output = '[no output]';\n const prompt = IRC.colors(`{${status?'c':'r'}}>{/}`);\n print.raw(`${prompt} ${IRC.colors(parseColors(output))}`);\n // if (IRC.message.from === 'Kirjava')\n // log(output)\n}\n\nfunction parseColors(output) {\n return output\n .replace(new RegExp('\\u001b\\\\[0m', 'g'), IRC.colors('{/}'))\n .replace(new RegExp('\\u001b\\\\[31m', 'g'), IRC.colors('{r}'))\n .replace(new RegExp('\\u001b\\\\[35m', 'g'), IRC.colors('{p}'))\n .replace(new RegExp('\\u001b\\\\[36m', 'g'), IRC.colors('{dc}'))\n .replace(new RegExp('\\u001b\\\\[38;5;11m', 'g'), IRC.colors('{y}'))\n .replace(new RegExp('\\u001b\\\\[38;5;14m', 'g'), IRC.colors('{c}'))\n // catchall\n .replace(new RegExp('\\u001b\\\\[(\\\\d+)m', 'g'), d => IRC.colors(IRC.colors.hash(d)))\n}", + "command": "const REPLS = 'bash gcc g++ ruby lua vim haskell guile racket smalltalk elixir rust perl python php lolcode vlang';\nconst JS_REPLS = 'mozjs node deno quickjs jsx babel';\n\nif (!module.required) {\n throw `usage: ${IRC.colors.cmd('[lang]', 'code')} valid repls are: ${REPLS} ${JS_REPLS}`;\n}\n\nmodule.exports = (lang, script) => {\n try { \n // kirjavascript/eval needs to be running on the same server\n // it only accepts local requests\n response(fetchSync(`http://localhost:8010/${lang}`, {\n method: 'POST',\n body: script.replace(/␤|_nl_/g, '\\n'),\n }));\n } catch(e) {\n throw 'down for maintenance';\n }\n};\n\nmodule.exports.REPLS = REPLS;\nmodule.exports.JS_REPLS = JS_REPLS;\n\nfunction response(res) {\n let [status, output] = JSON.parse(res);\n output = output.trim().replace(/ +/g, ' ').replace(/\\r|\\n/g, \"␤\");\n output = output.slice(0, 390);\n // output = output.slice(output.length - 390);\n if (!output) output = '[no output]';\n const prompt = IRC.colors(`{${status?'c':'r'}}>{/}`);\n print.raw(`${prompt} ${IRC.colors(parseColors(output))}`);\n // if (IRC.message.from === 'Kirjava')\n // log(output)\n}\n\nfunction parseColors(output) {\n return output\n .replace(new RegExp('\\u001b\\\\[0m', 'g'), IRC.colors('{/}'))\n .replace(new RegExp('\\u001b\\\\[31m', 'g'), IRC.colors('{r}'))\n .replace(new RegExp('\\u001b\\\\[35m', 'g'), IRC.colors('{p}'))\n .replace(new RegExp('\\u001b\\\\[36m', 'g'), IRC.colors('{dc}'))\n .replace(new RegExp('\\u001b\\\\[38;5;11m', 'g'), IRC.colors('{y}'))\n .replace(new RegExp('\\u001b\\\\[38;5;14m', 'g'), IRC.colors('{c}'))\n // catchall\n .replace(new RegExp('\\u001b\\\\[(\\\\d+)m', 'g'), d => IRC.colors(IRC.colors.hash(d)))\n}", "locked": true, "starred": true } \ No newline at end of file diff --git a/commands/eventfetchURL-798176d44de4.json b/commands/eventfetchURL-798176d44de4.json index beb5d2c..af6f7f8 100644 --- a/commands/eventfetchURL-798176d44de4.json +++ b/commands/eventfetchURL-798176d44de4.json @@ -3,5 +3,5 @@ "locked": true, "starred": true, "name": "event.fetchURL", - "command": "const { document, window } = new (jsdom().JSDOM)('');\nconst anchor = document.createElement('a');\nconst bytes = IRC.require('bytes');\n\nfunction setDOM(page) {\n document.open();\n document.write(page);\n document.close();\n};\n\nfunction domTitle() {\n const metaTitle = document.head.querySelector('meta[name=\"title\"]');\n return metaTitle ? metaTitle.content : document.title;\n}\n\nconst filterWords = /cloudflare|forbidden|not found|access restricted|access denied|your browser|rick roll|never gonna give you up|log in/i;\n\nfunction hasInfo(url, _title) {\n const title = _title.replace(/\\s+/g, ' ').trim();\n const isFresh = title.split(' ')\n .filter(word => (\n !(new RegExp(word.replace(/[^.a-zA-Z0-9\\u00c0-\\u017e]+/g, ''), 'i')).test(url)\n )).length >= 1;\n return isFresh;\n}\n\nIRC.listen('message', event => {\n if (!IRC.queryConfig('fetchURL', true)) return;\n const { text, from } = event.message;\n const urls = text.match(/(\\b(https?):\\/\\/[-A-Z0-9+&@#\\/%?=~_|!:,.;()]*[-A-Z0-9+&@#\\/%=~_|()])/ig);\n const fromSelf = from === IRC.nick;\n if (!urls || fromSelf || text.startsWith(IRC.trigger) || text.includes('##')) return;\n\n urls.slice(0, 3).forEach(url => {\n handleURL(url, global.print)\n //.catch(print.error);\n });\n});\n\nasync function handleURL(url, print) {\n anchor.setAttribute('href', url);\n if (await customURL(url, print)) return;\n\n const res = await fetch(url, {\n headers: {\n 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',\n 'Accept-Language': 'en-GB,en;q=0.5',\n 'Content-Language': 'en-GB,en;q=0.5',\n 'User-Agent': /youtu\\.?be|google|reddit/.test(url) ? '' : 'Googlebot',\n },\n });\n\n const length = res.headers.get('content-length');\n\n if (length > 5.243e6) {\n const filename = anchor.pathname.split('/').pop();\n print.info(`{dc}${filename}{/} ${bytes(length)} {dgr}${res.headers.get('content-type')}{/}`);\n return;\n }\n\n const page = await res.text();\n setDOM(page);\n\n const title = domTitle();\n\n if (\n title.length \n && title.length < 400 \n && !filterWords.test(title)\n && (IRC.queryConfig('fetchURLAll', false) || hasInfo(url, title))) {\n print.info(title);\n }\n\n}\n\nasync function customURL(url, print) {\n // https://github.com/mendel5/alternative-front-ends\n const { hostname, pathname } = anchor;\n if (hostname.includes('reddit.')) {\n const jsonURL = url.replace(/(\\/?)(\\?.*)?(#.*)?$/, '/.json');\n const json = await(await fetch(jsonURL)).json();\n const data = json?.[0]?.data?.children?.[0]?.data;\n if (data) {\n const info = `{c}${data.subreddit_name_prefixed}{/} {o}▲${data.score}{/} ${data.title}`;\n const url = data?.secure_media?.reddit_video?.fallback_url?.replace('?source=fallback', '') || data.url;\n if (data.selftext) {\n print(`${info} ${String(data.selftext).replace(/\\s+/g, ' ').slice(0, 300)}`);\n return true;\n } else if (url) {\n print(`${info} ${IRC.colors.link(url)}`);\n return true;\n }\n }\n return true; \n }\n if (hostname.includes('youtube.') || hostname === 'youtu.be') {\n try {\n const json = await (await fetch(`https://www.youtube.com/oembed?url=${encodeURI(url)}&format=json`)).json();\n const {\n title, author_name,\n } = json;\n print(`{r}YouTube{/} {c}${author_name}{/} ${title}`);\n return true;\n } catch (e) { }\n // url.match(/(?!v=|v\\/|\\.be\\/|watch\\/)([0-9a-z\\-_]{11})/i);\n }\n if (hostname.includes('github.')) {\n if (pathname.split('/').length === 3) {\n // it's a repo url\n const {\n description,\n html_url,\n name,\n stargazers_count,\n language,\n license, // { name }\n } = await (\n await fetch(`https://api.github.com/repos${pathname}`)\n ).json();\n\n print(`{gr}Github{/} ${description || name} ${IRC.colors.nick(language, false)} {y}★{/} {bo}${stargazers_count}{/} {dgr}${license ? license.name : ''}{/}`);\n return true;\n }\n } \n if (hostname.includes('instagram.')) {\n // https://git.sr.ht/~cadence/bibliogram-docs/tree/master/docs/Instances.md\n const id = pathname.match(/\\/([A-Za-z-0-9]{11})/);\n if (id) {\n const page = await (await fetch(`https://bibliogram.1d4.us/p/${id[1]}`)).text();\n setDOM(page);\n const text = document.querySelector('.structured-text').textContent;\n const name = document.querySelector('.name').textContent;\n const image = document.querySelector('.sized-image');\n\n let output = `{bo}Instagram{/} {c}${name}{/} ${text.replace(/\\s+/g, ' ')}`;\n print(output);\n }\n return true;\n }\n if (hostname.includes('twitter.')) {\n const id = pathname.match(/status\\/(\\d+)/);\n if (id) {\n const page = await (await fetch(`https://nitter.net/_/status/${id[1]}#m`)).text();\n setDOM(page);\n const maintweet = document.querySelector('.main-tweet');\n const name = maintweet.querySelector('.fullname').textContent;\n const user = maintweet.querySelector('.username').textContent;\n const image = maintweet.querySelector('.still-image img');\n const tweet = maintweet.querySelector('.tweet-content').textContent.replace(/\\s+/g, ' ');\n let output = `{bo}${name}{/} {c}${user}{/} ${tweet}`;\n if (image) {\n output += ' ' + IRC.colors.link(`https://nitter.net${image.getAttribute('src').replace(/%3Fname.+/, '')}`);\n }\n print(output);\n return true;\n }\n }\n // image detection AI\n if (['jpg', 'gif', 'jpeg', 'png'].some(d => url.includes(`.${d}`))) {\n const reqUrl = 'https://api.imagga.com/v2/tags?image_url='+encodeURI(url);\n const json = await (await fetch(reqUrl, {\n headers: { Authorization: 'Basic YWNjX2ZjOWJkMjE5ZGQ1NTVjZTpiYmE4MTU1MTUwM2M4N2IxMmJlZTg4YzY1ZmI2YmM0OA== ' }\n })).json();\n if (json.type === 'error') {\n \tjson.status.text;\n } else {\n const tags = json.result.tags.filter(tag => tag.confidence >= 70);\n \tif (tags.length) {\n \tprint('🖼️ 👀 '+tags.map(tag=>`{g}${tag.tag.en}{/}`).join(', '));\n \t} else if (json.result.tags.length) {\n \t\t//const [tag] = json.result.tags;\n //print(`Image may contain: {o}${tag.tag.en}{/} (${0|tag.confidence}% confidence)`);\n \t}\n }\n\n \treturn true;\n }\n}" + "command": "const { document, window } = new (jsdom().JSDOM)('');\nconst anchor = document.createElement('a');\nconst bytes = IRC.require('bytes');\n\nfunction setDOM(page) {\n document.open();\n document.write(page);\n document.close();\n};\n\nfunction domTitle() {\n const metaTitle = document.head.querySelector('meta[name=\"title\"]');\n return metaTitle ? metaTitle.content : document.title;\n}\n\nconst filterWords = /cloudflare|forbidden|not found|access restricted|access denied|your browser|rick roll|never gonna give you up|log in/i;\n\nfunction hasInfo(url, _title) {\n const title = _title.replace(/\\s+/g, ' ').trim();\n const isFresh = title.split(' ')\n .filter(word => (\n !(new RegExp(word.replace(/[^.a-zA-Z0-9\\u00c0-\\u017e]+/g, ''), 'i')).test(url)\n )).length >= 1;\n return isFresh;\n}\n\nIRC.listen('message', event => {\n if (!IRC.queryConfig('fetchURL', true)) return;\n const { text, from } = event.message;\n const urls = text.match(/(\\b(https?):\\/\\/[-A-Z0-9+&@#\\/%?=~_|!:,.;()]*[-A-Z0-9+&@#\\/%=~_|()])/ig);\n const fromSelf = from === IRC.nick;\n if (!urls || fromSelf || text.startsWith(IRC.trigger) || text.includes('##')) return;\n\n urls.slice(0, 3).forEach(url => {\n handleURL(url, global.print)\n //.catch(print.error);\n });\n});\n\nasync function handleURL(url, print) {\n anchor.setAttribute('href', url);\n if (await customURL(url, print)) return;\n\n const res = await fetch(url, {\n headers: {\n 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',\n 'Accept-Language': 'en-GB,en;q=0.5',\n 'Content-Language': 'en-GB,en;q=0.5',\n 'User-Agent': /youtu\\.?be|google|reddit/.test(url) ? '' : 'Googlebot',\n },\n });\n\n const length = res.headers.get('content-length');\n\n if (length > 5.243e6) {\n const filename = anchor.pathname.split('/').pop();\n print.info(`{dc}${filename}{/} ${bytes(length)} {dgr}${res.headers.get('content-type')}{/}`);\n return;\n }\n\n const page = await res.text();\n setDOM(page);\n\n const title = domTitle();\n\n if (\n title.length \n && title.length < 400 \n && !filterWords.test(title)\n && (IRC.queryConfig('fetchURLAll', false) || hasInfo(url, title))) {\n print.info(title);\n }\n\n}\n\nasync function customURL(url, print) {\n // https://github.com/mendel5/alternative-front-ends\n const { hostname, pathname } = anchor;\n if (hostname.includes('reddit.')) {\n const jsonURL = url.replace(/(\\/?)(\\?.*)?(#.*)?$/, '/.json');\n const json = await(await fetch(jsonURL)).json();\n const data = json?.[0]?.data?.children?.[0]?.data;\n if (data) {\n const info = `{c}${data.subreddit_name_prefixed}{/} {o}▲${data.score}{/} ${data.title}`;\n const url = data?.secure_media?.reddit_video?.fallback_url?.replace('?source=fallback', '') || data.url;\n if (data.selftext) {\n print(`${info} ${String(data.selftext).replace(/\\s+/g, ' ').slice(0, 300)}`);\n return true;\n } else if (url) {\n print(`${info} ${IRC.colors.link(url)}`);\n return true;\n }\n }\n return true; \n }\n if (hostname.includes('youtube.') || hostname === 'youtu.be') {\n try {\n const json = await (await fetch(`https://www.youtube.com/oembed?url=${encodeURI(url)}&format=json`)).json();\n const {\n title, author_name,\n } = json;\n print(`{r}YouTube{/} {c}${author_name}{/} ${title}`);\n return true;\n } catch (e) { }\n // url.match(/(?!v=|v\\/|\\.be\\/|watch\\/)([0-9a-z\\-_]{11})/i);\n }\n if (hostname.includes('github.')) {\n if (pathname.split('/').length === 3) {\n // it's a repo url\n const {\n description,\n html_url,\n name,\n stargazers_count,\n language,\n license, // { name }\n } = await (\n await fetch(`https://api.github.com/repos${pathname}`)\n ).json();\n\n print(`{gr}Github{/} ${description || name} ${IRC.colors.nick(language, false)} {y}★{/} {bo}${stargazers_count}{/} {dgr}${license ? license.name : ''}{/}`);\n return true;\n }\n } \n if (hostname.includes('instagram.')) {\n // https://git.sr.ht/~cadence/bibliogram-docs/tree/master/docs/Instances.md\n const id = pathname.match(/\\/([A-Za-z-0-9]{11})/);\n if (id) {\n const page = await (await fetch(`https://bibliogram.1d4.us/p/${id[1]}`)).text();\n setDOM(page);\n const text = document.querySelector('.structured-text').textContent;\n const name = document.querySelector('.name').textContent;\n const image = document.querySelector('.sized-image');\n\n let output = `{bo}Instagram{/} {c}${name}{/} ${text.replace(/\\s+/g, ' ')}`;\n print(output);\n }\n return true;\n }\n if (hostname.includes('twitter.')) {\n const id = pathname.match(/status\\/(\\d+)/);\n if (id) {\n const page = await (await fetch(`https://nitter.net/_/status/${id[1]}#m`)).text();\n setDOM(page);\n const maintweet = document.querySelector('.main-tweet');\n const name = maintweet.querySelector('.fullname').textContent;\n const user = maintweet.querySelector('.username').textContent;\n const image = maintweet.querySelector('.still-image img');\n //const card = maintweet.querySelector('.card-image img');\n const tweet = maintweet.querySelector('.tweet-content').textContent.replace(/\\s+/g, ' ');\n let output = `{bo}${name}{/} {c}${user}{/} ${tweet}`;\n if (image) {\n output += ' ' + IRC.colors.link(`https://nitter.net${image.getAttribute('src').replace(/%3Fname.+/, '')}`);\n }\n //if (card) {\n //output += ' ' + IRC.colors.link(`https://nitter.net${card.getAttribute('src')}`);\n //}\n print(output);\n return true;\n }\n }\n // image detection AI\n if (['jpg', 'gif', 'jpeg', 'png'].some(d => url.includes(`.${d}`))) {\n const reqUrl = 'https://api.imagga.com/v2/tags?image_url='+encodeURI(url);\n const json = await (await fetch(reqUrl, {\n headers: { Authorization: 'Basic YWNjX2ZjOWJkMjE5ZGQ1NTVjZTpiYmE4MTU1MTUwM2M4N2IxMmJlZTg4YzY1ZmI2YmM0OA== ' }\n })).json();\n if (json.type === 'error') {\n \tjson.status.text;\n } else {\n const tags = json.result.tags.filter(tag => tag.confidence >= 70);\n \tif (tags.length) {\n \tprint('🖼️ 👀 '+tags.map(tag=>`{g}${tag.tag.en}{/}`).join(', '));\n \t} else if (json.result.tags.length) {\n \t\t//const [tag] = json.result.tags;\n //print(`Image may contain: {o}${tag.tag.en}{/} (${0|tag.confidence}% confidence)`);\n \t}\n }\n\n \treturn true;\n }\n}" } \ No newline at end of file diff --git a/commands/logglobal-35fa4f742503.json b/commands/logglobal-35fa4f742503.json deleted file mode 100644 index c5206f1..0000000 --- a/commands/logglobal-35fa4f742503.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "name": "log.global", - "command": "const data = IRC.log.getGlobal(input, IRC.command.params[0] || 3, IRC.command.params[1] || 0);\n\n(data.map(({time, user, command, target, message}) => (\n IRC.colors(`({dc}{u}${time}{/}) {bo}<{/}${IRC.colors.hash(user)}${IRC.breakHighlight(user)}${command=='PRIVMSG'?'':':' + command.toLowerCase()}{/}{bo}>{/}`)\n + ` ${message.replace(/\\n/g, ' ')}`\n)).forEach(d => print.raw(d, {log: false})));", - "locked": false, - "starred": false -} \ No newline at end of file diff --git a/commands/plap-ce1785bfec5f.json b/commands/plap-ce1785bfec5f.json new file mode 100644 index 0000000..9bc19fc --- /dev/null +++ b/commands/plap-ce1785bfec5f.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "plap", + "command": "print(\"https://i.imgur.com/EEv9xr9.jpeg/")" +} \ No newline at end of file From 5c28633af1ce8b4dbdaf8a0bf65967ecadaa6f05 Mon Sep 17 00:00:00 2001 From: kirjavascript Date: Sat, 7 May 2022 15:02:53 +0200 Subject: [PATCH 34/94] added future memos --- commands/arewethereyet-1df560e50a4d.json | 7 +++++++ commands/bats-da819da85e52.json | 2 +- commands/bestegg-bf8629f96ff2.json | 2 +- commands/boris-7e61b2ef6dfd.json | 7 +++++++ commands/burgertime-93a59cc3b218.json | 7 +++++++ commands/compsnew-32e8de54d4c0.json | 2 +- commands/cow-1512e6e81553.json | 2 +- commands/dayssincegithubruinedtheui-1d21c2374d84.json | 2 +- commands/dn-a8461683cc86.json | 7 +++++++ commands/drug-8e550253454a.json | 2 +- commands/eval-422a34ceba3b.json | 2 +- commands/event-b306be3528b0.json | 2 +- commands/eventfetchURL-798176d44de4.json | 2 +- commands/eventmemo-84d5d58f85cc.json | 2 +- commands/eyup-486d03c1e91a.json | 2 +- commands/hornqui-6fc3e0216054.json | 2 +- commands/imagehost-0bd72503336f.json | 2 +- commands/isitfucked-f66bdafe0025.json | 7 +++++++ commands/istherefuel-6a18b04fa5e9.json | 2 +- commands/junkies-4c1e37a7ec92.json | 7 +++++++ commands/kirby-c1c053bcc05b.json | 2 +- commands/memo-9eb56acc7022.json | 2 +- commands/mywife-e9633ad1cfe9.json | 7 +++++++ commands/pepeloni-3aa7df32eb40.json | 2 +- commands/quitest-57945d35868f.json | 7 +++++++ commands/rember-bb92a4e9dee8.json | 7 +++++++ commands/sevenn-fed6a1b5229c.json | 2 +- commands/smashguide-f85346312721.json | 2 +- commands/trev-b1da92b6b94a.json | 7 +++++++ commands/trivsolver-d1db5e655815.json | 7 +++++++ commands/trump-41cb0817d86a.json | 2 +- commands/whendowegettothereyet-cde4957eddcc.json | 7 +++++++ commands/wimdy-0870693f01d7.json | 2 +- commands/yea-fd23a495dd7d.json | 7 +++++++ 34 files changed, 112 insertions(+), 21 deletions(-) create mode 100644 commands/arewethereyet-1df560e50a4d.json create mode 100644 commands/boris-7e61b2ef6dfd.json create mode 100644 commands/burgertime-93a59cc3b218.json create mode 100644 commands/dn-a8461683cc86.json create mode 100644 commands/isitfucked-f66bdafe0025.json create mode 100644 commands/junkies-4c1e37a7ec92.json create mode 100644 commands/mywife-e9633ad1cfe9.json create mode 100644 commands/quitest-57945d35868f.json create mode 100644 commands/rember-bb92a4e9dee8.json create mode 100644 commands/trev-b1da92b6b94a.json create mode 100644 commands/trivsolver-d1db5e655815.json create mode 100644 commands/whendowegettothereyet-cde4957eddcc.json create mode 100644 commands/yea-fd23a495dd7d.json diff --git a/commands/arewethereyet-1df560e50a4d.json b/commands/arewethereyet-1df560e50a4d.json new file mode 100644 index 0000000..961e7fb --- /dev/null +++ b/commands/arewethereyet-1df560e50a4d.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "arewethereyet", + "command": "print(\"no\")" +} \ No newline at end of file diff --git a/commands/bats-da819da85e52.json b/commands/bats-da819da85e52.json index 9d5a058..d9ce924 100644 --- a/commands/bats-da819da85e52.json +++ b/commands/bats-da819da85e52.json @@ -2,5 +2,5 @@ "locked": false, "starred": false, "name": "bats", - "command": "/*__TEXTCMD__*/print(`https://8bv.jow.moe/i/84efd1d265c89e875ee519f9f751fe55.gif`);" + "command": "/*__TEXTCMD__*/print(`https://i.imgur.com/clJgm6D.gif`);" } \ No newline at end of file diff --git a/commands/bestegg-bf8629f96ff2.json b/commands/bestegg-bf8629f96ff2.json index 2f8949e..1939d2d 100644 --- a/commands/bestegg-bf8629f96ff2.json +++ b/commands/bestegg-bf8629f96ff2.json @@ -1,6 +1,6 @@ { "name": "bestegg", - "command": "print(\"https://8bv.jow.moe/i/j7nA.jpg/");", + "command": "print(\"https://i.imgur.com/uB17cri.jpg/");", "locked": false, "starred": false } \ No newline at end of file diff --git a/commands/boris-7e61b2ef6dfd.json b/commands/boris-7e61b2ef6dfd.json new file mode 100644 index 0000000..4cf51be --- /dev/null +++ b/commands/boris-7e61b2ef6dfd.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "boris", + "command": "const imgs = [\n 'https://i.imgur.com/K59P85p.jpeg',\n 'https://i.imgur.com/M7P2I1q.jpeg',\n 'https://i.imgur.com/r3cso8k.jpeg',\n 'https://i.imgur.com/EndbZsH.jpeg',\n 'https://i.imgur.com/igCN6lE.png',\n 'https://i.imgur.com/bizSYPD.jpeg',\n 'https://i.imgur.com/zzDxHVf.jpeg',\n 'https://i.imgur.com/0Gky5w5.jpeg',\n 'https://i.imgur.com/qHKVTWw.jpeg',\n 'https://i.imgur.com/cbuTvjV.jpeg',\n 'https://i.imgur.com/1wTbWwP.jpeg',\n 'https://i.imgur.com/eg9Gmav.jpeg',\n 'https://i.imgur.com/3zFoeTZ.jpeg',\n 'https://i.imgur.com/H7e8AS6.jpeg',\n 'https://i.imgur.com/4lNBJxQ.jpeg',\n 'https://i.imgur.com/ztNj1ww.jpeg',\n 'https://i.imgur.com/ZrtPo71.jpeg',\n 'https://i.imgur.com/aHHXiyj.jpeg',\n 'https://i.imgur.com/SVkcFQS.jpeg',\n 'https://i.imgur.com/ulvuJnn.jpeg',\n 'https://i.imgur.com/DHq7IRZ.jpeg',\n 'https://i.imgur.com/FFVBpgA.jpeg',\n 'https://i.imgur.com/ANa70o7.png',\n 'https://i.imgur.com/QEBWT09.jpeg',\n 'https://i.imgur.com/xWDUvRw.png',\n 'https://i.imgur.com/gGzQjva.jpeg',\n 'https://i.imgur.com/sJdnRBV.jpeg',\n 'https://i.imgur.com/WBRa8oo.jpeg',\n 'https://i.imgur.com/guGCRVc.jpeg',\n 'https://i.imgur.com/4N15bFL.jpeg',\n 'https://i.imgur.com/z8avoY3.png',\n 'https://i.imgur.com/9WrrFsC.jpg',\n 'https://i.imgur.com/tvp9X7Q.jpeg',\n 'https://i.imgur.com/hNt8Yk9.jpeg',\n 'https://i.imgur.com/FZNzUf9.jpeg',\n 'https://i.imgur.com/s0aDlki.jpeg'\n]\n\nconst quotes = [\n 'Ping-pong was invented on the dining tables of England in the 19th century, and it was called Wiff-waff! And there, I think, you have the difference between us and the rest of the world. Other nations, the French, looked at a dining table and saw an opportunity to have dinner; we looked at it an saw an opportunity to play Wiff-waff.',\n 'We cannot turn our backs on Europe. We are part of Europe.',\n 'If we vote to Leave and take back control, all sorts of opportunities open up. Including doing new free trade deals around the world, restoring Britain\\'s seat on all sorts of international bodies, restoring health to our democracy and belief to our democracy.',\n 'As I write these words there are semi-naked women playing beach volleyball in the middle of the Horse Guards Parade immortalised by Canaletto. They are glistening like wet otters and the water is splashing off the brims of the spectators’ sou’westers',\n 'The Geiger counter of Olympo-mania is going to go zoink! off the scale! People are coming from around the world, and they\\'re seeing us, and they\\'re seeing the greatest country on Earth, aren\\'t they? There are some people who are coming from around the world who don\\'t yet know about all the preparations we\\'ve done to get London ready in the last seven years. I hear there\\'s a guy called Mitt Romney who wants to know whether we\\'re ready. Are we ready?',\n 'We seek cities because there are a greater range of girls at the bar, of reproductive choice. But above all, talented people seek cities for fame. They can’t get famous in the f***ing village.',\n 'It\\'s chicken feed. I don\\'t see why I shouldn\\'t knock off an article... if someone wants to pay me, then that\\'s their lookout.',\n 'Here we are in one of the most depressed downs in southern England, a place that is arguably too full of drugs, obesity, underachievement and Labour MPs.',\n 'I can hardly condemn UKIP as a bunch of boss-eyed, foam-flecked Euro hysterics, when I have been sometimes not far short of boss-eyed, foam-flecked hysteria myself.',\n 'I\\'m a rugby player, really, and I knew I was going to get to him, and when he was about two yards away I just put my head down. There was no malice. I was going for the ball with my head, which I understand is a legitimate move in soccer. ',\n 'It is said that the Queen has come to love the Commonwealth, partly because it supplies her with regular cheering crowds of flag-waving picaninnies; and one can imagine that Blair, twice victor abroad but enmired at home, is similarly seduced by foreign politeness. They say he is shortly off to the Congo. No doubt the AK47s will fall silent, and the pangas will stop their hacking of human flesh, and the tribal warriors will all break out in Watermelon smiles to see the big white chief touch down in his big white British taxpayer-funded bird.',\n 'For 10 years we in the Tory Party have become used to Papua New Guinea-style orgies of cannibalism and chief-killing.',\n 'I think I was once given cocaine but I sneezed so it didn\\'t go up my nose. In fact, it may have been icing sugar.',\n 'Voting Tory will cause your wife to have bigger breasts and increase your chances of owning a BMW M3.',\n 'My realistic chances of becoming Prime Minister are only slightly better than my chances of being decapitated by a frisbee, blinded by a champagne cork, locked in a disused fridge or reincarnated as a olive.',\n 'The President is a cross-eyed Texan warmonger, unelected, inarticulate, who epitomises the arrogance of American foreign policy.',\n 'Unlike the current occupant of the White House, he has no difficulty in orally extemporising a series of grammatical English sentences, each containing a main verb.',\n 'This is going to be a fantastic year for Great Britain',\n 'It is absolutely ridiculous that people should choose to go around looking like letter boxes. I feel fully entitled to expect Muslim women to remove the head covering, especially if they turn up looking like a bank robber',\n 'The best fate for Africa would be if the old colonial powers, or their citizens, scrambled once again in her direction; on the understanding that this time they will not be asked to feel guilty..the problem is not that we were once in charge, but that we are not in charge any more.',\n 'The idea that freedom of movement is a fundamental right of the EU is just bollocks.',\n 'My speaking style was criticised by no less an authority than Arnold Schwarzenegger. It was a low moment, my friends, to have my rhetorical skills denounced by a monosyllabic Austrian cyborg.',\n 'If gay marriage was OK ... then I saw no reason in principle why a union should not be consecrated between three men, as well as two men; or indeed three men and a dog.',\n 'I dont see why people are so snooty about Channel Five. It has some respectable documentaries about the Second World War. It also devotes considerable airtime to investigations into lap-dancing, and other related and vital subjects',\n 'My policy on cake is pro having it and pro eating it.',\n 'London is a fantastic creator of jobs - but many of these jobs are going to people who don\\'t originate in this country.',\n 'He is like some sherry-crazed old dowager who has lost the family silver at roulette, and who now decides to double up by betting the house as well.'\n]\n\nprint(`${imgs[Math.floor(Math.random()*imgs.length)]}`)\nprint(`{i}“${quotes[Math.floor(Math.random()*quotes.length)]}”`)" +} \ No newline at end of file diff --git a/commands/burgertime-93a59cc3b218.json b/commands/burgertime-93a59cc3b218.json new file mode 100644 index 0000000..ee90b77 --- /dev/null +++ b/commands/burgertime-93a59cc3b218.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "burgertime", + "command": "/*__TEXTCMD__*/print(`https://i.imgur.com/juCGdru.png`);" +} \ No newline at end of file diff --git a/commands/compsnew-32e8de54d4c0.json b/commands/compsnew-32e8de54d4c0.json index 2985a09..f31ea9e 100644 --- a/commands/compsnew-32e8de54d4c0.json +++ b/commands/compsnew-32e8de54d4c0.json @@ -2,5 +2,5 @@ "locked": false, "starred": false, "name": "comps.new", - "command": "const date = new Date().toISOString();\n// Check for comps up to 5 Days ago (that are new)\nconst dateMinus5 = new Date()\ndateMinus5.setDate(dateMinus5.getDate() - 5)\nconst data = fetchSync(\"https://www.worldcubeassociation.org/api/v0/competitions?q=&announced_after=\"+dateMinus5.toISOString(),{\"type\":\"json\"})\n\nif (data){\n const comps = data.filter( comp => new Date(comp[\"announced_at\"]) > new Date(store.get(\"last\")))\n if(comps.length != 0){\n print(`Announcements for ${date}:`)\n for(let i = 0; i < comps.length; i++){\n const comp = comps[i]\n print(`Announced {y}${comp.name}{/} in {o}${comp.city}, ${comp.country_iso2}{/}. {g}${comp.start_date} to ${comp.end_date}{/}.`)\n }\n }else{\n print(\"No newly announced Comps since last run :(\")\n }\n}else{\n print(\"Can't connect to the WCA API\")\n}\nstore.set(\"last\",date)" + "command": "const date = new Date().toISOString();\n// Check for comps up to 5 Days ago (that are new)\nconst dateMinus5 = new Date()\ndateMinus5.setDate(dateMinus5.getDate() - 2)\nconst data = fetchSync(\"https://www.worldcubeassociation.org/api/v0/competitions?q=&announced_after=\"+dateMinus5.toISOString(),{\"type\":\"json\"})\n\nif (data){\n const comps = data\n if(comps.length != 0){\n print(`Announcements for ${date}:`)\n for(let i = 0; i < comps.length; i++){\n const comp = comps[i]\n print(`Announced {y,bl}${comp.name}{/} in {o,bl}${comp.city}, ${comp.country_iso2}{/}. {g,bl}${comp.start_date} to ${comp.end_date}{/}.`)\n }\n }else{\n print(\"No newly announced Comps since last run :(\")\n }\n}else{\n print(\"Can't connect to the WCA API\")\n}\nstore.set(\"last\",date)" } \ No newline at end of file diff --git a/commands/cow-1512e6e81553.json b/commands/cow-1512e6e81553.json index 8cbc7b4..8ff6f49 100644 --- a/commands/cow-1512e6e81553.json +++ b/commands/cow-1512e6e81553.json @@ -2,5 +2,5 @@ "locked": false, "starred": false, "name": "cow", - "command": "print.raw('https://8bv.jow.moe/i/oVRA.png')" + "command": "print.raw('https://i.imgur.com/NKnCnUy.png')" } \ No newline at end of file diff --git a/commands/dayssincegithubruinedtheui-1d21c2374d84.json b/commands/dayssincegithubruinedtheui-1d21c2374d84.json index b770302..2d19c9d 100644 --- a/commands/dayssincegithubruinedtheui-1d21c2374d84.json +++ b/commands/dayssincegithubruinedtheui-1d21c2374d84.json @@ -2,5 +2,5 @@ "locked": false, "starred": false, "name": "dayssincegithubruinedtheui", - "command": "const dateFns = require('date-fns@1.30.1');n=dateFns.differenceInDays(new Date(), new Date('2020-06-23T19:04:15.522Z'));\nn=`${n} day${n==1?'':'s'}`\nm=dateFns.differenceInDays(new Date(), new Date('2022-02-13T16:43:15.522Z')); \nm=`${m} day${m==1?'':'s'}`\n\nprint(`initially: ${n}, most recently: ${m}`)" + "command": "const dateFns = require('date-fns@1.30.1');n=dateFns.differenceInDays(new Date(), new Date('2020-06-23T19:04:15.522Z'));\nn=`${n} day${n==1?'':'s'}`\nm=dateFns.differenceInDays(new Date(), new Date('2022-04-23T16:43:15.522Z')); \nm=`${m} day${m==1?'':'s'}`\n\nprint(`initially: ${n}, most recently: ${m}`)" } \ No newline at end of file diff --git a/commands/dn-a8461683cc86.json b/commands/dn-a8461683cc86.json new file mode 100644 index 0000000..fdada4f --- /dev/null +++ b/commands/dn-a8461683cc86.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "dn", + "command": "" +} \ No newline at end of file diff --git a/commands/drug-8e550253454a.json b/commands/drug-8e550253454a.json index 64765da..9023b28 100644 --- a/commands/drug-8e550253454a.json +++ b/commands/drug-8e550253454a.json @@ -1,6 +1,6 @@ { "name": "drug", - "command": "getJSON(\"http://tripbot.tripsit.me/api/tripsit/getDrug?name=\" + encodeURIComponent(input))\n .then(obj => {\n if (obj.err == null && obj.data) {\n \n var data = obj.data[0];\n \n var resp = '{p}' + data.pretty_name + '{/}';\n \n data.aliases && \" - (\" + data.aliases.map(d => `{dc}${d}{/}`).join(\", \") + \")\";\n \n data.properties.categories && (resp += \" - {o}\" + data.properties.categories.join(\"{/}, {o}\") + \"{/}\")\n \n resp += \"\\n\";\n \n data.properties.dose && (resp += data.properties.dose + \"\\n\");\n \n if (data.properties.onset && data.properties.duration && data.properties[\"after-effects\"]) {\n resp += \"onset: \" + data.properties.onset +\n \"\\nduration: \" + data.properties.duration +\n \" after effects: \" + data.properties[\"after-effects\"] + \"\\n\";\n }\n \n data.properties.summary && (resp += data.properties.summary);\n \n print(resp.trim());\n }\n else {\n print('{r}' + obj.data[0].msg)\n }\n\n })\n .catch(d => print('{r} no data for'+input))", + "command": "throw `todo: fixme`\n\ngetJSON(\"http://tripbot.tripsit.me/api/tripsit/getDrug?name=\" + encodeURIComponent(input))\n .then(obj => {\n if (obj.err == null && obj.data) {\n \n var data = obj.data[0];\n \n var resp = '{p}' + data.pretty_name + '{/}';\n \n data.aliases && \" - (\" + data.aliases.map(d => `{dc}${d}{/}`).join(\", \") + \")\";\n \n data.properties.categories && (resp += \" - {o}\" + data.properties.categories.join(\"{/}, {o}\") + \"{/}\")\n \n resp += \"\\n\";\n \n data.properties.dose && (resp += data.properties.dose + \"\\n\");\n \n if (data.properties.onset && data.properties.duration && data.properties[\"after-effects\"]) {\n resp += \"onset: \" + data.properties.onset +\n \"\\nduration: \" + data.properties.duration +\n \" after effects: \" + data.properties[\"after-effects\"] + \"\\n\";\n }\n \n data.properties.summary && (resp += data.properties.summary);\n \n print(resp.trim());\n }\n else {\n print('{r}' + obj.data[0].msg)\n }\n\n })\n .catch(d => print('{r} no data for'+input))", "locked": true, "starred": true } \ No newline at end of file diff --git a/commands/eval-422a34ceba3b.json b/commands/eval-422a34ceba3b.json index 7d0f952..eb8e054 100644 --- a/commands/eval-422a34ceba3b.json +++ b/commands/eval-422a34ceba3b.json @@ -1,6 +1,6 @@ { "name": "eval", - "command": "const REPLS = 'bash gcc g++ ruby lua vim haskell guile racket smalltalk elixir rust perl python php lolcode vlang';\nconst JS_REPLS = 'mozjs node deno quickjs jsx babel';\n\nif (!module.required) {\n throw `usage: ${IRC.colors.cmd('[lang]', 'code')} valid repls are: ${REPLS} ${JS_REPLS}`;\n}\n\nmodule.exports = (lang, script) => {\n try { \n // kirjavascript/eval needs to be running on the same server\n // it only accepts local requests\n response(fetchSync(`http://localhost:8010/${lang}`, {\n method: 'POST',\n body: script.replace(/␤|_nl_/g, '\\n'),\n }));\n } catch(e) {\n throw 'down for maintenance';\n }\n};\n\nmodule.exports.REPLS = REPLS;\nmodule.exports.JS_REPLS = JS_REPLS;\n\nfunction response(res) {\n let [status, output] = JSON.parse(res);\n output = output.trim().replace(/ +/g, ' ').replace(/\\r|\\n/g, \"␤\");\n output = output.slice(0, 390);\n // output = output.slice(output.length - 390);\n if (!output) output = '[no output]';\n const prompt = IRC.colors(`{${status?'c':'r'}}>{/}`);\n print.raw(`${prompt} ${IRC.colors(parseColors(output))}`);\n // if (IRC.message.from === 'Kirjava')\n // log(output)\n}\n\nfunction parseColors(output) {\n return output\n .replace(new RegExp('\\u001b\\\\[0m', 'g'), IRC.colors('{/}'))\n .replace(new RegExp('\\u001b\\\\[31m', 'g'), IRC.colors('{r}'))\n .replace(new RegExp('\\u001b\\\\[35m', 'g'), IRC.colors('{p}'))\n .replace(new RegExp('\\u001b\\\\[36m', 'g'), IRC.colors('{dc}'))\n .replace(new RegExp('\\u001b\\\\[38;5;11m', 'g'), IRC.colors('{y}'))\n .replace(new RegExp('\\u001b\\\\[38;5;14m', 'g'), IRC.colors('{c}'))\n // catchall\n .replace(new RegExp('\\u001b\\\\[(\\\\d+)m', 'g'), d => IRC.colors(IRC.colors.hash(d)))\n}", + "command": "const REPLS = 'bash gcc g++ ruby lua vim haskell guile racket smalltalk elixir rust perl python php lolcode vlang';\nconst JS_REPLS = 'mozjs node deno quickjs jsx babel';\n\nif (!module.required) {\n throw `usage: ${IRC.colors.cmd('[lang]', 'code')} valid repls are: ${REPLS} ${JS_REPLS}`;\n}\n\nmodule.exports = (lang, script) => {\n try { \n // kirjavascript/eval needs to be running on the same server\n // it only accepts local requests\n response(fetchSync(`http://localhost:8010/${lang}`, {\n method: 'POST',\n body: script.replace(/␤|_nl_|##/g, '\\n'),\n }));\n } catch(e) {\n throw 'down for maintenance';\n }\n};\n\nmodule.exports.REPLS = REPLS;\nmodule.exports.JS_REPLS = JS_REPLS;\n\nfunction response(res) {\n let [status, output] = JSON.parse(res);\n output = output.trim().replace(/ +/g, ' ').replace(/\\r|\\n/g, \"␤\");\n output = output.slice(0, 390);\n // output = output.slice(output.length - 390);\n if (!output) output = '[no output]';\n const prompt = IRC.colors(`{${status?'c':'r'}}>{/}`);\n print.raw(`${prompt} ${IRC.colors(parseColors(output))}`);\n // if (IRC.message.from === 'Kirjava')\n // log(output)\n}\n\nfunction parseColors(output) {\n return output\n .replace(new RegExp('\\u001b\\\\[0m', 'g'), IRC.colors('{/}'))\n .replace(new RegExp('\\u001b\\\\[31m', 'g'), IRC.colors('{r}'))\n .replace(new RegExp('\\u001b\\\\[35m', 'g'), IRC.colors('{p}'))\n .replace(new RegExp('\\u001b\\\\[36m', 'g'), IRC.colors('{dc}'))\n .replace(new RegExp('\\u001b\\\\[38;5;11m', 'g'), IRC.colors('{y}'))\n .replace(new RegExp('\\u001b\\\\[38;5;14m', 'g'), IRC.colors('{c}'))\n // catchall\n .replace(new RegExp('\\u001b\\\\[(\\\\d+)m', 'g'), d => IRC.colors(IRC.colors.hash(d)))\n}", "locked": true, "starred": true } \ No newline at end of file diff --git a/commands/event-b306be3528b0.json b/commands/event-b306be3528b0.json index b911815..b2383e6 100644 --- a/commands/event-b306be3528b0.json +++ b/commands/event-b306be3528b0.json @@ -3,5 +3,5 @@ "locked": true, "starred": true, "name": "event", - "command": "// Auth example;\n//\n// curl -X POST --data-binary '{\"passcode\":\"demo\"}' -H \"Content-Type: application/json\" http://localhost:8888/api/webhook/test\n\n// const tripcode = require('tripcode');\n\n// IRC.listen('webhook.test', event => {\n// const authed = tripcode(event.body.passcode) === IRC.queryConfig('testCode');\n// print(authed ? 'pass' : 'fail');\n// });\n\nIRC.listen('message', event => {\n if (event.message.text.includes(IRC.nick + ':') && event.message.text.endsWith('?')) {\n print('{g}' + IRC.require('r8ball')());\n }\n});\n\nIRC.listen('tick', () => (\n (new Date).toISOString().slice(5,19)\n \t=== '01-01T00:00:00'\n \t&& print('(*⌒∇⌒*) //// 🎉 {rb}happy new year')\n));\n\nconst faces = [ '(◕ᴗ◕✿)', '(◕◡◕✿)', '(◔◡◔✿)', '(。◕‿◕。✿)', '(◡‿◡✿)', '(◠‿◠✿)', '(◕ܫ◕✿)', '(◕▿◕✿)', '(◕ ワ ◕✿)' ];\nIRC.listen('message', ({ message: { from, text } }) => {\n if (text.includes('❤')) {\n print(' '.repeat(text.indexOf('❤')) + ' ⟍' +faces[0|Math.random()*faces.length]);\n }\n});\n\nIRC.listen('message', (event) => {\n if (event.target === '#8bitvape'){\n \tif (event.message.text.includes('donk')) print('donk'); \n \telse if (event.message.text.includes('dongers')) print(\"{p}ヽ༼ຈل͜ຈ༽ノ {r}raise your dongers {p}ヽ༼ຈل͜ຈ༽ノ\") \n else if (/\\bi\\b/i.test(event.message.text) && (0|Math.random()*100)===0) (input='',IRC.require('command.random'));\n } \n});\n\nIRC.listen('message', (event) => {\n if (event.message.from.toLowerCase() === 'lambdacomplex' && /\\begg\\b/.test(event.message.text))\n IRC.require('evilegg');\n});\n\n\nconst daily = () => 25200 === (0|new Date/1000)%86400;\n\nconst hourly = () => 420 === (0|new Date/1000)%3600;\n\nIRC.listen('tick', ({ target }) => {\n if (target === '#8bitvape') {\n \tif (daily()) IRC.require('7');\n else if (hourly()) print((s=[...'⁷₇⅐⅞⑦⑺⒎㋆㍟㏦7𝟕𝟟𝟩𝟳𝟽🄈🯷'],s[0|Math.random()*s.length]));\n }\n});\n\nIRC.listen('tick', ({ target }) => {\n if (target === '#eggchan' && daily()) {\n print('egg');\n }\n});" + "command": "// Auth example;\n//\n// curl -X POST --data-binary '{\"passcode\":\"demo\"}' -H \"Content-Type: application/json\" http://localhost:8888/api/webhook/test\n\n// const tripcode = require('tripcode');\n\n// IRC.listen('webhook.test', event => {\n// const authed = tripcode(event.body.passcode) === IRC.queryConfig('testCode');\n// print(authed ? 'pass' : 'fail');\n// });\n\nIRC.listen('message', event => {\n if (event.message.text.includes(IRC.nick + ':') && event.message.text.endsWith('?')) {\n print('{g}' + IRC.require('r8ball')());\n }\n});\n\nIRC.listen('tick', () => (\n (new Date).toISOString().slice(5,19)\n \t=== '01-01T00:00:00'\n \t&& print('(*⌒∇⌒*) //// 🎉 {rb}happy new year')\n));\n\nconst faces = [ '(◕ᴗ◕✿)', '(◕◡◕✿)', '(◔◡◔✿)', '(。◕‿◕。✿)', '(◡‿◡✿)', '(◠‿◠✿)', '(◕ܫ◕✿)', '(◕▿◕✿)', '(◕ ワ ◕✿)' ];\nIRC.listen('message', ({ message: { from, text } }) => {\n if (text.includes('❤')) {\n print(' '.repeat(text.indexOf('❤')) + ' ⟍' +faces[0|Math.random()*faces.length]);\n }\n});\n\n\nIRC.listen('message', (event) => {\n if (event.target === '#8bitvape'){\n \tif (event.message.text.includes('donk')) print('donk'); \n \telse if (event.message.text.includes('dongers')) print(\"{p}ヽ༼ຈل͜ຈ༽ノ {r}raise your dongers {p}ヽ༼ຈل͜ຈ༽ノ\") \n else if (/\\bi\\b/i.test(event.message.text) && (0|Math.random()*100)===0) (input='',IRC.require('command.random'));\n } \n});\n\nIRC.listen('message', (event) => {\n if (event.message.from.toLowerCase() === 'lambdacomplex' && /\\begg\\b/.test(event.message.text))\n IRC.require('evilegg');\n});\n\n\nconst daily = () => 25200 === (0|new Date/1000)%86400;\n\nconst hourly = () => 420 === (0|new Date/1000)%3600;\n\nIRC.listen('tick', ({ target }) => {\n if (target === '#rubik' && daily()) {\n IRC.require('comps.new');\n }\n});\n\nIRC.listen('tick', ({ target }) => {\n if (target === '#8bitvape') {\n \tif (daily()) IRC.require('7');\n else if (hourly()) print((s=[...'⁷₇⅐⅞⑦⑺⒎㋆㍟㏦7𝟕𝟟𝟩𝟳𝟽🄈🯷'],s[0|Math.random()*s.length]));\n }\n});\n\nIRC.listen('tick', ({ target }) => {\n if (target === '#eggchan' && daily()) {\n print('egg');\n }\n});" } \ No newline at end of file diff --git a/commands/eventfetchURL-798176d44de4.json b/commands/eventfetchURL-798176d44de4.json index af6f7f8..9dd1e82 100644 --- a/commands/eventfetchURL-798176d44de4.json +++ b/commands/eventfetchURL-798176d44de4.json @@ -3,5 +3,5 @@ "locked": true, "starred": true, "name": "event.fetchURL", - "command": "const { document, window } = new (jsdom().JSDOM)('');\nconst anchor = document.createElement('a');\nconst bytes = IRC.require('bytes');\n\nfunction setDOM(page) {\n document.open();\n document.write(page);\n document.close();\n};\n\nfunction domTitle() {\n const metaTitle = document.head.querySelector('meta[name=\"title\"]');\n return metaTitle ? metaTitle.content : document.title;\n}\n\nconst filterWords = /cloudflare|forbidden|not found|access restricted|access denied|your browser|rick roll|never gonna give you up|log in/i;\n\nfunction hasInfo(url, _title) {\n const title = _title.replace(/\\s+/g, ' ').trim();\n const isFresh = title.split(' ')\n .filter(word => (\n !(new RegExp(word.replace(/[^.a-zA-Z0-9\\u00c0-\\u017e]+/g, ''), 'i')).test(url)\n )).length >= 1;\n return isFresh;\n}\n\nIRC.listen('message', event => {\n if (!IRC.queryConfig('fetchURL', true)) return;\n const { text, from } = event.message;\n const urls = text.match(/(\\b(https?):\\/\\/[-A-Z0-9+&@#\\/%?=~_|!:,.;()]*[-A-Z0-9+&@#\\/%=~_|()])/ig);\n const fromSelf = from === IRC.nick;\n if (!urls || fromSelf || text.startsWith(IRC.trigger) || text.includes('##')) return;\n\n urls.slice(0, 3).forEach(url => {\n handleURL(url, global.print)\n //.catch(print.error);\n });\n});\n\nasync function handleURL(url, print) {\n anchor.setAttribute('href', url);\n if (await customURL(url, print)) return;\n\n const res = await fetch(url, {\n headers: {\n 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',\n 'Accept-Language': 'en-GB,en;q=0.5',\n 'Content-Language': 'en-GB,en;q=0.5',\n 'User-Agent': /youtu\\.?be|google|reddit/.test(url) ? '' : 'Googlebot',\n },\n });\n\n const length = res.headers.get('content-length');\n\n if (length > 5.243e6) {\n const filename = anchor.pathname.split('/').pop();\n print.info(`{dc}${filename}{/} ${bytes(length)} {dgr}${res.headers.get('content-type')}{/}`);\n return;\n }\n\n const page = await res.text();\n setDOM(page);\n\n const title = domTitle();\n\n if (\n title.length \n && title.length < 400 \n && !filterWords.test(title)\n && (IRC.queryConfig('fetchURLAll', false) || hasInfo(url, title))) {\n print.info(title);\n }\n\n}\n\nasync function customURL(url, print) {\n // https://github.com/mendel5/alternative-front-ends\n const { hostname, pathname } = anchor;\n if (hostname.includes('reddit.')) {\n const jsonURL = url.replace(/(\\/?)(\\?.*)?(#.*)?$/, '/.json');\n const json = await(await fetch(jsonURL)).json();\n const data = json?.[0]?.data?.children?.[0]?.data;\n if (data) {\n const info = `{c}${data.subreddit_name_prefixed}{/} {o}▲${data.score}{/} ${data.title}`;\n const url = data?.secure_media?.reddit_video?.fallback_url?.replace('?source=fallback', '') || data.url;\n if (data.selftext) {\n print(`${info} ${String(data.selftext).replace(/\\s+/g, ' ').slice(0, 300)}`);\n return true;\n } else if (url) {\n print(`${info} ${IRC.colors.link(url)}`);\n return true;\n }\n }\n return true; \n }\n if (hostname.includes('youtube.') || hostname === 'youtu.be') {\n try {\n const json = await (await fetch(`https://www.youtube.com/oembed?url=${encodeURI(url)}&format=json`)).json();\n const {\n title, author_name,\n } = json;\n print(`{r}YouTube{/} {c}${author_name}{/} ${title}`);\n return true;\n } catch (e) { }\n // url.match(/(?!v=|v\\/|\\.be\\/|watch\\/)([0-9a-z\\-_]{11})/i);\n }\n if (hostname.includes('github.')) {\n if (pathname.split('/').length === 3) {\n // it's a repo url\n const {\n description,\n html_url,\n name,\n stargazers_count,\n language,\n license, // { name }\n } = await (\n await fetch(`https://api.github.com/repos${pathname}`)\n ).json();\n\n print(`{gr}Github{/} ${description || name} ${IRC.colors.nick(language, false)} {y}★{/} {bo}${stargazers_count}{/} {dgr}${license ? license.name : ''}{/}`);\n return true;\n }\n } \n if (hostname.includes('instagram.')) {\n // https://git.sr.ht/~cadence/bibliogram-docs/tree/master/docs/Instances.md\n const id = pathname.match(/\\/([A-Za-z-0-9]{11})/);\n if (id) {\n const page = await (await fetch(`https://bibliogram.1d4.us/p/${id[1]}`)).text();\n setDOM(page);\n const text = document.querySelector('.structured-text').textContent;\n const name = document.querySelector('.name').textContent;\n const image = document.querySelector('.sized-image');\n\n let output = `{bo}Instagram{/} {c}${name}{/} ${text.replace(/\\s+/g, ' ')}`;\n print(output);\n }\n return true;\n }\n if (hostname.includes('twitter.')) {\n const id = pathname.match(/status\\/(\\d+)/);\n if (id) {\n const page = await (await fetch(`https://nitter.net/_/status/${id[1]}#m`)).text();\n setDOM(page);\n const maintweet = document.querySelector('.main-tweet');\n const name = maintweet.querySelector('.fullname').textContent;\n const user = maintweet.querySelector('.username').textContent;\n const image = maintweet.querySelector('.still-image img');\n //const card = maintweet.querySelector('.card-image img');\n const tweet = maintweet.querySelector('.tweet-content').textContent.replace(/\\s+/g, ' ');\n let output = `{bo}${name}{/} {c}${user}{/} ${tweet}`;\n if (image) {\n output += ' ' + IRC.colors.link(`https://nitter.net${image.getAttribute('src').replace(/%3Fname.+/, '')}`);\n }\n //if (card) {\n //output += ' ' + IRC.colors.link(`https://nitter.net${card.getAttribute('src')}`);\n //}\n print(output);\n return true;\n }\n }\n // image detection AI\n if (['jpg', 'gif', 'jpeg', 'png'].some(d => url.includes(`.${d}`))) {\n const reqUrl = 'https://api.imagga.com/v2/tags?image_url='+encodeURI(url);\n const json = await (await fetch(reqUrl, {\n headers: { Authorization: 'Basic YWNjX2ZjOWJkMjE5ZGQ1NTVjZTpiYmE4MTU1MTUwM2M4N2IxMmJlZTg4YzY1ZmI2YmM0OA== ' }\n })).json();\n if (json.type === 'error') {\n \tjson.status.text;\n } else {\n const tags = json.result.tags.filter(tag => tag.confidence >= 70);\n \tif (tags.length) {\n \tprint('🖼️ 👀 '+tags.map(tag=>`{g}${tag.tag.en}{/}`).join(', '));\n \t} else if (json.result.tags.length) {\n \t\t//const [tag] = json.result.tags;\n //print(`Image may contain: {o}${tag.tag.en}{/} (${0|tag.confidence}% confidence)`);\n \t}\n }\n\n \treturn true;\n }\n}" + "command": "const { document, window } = new (jsdom().JSDOM)('');\nconst anchor = document.createElement('a');\nconst bytes = IRC.require('bytes');\n\nfunction setDOM(page) {\n document.open();\n document.write(page);\n document.close();\n};\n\nfunction domTitle() {\n const metaTitle = document.head.querySelector('meta[name=\"title\"]');\n return metaTitle ? metaTitle.content : document.title;\n}\n\nconst filterWords = /something went wrong|cloudflare|forbidden|not found|access restricted|access denied|your browser|rick roll|never gonna give you up|log in/i;\n\nfunction hasInfo(url, _title) {\n const title = _title.replace(/\\s+/g, ' ').trim();\n const isFresh = title.split(' ')\n .filter(word => (\n !(new RegExp(word.replace(/[^.a-zA-Z0-9\\u00c0-\\u017e]+/g, ''), 'i')).test(url)\n )).length >= 1;\n return isFresh;\n}\n\nIRC.listen('message', event => {\n if (!IRC.queryConfig('fetchURL', true)) return;\n const { text, from } = event.message;\n const urls = text.match(/(\\b(https?):\\/\\/[-A-Z0-9+&@#\\/%?=~_|!:,.;()]*[-A-Z0-9+&@#\\/%=~_|()])/ig);\n const fromSelf = from === IRC.nick;\n if (!urls || fromSelf || text.startsWith(IRC.trigger) || text.includes('##')) return;\n\n urls.slice(0, 3).forEach(url => {\n handleURL(url, global.print)\n // .catch(print.error);\n });\n});\n\nasync function handleURL(url, print) {\n anchor.setAttribute('href', url);\n if (await customURL(url, print)) return;\n\n const res = await fetch(url, {\n headers: {\n 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',\n 'Accept-Language': 'en-GB,en;q=0.5',\n 'Content-Language': 'en-GB,en;q=0.5',\n 'User-Agent': /youtu\\.?be|google|reddit/.test(url) ? '' : 'Googlebot',\n },\n });\n\n const length = res.headers.get('content-length');\n\n if (length > 5.243e6) {\n const filename = anchor.pathname.split('/').pop();\n print.info(`{dc}${filename}{/} ${bytes(length)} {dgr}${res.headers.get('content-type')}{/}`);\n return;\n }\n\n const page = await res.text();\n setDOM(page);\n\n const title = domTitle();\n\n if (\n title.length \n && title.length < 400 \n && !filterWords.test(title)\n && (IRC.queryConfig('fetchURLAll', false) || hasInfo(url, title))) {\n print.info(title);\n }\n\n}\n\nasync function customURL(url, print) {\n // https://github.com/mendel5/alternative-front-ends\n const { hostname, pathname } = anchor;\n if (hostname.includes('reddit.')) {\n const jsonURL = url.replace(/(\\/?)(\\?.*)?(#.*)?$/, '/.json');\n const json = await(await fetch(jsonURL)).json();\n const data = json?.[0]?.data?.children?.[0]?.data;\n if (data) {\n const info = `{c}${data.subreddit_name_prefixed}{/} {o}▲${data.score}{/} ${data.title}`;\n const url = data?.secure_media?.reddit_video?.fallback_url?.replace('?source=fallback', '') || data.url;\n if (data.selftext) {\n print(`${info} ${String(data.selftext).replace(/\\s+/g, ' ').slice(0, 300)}`);\n return true;\n } else if (url) {\n print(`${info} ${IRC.colors.link(url)}`);\n return true;\n }\n }\n return true; \n }\n if (hostname.includes('youtube.') || hostname === 'youtu.be') {\n try {\n const json = await (await fetch(`https://www.youtube.com/oembed?url=${encodeURI(url)}&format=json`)).json();\n const {\n title, author_name,\n } = json;\n print(`{r}YouTube{/} {c}${author_name}{/} ${title}`);\n return true;\n } catch (e) { }\n // url.match(/(?!v=|v\\/|\\.be\\/|watch\\/)([0-9a-z\\-_]{11})/i);\n }\n if (hostname.includes('github.')) {\n if (pathname.split('/').length === 3) {\n // it's a repo url\n const {\n description,\n html_url,\n name,\n stargazers_count,\n language,\n license, // { name }\n } = await (\n await fetch(`https://api.github.com/repos${pathname}`)\n ).json();\n\n print(`{gr}${description || name}{/} ${IRC.colors.nick(language, false)} {y}★{/} {bo}${stargazers_count}{/} {dgr}${license ? license.name : ''}{/}`);\n return true;\n }\n }\n \tif (hostname.includes('worldcubeassociation.org')) {\n if (pathname.includes('/persons/')){\n const {\n personal_records,\n person,\n medals\n }\n = await(await fetch(`https://www.worldcubeassociation.org/api/v0/persons/${pathname.split(\"/\")[2]}`)).json();\n // calculate best rank\n\t\t\tlet best_rank = Infinity\n let best_event = \"\"\n // RIP Feet\n delete personal_records[\"mmagic\"]\n delete personal_records[\"magic\"]\n \tdelete personal_records[\"333wf\"]\n \t\tdelete personal_records[\"333mbo\"]\n for (const event in personal_records) {\n if(+personal_records[event][\"single\"][\"world_rank\"] < best_rank){\n best_rank = personal_records[event][\"single\"][\"world_rank\"]\n best_event = event + \" Single\"\n }\n if(personal_records[event][\"average\"] != undefined && +personal_records[event][\"average\"][\"world_rank\"] < best_rank){\n best_rank = personal_records[event][\"average\"][\"world_rank\"]\n best_event = event + \" Average\"\n }\n }\n\n \t\n let output = `{bo}${person[\"name\"]}{/}, Medals: {y}${medals[\"gold\"]}{/} {gr}${medals[\"silver\"]}{/} {o}${medals[\"bronze\"]}{/}, Best Rank {c}${best_rank}{/} in {y}${best_event}`;\n print(output);\n \treturn true;\n }\n if (pathname.includes('/competitions/')){\n const {\n name,\n competitor_limit,\n registration_open,\n registration_close \n } = await (\n await fetch(`https://www.worldcubeassociation.org/api/v0/competitions/${pathname.split('/')[2]}`)\n ).json();\n // Add checks for comps in the past. \n let output = `{bo}${name}{/} (Limit: ${competitor_limit}), Registration: {c}${registration_open.split(\"T\")[0]}{/} - {c}${registration_close.split(\"T\")[0]}{/}`;\n print(output);\n \treturn true;\n }\n return false;\n }\n if (hostname.includes('instagram.')) {\n // https://git.sr.ht/~cadence/bibliogram-docs/tree/master/docs/Instances.md\n const id = pathname.match(/\\/([A-Za-z-0-9]{11})/);\n if (id) {\n const page = await (await fetch(`https://bibliogram.1d4.us/p/${id[1]}`)).text();\n setDOM(page);\n const text = document.querySelector('.structured-text').textContent;\n const name = document.querySelector('.name').textContent;\n const image = document.querySelector('.sized-image');\n\n let output = `{bo}Instagram{/} {c}${name}{/} ${text.replace(/\\s+/g, ' ')}`;\n print(output);\n }\n return true;\n }\n if (hostname.includes('twitter.')) {\n const id = pathname.match(/status\\/(\\d+)/);\n if (id) {\n const page = await (await fetch(`https://nitter.net/_/status/${id[1]}#m`)).text();\n setDOM(page);\n const maintweet = document.querySelector('.main-tweet');\n const name = maintweet.querySelector('.fullname').textContent;\n const user = maintweet.querySelector('.username').textContent;\n const image = maintweet.querySelector('.still-image img');\n //const card = maintweet.querySelector('.card-image img');\n const tweet = maintweet.querySelector('.tweet-content').textContent.replace(/\\s+/g, ' ');\n let output = `{bo}${name}{/} {c}${user}{/} ${tweet}`;\n if (image) {\n output += ' ' + IRC.colors.link(`https://nitter.net${image.getAttribute('src').replace(/%3Fname.+/, '')}`);\n }\n //if (card) {\n //output += ' ' + IRC.colors.link(`https://nitter.net${card.getAttribute('src')}`);\n //}\n print(output);\n return true;\n }\n }\n // image detection AI\n if (['jpg', 'gif', 'jpeg', 'png'].some(d => url.includes(`.${d}`))) {\n const reqUrl = 'https://api.imagga.com/v2/tags?image_url='+encodeURI(url);\n const json = await (await fetch(reqUrl, {\n headers: { Authorization: 'Basic YWNjX2ZjOWJkMjE5ZGQ1NTVjZTpiYmE4MTU1MTUwM2M4N2IxMmJlZTg4YzY1ZmI2YmM0OA== ' }\n })).json();\n if (json.type === 'error') {\n \tjson.status.text;\n } else {\n const tags = json.result.tags.filter(tag => tag.confidence >= 70);\n \tif (tags.length) {\n \tprint('🖼️ 👀 '+tags.map(tag=>`{g}${tag.tag.en}{/}`).join(', '));\n \t} else if (json.result.tags.length) {\n \t\t//const [tag] = json.result.tags;\n //print(`Image may contain: {o}${tag.tag.en}{/} (${0|tag.confidence}% confidence)`);\n \t}\n }\n\n \treturn true;\n }\n}" } \ No newline at end of file diff --git a/commands/eventmemo-84d5d58f85cc.json b/commands/eventmemo-84d5d58f85cc.json index c28afcd..cbde71c 100644 --- a/commands/eventmemo-84d5d58f85cc.json +++ b/commands/eventmemo-84d5d58f85cc.json @@ -3,5 +3,5 @@ "locked": false, "starred": false, "name": "event.memo", - "command": "const dateFns = require('date-fns@1.30.1');\n\nIRC.listen('message', ({ target, server, message: { from, isPM, text } }) => {\n if (text.startsWith(IRC.trigger)) return;\n\n const print = globalThis.print;\n const printMessage = (msg) => {\n print(`${msg.to}: ${IRC.colors.nick(msg.from, true)} ${msg.message} {/}({dc}${dateFns.distanceInWordsStrict(msg.time, new Date())} ago{/})`);\n };\n IRC.setNamespace('memo');\n SQL.async.many`\n SELECT \"from\", \"to\", time, message FROM memo \n WHERE LOWER(\"to\") = LOWER(${from})\n AND server = ${server}\n AND (${String(+isPM)} OR channel = ${target} OR channel IS NULL) \n `.then((messages) => {\n if (messages.length <= IRC.queryConfig('memoPrintQuantity', 1)) {\n messages.forEach(printMessage);\n } else if (messages.length) {\n const list = messages.map(({ from, message, time }) => `${time} <${from}> ${message}`).join('\\n');\n IRC.require('module.paste').async(list)\n .then(url => {\n print(`${from}: you have {o}${messages.length}{/} messages ${url}`);\n }).catch(() => {});\n }\n\n if (messages.length > 0) {\n IRC.setNamespace('memo');\n SQL.async.run`\n DELETE FROM memo\n WHERE LOWER(\"to\") = LOWER(${from})\n AND server = ${server}\n AND (${String(+isPM)} OR channel = ${target} OR channel IS NULL) \n `.catch(print.error);\n }\n }).catch(print.error);\n\n}, { filter: () => IRC.queryConfig('enableMemo', false) })\n\nIRC.setNamespace('memo');\nif (!SQL.one`SELECT 1 FROM sqlite_master WHERE name='memo'`) {\n SQL.exec`\n DROP TABLE IF EXISTS memo;\n\n CREATE TABLE memo (\n key INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE,\n \"from\" VARCHAR (100),\n \"to\" VARCHAR (100),\n server TEXT,\n channel TEXT,\n message TEXT,\n time DATETIME DEFAULT ((DATETIME(CURRENT_TIMESTAMP, 'LOCALTIME')))\n );\n\n CREATE INDEX idx_to\n ON memo ('to');\n `;\n}" + "command": "const dateFns = require('date-fns@1.30.1');\n\nIRC.listen('message', ({ target, server, message: { from, isPM, text } }) => {\n if (text.startsWith(IRC.trigger)) return;\n\n const print = globalThis.print;\n const printMessage = (msg) => {\n print(`${msg.to}: ${IRC.colors.nick(msg.from, true)} ${msg.message} {/}({dc}${dateFns.distanceInWordsStrict(msg.time, new Date())} ago{/})`);\n };\n IRC.setNamespace('memo');\n SQL.async.many`\n SELECT \"from\", \"to\", time, message FROM memo \n WHERE LOWER(\"to\") = LOWER(${from})\n AND (receiveTime < ${(new Date).toISOString()} OR receiveTime IS NULL)\n AND server = ${server}\n AND (${String(+isPM)} OR channel = ${target} OR channel IS NULL) \n `.then((messages) => {\n if (messages.length <= IRC.queryConfig('memoPrintQuantity', 1)) {\n messages.forEach(printMessage);\n } else if (messages.length) {\n const list = messages.map(({ from, message, time }) => `${time} <${from}> ${message}`).join('\\n');\n IRC.require('module.paste').async(list)\n .then(url => {\n print(`${from}: you have {o}${messages.length}{/} messages ${url}`);\n }).catch(() => {});\n }\n\n if (messages.length > 0) {\n IRC.setNamespace('memo');\n SQL.async.run`\n DELETE FROM memo\n WHERE LOWER(\"to\") = LOWER(${from})\n AND (receiveTime < ${(new Date).toISOString()} OR receiveTime IS NULL)\n AND server = ${server}\n AND (${String(+isPM)} OR channel = ${target} OR channel IS NULL) \n `.catch(print.error);\n }\n }).catch(print.error);\n\n}, { filter: () => IRC.queryConfig('enableMemo', false) })\n\nIRC.setNamespace('memo');\nif (!SQL.one`SELECT 1 FROM sqlite_master WHERE name='memo'`) {\n SQL.exec`\n DROP TABLE IF EXISTS memo;\n\n CREATE TABLE memo (\n key INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE,\n \"from\" VARCHAR (100),\n \"to\" VARCHAR (100),\n server TEXT,\n channel TEXT,\n message TEXT,\n time DATETIME DEFAULT ((DATETIME(CURRENT_TIMESTAMP, 'LOCALTIME')))\n receiveTime DATETIME\n );\n\n CREATE INDEX idx_to\n ON memo ('to');\n `;\n}" } \ No newline at end of file diff --git a/commands/eyup-486d03c1e91a.json b/commands/eyup-486d03c1e91a.json index 4378ba5..f5efe9c 100644 --- a/commands/eyup-486d03c1e91a.json +++ b/commands/eyup-486d03c1e91a.json @@ -2,5 +2,5 @@ "locked": false, "starred": false, "name": "eyup", - "command": "/*__TEXTCMD__*/print(`https://8bv.jow.moe/i/aiwj.png`);" + "command": "/*__TEXTCMD__*/print(`https://i.imgur.com/xeEQA2J.png`);" } \ No newline at end of file diff --git a/commands/hornqui-6fc3e0216054.json b/commands/hornqui-6fc3e0216054.json index 26282d5..e426bd2 100644 --- a/commands/hornqui-6fc3e0216054.json +++ b/commands/hornqui-6fc3e0216054.json @@ -2,5 +2,5 @@ "locked": false, "starred": false, "name": "hornqui", - "command": "/*__TEXTCMD__*/print(`https://8bv.jow.moe/i/ZTfc.png`);" + "command": "/*__TEXTCMD__*/print(`https://i.imgur.com/k5RwnL5.png`);" } \ No newline at end of file diff --git a/commands/imagehost-0bd72503336f.json b/commands/imagehost-0bd72503336f.json index 5427de1..9f5c3f5 100644 --- a/commands/imagehost-0bd72503336f.json +++ b/commands/imagehost-0bd72503336f.json @@ -2,5 +2,5 @@ "locked": false, "starred": false, "name": "imagehost", - "command": "/*__TEXTCMD__*/print(`https://8bv.jow.moe/`);" + "command": "/*__TEXTCMD__*/print(`rekt by kingchris`);" } \ No newline at end of file diff --git a/commands/isitfucked-f66bdafe0025.json b/commands/isitfucked-f66bdafe0025.json new file mode 100644 index 0000000..df4c6f1 --- /dev/null +++ b/commands/isitfucked-f66bdafe0025.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "isitfucked", + "command": "print(\"yes\")" +} \ No newline at end of file diff --git a/commands/istherefuel-6a18b04fa5e9.json b/commands/istherefuel-6a18b04fa5e9.json index 7e4c6d1..1af5635 100644 --- a/commands/istherefuel-6a18b04fa5e9.json +++ b/commands/istherefuel-6a18b04fa5e9.json @@ -2,5 +2,5 @@ "locked": false, "starred": false, "name": "istherefuel", - "command": "var fule = 1\nif (fule == 1) {\nprint('https://i.imgur.com/XvXLoci.jpg')\n} else {\nprint('https://i.imgur.com/feUqFM3.jpeg') \n}" + "command": "var fule = 0\nif (fule == 1) {\nprint('https://i.imgur.com/XvXLoci.jpg')\n} else {\nprint('https://i.imgur.com/feUqFM3.jpeg') \n}" } \ No newline at end of file diff --git a/commands/junkies-4c1e37a7ec92.json b/commands/junkies-4c1e37a7ec92.json new file mode 100644 index 0000000..e4dfcf1 --- /dev/null +++ b/commands/junkies-4c1e37a7ec92.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "junkies", + "command": "/*__TEXTCMD__*/print(`https://youtu.be/V9dLgKK1Y6c`);" +} \ No newline at end of file diff --git a/commands/kirby-c1c053bcc05b.json b/commands/kirby-c1c053bcc05b.json index d08a966..5f1d4eb 100644 --- a/commands/kirby-c1c053bcc05b.json +++ b/commands/kirby-c1c053bcc05b.json @@ -2,5 +2,5 @@ "locked": false, "starred": false, "name": "kirby", - "command": "/*__TEXTCMD__*/print(`https://8bv.jow.moe/i/DFwv.png`);" + "command": "/*__TEXTCMD__*/print(`https://i.imgur.com/1gWz0jL.png`);" } \ No newline at end of file diff --git a/commands/memo-9eb56acc7022.json b/commands/memo-9eb56acc7022.json index dd267d0..83d3152 100644 --- a/commands/memo-9eb56acc7022.json +++ b/commands/memo-9eb56acc7022.json @@ -1,6 +1,6 @@ { "name": "memo", - "command": "const [name] = IRC.command.params;\n\nif (!name || !input.trim()) throw `usage: ${IRC.colors.cmd('memo', 'message', 'name')}`;\n\nSQL.run`\n INSERT INTO memo (\"from\", \"to\", server, channel, message) \n VALUES (${IRC.message.from}, ${name}, ${IRC.server}, ${IRC.channel}, ${input})\n`;\n\nprint(`Saved message for ${IRC.colors.nick(name, false)}`);", + "command": "const [name, time] = IRC.command.params;\n\nif (!name || !input.trim()) throw `usage: ${IRC.colors.cmd('memo', 'message', ['name', 'time?'])}`;\n\nconst timestamp = time ? IRC.parseTime(time).toISOString() : undefined;\n\nSQL.run`\n INSERT INTO memo (\"from\", \"to\", server, channel, message, receiveTime) \n VALUES (${IRC.message.from}, ${name}, ${IRC.server}, ${IRC.channel}, ${input}, ${timestamp})\n`;\n\n\nconst whenStr = time ? ` on {dc}${require('date-fns@1.30.1').format(timestamp, 'dddd MMMM Do YYYY HH:mm:ss')}` : '';\n\nprint(`Saved message for ${IRC.colors.nick(name, false) + whenStr}`);", "locked": true, "starred": true } \ No newline at end of file diff --git a/commands/mywife-e9633ad1cfe9.json b/commands/mywife-e9633ad1cfe9.json new file mode 100644 index 0000000..56dbf1d --- /dev/null +++ b/commands/mywife-e9633ad1cfe9.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "mywife", + "command": "/*__TEXTCMD__*/print(`https://streamable.com/0kylf8`);" +} \ No newline at end of file diff --git a/commands/pepeloni-3aa7df32eb40.json b/commands/pepeloni-3aa7df32eb40.json index 1d0341f..e698caa 100644 --- a/commands/pepeloni-3aa7df32eb40.json +++ b/commands/pepeloni-3aa7df32eb40.json @@ -2,5 +2,5 @@ "locked": false, "starred": false, "name": "pepeloni", - "command": "/*__TEXTCMD__print(`https://youtu.be/Brx3TikoO_s`);*/\nprint(`{r}This hard drive content has been removed as it violates the nibblr.pw rules of conduct (no nonces)`)" + "command": "/*__TEXTCMD__print(`https://youtu.be/Brx3TikoO_s`);*/\nprint(`https://youtu.be/Brx3TikoO_s`)" } \ No newline at end of file diff --git a/commands/quitest-57945d35868f.json b/commands/quitest-57945d35868f.json new file mode 100644 index 0000000..bab3623 --- /dev/null +++ b/commands/quitest-57945d35868f.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "quitest", + "command": "print(`!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n`);" +} \ No newline at end of file diff --git a/commands/rember-bb92a4e9dee8.json b/commands/rember-bb92a4e9dee8.json new file mode 100644 index 0000000..f32889c --- /dev/null +++ b/commands/rember-bb92a4e9dee8.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "rember", + "command": "/*__TEXTCMD__*/print(`https://youtu.be/x6LovY_DdEE`);" +} \ No newline at end of file diff --git a/commands/sevenn-fed6a1b5229c.json b/commands/sevenn-fed6a1b5229c.json index e0d0b3a..5d44fa8 100644 --- a/commands/sevenn-fed6a1b5229c.json +++ b/commands/sevenn-fed6a1b5229c.json @@ -3,5 +3,5 @@ "locked": false, "starred": false, "name": "sevenn", - "command": "print(`7\n7\n7\n7\n7\n7\n7\n7\n7\n7\n7\n7\n7\n7\n7\n7\n7\n7\n7\n7\n7\n7\n7\n7\n7\n7\n7\n7\n7\n7`);" + "command": "print(`!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n`);" } \ No newline at end of file diff --git a/commands/smashguide-f85346312721.json b/commands/smashguide-f85346312721.json index 0d83375..1f8d36e 100644 --- a/commands/smashguide-f85346312721.json +++ b/commands/smashguide-f85346312721.json @@ -2,5 +2,5 @@ "locked": false, "starred": false, "name": "smashguide", - "command": "/*__TEXTCMD__*/print(`https://8bv.jow.moe/i/0b621fdf829606e708d659024ad898fd.png`);" + "command": "/*__TEXTCMD__*/print(`https://i.imgur.com/rYOyoVg.png`);" } \ No newline at end of file diff --git a/commands/trev-b1da92b6b94a.json b/commands/trev-b1da92b6b94a.json new file mode 100644 index 0000000..f4716eb --- /dev/null +++ b/commands/trev-b1da92b6b94a.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "trev", + "command": "/*__TEXTCMD__*/print(`🖕👁️👄👁️🖕`);\nprint(`!trev`)\n" +} \ No newline at end of file diff --git a/commands/trivsolver-d1db5e655815.json b/commands/trivsolver-d1db5e655815.json new file mode 100644 index 0000000..44e7ec9 --- /dev/null +++ b/commands/trivsolver-d1db5e655815.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "trivsolver", + "command": "print(`aaaaaaaaaaaa\neeeeeeeeeeee\niiiiiiiiiiii\noooooooooooo\nuuuuuuuuuuuu\nssssssssssss\nmmmmmmmmmmmm\neeeeeeeeeeee\nnnnnnnnnnnnn\nffffffffffff\n`);" +} \ No newline at end of file diff --git a/commands/trump-41cb0817d86a.json b/commands/trump-41cb0817d86a.json index 0641a59..b9525c4 100644 --- a/commands/trump-41cb0817d86a.json +++ b/commands/trump-41cb0817d86a.json @@ -1,6 +1,6 @@ { "name": "trump", - "command": "print(\"https://scontent.fman2-2.fna.fbcdn.net/v/t1.0-0/s480x480/16407005_10207510887840582_7863608446608319821_n.jpg?oh=583d1df19eac0134c939edd03017527c&oe=591A0D33\");", + "command": "print(\"https://www.youtube.com/watch?v=HXCOoKYIPU4\");", "locked": false, "starred": false } \ No newline at end of file diff --git a/commands/whendowegettothereyet-cde4957eddcc.json b/commands/whendowegettothereyet-cde4957eddcc.json new file mode 100644 index 0000000..1668f7a --- /dev/null +++ b/commands/whendowegettothereyet-cde4957eddcc.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "whendowegettothereyet", + "command": "var arrival = new Date(); arrival.setHours(19); arrival.setMinutes(07); var departure = new Date(Date.now()); var diff = (arrival.getTime() - departure.getTime())/(1000*60*60); print(`Arrival at there yet in ${Math.floor(diff)} hours and ${Math.floor((diff - Math.floor(diff))*60)} minutes`);" +} \ No newline at end of file diff --git a/commands/wimdy-0870693f01d7.json b/commands/wimdy-0870693f01d7.json index 0ba2d5d..d6404d0 100644 --- a/commands/wimdy-0870693f01d7.json +++ b/commands/wimdy-0870693f01d7.json @@ -2,5 +2,5 @@ "locked": false, "starred": false, "name": "wimdy", - "command": "print(\"https://8bv.jow.moe/i/M1S5.jpg/");" + "command": "print(\"https://i.imgur.com/bz5vAqT.jpg/");" } \ No newline at end of file diff --git a/commands/yea-fd23a495dd7d.json b/commands/yea-fd23a495dd7d.json new file mode 100644 index 0000000..742e139 --- /dev/null +++ b/commands/yea-fd23a495dd7d.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "yea", + "command": "/*__TEXTCMD__*/print(`https://i.imgur.com/ePHZQZg.png`);" +} \ No newline at end of file From c70e6126d778e21ad3fa8b36e24e169d02051611 Mon Sep 17 00:00:00 2001 From: kirjavascript Date: Fri, 13 May 2022 14:15:53 +0200 Subject: [PATCH 35/94] repaste --- commands/eventfetchURL-798176d44de4.json | 2 +- commands/istherefuel-6a18b04fa5e9.json | 2 +- commands/python-b6e12829b56d.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/commands/eventfetchURL-798176d44de4.json b/commands/eventfetchURL-798176d44de4.json index 9dd1e82..8012ab0 100644 --- a/commands/eventfetchURL-798176d44de4.json +++ b/commands/eventfetchURL-798176d44de4.json @@ -3,5 +3,5 @@ "locked": true, "starred": true, "name": "event.fetchURL", - "command": "const { document, window } = new (jsdom().JSDOM)('');\nconst anchor = document.createElement('a');\nconst bytes = IRC.require('bytes');\n\nfunction setDOM(page) {\n document.open();\n document.write(page);\n document.close();\n};\n\nfunction domTitle() {\n const metaTitle = document.head.querySelector('meta[name=\"title\"]');\n return metaTitle ? metaTitle.content : document.title;\n}\n\nconst filterWords = /something went wrong|cloudflare|forbidden|not found|access restricted|access denied|your browser|rick roll|never gonna give you up|log in/i;\n\nfunction hasInfo(url, _title) {\n const title = _title.replace(/\\s+/g, ' ').trim();\n const isFresh = title.split(' ')\n .filter(word => (\n !(new RegExp(word.replace(/[^.a-zA-Z0-9\\u00c0-\\u017e]+/g, ''), 'i')).test(url)\n )).length >= 1;\n return isFresh;\n}\n\nIRC.listen('message', event => {\n if (!IRC.queryConfig('fetchURL', true)) return;\n const { text, from } = event.message;\n const urls = text.match(/(\\b(https?):\\/\\/[-A-Z0-9+&@#\\/%?=~_|!:,.;()]*[-A-Z0-9+&@#\\/%=~_|()])/ig);\n const fromSelf = from === IRC.nick;\n if (!urls || fromSelf || text.startsWith(IRC.trigger) || text.includes('##')) return;\n\n urls.slice(0, 3).forEach(url => {\n handleURL(url, global.print)\n // .catch(print.error);\n });\n});\n\nasync function handleURL(url, print) {\n anchor.setAttribute('href', url);\n if (await customURL(url, print)) return;\n\n const res = await fetch(url, {\n headers: {\n 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',\n 'Accept-Language': 'en-GB,en;q=0.5',\n 'Content-Language': 'en-GB,en;q=0.5',\n 'User-Agent': /youtu\\.?be|google|reddit/.test(url) ? '' : 'Googlebot',\n },\n });\n\n const length = res.headers.get('content-length');\n\n if (length > 5.243e6) {\n const filename = anchor.pathname.split('/').pop();\n print.info(`{dc}${filename}{/} ${bytes(length)} {dgr}${res.headers.get('content-type')}{/}`);\n return;\n }\n\n const page = await res.text();\n setDOM(page);\n\n const title = domTitle();\n\n if (\n title.length \n && title.length < 400 \n && !filterWords.test(title)\n && (IRC.queryConfig('fetchURLAll', false) || hasInfo(url, title))) {\n print.info(title);\n }\n\n}\n\nasync function customURL(url, print) {\n // https://github.com/mendel5/alternative-front-ends\n const { hostname, pathname } = anchor;\n if (hostname.includes('reddit.')) {\n const jsonURL = url.replace(/(\\/?)(\\?.*)?(#.*)?$/, '/.json');\n const json = await(await fetch(jsonURL)).json();\n const data = json?.[0]?.data?.children?.[0]?.data;\n if (data) {\n const info = `{c}${data.subreddit_name_prefixed}{/} {o}▲${data.score}{/} ${data.title}`;\n const url = data?.secure_media?.reddit_video?.fallback_url?.replace('?source=fallback', '') || data.url;\n if (data.selftext) {\n print(`${info} ${String(data.selftext).replace(/\\s+/g, ' ').slice(0, 300)}`);\n return true;\n } else if (url) {\n print(`${info} ${IRC.colors.link(url)}`);\n return true;\n }\n }\n return true; \n }\n if (hostname.includes('youtube.') || hostname === 'youtu.be') {\n try {\n const json = await (await fetch(`https://www.youtube.com/oembed?url=${encodeURI(url)}&format=json`)).json();\n const {\n title, author_name,\n } = json;\n print(`{r}YouTube{/} {c}${author_name}{/} ${title}`);\n return true;\n } catch (e) { }\n // url.match(/(?!v=|v\\/|\\.be\\/|watch\\/)([0-9a-z\\-_]{11})/i);\n }\n if (hostname.includes('github.')) {\n if (pathname.split('/').length === 3) {\n // it's a repo url\n const {\n description,\n html_url,\n name,\n stargazers_count,\n language,\n license, // { name }\n } = await (\n await fetch(`https://api.github.com/repos${pathname}`)\n ).json();\n\n print(`{gr}${description || name}{/} ${IRC.colors.nick(language, false)} {y}★{/} {bo}${stargazers_count}{/} {dgr}${license ? license.name : ''}{/}`);\n return true;\n }\n }\n \tif (hostname.includes('worldcubeassociation.org')) {\n if (pathname.includes('/persons/')){\n const {\n personal_records,\n person,\n medals\n }\n = await(await fetch(`https://www.worldcubeassociation.org/api/v0/persons/${pathname.split(\"/\")[2]}`)).json();\n // calculate best rank\n\t\t\tlet best_rank = Infinity\n let best_event = \"\"\n // RIP Feet\n delete personal_records[\"mmagic\"]\n delete personal_records[\"magic\"]\n \tdelete personal_records[\"333wf\"]\n \t\tdelete personal_records[\"333mbo\"]\n for (const event in personal_records) {\n if(+personal_records[event][\"single\"][\"world_rank\"] < best_rank){\n best_rank = personal_records[event][\"single\"][\"world_rank\"]\n best_event = event + \" Single\"\n }\n if(personal_records[event][\"average\"] != undefined && +personal_records[event][\"average\"][\"world_rank\"] < best_rank){\n best_rank = personal_records[event][\"average\"][\"world_rank\"]\n best_event = event + \" Average\"\n }\n }\n\n \t\n let output = `{bo}${person[\"name\"]}{/}, Medals: {y}${medals[\"gold\"]}{/} {gr}${medals[\"silver\"]}{/} {o}${medals[\"bronze\"]}{/}, Best Rank {c}${best_rank}{/} in {y}${best_event}`;\n print(output);\n \treturn true;\n }\n if (pathname.includes('/competitions/')){\n const {\n name,\n competitor_limit,\n registration_open,\n registration_close \n } = await (\n await fetch(`https://www.worldcubeassociation.org/api/v0/competitions/${pathname.split('/')[2]}`)\n ).json();\n // Add checks for comps in the past. \n let output = `{bo}${name}{/} (Limit: ${competitor_limit}), Registration: {c}${registration_open.split(\"T\")[0]}{/} - {c}${registration_close.split(\"T\")[0]}{/}`;\n print(output);\n \treturn true;\n }\n return false;\n }\n if (hostname.includes('instagram.')) {\n // https://git.sr.ht/~cadence/bibliogram-docs/tree/master/docs/Instances.md\n const id = pathname.match(/\\/([A-Za-z-0-9]{11})/);\n if (id) {\n const page = await (await fetch(`https://bibliogram.1d4.us/p/${id[1]}`)).text();\n setDOM(page);\n const text = document.querySelector('.structured-text').textContent;\n const name = document.querySelector('.name').textContent;\n const image = document.querySelector('.sized-image');\n\n let output = `{bo}Instagram{/} {c}${name}{/} ${text.replace(/\\s+/g, ' ')}`;\n print(output);\n }\n return true;\n }\n if (hostname.includes('twitter.')) {\n const id = pathname.match(/status\\/(\\d+)/);\n if (id) {\n const page = await (await fetch(`https://nitter.net/_/status/${id[1]}#m`)).text();\n setDOM(page);\n const maintweet = document.querySelector('.main-tweet');\n const name = maintweet.querySelector('.fullname').textContent;\n const user = maintweet.querySelector('.username').textContent;\n const image = maintweet.querySelector('.still-image img');\n //const card = maintweet.querySelector('.card-image img');\n const tweet = maintweet.querySelector('.tweet-content').textContent.replace(/\\s+/g, ' ');\n let output = `{bo}${name}{/} {c}${user}{/} ${tweet}`;\n if (image) {\n output += ' ' + IRC.colors.link(`https://nitter.net${image.getAttribute('src').replace(/%3Fname.+/, '')}`);\n }\n //if (card) {\n //output += ' ' + IRC.colors.link(`https://nitter.net${card.getAttribute('src')}`);\n //}\n print(output);\n return true;\n }\n }\n // image detection AI\n if (['jpg', 'gif', 'jpeg', 'png'].some(d => url.includes(`.${d}`))) {\n const reqUrl = 'https://api.imagga.com/v2/tags?image_url='+encodeURI(url);\n const json = await (await fetch(reqUrl, {\n headers: { Authorization: 'Basic YWNjX2ZjOWJkMjE5ZGQ1NTVjZTpiYmE4MTU1MTUwM2M4N2IxMmJlZTg4YzY1ZmI2YmM0OA== ' }\n })).json();\n if (json.type === 'error') {\n \tjson.status.text;\n } else {\n const tags = json.result.tags.filter(tag => tag.confidence >= 70);\n \tif (tags.length) {\n \tprint('🖼️ 👀 '+tags.map(tag=>`{g}${tag.tag.en}{/}`).join(', '));\n \t} else if (json.result.tags.length) {\n \t\t//const [tag] = json.result.tags;\n //print(`Image may contain: {o}${tag.tag.en}{/} (${0|tag.confidence}% confidence)`);\n \t}\n }\n\n \treturn true;\n }\n}" + "command": "const { document, window } = new (jsdom().JSDOM)('');\nconst anchor = document.createElement('a');\nconst bytes = IRC.require('bytes');\n\nfunction setDOM(page) {\n document.open();\n document.write(page);\n document.close();\n};\n\nfunction domTitle() {\n const metaTitle = document.head.querySelector('meta[name=\"title\"]');\n return metaTitle ? metaTitle.content : document.title;\n}\n\nconst filterWords = /something went wrong|cloudflare|forbidden|not found|access restricted|access denied|your browser|rick roll|never gonna give you up|log in/i;\n\nfunction hasInfo(url, _title) {\n const title = _title.replace(/\\s+/g, ' ').trim();\n const isFresh = title.split(' ')\n .filter(word => (\n !(new RegExp(word.replace(/[^.a-zA-Z0-9\\u00c0-\\u017e]+/g, ''), 'i')).test(url)\n )).length >= 1;\n return isFresh;\n}\n\nIRC.listen('message', event => {\n if (!IRC.queryConfig('fetchURL', true)) return;\n const { text, from } = event.message;\n const urls = text.match(/(\\b(https?):\\/\\/[-A-Z0-9+&@#\\/%?=~_|!:,.;()]*[-A-Z0-9+&@#\\/%=~_|()])/ig);\n const fromSelf = from === IRC.nick;\n if (!urls || fromSelf || text.startsWith(IRC.trigger) || text.includes('##')) return;\n\n urls.slice(0, 3).forEach(url => {\n handleURL(url, global.print)\n // .catch(print.error);\n });\n});\n\nasync function handleURL(url, print) {\n anchor.setAttribute('href', url);\n if (await customURL(url, print)) return;\n\n const res = await fetch(url, {\n headers: {\n 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',\n 'Accept-Language': 'en-GB,en;q=0.5',\n 'Content-Language': 'en-GB,en;q=0.5',\n 'User-Agent': /youtu\\.?be|google|reddit/.test(url) ? '' : 'Googlebot',\n },\n });\n\n const length = res.headers.get('content-length');\n\n if (length > 5.243e6) {\n const filename = anchor.pathname.split('/').pop();\n print.info(`{dc}${filename}{/} ${bytes(length)} {dgr}${res.headers.get('content-type')}{/}`);\n return;\n }\n\n const page = await res.text();\n setDOM(page);\n\n const title = domTitle();\n\n if (\n title.length \n && title.length < 400 \n && !filterWords.test(title)\n && (IRC.queryConfig('fetchURLAll', false) || hasInfo(url, title))) {\n print.info(title);\n }\n\n}\n\nasync function customURL(url, print) {\n // https://github.com/mendel5/alternative-front-ends\n const { hostname, pathname } = anchor;\n if (hostname.includes('reddit.')) {\n const jsonURL = url.replace(/(\\/?)(\\?.*)?(#.*)?$/, '/.json');\n const json = await(await fetch(jsonURL)).json();\n const data = json?.[0]?.data?.children?.[0]?.data;\n if (data) {\n const info = `{c}${data.subreddit_name_prefixed}{/} {o}▲${data.score}{/} ${data.title}`;\n const url = data?.secure_media?.reddit_video?.fallback_url?.replace('?source=fallback', '') || data.url;\n if (data.selftext) {\n print(`${info} ${String(data.selftext).replace(/\\s+/g, ' ').slice(0, 300)}`);\n return true;\n } else if (url) {\n print(`${info} ${IRC.colors.link(url)}`);\n return true;\n }\n }\n return true; \n }\n if (hostname.includes('youtube.') || hostname === 'youtu.be') {\n try {\n const json = await (await fetch(`https://www.youtube.com/oembed?url=${encodeURI(url)}&format=json`)).json();\n const {\n title, author_name,\n } = json;\n print(`{r}YouTube{/} {c}${author_name}{/} ${title}`);\n return true;\n } catch (e) { }\n // url.match(/(?!v=|v\\/|\\.be\\/|watch\\/)([0-9a-z\\-_]{11})/i);\n }\n if (hostname.includes('github.com')) {\n if (pathname.split('/').length === 3) {\n // it's a repo url\n const {\n description,\n html_url,\n name,\n stargazers_count,\n language,\n license, // { name }\n } = await (\n await fetch(`https://api.github.com/repos${pathname}`)\n ).json();\n\n print(`{gr}${description || name}{/} ${IRC.colors.nick(language, false)} {y}★{/} {bo}${stargazers_count}{/} {dgr}${license ? license.name : ''}{/}`);\n return true;\n }\n }\n \tif (hostname.includes('worldcubeassociation.org')) {\n if (pathname.includes('/persons/')){\n const {\n personal_records,\n person,\n medals\n }\n = await(await fetch(`https://www.worldcubeassociation.org/api/v0/persons/${pathname.split(\"/\")[2]}`)).json();\n // calculate best rank\n\t\t\tlet best_rank = Infinity\n let best_event = \"\"\n // RIP Feet\n delete personal_records[\"mmagic\"]\n delete personal_records[\"magic\"]\n \tdelete personal_records[\"333wf\"]\n \t\tdelete personal_records[\"333mbo\"]\n for (const event in personal_records) {\n if(+personal_records[event][\"single\"][\"world_rank\"] < best_rank){\n best_rank = personal_records[event][\"single\"][\"world_rank\"]\n best_event = event + \" Single\"\n }\n if(personal_records[event][\"average\"] != undefined && +personal_records[event][\"average\"][\"world_rank\"] < best_rank){\n best_rank = personal_records[event][\"average\"][\"world_rank\"]\n best_event = event + \" Average\"\n }\n }\n\n \t\n let output = `{bo}${person[\"name\"]}{/}, Medals: {y}${medals[\"gold\"]}{/} {gr}${medals[\"silver\"]}{/} {o}${medals[\"bronze\"]}{/}, Best Rank {c}${best_rank}{/} in {y}${best_event}`;\n print(output);\n \treturn true;\n }\n if (pathname.includes('/competitions/')){\n const {\n name,\n competitor_limit,\n registration_open,\n registration_close \n } = await (\n await fetch(`https://www.worldcubeassociation.org/api/v0/competitions/${pathname.split('/')[2]}`)\n ).json();\n // Add checks for comps in the past. \n let output = `{bo}${name}{/} (Limit: ${competitor_limit}), Registration: {c}${registration_open.split(\"T\")[0]}{/} - {c}${registration_close.split(\"T\")[0]}{/}`;\n print(output);\n \treturn true;\n }\n return false;\n }\n if (hostname.includes('instagram.')) {\n // https://git.sr.ht/~cadence/bibliogram-docs/tree/master/docs/Instances.md\n const id = pathname.match(/\\/([A-Za-z-0-9]{11})/);\n if (id) {\n const page = await (await fetch(`https://bibliogram.1d4.us/p/${id[1]}`)).text();\n setDOM(page);\n const text = document.querySelector('.structured-text').textContent;\n const name = document.querySelector('.name').textContent;\n const image = document.querySelector('.sized-image');\n\n let output = `{bo}Instagram{/} {c}${name}{/} ${text.replace(/\\s+/g, ' ')}`;\n print(output);\n }\n return true;\n }\n if (hostname.includes('twitter.')) {\n const id = pathname.match(/status\\/(\\d+)/);\n if (id) {\n const page = await (await fetch(`https://nitter.net/_/status/${id[1]}#m`)).text();\n setDOM(page);\n const maintweet = document.querySelector('.main-tweet');\n const name = maintweet.querySelector('.fullname').textContent;\n const user = maintweet.querySelector('.username').textContent;\n const image = maintweet.querySelector('.still-image img');\n //const card = maintweet.querySelector('.card-image img');\n const tweet = maintweet.querySelector('.tweet-content').textContent.replace(/\\s+/g, ' ');\n let output = `{bo}${name}{/} {c}${user}{/} ${tweet}`;\n if (image) {\n output += ' ' + IRC.colors.link(`https://nitter.net${image.getAttribute('src').replace(/%3Fname.+/, '')}`);\n }\n //if (card) {\n //output += ' ' + IRC.colors.link(`https://nitter.net${card.getAttribute('src')}`);\n //}\n print(output);\n return true;\n }\n }\n // image detection AI\n if (['jpg', 'gif', 'jpeg', 'png'].some(d => url.includes(`.${d}`))) {\n const reqUrl = 'https://api.imagga.com/v2/tags?image_url='+encodeURI(url);\n const json = await (await fetch(reqUrl, {\n headers: { Authorization: 'Basic YWNjX2ZjOWJkMjE5ZGQ1NTVjZTpiYmE4MTU1MTUwM2M4N2IxMmJlZTg4YzY1ZmI2YmM0OA== ' }\n })).json();\n if (json.type === 'error') {\n \tjson.status.text;\n } else {\n const tags = json.result.tags.filter(tag => tag.confidence >= 70);\n \tif (tags.length) {\n \tprint('🖼️ 👀 '+tags.map(tag=>`{g}${tag.tag.en}{/}`).join(', '));\n \t} else if (json.result.tags.length) {\n \t\t//const [tag] = json.result.tags;\n //print(`Image may contain: {o}${tag.tag.en}{/} (${0|tag.confidence}% confidence)`);\n \t}\n }\n\n \treturn true;\n }\n // repaste pastebin\n if (hostname.includes('pastebin.com')) {\n const id = pathname.match(/\\/(\\w+)\\/?$/);\n if (id) {\n const page = await (await fetch(`https://pastebin.com/raw/${id[1]}`)).text();\n print.info(`repasted to ${await IRC.require('module.paste').async(page)}`)\n return true;\n }\n }\n}" } \ No newline at end of file diff --git a/commands/istherefuel-6a18b04fa5e9.json b/commands/istherefuel-6a18b04fa5e9.json index 1af5635..7e4c6d1 100644 --- a/commands/istherefuel-6a18b04fa5e9.json +++ b/commands/istherefuel-6a18b04fa5e9.json @@ -2,5 +2,5 @@ "locked": false, "starred": false, "name": "istherefuel", - "command": "var fule = 0\nif (fule == 1) {\nprint('https://i.imgur.com/XvXLoci.jpg')\n} else {\nprint('https://i.imgur.com/feUqFM3.jpeg') \n}" + "command": "var fule = 1\nif (fule == 1) {\nprint('https://i.imgur.com/XvXLoci.jpg')\n} else {\nprint('https://i.imgur.com/feUqFM3.jpeg') \n}" } \ No newline at end of file diff --git a/commands/python-b6e12829b56d.json b/commands/python-b6e12829b56d.json index 064ce3a..1cfdd5e 100644 --- a/commands/python-b6e12829b56d.json +++ b/commands/python-b6e12829b56d.json @@ -2,5 +2,5 @@ "locked": true, "starred": false, "name": "python", - "command": "IRC.require('eval')('python', `\nv = eval(${JSON.stringify(input)})\nif v is not None: print(v)\n`);" + "command": "IRC.require('eval')('python', input || `\nv = eval(${JSON.stringify(input)})\nif v is not None: print(v)\n`);" } \ No newline at end of file From 7c712fe2e3964587fc9dd12081d5f9000d4e6dac Mon Sep 17 00:00:00 2001 From: Winston Weinert Date: Thu, 19 May 2022 19:45:23 -0500 Subject: [PATCH 36/94] frontend: Add tooltips for the category icons --- web/modules/cmds/index.js | 6 ++++-- web/modules/cmds/lock.js | 14 ++++++++------ web/modules/cmds/star.js | 11 +++++++++++ web/static/main.js | 36 ++++++++++++++++++------------------ 4 files changed, 41 insertions(+), 26 deletions(-) create mode 100644 web/modules/cmds/star.js diff --git a/web/modules/cmds/index.js b/web/modules/cmds/index.js index 4e6e925..d887e9b 100644 --- a/web/modules/cmds/index.js +++ b/web/modules/cmds/index.js @@ -2,6 +2,7 @@ import React, { useState, useEffect, useCallback } from 'react'; import { Route } from 'react-router-dom'; import Checkbox from '../checkbox'; import Lock from './lock'; +import Star from './star'; import Editor from './editor'; import CmdList from './cmd-list'; @@ -14,7 +15,8 @@ import { parseCommand } from '../../../irc/evaluate/scripts/parse-command'; export function CommandName({ command }) { return <> {command.name} - {command.starred && } + {' '} + {command.starred && } {' '} {command.locked && } {command.event && (event)} @@ -96,7 +98,7 @@ function Cmds({ history }) {
{commandSrch.length} / {commandFltr.length}
- + setStarred(!starred)} diff --git a/web/modules/cmds/lock.js b/web/modules/cmds/lock.js index cea94f8..9c2eca5 100644 --- a/web/modules/cmds/lock.js +++ b/web/modules/cmds/lock.js @@ -2,12 +2,14 @@ import React from 'react'; function Lock() { return ( - - - + + + + + ); } diff --git a/web/modules/cmds/star.js b/web/modules/cmds/star.js new file mode 100644 index 0000000..0a6a601 --- /dev/null +++ b/web/modules/cmds/star.js @@ -0,0 +1,11 @@ +import React from 'react'; + +function Star() { + return ( + + ★ + + ); +} + +export default Star; diff --git a/web/static/main.js b/web/static/main.js index 4f37ba3..638eb58 100644 --- a/web/static/main.js +++ b/web/static/main.js @@ -1,7 +1,7 @@ -var Bk=Object.create;var Uc=Object.defineProperty;var jk=Object.getOwnPropertyDescriptor;var Yk=Object.getOwnPropertyNames;var qk=Object.getPrototypeOf,Gk=Object.prototype.hasOwnProperty;var $k=e=>Uc(e,"__esModule",{value:!0});var yt=(e,n)=>()=>(n||e((n={exports:{}}).exports,n),n.exports);var Vk=(e,n,i)=>{if(n&&typeof n=="object"||typeof n=="function")for(let u of Yk(n))!Gk.call(e,u)&&u!=="default"&&Uc(e,u,{get:()=>n[u],enumerable:!(i=jk(n,u))||i.enumerable});return e},qt=e=>Vk($k(Uc(e!=null?Bk(qk(e)):{},"default",e&&e.__esModule&&"default"in e?{get:()=>e.default,enumerable:!0}:{value:e,enumerable:!0})),e);var Bc=yt((RM,Fg)=>{"use strict";var Rg=Object.getOwnPropertySymbols,Xk=Object.prototype.hasOwnProperty,Kk=Object.prototype.propertyIsEnumerable;function Qk(e){if(e==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}function Zk(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de",Object.getOwnPropertyNames(e)[0]==="5")return!1;for(var n={},i=0;i<10;i++)n["_"+String.fromCharCode(i)]=i;var u=Object.getOwnPropertyNames(n).map(function(h){return n[h]});if(u.join("")!=="0123456789")return!1;var s={};return"abcdefghijklmnopqrst".split("").forEach(function(h){s[h]=h}),Object.keys(Object.assign({},s)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}Fg.exports=Zk()?Object.assign:function(e,n){for(var i,u=Qk(e),s,h=1;h{"use strict";var jc=Bc(),ni=typeof Symbol=="function"&&Symbol.for,bu=ni?Symbol.for("react.element"):60103,Jk=ni?Symbol.for("react.portal"):60106,eT=ni?Symbol.for("react.fragment"):60107,tT=ni?Symbol.for("react.strict_mode"):60108,nT=ni?Symbol.for("react.profiler"):60114,rT=ni?Symbol.for("react.provider"):60109,iT=ni?Symbol.for("react.context"):60110,oT=ni?Symbol.for("react.forward_ref"):60112,aT=ni?Symbol.for("react.suspense"):60113,uT=ni?Symbol.for("react.memo"):60115,lT=ni?Symbol.for("react.lazy"):60116,zg=typeof Symbol=="function"&&Symbol.iterator;function Cu(e){for(var n="https://reactjs.org/docs/error-decoder.html?invariant="+e,i=1;iVl.length&&Vl.push(e)}function Vc(e,n,i,u){var s=typeof e;(s==="undefined"||s==="boolean")&&(e=null);var h=!1;if(e===null)h=!0;else switch(s){case"string":case"number":h=!0;break;case"object":switch(e.$$typeof){case bu:case Jk:h=!0}}if(h)return i(u,e,n===""?"."+Kc(e,0):n),1;if(h=0,n=n===""?".":n+":",Array.isArray(e))for(var d=0;d{"use strict";Kg.exports=Xg()});var rm=yt(un=>{"use strict";var xa,Mu,Xl,Kl,Zc;typeof window=="undefined"||typeof MessageChannel!="function"?(_a=null,Jc=null,eh=function(){if(_a!==null)try{var e=un.unstable_now();_a(!0,e),_a=null}catch(n){throw setTimeout(eh,0),n}},Qg=Date.now(),un.unstable_now=function(){return Date.now()-Qg},xa=function(e){_a!==null?setTimeout(xa,0,e):(_a=e,setTimeout(eh,0))},Mu=function(e,n){Jc=setTimeout(e,n)},Xl=function(){clearTimeout(Jc)},Kl=function(){return!1},Zc=un.unstable_forceFrameRate=function(){}):(Ql=window.performance,th=window.Date,Zg=window.setTimeout,Jg=window.clearTimeout,typeof console!="undefined"&&(em=window.cancelAnimationFrame,typeof window.requestAnimationFrame!="function"&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills"),typeof em!="function"&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills")),typeof Ql=="object"&&typeof Ql.now=="function"?un.unstable_now=function(){return Ql.now()}:(tm=th.now(),un.unstable_now=function(){return th.now()-tm}),Eu=!1,Nu=null,Zl=-1,nh=5,rh=0,Kl=function(){return un.unstable_now()>=rh},Zc=function(){},un.unstable_forceFrameRate=function(e){0>e||125>>1,s=e[u];if(s!==void 0&&0ts(d,i))k!==void 0&&0>ts(k,d)?(e[u]=k,e[v]=i,u=v):(e[u]=d,e[h]=i,u=h);else if(k!==void 0&&0>ts(k,i))e[u]=k,e[v]=i,u=v;else break e}}return n}return null}function ts(e,n){var i=e.sortIndex-n.sortIndex;return i!==0?i:e.id-n.id}var ri=[],Xi=[],pT=1,mr=null,or=3,ns=!1,Do=!1,Pu=!1;function rs(e){for(var n=Yr(Xi);n!==null;){if(n.callback===null)es(Xi);else if(n.startTime<=e)es(Xi),n.sortIndex=n.expirationTime,oh(ri,n);else break;n=Yr(Xi)}}function ah(e){if(Pu=!1,rs(e),!Do)if(Yr(ri)!==null)Do=!0,xa(uh);else{var n=Yr(Xi);n!==null&&Mu(ah,n.startTime-e)}}function uh(e,n){Do=!1,Pu&&(Pu=!1,Xl()),ns=!0;var i=or;try{for(rs(n),mr=Yr(ri);mr!==null&&(!(mr.expirationTime>n)||e&&!Kl());){var u=mr.callback;if(u!==null){mr.callback=null,or=mr.priorityLevel;var s=u(mr.expirationTime<=n);n=un.unstable_now(),typeof s=="function"?mr.callback=s:mr===Yr(ri)&&es(ri),rs(n)}else es(ri);mr=Yr(ri)}if(mr!==null)var h=!0;else{var d=Yr(Xi);d!==null&&Mu(ah,d.startTime-n),h=!1}return h}finally{mr=null,or=i,ns=!1}}function nm(e){switch(e){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1e4;default:return 5e3}}var vT=Zc;un.unstable_IdlePriority=5;un.unstable_ImmediatePriority=1;un.unstable_LowPriority=4;un.unstable_NormalPriority=3;un.unstable_Profiling=null;un.unstable_UserBlockingPriority=2;un.unstable_cancelCallback=function(e){e.callback=null};un.unstable_continueExecution=function(){Do||ns||(Do=!0,xa(uh))};un.unstable_getCurrentPriorityLevel=function(){return or};un.unstable_getFirstCallbackNode=function(){return Yr(ri)};un.unstable_next=function(e){switch(or){case 1:case 2:case 3:var n=3;break;default:n=or}var i=or;or=n;try{return e()}finally{or=i}};un.unstable_pauseExecution=function(){};un.unstable_requestPaint=vT;un.unstable_runWithPriority=function(e,n){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var i=or;or=e;try{return n()}finally{or=i}};un.unstable_scheduleCallback=function(e,n,i){var u=un.unstable_now();if(typeof i=="object"&&i!==null){var s=i.delay;s=typeof s=="number"&&0u?(e.sortIndex=s,oh(Xi,e),Yr(ri)===null&&e===Yr(Xi)&&(Pu?Xl():Pu=!0,Mu(ah,s-u))):(e.sortIndex=i,oh(ri,e),Do||ns||(Do=!0,xa(uh))),e};un.unstable_shouldYield=function(){var e=un.unstable_now();rs(e);var n=Yr(ri);return n!==mr&&mr!==null&&n!==null&&n.callback!==null&&n.startTime<=e&&n.expirationTime{"use strict";im.exports=rm()});var r1=yt(Vr=>{"use strict";var is=Tn(),yr=Bc(),tr=om();function it(e){for(var n="https://reactjs.org/docs/error-decoder.html?invariant="+e,i=1;in}return!1}function wr(e,n,i,u,s,h){this.acceptsBooleans=n===2||n===3||n===4,this.attributeName=u,this.attributeNamespace=s,this.mustUseProperty=i,this.propertyName=e,this.type=n,this.sanitizeURL=h}var nr={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){nr[e]=new wr(e,0,!1,e,null,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var n=e[0];nr[n]=new wr(n,1,!1,e[1],null,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){nr[e]=new wr(e,2,!1,e.toLowerCase(),null,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){nr[e]=new wr(e,2,!1,e,null,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){nr[e]=new wr(e,3,!1,e.toLowerCase(),null,!1)});["checked","multiple","muted","selected"].forEach(function(e){nr[e]=new wr(e,3,!0,e,null,!1)});["capture","download"].forEach(function(e){nr[e]=new wr(e,4,!1,e,null,!1)});["cols","rows","size","span"].forEach(function(e){nr[e]=new wr(e,6,!1,e,null,!1)});["rowSpan","start"].forEach(function(e){nr[e]=new wr(e,5,!1,e.toLowerCase(),null,!1)});var mh=/[\-:]([a-z])/g;function yh(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var n=e.replace(mh,yh);nr[n]=new wr(n,1,!1,e,null,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var n=e.replace(mh,yh);nr[n]=new wr(n,1,!1,e,"http://www.w3.org/1999/xlink",!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var n=e.replace(mh,yh);nr[n]=new wr(n,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1)});["tabIndex","crossOrigin"].forEach(function(e){nr[e]=new wr(e,1,!1,e.toLowerCase(),null,!1)});nr.xlinkHref=new wr("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0);["src","href","action","formAction"].forEach(function(e){nr[e]=new wr(e,1,!1,e.toLowerCase(),null,!0)});var ii=is.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;ii.hasOwnProperty("ReactCurrentDispatcher")||(ii.ReactCurrentDispatcher={current:null});ii.hasOwnProperty("ReactCurrentBatchConfig")||(ii.ReactCurrentBatchConfig={suspense:null});function wh(e,n,i,u){var s=nr.hasOwnProperty(n)?nr[n]:null,h=s!==null?s.type===0:u?!1:!(!(2=i.length))throw Error(it(93));i=i[0]}n=i}n==null&&(n=""),i=n}e._wrapperState={initialValue:Qi(i)}}function Dm(e,n){var i=Qi(n.value),u=Qi(n.defaultValue);i!=null&&(i=""+i,i!==e.value&&(e.value=i),n.defaultValue==null&&e.defaultValue!==i&&(e.defaultValue=i)),u!=null&&(e.defaultValue=""+u)}function Am(e){var n=e.textContent;n===e._wrapperState.initialValue&&n!==""&&n!==null&&(e.value=n)}var Im={html:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg"};function Rm(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function Nh(e,n){return e==null||e==="http://www.w3.org/1999/xhtml"?Rm(n):e==="http://www.w3.org/2000/svg"&&n==="foreignObject"?"http://www.w3.org/1999/xhtml":e}var ds,Fm=function(e){return typeof MSApp!="undefined"&&MSApp.execUnsafeLocalFunction?function(n,i,u,s){MSApp.execUnsafeLocalFunction(function(){return e(n,i,u,s)})}:e}(function(e,n){if(e.namespaceURI!==Im.svg||"innerHTML"in e)e.innerHTML=n;else{for(ds=ds||document.createElement("div"),ds.innerHTML=""+n.valueOf().toString()+"",n=ds.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;n.firstChild;)e.appendChild(n.firstChild)}});function Du(e,n){if(n){var i=e.firstChild;if(i&&i===e.lastChild&&i.nodeType===3){i.nodeValue=n;return}}e.textContent=n}function ps(e,n){var i={};return i[e.toLowerCase()]=n.toLowerCase(),i["Webkit"+e]="webkit"+n,i["Moz"+e]="moz"+n,i}var Ea={animationend:ps("Animation","AnimationEnd"),animationiteration:ps("Animation","AnimationIteration"),animationstart:ps("Animation","AnimationStart"),transitionend:ps("Transition","TransitionEnd")},Ph={},zm={};Ki&&(zm=document.createElement("div").style,"AnimationEvent"in window||(delete Ea.animationend.animation,delete Ea.animationiteration.animation,delete Ea.animationstart.animation),"TransitionEvent"in window||delete Ea.transitionend.transition);function vs(e){if(Ph[e])return Ph[e];if(!Ea[e])return e;var n=Ea[e],i;for(i in n)if(n.hasOwnProperty(i)&&i in zm)return Ph[e]=n[i];return e}var Hm=vs("animationend"),Wm=vs("animationiteration"),Um=vs("animationstart"),Bm=vs("transitionend"),Au="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),jm=new(typeof WeakMap=="function"?WeakMap:Map);function Lh(e){var n=jm.get(e);return n===void 0&&(n=new Map,jm.set(e,n)),n}function Ro(e){var n=e,i=e;if(e.alternate)for(;n.return;)n=n.return;else{e=n;do n=e,(n.effectTag&1026)!=0&&(i=n.return),e=n.return;while(e)}return n.tag===3?i:null}function Ym(e){if(e.tag===13){var n=e.memoizedState;if(n===null&&(e=e.alternate,e!==null&&(n=e.memoizedState)),n!==null)return n.dehydrated}return null}function qm(e){if(Ro(e)!==e)throw Error(it(188))}function NT(e){var n=e.alternate;if(!n){if(n=Ro(e),n===null)throw Error(it(188));return n!==e?null:e}for(var i=e,u=n;;){var s=i.return;if(s===null)break;var h=s.alternate;if(h===null){if(u=s.return,u!==null){i=u;continue}break}if(s.child===h.child){for(h=s.child;h;){if(h===i)return qm(s),e;if(h===u)return qm(s),n;h=h.sibling}throw Error(it(188))}if(i.return!==u.return)i=s,u=h;else{for(var d=!1,v=s.child;v;){if(v===i){d=!0,i=s,u=h;break}if(v===u){d=!0,u=s,i=h;break}v=v.sibling}if(!d){for(v=h.child;v;){if(v===i){d=!0,i=h,u=s;break}if(v===u){d=!0,u=h,i=s;break}v=v.sibling}if(!d)throw Error(it(189))}}if(i.alternate!==u)throw Error(it(190))}if(i.tag!==3)throw Error(it(188));return i.stateNode.current===i?e:n}function Gm(e){if(e=NT(e),!e)return null;for(var n=e;;){if(n.tag===5||n.tag===6)return n;if(n.child)n.child.return=n,n=n.child;else{if(n===e)break;for(;!n.sibling;){if(!n.return||n.return===e)return null;n=n.return}n.sibling.return=n.return,n=n.sibling}}return null}function Na(e,n){if(n==null)throw Error(it(30));return e==null?n:Array.isArray(e)?Array.isArray(n)?(e.push.apply(e,n),e):(e.push(n),e):Array.isArray(n)?[e].concat(n):[e,n]}function Oh(e,n,i){Array.isArray(e)?e.forEach(n,i):e&&n.call(i,e)}var Iu=null;function PT(e){if(e){var n=e._dispatchListeners,i=e._dispatchInstances;if(Array.isArray(n))for(var u=0;ums.length&&ms.push(e)}function Xm(e,n,i,u){if(ms.length){var s=ms.pop();return s.topLevelType=e,s.eventSystemFlags=u,s.nativeEvent=n,s.targetInst=i,s}return{topLevelType:e,eventSystemFlags:u,nativeEvent:n,targetInst:i,ancestors:[]}}function Km(e){var n=e.targetInst,i=n;do{if(!i){e.ancestors.push(i);break}var u=i;if(u.tag===3)u=u.stateNode.containerInfo;else{for(;u.return;)u=u.return;u=u.tag!==3?null:u.stateNode.containerInfo}if(!u)break;n=i.tag,n!==5&&n!==6||e.ancestors.push(i),i=Yu(u)}while(i);for(i=0;i=n)return{node:i,offset:n-e};e=u}e:{for(;i;){if(i.nextSibling){i=i.nextSibling;break e}i=i.parentNode}i=void 0}i=u0(i)}}function s0(e,n){return e&&n?e===n?!0:e&&e.nodeType===3?!1:n&&n.nodeType===3?s0(e,n.parentNode):"contains"in e?e.contains(n):e.compareDocumentPosition?!!(e.compareDocumentPosition(n)&16):!1:!1}function f0(){for(var e=window,n=qh();n instanceof e.HTMLIFrameElement;){try{var i=typeof n.contentWindow.location.href=="string"}catch{i=!1}if(i)e=n.contentWindow;else break;n=qh(e.document)}return n}function Gh(e){var n=e&&e.nodeName&&e.nodeName.toLowerCase();return n&&(n==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||n==="textarea"||e.contentEditable==="true")}var c0="$",h0="/$",$h="$?",Vh="$!",Xh=null,Kh=null;function d0(e,n){switch(e){case"button":case"input":case"select":case"textarea":return!!n.autoFocus}return!1}function Qh(e,n){return e==="textarea"||e==="option"||e==="noscript"||typeof n.children=="string"||typeof n.children=="number"||typeof n.dangerouslySetInnerHTML=="object"&&n.dangerouslySetInnerHTML!==null&&n.dangerouslySetInnerHTML.__html!=null}var Zh=typeof setTimeout=="function"?setTimeout:void 0,jT=typeof clearTimeout=="function"?clearTimeout:void 0;function Pa(e){for(;e!=null;e=e.nextSibling){var n=e.nodeType;if(n===1||n===3)break}return e}function p0(e){e=e.previousSibling;for(var n=0;e;){if(e.nodeType===8){var i=e.data;if(i===c0||i===Vh||i===$h){if(n===0)return e;n--}else i===h0&&n++}e=e.previousSibling}return null}var Jh=Math.random().toString(36).slice(2),to="__reactInternalInstance$"+Jh,Ts="__reactEventHandlers$"+Jh,ju="__reactContainere$"+Jh;function Yu(e){var n=e[to];if(n)return n;for(var i=e.parentNode;i;){if(n=i[ju]||i[to]){if(i=n.alternate,n.child!==null||i!==null&&i.child!==null)for(e=p0(e);e!==null;){if(i=e[to])return i;e=p0(e)}return n}e=i,i=e.parentNode}return null}function qu(e){return e=e[to]||e[ju],!e||e.tag!==5&&e.tag!==6&&e.tag!==13&&e.tag!==3?null:e}function Fo(e){if(e.tag===5||e.tag===6)return e.stateNode;throw Error(it(33))}function ed(e){return e[Ts]||null}function Li(e){do e=e.return;while(e&&e.tag!==5);return e||null}function v0(e,n){var i=e.stateNode;if(!i)return null;var u=sh(i);if(!u)return null;i=u[n];e:switch(n){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(u=!u.disabled)||(e=e.type,u=!(e==="button"||e==="input"||e==="select"||e==="textarea")),e=!u;break e;default:e=!1}if(e)return null;if(i&&typeof i!="function")throw Error(it(231,n,typeof i));return i}function g0(e,n,i){(n=v0(e,i.dispatchConfig.phasedRegistrationNames[n]))&&(i._dispatchListeners=Na(i._dispatchListeners,n),i._dispatchInstances=Na(i._dispatchInstances,e))}function YT(e){if(e&&e.dispatchConfig.phasedRegistrationNames){for(var n=e._targetInst,i=[];n;)i.push(n),n=Li(n);for(n=i.length;0this.eventPool.length&&this.eventPool.push(e)}function y0(e){e.eventPool=[],e.getPooled=GT,e.release=$T}var VT=zr.extend({data:null}),XT=zr.extend({data:null}),KT=[9,13,27,32],rd=Ki&&"CompositionEvent"in window,Gu=null;Ki&&"documentMode"in document&&(Gu=document.documentMode);var QT=Ki&&"TextEvent"in window&&!Gu,w0=Ki&&(!rd||Gu&&8=Gu),x0=String.fromCharCode(32),Oi={beforeInput:{phasedRegistrationNames:{bubbled:"onBeforeInput",captured:"onBeforeInputCapture"},dependencies:["compositionend","keypress","textInput","paste"]},compositionEnd:{phasedRegistrationNames:{bubbled:"onCompositionEnd",captured:"onCompositionEndCapture"},dependencies:"blur compositionend keydown keypress keyup mousedown".split(" ")},compositionStart:{phasedRegistrationNames:{bubbled:"onCompositionStart",captured:"onCompositionStartCapture"},dependencies:"blur compositionstart keydown keypress keyup mousedown".split(" ")},compositionUpdate:{phasedRegistrationNames:{bubbled:"onCompositionUpdate",captured:"onCompositionUpdateCapture"},dependencies:"blur compositionupdate keydown keypress keyup mousedown".split(" ")}},_0=!1;function k0(e,n){switch(e){case"keyup":return KT.indexOf(n.keyCode)!==-1;case"keydown":return n.keyCode!==229;case"keypress":case"mousedown":case"blur":return!0;default:return!1}}function T0(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Oa=!1;function ZT(e,n){switch(e){case"compositionend":return T0(n);case"keypress":return n.which!==32?null:(_0=!0,x0);case"textInput":return e=n.data,e===x0&&_0?null:e;default:return null}}function JT(e,n){if(Oa)return e==="compositionend"||!rd&&k0(e,n)?(e=m0(),Ss=nd=no=null,Oa=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(n.ctrlKey||n.altKey||n.metaKey)||n.ctrlKey&&n.altKey){if(n.char&&1=document.documentMode,A0={select:{phasedRegistrationNames:{bubbled:"onSelect",captured:"onSelectCapture"},dependencies:"blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange".split(" ")}},Da=null,ad=null,Ju=null,ud=!1;function I0(e,n){var i=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;return ud||Da==null||Da!==qh(i)?null:(i=Da,"selectionStart"in i&&Gh(i)?i={start:i.selectionStart,end:i.selectionEnd}:(i=(i.ownerDocument&&i.ownerDocument.defaultView||window).getSelection(),i={anchorNode:i.anchorNode,anchorOffset:i.anchorOffset,focusNode:i.focusNode,focusOffset:i.focusOffset}),Ju&&Zu(Ju,i)?null:(Ju=i,e=zr.getPooled(A0.select,ad,e,n),e.type="select",e.target=Da,La(e),e))}var vS={eventTypes:A0,extractEvents:function(e,n,i,u,s,h){if(s=h||(u.window===u?u.document:u.nodeType===9?u:u.ownerDocument),!(h=!s)){e:{s=Lh(s),h=ch.onSelect;for(var d=0;dAa||(e.current=ld[Aa],ld[Aa]=null,Aa--)}function Dn(e,n){Aa++,ld[Aa]=e.current,e.current=n}var ro={},ar={current:ro},Nr={current:!1},Ho=ro;function Ia(e,n){var i=e.type.contextTypes;if(!i)return ro;var u=e.stateNode;if(u&&u.__reactInternalMemoizedUnmaskedChildContext===n)return u.__reactInternalMemoizedMaskedChildContext;var s={},h;for(h in i)s[h]=n[h];return u&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=n,e.__reactInternalMemoizedMaskedChildContext=s),s}function Pr(e){return e=e.childContextTypes,e!=null}function Ns(){wn(Nr),wn(ar)}function R0(e,n,i){if(ar.current!==ro)throw Error(it(168));Dn(ar,n),Dn(Nr,i)}function F0(e,n,i){var u=e.stateNode;if(e=n.childContextTypes,typeof u.getChildContext!="function")return i;u=u.getChildContext();for(var s in u)if(!(s in e))throw Error(it(108,Ni(n)||"Unknown",s));return yr({},i,{},u)}function Ps(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||ro,Ho=ar.current,Dn(ar,e),Dn(Nr,Nr.current),!0}function z0(e,n,i){var u=e.stateNode;if(!u)throw Error(it(169));i?(e=F0(e,n,Ho),u.__reactInternalMemoizedMergedChildContext=e,wn(Nr),wn(ar),Dn(ar,e)):wn(Nr),Dn(Nr,i)}var ES=tr.unstable_runWithPriority,sd=tr.unstable_scheduleCallback,H0=tr.unstable_cancelCallback,W0=tr.unstable_requestPaint,fd=tr.unstable_now,NS=tr.unstable_getCurrentPriorityLevel,Ls=tr.unstable_ImmediatePriority,U0=tr.unstable_UserBlockingPriority,B0=tr.unstable_NormalPriority,j0=tr.unstable_LowPriority,Y0=tr.unstable_IdlePriority,q0={},PS=tr.unstable_shouldYield,LS=W0!==void 0?W0:function(){},Di=null,Os=null,cd=!1,G0=fd(),qr=1e4>G0?fd:function(){return fd()-G0};function Ds(){switch(NS()){case Ls:return 99;case U0:return 98;case B0:return 97;case j0:return 96;case Y0:return 95;default:throw Error(it(332))}}function $0(e){switch(e){case 99:return Ls;case 98:return U0;case 97:return B0;case 96:return j0;case 95:return Y0;default:throw Error(it(332))}}function io(e,n){return e=$0(e),ES(e,n)}function V0(e,n,i){return e=$0(e),sd(e,n,i)}function X0(e){return Di===null?(Di=[e],Os=sd(Ls,K0)):Di.push(e),q0}function pi(){if(Os!==null){var e=Os;Os=null,H0(e)}K0()}function K0(){if(!cd&&Di!==null){cd=!0;var e=0;try{var n=Di;io(99,function(){for(;e=n&&(gi=!0),e.firstContext=null)}function Gr(e,n){if(Fs!==e&&n!==!1&&n!==0)if((typeof n!="number"||n===1073741823)&&(Fs=e,n=1073741823),n={context:e,observedBits:n,next:null},Ra===null){if(Rs===null)throw Error(it(308));Ra=n,Rs.dependencies={expirationTime:0,firstContext:n,responders:null}}else Ra=Ra.next=n;return e._currentValue}var oo=!1;function pd(e){e.updateQueue={baseState:e.memoizedState,baseQueue:null,shared:{pending:null},effects:null}}function vd(e,n){e=e.updateQueue,n.updateQueue===e&&(n.updateQueue={baseState:e.baseState,baseQueue:e.baseQueue,shared:e.shared,effects:e.effects})}function ao(e,n){return e={expirationTime:e,suspenseConfig:n,tag:0,payload:null,callback:null,next:null},e.next=e}function uo(e,n){if(e=e.updateQueue,e!==null){e=e.shared;var i=e.pending;i===null?n.next=n:(n.next=i.next,i.next=n),e.pending=n}}function Z0(e,n){var i=e.alternate;i!==null&&vd(i,e),e=e.updateQueue,i=e.baseQueue,i===null?(e.baseQueue=n.next=n,n.next=n):(n.next=i.next,i.next=n)}function el(e,n,i,u){var s=e.updateQueue;oo=!1;var h=s.baseQueue,d=s.shared.pending;if(d!==null){if(h!==null){var v=h.next;h.next=d.next,d.next=v}h=d,s.shared.pending=null,v=e.alternate,v!==null&&(v=v.updateQueue,v!==null&&(v.baseQueue=d))}if(h!==null){v=h.next;var k=s.baseState,S=0,E=null,O=null,ie=null;if(v!==null){var ve=v;do{if(d=ve.expirationTime,dS&&(S=d)}else{ie!==null&&(ie=ie.next={expirationTime:1073741823,suspenseConfig:ve.suspenseConfig,tag:ve.tag,payload:ve.payload,callback:ve.callback,next:null}),Vy(d,ve.suspenseConfig);e:{var ne=e,R=ve;switch(d=n,Ee=i,R.tag){case 1:if(ne=R.payload,typeof ne=="function"){k=ne.call(Ee,k,d);break e}k=ne;break e;case 3:ne.effectTag=ne.effectTag&-4097|64;case 0:if(ne=R.payload,d=typeof ne=="function"?ne.call(Ee,k,d):ne,d==null)break e;k=yr({},k,d);break e;case 2:oo=!0}}ve.callback!==null&&(e.effectTag|=32,d=s.effects,d===null?s.effects=[ve]:d.push(ve))}if(ve=ve.next,ve===null||ve===v){if(d=s.shared.pending,d===null)break;ve=h.next=d.next,d.next=v,s.baseQueue=h=d,s.shared.pending=null}}while(1)}ie===null?E=k:ie.next=O,s.baseState=E,s.baseQueue=ie,cf(S),e.expirationTime=S,e.memoizedState=k}}function J0(e,n,i){if(e=n.effects,n.effects=null,e!==null)for(n=0;nc?(g=B,B=null):g=B.sibling;var x=ie(R,B,Y[c],le);if(x===null){B===null&&(B=g);break}e&&B&&x.alternate===null&&n(R,B),I=h(x,I,c),Re===null?pe=x:Re.sibling=x,Re=x,B=g}if(c===Y.length)return i(R,B),pe;if(B===null){for(;cc?(g=B,B=null):g=B.sibling;var P=ie(R,B,x.value,le);if(P===null){B===null&&(B=g);break}e&&B&&P.alternate===null&&n(R,B),I=h(P,I,c),Re===null?pe=P:Re.sibling=P,Re=P,B=g}if(x.done)return i(R,B),pe;if(B===null){for(;!x.done;c++,x=Y.next())x=O(R,x.value,le),x!==null&&(I=h(x,I,c),Re===null?pe=x:Re.sibling=x,Re=x);return pe}for(B=u(R,B);!x.done;c++,x=Y.next())x=ve(B,R,c,x.value,le),x!==null&&(e&&x.alternate!==null&&B.delete(x.key===null?c:x.key),I=h(x,I,c),Re===null?pe=x:Re.sibling=x,Re=x);return e&&B.forEach(function(b){return n(R,b)}),pe}return function(R,I,Y,le){var pe=typeof Y=="object"&&Y!==null&&Y.type===Io&&Y.key===null;pe&&(Y=Y.props.children);var Re=typeof Y=="object"&&Y!==null;if(Re)switch(Y.$$typeof){case ss:e:{for(Re=Y.key,pe=I;pe!==null;){if(pe.key===Re){switch(pe.tag){case 7:if(Y.type===Io){i(R,pe.sibling),I=s(pe,Y.props.children),I.return=R,R=I;break e}break;default:if(pe.elementType===Y.type){i(R,pe.sibling),I=s(pe,Y.props),I.ref=nl(R,pe,Y),I.return=R,R=I;break e}}i(R,pe);break}else n(R,pe);pe=pe.sibling}Y.type===Io?(I=ho(Y.props.children,R.mode,le,Y.key),I.return=R,R=I):(le=hf(Y.type,Y.key,Y.props,null,R.mode,le),le.ref=nl(R,I,Y),le.return=R,R=le)}return d(R);case Ca:e:{for(pe=Y.key;I!==null;){if(I.key===pe)if(I.tag===4&&I.stateNode.containerInfo===Y.containerInfo&&I.stateNode.implementation===Y.implementation){i(R,I.sibling),I=s(I,Y.children||[]),I.return=R,R=I;break e}else{i(R,I);break}else n(R,I);I=I.sibling}I=Zd(Y,R.mode,le),I.return=R,R=I}return d(R)}if(typeof Y=="string"||typeof Y=="number")return Y=""+Y,I!==null&&I.tag===6?(i(R,I.sibling),I=s(I,Y),I.return=R,R=I):(i(R,I),I=Qd(Y,R.mode,le),I.return=R,R=I),d(R);if(Ws(Y))return Ee(R,I,Y,le);if(Ou(Y))return ne(R,I,Y,le);if(Re&&Us(R,Y),typeof Y=="undefined"&&!pe)switch(R.tag){case 1:case 0:throw R=R.type,Error(it(152,R.displayName||R.name||"Component"))}return i(R,I)}}var za=iy(!0),md=iy(!1),rl={},vi={current:rl},il={current:rl},ol={current:rl};function Wo(e){if(e===rl)throw Error(it(174));return e}function yd(e,n){switch(Dn(ol,n),Dn(il,e),Dn(vi,rl),e=n.nodeType,e){case 9:case 11:n=(n=n.documentElement)?n.namespaceURI:Nh(null,"");break;default:e=e===8?n.parentNode:n,n=e.namespaceURI||null,e=e.tagName,n=Nh(n,e)}wn(vi),Dn(vi,n)}function Ha(){wn(vi),wn(il),wn(ol)}function oy(e){Wo(ol.current);var n=Wo(vi.current),i=Nh(n,e.type);n!==i&&(Dn(il,e),Dn(vi,i))}function wd(e){il.current===e&&(wn(vi),wn(il))}var Mn={current:0};function Bs(e){for(var n=e;n!==null;){if(n.tag===13){var i=n.memoizedState;if(i!==null&&(i=i.dehydrated,i===null||i.data===$h||i.data===Vh))return n}else if(n.tag===19&&n.memoizedProps.revealOrder!==void 0){if((n.effectTag&64)!=0)return n}else if(n.child!==null){n.child.return=n,n=n.child;continue}if(n===e)break;for(;n.sibling===null;){if(n.return===null||n.return===e)return null;n=n.return}n.sibling.return=n.return,n=n.sibling}return null}function xd(e,n){return{responder:e,props:n}}var js=ii.ReactCurrentDispatcher,$r=ii.ReactCurrentBatchConfig,lo=0,Yn=null,ur=null,lr=null,Ys=!1;function Hr(){throw Error(it(321))}function _d(e,n){if(n===null)return!1;for(var i=0;ih))throw Error(it(301));h+=1,lr=ur=null,n.updateQueue=null,js.current=AS,e=i(u,s)}while(n.expirationTime===lo)}if(js.current=Xs,n=ur!==null&&ur.next!==null,lo=0,lr=ur=Yn=null,Ys=!1,n)throw Error(it(300));return e}function Wa(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return lr===null?Yn.memoizedState=lr=e:lr=lr.next=e,lr}function Ua(){if(ur===null){var e=Yn.alternate;e=e!==null?e.memoizedState:null}else e=ur.next;var n=lr===null?Yn.memoizedState:lr.next;if(n!==null)lr=n,ur=e;else{if(e===null)throw Error(it(310));ur=e,e={memoizedState:ur.memoizedState,baseState:ur.baseState,baseQueue:ur.baseQueue,queue:ur.queue,next:null},lr===null?Yn.memoizedState=lr=e:lr=lr.next=e}return lr}function Uo(e,n){return typeof n=="function"?n(e):n}function qs(e){var n=Ua(),i=n.queue;if(i===null)throw Error(it(311));i.lastRenderedReducer=e;var u=ur,s=u.baseQueue,h=i.pending;if(h!==null){if(s!==null){var d=s.next;s.next=h.next,h.next=d}u.baseQueue=s=h,i.pending=null}if(s!==null){s=s.next,u=u.baseState;var v=d=h=null,k=s;do{var S=k.expirationTime;if(SYn.expirationTime&&(Yn.expirationTime=S,cf(S))}else v!==null&&(v=v.next={expirationTime:1073741823,suspenseConfig:k.suspenseConfig,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),Vy(S,k.suspenseConfig),u=k.eagerReducer===e?k.eagerState:e(u,k.action);k=k.next}while(k!==null&&k!==s);v===null?h=u:v.next=d,zo(u,n.memoizedState)||(gi=!0),n.memoizedState=u,n.baseState=h,n.baseQueue=v,i.lastRenderedState=u}return[n.memoizedState,i.dispatch]}function Gs(e){var n=Ua(),i=n.queue;if(i===null)throw Error(it(311));i.lastRenderedReducer=e;var u=i.dispatch,s=i.pending,h=n.memoizedState;if(s!==null){i.pending=null;var d=s=s.next;do h=e(h,d.action),d=d.next;while(d!==s);zo(h,n.memoizedState)||(gi=!0),n.memoizedState=h,n.baseQueue===null&&(n.baseState=h),i.lastRenderedState=h}return[h,u]}function Td(e){var n=Wa();return typeof e=="function"&&(e=e()),n.memoizedState=n.baseState=e,e=n.queue={pending:null,dispatch:null,lastRenderedReducer:Uo,lastRenderedState:e},e=e.dispatch=dy.bind(null,Yn,e),[n.memoizedState,e]}function Sd(e,n,i,u){return e={tag:e,create:n,destroy:i,deps:u,next:null},n=Yn.updateQueue,n===null?(n={lastEffect:null},Yn.updateQueue=n,n.lastEffect=e.next=e):(i=n.lastEffect,i===null?n.lastEffect=e.next=e:(u=i.next,i.next=e,e.next=u,n.lastEffect=e)),e}function ay(){return Ua().memoizedState}function bd(e,n,i,u){var s=Wa();Yn.effectTag|=e,s.memoizedState=Sd(1|n,i,void 0,u===void 0?null:u)}function Cd(e,n,i,u){var s=Ua();u=u===void 0?null:u;var h=void 0;if(ur!==null){var d=ur.memoizedState;if(h=d.destroy,u!==null&&_d(u,d.deps)){Sd(n,i,h,u);return}}Yn.effectTag|=e,s.memoizedState=Sd(1|n,i,h,u)}function uy(e,n){return bd(516,4,e,n)}function $s(e,n){return Cd(516,4,e,n)}function ly(e,n){return Cd(4,2,e,n)}function sy(e,n){if(typeof n=="function")return e=e(),n(e),function(){n(null)};if(n!=null)return e=e(),n.current=e,function(){n.current=null}}function fy(e,n,i){return i=i!=null?i.concat([e]):null,Cd(4,2,sy.bind(null,n,e),i)}function Md(){}function cy(e,n){return Wa().memoizedState=[e,n===void 0?null:n],e}function Vs(e,n){var i=Ua();n=n===void 0?null:n;var u=i.memoizedState;return u!==null&&n!==null&&_d(n,u[1])?u[0]:(i.memoizedState=[e,n],e)}function hy(e,n){var i=Ua();n=n===void 0?null:n;var u=i.memoizedState;return u!==null&&n!==null&&_d(n,u[1])?u[0]:(e=e(),i.memoizedState=[e,n],e)}function Ed(e,n,i){var u=Ds();io(98>u?98:u,function(){e(!0)}),io(97<\/script>",e=e.removeChild(e.firstChild)):typeof u.is=="string"?e=d.createElement(s,{is:u.is}):(e=d.createElement(s),s==="select"&&(d=e,u.multiple?d.multiple=!0:u.size&&(d.size=u.size))):e=d.createElementNS(e,s),e[to]=n,e[Ts]=u,Cy(e,n,!1,!1),n.stateNode=e,d=Yh(s,u),s){case"iframe":case"object":case"embed":Sn("load",e),v=u;break;case"video":case"audio":for(v=0;vu.tailExpiration&&1n)&&Yo.set(e,n)))}}function sf(e,n){e.expirationTimee?i:e,2>=e&&n!==e?0:e}function Br(e){if(e.lastExpiredTime!==0)e.callbackExpirationTime=1073741823,e.callbackPriority=99,e.callbackNode=X0(Gd.bind(null,e));else{var n=ff(e),i=e.callbackNode;if(n===0)i!==null&&(e.callbackNode=null,e.callbackExpirationTime=0,e.callbackPriority=90);else{var u=yi();if(n===1073741823?u=99:n===1||n===2?u=95:(u=10*(1073741821-n)-10*(1073741821-u),u=0>=u?99:250>=u?98:5250>=u?97:95),i!==null){var s=e.callbackPriority;if(e.callbackExpirationTime===n&&s>=u)return;i!==q0&&H0(i)}e.callbackExpirationTime=n,e.callbackPriority=u,n=n===1073741823?X0(Gd.bind(null,e)):V0(u,jy.bind(null,e),{timeout:10*(1073741821-n)-qr()}),e.callbackNode=n}}}function jy(e,n){if(lf=0,n)return n=yi(),Jd(e,n),Br(e),null;var i=ff(e);if(i!==0){if(n=e.callbackNode,(Dt&(ai|mi))!==Vn)throw Error(it(327));if(Ba(),e===Ur&&i===Lr||Go(e,i),Ht!==null){var u=Dt;Dt|=ai;var s=$y();do try{GS();break}catch(v){Gy(e,v)}while(1);if(hd(),Dt=u,Zs.current=s,Xn===Js)throw n=nf,Go(e,i),Ko(e,i),Br(e),n;if(Ht===null)switch(s=e.finishedWork=e.current.alternate,e.finishedExpirationTime=i,u=Xn,Ur=null,u){case jo:case Js:throw Error(it(345));case Uy:Jd(e,2=i){e.lastPingedTime=i,Go(e,i);break}}if(h=ff(e),h!==0&&h!==i)break;if(u!==0&&u!==i){e.lastPingedTime=u;break}e.timeoutHandle=Zh($o.bind(null,e),s);break}$o(e);break;case tf:if(Ko(e,i),u=e.lastSuspendedTime,i===u&&(e.nextKnownPendingLevel=$d(s)),of&&(s=e.lastPingedTime,s===0||s>=i)){e.lastPingedTime=i,Go(e,i);break}if(s=ff(e),s!==0&&s!==i)break;if(u!==0&&u!==i){e.lastPingedTime=u;break}if(al!==1073741823?u=10*(1073741821-al)-qr():Ri===1073741823?u=0:(u=10*(1073741821-Ri)-5e3,s=qr(),i=10*(1073741821-i)-s,u=s-u,0>u&&(u=0),u=(120>u?120:480>u?480:1080>u?1080:1920>u?1920:3e3>u?3e3:4320>u?4320:1960*jS(u/1960))-u,i=u?u=0:(s=d.busyDelayMs|0,h=qr()-(10*(1073741821-h)-(d.timeoutMs|0||5e3)),u=h<=s?0:s+u-h),10Bc(e,"__esModule",{value:!0});var yt=(e,n)=>()=>(n||e((n={exports:{}}).exports,n),n.exports);var Kk=(e,n,i)=>{if(n&&typeof n=="object"||typeof n=="function")for(let u of Gk(n))!Vk.call(e,u)&&u!=="default"&&Bc(e,u,{get:()=>n[u],enumerable:!(i=qk(n,u))||i.enumerable});return e},jt=e=>Kk(Xk(Bc(e!=null?Yk($k(e)):{},"default",e&&e.__esModule&&"default"in e?{get:()=>e.default,enumerable:!0}:{value:e,enumerable:!0})),e);var jc=yt((HM,zg)=>{"use strict";var Fg=Object.getOwnPropertySymbols,Qk=Object.prototype.hasOwnProperty,Zk=Object.prototype.propertyIsEnumerable;function Jk(e){if(e==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}function eT(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de",Object.getOwnPropertyNames(e)[0]==="5")return!1;for(var n={},i=0;i<10;i++)n["_"+String.fromCharCode(i)]=i;var u=Object.getOwnPropertyNames(n).map(function(h){return n[h]});if(u.join("")!=="0123456789")return!1;var s={};return"abcdefghijklmnopqrst".split("").forEach(function(h){s[h]=h}),Object.keys(Object.assign({},s)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}zg.exports=eT()?Object.assign:function(e,n){for(var i,u=Jk(e),s,h=1;h{"use strict";var Yc=jc(),ni=typeof Symbol=="function"&&Symbol.for,bu=ni?Symbol.for("react.element"):60103,tT=ni?Symbol.for("react.portal"):60106,nT=ni?Symbol.for("react.fragment"):60107,rT=ni?Symbol.for("react.strict_mode"):60108,iT=ni?Symbol.for("react.profiler"):60114,oT=ni?Symbol.for("react.provider"):60109,aT=ni?Symbol.for("react.context"):60110,uT=ni?Symbol.for("react.forward_ref"):60112,lT=ni?Symbol.for("react.suspense"):60113,sT=ni?Symbol.for("react.memo"):60115,fT=ni?Symbol.for("react.lazy"):60116,Hg=typeof Symbol=="function"&&Symbol.iterator;function Cu(e){for(var n="https://reactjs.org/docs/error-decoder.html?invariant="+e,i=1;iVl.length&&Vl.push(e)}function Xc(e,n,i,u){var s=typeof e;(s==="undefined"||s==="boolean")&&(e=null);var h=!1;if(e===null)h=!0;else switch(s){case"string":case"number":h=!0;break;case"object":switch(e.$$typeof){case bu:case tT:h=!0}}if(h)return i(u,e,n===""?"."+Qc(e,0):n),1;if(h=0,n=n===""?".":n+":",Array.isArray(e))for(var d=0;d{"use strict";Qg.exports=Kg()});var im=yt(un=>{"use strict";var xa,Mu,Xl,Kl,Jc;typeof window=="undefined"||typeof MessageChannel!="function"?(_a=null,eh=null,th=function(){if(_a!==null)try{var e=un.unstable_now();_a(!0,e),_a=null}catch(n){throw setTimeout(th,0),n}},Zg=Date.now(),un.unstable_now=function(){return Date.now()-Zg},xa=function(e){_a!==null?setTimeout(xa,0,e):(_a=e,setTimeout(th,0))},Mu=function(e,n){eh=setTimeout(e,n)},Xl=function(){clearTimeout(eh)},Kl=function(){return!1},Jc=un.unstable_forceFrameRate=function(){}):(Ql=window.performance,nh=window.Date,Jg=window.setTimeout,em=window.clearTimeout,typeof console!="undefined"&&(tm=window.cancelAnimationFrame,typeof window.requestAnimationFrame!="function"&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills"),typeof tm!="function"&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills")),typeof Ql=="object"&&typeof Ql.now=="function"?un.unstable_now=function(){return Ql.now()}:(nm=nh.now(),un.unstable_now=function(){return nh.now()-nm}),Eu=!1,Nu=null,Zl=-1,rh=5,ih=0,Kl=function(){return un.unstable_now()>=ih},Jc=function(){},un.unstable_forceFrameRate=function(e){0>e||125>>1,s=e[u];if(s!==void 0&&0ts(d,i))k!==void 0&&0>ts(k,d)?(e[u]=k,e[v]=i,u=v):(e[u]=d,e[h]=i,u=h);else if(k!==void 0&&0>ts(k,i))e[u]=k,e[v]=i,u=v;else break e}}return n}return null}function ts(e,n){var i=e.sortIndex-n.sortIndex;return i!==0?i:e.id-n.id}var ri=[],Xi=[],gT=1,mr=null,or=3,ns=!1,Do=!1,Pu=!1;function rs(e){for(var n=Yr(Xi);n!==null;){if(n.callback===null)es(Xi);else if(n.startTime<=e)es(Xi),n.sortIndex=n.expirationTime,ah(ri,n);else break;n=Yr(Xi)}}function uh(e){if(Pu=!1,rs(e),!Do)if(Yr(ri)!==null)Do=!0,xa(lh);else{var n=Yr(Xi);n!==null&&Mu(uh,n.startTime-e)}}function lh(e,n){Do=!1,Pu&&(Pu=!1,Xl()),ns=!0;var i=or;try{for(rs(n),mr=Yr(ri);mr!==null&&(!(mr.expirationTime>n)||e&&!Kl());){var u=mr.callback;if(u!==null){mr.callback=null,or=mr.priorityLevel;var s=u(mr.expirationTime<=n);n=un.unstable_now(),typeof s=="function"?mr.callback=s:mr===Yr(ri)&&es(ri),rs(n)}else es(ri);mr=Yr(ri)}if(mr!==null)var h=!0;else{var d=Yr(Xi);d!==null&&Mu(uh,d.startTime-n),h=!1}return h}finally{mr=null,or=i,ns=!1}}function rm(e){switch(e){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1e4;default:return 5e3}}var mT=Jc;un.unstable_IdlePriority=5;un.unstable_ImmediatePriority=1;un.unstable_LowPriority=4;un.unstable_NormalPriority=3;un.unstable_Profiling=null;un.unstable_UserBlockingPriority=2;un.unstable_cancelCallback=function(e){e.callback=null};un.unstable_continueExecution=function(){Do||ns||(Do=!0,xa(lh))};un.unstable_getCurrentPriorityLevel=function(){return or};un.unstable_getFirstCallbackNode=function(){return Yr(ri)};un.unstable_next=function(e){switch(or){case 1:case 2:case 3:var n=3;break;default:n=or}var i=or;or=n;try{return e()}finally{or=i}};un.unstable_pauseExecution=function(){};un.unstable_requestPaint=mT;un.unstable_runWithPriority=function(e,n){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var i=or;or=e;try{return n()}finally{or=i}};un.unstable_scheduleCallback=function(e,n,i){var u=un.unstable_now();if(typeof i=="object"&&i!==null){var s=i.delay;s=typeof s=="number"&&0u?(e.sortIndex=s,ah(Xi,e),Yr(ri)===null&&e===Yr(Xi)&&(Pu?Xl():Pu=!0,Mu(uh,s-u))):(e.sortIndex=i,ah(ri,e),Do||ns||(Do=!0,xa(lh))),e};un.unstable_shouldYield=function(){var e=un.unstable_now();rs(e);var n=Yr(ri);return n!==mr&&mr!==null&&n!==null&&n.callback!==null&&n.startTime<=e&&n.expirationTime{"use strict";om.exports=im()});var i1=yt(Vr=>{"use strict";var is=wn(),yr=jc(),tr=am();function it(e){for(var n="https://reactjs.org/docs/error-decoder.html?invariant="+e,i=1;in}return!1}function wr(e,n,i,u,s,h){this.acceptsBooleans=n===2||n===3||n===4,this.attributeName=u,this.attributeNamespace=s,this.mustUseProperty=i,this.propertyName=e,this.type=n,this.sanitizeURL=h}var nr={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){nr[e]=new wr(e,0,!1,e,null,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var n=e[0];nr[n]=new wr(n,1,!1,e[1],null,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){nr[e]=new wr(e,2,!1,e.toLowerCase(),null,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){nr[e]=new wr(e,2,!1,e,null,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){nr[e]=new wr(e,3,!1,e.toLowerCase(),null,!1)});["checked","multiple","muted","selected"].forEach(function(e){nr[e]=new wr(e,3,!0,e,null,!1)});["capture","download"].forEach(function(e){nr[e]=new wr(e,4,!1,e,null,!1)});["cols","rows","size","span"].forEach(function(e){nr[e]=new wr(e,6,!1,e,null,!1)});["rowSpan","start"].forEach(function(e){nr[e]=new wr(e,5,!1,e.toLowerCase(),null,!1)});var yh=/[\-:]([a-z])/g;function wh(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var n=e.replace(yh,wh);nr[n]=new wr(n,1,!1,e,null,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var n=e.replace(yh,wh);nr[n]=new wr(n,1,!1,e,"http://www.w3.org/1999/xlink",!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var n=e.replace(yh,wh);nr[n]=new wr(n,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1)});["tabIndex","crossOrigin"].forEach(function(e){nr[e]=new wr(e,1,!1,e.toLowerCase(),null,!1)});nr.xlinkHref=new wr("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0);["src","href","action","formAction"].forEach(function(e){nr[e]=new wr(e,1,!1,e.toLowerCase(),null,!0)});var ii=is.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;ii.hasOwnProperty("ReactCurrentDispatcher")||(ii.ReactCurrentDispatcher={current:null});ii.hasOwnProperty("ReactCurrentBatchConfig")||(ii.ReactCurrentBatchConfig={suspense:null});function xh(e,n,i,u){var s=nr.hasOwnProperty(n)?nr[n]:null,h=s!==null?s.type===0:u?!1:!(!(2=i.length))throw Error(it(93));i=i[0]}n=i}n==null&&(n=""),i=n}e._wrapperState={initialValue:Qi(i)}}function Am(e,n){var i=Qi(n.value),u=Qi(n.defaultValue);i!=null&&(i=""+i,i!==e.value&&(e.value=i),n.defaultValue==null&&e.defaultValue!==i&&(e.defaultValue=i)),u!=null&&(e.defaultValue=""+u)}function Im(e){var n=e.textContent;n===e._wrapperState.initialValue&&n!==""&&n!==null&&(e.value=n)}var Rm={html:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg"};function Fm(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function Ph(e,n){return e==null||e==="http://www.w3.org/1999/xhtml"?Fm(n):e==="http://www.w3.org/2000/svg"&&n==="foreignObject"?"http://www.w3.org/1999/xhtml":e}var ds,zm=function(e){return typeof MSApp!="undefined"&&MSApp.execUnsafeLocalFunction?function(n,i,u,s){MSApp.execUnsafeLocalFunction(function(){return e(n,i,u,s)})}:e}(function(e,n){if(e.namespaceURI!==Rm.svg||"innerHTML"in e)e.innerHTML=n;else{for(ds=ds||document.createElement("div"),ds.innerHTML=""+n.valueOf().toString()+"",n=ds.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;n.firstChild;)e.appendChild(n.firstChild)}});function Du(e,n){if(n){var i=e.firstChild;if(i&&i===e.lastChild&&i.nodeType===3){i.nodeValue=n;return}}e.textContent=n}function ps(e,n){var i={};return i[e.toLowerCase()]=n.toLowerCase(),i["Webkit"+e]="webkit"+n,i["Moz"+e]="moz"+n,i}var Ea={animationend:ps("Animation","AnimationEnd"),animationiteration:ps("Animation","AnimationIteration"),animationstart:ps("Animation","AnimationStart"),transitionend:ps("Transition","TransitionEnd")},Lh={},Hm={};Ki&&(Hm=document.createElement("div").style,"AnimationEvent"in window||(delete Ea.animationend.animation,delete Ea.animationiteration.animation,delete Ea.animationstart.animation),"TransitionEvent"in window||delete Ea.transitionend.transition);function vs(e){if(Lh[e])return Lh[e];if(!Ea[e])return e;var n=Ea[e],i;for(i in n)if(n.hasOwnProperty(i)&&i in Hm)return Lh[e]=n[i];return e}var Wm=vs("animationend"),Um=vs("animationiteration"),Bm=vs("animationstart"),jm=vs("transitionend"),Au="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Ym=new(typeof WeakMap=="function"?WeakMap:Map);function Oh(e){var n=Ym.get(e);return n===void 0&&(n=new Map,Ym.set(e,n)),n}function Ro(e){var n=e,i=e;if(e.alternate)for(;n.return;)n=n.return;else{e=n;do n=e,(n.effectTag&1026)!=0&&(i=n.return),e=n.return;while(e)}return n.tag===3?i:null}function qm(e){if(e.tag===13){var n=e.memoizedState;if(n===null&&(e=e.alternate,e!==null&&(n=e.memoizedState)),n!==null)return n.dehydrated}return null}function Gm(e){if(Ro(e)!==e)throw Error(it(188))}function LT(e){var n=e.alternate;if(!n){if(n=Ro(e),n===null)throw Error(it(188));return n!==e?null:e}for(var i=e,u=n;;){var s=i.return;if(s===null)break;var h=s.alternate;if(h===null){if(u=s.return,u!==null){i=u;continue}break}if(s.child===h.child){for(h=s.child;h;){if(h===i)return Gm(s),e;if(h===u)return Gm(s),n;h=h.sibling}throw Error(it(188))}if(i.return!==u.return)i=s,u=h;else{for(var d=!1,v=s.child;v;){if(v===i){d=!0,i=s,u=h;break}if(v===u){d=!0,u=s,i=h;break}v=v.sibling}if(!d){for(v=h.child;v;){if(v===i){d=!0,i=h,u=s;break}if(v===u){d=!0,u=h,i=s;break}v=v.sibling}if(!d)throw Error(it(189))}}if(i.alternate!==u)throw Error(it(190))}if(i.tag!==3)throw Error(it(188));return i.stateNode.current===i?e:n}function $m(e){if(e=LT(e),!e)return null;for(var n=e;;){if(n.tag===5||n.tag===6)return n;if(n.child)n.child.return=n,n=n.child;else{if(n===e)break;for(;!n.sibling;){if(!n.return||n.return===e)return null;n=n.return}n.sibling.return=n.return,n=n.sibling}}return null}function Na(e,n){if(n==null)throw Error(it(30));return e==null?n:Array.isArray(e)?Array.isArray(n)?(e.push.apply(e,n),e):(e.push(n),e):Array.isArray(n)?[e].concat(n):[e,n]}function Dh(e,n,i){Array.isArray(e)?e.forEach(n,i):e&&n.call(i,e)}var Iu=null;function OT(e){if(e){var n=e._dispatchListeners,i=e._dispatchInstances;if(Array.isArray(n))for(var u=0;ums.length&&ms.push(e)}function Km(e,n,i,u){if(ms.length){var s=ms.pop();return s.topLevelType=e,s.eventSystemFlags=u,s.nativeEvent=n,s.targetInst=i,s}return{topLevelType:e,eventSystemFlags:u,nativeEvent:n,targetInst:i,ancestors:[]}}function Qm(e){var n=e.targetInst,i=n;do{if(!i){e.ancestors.push(i);break}var u=i;if(u.tag===3)u=u.stateNode.containerInfo;else{for(;u.return;)u=u.return;u=u.tag!==3?null:u.stateNode.containerInfo}if(!u)break;n=i.tag,n!==5&&n!==6||e.ancestors.push(i),i=Yu(u)}while(i);for(i=0;i=n)return{node:i,offset:n-e};e=u}e:{for(;i;){if(i.nextSibling){i=i.nextSibling;break e}i=i.parentNode}i=void 0}i=l0(i)}}function f0(e,n){return e&&n?e===n?!0:e&&e.nodeType===3?!1:n&&n.nodeType===3?f0(e,n.parentNode):"contains"in e?e.contains(n):e.compareDocumentPosition?!!(e.compareDocumentPosition(n)&16):!1:!1}function c0(){for(var e=window,n=Gh();n instanceof e.HTMLIFrameElement;){try{var i=typeof n.contentWindow.location.href=="string"}catch{i=!1}if(i)e=n.contentWindow;else break;n=Gh(e.document)}return n}function $h(e){var n=e&&e.nodeName&&e.nodeName.toLowerCase();return n&&(n==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||n==="textarea"||e.contentEditable==="true")}var h0="$",d0="/$",Vh="$?",Xh="$!",Kh=null,Qh=null;function p0(e,n){switch(e){case"button":case"input":case"select":case"textarea":return!!n.autoFocus}return!1}function Zh(e,n){return e==="textarea"||e==="option"||e==="noscript"||typeof n.children=="string"||typeof n.children=="number"||typeof n.dangerouslySetInnerHTML=="object"&&n.dangerouslySetInnerHTML!==null&&n.dangerouslySetInnerHTML.__html!=null}var Jh=typeof setTimeout=="function"?setTimeout:void 0,qT=typeof clearTimeout=="function"?clearTimeout:void 0;function Pa(e){for(;e!=null;e=e.nextSibling){var n=e.nodeType;if(n===1||n===3)break}return e}function v0(e){e=e.previousSibling;for(var n=0;e;){if(e.nodeType===8){var i=e.data;if(i===h0||i===Xh||i===Vh){if(n===0)return e;n--}else i===d0&&n++}e=e.previousSibling}return null}var ed=Math.random().toString(36).slice(2),to="__reactInternalInstance$"+ed,Ts="__reactEventHandlers$"+ed,ju="__reactContainere$"+ed;function Yu(e){var n=e[to];if(n)return n;for(var i=e.parentNode;i;){if(n=i[ju]||i[to]){if(i=n.alternate,n.child!==null||i!==null&&i.child!==null)for(e=v0(e);e!==null;){if(i=e[to])return i;e=v0(e)}return n}e=i,i=e.parentNode}return null}function qu(e){return e=e[to]||e[ju],!e||e.tag!==5&&e.tag!==6&&e.tag!==13&&e.tag!==3?null:e}function Fo(e){if(e.tag===5||e.tag===6)return e.stateNode;throw Error(it(33))}function td(e){return e[Ts]||null}function Li(e){do e=e.return;while(e&&e.tag!==5);return e||null}function g0(e,n){var i=e.stateNode;if(!i)return null;var u=fh(i);if(!u)return null;i=u[n];e:switch(n){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(u=!u.disabled)||(e=e.type,u=!(e==="button"||e==="input"||e==="select"||e==="textarea")),e=!u;break e;default:e=!1}if(e)return null;if(i&&typeof i!="function")throw Error(it(231,n,typeof i));return i}function m0(e,n,i){(n=g0(e,i.dispatchConfig.phasedRegistrationNames[n]))&&(i._dispatchListeners=Na(i._dispatchListeners,n),i._dispatchInstances=Na(i._dispatchInstances,e))}function GT(e){if(e&&e.dispatchConfig.phasedRegistrationNames){for(var n=e._targetInst,i=[];n;)i.push(n),n=Li(n);for(n=i.length;0this.eventPool.length&&this.eventPool.push(e)}function w0(e){e.eventPool=[],e.getPooled=VT,e.release=XT}var KT=zr.extend({data:null}),QT=zr.extend({data:null}),ZT=[9,13,27,32],id=Ki&&"CompositionEvent"in window,Gu=null;Ki&&"documentMode"in document&&(Gu=document.documentMode);var JT=Ki&&"TextEvent"in window&&!Gu,x0=Ki&&(!id||Gu&&8=Gu),_0=String.fromCharCode(32),Oi={beforeInput:{phasedRegistrationNames:{bubbled:"onBeforeInput",captured:"onBeforeInputCapture"},dependencies:["compositionend","keypress","textInput","paste"]},compositionEnd:{phasedRegistrationNames:{bubbled:"onCompositionEnd",captured:"onCompositionEndCapture"},dependencies:"blur compositionend keydown keypress keyup mousedown".split(" ")},compositionStart:{phasedRegistrationNames:{bubbled:"onCompositionStart",captured:"onCompositionStartCapture"},dependencies:"blur compositionstart keydown keypress keyup mousedown".split(" ")},compositionUpdate:{phasedRegistrationNames:{bubbled:"onCompositionUpdate",captured:"onCompositionUpdateCapture"},dependencies:"blur compositionupdate keydown keypress keyup mousedown".split(" ")}},k0=!1;function T0(e,n){switch(e){case"keyup":return ZT.indexOf(n.keyCode)!==-1;case"keydown":return n.keyCode!==229;case"keypress":case"mousedown":case"blur":return!0;default:return!1}}function S0(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Oa=!1;function eS(e,n){switch(e){case"compositionend":return S0(n);case"keypress":return n.which!==32?null:(k0=!0,_0);case"textInput":return e=n.data,e===_0&&k0?null:e;default:return null}}function tS(e,n){if(Oa)return e==="compositionend"||!id&&T0(e,n)?(e=y0(),Ss=rd=no=null,Oa=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(n.ctrlKey||n.altKey||n.metaKey)||n.ctrlKey&&n.altKey){if(n.char&&1=document.documentMode,I0={select:{phasedRegistrationNames:{bubbled:"onSelect",captured:"onSelectCapture"},dependencies:"blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange".split(" ")}},Da=null,ud=null,Ju=null,ld=!1;function R0(e,n){var i=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;return ld||Da==null||Da!==Gh(i)?null:(i=Da,"selectionStart"in i&&$h(i)?i={start:i.selectionStart,end:i.selectionEnd}:(i=(i.ownerDocument&&i.ownerDocument.defaultView||window).getSelection(),i={anchorNode:i.anchorNode,anchorOffset:i.anchorOffset,focusNode:i.focusNode,focusOffset:i.focusOffset}),Ju&&Zu(Ju,i)?null:(Ju=i,e=zr.getPooled(I0.select,ud,e,n),e.type="select",e.target=Da,La(e),e))}var mS={eventTypes:I0,extractEvents:function(e,n,i,u,s,h){if(s=h||(u.window===u?u.document:u.nodeType===9?u:u.ownerDocument),!(h=!s)){e:{s=Oh(s),h=hh.onSelect;for(var d=0;dAa||(e.current=sd[Aa],sd[Aa]=null,Aa--)}function Dn(e,n){Aa++,sd[Aa]=e.current,e.current=n}var ro={},ar={current:ro},Nr={current:!1},Ho=ro;function Ia(e,n){var i=e.type.contextTypes;if(!i)return ro;var u=e.stateNode;if(u&&u.__reactInternalMemoizedUnmaskedChildContext===n)return u.__reactInternalMemoizedMaskedChildContext;var s={},h;for(h in i)s[h]=n[h];return u&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=n,e.__reactInternalMemoizedMaskedChildContext=s),s}function Pr(e){return e=e.childContextTypes,e!=null}function Ns(){xn(Nr),xn(ar)}function F0(e,n,i){if(ar.current!==ro)throw Error(it(168));Dn(ar,n),Dn(Nr,i)}function z0(e,n,i){var u=e.stateNode;if(e=n.childContextTypes,typeof u.getChildContext!="function")return i;u=u.getChildContext();for(var s in u)if(!(s in e))throw Error(it(108,Ni(n)||"Unknown",s));return yr({},i,{},u)}function Ps(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||ro,Ho=ar.current,Dn(ar,e),Dn(Nr,Nr.current),!0}function H0(e,n,i){var u=e.stateNode;if(!u)throw Error(it(169));i?(e=z0(e,n,Ho),u.__reactInternalMemoizedMergedChildContext=e,xn(Nr),xn(ar),Dn(ar,e)):xn(Nr),Dn(Nr,i)}var PS=tr.unstable_runWithPriority,fd=tr.unstable_scheduleCallback,W0=tr.unstable_cancelCallback,U0=tr.unstable_requestPaint,cd=tr.unstable_now,LS=tr.unstable_getCurrentPriorityLevel,Ls=tr.unstable_ImmediatePriority,B0=tr.unstable_UserBlockingPriority,j0=tr.unstable_NormalPriority,Y0=tr.unstable_LowPriority,q0=tr.unstable_IdlePriority,G0={},OS=tr.unstable_shouldYield,DS=U0!==void 0?U0:function(){},Di=null,Os=null,hd=!1,$0=cd(),qr=1e4>$0?cd:function(){return cd()-$0};function Ds(){switch(LS()){case Ls:return 99;case B0:return 98;case j0:return 97;case Y0:return 96;case q0:return 95;default:throw Error(it(332))}}function V0(e){switch(e){case 99:return Ls;case 98:return B0;case 97:return j0;case 96:return Y0;case 95:return q0;default:throw Error(it(332))}}function io(e,n){return e=V0(e),PS(e,n)}function X0(e,n,i){return e=V0(e),fd(e,n,i)}function K0(e){return Di===null?(Di=[e],Os=fd(Ls,Q0)):Di.push(e),G0}function pi(){if(Os!==null){var e=Os;Os=null,W0(e)}Q0()}function Q0(){if(!hd&&Di!==null){hd=!0;var e=0;try{var n=Di;io(99,function(){for(;e=n&&(gi=!0),e.firstContext=null)}function Gr(e,n){if(Fs!==e&&n!==!1&&n!==0)if((typeof n!="number"||n===1073741823)&&(Fs=e,n=1073741823),n={context:e,observedBits:n,next:null},Ra===null){if(Rs===null)throw Error(it(308));Ra=n,Rs.dependencies={expirationTime:0,firstContext:n,responders:null}}else Ra=Ra.next=n;return e._currentValue}var oo=!1;function vd(e){e.updateQueue={baseState:e.memoizedState,baseQueue:null,shared:{pending:null},effects:null}}function gd(e,n){e=e.updateQueue,n.updateQueue===e&&(n.updateQueue={baseState:e.baseState,baseQueue:e.baseQueue,shared:e.shared,effects:e.effects})}function ao(e,n){return e={expirationTime:e,suspenseConfig:n,tag:0,payload:null,callback:null,next:null},e.next=e}function uo(e,n){if(e=e.updateQueue,e!==null){e=e.shared;var i=e.pending;i===null?n.next=n:(n.next=i.next,i.next=n),e.pending=n}}function J0(e,n){var i=e.alternate;i!==null&&gd(i,e),e=e.updateQueue,i=e.baseQueue,i===null?(e.baseQueue=n.next=n,n.next=n):(n.next=i.next,i.next=n)}function el(e,n,i,u){var s=e.updateQueue;oo=!1;var h=s.baseQueue,d=s.shared.pending;if(d!==null){if(h!==null){var v=h.next;h.next=d.next,d.next=v}h=d,s.shared.pending=null,v=e.alternate,v!==null&&(v=v.updateQueue,v!==null&&(v.baseQueue=d))}if(h!==null){v=h.next;var k=s.baseState,S=0,E=null,O=null,ie=null;if(v!==null){var ve=v;do{if(d=ve.expirationTime,dS&&(S=d)}else{ie!==null&&(ie=ie.next={expirationTime:1073741823,suspenseConfig:ve.suspenseConfig,tag:ve.tag,payload:ve.payload,callback:ve.callback,next:null}),Xy(d,ve.suspenseConfig);e:{var ne=e,R=ve;switch(d=n,Ee=i,R.tag){case 1:if(ne=R.payload,typeof ne=="function"){k=ne.call(Ee,k,d);break e}k=ne;break e;case 3:ne.effectTag=ne.effectTag&-4097|64;case 0:if(ne=R.payload,d=typeof ne=="function"?ne.call(Ee,k,d):ne,d==null)break e;k=yr({},k,d);break e;case 2:oo=!0}}ve.callback!==null&&(e.effectTag|=32,d=s.effects,d===null?s.effects=[ve]:d.push(ve))}if(ve=ve.next,ve===null||ve===v){if(d=s.shared.pending,d===null)break;ve=h.next=d.next,d.next=v,s.baseQueue=h=d,s.shared.pending=null}}while(1)}ie===null?E=k:ie.next=O,s.baseState=E,s.baseQueue=ie,cf(S),e.expirationTime=S,e.memoizedState=k}}function ey(e,n,i){if(e=n.effects,n.effects=null,e!==null)for(n=0;nc?(g=B,B=null):g=B.sibling;var x=ie(R,B,Y[c],le);if(x===null){B===null&&(B=g);break}e&&B&&x.alternate===null&&n(R,B),I=h(x,I,c),Re===null?pe=x:Re.sibling=x,Re=x,B=g}if(c===Y.length)return i(R,B),pe;if(B===null){for(;cc?(g=B,B=null):g=B.sibling;var P=ie(R,B,x.value,le);if(P===null){B===null&&(B=g);break}e&&B&&P.alternate===null&&n(R,B),I=h(P,I,c),Re===null?pe=P:Re.sibling=P,Re=P,B=g}if(x.done)return i(R,B),pe;if(B===null){for(;!x.done;c++,x=Y.next())x=O(R,x.value,le),x!==null&&(I=h(x,I,c),Re===null?pe=x:Re.sibling=x,Re=x);return pe}for(B=u(R,B);!x.done;c++,x=Y.next())x=ve(B,R,c,x.value,le),x!==null&&(e&&x.alternate!==null&&B.delete(x.key===null?c:x.key),I=h(x,I,c),Re===null?pe=x:Re.sibling=x,Re=x);return e&&B.forEach(function(b){return n(R,b)}),pe}return function(R,I,Y,le){var pe=typeof Y=="object"&&Y!==null&&Y.type===Io&&Y.key===null;pe&&(Y=Y.props.children);var Re=typeof Y=="object"&&Y!==null;if(Re)switch(Y.$$typeof){case ss:e:{for(Re=Y.key,pe=I;pe!==null;){if(pe.key===Re){switch(pe.tag){case 7:if(Y.type===Io){i(R,pe.sibling),I=s(pe,Y.props.children),I.return=R,R=I;break e}break;default:if(pe.elementType===Y.type){i(R,pe.sibling),I=s(pe,Y.props),I.ref=nl(R,pe,Y),I.return=R,R=I;break e}}i(R,pe);break}else n(R,pe);pe=pe.sibling}Y.type===Io?(I=ho(Y.props.children,R.mode,le,Y.key),I.return=R,R=I):(le=hf(Y.type,Y.key,Y.props,null,R.mode,le),le.ref=nl(R,I,Y),le.return=R,R=le)}return d(R);case Ca:e:{for(pe=Y.key;I!==null;){if(I.key===pe)if(I.tag===4&&I.stateNode.containerInfo===Y.containerInfo&&I.stateNode.implementation===Y.implementation){i(R,I.sibling),I=s(I,Y.children||[]),I.return=R,R=I;break e}else{i(R,I);break}else n(R,I);I=I.sibling}I=Jd(Y,R.mode,le),I.return=R,R=I}return d(R)}if(typeof Y=="string"||typeof Y=="number")return Y=""+Y,I!==null&&I.tag===6?(i(R,I.sibling),I=s(I,Y),I.return=R,R=I):(i(R,I),I=Zd(Y,R.mode,le),I.return=R,R=I),d(R);if(Ws(Y))return Ee(R,I,Y,le);if(Ou(Y))return ne(R,I,Y,le);if(Re&&Us(R,Y),typeof Y=="undefined"&&!pe)switch(R.tag){case 1:case 0:throw R=R.type,Error(it(152,R.displayName||R.name||"Component"))}return i(R,I)}}var za=oy(!0),yd=oy(!1),rl={},vi={current:rl},il={current:rl},ol={current:rl};function Wo(e){if(e===rl)throw Error(it(174));return e}function wd(e,n){switch(Dn(ol,n),Dn(il,e),Dn(vi,rl),e=n.nodeType,e){case 9:case 11:n=(n=n.documentElement)?n.namespaceURI:Ph(null,"");break;default:e=e===8?n.parentNode:n,n=e.namespaceURI||null,e=e.tagName,n=Ph(n,e)}xn(vi),Dn(vi,n)}function Ha(){xn(vi),xn(il),xn(ol)}function ay(e){Wo(ol.current);var n=Wo(vi.current),i=Ph(n,e.type);n!==i&&(Dn(il,e),Dn(vi,i))}function xd(e){il.current===e&&(xn(vi),xn(il))}var Mn={current:0};function Bs(e){for(var n=e;n!==null;){if(n.tag===13){var i=n.memoizedState;if(i!==null&&(i=i.dehydrated,i===null||i.data===Vh||i.data===Xh))return n}else if(n.tag===19&&n.memoizedProps.revealOrder!==void 0){if((n.effectTag&64)!=0)return n}else if(n.child!==null){n.child.return=n,n=n.child;continue}if(n===e)break;for(;n.sibling===null;){if(n.return===null||n.return===e)return null;n=n.return}n.sibling.return=n.return,n=n.sibling}return null}function _d(e,n){return{responder:e,props:n}}var js=ii.ReactCurrentDispatcher,$r=ii.ReactCurrentBatchConfig,lo=0,Yn=null,ur=null,lr=null,Ys=!1;function Hr(){throw Error(it(321))}function kd(e,n){if(n===null)return!1;for(var i=0;ih))throw Error(it(301));h+=1,lr=ur=null,n.updateQueue=null,js.current=RS,e=i(u,s)}while(n.expirationTime===lo)}if(js.current=Xs,n=ur!==null&&ur.next!==null,lo=0,lr=ur=Yn=null,Ys=!1,n)throw Error(it(300));return e}function Wa(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return lr===null?Yn.memoizedState=lr=e:lr=lr.next=e,lr}function Ua(){if(ur===null){var e=Yn.alternate;e=e!==null?e.memoizedState:null}else e=ur.next;var n=lr===null?Yn.memoizedState:lr.next;if(n!==null)lr=n,ur=e;else{if(e===null)throw Error(it(310));ur=e,e={memoizedState:ur.memoizedState,baseState:ur.baseState,baseQueue:ur.baseQueue,queue:ur.queue,next:null},lr===null?Yn.memoizedState=lr=e:lr=lr.next=e}return lr}function Uo(e,n){return typeof n=="function"?n(e):n}function qs(e){var n=Ua(),i=n.queue;if(i===null)throw Error(it(311));i.lastRenderedReducer=e;var u=ur,s=u.baseQueue,h=i.pending;if(h!==null){if(s!==null){var d=s.next;s.next=h.next,h.next=d}u.baseQueue=s=h,i.pending=null}if(s!==null){s=s.next,u=u.baseState;var v=d=h=null,k=s;do{var S=k.expirationTime;if(SYn.expirationTime&&(Yn.expirationTime=S,cf(S))}else v!==null&&(v=v.next={expirationTime:1073741823,suspenseConfig:k.suspenseConfig,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),Xy(S,k.suspenseConfig),u=k.eagerReducer===e?k.eagerState:e(u,k.action);k=k.next}while(k!==null&&k!==s);v===null?h=u:v.next=d,zo(u,n.memoizedState)||(gi=!0),n.memoizedState=u,n.baseState=h,n.baseQueue=v,i.lastRenderedState=u}return[n.memoizedState,i.dispatch]}function Gs(e){var n=Ua(),i=n.queue;if(i===null)throw Error(it(311));i.lastRenderedReducer=e;var u=i.dispatch,s=i.pending,h=n.memoizedState;if(s!==null){i.pending=null;var d=s=s.next;do h=e(h,d.action),d=d.next;while(d!==s);zo(h,n.memoizedState)||(gi=!0),n.memoizedState=h,n.baseQueue===null&&(n.baseState=h),i.lastRenderedState=h}return[h,u]}function Sd(e){var n=Wa();return typeof e=="function"&&(e=e()),n.memoizedState=n.baseState=e,e=n.queue={pending:null,dispatch:null,lastRenderedReducer:Uo,lastRenderedState:e},e=e.dispatch=py.bind(null,Yn,e),[n.memoizedState,e]}function bd(e,n,i,u){return e={tag:e,create:n,destroy:i,deps:u,next:null},n=Yn.updateQueue,n===null?(n={lastEffect:null},Yn.updateQueue=n,n.lastEffect=e.next=e):(i=n.lastEffect,i===null?n.lastEffect=e.next=e:(u=i.next,i.next=e,e.next=u,n.lastEffect=e)),e}function uy(){return Ua().memoizedState}function Cd(e,n,i,u){var s=Wa();Yn.effectTag|=e,s.memoizedState=bd(1|n,i,void 0,u===void 0?null:u)}function Md(e,n,i,u){var s=Ua();u=u===void 0?null:u;var h=void 0;if(ur!==null){var d=ur.memoizedState;if(h=d.destroy,u!==null&&kd(u,d.deps)){bd(n,i,h,u);return}}Yn.effectTag|=e,s.memoizedState=bd(1|n,i,h,u)}function ly(e,n){return Cd(516,4,e,n)}function $s(e,n){return Md(516,4,e,n)}function sy(e,n){return Md(4,2,e,n)}function fy(e,n){if(typeof n=="function")return e=e(),n(e),function(){n(null)};if(n!=null)return e=e(),n.current=e,function(){n.current=null}}function cy(e,n,i){return i=i!=null?i.concat([e]):null,Md(4,2,fy.bind(null,n,e),i)}function Ed(){}function hy(e,n){return Wa().memoizedState=[e,n===void 0?null:n],e}function Vs(e,n){var i=Ua();n=n===void 0?null:n;var u=i.memoizedState;return u!==null&&n!==null&&kd(n,u[1])?u[0]:(i.memoizedState=[e,n],e)}function dy(e,n){var i=Ua();n=n===void 0?null:n;var u=i.memoizedState;return u!==null&&n!==null&&kd(n,u[1])?u[0]:(e=e(),i.memoizedState=[e,n],e)}function Nd(e,n,i){var u=Ds();io(98>u?98:u,function(){e(!0)}),io(97<\/script>",e=e.removeChild(e.firstChild)):typeof u.is=="string"?e=d.createElement(s,{is:u.is}):(e=d.createElement(s),s==="select"&&(d=e,u.multiple?d.multiple=!0:u.size&&(d.size=u.size))):e=d.createElementNS(e,s),e[to]=n,e[Ts]=u,My(e,n,!1,!1),n.stateNode=e,d=qh(s,u),s){case"iframe":case"object":case"embed":Sn("load",e),v=u;break;case"video":case"audio":for(v=0;vu.tailExpiration&&1n)&&Yo.set(e,n)))}}function sf(e,n){e.expirationTimee?i:e,2>=e&&n!==e?0:e}function Br(e){if(e.lastExpiredTime!==0)e.callbackExpirationTime=1073741823,e.callbackPriority=99,e.callbackNode=K0($d.bind(null,e));else{var n=ff(e),i=e.callbackNode;if(n===0)i!==null&&(e.callbackNode=null,e.callbackExpirationTime=0,e.callbackPriority=90);else{var u=yi();if(n===1073741823?u=99:n===1||n===2?u=95:(u=10*(1073741821-n)-10*(1073741821-u),u=0>=u?99:250>=u?98:5250>=u?97:95),i!==null){var s=e.callbackPriority;if(e.callbackExpirationTime===n&&s>=u)return;i!==G0&&W0(i)}e.callbackExpirationTime=n,e.callbackPriority=u,n=n===1073741823?K0($d.bind(null,e)):X0(u,Yy.bind(null,e),{timeout:10*(1073741821-n)-qr()}),e.callbackNode=n}}}function Yy(e,n){if(lf=0,n)return n=yi(),ep(e,n),Br(e),null;var i=ff(e);if(i!==0){if(n=e.callbackNode,(Dt&(ai|mi))!==Vn)throw Error(it(327));if(Ba(),e===Ur&&i===Lr||Go(e,i),Ht!==null){var u=Dt;Dt|=ai;var s=Vy();do try{VS();break}catch(v){$y(e,v)}while(1);if(dd(),Dt=u,Zs.current=s,Xn===Js)throw n=nf,Go(e,i),Ko(e,i),Br(e),n;if(Ht===null)switch(s=e.finishedWork=e.current.alternate,e.finishedExpirationTime=i,u=Xn,Ur=null,u){case jo:case Js:throw Error(it(345));case By:ep(e,2=i){e.lastPingedTime=i,Go(e,i);break}}if(h=ff(e),h!==0&&h!==i)break;if(u!==0&&u!==i){e.lastPingedTime=u;break}e.timeoutHandle=Jh($o.bind(null,e),s);break}$o(e);break;case tf:if(Ko(e,i),u=e.lastSuspendedTime,i===u&&(e.nextKnownPendingLevel=Vd(s)),of&&(s=e.lastPingedTime,s===0||s>=i)){e.lastPingedTime=i,Go(e,i);break}if(s=ff(e),s!==0&&s!==i)break;if(u!==0&&u!==i){e.lastPingedTime=u;break}if(al!==1073741823?u=10*(1073741821-al)-qr():Ri===1073741823?u=0:(u=10*(1073741821-Ri)-5e3,s=qr(),i=10*(1073741821-i)-s,u=s-u,0>u&&(u=0),u=(120>u?120:480>u?480:1080>u?1080:1920>u?1920:3e3>u?3e3:4320>u?4320:1960*qS(u/1960))-u,i=u?u=0:(s=d.busyDelayMs|0,h=qr()-(10*(1073741821-h)-(d.timeoutMs|0||5e3)),u=h<=s?0:s+u-h),10 component higher in the tree to provide a loading indicator or placeholder to display.`+Th(d))}Xn!==Bd&&(Xn=Uy),v=Rd(v,d),O=h;do{switch(O.tag){case 3:k=v,O.effectTag|=4096,O.expirationTime=n;var pe=zy(O,k,n);Z0(O,pe);break e;case 1:k=v;var Re=O.type,B=O.stateNode;if((O.effectTag&64)==0&&(typeof Re.getDerivedStateFromError=="function"||B!==null&&typeof B.componentDidCatch=="function"&&(fo===null||!fo.has(B)))){O.effectTag|=4096,O.expirationTime=n;var c=Hy(O,k,n);Z0(O,c);break e}}O=O.return}while(O!==null)}Ht=Ky(Ht)}catch(g){n=g;continue}break}while(1)}function $y(){var e=Zs.current;return Zs.current=Xs,e===null?Xs:e}function Vy(e,n){eul&&(ul=e)}function qS(){for(;Ht!==null;)Ht=Xy(Ht)}function GS(){for(;Ht!==null&&!PS();)Ht=Xy(Ht)}function Xy(e){var n=Zy(e.alternate,e,Lr);return e.memoizedProps=e.pendingProps,n===null&&(n=Ky(e)),Wy.current=null,n}function Ky(e){Ht=e;do{var n=Ht.alternate;if(e=Ht.return,(Ht.effectTag&2048)==0){if(n=RS(n,Ht,Lr),Lr===1||Ht.childExpirationTime!==1){for(var i=0,u=Ht.child;u!==null;){var s=u.expirationTime,h=u.childExpirationTime;s>i&&(i=s),h>i&&(i=h),u=u.sibling}Ht.childExpirationTime=i}if(n!==null)return n;e!==null&&(e.effectTag&2048)==0&&(e.firstEffect===null&&(e.firstEffect=Ht.firstEffect),Ht.lastEffect!==null&&(e.lastEffect!==null&&(e.lastEffect.nextEffect=Ht.firstEffect),e.lastEffect=Ht.lastEffect),1e?n:e}function $o(e){var n=Ds();return io(99,$S.bind(null,e,n)),null}function $S(e,n){do Ba();while(ll!==null);if((Dt&(ai|mi))!==Vn)throw Error(it(327));var i=e.finishedWork,u=e.finishedExpirationTime;if(i===null)return null;if(e.finishedWork=null,e.finishedExpirationTime=0,i===e.current)throw Error(it(177));e.callbackNode=null,e.callbackExpirationTime=0,e.callbackPriority=90,e.nextKnownPendingLevel=0;var s=$d(i);if(e.firstPendingTime=s,u<=e.lastSuspendedTime?e.firstSuspendedTime=e.lastSuspendedTime=e.nextKnownPendingLevel=0:u<=e.firstSuspendedTime&&(e.firstSuspendedTime=u-1),u<=e.lastPingedTime&&(e.lastPingedTime=0),u<=e.lastExpiredTime&&(e.lastExpiredTime=0),e===Ur&&(Ht=Ur=null,Lr=0),1v&&(S=v,v=d,d=S),S=l0(le,d),E=l0(le,v),S&&E&&(Re.rangeCount!==1||Re.anchorNode!==S.node||Re.anchorOffset!==S.offset||Re.focusNode!==E.node||Re.focusOffset!==E.offset)&&(pe=pe.createRange(),pe.setStart(S.node,S.offset),Re.removeAllRanges(),d>v?(Re.addRange(pe),Re.extend(E.node,E.offset)):(pe.setEnd(E.node,E.offset),Re.addRange(pe)))))),pe=[],Re=le;Re=Re.parentNode;)Re.nodeType===1&&pe.push({element:Re,left:Re.scrollLeft,top:Re.scrollTop});for(typeof le.focus=="function"&&le.focus(),le=0;le=i?Ty(e,n,i):(Dn(Mn,Mn.current&1),n=Ii(e,n,i),n!==null?n.sibling:null);Dn(Mn,Mn.current&1);break;case 19:if(u=n.childExpirationTime>=i,(e.effectTag&64)!=0){if(u)return by(e,n,i);n.effectTag|=64}if(s=n.memoizedState,s!==null&&(s.rendering=null,s.tail=null),Dn(Mn,Mn.current),!u)return null}return Ii(e,n,i)}gi=!1}}else gi=!1;switch(n.expirationTime=0,n.tag){case 2:if(u=n.type,e!==null&&(e.alternate=null,n.alternate=null,n.effectTag|=2),e=n.pendingProps,s=Ia(n,ar.current),Fa(n,i),s=kd(null,n,u,e,s,i),n.effectTag|=1,typeof s=="object"&&s!==null&&typeof s.render=="function"&&s.$$typeof===void 0){if(n.tag=1,n.memoizedState=null,n.updateQueue=null,Pr(u)){var h=!0;Ps(n)}else h=!1;n.memoizedState=s.state!==null&&s.state!==void 0?s.state:null,pd(n);var d=u.getDerivedStateFromProps;typeof d=="function"&&zs(n,u,d,e),s.updater=Hs,n.stateNode=s,s._reactInternalFiber=n,gd(n,u,e,i),n=Od(null,n,u,!0,h,i)}else n.tag=0,Wr(null,n,s,i),n=n.child;return n;case 16:e:{if(s=n.elementType,e!==null&&(e.alternate=null,n.alternate=null,n.effectTag|=2),e=n.pendingProps,CT(s),s._status!==1)throw s._result;switch(s=s._result,n.type=s,h=n.tag=eb(s),e=oi(s,e),h){case 0:n=Ld(null,n,s,e,i);break e;case 1:n=_y(null,n,s,e,i);break e;case 11:n=my(null,n,s,e,i);break e;case 14:n=yy(null,n,s,oi(s.type,e),u,i);break e}throw Error(it(306,s,""))}return n;case 0:return u=n.type,s=n.pendingProps,s=n.elementType===u?s:oi(u,s),Ld(e,n,u,s,i);case 1:return u=n.type,s=n.pendingProps,s=n.elementType===u?s:oi(u,s),_y(e,n,u,s,i);case 3:if(ky(n),u=n.updateQueue,e===null||u===null)throw Error(it(282));if(u=n.pendingProps,s=n.memoizedState,s=s!==null?s.element:null,vd(e,n),el(n,u,null,i),u=n.memoizedState.element,u===s)Pd(),n=Ii(e,n,i);else{if((s=n.stateNode.hydrate)&&(so=Pa(n.stateNode.containerInfo.firstChild),Ai=n,s=Bo=!0),s)for(i=md(n,null,u,i),n.child=i;i;)i.effectTag=i.effectTag&-3|1024,i=i.sibling;else Wr(e,n,u,i),Pd();n=n.child}return n;case 5:return oy(n),e===null&&Nd(n),u=n.type,s=n.pendingProps,h=e!==null?e.memoizedProps:null,d=s.children,Qh(u,s)?d=null:h!==null&&Qh(u,h)&&(n.effectTag|=16),xy(e,n),n.mode&4&&i!==1&&s.hidden?(n.expirationTime=n.childExpirationTime=1,n=null):(Wr(e,n,d,i),n=n.child),n;case 6:return e===null&&Nd(n),null;case 13:return Ty(e,n,i);case 4:return yd(n,n.stateNode.containerInfo),u=n.pendingProps,e===null?n.child=za(n,null,u,i):Wr(e,n,u,i),n.child;case 11:return u=n.type,s=n.pendingProps,s=n.elementType===u?s:oi(u,s),my(e,n,u,s,i);case 7:return Wr(e,n,n.pendingProps,i),n.child;case 8:return Wr(e,n,n.pendingProps.children,i),n.child;case 12:return Wr(e,n,n.pendingProps.children,i),n.child;case 10:e:{u=n.type._context,s=n.pendingProps,d=n.memoizedProps,h=s.value;var v=n.type._context;if(Dn(Is,v._currentValue),v._currentValue=h,d!==null)if(v=d.value,h=zo(v,h)?0:(typeof u._calculateChangedBits=="function"?u._calculateChangedBits(v,h):1073741823)|0,h===0){if(d.children===s.children&&!Nr.current){n=Ii(e,n,i);break e}}else for(v=n.child,v!==null&&(v.return=n);v!==null;){var k=v.dependencies;if(k!==null){d=v.child;for(var S=k.firstContext;S!==null;){if(S.context===u&&(S.observedBits&h)!=0){v.tag===1&&(S=ao(i,null),S.tag=2,uo(v,S)),v.expirationTime=n&&e<=n}function Ko(e,n){var i=e.firstSuspendedTime,u=e.lastSuspendedTime;in||i===0)&&(e.lastSuspendedTime=n),n<=e.lastPingedTime&&(e.lastPingedTime=0),n<=e.lastExpiredTime&&(e.lastExpiredTime=0)}function e1(e,n){n>e.firstPendingTime&&(e.firstPendingTime=n);var i=e.firstSuspendedTime;i!==0&&(n>=i?e.firstSuspendedTime=e.lastSuspendedTime=e.nextKnownPendingLevel=0:n>=e.lastSuspendedTime&&(e.lastSuspendedTime=n+1),n>e.nextKnownPendingLevel&&(e.nextKnownPendingLevel=n))}function Jd(e,n){var i=e.lastExpiredTime;(i===0||i>n)&&(e.lastExpiredTime=n)}function df(e,n,i,u){var s=n.current,h=yi(),d=tl.suspense;h=qo(h,s,d);e:if(i){i=i._reactInternalFiber;t:{if(Ro(i)!==i||i.tag!==1)throw Error(it(170));var v=i;do{switch(v.tag){case 3:v=v.stateNode.context;break t;case 1:if(Pr(v.type)){v=v.stateNode.__reactInternalMemoizedMergedChildContext;break t}}v=v.return}while(v!==null);throw Error(it(171))}if(i.tag===1){var k=i.type;if(Pr(k)){i=F0(i,k,v);break e}}i=v}else i=ro;return n.context===null?n.context=i:n.pendingContext=i,n=ao(h,d),n.payload={element:e},u=u===void 0?null:u,u!==null&&(n.callback=u),uo(s,n),co(s,h),h}function ep(e){if(e=e.current,!e.child)return null;switch(e.child.tag){case 5:return e.child.stateNode;default:return e.child.stateNode}}function t1(e,n){e=e.memoizedState,e!==null&&e.dehydrated!==null&&e.retryTime{"use strict";function i1(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__=="undefined"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(i1)}catch(e){console.error(e)}}i1(),o1.exports=r1()});var l1=yt((GM,u1)=>{"use strict";var ob="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";u1.exports=ob});var h1=yt(($M,c1)=>{"use strict";var ab=l1();function s1(){}function f1(){}f1.resetWarningCache=s1;c1.exports=function(){function e(u,s,h,d,v,k){if(k!==ab){var S=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw S.name="Invariant Violation",S}}e.isRequired=e;function n(){return e}var i={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:n,element:e,elementType:e,instanceOf:n,node:e,objectOf:n,oneOf:n,oneOfType:n,shape:n,exact:n,checkPropTypes:f1,resetWarningCache:s1};return i.PropTypes=i,i}});var p1=yt((KM,d1)=>{d1.exports=h1()();var VM,XM});var D1=yt((s2,O1)=>{O1.exports=Array.isArray||function(e){return Object.prototype.toString.call(e)=="[object Array]"}});var F1=yt((f2,ja)=>{var gf=D1();ja.exports=R1;ja.exports.parse=sp;ja.exports.compile=Sb;ja.exports.tokensToFunction=A1;ja.exports.tokensToRegExp=I1;var Tb=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function sp(e,n){for(var i=[],u=0,s=0,h="",d=n&&n.delimiter||"/",v;(v=Tb.exec(e))!=null;){var k=v[0],S=v[1],E=v.index;if(h+=e.slice(s,E),s=E+k.length,S){h+=S[1];continue}var O=e[s],ie=v[2],ve=v[3],Ee=v[4],ne=v[5],R=v[6],I=v[7];h&&(i.push(h),h="");var Y=ie!=null&&O!=null&&O!==ie,le=R==="+"||R==="*",pe=R==="?"||R==="*",Re=v[2]||d,B=Ee||ne;i.push({name:ve||u++,prefix:ie||"",delimiter:Re,optional:pe,repeat:le,partial:Y,asterisk:!!I,pattern:B?Mb(B):I?".*":"[^"+mf(Re)+"]+?"})}return s{"use strict";var Kn=typeof Symbol=="function"&&Symbol.for,hp=Kn?Symbol.for("react.element"):60103,dp=Kn?Symbol.for("react.portal"):60106,yf=Kn?Symbol.for("react.fragment"):60107,wf=Kn?Symbol.for("react.strict_mode"):60108,xf=Kn?Symbol.for("react.profiler"):60114,_f=Kn?Symbol.for("react.provider"):60109,kf=Kn?Symbol.for("react.context"):60110,pp=Kn?Symbol.for("react.async_mode"):60111,Tf=Kn?Symbol.for("react.concurrent_mode"):60111,Sf=Kn?Symbol.for("react.forward_ref"):60112,bf=Kn?Symbol.for("react.suspense"):60113,Lb=Kn?Symbol.for("react.suspense_list"):60120,Cf=Kn?Symbol.for("react.memo"):60115,Mf=Kn?Symbol.for("react.lazy"):60116,Ob=Kn?Symbol.for("react.block"):60121,Db=Kn?Symbol.for("react.fundamental"):60117,Ab=Kn?Symbol.for("react.responder"):60118,Ib=Kn?Symbol.for("react.scope"):60119;function jr(e){if(typeof e=="object"&&e!==null){var n=e.$$typeof;switch(n){case hp:switch(e=e.type,e){case pp:case Tf:case yf:case xf:case wf:case bf:return e;default:switch(e=e&&e.$$typeof,e){case kf:case Sf:case Mf:case Cf:case _f:return e;default:return n}}case dp:return n}}}function z1(e){return jr(e)===Tf}cn.AsyncMode=pp;cn.ConcurrentMode=Tf;cn.ContextConsumer=kf;cn.ContextProvider=_f;cn.Element=hp;cn.ForwardRef=Sf;cn.Fragment=yf;cn.Lazy=Mf;cn.Memo=Cf;cn.Portal=dp;cn.Profiler=xf;cn.StrictMode=wf;cn.Suspense=bf;cn.isAsyncMode=function(e){return z1(e)||jr(e)===pp};cn.isConcurrentMode=z1;cn.isContextConsumer=function(e){return jr(e)===kf};cn.isContextProvider=function(e){return jr(e)===_f};cn.isElement=function(e){return typeof e=="object"&&e!==null&&e.$$typeof===hp};cn.isForwardRef=function(e){return jr(e)===Sf};cn.isFragment=function(e){return jr(e)===yf};cn.isLazy=function(e){return jr(e)===Mf};cn.isMemo=function(e){return jr(e)===Cf};cn.isPortal=function(e){return jr(e)===dp};cn.isProfiler=function(e){return jr(e)===xf};cn.isStrictMode=function(e){return jr(e)===wf};cn.isSuspense=function(e){return jr(e)===bf};cn.isValidElementType=function(e){return typeof e=="string"||typeof e=="function"||e===yf||e===Tf||e===xf||e===wf||e===bf||e===Lb||typeof e=="object"&&e!==null&&(e.$$typeof===Mf||e.$$typeof===Cf||e.$$typeof===_f||e.$$typeof===kf||e.$$typeof===Sf||e.$$typeof===Db||e.$$typeof===Ab||e.$$typeof===Ib||e.$$typeof===Ob)};cn.typeOf=jr});var vp=yt((h2,W1)=>{"use strict";W1.exports=H1()});var $1=yt((p2,G1)=>{"use strict";var gp=vp(),Rb={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},Fb={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},zb={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},U1={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},mp={};mp[gp.ForwardRef]=zb;mp[gp.Memo]=U1;function B1(e){return gp.isMemo(e)?U1:mp[e.$$typeof]||Rb}var Hb=Object.defineProperty,Wb=Object.getOwnPropertyNames,j1=Object.getOwnPropertySymbols,Ub=Object.getOwnPropertyDescriptor,Bb=Object.getPrototypeOf,Y1=Object.prototype;function q1(e,n,i){if(typeof n!="string"){if(Y1){var u=Bb(n);u&&u!==Y1&&q1(e,u,i)}var s=Wb(n);j1&&(s=s.concat(j1(n)));for(var h=B1(e),d=B1(n),v=0;v{(function(e){"use strict";var n={newline:/^\n+/,code:/^( {4}[^\n]+\n*)+/,fences:/^ {0,3}(`{3,}|~{3,})([^`~\n]*)\n(?:|([\s\S]*?)\n)(?: {0,3}\1[~`]* *(?:\n+|$)|$)/,hr:/^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\* *){3,})(?:\n+|$)/,heading:/^ {0,3}(#{1,6}) +([^\n]*?)(?: +#+)? *(?:\n+|$)/,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( {0,3})(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,html:"^ {0,3}(?:<(script|pre|style)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?\\?>\\n*|\\n*|\\n*|)[\\s\\S]*?(?:\\n{2,}|$)|<(?!script|pre|style)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:\\n{2,}|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:\\n{2,}|$))",def:/^ {0,3}\[(label)\]: *\n? *]+)>?(?:(?: +\n? *| *\n *)(title))? *(?:\n+|$)/,nptable:R,table:R,lheading:/^([^\n]+)\n {0,3}(=+|-+) *(?:\n+|$)/,_paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html)[^\n]+)*)/,text:/^[^\n]+/};n._label=/(?!\s*\])(?:\\[\[\]]|[^\[\]])+/,n._title=/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/,n.def=O(n.def).replace("label",n._label).replace("title",n._title).getRegex(),n.bullet=/(?:[*+-]|\d{1,9}\.)/,n.item=/^( *)(bull) ?[^\n]*(?:\n(?!\1bull ?)[^\n]*)*/,n.item=O(n.item,"gm").replace(/bull/g,n.bullet).getRegex(),n.list=O(n.list).replace(/bull/g,n.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+n.def.source+")").getRegex(),n._tag="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",n._comment=//,n.html=O(n.html,"i").replace("comment",n._comment).replace("tag",n._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),n.paragraph=O(n._paragraph).replace("hr",n.hr).replace("heading"," {0,3}#{1,6} +").replace("|lheading","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}|~{3,})[^`\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|!--)").replace("tag",n._tag).getRegex(),n.blockquote=O(n.blockquote).replace("paragraph",n.paragraph).getRegex(),n.normal=I({},n),n.gfm=I({},n.normal,{nptable:/^ *([^|\n ].*\|.*)\n *([-:]+ *\|[-| :]*)(?:\n((?:.*[^>\n ].*(?:\n|$))*)\n*|$)/,table:/^ *\|(.+)\n *\|?( *[-:]+[-| :]*)(?:\n((?: *[^>\n ].*(?:\n|$))*)\n*|$)/}),n.pedantic=I({},n.normal,{html:O(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",n._comment).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^ *(#{1,6}) *([^\n]+?) *(?:#+ *)?(?:\n+|$)/,fences:R,paragraph:O(n.normal._paragraph).replace("hr",n.hr).replace("heading",` *#{1,6} *[^ +Add a component higher in the tree to provide a loading indicator or placeholder to display.`+Sh(d))}Xn!==jd&&(Xn=By),v=Fd(v,d),O=h;do{switch(O.tag){case 3:k=v,O.effectTag|=4096,O.expirationTime=n;var pe=Hy(O,k,n);J0(O,pe);break e;case 1:k=v;var Re=O.type,B=O.stateNode;if((O.effectTag&64)==0&&(typeof Re.getDerivedStateFromError=="function"||B!==null&&typeof B.componentDidCatch=="function"&&(fo===null||!fo.has(B)))){O.effectTag|=4096,O.expirationTime=n;var c=Wy(O,k,n);J0(O,c);break e}}O=O.return}while(O!==null)}Ht=Qy(Ht)}catch(g){n=g;continue}break}while(1)}function Vy(){var e=Zs.current;return Zs.current=Xs,e===null?Xs:e}function Xy(e,n){eul&&(ul=e)}function $S(){for(;Ht!==null;)Ht=Ky(Ht)}function VS(){for(;Ht!==null&&!OS();)Ht=Ky(Ht)}function Ky(e){var n=Jy(e.alternate,e,Lr);return e.memoizedProps=e.pendingProps,n===null&&(n=Qy(e)),Uy.current=null,n}function Qy(e){Ht=e;do{var n=Ht.alternate;if(e=Ht.return,(Ht.effectTag&2048)==0){if(n=zS(n,Ht,Lr),Lr===1||Ht.childExpirationTime!==1){for(var i=0,u=Ht.child;u!==null;){var s=u.expirationTime,h=u.childExpirationTime;s>i&&(i=s),h>i&&(i=h),u=u.sibling}Ht.childExpirationTime=i}if(n!==null)return n;e!==null&&(e.effectTag&2048)==0&&(e.firstEffect===null&&(e.firstEffect=Ht.firstEffect),Ht.lastEffect!==null&&(e.lastEffect!==null&&(e.lastEffect.nextEffect=Ht.firstEffect),e.lastEffect=Ht.lastEffect),1e?n:e}function $o(e){var n=Ds();return io(99,XS.bind(null,e,n)),null}function XS(e,n){do Ba();while(ll!==null);if((Dt&(ai|mi))!==Vn)throw Error(it(327));var i=e.finishedWork,u=e.finishedExpirationTime;if(i===null)return null;if(e.finishedWork=null,e.finishedExpirationTime=0,i===e.current)throw Error(it(177));e.callbackNode=null,e.callbackExpirationTime=0,e.callbackPriority=90,e.nextKnownPendingLevel=0;var s=Vd(i);if(e.firstPendingTime=s,u<=e.lastSuspendedTime?e.firstSuspendedTime=e.lastSuspendedTime=e.nextKnownPendingLevel=0:u<=e.firstSuspendedTime&&(e.firstSuspendedTime=u-1),u<=e.lastPingedTime&&(e.lastPingedTime=0),u<=e.lastExpiredTime&&(e.lastExpiredTime=0),e===Ur&&(Ht=Ur=null,Lr=0),1v&&(S=v,v=d,d=S),S=s0(le,d),E=s0(le,v),S&&E&&(Re.rangeCount!==1||Re.anchorNode!==S.node||Re.anchorOffset!==S.offset||Re.focusNode!==E.node||Re.focusOffset!==E.offset)&&(pe=pe.createRange(),pe.setStart(S.node,S.offset),Re.removeAllRanges(),d>v?(Re.addRange(pe),Re.extend(E.node,E.offset)):(pe.setEnd(E.node,E.offset),Re.addRange(pe)))))),pe=[],Re=le;Re=Re.parentNode;)Re.nodeType===1&&pe.push({element:Re,left:Re.scrollLeft,top:Re.scrollTop});for(typeof le.focus=="function"&&le.focus(),le=0;le=i?Sy(e,n,i):(Dn(Mn,Mn.current&1),n=Ii(e,n,i),n!==null?n.sibling:null);Dn(Mn,Mn.current&1);break;case 19:if(u=n.childExpirationTime>=i,(e.effectTag&64)!=0){if(u)return Cy(e,n,i);n.effectTag|=64}if(s=n.memoizedState,s!==null&&(s.rendering=null,s.tail=null),Dn(Mn,Mn.current),!u)return null}return Ii(e,n,i)}gi=!1}}else gi=!1;switch(n.expirationTime=0,n.tag){case 2:if(u=n.type,e!==null&&(e.alternate=null,n.alternate=null,n.effectTag|=2),e=n.pendingProps,s=Ia(n,ar.current),Fa(n,i),s=Td(null,n,u,e,s,i),n.effectTag|=1,typeof s=="object"&&s!==null&&typeof s.render=="function"&&s.$$typeof===void 0){if(n.tag=1,n.memoizedState=null,n.updateQueue=null,Pr(u)){var h=!0;Ps(n)}else h=!1;n.memoizedState=s.state!==null&&s.state!==void 0?s.state:null,vd(n);var d=u.getDerivedStateFromProps;typeof d=="function"&&zs(n,u,d,e),s.updater=Hs,n.stateNode=s,s._reactInternalFiber=n,md(n,u,e,i),n=Dd(null,n,u,!0,h,i)}else n.tag=0,Wr(null,n,s,i),n=n.child;return n;case 16:e:{if(s=n.elementType,e!==null&&(e.alternate=null,n.alternate=null,n.effectTag|=2),e=n.pendingProps,ET(s),s._status!==1)throw s._result;switch(s=s._result,n.type=s,h=n.tag=nb(s),e=oi(s,e),h){case 0:n=Od(null,n,s,e,i);break e;case 1:n=ky(null,n,s,e,i);break e;case 11:n=yy(null,n,s,e,i);break e;case 14:n=wy(null,n,s,oi(s.type,e),u,i);break e}throw Error(it(306,s,""))}return n;case 0:return u=n.type,s=n.pendingProps,s=n.elementType===u?s:oi(u,s),Od(e,n,u,s,i);case 1:return u=n.type,s=n.pendingProps,s=n.elementType===u?s:oi(u,s),ky(e,n,u,s,i);case 3:if(Ty(n),u=n.updateQueue,e===null||u===null)throw Error(it(282));if(u=n.pendingProps,s=n.memoizedState,s=s!==null?s.element:null,gd(e,n),el(n,u,null,i),u=n.memoizedState.element,u===s)Ld(),n=Ii(e,n,i);else{if((s=n.stateNode.hydrate)&&(so=Pa(n.stateNode.containerInfo.firstChild),Ai=n,s=Bo=!0),s)for(i=yd(n,null,u,i),n.child=i;i;)i.effectTag=i.effectTag&-3|1024,i=i.sibling;else Wr(e,n,u,i),Ld();n=n.child}return n;case 5:return ay(n),e===null&&Pd(n),u=n.type,s=n.pendingProps,h=e!==null?e.memoizedProps:null,d=s.children,Zh(u,s)?d=null:h!==null&&Zh(u,h)&&(n.effectTag|=16),_y(e,n),n.mode&4&&i!==1&&s.hidden?(n.expirationTime=n.childExpirationTime=1,n=null):(Wr(e,n,d,i),n=n.child),n;case 6:return e===null&&Pd(n),null;case 13:return Sy(e,n,i);case 4:return wd(n,n.stateNode.containerInfo),u=n.pendingProps,e===null?n.child=za(n,null,u,i):Wr(e,n,u,i),n.child;case 11:return u=n.type,s=n.pendingProps,s=n.elementType===u?s:oi(u,s),yy(e,n,u,s,i);case 7:return Wr(e,n,n.pendingProps,i),n.child;case 8:return Wr(e,n,n.pendingProps.children,i),n.child;case 12:return Wr(e,n,n.pendingProps.children,i),n.child;case 10:e:{u=n.type._context,s=n.pendingProps,d=n.memoizedProps,h=s.value;var v=n.type._context;if(Dn(Is,v._currentValue),v._currentValue=h,d!==null)if(v=d.value,h=zo(v,h)?0:(typeof u._calculateChangedBits=="function"?u._calculateChangedBits(v,h):1073741823)|0,h===0){if(d.children===s.children&&!Nr.current){n=Ii(e,n,i);break e}}else for(v=n.child,v!==null&&(v.return=n);v!==null;){var k=v.dependencies;if(k!==null){d=v.child;for(var S=k.firstContext;S!==null;){if(S.context===u&&(S.observedBits&h)!=0){v.tag===1&&(S=ao(i,null),S.tag=2,uo(v,S)),v.expirationTime=n&&e<=n}function Ko(e,n){var i=e.firstSuspendedTime,u=e.lastSuspendedTime;in||i===0)&&(e.lastSuspendedTime=n),n<=e.lastPingedTime&&(e.lastPingedTime=0),n<=e.lastExpiredTime&&(e.lastExpiredTime=0)}function t1(e,n){n>e.firstPendingTime&&(e.firstPendingTime=n);var i=e.firstSuspendedTime;i!==0&&(n>=i?e.firstSuspendedTime=e.lastSuspendedTime=e.nextKnownPendingLevel=0:n>=e.lastSuspendedTime&&(e.lastSuspendedTime=n+1),n>e.nextKnownPendingLevel&&(e.nextKnownPendingLevel=n))}function ep(e,n){var i=e.lastExpiredTime;(i===0||i>n)&&(e.lastExpiredTime=n)}function df(e,n,i,u){var s=n.current,h=yi(),d=tl.suspense;h=qo(h,s,d);e:if(i){i=i._reactInternalFiber;t:{if(Ro(i)!==i||i.tag!==1)throw Error(it(170));var v=i;do{switch(v.tag){case 3:v=v.stateNode.context;break t;case 1:if(Pr(v.type)){v=v.stateNode.__reactInternalMemoizedMergedChildContext;break t}}v=v.return}while(v!==null);throw Error(it(171))}if(i.tag===1){var k=i.type;if(Pr(k)){i=z0(i,k,v);break e}}i=v}else i=ro;return n.context===null?n.context=i:n.pendingContext=i,n=ao(h,d),n.payload={element:e},u=u===void 0?null:u,u!==null&&(n.callback=u),uo(s,n),co(s,h),h}function tp(e){if(e=e.current,!e.child)return null;switch(e.child.tag){case 5:return e.child.stateNode;default:return e.child.stateNode}}function n1(e,n){e=e.memoizedState,e!==null&&e.dehydrated!==null&&e.retryTime{"use strict";function o1(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__=="undefined"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(o1)}catch(e){console.error(e)}}o1(),a1.exports=i1()});var s1=yt((XM,l1)=>{"use strict";var ub="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";l1.exports=ub});var d1=yt((KM,h1)=>{"use strict";var lb=s1();function f1(){}function c1(){}c1.resetWarningCache=f1;h1.exports=function(){function e(u,s,h,d,v,k){if(k!==lb){var S=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw S.name="Invariant Violation",S}}e.isRequired=e;function n(){return e}var i={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:n,element:e,elementType:e,instanceOf:n,node:e,objectOf:n,oneOf:n,oneOfType:n,shape:n,exact:n,checkPropTypes:c1,resetWarningCache:f1};return i.PropTypes=i,i}});var v1=yt((JM,p1)=>{p1.exports=d1()();var QM,ZM});var A1=yt((h2,D1)=>{D1.exports=Array.isArray||function(e){return Object.prototype.toString.call(e)=="[object Array]"}});var z1=yt((d2,ja)=>{var gf=A1();ja.exports=F1;ja.exports.parse=fp;ja.exports.compile=Cb;ja.exports.tokensToFunction=I1;ja.exports.tokensToRegExp=R1;var bb=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function fp(e,n){for(var i=[],u=0,s=0,h="",d=n&&n.delimiter||"/",v;(v=bb.exec(e))!=null;){var k=v[0],S=v[1],E=v.index;if(h+=e.slice(s,E),s=E+k.length,S){h+=S[1];continue}var O=e[s],ie=v[2],ve=v[3],Ee=v[4],ne=v[5],R=v[6],I=v[7];h&&(i.push(h),h="");var Y=ie!=null&&O!=null&&O!==ie,le=R==="+"||R==="*",pe=R==="?"||R==="*",Re=v[2]||d,B=Ee||ne;i.push({name:ve||u++,prefix:ie||"",delimiter:Re,optional:pe,repeat:le,partial:Y,asterisk:!!I,pattern:B?Nb(B):I?".*":"[^"+mf(Re)+"]+?"})}return s{"use strict";var Kn=typeof Symbol=="function"&&Symbol.for,dp=Kn?Symbol.for("react.element"):60103,pp=Kn?Symbol.for("react.portal"):60106,yf=Kn?Symbol.for("react.fragment"):60107,wf=Kn?Symbol.for("react.strict_mode"):60108,xf=Kn?Symbol.for("react.profiler"):60114,_f=Kn?Symbol.for("react.provider"):60109,kf=Kn?Symbol.for("react.context"):60110,vp=Kn?Symbol.for("react.async_mode"):60111,Tf=Kn?Symbol.for("react.concurrent_mode"):60111,Sf=Kn?Symbol.for("react.forward_ref"):60112,bf=Kn?Symbol.for("react.suspense"):60113,Db=Kn?Symbol.for("react.suspense_list"):60120,Cf=Kn?Symbol.for("react.memo"):60115,Mf=Kn?Symbol.for("react.lazy"):60116,Ab=Kn?Symbol.for("react.block"):60121,Ib=Kn?Symbol.for("react.fundamental"):60117,Rb=Kn?Symbol.for("react.responder"):60118,Fb=Kn?Symbol.for("react.scope"):60119;function jr(e){if(typeof e=="object"&&e!==null){var n=e.$$typeof;switch(n){case dp:switch(e=e.type,e){case vp:case Tf:case yf:case xf:case wf:case bf:return e;default:switch(e=e&&e.$$typeof,e){case kf:case Sf:case Mf:case Cf:case _f:return e;default:return n}}case pp:return n}}}function H1(e){return jr(e)===Tf}cn.AsyncMode=vp;cn.ConcurrentMode=Tf;cn.ContextConsumer=kf;cn.ContextProvider=_f;cn.Element=dp;cn.ForwardRef=Sf;cn.Fragment=yf;cn.Lazy=Mf;cn.Memo=Cf;cn.Portal=pp;cn.Profiler=xf;cn.StrictMode=wf;cn.Suspense=bf;cn.isAsyncMode=function(e){return H1(e)||jr(e)===vp};cn.isConcurrentMode=H1;cn.isContextConsumer=function(e){return jr(e)===kf};cn.isContextProvider=function(e){return jr(e)===_f};cn.isElement=function(e){return typeof e=="object"&&e!==null&&e.$$typeof===dp};cn.isForwardRef=function(e){return jr(e)===Sf};cn.isFragment=function(e){return jr(e)===yf};cn.isLazy=function(e){return jr(e)===Mf};cn.isMemo=function(e){return jr(e)===Cf};cn.isPortal=function(e){return jr(e)===pp};cn.isProfiler=function(e){return jr(e)===xf};cn.isStrictMode=function(e){return jr(e)===wf};cn.isSuspense=function(e){return jr(e)===bf};cn.isValidElementType=function(e){return typeof e=="string"||typeof e=="function"||e===yf||e===Tf||e===xf||e===wf||e===bf||e===Db||typeof e=="object"&&e!==null&&(e.$$typeof===Mf||e.$$typeof===Cf||e.$$typeof===_f||e.$$typeof===kf||e.$$typeof===Sf||e.$$typeof===Ib||e.$$typeof===Rb||e.$$typeof===Fb||e.$$typeof===Ab)};cn.typeOf=jr});var gp=yt((v2,U1)=>{"use strict";U1.exports=W1()});var V1=yt((m2,$1)=>{"use strict";var mp=gp(),zb={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},Hb={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},Wb={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},B1={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},yp={};yp[mp.ForwardRef]=Wb;yp[mp.Memo]=B1;function j1(e){return mp.isMemo(e)?B1:yp[e.$$typeof]||zb}var Ub=Object.defineProperty,Bb=Object.getOwnPropertyNames,Y1=Object.getOwnPropertySymbols,jb=Object.getOwnPropertyDescriptor,Yb=Object.getPrototypeOf,q1=Object.prototype;function G1(e,n,i){if(typeof n!="string"){if(q1){var u=Yb(n);u&&u!==q1&&G1(e,u,i)}var s=Bb(n);Y1&&(s=s.concat(Y1(n)));for(var h=j1(e),d=j1(n),v=0;v{(function(e){"use strict";var n={newline:/^\n+/,code:/^( {4}[^\n]+\n*)+/,fences:/^ {0,3}(`{3,}|~{3,})([^`~\n]*)\n(?:|([\s\S]*?)\n)(?: {0,3}\1[~`]* *(?:\n+|$)|$)/,hr:/^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\* *){3,})(?:\n+|$)/,heading:/^ {0,3}(#{1,6}) +([^\n]*?)(?: +#+)? *(?:\n+|$)/,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( {0,3})(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,html:"^ {0,3}(?:<(script|pre|style)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?\\?>\\n*|\\n*|\\n*|)[\\s\\S]*?(?:\\n{2,}|$)|<(?!script|pre|style)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:\\n{2,}|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:\\n{2,}|$))",def:/^ {0,3}\[(label)\]: *\n? *]+)>?(?:(?: +\n? *| *\n *)(title))? *(?:\n+|$)/,nptable:R,table:R,lheading:/^([^\n]+)\n {0,3}(=+|-+) *(?:\n+|$)/,_paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html)[^\n]+)*)/,text:/^[^\n]+/};n._label=/(?!\s*\])(?:\\[\[\]]|[^\[\]])+/,n._title=/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/,n.def=O(n.def).replace("label",n._label).replace("title",n._title).getRegex(),n.bullet=/(?:[*+-]|\d{1,9}\.)/,n.item=/^( *)(bull) ?[^\n]*(?:\n(?!\1bull ?)[^\n]*)*/,n.item=O(n.item,"gm").replace(/bull/g,n.bullet).getRegex(),n.list=O(n.list).replace(/bull/g,n.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+n.def.source+")").getRegex(),n._tag="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",n._comment=//,n.html=O(n.html,"i").replace("comment",n._comment).replace("tag",n._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),n.paragraph=O(n._paragraph).replace("hr",n.hr).replace("heading"," {0,3}#{1,6} +").replace("|lheading","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}|~{3,})[^`\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|!--)").replace("tag",n._tag).getRegex(),n.blockquote=O(n.blockquote).replace("paragraph",n.paragraph).getRegex(),n.normal=I({},n),n.gfm=I({},n.normal,{nptable:/^ *([^|\n ].*\|.*)\n *([-:]+ *\|[-| :]*)(?:\n((?:.*[^>\n ].*(?:\n|$))*)\n*|$)/,table:/^ *\|(.+)\n *\|?( *[-:]+[-| :]*)(?:\n((?: *[^>\n ].*(?:\n|$))*)\n*|$)/}),n.pedantic=I({},n.normal,{html:O(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",n._comment).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^ *(#{1,6}) *([^\n]+?) *(?:#+ *)?(?:\n+|$)/,fences:R,paragraph:O(n.normal._paragraph).replace("hr",n.hr).replace("heading",` *#{1,6} *[^ ]`).replace("lheading",n.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()});function i(c){this.tokens=[],this.tokens.links=Object.create(null),this.options=c||B.defaults,this.rules=n.normal,this.options.pedantic?this.rules=n.pedantic:this.options.gfm&&(this.rules=n.gfm)}i.rules=n,i.lex=function(c,g){var x=new i(g);return x.lex(c)},i.prototype.lex=function(c){return c=c.replace(/\r\n|\r/g,` `).replace(/\t/g," ").replace(/\u00a0/g," ").replace(/\u2424/g,` `),this.token(c,!0)},i.prototype.token=function(c,g){c=c.replace(/^ +$/gm,"");for(var x,P,b,U,y,D,q,oe,Le,we,re,We,ce,ke,Ce,me;c;){if((b=this.rules.newline.exec(c))&&(c=c.substring(b[0].length),b[0].length>1&&this.tokens.push({type:"space"})),b=this.rules.code.exec(c)){var Ue=this.tokens[this.tokens.length-1];c=c.substring(b[0].length),Ue&&Ue.type==="paragraph"?Ue.text+=` @@ -32,31 +32,31 @@ Add a component higher in the tree to provide a loading `},h.prototype.tablecell=function(c,g){var x=g.header?"th":"td",P=g.align?"<"+x+' align="'+g.align+'">':"<"+x+">";return P+c+" `},h.prototype.strong=function(c){return""+c+""},h.prototype.em=function(c){return""+c+""},h.prototype.codespan=function(c){return""+c+""},h.prototype.br=function(){return this.options.xhtml?"
":"
"},h.prototype.del=function(c){return""+c+""},h.prototype.link=function(c,g,x){if(c=ie(this.options.sanitize,this.options.baseUrl,c),c===null)return x;var P='",P},h.prototype.image=function(c,g,x){if(c=ie(this.options.sanitize,this.options.baseUrl,c),c===null)return x;var P=''+x+'":">",P},h.prototype.text=function(c){return c};function d(){}d.prototype.strong=d.prototype.em=d.prototype.codespan=d.prototype.del=d.prototype.text=function(c){return c},d.prototype.link=d.prototype.image=function(c,g,x){return""+x},d.prototype.br=function(){return""};function v(c){this.tokens=[],this.token=null,this.options=c||B.defaults,this.options.renderer=this.options.renderer||new h,this.renderer=this.options.renderer,this.renderer.options=this.options,this.slugger=new k}v.parse=function(c,g){var x=new v(g);return x.parse(c)},v.prototype.parse=function(c){this.inline=new s(c.links,this.options),this.inlineText=new s(c.links,I({},this.options,{renderer:new d})),this.tokens=c.reverse();for(var g="";this.next();)g+=this.tok();return g},v.prototype.next=function(){return this.token=this.tokens.pop(),this.token},v.prototype.peek=function(){return this.tokens[this.tokens.length-1]||0},v.prototype.parseText=function(){for(var c=this.token.text;this.peek().type==="text";)c+=` `+this.next().text;return this.inline.output(c)},v.prototype.tok=function(){switch(this.token.type){case"space":return"";case"hr":return this.renderer.hr();case"heading":return this.renderer.heading(this.inline.output(this.token.text),this.token.depth,E(this.inlineText.output(this.token.text)),this.slugger);case"code":return this.renderer.code(this.token.text,this.token.lang,this.token.escaped);case"table":{var c="",g="",x,P,b,U;for(b="",x=0;x?@[\]^`{|}~]/g,"").replace(/\s/g,"-");if(this.seen.hasOwnProperty(g)){var x=g;do this.seen[x]++,g=x+"-"+this.seen[x];while(this.seen.hasOwnProperty(g))}return this.seen[g]=0,g};function S(c,g){if(g){if(S.escapeTest.test(c))return c.replace(S.escapeReplace,function(x){return S.replacements[x]})}else if(S.escapeTestNoEncode.test(c))return c.replace(S.escapeReplaceNoEncode,function(x){return S.replacements[x]});return c}S.escapeTest=/[&<>"']/,S.escapeReplace=/[&<>"']/g,S.replacements={"&":"&","<":"<",">":">",'"':""","'":"'"},S.escapeTestNoEncode=/[<>"']|&(?!#?\w+;)/,S.escapeReplaceNoEncode=/[<>"']|&(?!#?\w+;)/g;function E(c){return c.replace(/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig,function(g,x){return x=x.toLowerCase(),x==="colon"?":":x.charAt(0)==="#"?x.charAt(1)==="x"?String.fromCharCode(parseInt(x.substring(2),16)):String.fromCharCode(+x.substring(1)):""})}function O(c,g){return c=c.source||c,g=g||"",{replace:function(x,P){return P=P.source||P,P=P.replace(/(^|[^\[])\^/g,"$1"),c=c.replace(x,P),this},getRegex:function(){return new RegExp(c,g)}}}function ie(c,g,x){if(c){try{var P=decodeURIComponent(E(x)).replace(/[^\w:]/g,"").toLowerCase()}catch{return null}if(P.indexOf("javascript:")===0||P.indexOf("vbscript:")===0||P.indexOf("data:")===0)return null}g&&!ne.test(x)&&(x=ve(g,x));try{x=encodeURI(x).replace(/%25/g,"%")}catch{return null}return x}function ve(c,g){return Ee[" "+c]||(/^[^:]+:\/*[^/]*$/.test(c)?Ee[" "+c]=c+"/":Ee[" "+c]=le(c,"/",!0)),c=Ee[" "+c],g.slice(0,2)==="//"?c.replace(/:[\s\S]*/,":")+g:g.charAt(0)==="/"?c.replace(/(:\/*[^/]*)[\s\S]*/,"$1")+g:c+g}var Ee={},ne=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;function R(){}R.exec=R;function I(c){for(var g=1,x,P;g=0&&D[oe]==="\\";)q=!q;return q?"|":" |"}),P=x.split(/ \|/),b=0;if(P.length>g)P.splice(g);else for(;P.lengthAn error occurred:

"+S(q.message+"",!0)+"
";throw q}}B.options=B.setOptions=function(c){return I(B.defaults,c),B},B.getDefaults=function(){return{baseUrl:null,breaks:!1,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:new h,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,xhtml:!1}},B.defaults=B.getDefaults(),B.Parser=v,B.parser=v.parse,B.Renderer=h,B.TextRenderer=d,B.Lexer=i,B.lexer=i.lex,B.InlineLexer=s,B.inlineLexer=s.output,B.Slugger=k,B.parse=B,typeof bp!="undefined"&&typeof Sp=="object"?bp.exports=B:typeof define=="function"&&define.amd?define(function(){return B}):e.marked=B})(Sp||(typeof window!="undefined"?window:global))});var wl=yt((Np,Pp)=>{(function(e,n){typeof Np=="object"&&typeof Pp!="undefined"?Pp.exports=n():typeof define=="function"&&define.amd?define(n):(e=e||self,e.CodeMirror=n())})(Np,function(){"use strict";var e=navigator.userAgent,n=navigator.platform,i=/gecko\/\d/i.test(e),u=/MSIE \d/.test(e),s=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(e),h=/Edge\/(\d+)/.exec(e),d=u||s||h,v=d&&(u?document.documentMode||6:+(h||s)[1]),k=!h&&/WebKit\//.test(e),S=k&&/Qt\/\d+\.\d+/.test(e),E=!h&&/Chrome\//.test(e),O=/Opera\//.test(e),ie=/Apple Computer/.test(navigator.vendor),ve=/Mac OS X 1\d\D([8-9]|\d\d)\D/.test(e),Ee=/PhantomJS/.test(e),ne=ie&&(/Mobile\/\w+/.test(e)||navigator.maxTouchPoints>2),R=/Android/.test(e),I=ne||R||/webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(e),Y=ne||/Mac/.test(n),le=/\bCrOS\b/.test(e),pe=/win/i.test(n),Re=O&&e.match(/Version\/(\d*\.\d*)/);Re&&(Re=Number(Re[1])),Re&&Re>=15&&(O=!1,k=!0);var B=Y&&(S||O&&(Re==null||Re<12.11)),c=i||d&&v>=9;function g(t){return new RegExp("(^|\\s)"+t+"(?:$|\\s)\\s*")}var x=function(t,r){var a=t.className,o=g(r).exec(a);if(o){var l=a.slice(o.index+o[0].length);t.className=a.slice(0,o.index)+(l?o[1]+l:"")}};function P(t){for(var r=t.childNodes.length;r>0;--r)t.removeChild(t.firstChild);return t}function b(t,r){return P(t).appendChild(r)}function U(t,r,a,o){var l=document.createElement(t);if(a&&(l.className=a),o&&(l.style.cssText=o),typeof r=="string")l.appendChild(document.createTextNode(r));else if(r)for(var f=0;f=r)return p+(r-f);p+=m-f,p+=a-p%a,f=m+1}}var Ce=function(){this.id=null,this.f=null,this.time=0,this.handler=We(this.onTimeout,this)};Ce.prototype.onTimeout=function(t){t.id=0,t.time<=+new Date?t.f():setTimeout(t.handler,t.time-+new Date)},Ce.prototype.set=function(t,r){this.f=r;var a=+new Date+t;(!this.id||a=r)return o+Math.min(p,r-l);if(l+=f-o,l+=a-l%a,o=f+1,l>=r)return o}}var Q=[""];function ee(t){for(;Q.length<=t;)Q.push(fe(Q)+" ");return Q[t]}function fe(t){return t[t.length-1]}function De(t,r){for(var a=[],o=0;o"\x80"&&(t.toUpperCase()!=t.toLowerCase()||Gt.test(t))}function Et(t,r){return r?r.source.indexOf("\\w")>-1&&Lt(t)?!0:r.test(t):Lt(t)}function Bt(t){for(var r in t)if(t.hasOwnProperty(r)&&t[r])return!1;return!0}var zt=/[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/;function Zt(t){return t.charCodeAt(0)>=768&&zt.test(t)}function pn(t,r,a){for(;(a<0?r>0:ra?-1:1;;){if(r==a)return r;var l=(r+a)/2,f=o<0?Math.ceil(l):Math.floor(l);if(f==r)return t(f)?r:a;t(f)?a=f:r=f+o}}function _n(t,r,a,o){if(!t)return o(r,a,"ltr",0);for(var l=!1,f=0;fr||r==a&&p.to==r)&&(o(Math.max(p.from,r),Math.min(p.to,a),p.level==1?"rtl":"ltr",f),l=!0)}l||o(r,a,"ltr")}var A=null;function j(t,r,a){var o;A=null;for(var l=0;lr)return l;f.to==r&&(f.from!=f.to&&a=="before"?o=l:A=l),f.from==r&&(f.from!=f.to&&a!="before"?o=l:A=l)}return o??A}var Ae=function(){var t="bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN",r="nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111";function a(C){return C<=247?t.charAt(C):1424<=C&&C<=1524?"R":1536<=C&&C<=1785?r.charAt(C-1536):1774<=C&&C<=2220?"r":8192<=C&&C<=8203?"w":C==8204?"b":"L"}var o=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,l=/[stwN]/,f=/[LRr]/,p=/[Lb1n]/,m=/[1n]/;function T(C,X,Z){this.level=C,this.from=X,this.to=Z}return function(C,X){var Z=X=="ltr"?"L":"R";if(C.length==0||X=="ltr"&&!o.test(C))return!1;for(var Te=C.length,ye=[],Be=0;Be-1&&(o[r]=l.slice(0,f).concat(l.slice(f+1)))}}}function ze(t,r){var a=J(t,r);if(!!a.length)for(var o=Array.prototype.slice.call(arguments,2),l=0;l0}function wt(t){t.prototype.on=function(r,a){M(this,r,a)},t.prototype.off=function(r,a){Se(this,r,a)}}function bt(t){t.preventDefault?t.preventDefault():t.returnValue=!1}function Rt(t){t.stopPropagation?t.stopPropagation():t.cancelBubble=!0}function Wt(t){return t.defaultPrevented!=null?t.defaultPrevented:t.returnValue==!1}function ln(t){bt(t),Rt(t)}function nn(t){return t.target||t.srcElement}function gn(t){var r=t.which;return r==null&&(t.button&1?r=1:t.button&2?r=3:t.button&4&&(r=2)),Y&&t.ctrlKey&&r==1&&(r=3),r}var K=function(){if(d&&v<9)return!1;var t=U("div");return"draggable"in t||"dragDrop"in t}(),Pe;function F(t){if(Pe==null){var r=U("span","\u200B");b(t,U("span",[r,document.createTextNode("x")])),t.firstChild.offsetHeight!=0&&(Pe=r.offsetWidth<=1&&r.offsetHeight>2&&!(d&&v<8))}var a=Pe?U("span","\u200B"):U("span","\xA0",null,"display: inline-block; width: 1px; margin-right: -1px");return a.setAttribute("cm-text",""),a}var $;function N(t){if($!=null)return $;var r=b(t,document.createTextNode("A\u062EA")),a=D(r,0,1).getBoundingClientRect(),o=D(r,1,2).getBoundingClientRect();return P(t),!a||a.left==a.right?!1:$=o.right-a.right<3}var L=` +Please report this to https://github.com/markedjs/marked.`,(g||B.defaults).silent)return"

An error occurred:

"+S(q.message+"",!0)+"
";throw q}}B.options=B.setOptions=function(c){return I(B.defaults,c),B},B.getDefaults=function(){return{baseUrl:null,breaks:!1,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:new h,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,xhtml:!1}},B.defaults=B.getDefaults(),B.Parser=v,B.parser=v.parse,B.Renderer=h,B.TextRenderer=d,B.Lexer=i,B.lexer=i.lex,B.InlineLexer=s,B.inlineLexer=s.output,B.Slugger=k,B.parse=B,typeof Cp!="undefined"&&typeof bp=="object"?Cp.exports=B:typeof define=="function"&&define.amd?define(function(){return B}):e.marked=B})(bp||(typeof window!="undefined"?window:global))});var wl=yt((Pp,Lp)=>{(function(e,n){typeof Pp=="object"&&typeof Lp!="undefined"?Lp.exports=n():typeof define=="function"&&define.amd?define(n):(e=e||self,e.CodeMirror=n())})(Pp,function(){"use strict";var e=navigator.userAgent,n=navigator.platform,i=/gecko\/\d/i.test(e),u=/MSIE \d/.test(e),s=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(e),h=/Edge\/(\d+)/.exec(e),d=u||s||h,v=d&&(u?document.documentMode||6:+(h||s)[1]),k=!h&&/WebKit\//.test(e),S=k&&/Qt\/\d+\.\d+/.test(e),E=!h&&/Chrome\//.test(e),O=/Opera\//.test(e),ie=/Apple Computer/.test(navigator.vendor),ve=/Mac OS X 1\d\D([8-9]|\d\d)\D/.test(e),Ee=/PhantomJS/.test(e),ne=ie&&(/Mobile\/\w+/.test(e)||navigator.maxTouchPoints>2),R=/Android/.test(e),I=ne||R||/webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(e),Y=ne||/Mac/.test(n),le=/\bCrOS\b/.test(e),pe=/win/i.test(n),Re=O&&e.match(/Version\/(\d*\.\d*)/);Re&&(Re=Number(Re[1])),Re&&Re>=15&&(O=!1,k=!0);var B=Y&&(S||O&&(Re==null||Re<12.11)),c=i||d&&v>=9;function g(t){return new RegExp("(^|\\s)"+t+"(?:$|\\s)\\s*")}var x=function(t,r){var a=t.className,o=g(r).exec(a);if(o){var l=a.slice(o.index+o[0].length);t.className=a.slice(0,o.index)+(l?o[1]+l:"")}};function P(t){for(var r=t.childNodes.length;r>0;--r)t.removeChild(t.firstChild);return t}function b(t,r){return P(t).appendChild(r)}function U(t,r,a,o){var l=document.createElement(t);if(a&&(l.className=a),o&&(l.style.cssText=o),typeof r=="string")l.appendChild(document.createTextNode(r));else if(r)for(var f=0;f=r)return p+(r-f);p+=m-f,p+=a-p%a,f=m+1}}var Ce=function(){this.id=null,this.f=null,this.time=0,this.handler=We(this.onTimeout,this)};Ce.prototype.onTimeout=function(t){t.id=0,t.time<=+new Date?t.f():setTimeout(t.handler,t.time-+new Date)},Ce.prototype.set=function(t,r){this.f=r;var a=+new Date+t;(!this.id||a=r)return o+Math.min(p,r-l);if(l+=f-o,l+=a-l%a,o=f+1,l>=r)return o}}var Q=[""];function ee(t){for(;Q.length<=t;)Q.push(fe(Q)+" ");return Q[t]}function fe(t){return t[t.length-1]}function De(t,r){for(var a=[],o=0;o"\x80"&&(t.toUpperCase()!=t.toLowerCase()||Gt.test(t))}function Et(t,r){return r?r.source.indexOf("\\w")>-1&&Lt(t)?!0:r.test(t):Lt(t)}function Bt(t){for(var r in t)if(t.hasOwnProperty(r)&&t[r])return!1;return!0}var zt=/[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/;function Zt(t){return t.charCodeAt(0)>=768&&zt.test(t)}function pn(t,r,a){for(;(a<0?r>0:ra?-1:1;;){if(r==a)return r;var l=(r+a)/2,f=o<0?Math.ceil(l):Math.floor(l);if(f==r)return t(f)?r:a;t(f)?a=f:r=f+o}}function kn(t,r,a,o){if(!t)return o(r,a,"ltr",0);for(var l=!1,f=0;fr||r==a&&p.to==r)&&(o(Math.max(p.from,r),Math.min(p.to,a),p.level==1?"rtl":"ltr",f),l=!0)}l||o(r,a,"ltr")}var A=null;function j(t,r,a){var o;A=null;for(var l=0;lr)return l;f.to==r&&(f.from!=f.to&&a=="before"?o=l:A=l),f.from==r&&(f.from!=f.to&&a!="before"?o=l:A=l)}return o??A}var Ae=function(){var t="bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN",r="nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111";function a(C){return C<=247?t.charAt(C):1424<=C&&C<=1524?"R":1536<=C&&C<=1785?r.charAt(C-1536):1774<=C&&C<=2220?"r":8192<=C&&C<=8203?"w":C==8204?"b":"L"}var o=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,l=/[stwN]/,f=/[LRr]/,p=/[Lb1n]/,m=/[1n]/;function T(C,X,Z){this.level=C,this.from=X,this.to=Z}return function(C,X){var Z=X=="ltr"?"L":"R";if(C.length==0||X=="ltr"&&!o.test(C))return!1;for(var Te=C.length,ye=[],Be=0;Be-1&&(o[r]=l.slice(0,f).concat(l.slice(f+1)))}}}function ze(t,r){var a=J(t,r);if(!!a.length)for(var o=Array.prototype.slice.call(arguments,2),l=0;l0}function wt(t){t.prototype.on=function(r,a){M(this,r,a)},t.prototype.off=function(r,a){Se(this,r,a)}}function bt(t){t.preventDefault?t.preventDefault():t.returnValue=!1}function Rt(t){t.stopPropagation?t.stopPropagation():t.cancelBubble=!0}function Wt(t){return t.defaultPrevented!=null?t.defaultPrevented:t.returnValue==!1}function ln(t){bt(t),Rt(t)}function nn(t){return t.target||t.srcElement}function gn(t){var r=t.which;return r==null&&(t.button&1?r=1:t.button&2?r=3:t.button&4&&(r=2)),Y&&t.ctrlKey&&r==1&&(r=3),r}var K=function(){if(d&&v<9)return!1;var t=U("div");return"draggable"in t||"dragDrop"in t}(),Pe;function F(t){if(Pe==null){var r=U("span","\u200B");b(t,U("span",[r,document.createTextNode("x")])),t.firstChild.offsetHeight!=0&&(Pe=r.offsetWidth<=1&&r.offsetHeight>2&&!(d&&v<8))}var a=Pe?U("span","\u200B"):U("span","\xA0",null,"display: inline-block; width: 1px; margin-right: -1px");return a.setAttribute("cm-text",""),a}var $;function N(t){if($!=null)return $;var r=b(t,document.createTextNode("A\u062EA")),a=D(r,0,1).getBoundingClientRect(),o=D(r,1,2).getBoundingClientRect();return P(t),!a||a.left==a.right?!1:$=o.right-a.right<3}var L=` b`.split(/\n/).length!=3?function(t){for(var r=0,a=[],o=t.length;r<=o;){var l=t.indexOf(` -`,r);l==-1&&(l=t.length);var f=t.slice(r,t.charAt(l-1)=="\r"?l-1:l),p=f.indexOf("\r");p!=-1?(a.push(f.slice(0,p)),r+=p+1):(a.push(f),r=l+1)}return a}:function(t){return t.split(/\r\n?|\n/)},V=window.getSelection?function(t){try{return t.selectionStart!=t.selectionEnd}catch{return!1}}:function(t){var r;try{r=t.ownerDocument.selection.createRange()}catch{}return!r||r.parentElement()!=t?!1:r.compareEndPoints("StartToEnd",r)!=0},he=function(){var t=U("div");return"oncopy"in t?!0:(t.setAttribute("oncopy","return;"),typeof t.oncopy=="function")}(),_e=null;function Fe(t){if(_e!=null)return _e;var r=b(t,U("span","x")),a=r.getBoundingClientRect(),o=D(r,0,1).getBoundingClientRect();return _e=Math.abs(a.left-o.left)>1}var Ie={},$e={};function Ke(t,r){arguments.length>2&&(r.dependencies=Array.prototype.slice.call(arguments,2)),Ie[t]=r}function et(t,r){$e[t]=r}function vt(t){if(typeof t=="string"&&$e.hasOwnProperty(t))t=$e[t];else if(t&&typeof t.name=="string"&&$e.hasOwnProperty(t.name)){var r=$e[t.name];typeof r=="string"&&(r={name:r}),t=jt(r,t),t.name=r.name}else{if(typeof t=="string"&&/^[\w\-]+\/[\w\-]+\+xml$/.test(t))return vt("application/xml");if(typeof t=="string"&&/^[\w\-]+\/[\w\-]+\+json$/.test(t))return vt("application/json")}return typeof t=="string"?{name:t}:t||{name:"null"}}function Ot(t,r){r=vt(r);var a=Ie[r.name];if(!a)return Ot(t,"text/plain");var o=a(t,r);if(Ct.hasOwnProperty(r.name)){var l=Ct[r.name];for(var f in l)!l.hasOwnProperty(f)||(o.hasOwnProperty(f)&&(o["_"+f]=o[f]),o[f]=l[f])}if(o.name=r.name,r.helperType&&(o.helperType=r.helperType),r.modeProps)for(var p in r.modeProps)o[p]=r.modeProps[p];return o}var Ct={};function Nt(t,r){var a=Ct.hasOwnProperty(t)?Ct[t]:Ct[t]={};ce(r,a)}function Jt(t,r){if(r===!0)return r;if(t.copyState)return t.copyState(r);var a={};for(var o in r){var l=r[o];l instanceof Array&&(l=l.concat([])),a[o]=l}return a}function An(t,r){for(var a;t.innerMode&&(a=t.innerMode(r),!(!a||a.mode==t));)r=a.state,t=a.mode;return a||{mode:t,state:r}}function bn(t,r,a){return t.startState?t.startState(r,a):!0}var Ut=function(t,r,a){this.pos=this.start=0,this.string=t,this.tabSize=r||8,this.lastColumnPos=this.lastColumnValue=0,this.lineStart=0,this.lineOracle=a};Ut.prototype.eol=function(){return this.pos>=this.string.length},Ut.prototype.sol=function(){return this.pos==this.lineStart},Ut.prototype.peek=function(){return this.string.charAt(this.pos)||void 0},Ut.prototype.next=function(){if(this.posr},Ut.prototype.eatSpace=function(){for(var t=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>t},Ut.prototype.skipToEnd=function(){this.pos=this.string.length},Ut.prototype.skipTo=function(t){var r=this.string.indexOf(t,this.pos);if(r>-1)return this.pos=r,!0},Ut.prototype.backUp=function(t){this.pos-=t},Ut.prototype.column=function(){return this.lastColumnPos0?null:(f&&r!==!1&&(this.pos+=f[0].length),f)}},Ut.prototype.current=function(){return this.string.slice(this.start,this.pos)},Ut.prototype.hideFirstChars=function(t,r){this.lineStart+=t;try{return r()}finally{this.lineStart-=t}},Ut.prototype.lookAhead=function(t){var r=this.lineOracle;return r&&r.lookAhead(t)},Ut.prototype.baseToken=function(){var t=this.lineOracle;return t&&t.baseToken(this.pos)};function st(t,r){if(r-=t.first,r<0||r>=t.size)throw new Error("There is no line "+(r+t.first)+" in the document.");for(var a=t;!a.lines;)for(var o=0;;++o){var l=a.children[o],f=l.chunkSize();if(r=t.first&&ra?de(a,st(t,a).text.length):Vt(r,st(t,r.line).text.length)}function Vt(t,r){var a=t.ch;return a==null||a>r?de(t.line,r):a<0?de(t.line,0):t}function sn(t,r){for(var a=[],o=0;othis.maxLookAhead&&(this.maxLookAhead=t),r},In.prototype.baseToken=function(t){if(!this.baseTokens)return null;for(;this.baseTokens[this.baseTokenPos]<=t;)this.baseTokenPos+=2;var r=this.baseTokens[this.baseTokenPos+1];return{type:r&&r.replace(/( |^)overlay .*/,""),size:this.baseTokens[this.baseTokenPos]-t}},In.prototype.nextLine=function(){this.line++,this.maxLookAhead>0&&this.maxLookAhead--},In.fromSaved=function(t,r,a){return r instanceof on?new In(t,Jt(t.mode,r.state),a,r.lookAhead):new In(t,Jt(t.mode,r),a)},In.prototype.save=function(t){var r=t!==!1?Jt(this.doc.mode,this.state):this.state;return this.maxLookAhead>0?new on(r,this.maxLookAhead):r};function _i(t,r,a,o){var l=[t.state.modeGen],f={};Ye(t,r.text,t.doc.mode,a,function(C,X){return l.push(C,X)},f,o);for(var p=a.state,m=function(C){a.baseTokens=l;var X=t.state.overlays[C],Z=1,Te=0;a.state=!0,Ye(t,r.text,X.mode,a,function(ye,Be){for(var Ve=Z;Teye&&l.splice(Z,1,ye,l[Z+1],nt),Z+=2,Te=Math.min(ye,nt)}if(!!Be)if(X.opaque)l.splice(Ve,Z-Ve,ye,"overlay "+Be),Z=Ve+2;else for(;Vet.options.maxHighlightLength&&Jt(t.doc.mode,o.state),f=_i(t,r,o);l&&(o.state=l),r.stateAfter=o.save(!l),r.styles=f.styles,f.classes?r.styleClasses=f.classes:r.styleClasses&&(r.styleClasses=null),a===t.doc.highlightFrontier&&(t.doc.modeFrontier=Math.max(t.doc.modeFrontier,++t.doc.highlightFrontier))}return r.styles}function Qr(t,r,a){var o=t.doc,l=t.display;if(!o.mode.startState)return new In(o,!0,r);var f=xe(t,r,a),p=f>o.first&&st(o,f-1).stateAfter,m=p?In.fromSaved(o,p,f):new In(o,bn(o.mode),f);return o.iter(f,r,function(T){w(t,T.text,m);var C=m.line;T.stateAfter=C==r-1||C%5==0||C>=l.viewFrom&&Cr.start)return f}throw new Error("Mode "+t.name+" failed to advance stream.")}var ae=function(t,r,a){this.start=t.start,this.end=t.pos,this.string=t.current(),this.type=r||null,this.state=a};function Me(t,r,a,o){var l=t.doc,f=l.mode,p;r=Qe(l,r);var m=st(l,r.line),T=Qr(t,r.line,a),C=new Ut(m.text,t.options.tabSize,T),X;for(o&&(X=[]);(o||C.post.options.maxHighlightLength?(m=!1,p&&w(t,r,o,X.pos),X.pos=r.length,Z=null):Z=ue(W(a,X,o.state,Te),f),Te){var ye=Te[0].name;ye&&(Z="m-"+(Z?ye+" "+Z:ye))}if(!m||C!=Z){for(;Tp;--m){if(m<=f.first)return f.first;var T=st(f,m-1),C=T.stateAfter;if(C&&(!a||m+(C instanceof on?C.lookAhead:0)<=f.modeFrontier))return m;var X=ke(T.text,null,t.options.tabSize);(l==null||o>X)&&(l=m-1,o=X)}return l}function Ge(t,r){if(t.modeFrontier=Math.min(t.modeFrontier,r),!(t.highlightFrontiera;o--){var l=st(t,o).stateAfter;if(l&&(!(l instanceof on)||o+l.lookAhead=r:f.to>r);(o||(o=[])).push(new Yt(p,f.from,T?null:f.to))}}return o}function Nn(t,r,a){var o;if(t)for(var l=0;l=r:f.to>r);if(m||f.from==r&&p.type=="bookmark"&&(!a||f.marker.insertLeft)){var T=f.from==null||(p.inclusiveLeft?f.from<=r:f.from0&&m)for(var gt=0;gt0)){var X=[T,1],Z=_(C.from,m.from),Te=_(C.to,m.to);(Z<0||!p.inclusiveLeft&&!Z)&&X.push({from:C.from,to:m.from}),(Te>0||!p.inclusiveRight&&!Te)&&X.push({from:m.to,to:C.to}),l.splice.apply(l,X),T+=X.length-3}}return l}function Qn(t){var r=t.markedSpans;if(!!r){for(var a=0;ar)&&(!o||cr(o,f.marker)<0)&&(o=f.marker)}return o}function li(t,r,a,o,l){var f=st(t,r),p=rt&&f.markedSpans;if(p)for(var m=0;m=0&&Z<=0||X<=0&&Z>=0)&&(X<=0&&(T.marker.inclusiveRight&&l.inclusiveLeft?_(C.to,a)>=0:_(C.to,a)>0)||X>=0&&(T.marker.inclusiveRight&&l.inclusiveLeft?_(C.from,o)<=0:_(C.from,o)<0)))return!0}}}function Gn(t){for(var r;r=At(t);)t=r.find(-1,!0).line;return t}function Hi(t){for(var r;r=Qt(t);)t=r.find(1,!0).line;return t}function ea(t){for(var r,a;r=Qt(t);)t=r.find(1,!0).line,(a||(a=[])).push(t);return a}function Wi(t,r){var a=st(t,r),o=Gn(a);return a==o?r:St(o)}function xo(t,r){if(r>t.lastLine())return r;var a=st(t,r),o;if(!Ir(t,a))return r;for(;o=Qt(a);)a=o.find(1,!0).line;return St(a)+1}function Ir(t,r){var a=rt&&r.markedSpans;if(a){for(var o=void 0,l=0;lr.maxLineLength&&(r.maxLineLength=l,r.maxLine=o)})}var si=function(t,r,a){this.text=t,Zr(this,r),this.height=a?a(this):1};si.prototype.lineNo=function(){return St(this)},wt(si);function Za(t,r,a,o){t.text=r,t.stateAfter&&(t.stateAfter=null),t.styles&&(t.styles=null),t.order!=null&&(t.order=null),Qn(t),Zr(t,a);var l=o?o(t):1;l!=t.height&&Xt(t,l)}function Ja(t){t.parent=null,Qn(t)}var kl={},Tl={};function Jp(t,r){if(!t||/^\s*$/.test(t))return null;var a=r.addModeClass?Tl:kl;return a[t]||(a[t]=t.replace(/\S+/g,"cm-$&"))}function ev(t,r){var a=y("span",null,null,k?"padding-right: .1px":null),o={pre:y("pre",[a],"CodeMirror-line"),content:a,col:0,pos:0,cm:t,trailingSpace:!1,splitSpaces:t.getOption("lineWrapping")};r.measure={};for(var l=0;l<=(r.rest?r.rest.length:0);l++){var f=l?r.rest[l-1]:r.line,p=void 0;o.pos=0,o.addToken=u_,N(t.display.measure)&&(p=Xe(f,t.doc.direction))&&(o.addToken=s_(o.addToken,p)),o.map=[];var m=r!=t.display.externalMeasured&&St(f);f_(f,o,ki(t,f,m)),f.styleClasses&&(f.styleClasses.bgClass&&(o.bgClass=we(f.styleClasses.bgClass,o.bgClass||"")),f.styleClasses.textClass&&(o.textClass=we(f.styleClasses.textClass,o.textClass||""))),o.map.length==0&&o.map.push(0,0,o.content.appendChild(F(t.display.measure))),l==0?(r.measure.map=o.map,r.measure.cache={}):((r.measure.maps||(r.measure.maps=[])).push(o.map),(r.measure.caches||(r.measure.caches=[])).push({}))}if(k){var T=o.content.lastChild;(/\bcm-tab\b/.test(T.className)||T.querySelector&&T.querySelector(".cm-tab"))&&(o.content.className="cm-tab-wrap-hack")}return ze(t,"renderLine",t,r.line,o.pre),o.pre.className&&(o.textClass=we(o.pre.className,o.textClass||"")),o}function a_(t){var r=U("span","\u2022","cm-invalidchar");return r.title="\\u"+t.charCodeAt(0).toString(16),r.setAttribute("aria-label",r.title),r}function u_(t,r,a,o,l,f,p){if(!!r){var m=t.splitSpaces?l_(r,t.trailingSpace):r,T=t.cm.state.specialChars,C=!1,X;if(!T.test(r))t.col+=r.length,X=document.createTextNode(m),t.map.push(t.pos,t.pos+r.length,X),d&&v<9&&(C=!0),t.pos+=r.length;else{X=document.createDocumentFragment();for(var Z=0;;){T.lastIndex=Z;var Te=T.exec(r),ye=Te?Te.index-Z:r.length-Z;if(ye){var Be=document.createTextNode(m.slice(Z,Z+ye));d&&v<9?X.appendChild(U("span",[Be])):X.appendChild(Be),t.map.push(t.pos,t.pos+ye,Be),t.col+=ye,t.pos+=ye}if(!Te)break;Z+=ye+1;var Ve=void 0;if(Te[0]==" "){var nt=t.cm.options.tabSize,ut=nt-t.col%nt;Ve=X.appendChild(U("span",ee(ut),"cm-tab")),Ve.setAttribute("role","presentation"),Ve.setAttribute("cm-text"," "),t.col+=ut}else Te[0]=="\r"||Te[0]==` -`?(Ve=X.appendChild(U("span",Te[0]=="\r"?"\u240D":"\u2424","cm-invalidchar")),Ve.setAttribute("cm-text",Te[0]),t.col+=1):(Ve=t.cm.options.specialCharPlaceholder(Te[0]),Ve.setAttribute("cm-text",Te[0]),d&&v<9?X.appendChild(U("span",[Ve])):X.appendChild(Ve),t.col+=1);t.map.push(t.pos,t.pos+1,Ve),t.pos++}}if(t.trailingSpace=m.charCodeAt(r.length-1)==32,a||o||l||C||f||p){var pt=a||"";o&&(pt+=o),l&&(pt+=l);var lt=U("span",[X],pt,f);if(p)for(var gt in p)p.hasOwnProperty(gt)&>!="style"&>!="class"&<.setAttribute(gt,p[gt]);return t.content.appendChild(lt)}t.content.appendChild(X)}}function l_(t,r){if(t.length>1&&!/ /.test(t))return t;for(var a=r,o="",l=0;lC&&Z.from<=C));Te++);if(Z.to>=X)return t(a,o,l,f,p,m,T);t(a,o.slice(0,Z.to-C),l,f,null,m,T),f=null,o=o.slice(Z.to-C),C=Z.to}}}function tv(t,r,a,o){var l=!o&&a.widgetNode;l&&t.map.push(t.pos,t.pos+r,l),!o&&t.cm.display.input.needsContentAttribute&&(l||(l=t.content.appendChild(document.createElement("span"))),l.setAttribute("cm-marker",a.id)),l&&(t.cm.display.input.setUneditable(l),t.content.appendChild(l)),t.pos+=r,t.trailingSpace=!1}function f_(t,r,a){var o=t.markedSpans,l=t.text,f=0;if(!o){for(var p=1;pT||Ft.collapsed&&xt.to==T&&xt.from==T)){if(xt.to!=null&&xt.to!=T&&ye>xt.to&&(ye=xt.to,Ve=""),Ft.className&&(Be+=" "+Ft.className),Ft.css&&(Te=(Te?Te+";":"")+Ft.css),Ft.startStyle&&xt.from==T&&(nt+=" "+Ft.startStyle),Ft.endStyle&&xt.to==ye&&(gt||(gt=[])).push(Ft.endStyle,xt.to),Ft.title&&((pt||(pt={})).title=Ft.title),Ft.attributes)for(var hn in Ft.attributes)(pt||(pt={}))[hn]=Ft.attributes[hn];Ft.collapsed&&(!ut||cr(ut.marker,Ft)<0)&&(ut=xt)}else xt.from>T&&ye>xt.from&&(ye=xt.from)}if(gt)for(var Bn=0;Bn=m)break;for(var Mr=Math.min(m,ye);;){if(X){var pr=T+X.length;if(!ut){var Ln=pr>Mr?X.slice(0,Mr-T):X;r.addToken(r,Ln,Z?Z+Be:Be,nt,T+Ln.length==ye?Ve:"",Te,pt)}if(pr>=Mr){X=X.slice(Mr-T),T=Mr;break}T=pr,nt=""}X=l.slice(f,f=a[C++]),Z=Jp(a[C++],r.cm.options)}}}function nv(t,r,a){this.line=r,this.rest=ea(r),this.size=this.rest?St(fe(this.rest))-a+1:1,this.node=this.text=null,this.hidden=Ir(t,r)}function Sl(t,r,a){for(var o=[],l,f=r;f2&&f.push((T.bottom+C.top)/2-a.top)}}f.push(a.bottom-a.top)}}function sv(t,r,a){if(t.line==r)return{map:t.measure.map,cache:t.measure.cache};if(t.rest){for(var o=0;oa)return{map:t.measure.maps[l],cache:t.measure.caches[l],before:!0}}}function __(t,r){r=Gn(r);var a=St(r),o=t.display.externalMeasured=new nv(t.doc,r,a);o.lineN=a;var l=o.built=ev(t,o);return o.text=l.pre,b(t.display.lineMeasure,l.pre),o}function fv(t,r,a,o){return ci(t,na(t,r),a,o)}function oc(t,r){if(r>=t.display.viewFrom&&r=a.lineN&&rr)&&(f=T-m,l=f-1,r>=T&&(p="right")),l!=null){if(o=t[C+2],m==T&&a==(o.insertLeft?"left":"right")&&(p=a),a=="left"&&l==0)for(;C&&t[C-2]==t[C-3]&&t[C-1].insertLeft;)o=t[(C-=3)+2],p="left";if(a=="right"&&l==T-m)for(;C=0&&(a=t[l]).left==a.right;l--);return a}function T_(t,r,a,o){var l=hv(r.map,a,o),f=l.node,p=l.start,m=l.end,T=l.collapse,C;if(f.nodeType==3){for(var X=0;X<4;X++){for(;p&&Zt(r.line.text.charAt(l.coverStart+p));)--p;for(;l.coverStart+m0&&(T=o="right");var Z;t.options.lineWrapping&&(Z=f.getClientRects()).length>1?C=Z[o=="right"?Z.length-1:0]:C=f.getBoundingClientRect()}if(d&&v<9&&!p&&(!C||!C.left&&!C.right)){var Te=f.parentNode.getClientRects()[0];Te?C={left:Te.left,right:Te.left+ia(t.display),top:Te.top,bottom:Te.bottom}:C=cv}for(var ye=C.top-r.rect.top,Be=C.bottom-r.rect.top,Ve=(ye+Be)/2,nt=r.view.measure.heights,ut=0;ut=o.text.length?(T=o.text.length,C="before"):T<=0&&(T=0,C="after"),!m)return p(C=="before"?T-1:T,C=="before");function X(Be,Ve,nt){var ut=m[Ve],pt=ut.level==1;return p(nt?Be-1:Be,pt!=nt)}var Z=j(m,T,C),Te=A,ye=X(T,Z,C=="before");return Te!=null&&(ye.other=X(T,Te,C!="before")),ye}function yv(t,r){var a=0;r=Qe(t.doc,r),t.options.lineWrapping||(a=ia(t.display)*r.ch);var o=st(t.doc,r.line),l=Rr(o)+bl(t.display);return{left:a,right:a,top:l,bottom:l+o.height}}function uc(t,r,a,o,l){var f=de(t,r,a);return f.xRel=l,o&&(f.outside=o),f}function lc(t,r,a){var o=t.doc;if(a+=t.display.viewOffset,a<0)return uc(o.first,0,null,-1,-1);var l=G(o,a),f=o.first+o.size-1;if(l>f)return uc(o.first+o.size-1,st(o,f).text.length,null,1,1);r<0&&(r=0);for(var p=st(o,l);;){var m=b_(t,p,l,r,a),T=Ti(p,m.ch+(m.xRel>0||m.outside>0?1:0));if(!T)return m;var C=T.find(1);if(C.line==l)return C;p=st(o,l=C.line)}}function wv(t,r,a,o){o-=ac(r);var l=r.text.length,f=$t(function(p){return ci(t,a,p-1).bottom<=o},l,0);return l=$t(function(p){return ci(t,a,p).top>o},f,l),{begin:f,end:l}}function xv(t,r,a,o){a||(a=na(t,r));var l=Cl(t,r,ci(t,a,o),"line").top;return wv(t,r,a,l)}function sc(t,r,a,o){return t.bottom<=a?!1:t.top>a?!0:(o?t.left:t.right)>r}function b_(t,r,a,o,l){l-=Rr(r);var f=na(t,r),p=ac(r),m=0,T=r.text.length,C=!0,X=Xe(r,t.doc.direction);if(X){var Z=(t.options.lineWrapping?M_:C_)(t,r,a,f,X,o,l);C=Z.level!=1,m=C?Z.from:Z.to-1,T=C?Z.to:Z.from-1}var Te=null,ye=null,Be=$t(function(kt){var xt=ci(t,f,kt);return xt.top+=p,xt.bottom+=p,sc(xt,o,l,!1)?(xt.top<=l&&xt.left<=o&&(Te=kt,ye=xt),!0):!1},m,T),Ve,nt,ut=!1;if(ye){var pt=o-ye.left=gt.bottom?1:0}return Be=pn(r.text,Be,1),uc(a,Be,nt,ut,o-Ve)}function C_(t,r,a,o,l,f,p){var m=$t(function(Z){var Te=l[Z],ye=Te.level!=1;return sc(Jr(t,de(a,ye?Te.to:Te.from,ye?"before":"after"),"line",r,o),f,p,!0)},0,l.length-1),T=l[m];if(m>0){var C=T.level!=1,X=Jr(t,de(a,C?T.from:T.to,C?"after":"before"),"line",r,o);sc(X,f,p,!0)&&X.top>p&&(T=l[m-1])}return T}function M_(t,r,a,o,l,f,p){var m=wv(t,r,o,p),T=m.begin,C=m.end;/\s/.test(r.text.charAt(C-1))&&C--;for(var X=null,Z=null,Te=0;Te=C||ye.to<=T)){var Be=ye.level!=1,Ve=ci(t,o,Be?Math.min(C,ye.to)-1:Math.max(T,ye.from)).right,nt=Vent)&&(X=ye,Z=nt)}}return X||(X=l[l.length-1]),X.fromC&&(X={from:X.from,to:C,level:X.level}),X}var So;function ra(t){if(t.cachedTextHeight!=null)return t.cachedTextHeight;if(So==null){So=U("pre",null,"CodeMirror-line-like");for(var r=0;r<49;++r)So.appendChild(document.createTextNode("x")),So.appendChild(U("br"));So.appendChild(document.createTextNode("x"))}b(t.measure,So);var a=So.offsetHeight/50;return a>3&&(t.cachedTextHeight=a),P(t.measure),a||1}function ia(t){if(t.cachedCharWidth!=null)return t.cachedCharWidth;var r=U("span","xxxxxxxxxx"),a=U("pre",[r],"CodeMirror-line-like");b(t.measure,a);var o=r.getBoundingClientRect(),l=(o.right-o.left)/10;return l>2&&(t.cachedCharWidth=l),l||10}function fc(t){for(var r=t.display,a={},o={},l=r.gutters.clientLeft,f=r.gutters.firstChild,p=0;f;f=f.nextSibling,++p){var m=t.display.gutterSpecs[p].className;a[m]=f.offsetLeft+f.clientLeft+l,o[m]=f.clientWidth}return{fixedPos:cc(r),gutterTotalWidth:r.gutters.offsetWidth,gutterLeft:a,gutterWidth:o,wrapperWidth:r.wrapper.clientWidth}}function cc(t){return t.scroller.getBoundingClientRect().left-t.sizer.getBoundingClientRect().left}function _v(t){var r=ra(t.display),a=t.options.lineWrapping,o=a&&Math.max(5,t.display.scroller.clientWidth/ia(t.display)-3);return function(l){if(Ir(t.doc,l))return 0;var f=0;if(l.widgets)for(var p=0;p0&&(C=st(t.doc,T.line).text).length==T.ch){var X=ke(C,C.length,t.options.tabSize)-C.length;T=de(T.line,Math.max(0,Math.round((f-lv(t.display).left)/ia(t.display))-X))}return T}function Co(t,r){if(r>=t.display.viewTo||(r-=t.display.viewFrom,r<0))return null;for(var a=t.display.view,o=0;or)&&(l.updateLineNumbers=r),t.curOp.viewChanged=!0,r>=l.viewTo)rt&&Wi(t.doc,r)l.viewFrom?Bi(t):(l.viewFrom+=o,l.viewTo+=o);else if(r<=l.viewFrom&&a>=l.viewTo)Bi(t);else if(r<=l.viewFrom){var f=El(t,a,a+o,1);f?(l.view=l.view.slice(f.index),l.viewFrom=f.lineN,l.viewTo+=o):Bi(t)}else if(a>=l.viewTo){var p=El(t,r,r,-1);p?(l.view=l.view.slice(0,p.index),l.viewTo=p.lineN):Bi(t)}else{var m=El(t,r,r,-1),T=El(t,a,a+o,1);m&&T?(l.view=l.view.slice(0,m.index).concat(Sl(t,m.lineN,T.lineN)).concat(l.view.slice(T.index)),l.viewTo+=o):Bi(t)}var C=l.externalMeasured;C&&(a=l.lineN&&r=o.viewTo)){var f=o.view[Co(t,r)];if(f.node!=null){var p=f.changes||(f.changes=[]);me(p,a)==-1&&p.push(a)}}}function Bi(t){t.display.viewFrom=t.display.viewTo=t.doc.first,t.display.view=[],t.display.viewOffset=0}function El(t,r,a,o){var l=Co(t,r),f,p=t.display.view;if(!rt||a==t.doc.first+t.doc.size)return{index:l,lineN:a};for(var m=t.display.viewFrom,T=0;T0){if(l==p.length-1)return null;f=m+p[l].size-r,l++}else f=m-r;r+=f,a+=f}for(;Wi(t.doc,a)!=a;){if(l==(o<0?0:p.length-1))return null;a+=o*p[l-(o<0?1:0)].size,l+=o}return{index:l,lineN:a}}function E_(t,r,a){var o=t.display,l=o.view;l.length==0||r>=o.viewTo||a<=o.viewFrom?(o.view=Sl(t,r,a),o.viewFrom=r):(o.viewFrom>r?o.view=Sl(t,r,o.viewFrom).concat(o.view):o.viewFroma&&(o.view=o.view.slice(0,Co(t,a)))),o.viewTo=a}function kv(t){for(var r=t.display.view,a=0,o=0;o=t.display.viewTo||T.to().line0?p:t.defaultCharWidth())+"px"}if(o.other){var m=a.appendChild(U("div","\xA0","CodeMirror-cursor CodeMirror-secondarycursor"));m.style.display="",m.style.left=o.other.left+"px",m.style.top=o.other.top+"px",m.style.height=(o.other.bottom-o.other.top)*.85+"px"}}function Nl(t,r){return t.top-r.top||t.left-r.left}function N_(t,r,a){var o=t.display,l=t.doc,f=document.createDocumentFragment(),p=lv(t.display),m=p.left,T=Math.max(o.sizerWidth,To(t)-o.sizer.offsetLeft)-p.right,C=l.direction=="ltr";function X(lt,gt,kt,xt){gt<0&&(gt=0),gt=Math.round(gt),xt=Math.round(xt),f.appendChild(U("div",null,"CodeMirror-selected","position: absolute; left: "+lt+`px; +`,r);l==-1&&(l=t.length);var f=t.slice(r,t.charAt(l-1)=="\r"?l-1:l),p=f.indexOf("\r");p!=-1?(a.push(f.slice(0,p)),r+=p+1):(a.push(f),r=l+1)}return a}:function(t){return t.split(/\r\n?|\n/)},V=window.getSelection?function(t){try{return t.selectionStart!=t.selectionEnd}catch{return!1}}:function(t){var r;try{r=t.ownerDocument.selection.createRange()}catch{}return!r||r.parentElement()!=t?!1:r.compareEndPoints("StartToEnd",r)!=0},he=function(){var t=U("div");return"oncopy"in t?!0:(t.setAttribute("oncopy","return;"),typeof t.oncopy=="function")}(),_e=null;function Fe(t){if(_e!=null)return _e;var r=b(t,U("span","x")),a=r.getBoundingClientRect(),o=D(r,0,1).getBoundingClientRect();return _e=Math.abs(a.left-o.left)>1}var Ie={},$e={};function Ke(t,r){arguments.length>2&&(r.dependencies=Array.prototype.slice.call(arguments,2)),Ie[t]=r}function et(t,r){$e[t]=r}function vt(t){if(typeof t=="string"&&$e.hasOwnProperty(t))t=$e[t];else if(t&&typeof t.name=="string"&&$e.hasOwnProperty(t.name)){var r=$e[t.name];typeof r=="string"&&(r={name:r}),t=Yt(r,t),t.name=r.name}else{if(typeof t=="string"&&/^[\w\-]+\/[\w\-]+\+xml$/.test(t))return vt("application/xml");if(typeof t=="string"&&/^[\w\-]+\/[\w\-]+\+json$/.test(t))return vt("application/json")}return typeof t=="string"?{name:t}:t||{name:"null"}}function Ot(t,r){r=vt(r);var a=Ie[r.name];if(!a)return Ot(t,"text/plain");var o=a(t,r);if(Ct.hasOwnProperty(r.name)){var l=Ct[r.name];for(var f in l)!l.hasOwnProperty(f)||(o.hasOwnProperty(f)&&(o["_"+f]=o[f]),o[f]=l[f])}if(o.name=r.name,r.helperType&&(o.helperType=r.helperType),r.modeProps)for(var p in r.modeProps)o[p]=r.modeProps[p];return o}var Ct={};function Nt(t,r){var a=Ct.hasOwnProperty(t)?Ct[t]:Ct[t]={};ce(r,a)}function Jt(t,r){if(r===!0)return r;if(t.copyState)return t.copyState(r);var a={};for(var o in r){var l=r[o];l instanceof Array&&(l=l.concat([])),a[o]=l}return a}function An(t,r){for(var a;t.innerMode&&(a=t.innerMode(r),!(!a||a.mode==t));)r=a.state,t=a.mode;return a||{mode:t,state:r}}function bn(t,r,a){return t.startState?t.startState(r,a):!0}var Ut=function(t,r,a){this.pos=this.start=0,this.string=t,this.tabSize=r||8,this.lastColumnPos=this.lastColumnValue=0,this.lineStart=0,this.lineOracle=a};Ut.prototype.eol=function(){return this.pos>=this.string.length},Ut.prototype.sol=function(){return this.pos==this.lineStart},Ut.prototype.peek=function(){return this.string.charAt(this.pos)||void 0},Ut.prototype.next=function(){if(this.posr},Ut.prototype.eatSpace=function(){for(var t=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>t},Ut.prototype.skipToEnd=function(){this.pos=this.string.length},Ut.prototype.skipTo=function(t){var r=this.string.indexOf(t,this.pos);if(r>-1)return this.pos=r,!0},Ut.prototype.backUp=function(t){this.pos-=t},Ut.prototype.column=function(){return this.lastColumnPos0?null:(f&&r!==!1&&(this.pos+=f[0].length),f)}},Ut.prototype.current=function(){return this.string.slice(this.start,this.pos)},Ut.prototype.hideFirstChars=function(t,r){this.lineStart+=t;try{return r()}finally{this.lineStart-=t}},Ut.prototype.lookAhead=function(t){var r=this.lineOracle;return r&&r.lookAhead(t)},Ut.prototype.baseToken=function(){var t=this.lineOracle;return t&&t.baseToken(this.pos)};function st(t,r){if(r-=t.first,r<0||r>=t.size)throw new Error("There is no line "+(r+t.first)+" in the document.");for(var a=t;!a.lines;)for(var o=0;;++o){var l=a.children[o],f=l.chunkSize();if(r=t.first&&ra?de(a,st(t,a).text.length):Vt(r,st(t,r.line).text.length)}function Vt(t,r){var a=t.ch;return a==null||a>r?de(t.line,r):a<0?de(t.line,0):t}function sn(t,r){for(var a=[],o=0;othis.maxLookAhead&&(this.maxLookAhead=t),r},In.prototype.baseToken=function(t){if(!this.baseTokens)return null;for(;this.baseTokens[this.baseTokenPos]<=t;)this.baseTokenPos+=2;var r=this.baseTokens[this.baseTokenPos+1];return{type:r&&r.replace(/( |^)overlay .*/,""),size:this.baseTokens[this.baseTokenPos]-t}},In.prototype.nextLine=function(){this.line++,this.maxLookAhead>0&&this.maxLookAhead--},In.fromSaved=function(t,r,a){return r instanceof on?new In(t,Jt(t.mode,r.state),a,r.lookAhead):new In(t,Jt(t.mode,r),a)},In.prototype.save=function(t){var r=t!==!1?Jt(this.doc.mode,this.state):this.state;return this.maxLookAhead>0?new on(r,this.maxLookAhead):r};function _i(t,r,a,o){var l=[t.state.modeGen],f={};Ye(t,r.text,t.doc.mode,a,function(C,X){return l.push(C,X)},f,o);for(var p=a.state,m=function(C){a.baseTokens=l;var X=t.state.overlays[C],Z=1,Te=0;a.state=!0,Ye(t,r.text,X.mode,a,function(ye,Be){for(var Ve=Z;Teye&&l.splice(Z,1,ye,l[Z+1],nt),Z+=2,Te=Math.min(ye,nt)}if(!!Be)if(X.opaque)l.splice(Ve,Z-Ve,ye,"overlay "+Be),Z=Ve+2;else for(;Vet.options.maxHighlightLength&&Jt(t.doc.mode,o.state),f=_i(t,r,o);l&&(o.state=l),r.stateAfter=o.save(!l),r.styles=f.styles,f.classes?r.styleClasses=f.classes:r.styleClasses&&(r.styleClasses=null),a===t.doc.highlightFrontier&&(t.doc.modeFrontier=Math.max(t.doc.modeFrontier,++t.doc.highlightFrontier))}return r.styles}function Qr(t,r,a){var o=t.doc,l=t.display;if(!o.mode.startState)return new In(o,!0,r);var f=xe(t,r,a),p=f>o.first&&st(o,f-1).stateAfter,m=p?In.fromSaved(o,p,f):new In(o,bn(o.mode),f);return o.iter(f,r,function(T){w(t,T.text,m);var C=m.line;T.stateAfter=C==r-1||C%5==0||C>=l.viewFrom&&Cr.start)return f}throw new Error("Mode "+t.name+" failed to advance stream.")}var ae=function(t,r,a){this.start=t.start,this.end=t.pos,this.string=t.current(),this.type=r||null,this.state=a};function Me(t,r,a,o){var l=t.doc,f=l.mode,p;r=Qe(l,r);var m=st(l,r.line),T=Qr(t,r.line,a),C=new Ut(m.text,t.options.tabSize,T),X;for(o&&(X=[]);(o||C.post.options.maxHighlightLength?(m=!1,p&&w(t,r,o,X.pos),X.pos=r.length,Z=null):Z=ue(W(a,X,o.state,Te),f),Te){var ye=Te[0].name;ye&&(Z="m-"+(Z?ye+" "+Z:ye))}if(!m||C!=Z){for(;Tp;--m){if(m<=f.first)return f.first;var T=st(f,m-1),C=T.stateAfter;if(C&&(!a||m+(C instanceof on?C.lookAhead:0)<=f.modeFrontier))return m;var X=ke(T.text,null,t.options.tabSize);(l==null||o>X)&&(l=m-1,o=X)}return l}function Ge(t,r){if(t.modeFrontier=Math.min(t.modeFrontier,r),!(t.highlightFrontiera;o--){var l=st(t,o).stateAfter;if(l&&(!(l instanceof on)||o+l.lookAhead=r:f.to>r);(o||(o=[])).push(new qt(p,f.from,T?null:f.to))}}return o}function Nn(t,r,a){var o;if(t)for(var l=0;l=r:f.to>r);if(m||f.from==r&&p.type=="bookmark"&&(!a||f.marker.insertLeft)){var T=f.from==null||(p.inclusiveLeft?f.from<=r:f.from0&&m)for(var gt=0;gt0)){var X=[T,1],Z=_(C.from,m.from),Te=_(C.to,m.to);(Z<0||!p.inclusiveLeft&&!Z)&&X.push({from:C.from,to:m.from}),(Te>0||!p.inclusiveRight&&!Te)&&X.push({from:m.to,to:C.to}),l.splice.apply(l,X),T+=X.length-3}}return l}function Qn(t){var r=t.markedSpans;if(!!r){for(var a=0;ar)&&(!o||cr(o,f.marker)<0)&&(o=f.marker)}return o}function li(t,r,a,o,l){var f=st(t,r),p=rt&&f.markedSpans;if(p)for(var m=0;m=0&&Z<=0||X<=0&&Z>=0)&&(X<=0&&(T.marker.inclusiveRight&&l.inclusiveLeft?_(C.to,a)>=0:_(C.to,a)>0)||X>=0&&(T.marker.inclusiveRight&&l.inclusiveLeft?_(C.from,o)<=0:_(C.from,o)<0)))return!0}}}function Gn(t){for(var r;r=At(t);)t=r.find(-1,!0).line;return t}function Hi(t){for(var r;r=Qt(t);)t=r.find(1,!0).line;return t}function ea(t){for(var r,a;r=Qt(t);)t=r.find(1,!0).line,(a||(a=[])).push(t);return a}function Wi(t,r){var a=st(t,r),o=Gn(a);return a==o?r:St(o)}function xo(t,r){if(r>t.lastLine())return r;var a=st(t,r),o;if(!Ir(t,a))return r;for(;o=Qt(a);)a=o.find(1,!0).line;return St(a)+1}function Ir(t,r){var a=rt&&r.markedSpans;if(a){for(var o=void 0,l=0;lr.maxLineLength&&(r.maxLineLength=l,r.maxLine=o)})}var si=function(t,r,a){this.text=t,Zr(this,r),this.height=a?a(this):1};si.prototype.lineNo=function(){return St(this)},wt(si);function Za(t,r,a,o){t.text=r,t.stateAfter&&(t.stateAfter=null),t.styles&&(t.styles=null),t.order!=null&&(t.order=null),Qn(t),Zr(t,a);var l=o?o(t):1;l!=t.height&&Xt(t,l)}function Ja(t){t.parent=null,Qn(t)}var kl={},Tl={};function ev(t,r){if(!t||/^\s*$/.test(t))return null;var a=r.addModeClass?Tl:kl;return a[t]||(a[t]=t.replace(/\S+/g,"cm-$&"))}function tv(t,r){var a=y("span",null,null,k?"padding-right: .1px":null),o={pre:y("pre",[a],"CodeMirror-line"),content:a,col:0,pos:0,cm:t,trailingSpace:!1,splitSpaces:t.getOption("lineWrapping")};r.measure={};for(var l=0;l<=(r.rest?r.rest.length:0);l++){var f=l?r.rest[l-1]:r.line,p=void 0;o.pos=0,o.addToken=s_,N(t.display.measure)&&(p=Xe(f,t.doc.direction))&&(o.addToken=c_(o.addToken,p)),o.map=[];var m=r!=t.display.externalMeasured&&St(f);h_(f,o,ki(t,f,m)),f.styleClasses&&(f.styleClasses.bgClass&&(o.bgClass=we(f.styleClasses.bgClass,o.bgClass||"")),f.styleClasses.textClass&&(o.textClass=we(f.styleClasses.textClass,o.textClass||""))),o.map.length==0&&o.map.push(0,0,o.content.appendChild(F(t.display.measure))),l==0?(r.measure.map=o.map,r.measure.cache={}):((r.measure.maps||(r.measure.maps=[])).push(o.map),(r.measure.caches||(r.measure.caches=[])).push({}))}if(k){var T=o.content.lastChild;(/\bcm-tab\b/.test(T.className)||T.querySelector&&T.querySelector(".cm-tab"))&&(o.content.className="cm-tab-wrap-hack")}return ze(t,"renderLine",t,r.line,o.pre),o.pre.className&&(o.textClass=we(o.pre.className,o.textClass||"")),o}function l_(t){var r=U("span","\u2022","cm-invalidchar");return r.title="\\u"+t.charCodeAt(0).toString(16),r.setAttribute("aria-label",r.title),r}function s_(t,r,a,o,l,f,p){if(!!r){var m=t.splitSpaces?f_(r,t.trailingSpace):r,T=t.cm.state.specialChars,C=!1,X;if(!T.test(r))t.col+=r.length,X=document.createTextNode(m),t.map.push(t.pos,t.pos+r.length,X),d&&v<9&&(C=!0),t.pos+=r.length;else{X=document.createDocumentFragment();for(var Z=0;;){T.lastIndex=Z;var Te=T.exec(r),ye=Te?Te.index-Z:r.length-Z;if(ye){var Be=document.createTextNode(m.slice(Z,Z+ye));d&&v<9?X.appendChild(U("span",[Be])):X.appendChild(Be),t.map.push(t.pos,t.pos+ye,Be),t.col+=ye,t.pos+=ye}if(!Te)break;Z+=ye+1;var Ve=void 0;if(Te[0]==" "){var nt=t.cm.options.tabSize,ut=nt-t.col%nt;Ve=X.appendChild(U("span",ee(ut),"cm-tab")),Ve.setAttribute("role","presentation"),Ve.setAttribute("cm-text"," "),t.col+=ut}else Te[0]=="\r"||Te[0]==` +`?(Ve=X.appendChild(U("span",Te[0]=="\r"?"\u240D":"\u2424","cm-invalidchar")),Ve.setAttribute("cm-text",Te[0]),t.col+=1):(Ve=t.cm.options.specialCharPlaceholder(Te[0]),Ve.setAttribute("cm-text",Te[0]),d&&v<9?X.appendChild(U("span",[Ve])):X.appendChild(Ve),t.col+=1);t.map.push(t.pos,t.pos+1,Ve),t.pos++}}if(t.trailingSpace=m.charCodeAt(r.length-1)==32,a||o||l||C||f||p){var pt=a||"";o&&(pt+=o),l&&(pt+=l);var lt=U("span",[X],pt,f);if(p)for(var gt in p)p.hasOwnProperty(gt)&>!="style"&>!="class"&<.setAttribute(gt,p[gt]);return t.content.appendChild(lt)}t.content.appendChild(X)}}function f_(t,r){if(t.length>1&&!/ /.test(t))return t;for(var a=r,o="",l=0;lC&&Z.from<=C));Te++);if(Z.to>=X)return t(a,o,l,f,p,m,T);t(a,o.slice(0,Z.to-C),l,f,null,m,T),f=null,o=o.slice(Z.to-C),C=Z.to}}}function nv(t,r,a,o){var l=!o&&a.widgetNode;l&&t.map.push(t.pos,t.pos+r,l),!o&&t.cm.display.input.needsContentAttribute&&(l||(l=t.content.appendChild(document.createElement("span"))),l.setAttribute("cm-marker",a.id)),l&&(t.cm.display.input.setUneditable(l),t.content.appendChild(l)),t.pos+=r,t.trailingSpace=!1}function h_(t,r,a){var o=t.markedSpans,l=t.text,f=0;if(!o){for(var p=1;pT||Ft.collapsed&&xt.to==T&&xt.from==T)){if(xt.to!=null&&xt.to!=T&&ye>xt.to&&(ye=xt.to,Ve=""),Ft.className&&(Be+=" "+Ft.className),Ft.css&&(Te=(Te?Te+";":"")+Ft.css),Ft.startStyle&&xt.from==T&&(nt+=" "+Ft.startStyle),Ft.endStyle&&xt.to==ye&&(gt||(gt=[])).push(Ft.endStyle,xt.to),Ft.title&&((pt||(pt={})).title=Ft.title),Ft.attributes)for(var hn in Ft.attributes)(pt||(pt={}))[hn]=Ft.attributes[hn];Ft.collapsed&&(!ut||cr(ut.marker,Ft)<0)&&(ut=xt)}else xt.from>T&&ye>xt.from&&(ye=xt.from)}if(gt)for(var Bn=0;Bn=m)break;for(var Mr=Math.min(m,ye);;){if(X){var pr=T+X.length;if(!ut){var Ln=pr>Mr?X.slice(0,Mr-T):X;r.addToken(r,Ln,Z?Z+Be:Be,nt,T+Ln.length==ye?Ve:"",Te,pt)}if(pr>=Mr){X=X.slice(Mr-T),T=Mr;break}T=pr,nt=""}X=l.slice(f,f=a[C++]),Z=ev(a[C++],r.cm.options)}}}function rv(t,r,a){this.line=r,this.rest=ea(r),this.size=this.rest?St(fe(this.rest))-a+1:1,this.node=this.text=null,this.hidden=Ir(t,r)}function Sl(t,r,a){for(var o=[],l,f=r;f2&&f.push((T.bottom+C.top)/2-a.top)}}f.push(a.bottom-a.top)}}function fv(t,r,a){if(t.line==r)return{map:t.measure.map,cache:t.measure.cache};if(t.rest){for(var o=0;oa)return{map:t.measure.maps[l],cache:t.measure.caches[l],before:!0}}}function T_(t,r){r=Gn(r);var a=St(r),o=t.display.externalMeasured=new rv(t.doc,r,a);o.lineN=a;var l=o.built=tv(t,o);return o.text=l.pre,b(t.display.lineMeasure,l.pre),o}function cv(t,r,a,o){return ci(t,na(t,r),a,o)}function ac(t,r){if(r>=t.display.viewFrom&&r=a.lineN&&rr)&&(f=T-m,l=f-1,r>=T&&(p="right")),l!=null){if(o=t[C+2],m==T&&a==(o.insertLeft?"left":"right")&&(p=a),a=="left"&&l==0)for(;C&&t[C-2]==t[C-3]&&t[C-1].insertLeft;)o=t[(C-=3)+2],p="left";if(a=="right"&&l==T-m)for(;C=0&&(a=t[l]).left==a.right;l--);return a}function b_(t,r,a,o){var l=dv(r.map,a,o),f=l.node,p=l.start,m=l.end,T=l.collapse,C;if(f.nodeType==3){for(var X=0;X<4;X++){for(;p&&Zt(r.line.text.charAt(l.coverStart+p));)--p;for(;l.coverStart+m0&&(T=o="right");var Z;t.options.lineWrapping&&(Z=f.getClientRects()).length>1?C=Z[o=="right"?Z.length-1:0]:C=f.getBoundingClientRect()}if(d&&v<9&&!p&&(!C||!C.left&&!C.right)){var Te=f.parentNode.getClientRects()[0];Te?C={left:Te.left,right:Te.left+ia(t.display),top:Te.top,bottom:Te.bottom}:C=hv}for(var ye=C.top-r.rect.top,Be=C.bottom-r.rect.top,Ve=(ye+Be)/2,nt=r.view.measure.heights,ut=0;ut=o.text.length?(T=o.text.length,C="before"):T<=0&&(T=0,C="after"),!m)return p(C=="before"?T-1:T,C=="before");function X(Be,Ve,nt){var ut=m[Ve],pt=ut.level==1;return p(nt?Be-1:Be,pt!=nt)}var Z=j(m,T,C),Te=A,ye=X(T,Z,C=="before");return Te!=null&&(ye.other=X(T,Te,C!="before")),ye}function wv(t,r){var a=0;r=Qe(t.doc,r),t.options.lineWrapping||(a=ia(t.display)*r.ch);var o=st(t.doc,r.line),l=Rr(o)+bl(t.display);return{left:a,right:a,top:l,bottom:l+o.height}}function lc(t,r,a,o,l){var f=de(t,r,a);return f.xRel=l,o&&(f.outside=o),f}function sc(t,r,a){var o=t.doc;if(a+=t.display.viewOffset,a<0)return lc(o.first,0,null,-1,-1);var l=G(o,a),f=o.first+o.size-1;if(l>f)return lc(o.first+o.size-1,st(o,f).text.length,null,1,1);r<0&&(r=0);for(var p=st(o,l);;){var m=M_(t,p,l,r,a),T=Ti(p,m.ch+(m.xRel>0||m.outside>0?1:0));if(!T)return m;var C=T.find(1);if(C.line==l)return C;p=st(o,l=C.line)}}function xv(t,r,a,o){o-=uc(r);var l=r.text.length,f=$t(function(p){return ci(t,a,p-1).bottom<=o},l,0);return l=$t(function(p){return ci(t,a,p).top>o},f,l),{begin:f,end:l}}function _v(t,r,a,o){a||(a=na(t,r));var l=Cl(t,r,ci(t,a,o),"line").top;return xv(t,r,a,l)}function fc(t,r,a,o){return t.bottom<=a?!1:t.top>a?!0:(o?t.left:t.right)>r}function M_(t,r,a,o,l){l-=Rr(r);var f=na(t,r),p=uc(r),m=0,T=r.text.length,C=!0,X=Xe(r,t.doc.direction);if(X){var Z=(t.options.lineWrapping?N_:E_)(t,r,a,f,X,o,l);C=Z.level!=1,m=C?Z.from:Z.to-1,T=C?Z.to:Z.from-1}var Te=null,ye=null,Be=$t(function(kt){var xt=ci(t,f,kt);return xt.top+=p,xt.bottom+=p,fc(xt,o,l,!1)?(xt.top<=l&&xt.left<=o&&(Te=kt,ye=xt),!0):!1},m,T),Ve,nt,ut=!1;if(ye){var pt=o-ye.left=gt.bottom?1:0}return Be=pn(r.text,Be,1),lc(a,Be,nt,ut,o-Ve)}function E_(t,r,a,o,l,f,p){var m=$t(function(Z){var Te=l[Z],ye=Te.level!=1;return fc(Jr(t,de(a,ye?Te.to:Te.from,ye?"before":"after"),"line",r,o),f,p,!0)},0,l.length-1),T=l[m];if(m>0){var C=T.level!=1,X=Jr(t,de(a,C?T.from:T.to,C?"after":"before"),"line",r,o);fc(X,f,p,!0)&&X.top>p&&(T=l[m-1])}return T}function N_(t,r,a,o,l,f,p){var m=xv(t,r,o,p),T=m.begin,C=m.end;/\s/.test(r.text.charAt(C-1))&&C--;for(var X=null,Z=null,Te=0;Te=C||ye.to<=T)){var Be=ye.level!=1,Ve=ci(t,o,Be?Math.min(C,ye.to)-1:Math.max(T,ye.from)).right,nt=Vent)&&(X=ye,Z=nt)}}return X||(X=l[l.length-1]),X.fromC&&(X={from:X.from,to:C,level:X.level}),X}var So;function ra(t){if(t.cachedTextHeight!=null)return t.cachedTextHeight;if(So==null){So=U("pre",null,"CodeMirror-line-like");for(var r=0;r<49;++r)So.appendChild(document.createTextNode("x")),So.appendChild(U("br"));So.appendChild(document.createTextNode("x"))}b(t.measure,So);var a=So.offsetHeight/50;return a>3&&(t.cachedTextHeight=a),P(t.measure),a||1}function ia(t){if(t.cachedCharWidth!=null)return t.cachedCharWidth;var r=U("span","xxxxxxxxxx"),a=U("pre",[r],"CodeMirror-line-like");b(t.measure,a);var o=r.getBoundingClientRect(),l=(o.right-o.left)/10;return l>2&&(t.cachedCharWidth=l),l||10}function cc(t){for(var r=t.display,a={},o={},l=r.gutters.clientLeft,f=r.gutters.firstChild,p=0;f;f=f.nextSibling,++p){var m=t.display.gutterSpecs[p].className;a[m]=f.offsetLeft+f.clientLeft+l,o[m]=f.clientWidth}return{fixedPos:hc(r),gutterTotalWidth:r.gutters.offsetWidth,gutterLeft:a,gutterWidth:o,wrapperWidth:r.wrapper.clientWidth}}function hc(t){return t.scroller.getBoundingClientRect().left-t.sizer.getBoundingClientRect().left}function kv(t){var r=ra(t.display),a=t.options.lineWrapping,o=a&&Math.max(5,t.display.scroller.clientWidth/ia(t.display)-3);return function(l){if(Ir(t.doc,l))return 0;var f=0;if(l.widgets)for(var p=0;p0&&(C=st(t.doc,T.line).text).length==T.ch){var X=ke(C,C.length,t.options.tabSize)-C.length;T=de(T.line,Math.max(0,Math.round((f-sv(t.display).left)/ia(t.display))-X))}return T}function Co(t,r){if(r>=t.display.viewTo||(r-=t.display.viewFrom,r<0))return null;for(var a=t.display.view,o=0;or)&&(l.updateLineNumbers=r),t.curOp.viewChanged=!0,r>=l.viewTo)rt&&Wi(t.doc,r)l.viewFrom?Bi(t):(l.viewFrom+=o,l.viewTo+=o);else if(r<=l.viewFrom&&a>=l.viewTo)Bi(t);else if(r<=l.viewFrom){var f=El(t,a,a+o,1);f?(l.view=l.view.slice(f.index),l.viewFrom=f.lineN,l.viewTo+=o):Bi(t)}else if(a>=l.viewTo){var p=El(t,r,r,-1);p?(l.view=l.view.slice(0,p.index),l.viewTo=p.lineN):Bi(t)}else{var m=El(t,r,r,-1),T=El(t,a,a+o,1);m&&T?(l.view=l.view.slice(0,m.index).concat(Sl(t,m.lineN,T.lineN)).concat(l.view.slice(T.index)),l.viewTo+=o):Bi(t)}var C=l.externalMeasured;C&&(a=l.lineN&&r=o.viewTo)){var f=o.view[Co(t,r)];if(f.node!=null){var p=f.changes||(f.changes=[]);me(p,a)==-1&&p.push(a)}}}function Bi(t){t.display.viewFrom=t.display.viewTo=t.doc.first,t.display.view=[],t.display.viewOffset=0}function El(t,r,a,o){var l=Co(t,r),f,p=t.display.view;if(!rt||a==t.doc.first+t.doc.size)return{index:l,lineN:a};for(var m=t.display.viewFrom,T=0;T0){if(l==p.length-1)return null;f=m+p[l].size-r,l++}else f=m-r;r+=f,a+=f}for(;Wi(t.doc,a)!=a;){if(l==(o<0?0:p.length-1))return null;a+=o*p[l-(o<0?1:0)].size,l+=o}return{index:l,lineN:a}}function P_(t,r,a){var o=t.display,l=o.view;l.length==0||r>=o.viewTo||a<=o.viewFrom?(o.view=Sl(t,r,a),o.viewFrom=r):(o.viewFrom>r?o.view=Sl(t,r,o.viewFrom).concat(o.view):o.viewFroma&&(o.view=o.view.slice(0,Co(t,a)))),o.viewTo=a}function Tv(t){for(var r=t.display.view,a=0,o=0;o=t.display.viewTo||T.to().line0?p:t.defaultCharWidth())+"px"}if(o.other){var m=a.appendChild(U("div","\xA0","CodeMirror-cursor CodeMirror-secondarycursor"));m.style.display="",m.style.left=o.other.left+"px",m.style.top=o.other.top+"px",m.style.height=(o.other.bottom-o.other.top)*.85+"px"}}function Nl(t,r){return t.top-r.top||t.left-r.left}function L_(t,r,a){var o=t.display,l=t.doc,f=document.createDocumentFragment(),p=sv(t.display),m=p.left,T=Math.max(o.sizerWidth,To(t)-o.sizer.offsetLeft)-p.right,C=l.direction=="ltr";function X(lt,gt,kt,xt){gt<0&&(gt=0),gt=Math.round(gt),xt=Math.round(xt),f.appendChild(U("div",null,"CodeMirror-selected","position: absolute; left: "+lt+`px; top: `+gt+"px; width: "+(kt??T-lt)+`px; - height: `+(xt-gt)+"px"))}function Z(lt,gt,kt){var xt=st(l,lt),Ft=xt.text.length,hn,Bn;function yn(Ln,vr){return Ml(t,de(lt,Ln),"div",xt,vr)}function Mr(Ln,vr,$n){var Fn=xv(t,xt,null,Ln),On=vr=="ltr"==($n=="after")?"left":"right",kn=$n=="after"?Fn.begin:Fn.end-(/\s/.test(xt.text.charAt(Fn.end-1))?2:1);return yn(kn,On)[On]}var pr=Xe(xt,l.direction);return _n(pr,gt||0,kt??Ft,function(Ln,vr,$n,Fn){var On=$n=="ltr",kn=yn(Ln,On?"left":"right"),gr=yn(vr-1,On?"right":"left"),ma=gt==null&&Ln==0,Vi=kt==null&&vr==Ft,er=Fn==0,hi=!pr||Fn==pr.length-1;if(gr.top-kn.top<=3){var jn=(C?ma:Vi)&&er,Hc=(C?Vi:ma)&&hi,Mi=jn?m:(On?kn:gr).left,Lo=Hc?T:(On?gr:kn).right;X(Mi,kn.top,Lo-Mi,kn.bottom)}else{var Oo,ir,ya,Wc;On?(Oo=C&&ma&&er?m:kn.left,ir=C?T:Mr(Ln,$n,"before"),ya=C?m:Mr(vr,$n,"after"),Wc=C&&Vi&&hi?T:gr.right):(Oo=C?Mr(Ln,$n,"before"):m,ir=!C&&ma&&er?T:kn.right,ya=!C&&Vi&&hi?m:gr.left,Wc=C?Mr(vr,$n,"after"):T),X(Oo,kn.top,ir-Oo,kn.bottom),kn.bottom0?r.blinker=setInterval(function(){t.hasFocus()||oa(t),r.cursorDiv.style.visibility=(a=!a)?"":"hidden"},t.options.cursorBlinkRate):t.options.cursorBlinkRate<0&&(r.cursorDiv.style.visibility="hidden")}}function Sv(t){t.hasFocus()||(t.display.input.focus(),t.state.focused||gc(t))}function vc(t){t.state.delayingBlurEvent=!0,setTimeout(function(){t.state.delayingBlurEvent&&(t.state.delayingBlurEvent=!1,t.state.focused&&oa(t))},100)}function gc(t,r){t.state.delayingBlurEvent&&!t.state.draggingText&&(t.state.delayingBlurEvent=!1),t.options.readOnly!="nocursor"&&(t.state.focused||(ze(t,"focus",t,r),t.state.focused=!0,Le(t.display.wrapper,"CodeMirror-focused"),!t.curOp&&t.display.selForContextMenu!=t.doc.sel&&(t.display.input.reset(),k&&setTimeout(function(){return t.display.input.reset(!0)},20)),t.display.input.receivedFocus()),pc(t))}function oa(t,r){t.state.delayingBlurEvent||(t.state.focused&&(ze(t,"blur",t,r),t.state.focused=!1,x(t.display.wrapper,"CodeMirror-focused")),clearInterval(t.display.blinker),setTimeout(function(){t.state.focused||(t.display.shift=!1)},150))}function Pl(t){for(var r=t.display,a=r.lineDiv.offsetTop,o=Math.max(0,r.scroller.getBoundingClientRect().top),l=r.lineDiv.getBoundingClientRect().top,f=0,p=0;p.005||ye<-.005)&&(lt.display.sizerWidth){var Ve=Math.ceil(X/ia(t.display));Ve>t.display.maxLineLength&&(t.display.maxLineLength=Ve,t.display.maxLine=m.line,t.display.maxLineChanged=!0)}}}Math.abs(f)>2&&(r.scroller.scrollTop+=f)}function bv(t){if(t.widgets)for(var r=0;r=p&&(f=G(r,Rr(st(r,T))-t.wrapper.clientHeight),p=T)}return{from:f,to:Math.max(p,f+1)}}function P_(t,r){if(!tt(t,"scrollCursorIntoView")){var a=t.display,o=a.sizer.getBoundingClientRect(),l=null;if(r.top+o.top<0?l=!0:r.bottom+o.top>(window.innerHeight||document.documentElement.clientHeight)&&(l=!1),l!=null&&!Ee){var f=U("div","\u200B",null,`position: absolute; + height: `+(xt-gt)+"px"))}function Z(lt,gt,kt){var xt=st(l,lt),Ft=xt.text.length,hn,Bn;function yn(Ln,vr){return Ml(t,de(lt,Ln),"div",xt,vr)}function Mr(Ln,vr,$n){var Fn=_v(t,xt,null,Ln),On=vr=="ltr"==($n=="after")?"left":"right",Tn=$n=="after"?Fn.begin:Fn.end-(/\s/.test(xt.text.charAt(Fn.end-1))?2:1);return yn(Tn,On)[On]}var pr=Xe(xt,l.direction);return kn(pr,gt||0,kt??Ft,function(Ln,vr,$n,Fn){var On=$n=="ltr",Tn=yn(Ln,On?"left":"right"),gr=yn(vr-1,On?"right":"left"),ma=gt==null&&Ln==0,Vi=kt==null&&vr==Ft,er=Fn==0,hi=!pr||Fn==pr.length-1;if(gr.top-Tn.top<=3){var jn=(C?ma:Vi)&&er,Wc=(C?Vi:ma)&&hi,Mi=jn?m:(On?Tn:gr).left,Lo=Wc?T:(On?gr:Tn).right;X(Mi,Tn.top,Lo-Mi,Tn.bottom)}else{var Oo,ir,ya,Uc;On?(Oo=C&&ma&&er?m:Tn.left,ir=C?T:Mr(Ln,$n,"before"),ya=C?m:Mr(vr,$n,"after"),Uc=C&&Vi&&hi?T:gr.right):(Oo=C?Mr(Ln,$n,"before"):m,ir=!C&&ma&&er?T:Tn.right,ya=!C&&Vi&&hi?m:gr.left,Uc=C?Mr(vr,$n,"after"):T),X(Oo,Tn.top,ir-Oo,Tn.bottom),Tn.bottom0?r.blinker=setInterval(function(){t.hasFocus()||oa(t),r.cursorDiv.style.visibility=(a=!a)?"":"hidden"},t.options.cursorBlinkRate):t.options.cursorBlinkRate<0&&(r.cursorDiv.style.visibility="hidden")}}function bv(t){t.hasFocus()||(t.display.input.focus(),t.state.focused||mc(t))}function gc(t){t.state.delayingBlurEvent=!0,setTimeout(function(){t.state.delayingBlurEvent&&(t.state.delayingBlurEvent=!1,t.state.focused&&oa(t))},100)}function mc(t,r){t.state.delayingBlurEvent&&!t.state.draggingText&&(t.state.delayingBlurEvent=!1),t.options.readOnly!="nocursor"&&(t.state.focused||(ze(t,"focus",t,r),t.state.focused=!0,Le(t.display.wrapper,"CodeMirror-focused"),!t.curOp&&t.display.selForContextMenu!=t.doc.sel&&(t.display.input.reset(),k&&setTimeout(function(){return t.display.input.reset(!0)},20)),t.display.input.receivedFocus()),vc(t))}function oa(t,r){t.state.delayingBlurEvent||(t.state.focused&&(ze(t,"blur",t,r),t.state.focused=!1,x(t.display.wrapper,"CodeMirror-focused")),clearInterval(t.display.blinker),setTimeout(function(){t.state.focused||(t.display.shift=!1)},150))}function Pl(t){for(var r=t.display,a=r.lineDiv.offsetTop,o=Math.max(0,r.scroller.getBoundingClientRect().top),l=r.lineDiv.getBoundingClientRect().top,f=0,p=0;p.005||ye<-.005)&&(lt.display.sizerWidth){var Ve=Math.ceil(X/ia(t.display));Ve>t.display.maxLineLength&&(t.display.maxLineLength=Ve,t.display.maxLine=m.line,t.display.maxLineChanged=!0)}}}Math.abs(f)>2&&(r.scroller.scrollTop+=f)}function Cv(t){if(t.widgets)for(var r=0;r=p&&(f=G(r,Rr(st(r,T))-t.wrapper.clientHeight),p=T)}return{from:f,to:Math.max(p,f+1)}}function O_(t,r){if(!tt(t,"scrollCursorIntoView")){var a=t.display,o=a.sizer.getBoundingClientRect(),l=null;if(r.top+o.top<0?l=!0:r.bottom+o.top>(window.innerHeight||document.documentElement.clientHeight)&&(l=!1),l!=null&&!Ee){var f=U("div","\u200B",null,`position: absolute; top: `+(r.top-a.viewOffset-bl(t.display))+`px; height: `+(r.bottom-r.top+fi(t)+a.barHeight)+`px; - left: `+r.left+"px; width: "+Math.max(2,r.right-r.left)+"px;");t.display.lineSpace.appendChild(f),f.scrollIntoView(l),t.display.lineSpace.removeChild(f)}}}function L_(t,r,a,o){o==null&&(o=0);var l;!t.options.lineWrapping&&r==a&&(a=r.sticky=="before"?de(r.line,r.ch+1,"before"):r,r=r.ch?de(r.line,r.sticky=="before"?r.ch-1:r.ch,"after"):r);for(var f=0;f<5;f++){var p=!1,m=Jr(t,r),T=!a||a==r?m:Jr(t,a);l={left:Math.min(m.left,T.left),top:Math.min(m.top,T.top)-o,right:Math.max(m.left,T.left),bottom:Math.max(m.bottom,T.bottom)+o};var C=mc(t,l),X=t.doc.scrollTop,Z=t.doc.scrollLeft;if(C.scrollTop!=null&&(au(t,C.scrollTop),Math.abs(t.doc.scrollTop-X)>1&&(p=!0)),C.scrollLeft!=null&&(Mo(t,C.scrollLeft),Math.abs(t.doc.scrollLeft-Z)>1&&(p=!0)),!p)break}return l}function O_(t,r){var a=mc(t,r);a.scrollTop!=null&&au(t,a.scrollTop),a.scrollLeft!=null&&Mo(t,a.scrollLeft)}function mc(t,r){var a=t.display,o=ra(t.display);r.top<0&&(r.top=0);var l=t.curOp&&t.curOp.scrollTop!=null?t.curOp.scrollTop:a.scroller.scrollTop,f=ic(t),p={};r.bottom-r.top>f&&(r.bottom=r.top+f);var m=t.doc.height+rc(a),T=r.topm-o;if(r.topl+f){var X=Math.min(r.top,(C?m:r.bottom)-f);X!=l&&(p.scrollTop=X)}var Z=t.options.fixedGutter?0:a.gutters.offsetWidth,Te=t.curOp&&t.curOp.scrollLeft!=null?t.curOp.scrollLeft:a.scroller.scrollLeft-Z,ye=To(t)-a.gutters.offsetWidth,Be=r.right-r.left>ye;return Be&&(r.right=r.left+ye),r.left<10?p.scrollLeft=0:r.leftye+Te-3&&(p.scrollLeft=r.right+(Be?0:10)-ye),p}function yc(t,r){r!=null&&(Ol(t),t.curOp.scrollTop=(t.curOp.scrollTop==null?t.doc.scrollTop:t.curOp.scrollTop)+r)}function aa(t){Ol(t);var r=t.getCursor();t.curOp.scrollToPos={from:r,to:r,margin:t.options.cursorScrollMargin}}function ou(t,r,a){(r!=null||a!=null)&&Ol(t),r!=null&&(t.curOp.scrollLeft=r),a!=null&&(t.curOp.scrollTop=a)}function D_(t,r){Ol(t),t.curOp.scrollToPos=r}function Ol(t){var r=t.curOp.scrollToPos;if(r){t.curOp.scrollToPos=null;var a=yv(t,r.from),o=yv(t,r.to);Cv(t,a,o,r.margin)}}function Cv(t,r,a,o){var l=mc(t,{left:Math.min(r.left,a.left),top:Math.min(r.top,a.top)-o,right:Math.max(r.right,a.right),bottom:Math.max(r.bottom,a.bottom)+o});ou(t,l.scrollLeft,l.scrollTop)}function au(t,r){Math.abs(t.doc.scrollTop-r)<2||(i||xc(t,{top:r}),Mv(t,r,!0),i&&xc(t),su(t,100))}function Mv(t,r,a){r=Math.max(0,Math.min(t.display.scroller.scrollHeight-t.display.scroller.clientHeight,r)),!(t.display.scroller.scrollTop==r&&!a)&&(t.doc.scrollTop=r,t.display.scrollbars.setScrollTop(r),t.display.scroller.scrollTop!=r&&(t.display.scroller.scrollTop=r))}function Mo(t,r,a,o){r=Math.max(0,Math.min(r,t.display.scroller.scrollWidth-t.display.scroller.clientWidth)),!((a?r==t.doc.scrollLeft:Math.abs(t.doc.scrollLeft-r)<2)&&!o)&&(t.doc.scrollLeft=r,Ov(t),t.display.scroller.scrollLeft!=r&&(t.display.scroller.scrollLeft=r),t.display.scrollbars.setScrollLeft(r))}function uu(t){var r=t.display,a=r.gutters.offsetWidth,o=Math.round(t.doc.height+rc(t.display));return{clientHeight:r.scroller.clientHeight,viewHeight:r.wrapper.clientHeight,scrollWidth:r.scroller.scrollWidth,clientWidth:r.scroller.clientWidth,viewWidth:r.wrapper.clientWidth,barLeft:t.options.fixedGutter?a:0,docHeight:o,scrollHeight:o+fi(t)+r.barHeight,nativeBarWidth:r.nativeBarWidth,gutterWidth:a}}var Eo=function(t,r,a){this.cm=a;var o=this.vert=U("div",[U("div",null,null,"min-width: 1px")],"CodeMirror-vscrollbar"),l=this.horiz=U("div",[U("div",null,null,"height: 100%; min-height: 1px")],"CodeMirror-hscrollbar");o.tabIndex=l.tabIndex=-1,t(o),t(l),M(o,"scroll",function(){o.clientHeight&&r(o.scrollTop,"vertical")}),M(l,"scroll",function(){l.clientWidth&&r(l.scrollLeft,"horizontal")}),this.checkedZeroWidth=!1,d&&v<8&&(this.horiz.style.minHeight=this.vert.style.minWidth="18px")};Eo.prototype.update=function(t){var r=t.scrollWidth>t.clientWidth+1,a=t.scrollHeight>t.clientHeight+1,o=t.nativeBarWidth;if(a){this.vert.style.display="block",this.vert.style.bottom=r?o+"px":"0";var l=t.viewHeight-(r?o:0);this.vert.firstChild.style.height=Math.max(0,t.scrollHeight-t.clientHeight+l)+"px"}else this.vert.scrollTop=0,this.vert.style.display="",this.vert.firstChild.style.height="0";if(r){this.horiz.style.display="block",this.horiz.style.right=a?o+"px":"0",this.horiz.style.left=t.barLeft+"px";var f=t.viewWidth-t.barLeft-(a?o:0);this.horiz.firstChild.style.width=Math.max(0,t.scrollWidth-t.clientWidth+f)+"px"}else this.horiz.style.display="",this.horiz.firstChild.style.width="0";return!this.checkedZeroWidth&&t.clientHeight>0&&(o==0&&this.zeroWidthHack(),this.checkedZeroWidth=!0),{right:a?o:0,bottom:r?o:0}},Eo.prototype.setScrollLeft=function(t){this.horiz.scrollLeft!=t&&(this.horiz.scrollLeft=t),this.disableHoriz&&this.enableZeroWidthBar(this.horiz,this.disableHoriz,"horiz")},Eo.prototype.setScrollTop=function(t){this.vert.scrollTop!=t&&(this.vert.scrollTop=t),this.disableVert&&this.enableZeroWidthBar(this.vert,this.disableVert,"vert")},Eo.prototype.zeroWidthHack=function(){var t=Y&&!ve?"12px":"18px";this.horiz.style.height=this.vert.style.width=t,this.horiz.style.pointerEvents=this.vert.style.pointerEvents="none",this.disableHoriz=new Ce,this.disableVert=new Ce},Eo.prototype.enableZeroWidthBar=function(t,r,a){t.style.pointerEvents="auto";function o(){var l=t.getBoundingClientRect(),f=a=="vert"?document.elementFromPoint(l.right-1,(l.top+l.bottom)/2):document.elementFromPoint((l.right+l.left)/2,l.bottom-1);f!=t?t.style.pointerEvents="none":r.set(1e3,o)}r.set(1e3,o)},Eo.prototype.clear=function(){var t=this.horiz.parentNode;t.removeChild(this.horiz),t.removeChild(this.vert)};var lu=function(){};lu.prototype.update=function(){return{bottom:0,right:0}},lu.prototype.setScrollLeft=function(){},lu.prototype.setScrollTop=function(){},lu.prototype.clear=function(){};function ua(t,r){r||(r=uu(t));var a=t.display.barWidth,o=t.display.barHeight;Ev(t,r);for(var l=0;l<4&&a!=t.display.barWidth||o!=t.display.barHeight;l++)a!=t.display.barWidth&&t.options.lineWrapping&&Pl(t),Ev(t,uu(t)),a=t.display.barWidth,o=t.display.barHeight}function Ev(t,r){var a=t.display,o=a.scrollbars.update(r);a.sizer.style.paddingRight=(a.barWidth=o.right)+"px",a.sizer.style.paddingBottom=(a.barHeight=o.bottom)+"px",a.heightForcer.style.borderBottom=o.bottom+"px solid transparent",o.right&&o.bottom?(a.scrollbarFiller.style.display="block",a.scrollbarFiller.style.height=o.bottom+"px",a.scrollbarFiller.style.width=o.right+"px"):a.scrollbarFiller.style.display="",o.bottom&&t.options.coverGutterNextToScrollbar&&t.options.fixedGutter?(a.gutterFiller.style.display="block",a.gutterFiller.style.height=o.bottom+"px",a.gutterFiller.style.width=r.gutterWidth+"px"):a.gutterFiller.style.display=""}var Nv={native:Eo,null:lu};function Pv(t){t.display.scrollbars&&(t.display.scrollbars.clear(),t.display.scrollbars.addClass&&x(t.display.wrapper,t.display.scrollbars.addClass)),t.display.scrollbars=new Nv[t.options.scrollbarStyle](function(r){t.display.wrapper.insertBefore(r,t.display.scrollbarFiller),M(r,"mousedown",function(){t.state.focused&&setTimeout(function(){return t.display.input.focus()},0)}),r.setAttribute("cm-not-content","true")},function(r,a){a=="horizontal"?Mo(t,r):au(t,r)},t),t.display.scrollbars.addClass&&Le(t.display.wrapper,t.display.scrollbars.addClass)}var A_=0;function No(t){t.curOp={cm:t,viewChanged:!1,startHeight:t.doc.height,forceUpdate:!1,updateInput:0,typing:!1,changeObjs:null,cursorActivityHandlers:null,cursorActivityCalled:0,selectionChanged:!1,updateMaxLine:!1,scrollLeft:null,scrollTop:null,scrollToPos:null,focus:!1,id:++A_,markArrays:null},c_(t.curOp)}function Po(t){var r=t.curOp;r&&d_(r,function(a){for(var o=0;o=a.viewTo)||a.maxLineChanged&&r.options.lineWrapping,t.update=t.mustUpdate&&new Dl(r,t.mustUpdate&&{top:t.scrollTop,ensure:t.scrollToPos},t.forceUpdate)}function F_(t){t.updatedDisplay=t.mustUpdate&&wc(t.cm,t.update)}function z_(t){var r=t.cm,a=r.display;t.updatedDisplay&&Pl(r),t.barMeasure=uu(r),a.maxLineChanged&&!r.options.lineWrapping&&(t.adjustWidthTo=fv(r,a.maxLine,a.maxLine.text.length).left+3,r.display.sizerWidth=t.adjustWidthTo,t.barMeasure.scrollWidth=Math.max(a.scroller.clientWidth,a.sizer.offsetLeft+t.adjustWidthTo+fi(r)+r.display.barWidth),t.maxScrollLeft=Math.max(0,a.sizer.offsetLeft+t.adjustWidthTo-To(r))),(t.updatedDisplay||t.selectionChanged)&&(t.preparedSelection=a.input.prepareSelection())}function H_(t){var r=t.cm;t.adjustWidthTo!=null&&(r.display.sizer.style.minWidth=t.adjustWidthTo+"px",t.maxScrollLeft=t.display.viewTo)){var a=+new Date+t.options.workTime,o=Qr(t,r.highlightFrontier),l=[];r.iter(o.line,Math.min(r.first+r.size,t.display.viewTo+500),function(f){if(o.line>=t.display.viewFrom){var p=f.styles,m=f.text.length>t.options.maxHighlightLength?Jt(r.mode,o.state):null,T=_i(t,f,o,!0);m&&(o.state=m),f.styles=T.styles;var C=f.styleClasses,X=T.classes;X?f.styleClasses=X:C&&(f.styleClasses=null);for(var Z=!p||p.length!=f.styles.length||C!=X&&(!C||!X||C.bgClass!=X.bgClass||C.textClass!=X.textClass),Te=0;!Z&&Tea)return su(t,t.options.workDelay),!0}),r.highlightFrontier=o.line,r.modeFrontier=Math.max(r.modeFrontier,o.line),l.length&&Cr(t,function(){for(var f=0;f=a.viewFrom&&r.visible.to<=a.viewTo&&(a.updateLineNumbers==null||a.updateLineNumbers>=a.viewTo)&&a.renderedView==a.view&&kv(t)==0)return!1;Dv(t)&&(Bi(t),r.dims=fc(t));var l=o.first+o.size,f=Math.max(r.visible.from-t.options.viewportMargin,o.first),p=Math.min(l,r.visible.to+t.options.viewportMargin);a.viewFromp&&a.viewTo-p<20&&(p=Math.min(l,a.viewTo)),rt&&(f=Wi(t.doc,f),p=xo(t.doc,p));var m=f!=a.viewFrom||p!=a.viewTo||a.lastWrapHeight!=r.wrapperHeight||a.lastWrapWidth!=r.wrapperWidth;E_(t,f,p),a.viewOffset=Rr(st(t.doc,a.viewFrom)),t.display.mover.style.top=a.viewOffset+"px";var T=kv(t);if(!m&&T==0&&!r.force&&a.renderedView==a.view&&(a.updateLineNumbers==null||a.updateLineNumbers>=a.viewTo))return!1;var C=j_(t);return T>4&&(a.lineDiv.style.display="none"),q_(t,a.updateLineNumbers,r.dims),T>4&&(a.lineDiv.style.display=""),a.renderedView=a.view,Y_(C),P(a.cursorDiv),P(a.selectionDiv),a.gutters.style.height=a.sizer.style.minHeight=0,m&&(a.lastWrapHeight=r.wrapperHeight,a.lastWrapWidth=r.wrapperWidth,su(t,400)),a.updateLineNumbers=null,!0}function Lv(t,r){for(var a=r.viewport,o=!0;;o=!1){if(!o||!t.options.lineWrapping||r.oldDisplayWidth==To(t)){if(a&&a.top!=null&&(a={top:Math.min(t.doc.height+rc(t.display)-ic(t),a.top)}),r.visible=Ll(t.display,t.doc,a),r.visible.from>=t.display.viewFrom&&r.visible.to<=t.display.viewTo)break}else o&&(r.visible=Ll(t.display,t.doc,a));if(!wc(t,r))break;Pl(t);var l=uu(t);iu(t),ua(t,l),kc(t,l),r.force=!1}r.signal(t,"update",t),(t.display.viewFrom!=t.display.reportedViewFrom||t.display.viewTo!=t.display.reportedViewTo)&&(r.signal(t,"viewportChange",t,t.display.viewFrom,t.display.viewTo),t.display.reportedViewFrom=t.display.viewFrom,t.display.reportedViewTo=t.display.viewTo)}function xc(t,r){var a=new Dl(t,r);if(wc(t,a)){Pl(t),Lv(t,a);var o=uu(t);iu(t),ua(t,o),kc(t,o),a.finish()}}function q_(t,r,a){var o=t.display,l=t.options.lineNumbers,f=o.lineDiv,p=f.firstChild;function m(Be){var Ve=Be.nextSibling;return k&&Y&&t.display.currentWheelTarget==Be?Be.style.display="none":Be.parentNode.removeChild(Be),Ve}for(var T=o.view,C=o.viewFrom,X=0;X-1&&(ye=!1),rv(t,Z,C,a)),ye&&(P(Z.lineNumber),Z.lineNumber.appendChild(document.createTextNode(qe(t.options,C)))),p=Z.node.nextSibling}C+=Z.size}for(;p;)p=m(p)}function _c(t){var r=t.gutters.offsetWidth;t.sizer.style.marginLeft=r+"px",Hn(t,"gutterChanged",t)}function kc(t,r){t.display.sizer.style.minHeight=r.docHeight+"px",t.display.heightForcer.style.top=r.docHeight+"px",t.display.gutters.style.height=r.docHeight+t.display.barHeight+fi(t)+"px"}function Ov(t){var r=t.display,a=r.view;if(!(!r.alignWidgets&&(!r.gutters.firstChild||!t.options.fixedGutter))){for(var o=cc(r)-r.scroller.scrollLeft+t.doc.scrollLeft,l=r.gutters.offsetWidth,f=o+"px",p=0;pm.clientWidth,C=m.scrollHeight>m.clientHeight;if(!!(o&&T||l&&C)){if(l&&Y&&k){e:for(var X=r.target,Z=p.view;X!=m;X=X.parentNode)for(var Te=0;Te=0&&_(t,o.to())<=0)return a}return-1};var en=function(t,r){this.anchor=t,this.head=r};en.prototype.from=function(){return Ze(this.anchor,this.head)},en.prototype.to=function(){return Ne(this.anchor,this.head)},en.prototype.empty=function(){return this.head.line==this.anchor.line&&this.head.ch==this.anchor.ch};function ei(t,r,a){var o=t&&t.options.selectionsMayTouch,l=r[a];r.sort(function(Te,ye){return _(Te.from(),ye.from())}),a=me(r,l);for(var f=1;f0:T>=0){var C=Ze(m.from(),p.from()),X=Ne(m.to(),p.to()),Z=m.empty()?p.from()==p.head:m.from()==m.head;f<=a&&--a,r.splice(--f,2,new en(Z?X:C,Z?C:X))}}return new Fr(r,a)}function ji(t,r){return new Fr([new en(t,r||t)],0)}function Yi(t){return t.text?de(t.from.line+t.text.length-1,fe(t.text).length+(t.text.length==1?t.from.ch:0)):t.to}function Fv(t,r){if(_(t,r.from)<0)return t;if(_(t,r.to)<=0)return Yi(r);var a=t.line+r.text.length-(r.to.line-r.from.line)-1,o=t.ch;return t.line==r.to.line&&(o+=Yi(r).ch-r.to.ch),de(a,o)}function Sc(t,r){for(var a=[],o=0;o1&&t.remove(m.line+1,Be-1),t.insert(m.line+1,ut)}Hn(t,"change",t,r)}function qi(t,r,a){function o(l,f,p){if(l.linked)for(var m=0;m1&&!t.done[t.done.length-2].ranges)return t.done.pop(),fe(t.done)}function jv(t,r,a,o){var l=t.history;l.undone.length=0;var f=+new Date,p,m;if((l.lastOp==o||l.lastOrigin==r.origin&&r.origin&&(r.origin.charAt(0)=="+"&&l.lastModTime>f-(t.cm?t.cm.options.historyEventDelay:500)||r.origin.charAt(0)=="*"))&&(p=K_(l,l.lastOp==o)))m=fe(p.changes),_(r.from,r.to)==0&&_(r.from,m.to)==0?m.to=Yi(r):p.changes.push(Mc(t,r));else{var T=fe(l.done);for((!T||!T.ranges)&&Rl(t.sel,l.done),p={changes:[Mc(t,r)],generation:l.generation},l.done.push(p);l.done.length>l.undoDepth;)l.done.shift(),l.done[0].ranges||l.done.shift()}l.done.push(a),l.generation=++l.maxGeneration,l.lastModTime=l.lastSelTime=f,l.lastOp=l.lastSelOp=o,l.lastOrigin=l.lastSelOrigin=r.origin,m||ze(t,"historyAdded")}function Q_(t,r,a,o){var l=r.charAt(0);return l=="*"||l=="+"&&a.ranges.length==o.ranges.length&&a.somethingSelected()==o.somethingSelected()&&new Date-t.history.lastSelTime<=(t.cm?t.cm.options.historyEventDelay:500)}function Z_(t,r,a,o){var l=t.history,f=o&&o.origin;a==l.lastSelOp||f&&l.lastSelOrigin==f&&(l.lastModTime==l.lastSelTime&&l.lastOrigin==f||Q_(t,f,fe(l.done),r))?l.done[l.done.length-1]=r:Rl(r,l.done),l.lastSelTime=+new Date,l.lastSelOrigin=f,l.lastSelOp=a,o&&o.clearRedo!==!1&&Bv(l.undone)}function Rl(t,r){var a=fe(r);a&&a.ranges&&a.equals(t)||r.push(t)}function Yv(t,r,a,o){var l=r["spans_"+t.id],f=0;t.iter(Math.max(t.first,a),Math.min(t.first+t.size,o),function(p){p.markedSpans&&((l||(l=r["spans_"+t.id]={}))[f]=p.markedSpans),++f})}function J_(t){if(!t)return null;for(var r,a=0;a-1&&(fe(m)[Z]=C[Z],delete C[Z])}}return o}function Ec(t,r,a,o){if(o){var l=t.anchor;if(a){var f=_(r,l)<0;f!=_(a,l)<0?(l=r,r=a):f!=_(r,a)<0&&(r=a)}return new en(l,r)}else return new en(a||r,r)}function Fl(t,r,a,o,l){l==null&&(l=t.cm&&(t.cm.display.shift||t.extend)),Jn(t,new Fr([Ec(t.sel.primary(),r,a,l)],0),o)}function Gv(t,r,a){for(var o=[],l=t.cm&&(t.cm.display.shift||t.extend),f=0;f=r.ch:m.to>r.ch))){if(l&&(ze(T,"beforeCursorEnter"),T.explicitlyCleared))if(f.markedSpans){--p;continue}else break;if(!T.atomic)continue;if(a){var Z=T.find(o<0?1:-1),Te=void 0;if((o<0?X:C)&&(Z=Zv(t,Z,-o,Z&&Z.line==r.line?f:null)),Z&&Z.line==r.line&&(Te=_(Z,a))&&(o<0?Te<0:Te>0))return sa(t,Z,r,o,l)}var ye=T.find(o<0?-1:1);return(o<0?C:X)&&(ye=Zv(t,ye,o,ye.line==r.line?f:null)),ye?sa(t,ye,r,o,l):null}}return r}function Hl(t,r,a,o,l){var f=o||1,p=sa(t,r,a,f,l)||!l&&sa(t,r,a,f,!0)||sa(t,r,a,-f,l)||!l&&sa(t,r,a,-f,!0);return p||(t.cantEdit=!0,de(t.first,0))}function Zv(t,r,a,o){return a<0&&r.ch==0?r.line>t.first?Qe(t,de(r.line-1)):null:a>0&&r.ch==(o||st(t,r.line)).text.length?r.line=0;--l)tg(t,{from:o[l].from,to:o[l].to,text:l?[""]:r.text,origin:r.origin});else tg(t,r)}}function tg(t,r){if(!(r.text.length==1&&r.text[0]==""&&_(r.from,r.to)==0)){var a=Sc(t,r);jv(t,r,a,t.cm?t.cm.curOp.id:NaN),hu(t,r,a,mn(t,r));var o=[];qi(t,function(l,f){!f&&me(o,l.history)==-1&&(og(l.history,r),o.push(l.history)),hu(l,r,null,mn(l,r))})}}function Wl(t,r,a){var o=t.cm&&t.cm.state.suppressEdits;if(!(o&&!a)){for(var l=t.history,f,p=t.sel,m=r=="undo"?l.done:l.undone,T=r=="undo"?l.undone:l.done,C=0;C=0;--ye){var Be=Te(ye);if(Be)return Be.v}}}}function ng(t,r){if(r!=0&&(t.first+=r,t.sel=new Fr(De(t.sel.ranges,function(l){return new en(de(l.anchor.line+r,l.anchor.ch),de(l.head.line+r,l.head.ch))}),t.sel.primIndex),t.cm)){hr(t.cm,t.first,t.first-r,r);for(var a=t.cm.display,o=a.viewFrom;ot.lastLine())){if(r.from.linef&&(r={from:r.from,to:de(f,st(t,f).text.length),text:[r.text[0]],origin:r.origin}),r.removed=Tt(t,r.from,r.to),a||(a=Sc(t,r)),t.cm?nk(t.cm,r,o):Cc(t,r,o),zl(t,a,Je),t.cantEdit&&Hl(t,de(t.firstLine(),0))&&(t.cantEdit=!1)}}function nk(t,r,a){var o=t.doc,l=t.display,f=r.from,p=r.to,m=!1,T=f.line;t.options.lineWrapping||(T=St(Gn(st(o,f.line))),o.iter(T,p.line+1,function(ye){if(ye==l.maxLine)return m=!0,!0})),o.sel.contains(r.from,r.to)>-1&&ct(t),Cc(o,r,a,_v(t)),t.options.lineWrapping||(o.iter(T,f.line+r.text.length,function(ye){var Be=br(ye);Be>l.maxLineLength&&(l.maxLine=ye,l.maxLineLength=Be,l.maxLineChanged=!0,m=!1)}),m&&(t.curOp.updateMaxLine=!0)),Ge(o,f.line),su(t,400);var C=r.text.length-(p.line-f.line)-1;r.full?hr(t):f.line==p.line&&r.text.length==1&&!Hv(t.doc,r)?Ui(t,f.line,"text"):hr(t,f.line,p.line+1,C);var X=ht(t,"changes"),Z=ht(t,"change");if(Z||X){var Te={from:f,to:p,text:r.text,removed:r.removed,origin:r.origin};Z&&Hn(t,"change",t,Te),X&&(t.curOp.changeObjs||(t.curOp.changeObjs=[])).push(Te)}t.display.selForContextMenu=null}function ca(t,r,a,o,l){var f;o||(o=a),_(o,a)<0&&(f=[o,a],a=f[0],o=f[1]),typeof r=="string"&&(r=t.splitLines(r)),fa(t,{from:a,to:o,text:r,origin:l})}function rg(t,r,a,o){a1||!(this.children[0]instanceof pu))){var m=[];this.collapse(m),this.children=[new pu(m)],this.children[0].parent=this}},collapse:function(t){for(var r=0;r50){for(var p=l.lines.length%25+25,m=p;m10);t.parent.maybeSpill()}},iterN:function(t,r,a){for(var o=0;ot.display.maxLineLength&&(t.display.maxLine=C,t.display.maxLineLength=X,t.display.maxLineChanged=!0)}o!=null&&t&&this.collapsed&&hr(t,o,l+1),this.lines.length=0,this.explicitlyCleared=!0,this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,t&&Kv(t.doc)),t&&Hn(t,"markerCleared",t,this,o,l),r&&Po(t),this.parent&&this.parent.clear()}},Gi.prototype.find=function(t,r){t==null&&this.type=="bookmark"&&(t=1);for(var a,o,l=0;l0||p==0&&f.clearWhenEmpty!==!1)return f;if(f.replacedWith&&(f.collapsed=!0,f.widgetNode=y("span",[f.replacedWith],"CodeMirror-widget"),o.handleMouseEvents||f.widgetNode.setAttribute("cm-ignore-events","true"),o.insertLeft&&(f.widgetNode.insertLeft=!0)),f.collapsed){if(li(t,r.line,r,a,f)||r.line!=a.line&&li(t,a.line,r,a,f))throw new Error("Inserting collapsed marker partially overlapping an existing one");Pt()}f.addToHistory&&jv(t,{from:r,to:a,origin:"markText"},t.sel,NaN);var m=r.line,T=t.cm,C;if(t.iter(m,a.line+1,function(Z){T&&f.collapsed&&!T.options.lineWrapping&&Gn(Z)==T.display.maxLine&&(C=!0),f.collapsed&&m!=r.line&&Xt(Z,0),Kt(Z,new Yt(f,m==r.line?r.ch:null,m==a.line?a.ch:null),t.cm&&t.cm.curOp),++m}),f.collapsed&&t.iter(r.line,a.line+1,function(Z){Ir(t,Z)&&Xt(Z,0)}),f.clearOnEnter&&M(f,"beforeCursorEnter",function(){return f.clear()}),f.readOnly&&(mt(),(t.history.done.length||t.history.undone.length)&&t.clearHistory()),f.collapsed&&(f.id=++ug,f.atomic=!0),T){if(C&&(T.curOp.updateMaxLine=!0),f.collapsed)hr(T,r.line,a.line+1);else if(f.className||f.startStyle||f.endStyle||f.css||f.attributes||f.title)for(var X=r.line;X<=a.line;X++)Ui(T,X,"text");f.atomic&&Kv(T.doc),Hn(T,"markerAdded",T,f)}return f}var mu=function(t,r){this.markers=t,this.primary=r;for(var a=0;a=0;T--)fa(this,o[T]);m?Vv(this,m):this.cm&&aa(this.cm)}),undo:Un(function(){Wl(this,"undo")}),redo:Un(function(){Wl(this,"redo")}),undoSelection:Un(function(){Wl(this,"undo",!0)}),redoSelection:Un(function(){Wl(this,"redo",!0)}),setExtending:function(t){this.extend=t},getExtending:function(){return this.extend},historySize:function(){for(var t=this.history,r=0,a=0,o=0;o=t.ch)&&r.push(l.marker.parent||l.marker)}return r},findMarks:function(t,r,a){t=Qe(this,t),r=Qe(this,r);var o=[],l=t.line;return this.iter(t.line,r.line+1,function(f){var p=f.markedSpans;if(p)for(var m=0;m=T.to||T.from==null&&l!=t.line||T.from!=null&&l==r.line&&T.from>=r.ch)&&(!a||a(T.marker))&&o.push(T.marker.parent||T.marker)}++l}),o},getAllMarks:function(){var t=[];return this.iter(function(r){var a=r.markedSpans;if(a)for(var o=0;ot)return r=t,!0;t-=f,++a}),Qe(this,de(a,r))},indexFromPos:function(t){t=Qe(this,t);var r=t.ch;if(t.liner&&(r=t.from),t.to!=null&&t.to-1){r.state.draggingText(t),setTimeout(function(){return r.display.input.focus()},20);return}try{var X=t.dataTransfer.getData("Text");if(X){var Z;if(r.state.draggingText&&!r.state.draggingText.copy&&(Z=r.listSelections()),zl(r.doc,ji(a,a)),Z)for(var Te=0;Te=0;m--)ca(t.doc,"",o[m].from,o[m].to,"+delete");aa(t)})}function Pc(t,r,a){var o=pn(t.text,r+a,a);return o<0||o>t.text.length?null:o}function Lc(t,r,a){var o=Pc(t,r.ch,a);return o==null?null:new de(r.line,o,a<0?"after":"before")}function Oc(t,r,a,o,l){if(t){r.doc.direction=="rtl"&&(l=-l);var f=Xe(a,r.doc.direction);if(f){var p=l<0?fe(f):f[0],m=l<0==(p.level==1),T=m?"after":"before",C;if(p.level>0||r.doc.direction=="rtl"){var X=na(r,a);C=l<0?a.text.length-1:0;var Z=ci(r,X,C).top;C=$t(function(Te){return ci(r,X,Te).top==Z},l<0==(p.level==1)?p.from:p.to-1,C),T=="before"&&(C=Pc(a,C,1))}else C=l<0?p.to:p.from;return new de(o,C,T)}}return new de(o,l<0?a.text.length:0,l<0?"before":"after")}function gk(t,r,a,o){var l=Xe(r,t.doc.direction);if(!l)return Lc(r,a,o);a.ch>=r.text.length?(a.ch=r.text.length,a.sticky="before"):a.ch<=0&&(a.ch=0,a.sticky="after");var f=j(l,a.ch,a.sticky),p=l[f];if(t.doc.direction=="ltr"&&p.level%2==0&&(o>0?p.to>a.ch:p.from=p.from&&Te>=X.begin)){var ye=Z?"before":"after";return new de(a.line,Te,ye)}}var Be=function(ut,pt,lt){for(var gt=function(hn,Bn){return Bn?new de(a.line,m(hn,1),"before"):new de(a.line,hn,"after")};ut>=0&&ut0==(kt.level!=1),Ft=xt?lt.begin:m(lt.end,-1);if(kt.from<=Ft&&Ft0?X.end:m(X.begin,-1);return nt!=null&&!(o>0&&nt==r.text.length)&&(Ve=Be(o>0?0:l.length-1,o,C(nt)),Ve)?Ve:null}var xu={selectAll:Jv,singleSelection:function(t){return t.setSelection(t.getCursor("anchor"),t.getCursor("head"),Je)},killLine:function(t){return pa(t,function(r){if(r.empty()){var a=st(t.doc,r.head.line).text.length;return r.head.ch==a&&r.head.line0)l=new de(l.line,l.ch+1),t.replaceRange(f.charAt(l.ch-1)+f.charAt(l.ch-2),de(l.line,l.ch-2),l,"+transpose");else if(l.line>t.doc.first){var p=st(t.doc,l.line-1).text;p&&(l=new de(l.line,1),t.replaceRange(f.charAt(0)+t.doc.lineSeparator()+p.charAt(p.length-1),de(l.line-1,p.length-1),l,"+transpose"))}}a.push(new en(l,l))}t.setSelections(a)})},newlineAndIndent:function(t){return Cr(t,function(){for(var r=t.listSelections(),a=r.length-1;a>=0;a--)t.replaceRange(t.doc.lineSeparator(),r[a].anchor,r[a].head,"+input");r=t.listSelections();for(var o=0;ot&&_(r,this.pos)==0&&a==this.button};var ku,Tu;function Tk(t,r){var a=+new Date;return Tu&&Tu.compare(a,t,r)?(ku=Tu=null,"triple"):ku&&ku.compare(a,t,r)?(Tu=new Ac(a,t,r),ku=null,"double"):(ku=new Ac(a,t,r),Tu=null,"single")}function Tg(t){var r=this,a=r.display;if(!(tt(r,t)||a.activeTouch&&a.input.supportsTouch())){if(a.input.ensurePolled(),a.shift=t.shiftKey,Si(a,t)){k||(a.scroller.draggable=!1,setTimeout(function(){return a.scroller.draggable=!0},100));return}if(!Ic(r,t)){var o=bo(r,t),l=gn(t),f=o?Tk(o,l):"single";window.focus(),l==1&&r.state.selectingText&&r.state.selectingText(t),!(o&&Sk(r,l,o,f,t))&&(l==1?o?Ck(r,o,f,t):nn(t)==a.scroller&&bt(t):l==2?(o&&Fl(r.doc,o),setTimeout(function(){return a.input.focus()},20)):l==3&&(c?r.display.input.onContextMenu(t):vc(r)))}}}function Sk(t,r,a,o,l){var f="Click";return o=="double"?f="Double"+f:o=="triple"&&(f="Triple"+f),f=(r==1?"Left":r==2?"Middle":"Right")+f,_u(t,pg(f,l),l,function(p){if(typeof p=="string"&&(p=xu[p]),!p)return!1;var m=!1;try{t.isReadOnly()&&(t.state.suppressEdits=!0),m=p(t,a)!=He}finally{t.state.suppressEdits=!1}return m})}function bk(t,r,a){var o=t.getOption("configureMouse"),l=o?o(t,r,a):{};if(l.unit==null){var f=le?a.shiftKey&&a.metaKey:a.altKey;l.unit=f?"rectangle":r=="single"?"char":r=="double"?"word":"line"}return(l.extend==null||t.doc.extend)&&(l.extend=t.doc.extend||a.shiftKey),l.addNew==null&&(l.addNew=Y?a.metaKey:a.ctrlKey),l.moveOnDrag==null&&(l.moveOnDrag=!(Y?a.altKey:a.ctrlKey)),l}function Ck(t,r,a,o){d?setTimeout(We(Sv,t),0):t.curOp.focus=oe();var l=bk(t,a,o),f=t.doc.sel,p;t.options.dragDrop&&K&&!t.isReadOnly()&&a=="single"&&(p=f.contains(r))>-1&&(_((p=f.ranges[p]).from(),r)<0||r.xRel>0)&&(_(p.to(),r)>0||r.xRel<0)?Mk(t,o,r,l):Ek(t,o,r,l)}function Mk(t,r,a,o){var l=t.display,f=!1,p=Wn(t,function(C){k&&(l.scroller.draggable=!1),t.state.draggingText=!1,t.state.delayingBlurEvent&&(t.hasFocus()?t.state.delayingBlurEvent=!1:vc(t)),Se(l.wrapper.ownerDocument,"mouseup",p),Se(l.wrapper.ownerDocument,"mousemove",m),Se(l.scroller,"dragstart",T),Se(l.scroller,"drop",p),f||(bt(C),o.addNew||Fl(t.doc,a,null,null,o.extend),k&&!ie||d&&v==9?setTimeout(function(){l.wrapper.ownerDocument.body.focus({preventScroll:!0}),l.input.focus()},20):l.input.focus())}),m=function(C){f=f||Math.abs(r.clientX-C.clientX)+Math.abs(r.clientY-C.clientY)>=10},T=function(){return f=!0};k&&(l.scroller.draggable=!0),t.state.draggingText=p,p.copy=!o.moveOnDrag,M(l.wrapper.ownerDocument,"mouseup",p),M(l.wrapper.ownerDocument,"mousemove",m),M(l.scroller,"dragstart",T),M(l.scroller,"drop",p),t.state.delayingBlurEvent=!0,setTimeout(function(){return l.input.focus()},20),l.scroller.dragDrop&&l.scroller.dragDrop()}function Sg(t,r,a){if(a=="char")return new en(r,r);if(a=="word")return t.findWordAt(r);if(a=="line")return new en(de(r.line,0),Qe(t.doc,de(r.line+1,0)));var o=a(t,r);return new en(o.from,o.to)}function Ek(t,r,a,o){d&&vc(t);var l=t.display,f=t.doc;bt(r);var p,m,T=f.sel,C=T.ranges;if(o.addNew&&!o.extend?(m=f.sel.contains(a),m>-1?p=C[m]:p=new en(a,a)):(p=f.sel.primary(),m=f.sel.primIndex),o.unit=="rectangle")o.addNew||(p=new en(a,a)),a=bo(t,r,!0,!0),m=-1;else{var X=Sg(t,a,o.unit);o.extend?p=Ec(p,X.anchor,X.head,o.extend):p=X}o.addNew?m==-1?(m=C.length,Jn(f,ei(t,C.concat([p]),m),{scroll:!1,origin:"*mouse"})):C.length>1&&C[m].empty()&&o.unit=="char"&&!o.extend?(Jn(f,ei(t,C.slice(0,m).concat(C.slice(m+1)),0),{scroll:!1,origin:"*mouse"}),T=f.sel):Nc(f,m,p,te):(m=0,Jn(f,new Fr([p],0),te),T=f.sel);var Z=a;function Te(lt){if(_(Z,lt)!=0)if(Z=lt,o.unit=="rectangle"){for(var gt=[],kt=t.options.tabSize,xt=ke(st(f,a.line).text,a.ch,kt),Ft=ke(st(f,lt.line).text,lt.ch,kt),hn=Math.min(xt,Ft),Bn=Math.max(xt,Ft),yn=Math.min(a.line,lt.line),Mr=Math.min(t.lastLine(),Math.max(a.line,lt.line));yn<=Mr;yn++){var pr=st(f,yn).text,Ln=Oe(pr,hn,kt);hn==Bn?gt.push(new en(de(yn,Ln),de(yn,Ln))):pr.length>Ln&>.push(new en(de(yn,Ln),de(yn,Oe(pr,Bn,kt))))}gt.length||gt.push(new en(a,a)),Jn(f,ei(t,T.ranges.slice(0,m).concat(gt),m),{origin:"*mouse",scroll:!1}),t.scrollIntoView(lt)}else{var vr=p,$n=Sg(t,lt,o.unit),Fn=vr.anchor,On;_($n.anchor,Fn)>0?(On=$n.head,Fn=Ze(vr.from(),$n.anchor)):(On=$n.anchor,Fn=Ne(vr.to(),$n.head));var kn=T.ranges.slice(0);kn[m]=Nk(t,new en(Qe(f,Fn),On)),Jn(f,ei(t,kn,m),te)}}var ye=l.wrapper.getBoundingClientRect(),Be=0;function Ve(lt){var gt=++Be,kt=bo(t,lt,!0,o.unit=="rectangle");if(!!kt)if(_(kt,Z)!=0){t.curOp.focus=oe(),Te(kt);var xt=Ll(l,f);(kt.line>=xt.to||kt.lineye.bottom?20:0;Ft&&setTimeout(Wn(t,function(){Be==gt&&(l.scroller.scrollTop+=Ft,Ve(lt))}),50)}}function nt(lt){t.state.selectingText=!1,Be=1/0,lt&&(bt(lt),l.input.focus()),Se(l.wrapper.ownerDocument,"mousemove",ut),Se(l.wrapper.ownerDocument,"mouseup",pt),f.history.lastSelOrigin=null}var ut=Wn(t,function(lt){lt.buttons===0||!gn(lt)?nt(lt):Ve(lt)}),pt=Wn(t,nt);t.state.selectingText=pt,M(l.wrapper.ownerDocument,"mousemove",ut),M(l.wrapper.ownerDocument,"mouseup",pt)}function Nk(t,r){var a=r.anchor,o=r.head,l=st(t.doc,a.line);if(_(a,o)==0&&a.sticky==o.sticky)return r;var f=Xe(l);if(!f)return r;var p=j(f,a.ch,a.sticky),m=f[p];if(m.from!=a.ch&&m.to!=a.ch)return r;var T=p+(m.from==a.ch==(m.level!=1)?0:1);if(T==0||T==f.length)return r;var C;if(o.line!=a.line)C=(o.line-a.line)*(t.doc.direction=="ltr"?1:-1)>0;else{var X=j(f,o.ch,o.sticky),Z=X-p||(o.ch-a.ch)*(m.level==1?-1:1);X==T-1||X==T?C=Z<0:C=Z>0}var Te=f[T+(C?-1:0)],ye=C==(Te.level==1),Be=ye?Te.from:Te.to,Ve=ye?"after":"before";return a.ch==Be&&a.sticky==Ve?r:new en(new de(a.line,Be,Ve),o)}function bg(t,r,a,o){var l,f;if(r.touches)l=r.touches[0].clientX,f=r.touches[0].clientY;else try{l=r.clientX,f=r.clientY}catch{return!1}if(l>=Math.floor(t.display.gutters.getBoundingClientRect().right))return!1;o&&bt(r);var p=t.display,m=p.lineDiv.getBoundingClientRect();if(f>m.bottom||!ht(t,a))return Wt(r);f-=m.top-p.viewOffset;for(var T=0;T=l){var X=G(t.doc,f),Z=t.display.gutterSpecs[T];return ze(t,a,t,X,Z.className,r),Wt(r)}}}function Ic(t,r){return bg(t,r,"gutterClick",!0)}function Cg(t,r){Si(t.display,r)||Pk(t,r)||tt(t,r,"contextmenu")||c||t.display.input.onContextMenu(r)}function Pk(t,r){return ht(t,"gutterContextMenu")?bg(t,r,"gutterContextMenu",!1):!1}function Mg(t){t.display.wrapper.className=t.display.wrapper.className.replace(/\s*cm-s-\S+/g,"")+t.options.theme.replace(/(^|\s)\s*/g," cm-s-"),ru(t)}var va={toString:function(){return"CodeMirror.Init"}},Eg={},Yl={};function Lk(t){var r=t.optionHandlers;function a(o,l,f,p){t.defaults[o]=l,f&&(r[o]=p?function(m,T,C){C!=va&&f(m,T,C)}:f)}t.defineOption=a,t.Init=va,a("value","",function(o,l){return o.setValue(l)},!0),a("mode",null,function(o,l){o.doc.modeOption=l,bc(o)},!0),a("indentUnit",2,bc,!0),a("indentWithTabs",!1),a("smartIndent",!0),a("tabSize",4,function(o){cu(o),ru(o),hr(o)},!0),a("lineSeparator",null,function(o,l){if(o.doc.lineSep=l,!!l){var f=[],p=o.doc.first;o.doc.iter(function(T){for(var C=0;;){var X=T.text.indexOf(l,C);if(X==-1)break;C=X+l.length,f.push(de(p,X))}p++});for(var m=f.length-1;m>=0;m--)ca(o.doc,l,f[m],de(f[m].line,f[m].ch+l.length))}}),a("specialChars",/[\u0000-\u001f\u007f-\u009f\u00ad\u061c\u200b\u200e\u200f\u2028\u2029\ufeff\ufff9-\ufffc]/g,function(o,l,f){o.state.specialChars=new RegExp(l.source+(l.test(" ")?"":"| "),"g"),f!=va&&o.refresh()}),a("specialCharPlaceholder",a_,function(o){return o.refresh()},!0),a("electricChars",!0),a("inputStyle",I?"contenteditable":"textarea",function(){throw new Error("inputStyle can not (yet) be changed in a running editor")},!0),a("spellcheck",!1,function(o,l){return o.getInputField().spellcheck=l},!0),a("autocorrect",!1,function(o,l){return o.getInputField().autocorrect=l},!0),a("autocapitalize",!1,function(o,l){return o.getInputField().autocapitalize=l},!0),a("rtlMoveVisually",!pe),a("wholeLineUpdateBefore",!0),a("theme","default",function(o){Mg(o),fu(o)},!0),a("keyMap","default",function(o,l,f){var p=Bl(l),m=f!=va&&Bl(f);m&&m.detach&&m.detach(o,p),p.attach&&p.attach(o,m||null)}),a("extraKeys",null),a("configureMouse",null),a("lineWrapping",!1,Dk,!0),a("gutters",[],function(o,l){o.display.gutterSpecs=Tc(l,o.options.lineNumbers),fu(o)},!0),a("fixedGutter",!0,function(o,l){o.display.gutters.style.left=l?cc(o.display)+"px":"0",o.refresh()},!0),a("coverGutterNextToScrollbar",!1,function(o){return ua(o)},!0),a("scrollbarStyle","native",function(o){Pv(o),ua(o),o.display.scrollbars.setScrollTop(o.doc.scrollTop),o.display.scrollbars.setScrollLeft(o.doc.scrollLeft)},!0),a("lineNumbers",!1,function(o,l){o.display.gutterSpecs=Tc(o.options.gutters,l),fu(o)},!0),a("firstLineNumber",1,fu,!0),a("lineNumberFormatter",function(o){return o},fu,!0),a("showCursorWhenSelecting",!1,iu,!0),a("resetSelectionOnContextMenu",!0),a("lineWiseCopyCut",!0),a("pasteLinesPerSelection",!0),a("selectionsMayTouch",!1),a("readOnly",!1,function(o,l){l=="nocursor"&&(oa(o),o.display.input.blur()),o.display.input.readOnlyChanged(l)}),a("screenReaderLabel",null,function(o,l){l=l===""?null:l,o.display.input.screenReaderLabelChanged(l)}),a("disableInput",!1,function(o,l){l||o.display.input.reset()},!0),a("dragDrop",!0,Ok),a("allowDropFileTypes",null),a("cursorBlinkRate",530),a("cursorScrollMargin",0),a("cursorHeight",1,iu,!0),a("singleCursorHeightPerLine",!0,iu,!0),a("workTime",100),a("workDelay",100),a("flattenSpans",!0,cu,!0),a("addModeClass",!1,cu,!0),a("pollInterval",100),a("undoDepth",200,function(o,l){return o.doc.history.undoDepth=l}),a("historyEventDelay",1250),a("viewportMargin",10,function(o){return o.refresh()},!0),a("maxHighlightLength",1e4,cu,!0),a("moveInputWithCursor",!0,function(o,l){l||o.display.input.resetPosition()}),a("tabindex",null,function(o,l){return o.display.input.getField().tabIndex=l||""}),a("autofocus",null),a("direction","ltr",function(o,l){return o.doc.setDirection(l)},!0),a("phrases",null)}function Ok(t,r,a){var o=a&&a!=va;if(!r!=!o){var l=t.display.dragFunctions,f=r?M:Se;f(t.display.scroller,"dragstart",l.start),f(t.display.scroller,"dragenter",l.enter),f(t.display.scroller,"dragover",l.over),f(t.display.scroller,"dragleave",l.leave),f(t.display.scroller,"drop",l.drop)}}function Dk(t){t.options.lineWrapping?(Le(t.display.wrapper,"CodeMirror-wrap"),t.display.sizer.style.minWidth="",t.display.sizerWidth=null):(x(t.display.wrapper,"CodeMirror-wrap"),ko(t)),hc(t),hr(t),ru(t),setTimeout(function(){return ua(t)},100)}function vn(t,r){var a=this;if(!(this instanceof vn))return new vn(t,r);this.options=r=r?ce(r):{},ce(Eg,r,!1);var o=r.value;typeof o=="string"?o=new dr(o,r.mode,null,r.lineSeparator,r.direction):r.mode&&(o.modeOption=r.mode),this.doc=o;var l=new vn.inputStyles[r.inputStyle](this),f=this.display=new G_(t,o,l,r);f.wrapper.CodeMirror=this,Mg(this),r.lineWrapping&&(this.display.wrapper.className+=" CodeMirror-wrap"),Pv(this),this.state={keyMaps:[],overlays:[],modeGen:0,overwrite:!1,delayingBlurEvent:!1,focused:!1,suppressEdits:!1,pasteIncoming:-1,cutIncoming:-1,selectingText:!1,draggingText:!1,highlight:new Ce,keySeq:null,specialChars:null},r.autofocus&&!I&&f.input.focus(),d&&v<11&&setTimeout(function(){return a.display.input.reset(!0)},20),Ak(this),ck(),No(this),this.curOp.forceUpdate=!0,Wv(this,o),r.autofocus&&!I||this.hasFocus()?setTimeout(function(){a.hasFocus()&&!a.state.focused&&gc(a)},20):oa(this);for(var p in Yl)Yl.hasOwnProperty(p)&&Yl[p](this,r[p],va);Dv(this),r.finishInit&&r.finishInit(this);for(var m=0;m20*20}M(r.scroller,"touchstart",function(T){if(!tt(t,T)&&!f(T)&&!Ic(t,T)){r.input.ensurePolled(),clearTimeout(a);var C=+new Date;r.activeTouch={start:C,moved:!1,prev:C-o.end<=300?o:null},T.touches.length==1&&(r.activeTouch.left=T.touches[0].pageX,r.activeTouch.top=T.touches[0].pageY)}}),M(r.scroller,"touchmove",function(){r.activeTouch&&(r.activeTouch.moved=!0)}),M(r.scroller,"touchend",function(T){var C=r.activeTouch;if(C&&!Si(r,T)&&C.left!=null&&!C.moved&&new Date-C.start<300){var X=t.coordsChar(r.activeTouch,"page"),Z;!C.prev||p(C,C.prev)?Z=new en(X,X):!C.prev.prev||p(C,C.prev.prev)?Z=t.findWordAt(X):Z=new en(de(X.line,0),Qe(t.doc,de(X.line+1,0))),t.setSelection(Z.anchor,Z.head),t.focus(),bt(T)}l()}),M(r.scroller,"touchcancel",l),M(r.scroller,"scroll",function(){r.scroller.clientHeight&&(au(t,r.scroller.scrollTop),Mo(t,r.scroller.scrollLeft,!0),ze(t,"scroll",t))}),M(r.scroller,"mousewheel",function(T){return Rv(t,T)}),M(r.scroller,"DOMMouseScroll",function(T){return Rv(t,T)}),M(r.wrapper,"scroll",function(){return r.wrapper.scrollTop=r.wrapper.scrollLeft=0}),r.dragFunctions={enter:function(T){tt(t,T)||ln(T)},over:function(T){tt(t,T)||(fk(t,T),ln(T))},start:function(T){return sk(t,T)},drop:Wn(t,lk),leave:function(T){tt(t,T)||fg(t)}};var m=r.input.getField();M(m,"keyup",function(T){return _g.call(t,T)}),M(m,"keydown",Wn(t,xg)),M(m,"keypress",Wn(t,kg)),M(m,"focus",function(T){return gc(t,T)}),M(m,"blur",function(T){return oa(t,T)})}var Rc=[];vn.defineInitHook=function(t){return Rc.push(t)};function Su(t,r,a,o){var l=t.doc,f;a==null&&(a="add"),a=="smart"&&(l.mode.indent?f=Qr(t,r).state:a="prev");var p=t.options.tabSize,m=st(l,r),T=ke(m.text,null,p);m.stateAfter&&(m.stateAfter=null);var C=m.text.match(/^\s*/)[0],X;if(!o&&!/\S/.test(m.text))X=0,a="not";else if(a=="smart"&&(X=l.mode.indent(f,m.text.slice(C.length),m.text),X==He||X>150)){if(!o)return;a="prev"}a=="prev"?r>l.first?X=ke(st(l,r-1).text,null,p):X=0:a=="add"?X=T+t.options.indentUnit:a=="subtract"?X=T-t.options.indentUnit:typeof a=="number"&&(X=T+a),X=Math.max(0,X);var Z="",Te=0;if(t.options.indentWithTabs)for(var ye=Math.floor(X/p);ye;--ye)Te+=p,Z+=" ";if(Tep,T=L(r),C=null;if(m&&o.ranges.length>1)if(ti&&ti.text.join(` + left: `+r.left+"px; width: "+Math.max(2,r.right-r.left)+"px;");t.display.lineSpace.appendChild(f),f.scrollIntoView(l),t.display.lineSpace.removeChild(f)}}}function D_(t,r,a,o){o==null&&(o=0);var l;!t.options.lineWrapping&&r==a&&(a=r.sticky=="before"?de(r.line,r.ch+1,"before"):r,r=r.ch?de(r.line,r.sticky=="before"?r.ch-1:r.ch,"after"):r);for(var f=0;f<5;f++){var p=!1,m=Jr(t,r),T=!a||a==r?m:Jr(t,a);l={left:Math.min(m.left,T.left),top:Math.min(m.top,T.top)-o,right:Math.max(m.left,T.left),bottom:Math.max(m.bottom,T.bottom)+o};var C=yc(t,l),X=t.doc.scrollTop,Z=t.doc.scrollLeft;if(C.scrollTop!=null&&(au(t,C.scrollTop),Math.abs(t.doc.scrollTop-X)>1&&(p=!0)),C.scrollLeft!=null&&(Mo(t,C.scrollLeft),Math.abs(t.doc.scrollLeft-Z)>1&&(p=!0)),!p)break}return l}function A_(t,r){var a=yc(t,r);a.scrollTop!=null&&au(t,a.scrollTop),a.scrollLeft!=null&&Mo(t,a.scrollLeft)}function yc(t,r){var a=t.display,o=ra(t.display);r.top<0&&(r.top=0);var l=t.curOp&&t.curOp.scrollTop!=null?t.curOp.scrollTop:a.scroller.scrollTop,f=oc(t),p={};r.bottom-r.top>f&&(r.bottom=r.top+f);var m=t.doc.height+ic(a),T=r.topm-o;if(r.topl+f){var X=Math.min(r.top,(C?m:r.bottom)-f);X!=l&&(p.scrollTop=X)}var Z=t.options.fixedGutter?0:a.gutters.offsetWidth,Te=t.curOp&&t.curOp.scrollLeft!=null?t.curOp.scrollLeft:a.scroller.scrollLeft-Z,ye=To(t)-a.gutters.offsetWidth,Be=r.right-r.left>ye;return Be&&(r.right=r.left+ye),r.left<10?p.scrollLeft=0:r.leftye+Te-3&&(p.scrollLeft=r.right+(Be?0:10)-ye),p}function wc(t,r){r!=null&&(Ol(t),t.curOp.scrollTop=(t.curOp.scrollTop==null?t.doc.scrollTop:t.curOp.scrollTop)+r)}function aa(t){Ol(t);var r=t.getCursor();t.curOp.scrollToPos={from:r,to:r,margin:t.options.cursorScrollMargin}}function ou(t,r,a){(r!=null||a!=null)&&Ol(t),r!=null&&(t.curOp.scrollLeft=r),a!=null&&(t.curOp.scrollTop=a)}function I_(t,r){Ol(t),t.curOp.scrollToPos=r}function Ol(t){var r=t.curOp.scrollToPos;if(r){t.curOp.scrollToPos=null;var a=wv(t,r.from),o=wv(t,r.to);Mv(t,a,o,r.margin)}}function Mv(t,r,a,o){var l=yc(t,{left:Math.min(r.left,a.left),top:Math.min(r.top,a.top)-o,right:Math.max(r.right,a.right),bottom:Math.max(r.bottom,a.bottom)+o});ou(t,l.scrollLeft,l.scrollTop)}function au(t,r){Math.abs(t.doc.scrollTop-r)<2||(i||_c(t,{top:r}),Ev(t,r,!0),i&&_c(t),su(t,100))}function Ev(t,r,a){r=Math.max(0,Math.min(t.display.scroller.scrollHeight-t.display.scroller.clientHeight,r)),!(t.display.scroller.scrollTop==r&&!a)&&(t.doc.scrollTop=r,t.display.scrollbars.setScrollTop(r),t.display.scroller.scrollTop!=r&&(t.display.scroller.scrollTop=r))}function Mo(t,r,a,o){r=Math.max(0,Math.min(r,t.display.scroller.scrollWidth-t.display.scroller.clientWidth)),!((a?r==t.doc.scrollLeft:Math.abs(t.doc.scrollLeft-r)<2)&&!o)&&(t.doc.scrollLeft=r,Dv(t),t.display.scroller.scrollLeft!=r&&(t.display.scroller.scrollLeft=r),t.display.scrollbars.setScrollLeft(r))}function uu(t){var r=t.display,a=r.gutters.offsetWidth,o=Math.round(t.doc.height+ic(t.display));return{clientHeight:r.scroller.clientHeight,viewHeight:r.wrapper.clientHeight,scrollWidth:r.scroller.scrollWidth,clientWidth:r.scroller.clientWidth,viewWidth:r.wrapper.clientWidth,barLeft:t.options.fixedGutter?a:0,docHeight:o,scrollHeight:o+fi(t)+r.barHeight,nativeBarWidth:r.nativeBarWidth,gutterWidth:a}}var Eo=function(t,r,a){this.cm=a;var o=this.vert=U("div",[U("div",null,null,"min-width: 1px")],"CodeMirror-vscrollbar"),l=this.horiz=U("div",[U("div",null,null,"height: 100%; min-height: 1px")],"CodeMirror-hscrollbar");o.tabIndex=l.tabIndex=-1,t(o),t(l),M(o,"scroll",function(){o.clientHeight&&r(o.scrollTop,"vertical")}),M(l,"scroll",function(){l.clientWidth&&r(l.scrollLeft,"horizontal")}),this.checkedZeroWidth=!1,d&&v<8&&(this.horiz.style.minHeight=this.vert.style.minWidth="18px")};Eo.prototype.update=function(t){var r=t.scrollWidth>t.clientWidth+1,a=t.scrollHeight>t.clientHeight+1,o=t.nativeBarWidth;if(a){this.vert.style.display="block",this.vert.style.bottom=r?o+"px":"0";var l=t.viewHeight-(r?o:0);this.vert.firstChild.style.height=Math.max(0,t.scrollHeight-t.clientHeight+l)+"px"}else this.vert.scrollTop=0,this.vert.style.display="",this.vert.firstChild.style.height="0";if(r){this.horiz.style.display="block",this.horiz.style.right=a?o+"px":"0",this.horiz.style.left=t.barLeft+"px";var f=t.viewWidth-t.barLeft-(a?o:0);this.horiz.firstChild.style.width=Math.max(0,t.scrollWidth-t.clientWidth+f)+"px"}else this.horiz.style.display="",this.horiz.firstChild.style.width="0";return!this.checkedZeroWidth&&t.clientHeight>0&&(o==0&&this.zeroWidthHack(),this.checkedZeroWidth=!0),{right:a?o:0,bottom:r?o:0}},Eo.prototype.setScrollLeft=function(t){this.horiz.scrollLeft!=t&&(this.horiz.scrollLeft=t),this.disableHoriz&&this.enableZeroWidthBar(this.horiz,this.disableHoriz,"horiz")},Eo.prototype.setScrollTop=function(t){this.vert.scrollTop!=t&&(this.vert.scrollTop=t),this.disableVert&&this.enableZeroWidthBar(this.vert,this.disableVert,"vert")},Eo.prototype.zeroWidthHack=function(){var t=Y&&!ve?"12px":"18px";this.horiz.style.height=this.vert.style.width=t,this.horiz.style.pointerEvents=this.vert.style.pointerEvents="none",this.disableHoriz=new Ce,this.disableVert=new Ce},Eo.prototype.enableZeroWidthBar=function(t,r,a){t.style.pointerEvents="auto";function o(){var l=t.getBoundingClientRect(),f=a=="vert"?document.elementFromPoint(l.right-1,(l.top+l.bottom)/2):document.elementFromPoint((l.right+l.left)/2,l.bottom-1);f!=t?t.style.pointerEvents="none":r.set(1e3,o)}r.set(1e3,o)},Eo.prototype.clear=function(){var t=this.horiz.parentNode;t.removeChild(this.horiz),t.removeChild(this.vert)};var lu=function(){};lu.prototype.update=function(){return{bottom:0,right:0}},lu.prototype.setScrollLeft=function(){},lu.prototype.setScrollTop=function(){},lu.prototype.clear=function(){};function ua(t,r){r||(r=uu(t));var a=t.display.barWidth,o=t.display.barHeight;Nv(t,r);for(var l=0;l<4&&a!=t.display.barWidth||o!=t.display.barHeight;l++)a!=t.display.barWidth&&t.options.lineWrapping&&Pl(t),Nv(t,uu(t)),a=t.display.barWidth,o=t.display.barHeight}function Nv(t,r){var a=t.display,o=a.scrollbars.update(r);a.sizer.style.paddingRight=(a.barWidth=o.right)+"px",a.sizer.style.paddingBottom=(a.barHeight=o.bottom)+"px",a.heightForcer.style.borderBottom=o.bottom+"px solid transparent",o.right&&o.bottom?(a.scrollbarFiller.style.display="block",a.scrollbarFiller.style.height=o.bottom+"px",a.scrollbarFiller.style.width=o.right+"px"):a.scrollbarFiller.style.display="",o.bottom&&t.options.coverGutterNextToScrollbar&&t.options.fixedGutter?(a.gutterFiller.style.display="block",a.gutterFiller.style.height=o.bottom+"px",a.gutterFiller.style.width=r.gutterWidth+"px"):a.gutterFiller.style.display=""}var Pv={native:Eo,null:lu};function Lv(t){t.display.scrollbars&&(t.display.scrollbars.clear(),t.display.scrollbars.addClass&&x(t.display.wrapper,t.display.scrollbars.addClass)),t.display.scrollbars=new Pv[t.options.scrollbarStyle](function(r){t.display.wrapper.insertBefore(r,t.display.scrollbarFiller),M(r,"mousedown",function(){t.state.focused&&setTimeout(function(){return t.display.input.focus()},0)}),r.setAttribute("cm-not-content","true")},function(r,a){a=="horizontal"?Mo(t,r):au(t,r)},t),t.display.scrollbars.addClass&&Le(t.display.wrapper,t.display.scrollbars.addClass)}var R_=0;function No(t){t.curOp={cm:t,viewChanged:!1,startHeight:t.doc.height,forceUpdate:!1,updateInput:0,typing:!1,changeObjs:null,cursorActivityHandlers:null,cursorActivityCalled:0,selectionChanged:!1,updateMaxLine:!1,scrollLeft:null,scrollTop:null,scrollToPos:null,focus:!1,id:++R_,markArrays:null},d_(t.curOp)}function Po(t){var r=t.curOp;r&&v_(r,function(a){for(var o=0;o=a.viewTo)||a.maxLineChanged&&r.options.lineWrapping,t.update=t.mustUpdate&&new Dl(r,t.mustUpdate&&{top:t.scrollTop,ensure:t.scrollToPos},t.forceUpdate)}function H_(t){t.updatedDisplay=t.mustUpdate&&xc(t.cm,t.update)}function W_(t){var r=t.cm,a=r.display;t.updatedDisplay&&Pl(r),t.barMeasure=uu(r),a.maxLineChanged&&!r.options.lineWrapping&&(t.adjustWidthTo=cv(r,a.maxLine,a.maxLine.text.length).left+3,r.display.sizerWidth=t.adjustWidthTo,t.barMeasure.scrollWidth=Math.max(a.scroller.clientWidth,a.sizer.offsetLeft+t.adjustWidthTo+fi(r)+r.display.barWidth),t.maxScrollLeft=Math.max(0,a.sizer.offsetLeft+t.adjustWidthTo-To(r))),(t.updatedDisplay||t.selectionChanged)&&(t.preparedSelection=a.input.prepareSelection())}function U_(t){var r=t.cm;t.adjustWidthTo!=null&&(r.display.sizer.style.minWidth=t.adjustWidthTo+"px",t.maxScrollLeft=t.display.viewTo)){var a=+new Date+t.options.workTime,o=Qr(t,r.highlightFrontier),l=[];r.iter(o.line,Math.min(r.first+r.size,t.display.viewTo+500),function(f){if(o.line>=t.display.viewFrom){var p=f.styles,m=f.text.length>t.options.maxHighlightLength?Jt(r.mode,o.state):null,T=_i(t,f,o,!0);m&&(o.state=m),f.styles=T.styles;var C=f.styleClasses,X=T.classes;X?f.styleClasses=X:C&&(f.styleClasses=null);for(var Z=!p||p.length!=f.styles.length||C!=X&&(!C||!X||C.bgClass!=X.bgClass||C.textClass!=X.textClass),Te=0;!Z&&Tea)return su(t,t.options.workDelay),!0}),r.highlightFrontier=o.line,r.modeFrontier=Math.max(r.modeFrontier,o.line),l.length&&Cr(t,function(){for(var f=0;f=a.viewFrom&&r.visible.to<=a.viewTo&&(a.updateLineNumbers==null||a.updateLineNumbers>=a.viewTo)&&a.renderedView==a.view&&Tv(t)==0)return!1;Av(t)&&(Bi(t),r.dims=cc(t));var l=o.first+o.size,f=Math.max(r.visible.from-t.options.viewportMargin,o.first),p=Math.min(l,r.visible.to+t.options.viewportMargin);a.viewFromp&&a.viewTo-p<20&&(p=Math.min(l,a.viewTo)),rt&&(f=Wi(t.doc,f),p=xo(t.doc,p));var m=f!=a.viewFrom||p!=a.viewTo||a.lastWrapHeight!=r.wrapperHeight||a.lastWrapWidth!=r.wrapperWidth;P_(t,f,p),a.viewOffset=Rr(st(t.doc,a.viewFrom)),t.display.mover.style.top=a.viewOffset+"px";var T=Tv(t);if(!m&&T==0&&!r.force&&a.renderedView==a.view&&(a.updateLineNumbers==null||a.updateLineNumbers>=a.viewTo))return!1;var C=q_(t);return T>4&&(a.lineDiv.style.display="none"),$_(t,a.updateLineNumbers,r.dims),T>4&&(a.lineDiv.style.display=""),a.renderedView=a.view,G_(C),P(a.cursorDiv),P(a.selectionDiv),a.gutters.style.height=a.sizer.style.minHeight=0,m&&(a.lastWrapHeight=r.wrapperHeight,a.lastWrapWidth=r.wrapperWidth,su(t,400)),a.updateLineNumbers=null,!0}function Ov(t,r){for(var a=r.viewport,o=!0;;o=!1){if(!o||!t.options.lineWrapping||r.oldDisplayWidth==To(t)){if(a&&a.top!=null&&(a={top:Math.min(t.doc.height+ic(t.display)-oc(t),a.top)}),r.visible=Ll(t.display,t.doc,a),r.visible.from>=t.display.viewFrom&&r.visible.to<=t.display.viewTo)break}else o&&(r.visible=Ll(t.display,t.doc,a));if(!xc(t,r))break;Pl(t);var l=uu(t);iu(t),ua(t,l),Tc(t,l),r.force=!1}r.signal(t,"update",t),(t.display.viewFrom!=t.display.reportedViewFrom||t.display.viewTo!=t.display.reportedViewTo)&&(r.signal(t,"viewportChange",t,t.display.viewFrom,t.display.viewTo),t.display.reportedViewFrom=t.display.viewFrom,t.display.reportedViewTo=t.display.viewTo)}function _c(t,r){var a=new Dl(t,r);if(xc(t,a)){Pl(t),Ov(t,a);var o=uu(t);iu(t),ua(t,o),Tc(t,o),a.finish()}}function $_(t,r,a){var o=t.display,l=t.options.lineNumbers,f=o.lineDiv,p=f.firstChild;function m(Be){var Ve=Be.nextSibling;return k&&Y&&t.display.currentWheelTarget==Be?Be.style.display="none":Be.parentNode.removeChild(Be),Ve}for(var T=o.view,C=o.viewFrom,X=0;X-1&&(ye=!1),iv(t,Z,C,a)),ye&&(P(Z.lineNumber),Z.lineNumber.appendChild(document.createTextNode(qe(t.options,C)))),p=Z.node.nextSibling}C+=Z.size}for(;p;)p=m(p)}function kc(t){var r=t.gutters.offsetWidth;t.sizer.style.marginLeft=r+"px",Hn(t,"gutterChanged",t)}function Tc(t,r){t.display.sizer.style.minHeight=r.docHeight+"px",t.display.heightForcer.style.top=r.docHeight+"px",t.display.gutters.style.height=r.docHeight+t.display.barHeight+fi(t)+"px"}function Dv(t){var r=t.display,a=r.view;if(!(!r.alignWidgets&&(!r.gutters.firstChild||!t.options.fixedGutter))){for(var o=hc(r)-r.scroller.scrollLeft+t.doc.scrollLeft,l=r.gutters.offsetWidth,f=o+"px",p=0;pm.clientWidth,C=m.scrollHeight>m.clientHeight;if(!!(o&&T||l&&C)){if(l&&Y&&k){e:for(var X=r.target,Z=p.view;X!=m;X=X.parentNode)for(var Te=0;Te=0&&_(t,o.to())<=0)return a}return-1};var en=function(t,r){this.anchor=t,this.head=r};en.prototype.from=function(){return Ze(this.anchor,this.head)},en.prototype.to=function(){return Ne(this.anchor,this.head)},en.prototype.empty=function(){return this.head.line==this.anchor.line&&this.head.ch==this.anchor.ch};function ei(t,r,a){var o=t&&t.options.selectionsMayTouch,l=r[a];r.sort(function(Te,ye){return _(Te.from(),ye.from())}),a=me(r,l);for(var f=1;f0:T>=0){var C=Ze(m.from(),p.from()),X=Ne(m.to(),p.to()),Z=m.empty()?p.from()==p.head:m.from()==m.head;f<=a&&--a,r.splice(--f,2,new en(Z?X:C,Z?C:X))}}return new Fr(r,a)}function ji(t,r){return new Fr([new en(t,r||t)],0)}function Yi(t){return t.text?de(t.from.line+t.text.length-1,fe(t.text).length+(t.text.length==1?t.from.ch:0)):t.to}function zv(t,r){if(_(t,r.from)<0)return t;if(_(t,r.to)<=0)return Yi(r);var a=t.line+r.text.length-(r.to.line-r.from.line)-1,o=t.ch;return t.line==r.to.line&&(o+=Yi(r).ch-r.to.ch),de(a,o)}function bc(t,r){for(var a=[],o=0;o1&&t.remove(m.line+1,Be-1),t.insert(m.line+1,ut)}Hn(t,"change",t,r)}function qi(t,r,a){function o(l,f,p){if(l.linked)for(var m=0;m1&&!t.done[t.done.length-2].ranges)return t.done.pop(),fe(t.done)}function Yv(t,r,a,o){var l=t.history;l.undone.length=0;var f=+new Date,p,m;if((l.lastOp==o||l.lastOrigin==r.origin&&r.origin&&(r.origin.charAt(0)=="+"&&l.lastModTime>f-(t.cm?t.cm.options.historyEventDelay:500)||r.origin.charAt(0)=="*"))&&(p=Z_(l,l.lastOp==o)))m=fe(p.changes),_(r.from,r.to)==0&&_(r.from,m.to)==0?m.to=Yi(r):p.changes.push(Ec(t,r));else{var T=fe(l.done);for((!T||!T.ranges)&&Rl(t.sel,l.done),p={changes:[Ec(t,r)],generation:l.generation},l.done.push(p);l.done.length>l.undoDepth;)l.done.shift(),l.done[0].ranges||l.done.shift()}l.done.push(a),l.generation=++l.maxGeneration,l.lastModTime=l.lastSelTime=f,l.lastOp=l.lastSelOp=o,l.lastOrigin=l.lastSelOrigin=r.origin,m||ze(t,"historyAdded")}function J_(t,r,a,o){var l=r.charAt(0);return l=="*"||l=="+"&&a.ranges.length==o.ranges.length&&a.somethingSelected()==o.somethingSelected()&&new Date-t.history.lastSelTime<=(t.cm?t.cm.options.historyEventDelay:500)}function ek(t,r,a,o){var l=t.history,f=o&&o.origin;a==l.lastSelOp||f&&l.lastSelOrigin==f&&(l.lastModTime==l.lastSelTime&&l.lastOrigin==f||J_(t,f,fe(l.done),r))?l.done[l.done.length-1]=r:Rl(r,l.done),l.lastSelTime=+new Date,l.lastSelOrigin=f,l.lastSelOp=a,o&&o.clearRedo!==!1&&jv(l.undone)}function Rl(t,r){var a=fe(r);a&&a.ranges&&a.equals(t)||r.push(t)}function qv(t,r,a,o){var l=r["spans_"+t.id],f=0;t.iter(Math.max(t.first,a),Math.min(t.first+t.size,o),function(p){p.markedSpans&&((l||(l=r["spans_"+t.id]={}))[f]=p.markedSpans),++f})}function tk(t){if(!t)return null;for(var r,a=0;a-1&&(fe(m)[Z]=C[Z],delete C[Z])}}return o}function Nc(t,r,a,o){if(o){var l=t.anchor;if(a){var f=_(r,l)<0;f!=_(a,l)<0?(l=r,r=a):f!=_(r,a)<0&&(r=a)}return new en(l,r)}else return new en(a||r,r)}function Fl(t,r,a,o,l){l==null&&(l=t.cm&&(t.cm.display.shift||t.extend)),Jn(t,new Fr([Nc(t.sel.primary(),r,a,l)],0),o)}function $v(t,r,a){for(var o=[],l=t.cm&&(t.cm.display.shift||t.extend),f=0;f=r.ch:m.to>r.ch))){if(l&&(ze(T,"beforeCursorEnter"),T.explicitlyCleared))if(f.markedSpans){--p;continue}else break;if(!T.atomic)continue;if(a){var Z=T.find(o<0?1:-1),Te=void 0;if((o<0?X:C)&&(Z=Jv(t,Z,-o,Z&&Z.line==r.line?f:null)),Z&&Z.line==r.line&&(Te=_(Z,a))&&(o<0?Te<0:Te>0))return sa(t,Z,r,o,l)}var ye=T.find(o<0?-1:1);return(o<0?C:X)&&(ye=Jv(t,ye,o,ye.line==r.line?f:null)),ye?sa(t,ye,r,o,l):null}}return r}function Hl(t,r,a,o,l){var f=o||1,p=sa(t,r,a,f,l)||!l&&sa(t,r,a,f,!0)||sa(t,r,a,-f,l)||!l&&sa(t,r,a,-f,!0);return p||(t.cantEdit=!0,de(t.first,0))}function Jv(t,r,a,o){return a<0&&r.ch==0?r.line>t.first?Qe(t,de(r.line-1)):null:a>0&&r.ch==(o||st(t,r.line)).text.length?r.line=0;--l)ng(t,{from:o[l].from,to:o[l].to,text:l?[""]:r.text,origin:r.origin});else ng(t,r)}}function ng(t,r){if(!(r.text.length==1&&r.text[0]==""&&_(r.from,r.to)==0)){var a=bc(t,r);Yv(t,r,a,t.cm?t.cm.curOp.id:NaN),hu(t,r,a,mn(t,r));var o=[];qi(t,function(l,f){!f&&me(o,l.history)==-1&&(ag(l.history,r),o.push(l.history)),hu(l,r,null,mn(l,r))})}}function Wl(t,r,a){var o=t.cm&&t.cm.state.suppressEdits;if(!(o&&!a)){for(var l=t.history,f,p=t.sel,m=r=="undo"?l.done:l.undone,T=r=="undo"?l.undone:l.done,C=0;C=0;--ye){var Be=Te(ye);if(Be)return Be.v}}}}function rg(t,r){if(r!=0&&(t.first+=r,t.sel=new Fr(De(t.sel.ranges,function(l){return new en(de(l.anchor.line+r,l.anchor.ch),de(l.head.line+r,l.head.ch))}),t.sel.primIndex),t.cm)){hr(t.cm,t.first,t.first-r,r);for(var a=t.cm.display,o=a.viewFrom;ot.lastLine())){if(r.from.linef&&(r={from:r.from,to:de(f,st(t,f).text.length),text:[r.text[0]],origin:r.origin}),r.removed=Tt(t,r.from,r.to),a||(a=bc(t,r)),t.cm?ik(t.cm,r,o):Mc(t,r,o),zl(t,a,Je),t.cantEdit&&Hl(t,de(t.firstLine(),0))&&(t.cantEdit=!1)}}function ik(t,r,a){var o=t.doc,l=t.display,f=r.from,p=r.to,m=!1,T=f.line;t.options.lineWrapping||(T=St(Gn(st(o,f.line))),o.iter(T,p.line+1,function(ye){if(ye==l.maxLine)return m=!0,!0})),o.sel.contains(r.from,r.to)>-1&&ct(t),Mc(o,r,a,kv(t)),t.options.lineWrapping||(o.iter(T,f.line+r.text.length,function(ye){var Be=br(ye);Be>l.maxLineLength&&(l.maxLine=ye,l.maxLineLength=Be,l.maxLineChanged=!0,m=!1)}),m&&(t.curOp.updateMaxLine=!0)),Ge(o,f.line),su(t,400);var C=r.text.length-(p.line-f.line)-1;r.full?hr(t):f.line==p.line&&r.text.length==1&&!Wv(t.doc,r)?Ui(t,f.line,"text"):hr(t,f.line,p.line+1,C);var X=ht(t,"changes"),Z=ht(t,"change");if(Z||X){var Te={from:f,to:p,text:r.text,removed:r.removed,origin:r.origin};Z&&Hn(t,"change",t,Te),X&&(t.curOp.changeObjs||(t.curOp.changeObjs=[])).push(Te)}t.display.selForContextMenu=null}function ca(t,r,a,o,l){var f;o||(o=a),_(o,a)<0&&(f=[o,a],a=f[0],o=f[1]),typeof r=="string"&&(r=t.splitLines(r)),fa(t,{from:a,to:o,text:r,origin:l})}function ig(t,r,a,o){a1||!(this.children[0]instanceof pu))){var m=[];this.collapse(m),this.children=[new pu(m)],this.children[0].parent=this}},collapse:function(t){for(var r=0;r50){for(var p=l.lines.length%25+25,m=p;m10);t.parent.maybeSpill()}},iterN:function(t,r,a){for(var o=0;ot.display.maxLineLength&&(t.display.maxLine=C,t.display.maxLineLength=X,t.display.maxLineChanged=!0)}o!=null&&t&&this.collapsed&&hr(t,o,l+1),this.lines.length=0,this.explicitlyCleared=!0,this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,t&&Qv(t.doc)),t&&Hn(t,"markerCleared",t,this,o,l),r&&Po(t),this.parent&&this.parent.clear()}},Gi.prototype.find=function(t,r){t==null&&this.type=="bookmark"&&(t=1);for(var a,o,l=0;l0||p==0&&f.clearWhenEmpty!==!1)return f;if(f.replacedWith&&(f.collapsed=!0,f.widgetNode=y("span",[f.replacedWith],"CodeMirror-widget"),o.handleMouseEvents||f.widgetNode.setAttribute("cm-ignore-events","true"),o.insertLeft&&(f.widgetNode.insertLeft=!0)),f.collapsed){if(li(t,r.line,r,a,f)||r.line!=a.line&&li(t,a.line,r,a,f))throw new Error("Inserting collapsed marker partially overlapping an existing one");Pt()}f.addToHistory&&Yv(t,{from:r,to:a,origin:"markText"},t.sel,NaN);var m=r.line,T=t.cm,C;if(t.iter(m,a.line+1,function(Z){T&&f.collapsed&&!T.options.lineWrapping&&Gn(Z)==T.display.maxLine&&(C=!0),f.collapsed&&m!=r.line&&Xt(Z,0),Kt(Z,new qt(f,m==r.line?r.ch:null,m==a.line?a.ch:null),t.cm&&t.cm.curOp),++m}),f.collapsed&&t.iter(r.line,a.line+1,function(Z){Ir(t,Z)&&Xt(Z,0)}),f.clearOnEnter&&M(f,"beforeCursorEnter",function(){return f.clear()}),f.readOnly&&(mt(),(t.history.done.length||t.history.undone.length)&&t.clearHistory()),f.collapsed&&(f.id=++lg,f.atomic=!0),T){if(C&&(T.curOp.updateMaxLine=!0),f.collapsed)hr(T,r.line,a.line+1);else if(f.className||f.startStyle||f.endStyle||f.css||f.attributes||f.title)for(var X=r.line;X<=a.line;X++)Ui(T,X,"text");f.atomic&&Qv(T.doc),Hn(T,"markerAdded",T,f)}return f}var mu=function(t,r){this.markers=t,this.primary=r;for(var a=0;a=0;T--)fa(this,o[T]);m?Xv(this,m):this.cm&&aa(this.cm)}),undo:Un(function(){Wl(this,"undo")}),redo:Un(function(){Wl(this,"redo")}),undoSelection:Un(function(){Wl(this,"undo",!0)}),redoSelection:Un(function(){Wl(this,"redo",!0)}),setExtending:function(t){this.extend=t},getExtending:function(){return this.extend},historySize:function(){for(var t=this.history,r=0,a=0,o=0;o=t.ch)&&r.push(l.marker.parent||l.marker)}return r},findMarks:function(t,r,a){t=Qe(this,t),r=Qe(this,r);var o=[],l=t.line;return this.iter(t.line,r.line+1,function(f){var p=f.markedSpans;if(p)for(var m=0;m=T.to||T.from==null&&l!=t.line||T.from!=null&&l==r.line&&T.from>=r.ch)&&(!a||a(T.marker))&&o.push(T.marker.parent||T.marker)}++l}),o},getAllMarks:function(){var t=[];return this.iter(function(r){var a=r.markedSpans;if(a)for(var o=0;ot)return r=t,!0;t-=f,++a}),Qe(this,de(a,r))},indexFromPos:function(t){t=Qe(this,t);var r=t.ch;if(t.liner&&(r=t.from),t.to!=null&&t.to-1){r.state.draggingText(t),setTimeout(function(){return r.display.input.focus()},20);return}try{var X=t.dataTransfer.getData("Text");if(X){var Z;if(r.state.draggingText&&!r.state.draggingText.copy&&(Z=r.listSelections()),zl(r.doc,ji(a,a)),Z)for(var Te=0;Te=0;m--)ca(t.doc,"",o[m].from,o[m].to,"+delete");aa(t)})}function Lc(t,r,a){var o=pn(t.text,r+a,a);return o<0||o>t.text.length?null:o}function Oc(t,r,a){var o=Lc(t,r.ch,a);return o==null?null:new de(r.line,o,a<0?"after":"before")}function Dc(t,r,a,o,l){if(t){r.doc.direction=="rtl"&&(l=-l);var f=Xe(a,r.doc.direction);if(f){var p=l<0?fe(f):f[0],m=l<0==(p.level==1),T=m?"after":"before",C;if(p.level>0||r.doc.direction=="rtl"){var X=na(r,a);C=l<0?a.text.length-1:0;var Z=ci(r,X,C).top;C=$t(function(Te){return ci(r,X,Te).top==Z},l<0==(p.level==1)?p.from:p.to-1,C),T=="before"&&(C=Lc(a,C,1))}else C=l<0?p.to:p.from;return new de(o,C,T)}}return new de(o,l<0?a.text.length:0,l<0?"before":"after")}function yk(t,r,a,o){var l=Xe(r,t.doc.direction);if(!l)return Oc(r,a,o);a.ch>=r.text.length?(a.ch=r.text.length,a.sticky="before"):a.ch<=0&&(a.ch=0,a.sticky="after");var f=j(l,a.ch,a.sticky),p=l[f];if(t.doc.direction=="ltr"&&p.level%2==0&&(o>0?p.to>a.ch:p.from=p.from&&Te>=X.begin)){var ye=Z?"before":"after";return new de(a.line,Te,ye)}}var Be=function(ut,pt,lt){for(var gt=function(hn,Bn){return Bn?new de(a.line,m(hn,1),"before"):new de(a.line,hn,"after")};ut>=0&&ut0==(kt.level!=1),Ft=xt?lt.begin:m(lt.end,-1);if(kt.from<=Ft&&Ft0?X.end:m(X.begin,-1);return nt!=null&&!(o>0&&nt==r.text.length)&&(Ve=Be(o>0?0:l.length-1,o,C(nt)),Ve)?Ve:null}var xu={selectAll:eg,singleSelection:function(t){return t.setSelection(t.getCursor("anchor"),t.getCursor("head"),Je)},killLine:function(t){return pa(t,function(r){if(r.empty()){var a=st(t.doc,r.head.line).text.length;return r.head.ch==a&&r.head.line0)l=new de(l.line,l.ch+1),t.replaceRange(f.charAt(l.ch-1)+f.charAt(l.ch-2),de(l.line,l.ch-2),l,"+transpose");else if(l.line>t.doc.first){var p=st(t.doc,l.line-1).text;p&&(l=new de(l.line,1),t.replaceRange(f.charAt(0)+t.doc.lineSeparator()+p.charAt(p.length-1),de(l.line-1,p.length-1),l,"+transpose"))}}a.push(new en(l,l))}t.setSelections(a)})},newlineAndIndent:function(t){return Cr(t,function(){for(var r=t.listSelections(),a=r.length-1;a>=0;a--)t.replaceRange(t.doc.lineSeparator(),r[a].anchor,r[a].head,"+input");r=t.listSelections();for(var o=0;ot&&_(r,this.pos)==0&&a==this.button};var ku,Tu;function bk(t,r){var a=+new Date;return Tu&&Tu.compare(a,t,r)?(ku=Tu=null,"triple"):ku&&ku.compare(a,t,r)?(Tu=new Ic(a,t,r),ku=null,"double"):(ku=new Ic(a,t,r),Tu=null,"single")}function Sg(t){var r=this,a=r.display;if(!(tt(r,t)||a.activeTouch&&a.input.supportsTouch())){if(a.input.ensurePolled(),a.shift=t.shiftKey,Si(a,t)){k||(a.scroller.draggable=!1,setTimeout(function(){return a.scroller.draggable=!0},100));return}if(!Rc(r,t)){var o=bo(r,t),l=gn(t),f=o?bk(o,l):"single";window.focus(),l==1&&r.state.selectingText&&r.state.selectingText(t),!(o&&Ck(r,l,o,f,t))&&(l==1?o?Ek(r,o,f,t):nn(t)==a.scroller&&bt(t):l==2?(o&&Fl(r.doc,o),setTimeout(function(){return a.input.focus()},20)):l==3&&(c?r.display.input.onContextMenu(t):gc(r)))}}}function Ck(t,r,a,o,l){var f="Click";return o=="double"?f="Double"+f:o=="triple"&&(f="Triple"+f),f=(r==1?"Left":r==2?"Middle":"Right")+f,_u(t,vg(f,l),l,function(p){if(typeof p=="string"&&(p=xu[p]),!p)return!1;var m=!1;try{t.isReadOnly()&&(t.state.suppressEdits=!0),m=p(t,a)!=He}finally{t.state.suppressEdits=!1}return m})}function Mk(t,r,a){var o=t.getOption("configureMouse"),l=o?o(t,r,a):{};if(l.unit==null){var f=le?a.shiftKey&&a.metaKey:a.altKey;l.unit=f?"rectangle":r=="single"?"char":r=="double"?"word":"line"}return(l.extend==null||t.doc.extend)&&(l.extend=t.doc.extend||a.shiftKey),l.addNew==null&&(l.addNew=Y?a.metaKey:a.ctrlKey),l.moveOnDrag==null&&(l.moveOnDrag=!(Y?a.altKey:a.ctrlKey)),l}function Ek(t,r,a,o){d?setTimeout(We(bv,t),0):t.curOp.focus=oe();var l=Mk(t,a,o),f=t.doc.sel,p;t.options.dragDrop&&K&&!t.isReadOnly()&&a=="single"&&(p=f.contains(r))>-1&&(_((p=f.ranges[p]).from(),r)<0||r.xRel>0)&&(_(p.to(),r)>0||r.xRel<0)?Nk(t,o,r,l):Pk(t,o,r,l)}function Nk(t,r,a,o){var l=t.display,f=!1,p=Wn(t,function(C){k&&(l.scroller.draggable=!1),t.state.draggingText=!1,t.state.delayingBlurEvent&&(t.hasFocus()?t.state.delayingBlurEvent=!1:gc(t)),Se(l.wrapper.ownerDocument,"mouseup",p),Se(l.wrapper.ownerDocument,"mousemove",m),Se(l.scroller,"dragstart",T),Se(l.scroller,"drop",p),f||(bt(C),o.addNew||Fl(t.doc,a,null,null,o.extend),k&&!ie||d&&v==9?setTimeout(function(){l.wrapper.ownerDocument.body.focus({preventScroll:!0}),l.input.focus()},20):l.input.focus())}),m=function(C){f=f||Math.abs(r.clientX-C.clientX)+Math.abs(r.clientY-C.clientY)>=10},T=function(){return f=!0};k&&(l.scroller.draggable=!0),t.state.draggingText=p,p.copy=!o.moveOnDrag,M(l.wrapper.ownerDocument,"mouseup",p),M(l.wrapper.ownerDocument,"mousemove",m),M(l.scroller,"dragstart",T),M(l.scroller,"drop",p),t.state.delayingBlurEvent=!0,setTimeout(function(){return l.input.focus()},20),l.scroller.dragDrop&&l.scroller.dragDrop()}function bg(t,r,a){if(a=="char")return new en(r,r);if(a=="word")return t.findWordAt(r);if(a=="line")return new en(de(r.line,0),Qe(t.doc,de(r.line+1,0)));var o=a(t,r);return new en(o.from,o.to)}function Pk(t,r,a,o){d&&gc(t);var l=t.display,f=t.doc;bt(r);var p,m,T=f.sel,C=T.ranges;if(o.addNew&&!o.extend?(m=f.sel.contains(a),m>-1?p=C[m]:p=new en(a,a)):(p=f.sel.primary(),m=f.sel.primIndex),o.unit=="rectangle")o.addNew||(p=new en(a,a)),a=bo(t,r,!0,!0),m=-1;else{var X=bg(t,a,o.unit);o.extend?p=Nc(p,X.anchor,X.head,o.extend):p=X}o.addNew?m==-1?(m=C.length,Jn(f,ei(t,C.concat([p]),m),{scroll:!1,origin:"*mouse"})):C.length>1&&C[m].empty()&&o.unit=="char"&&!o.extend?(Jn(f,ei(t,C.slice(0,m).concat(C.slice(m+1)),0),{scroll:!1,origin:"*mouse"}),T=f.sel):Pc(f,m,p,te):(m=0,Jn(f,new Fr([p],0),te),T=f.sel);var Z=a;function Te(lt){if(_(Z,lt)!=0)if(Z=lt,o.unit=="rectangle"){for(var gt=[],kt=t.options.tabSize,xt=ke(st(f,a.line).text,a.ch,kt),Ft=ke(st(f,lt.line).text,lt.ch,kt),hn=Math.min(xt,Ft),Bn=Math.max(xt,Ft),yn=Math.min(a.line,lt.line),Mr=Math.min(t.lastLine(),Math.max(a.line,lt.line));yn<=Mr;yn++){var pr=st(f,yn).text,Ln=Oe(pr,hn,kt);hn==Bn?gt.push(new en(de(yn,Ln),de(yn,Ln))):pr.length>Ln&>.push(new en(de(yn,Ln),de(yn,Oe(pr,Bn,kt))))}gt.length||gt.push(new en(a,a)),Jn(f,ei(t,T.ranges.slice(0,m).concat(gt),m),{origin:"*mouse",scroll:!1}),t.scrollIntoView(lt)}else{var vr=p,$n=bg(t,lt,o.unit),Fn=vr.anchor,On;_($n.anchor,Fn)>0?(On=$n.head,Fn=Ze(vr.from(),$n.anchor)):(On=$n.anchor,Fn=Ne(vr.to(),$n.head));var Tn=T.ranges.slice(0);Tn[m]=Lk(t,new en(Qe(f,Fn),On)),Jn(f,ei(t,Tn,m),te)}}var ye=l.wrapper.getBoundingClientRect(),Be=0;function Ve(lt){var gt=++Be,kt=bo(t,lt,!0,o.unit=="rectangle");if(!!kt)if(_(kt,Z)!=0){t.curOp.focus=oe(),Te(kt);var xt=Ll(l,f);(kt.line>=xt.to||kt.lineye.bottom?20:0;Ft&&setTimeout(Wn(t,function(){Be==gt&&(l.scroller.scrollTop+=Ft,Ve(lt))}),50)}}function nt(lt){t.state.selectingText=!1,Be=1/0,lt&&(bt(lt),l.input.focus()),Se(l.wrapper.ownerDocument,"mousemove",ut),Se(l.wrapper.ownerDocument,"mouseup",pt),f.history.lastSelOrigin=null}var ut=Wn(t,function(lt){lt.buttons===0||!gn(lt)?nt(lt):Ve(lt)}),pt=Wn(t,nt);t.state.selectingText=pt,M(l.wrapper.ownerDocument,"mousemove",ut),M(l.wrapper.ownerDocument,"mouseup",pt)}function Lk(t,r){var a=r.anchor,o=r.head,l=st(t.doc,a.line);if(_(a,o)==0&&a.sticky==o.sticky)return r;var f=Xe(l);if(!f)return r;var p=j(f,a.ch,a.sticky),m=f[p];if(m.from!=a.ch&&m.to!=a.ch)return r;var T=p+(m.from==a.ch==(m.level!=1)?0:1);if(T==0||T==f.length)return r;var C;if(o.line!=a.line)C=(o.line-a.line)*(t.doc.direction=="ltr"?1:-1)>0;else{var X=j(f,o.ch,o.sticky),Z=X-p||(o.ch-a.ch)*(m.level==1?-1:1);X==T-1||X==T?C=Z<0:C=Z>0}var Te=f[T+(C?-1:0)],ye=C==(Te.level==1),Be=ye?Te.from:Te.to,Ve=ye?"after":"before";return a.ch==Be&&a.sticky==Ve?r:new en(new de(a.line,Be,Ve),o)}function Cg(t,r,a,o){var l,f;if(r.touches)l=r.touches[0].clientX,f=r.touches[0].clientY;else try{l=r.clientX,f=r.clientY}catch{return!1}if(l>=Math.floor(t.display.gutters.getBoundingClientRect().right))return!1;o&&bt(r);var p=t.display,m=p.lineDiv.getBoundingClientRect();if(f>m.bottom||!ht(t,a))return Wt(r);f-=m.top-p.viewOffset;for(var T=0;T=l){var X=G(t.doc,f),Z=t.display.gutterSpecs[T];return ze(t,a,t,X,Z.className,r),Wt(r)}}}function Rc(t,r){return Cg(t,r,"gutterClick",!0)}function Mg(t,r){Si(t.display,r)||Ok(t,r)||tt(t,r,"contextmenu")||c||t.display.input.onContextMenu(r)}function Ok(t,r){return ht(t,"gutterContextMenu")?Cg(t,r,"gutterContextMenu",!1):!1}function Eg(t){t.display.wrapper.className=t.display.wrapper.className.replace(/\s*cm-s-\S+/g,"")+t.options.theme.replace(/(^|\s)\s*/g," cm-s-"),ru(t)}var va={toString:function(){return"CodeMirror.Init"}},Ng={},Yl={};function Dk(t){var r=t.optionHandlers;function a(o,l,f,p){t.defaults[o]=l,f&&(r[o]=p?function(m,T,C){C!=va&&f(m,T,C)}:f)}t.defineOption=a,t.Init=va,a("value","",function(o,l){return o.setValue(l)},!0),a("mode",null,function(o,l){o.doc.modeOption=l,Cc(o)},!0),a("indentUnit",2,Cc,!0),a("indentWithTabs",!1),a("smartIndent",!0),a("tabSize",4,function(o){cu(o),ru(o),hr(o)},!0),a("lineSeparator",null,function(o,l){if(o.doc.lineSep=l,!!l){var f=[],p=o.doc.first;o.doc.iter(function(T){for(var C=0;;){var X=T.text.indexOf(l,C);if(X==-1)break;C=X+l.length,f.push(de(p,X))}p++});for(var m=f.length-1;m>=0;m--)ca(o.doc,l,f[m],de(f[m].line,f[m].ch+l.length))}}),a("specialChars",/[\u0000-\u001f\u007f-\u009f\u00ad\u061c\u200b\u200e\u200f\u2028\u2029\ufeff\ufff9-\ufffc]/g,function(o,l,f){o.state.specialChars=new RegExp(l.source+(l.test(" ")?"":"| "),"g"),f!=va&&o.refresh()}),a("specialCharPlaceholder",l_,function(o){return o.refresh()},!0),a("electricChars",!0),a("inputStyle",I?"contenteditable":"textarea",function(){throw new Error("inputStyle can not (yet) be changed in a running editor")},!0),a("spellcheck",!1,function(o,l){return o.getInputField().spellcheck=l},!0),a("autocorrect",!1,function(o,l){return o.getInputField().autocorrect=l},!0),a("autocapitalize",!1,function(o,l){return o.getInputField().autocapitalize=l},!0),a("rtlMoveVisually",!pe),a("wholeLineUpdateBefore",!0),a("theme","default",function(o){Eg(o),fu(o)},!0),a("keyMap","default",function(o,l,f){var p=Bl(l),m=f!=va&&Bl(f);m&&m.detach&&m.detach(o,p),p.attach&&p.attach(o,m||null)}),a("extraKeys",null),a("configureMouse",null),a("lineWrapping",!1,Ik,!0),a("gutters",[],function(o,l){o.display.gutterSpecs=Sc(l,o.options.lineNumbers),fu(o)},!0),a("fixedGutter",!0,function(o,l){o.display.gutters.style.left=l?hc(o.display)+"px":"0",o.refresh()},!0),a("coverGutterNextToScrollbar",!1,function(o){return ua(o)},!0),a("scrollbarStyle","native",function(o){Lv(o),ua(o),o.display.scrollbars.setScrollTop(o.doc.scrollTop),o.display.scrollbars.setScrollLeft(o.doc.scrollLeft)},!0),a("lineNumbers",!1,function(o,l){o.display.gutterSpecs=Sc(o.options.gutters,l),fu(o)},!0),a("firstLineNumber",1,fu,!0),a("lineNumberFormatter",function(o){return o},fu,!0),a("showCursorWhenSelecting",!1,iu,!0),a("resetSelectionOnContextMenu",!0),a("lineWiseCopyCut",!0),a("pasteLinesPerSelection",!0),a("selectionsMayTouch",!1),a("readOnly",!1,function(o,l){l=="nocursor"&&(oa(o),o.display.input.blur()),o.display.input.readOnlyChanged(l)}),a("screenReaderLabel",null,function(o,l){l=l===""?null:l,o.display.input.screenReaderLabelChanged(l)}),a("disableInput",!1,function(o,l){l||o.display.input.reset()},!0),a("dragDrop",!0,Ak),a("allowDropFileTypes",null),a("cursorBlinkRate",530),a("cursorScrollMargin",0),a("cursorHeight",1,iu,!0),a("singleCursorHeightPerLine",!0,iu,!0),a("workTime",100),a("workDelay",100),a("flattenSpans",!0,cu,!0),a("addModeClass",!1,cu,!0),a("pollInterval",100),a("undoDepth",200,function(o,l){return o.doc.history.undoDepth=l}),a("historyEventDelay",1250),a("viewportMargin",10,function(o){return o.refresh()},!0),a("maxHighlightLength",1e4,cu,!0),a("moveInputWithCursor",!0,function(o,l){l||o.display.input.resetPosition()}),a("tabindex",null,function(o,l){return o.display.input.getField().tabIndex=l||""}),a("autofocus",null),a("direction","ltr",function(o,l){return o.doc.setDirection(l)},!0),a("phrases",null)}function Ak(t,r,a){var o=a&&a!=va;if(!r!=!o){var l=t.display.dragFunctions,f=r?M:Se;f(t.display.scroller,"dragstart",l.start),f(t.display.scroller,"dragenter",l.enter),f(t.display.scroller,"dragover",l.over),f(t.display.scroller,"dragleave",l.leave),f(t.display.scroller,"drop",l.drop)}}function Ik(t){t.options.lineWrapping?(Le(t.display.wrapper,"CodeMirror-wrap"),t.display.sizer.style.minWidth="",t.display.sizerWidth=null):(x(t.display.wrapper,"CodeMirror-wrap"),ko(t)),dc(t),hr(t),ru(t),setTimeout(function(){return ua(t)},100)}function vn(t,r){var a=this;if(!(this instanceof vn))return new vn(t,r);this.options=r=r?ce(r):{},ce(Ng,r,!1);var o=r.value;typeof o=="string"?o=new dr(o,r.mode,null,r.lineSeparator,r.direction):r.mode&&(o.modeOption=r.mode),this.doc=o;var l=new vn.inputStyles[r.inputStyle](this),f=this.display=new V_(t,o,l,r);f.wrapper.CodeMirror=this,Eg(this),r.lineWrapping&&(this.display.wrapper.className+=" CodeMirror-wrap"),Lv(this),this.state={keyMaps:[],overlays:[],modeGen:0,overwrite:!1,delayingBlurEvent:!1,focused:!1,suppressEdits:!1,pasteIncoming:-1,cutIncoming:-1,selectingText:!1,draggingText:!1,highlight:new Ce,keySeq:null,specialChars:null},r.autofocus&&!I&&f.input.focus(),d&&v<11&&setTimeout(function(){return a.display.input.reset(!0)},20),Rk(this),dk(),No(this),this.curOp.forceUpdate=!0,Uv(this,o),r.autofocus&&!I||this.hasFocus()?setTimeout(function(){a.hasFocus()&&!a.state.focused&&mc(a)},20):oa(this);for(var p in Yl)Yl.hasOwnProperty(p)&&Yl[p](this,r[p],va);Av(this),r.finishInit&&r.finishInit(this);for(var m=0;m20*20}M(r.scroller,"touchstart",function(T){if(!tt(t,T)&&!f(T)&&!Rc(t,T)){r.input.ensurePolled(),clearTimeout(a);var C=+new Date;r.activeTouch={start:C,moved:!1,prev:C-o.end<=300?o:null},T.touches.length==1&&(r.activeTouch.left=T.touches[0].pageX,r.activeTouch.top=T.touches[0].pageY)}}),M(r.scroller,"touchmove",function(){r.activeTouch&&(r.activeTouch.moved=!0)}),M(r.scroller,"touchend",function(T){var C=r.activeTouch;if(C&&!Si(r,T)&&C.left!=null&&!C.moved&&new Date-C.start<300){var X=t.coordsChar(r.activeTouch,"page"),Z;!C.prev||p(C,C.prev)?Z=new en(X,X):!C.prev.prev||p(C,C.prev.prev)?Z=t.findWordAt(X):Z=new en(de(X.line,0),Qe(t.doc,de(X.line+1,0))),t.setSelection(Z.anchor,Z.head),t.focus(),bt(T)}l()}),M(r.scroller,"touchcancel",l),M(r.scroller,"scroll",function(){r.scroller.clientHeight&&(au(t,r.scroller.scrollTop),Mo(t,r.scroller.scrollLeft,!0),ze(t,"scroll",t))}),M(r.scroller,"mousewheel",function(T){return Fv(t,T)}),M(r.scroller,"DOMMouseScroll",function(T){return Fv(t,T)}),M(r.wrapper,"scroll",function(){return r.wrapper.scrollTop=r.wrapper.scrollLeft=0}),r.dragFunctions={enter:function(T){tt(t,T)||ln(T)},over:function(T){tt(t,T)||(hk(t,T),ln(T))},start:function(T){return ck(t,T)},drop:Wn(t,fk),leave:function(T){tt(t,T)||cg(t)}};var m=r.input.getField();M(m,"keyup",function(T){return kg.call(t,T)}),M(m,"keydown",Wn(t,_g)),M(m,"keypress",Wn(t,Tg)),M(m,"focus",function(T){return mc(t,T)}),M(m,"blur",function(T){return oa(t,T)})}var Fc=[];vn.defineInitHook=function(t){return Fc.push(t)};function Su(t,r,a,o){var l=t.doc,f;a==null&&(a="add"),a=="smart"&&(l.mode.indent?f=Qr(t,r).state:a="prev");var p=t.options.tabSize,m=st(l,r),T=ke(m.text,null,p);m.stateAfter&&(m.stateAfter=null);var C=m.text.match(/^\s*/)[0],X;if(!o&&!/\S/.test(m.text))X=0,a="not";else if(a=="smart"&&(X=l.mode.indent(f,m.text.slice(C.length),m.text),X==He||X>150)){if(!o)return;a="prev"}a=="prev"?r>l.first?X=ke(st(l,r-1).text,null,p):X=0:a=="add"?X=T+t.options.indentUnit:a=="subtract"?X=T-t.options.indentUnit:typeof a=="number"&&(X=T+a),X=Math.max(0,X);var Z="",Te=0;if(t.options.indentWithTabs)for(var ye=Math.floor(X/p);ye;--ye)Te+=p,Z+=" ";if(Tep,T=L(r),C=null;if(m&&o.ranges.length>1)if(ti&&ti.text.join(` `)==r){if(o.ranges.length%ti.text.length==0){C=[];for(var X=0;X=0;Te--){var ye=o.ranges[Te],Be=ye.from(),Ve=ye.to();ye.empty()&&(a&&a>0?Be=de(Be.line,Be.ch-a):t.state.overwrite&&!m?Ve=de(Ve.line,Math.min(st(f,Ve.line).text.length,Ve.ch+fe(T).length)):m&&ti&&ti.lineWise&&ti.text.join(` `)==T.join(` -`)&&(Be=Ve=de(Be.line,0)));var nt={from:Be,to:Ve,text:C?C[Te%C.length]:T,origin:l||(m?"paste":t.state.cutIncoming>p?"cut":"+input")};fa(t.doc,nt),Hn(t,"inputRead",t,nt)}r&&!m&&Pg(t,r),aa(t),t.curOp.updateInput<2&&(t.curOp.updateInput=Z),t.curOp.typing=!0,t.state.pasteIncoming=t.state.cutIncoming=-1}function Ng(t,r){var a=t.clipboardData&&t.clipboardData.getData("Text");if(a)return t.preventDefault(),!r.isReadOnly()&&!r.options.disableInput&&Cr(r,function(){return Fc(r,a,0,null,"paste")}),!0}function Pg(t,r){if(!(!t.options.electricChars||!t.options.smartIndent))for(var a=t.doc.sel,o=a.ranges.length-1;o>=0;o--){var l=a.ranges[o];if(!(l.head.ch>100||o&&a.ranges[o-1].head.line==l.head.line)){var f=t.getModeAt(l.head),p=!1;if(f.electricChars){for(var m=0;m-1){p=Su(t,l.head.line,"smart");break}}else f.electricInput&&f.electricInput.test(st(t.doc,l.head.line).text.slice(0,l.head.ch))&&(p=Su(t,l.head.line,"smart"));p&&Hn(t,"electricInput",t,l.head.line)}}}function Lg(t){for(var r=[],a=[],o=0;of&&(Su(this,m.head.line,o,!0),f=m.head.line,p==this.doc.sel.primIndex&&aa(this));else{var T=m.from(),C=m.to(),X=Math.max(f,T.line);f=Math.min(this.lastLine(),C.line-(C.ch?0:1))+1;for(var Z=X;Z0&&Nc(this.doc,p,new en(T,Te[p].to()),Je)}}}),getTokenAt:function(o,l){return Me(this,o,l)},getLineTokens:function(o,l){return Me(this,de(o),l,!0)},getTokenTypeAt:function(o){o=Qe(this.doc,o);var l=ki(this,st(this.doc,o.line)),f=0,p=(l.length-1)/2,m=o.ch,T;if(m==0)T=l[2];else for(;;){var C=f+p>>1;if((C?l[C*2-1]:0)>=m)p=C;else if(l[C*2+1]T&&(o=T,p=!0),m=st(this.doc,o)}else m=o;return Cl(this,m,{top:0,left:0},l||"page",f||p).top+(p?this.doc.height-Rr(m):0)},defaultTextHeight:function(){return ra(this.display)},defaultCharWidth:function(){return ia(this.display)},getViewport:function(){return{from:this.display.viewFrom,to:this.display.viewTo}},addWidget:function(o,l,f,p,m){var T=this.display;o=Jr(this,Qe(this.doc,o));var C=o.bottom,X=o.left;if(l.style.position="absolute",l.setAttribute("cm-ignore-events","true"),this.display.input.setUneditable(l),T.sizer.appendChild(l),p=="over")C=o.top;else if(p=="above"||p=="near"){var Z=Math.max(T.wrapper.clientHeight,this.doc.height),Te=Math.max(T.sizer.clientWidth,T.lineSpace.clientWidth);(p=="above"||o.bottom+l.offsetHeight>Z)&&o.top>l.offsetHeight?C=o.top-l.offsetHeight:o.bottom+l.offsetHeight<=Z&&(C=o.bottom),X+l.offsetWidth>Te&&(X=Te-l.offsetWidth)}l.style.top=C+"px",l.style.left=l.style.right="",m=="right"?(X=T.sizer.clientWidth-l.offsetWidth,l.style.right="0px"):(m=="left"?X=0:m=="middle"&&(X=(T.sizer.clientWidth-l.offsetWidth)/2),l.style.left=X+"px"),f&&O_(this,{left:X,top:C,right:X+l.offsetWidth,bottom:C+l.offsetHeight})},triggerOnKeyDown:rr(xg),triggerOnKeyPress:rr(kg),triggerOnKeyUp:_g,triggerOnMouseDown:rr(Tg),execCommand:function(o){if(xu.hasOwnProperty(o))return xu[o].call(null,this)},triggerElectric:rr(function(o){Pg(this,o)}),findPosH:function(o,l,f,p){var m=1;l<0&&(m=-1,l=-l);for(var T=Qe(this.doc,o),C=0;C0&&X(f.charAt(p-1));)--p;for(;m.5||this.options.lineWrapping)&&hc(this),ze(this,"refresh",this)}),swapDoc:rr(function(o){var l=this.doc;return l.cm=null,this.state.selectingText&&this.state.selectingText(),Wv(this,o),ru(this),this.display.input.reset(),ou(this,o.scrollLeft,o.scrollTop),this.curOp.forceScroll=!0,Hn(this,"swapDoc",this,l),l}),phrase:function(o){var l=this.options.phrases;return l&&Object.prototype.hasOwnProperty.call(l,o)?l[o]:o},getInputField:function(){return this.display.input.getField()},getWrapperElement:function(){return this.display.wrapper},getScrollerElement:function(){return this.display.scroller},getGutterElement:function(){return this.display.gutters}},wt(t),t.registerHelper=function(o,l,f){a.hasOwnProperty(o)||(a[o]=t[o]={_global:[]}),a[o][l]=f},t.registerGlobalHelper=function(o,l,f,p){t.registerHelper(o,l,p),a[o]._global.push({pred:f,val:p})}}function zc(t,r,a,o,l){var f=r,p=a,m=st(t,r.line),T=l&&t.direction=="rtl"?-a:a;function C(){var pt=r.line+T;return pt=t.first+t.size?!1:(r=new de(pt,r.ch,r.sticky),m=st(t,pt))}function X(pt){var lt;if(o=="codepoint"){var gt=m.text.charCodeAt(r.ch+(a>0?0:-1));if(isNaN(gt))lt=null;else{var kt=a>0?gt>=55296&><56320:gt>=56320&><57343;lt=new de(r.line,Math.max(0,Math.min(m.text.length,r.ch+a*(kt?2:1))),-a)}}else l?lt=gk(t.cm,m,r,a):lt=Lc(m,r,a);if(lt==null)if(!pt&&C())r=Oc(l,t.cm,m,r.line,T);else return!1;else r=lt;return!0}if(o=="char"||o=="codepoint")X();else if(o=="column")X(!0);else if(o=="word"||o=="group")for(var Z=null,Te=o=="group",ye=t.cm&&t.cm.getHelper(r,"wordChars"),Be=!0;!(a<0&&!X(!Be));Be=!1){var Ve=m.text.charAt(r.ch)||` +`)&&(Be=Ve=de(Be.line,0)));var nt={from:Be,to:Ve,text:C?C[Te%C.length]:T,origin:l||(m?"paste":t.state.cutIncoming>p?"cut":"+input")};fa(t.doc,nt),Hn(t,"inputRead",t,nt)}r&&!m&&Lg(t,r),aa(t),t.curOp.updateInput<2&&(t.curOp.updateInput=Z),t.curOp.typing=!0,t.state.pasteIncoming=t.state.cutIncoming=-1}function Pg(t,r){var a=t.clipboardData&&t.clipboardData.getData("Text");if(a)return t.preventDefault(),!r.isReadOnly()&&!r.options.disableInput&&Cr(r,function(){return zc(r,a,0,null,"paste")}),!0}function Lg(t,r){if(!(!t.options.electricChars||!t.options.smartIndent))for(var a=t.doc.sel,o=a.ranges.length-1;o>=0;o--){var l=a.ranges[o];if(!(l.head.ch>100||o&&a.ranges[o-1].head.line==l.head.line)){var f=t.getModeAt(l.head),p=!1;if(f.electricChars){for(var m=0;m-1){p=Su(t,l.head.line,"smart");break}}else f.electricInput&&f.electricInput.test(st(t.doc,l.head.line).text.slice(0,l.head.ch))&&(p=Su(t,l.head.line,"smart"));p&&Hn(t,"electricInput",t,l.head.line)}}}function Og(t){for(var r=[],a=[],o=0;of&&(Su(this,m.head.line,o,!0),f=m.head.line,p==this.doc.sel.primIndex&&aa(this));else{var T=m.from(),C=m.to(),X=Math.max(f,T.line);f=Math.min(this.lastLine(),C.line-(C.ch?0:1))+1;for(var Z=X;Z0&&Pc(this.doc,p,new en(T,Te[p].to()),Je)}}}),getTokenAt:function(o,l){return Me(this,o,l)},getLineTokens:function(o,l){return Me(this,de(o),l,!0)},getTokenTypeAt:function(o){o=Qe(this.doc,o);var l=ki(this,st(this.doc,o.line)),f=0,p=(l.length-1)/2,m=o.ch,T;if(m==0)T=l[2];else for(;;){var C=f+p>>1;if((C?l[C*2-1]:0)>=m)p=C;else if(l[C*2+1]T&&(o=T,p=!0),m=st(this.doc,o)}else m=o;return Cl(this,m,{top:0,left:0},l||"page",f||p).top+(p?this.doc.height-Rr(m):0)},defaultTextHeight:function(){return ra(this.display)},defaultCharWidth:function(){return ia(this.display)},getViewport:function(){return{from:this.display.viewFrom,to:this.display.viewTo}},addWidget:function(o,l,f,p,m){var T=this.display;o=Jr(this,Qe(this.doc,o));var C=o.bottom,X=o.left;if(l.style.position="absolute",l.setAttribute("cm-ignore-events","true"),this.display.input.setUneditable(l),T.sizer.appendChild(l),p=="over")C=o.top;else if(p=="above"||p=="near"){var Z=Math.max(T.wrapper.clientHeight,this.doc.height),Te=Math.max(T.sizer.clientWidth,T.lineSpace.clientWidth);(p=="above"||o.bottom+l.offsetHeight>Z)&&o.top>l.offsetHeight?C=o.top-l.offsetHeight:o.bottom+l.offsetHeight<=Z&&(C=o.bottom),X+l.offsetWidth>Te&&(X=Te-l.offsetWidth)}l.style.top=C+"px",l.style.left=l.style.right="",m=="right"?(X=T.sizer.clientWidth-l.offsetWidth,l.style.right="0px"):(m=="left"?X=0:m=="middle"&&(X=(T.sizer.clientWidth-l.offsetWidth)/2),l.style.left=X+"px"),f&&A_(this,{left:X,top:C,right:X+l.offsetWidth,bottom:C+l.offsetHeight})},triggerOnKeyDown:rr(_g),triggerOnKeyPress:rr(Tg),triggerOnKeyUp:kg,triggerOnMouseDown:rr(Sg),execCommand:function(o){if(xu.hasOwnProperty(o))return xu[o].call(null,this)},triggerElectric:rr(function(o){Lg(this,o)}),findPosH:function(o,l,f,p){var m=1;l<0&&(m=-1,l=-l);for(var T=Qe(this.doc,o),C=0;C0&&X(f.charAt(p-1));)--p;for(;m.5||this.options.lineWrapping)&&dc(this),ze(this,"refresh",this)}),swapDoc:rr(function(o){var l=this.doc;return l.cm=null,this.state.selectingText&&this.state.selectingText(),Uv(this,o),ru(this),this.display.input.reset(),ou(this,o.scrollLeft,o.scrollTop),this.curOp.forceScroll=!0,Hn(this,"swapDoc",this,l),l}),phrase:function(o){var l=this.options.phrases;return l&&Object.prototype.hasOwnProperty.call(l,o)?l[o]:o},getInputField:function(){return this.display.input.getField()},getWrapperElement:function(){return this.display.wrapper},getScrollerElement:function(){return this.display.scroller},getGutterElement:function(){return this.display.gutters}},wt(t),t.registerHelper=function(o,l,f){a.hasOwnProperty(o)||(a[o]=t[o]={_global:[]}),a[o][l]=f},t.registerGlobalHelper=function(o,l,f,p){t.registerHelper(o,l,p),a[o]._global.push({pred:f,val:p})}}function Hc(t,r,a,o,l){var f=r,p=a,m=st(t,r.line),T=l&&t.direction=="rtl"?-a:a;function C(){var pt=r.line+T;return pt=t.first+t.size?!1:(r=new de(pt,r.ch,r.sticky),m=st(t,pt))}function X(pt){var lt;if(o=="codepoint"){var gt=m.text.charCodeAt(r.ch+(a>0?0:-1));if(isNaN(gt))lt=null;else{var kt=a>0?gt>=55296&><56320:gt>=56320&><57343;lt=new de(r.line,Math.max(0,Math.min(m.text.length,r.ch+a*(kt?2:1))),-a)}}else l?lt=yk(t.cm,m,r,a):lt=Oc(m,r,a);if(lt==null)if(!pt&&C())r=Dc(l,t.cm,m,r.line,T);else return!1;else r=lt;return!0}if(o=="char"||o=="codepoint")X();else if(o=="column")X(!0);else if(o=="word"||o=="group")for(var Z=null,Te=o=="group",ye=t.cm&&t.cm.getHelper(r,"wordChars"),Be=!0;!(a<0&&!X(!Be));Be=!1){var Ve=m.text.charAt(r.ch)||` `,nt=Et(Ve,ye)?"w":Te&&Ve==` -`?"n":!Te||/\s/.test(Ve)?null:"p";if(Te&&!Be&&!nt&&(nt="s"),Z&&Z!=nt){a<0&&(a=1,X(),r.sticky="after");break}if(nt&&(Z=nt),a>0&&!X(!Be))break}var ut=Hl(t,r,f,p,!0);return H(f,ut)&&(ut.hitSide=!0),ut}function Ag(t,r,a,o){var l=t.doc,f=r.left,p;if(o=="page"){var m=Math.min(t.display.wrapper.clientHeight,window.innerHeight||document.documentElement.clientHeight),T=Math.max(m-.5*ra(t.display),3);p=(a>0?r.bottom:r.top)+a*T}else o=="line"&&(p=a>0?r.bottom+3:r.top-3);for(var C;C=lc(t,f,p),!!C.outside;){if(a<0?p<=0:p>=l.height){C.hitSide=!0;break}p+=a*5}return C}var an=function(t){this.cm=t,this.lastAnchorNode=this.lastAnchorOffset=this.lastFocusNode=this.lastFocusOffset=null,this.polling=new Ce,this.composing=null,this.gracePeriod=!1,this.readDOMTimeout=null};an.prototype.init=function(t){var r=this,a=this,o=a.cm,l=a.div=t.lineDiv;l.contentEditable=!0,Og(l,o.options.spellcheck,o.options.autocorrect,o.options.autocapitalize);function f(m){for(var T=m.target;T;T=T.parentNode){if(T==l)return!0;if(/\bCodeMirror-(?:line)?widget\b/.test(T.className))break}return!1}M(l,"paste",function(m){!f(m)||tt(o,m)||Ng(m,o)||v<=11&&setTimeout(Wn(o,function(){return r.updateFromDOM()}),20)}),M(l,"compositionstart",function(m){r.composing={data:m.data,done:!1}}),M(l,"compositionupdate",function(m){r.composing||(r.composing={data:m.data,done:!1})}),M(l,"compositionend",function(m){r.composing&&(m.data!=r.composing.data&&r.readFromDOMSoon(),r.composing.done=!0)}),M(l,"touchstart",function(){return a.forceCompositionEnd()}),M(l,"input",function(){r.composing||r.readFromDOMSoon()});function p(m){if(!(!f(m)||tt(o,m))){if(o.somethingSelected())ql({lineWise:!1,text:o.getSelections()}),m.type=="cut"&&o.replaceSelection("",null,"cut");else if(o.options.lineWiseCopyCut){var T=Lg(o);ql({lineWise:!0,text:T.text}),m.type=="cut"&&o.operation(function(){o.setSelections(T.ranges,0,Je),o.replaceSelection("",null,"cut")})}else return;if(m.clipboardData){m.clipboardData.clearData();var C=ti.text.join(` -`);if(m.clipboardData.setData("Text",C),m.clipboardData.getData("Text")==C){m.preventDefault();return}}var X=Dg(),Z=X.firstChild;o.display.lineSpace.insertBefore(X,o.display.lineSpace.firstChild),Z.value=ti.text.join(` -`);var Te=oe();re(Z),setTimeout(function(){o.display.lineSpace.removeChild(X),Te.focus(),Te==l&&a.showPrimarySelection()},50)}}M(l,"copy",p),M(l,"cut",p)},an.prototype.screenReaderLabelChanged=function(t){t?this.div.setAttribute("aria-label",t):this.div.removeAttribute("aria-label")},an.prototype.prepareSelection=function(){var t=Tv(this.cm,!1);return t.focus=oe()==this.div,t},an.prototype.showSelection=function(t,r){!t||!this.cm.display.view.length||((t.focus||r)&&this.showPrimarySelection(),this.showMultipleSelections(t))},an.prototype.getSelection=function(){return this.cm.display.wrapper.ownerDocument.getSelection()},an.prototype.showPrimarySelection=function(){var t=this.getSelection(),r=this.cm,a=r.doc.sel.primary(),o=a.from(),l=a.to();if(r.display.viewTo==r.display.viewFrom||o.line>=r.display.viewTo||l.line=r.display.viewFrom&&Ig(r,o)||{node:m[0].measure.map[2],offset:0},C=l.linet.firstLine()&&(o=de(o.line-1,st(t.doc,o.line-1).length)),l.ch==st(t.doc,l.line).text.length&&l.liner.viewTo-1)return!1;var f,p,m;o.line==r.viewFrom||(f=Co(t,o.line))==0?(p=St(r.view[0].line),m=r.view[0].node):(p=St(r.view[f].line),m=r.view[f-1].node.nextSibling);var T=Co(t,l.line),C,X;if(T==r.view.length-1?(C=r.viewTo-1,X=r.lineDiv.lastChild):(C=St(r.view[T+1].line)-1,X=r.view[T+1].node.previousSibling),!m)return!1;for(var Z=t.doc.splitLines(Fk(t,m,X,p,C)),Te=Tt(t.doc,de(p,0),de(C,st(t.doc,C).text.length));Z.length>1&&Te.length>1;)if(fe(Z)==fe(Te))Z.pop(),Te.pop(),C--;else if(Z[0]==Te[0])Z.shift(),Te.shift(),p++;else break;for(var ye=0,Be=0,Ve=Z[0],nt=Te[0],ut=Math.min(Ve.length,nt.length);yeo.ch&&pt.charCodeAt(pt.length-Be-1)==lt.charCodeAt(lt.length-Be-1);)ye--,Be++;Z[Z.length-1]=pt.slice(0,pt.length-Be).replace(/^\u200b+/,""),Z[0]=Z[0].slice(ye).replace(/\u200b+$/,"");var kt=de(p,ye),xt=de(C,Te.length?fe(Te).length-Be:0);if(Z.length>1||Z[0]||_(kt,xt))return ca(t.doc,Z,kt,xt,"+input"),!0},an.prototype.ensurePolled=function(){this.forceCompositionEnd()},an.prototype.reset=function(){this.forceCompositionEnd()},an.prototype.forceCompositionEnd=function(){!this.composing||(clearTimeout(this.readDOMTimeout),this.composing=null,this.updateFromDOM(),this.div.blur(),this.div.focus())},an.prototype.readFromDOMSoon=function(){var t=this;this.readDOMTimeout==null&&(this.readDOMTimeout=setTimeout(function(){if(t.readDOMTimeout=null,t.composing)if(t.composing.done)t.composing=null;else return;t.updateFromDOM()},80))},an.prototype.updateFromDOM=function(){var t=this;(this.cm.isReadOnly()||!this.pollContent())&&Cr(this.cm,function(){return hr(t.cm)})},an.prototype.setUneditable=function(t){t.contentEditable="false"},an.prototype.onKeyPress=function(t){t.charCode==0||this.composing||(t.preventDefault(),this.cm.isReadOnly()||Wn(this.cm,Fc)(this.cm,String.fromCharCode(t.charCode==null?t.keyCode:t.charCode),0))},an.prototype.readOnlyChanged=function(t){this.div.contentEditable=String(t!="nocursor")},an.prototype.onContextMenu=function(){},an.prototype.resetPosition=function(){},an.prototype.needsContentAttribute=!0;function Ig(t,r){var a=oc(t,r.line);if(!a||a.hidden)return null;var o=st(t.doc,r.line),l=sv(a,o,r.line),f=Xe(o,t.doc.direction),p="left";if(f){var m=j(f,r.ch);p=m%2?"right":"left"}var T=hv(l.map,r.ch,p);return T.offset=T.collapse=="right"?T.end:T.start,T}function Rk(t){for(var r=t;r;r=r.parentNode)if(/CodeMirror-gutter-wrapper/.test(r.className))return!0;return!1}function ga(t,r){return r&&(t.bad=!0),t}function Fk(t,r,a,o,l){var f="",p=!1,m=t.doc.lineSeparator(),T=!1;function C(ye){return function(Be){return Be.id==ye}}function X(){p&&(f+=m,T&&(f+=m),p=T=!1)}function Z(ye){ye&&(X(),f+=ye)}function Te(ye){if(ye.nodeType==1){var Be=ye.getAttribute("cm-text");if(Be){Z(Be);return}var Ve=ye.getAttribute("cm-marker"),nt;if(Ve){var ut=t.findMarks(de(o,0),de(l+1,0),C(+Ve));ut.length&&(nt=ut[0].find(0))&&Z(Tt(t.doc,nt.from,nt.to).join(m));return}if(ye.getAttribute("contenteditable")=="false")return;var pt=/^(pre|div|p|li|table|br)$/i.test(ye.nodeName);if(!/^br$/i.test(ye.nodeName)&&ye.textContent.length==0)return;pt&&X();for(var lt=0;lt=9&&r.hasSelection&&(r.hasSelection=null),a.poll()}),M(l,"paste",function(p){tt(o,p)||Ng(p,o)||(o.state.pasteIncoming=+new Date,a.fastPoll())});function f(p){if(!tt(o,p)){if(o.somethingSelected())ql({lineWise:!1,text:o.getSelections()});else if(o.options.lineWiseCopyCut){var m=Lg(o);ql({lineWise:!0,text:m.text}),p.type=="cut"?o.setSelections(m.ranges,null,Je):(a.prevInput="",l.value=m.text.join(` -`),re(l))}else return;p.type=="cut"&&(o.state.cutIncoming=+new Date)}}M(l,"cut",f),M(l,"copy",f),M(t.scroller,"paste",function(p){if(!(Si(t,p)||tt(o,p))){if(!l.dispatchEvent){o.state.pasteIncoming=+new Date,a.focus();return}var m=new Event("paste");m.clipboardData=p.clipboardData,l.dispatchEvent(m)}}),M(t.lineSpace,"selectstart",function(p){Si(t,p)||bt(p)}),M(l,"compositionstart",function(){var p=o.getCursor("from");a.composing&&a.composing.range.clear(),a.composing={start:p,range:o.markText(p,o.getCursor("to"),{className:"CodeMirror-composing"})}}),M(l,"compositionend",function(){a.composing&&(a.poll(),a.composing.range.clear(),a.composing=null)})},Cn.prototype.createField=function(t){this.wrapper=Dg(),this.textarea=this.wrapper.firstChild},Cn.prototype.screenReaderLabelChanged=function(t){t?this.textarea.setAttribute("aria-label",t):this.textarea.removeAttribute("aria-label")},Cn.prototype.prepareSelection=function(){var t=this.cm,r=t.display,a=t.doc,o=Tv(t);if(t.options.moveInputWithCursor){var l=Jr(t,a.sel.primary().head,"div"),f=r.wrapper.getBoundingClientRect(),p=r.lineDiv.getBoundingClientRect();o.teTop=Math.max(0,Math.min(r.wrapper.clientHeight-10,l.top+p.top-f.top)),o.teLeft=Math.max(0,Math.min(r.wrapper.clientWidth-10,l.left+p.left-f.left))}return o},Cn.prototype.showSelection=function(t){var r=this.cm,a=r.display;b(a.cursorDiv,t.cursors),b(a.selectionDiv,t.selection),t.teTop!=null&&(this.wrapper.style.top=t.teTop+"px",this.wrapper.style.left=t.teLeft+"px")},Cn.prototype.reset=function(t){if(!(this.contextMenuPending||this.composing)){var r=this.cm;if(r.somethingSelected()){this.prevInput="";var a=r.getSelection();this.textarea.value=a,r.state.focused&&re(this.textarea),d&&v>=9&&(this.hasSelection=a)}else t||(this.prevInput=this.textarea.value="",d&&v>=9&&(this.hasSelection=null))}},Cn.prototype.getField=function(){return this.textarea},Cn.prototype.supportsTouch=function(){return!1},Cn.prototype.focus=function(){if(this.cm.options.readOnly!="nocursor"&&(!I||oe()!=this.textarea))try{this.textarea.focus()}catch{}},Cn.prototype.blur=function(){this.textarea.blur()},Cn.prototype.resetPosition=function(){this.wrapper.style.top=this.wrapper.style.left=0},Cn.prototype.receivedFocus=function(){this.slowPoll()},Cn.prototype.slowPoll=function(){var t=this;this.pollingFast||this.polling.set(this.cm.options.pollInterval,function(){t.poll(),t.cm.state.focused&&t.slowPoll()})},Cn.prototype.fastPoll=function(){var t=!1,r=this;r.pollingFast=!0;function a(){var o=r.poll();!o&&!t?(t=!0,r.polling.set(60,a)):(r.pollingFast=!1,r.slowPoll())}r.polling.set(20,a)},Cn.prototype.poll=function(){var t=this,r=this.cm,a=this.textarea,o=this.prevInput;if(this.contextMenuPending||!r.state.focused||V(a)&&!o&&!this.composing||r.isReadOnly()||r.options.disableInput||r.state.keySeq)return!1;var l=a.value;if(l==o&&!r.somethingSelected())return!1;if(d&&v>=9&&this.hasSelection===l||Y&&/[\uf700-\uf7ff]/.test(l))return r.display.input.reset(),!1;if(r.doc.sel==r.display.selForContextMenu){var f=l.charCodeAt(0);if(f==8203&&!o&&(o="\u200B"),f==8666)return this.reset(),this.cm.execCommand("undo")}for(var p=0,m=Math.min(o.length,l.length);p1e3||l.indexOf(` +`?"n":!Te||/\s/.test(Ve)?null:"p";if(Te&&!Be&&!nt&&(nt="s"),Z&&Z!=nt){a<0&&(a=1,X(),r.sticky="after");break}if(nt&&(Z=nt),a>0&&!X(!Be))break}var ut=Hl(t,r,f,p,!0);return H(f,ut)&&(ut.hitSide=!0),ut}function Ig(t,r,a,o){var l=t.doc,f=r.left,p;if(o=="page"){var m=Math.min(t.display.wrapper.clientHeight,window.innerHeight||document.documentElement.clientHeight),T=Math.max(m-.5*ra(t.display),3);p=(a>0?r.bottom:r.top)+a*T}else o=="line"&&(p=a>0?r.bottom+3:r.top-3);for(var C;C=sc(t,f,p),!!C.outside;){if(a<0?p<=0:p>=l.height){C.hitSide=!0;break}p+=a*5}return C}var an=function(t){this.cm=t,this.lastAnchorNode=this.lastAnchorOffset=this.lastFocusNode=this.lastFocusOffset=null,this.polling=new Ce,this.composing=null,this.gracePeriod=!1,this.readDOMTimeout=null};an.prototype.init=function(t){var r=this,a=this,o=a.cm,l=a.div=t.lineDiv;l.contentEditable=!0,Dg(l,o.options.spellcheck,o.options.autocorrect,o.options.autocapitalize);function f(m){for(var T=m.target;T;T=T.parentNode){if(T==l)return!0;if(/\bCodeMirror-(?:line)?widget\b/.test(T.className))break}return!1}M(l,"paste",function(m){!f(m)||tt(o,m)||Pg(m,o)||v<=11&&setTimeout(Wn(o,function(){return r.updateFromDOM()}),20)}),M(l,"compositionstart",function(m){r.composing={data:m.data,done:!1}}),M(l,"compositionupdate",function(m){r.composing||(r.composing={data:m.data,done:!1})}),M(l,"compositionend",function(m){r.composing&&(m.data!=r.composing.data&&r.readFromDOMSoon(),r.composing.done=!0)}),M(l,"touchstart",function(){return a.forceCompositionEnd()}),M(l,"input",function(){r.composing||r.readFromDOMSoon()});function p(m){if(!(!f(m)||tt(o,m))){if(o.somethingSelected())ql({lineWise:!1,text:o.getSelections()}),m.type=="cut"&&o.replaceSelection("",null,"cut");else if(o.options.lineWiseCopyCut){var T=Og(o);ql({lineWise:!0,text:T.text}),m.type=="cut"&&o.operation(function(){o.setSelections(T.ranges,0,Je),o.replaceSelection("",null,"cut")})}else return;if(m.clipboardData){m.clipboardData.clearData();var C=ti.text.join(` +`);if(m.clipboardData.setData("Text",C),m.clipboardData.getData("Text")==C){m.preventDefault();return}}var X=Ag(),Z=X.firstChild;o.display.lineSpace.insertBefore(X,o.display.lineSpace.firstChild),Z.value=ti.text.join(` +`);var Te=oe();re(Z),setTimeout(function(){o.display.lineSpace.removeChild(X),Te.focus(),Te==l&&a.showPrimarySelection()},50)}}M(l,"copy",p),M(l,"cut",p)},an.prototype.screenReaderLabelChanged=function(t){t?this.div.setAttribute("aria-label",t):this.div.removeAttribute("aria-label")},an.prototype.prepareSelection=function(){var t=Sv(this.cm,!1);return t.focus=oe()==this.div,t},an.prototype.showSelection=function(t,r){!t||!this.cm.display.view.length||((t.focus||r)&&this.showPrimarySelection(),this.showMultipleSelections(t))},an.prototype.getSelection=function(){return this.cm.display.wrapper.ownerDocument.getSelection()},an.prototype.showPrimarySelection=function(){var t=this.getSelection(),r=this.cm,a=r.doc.sel.primary(),o=a.from(),l=a.to();if(r.display.viewTo==r.display.viewFrom||o.line>=r.display.viewTo||l.line=r.display.viewFrom&&Rg(r,o)||{node:m[0].measure.map[2],offset:0},C=l.linet.firstLine()&&(o=de(o.line-1,st(t.doc,o.line-1).length)),l.ch==st(t.doc,l.line).text.length&&l.liner.viewTo-1)return!1;var f,p,m;o.line==r.viewFrom||(f=Co(t,o.line))==0?(p=St(r.view[0].line),m=r.view[0].node):(p=St(r.view[f].line),m=r.view[f-1].node.nextSibling);var T=Co(t,l.line),C,X;if(T==r.view.length-1?(C=r.viewTo-1,X=r.lineDiv.lastChild):(C=St(r.view[T+1].line)-1,X=r.view[T+1].node.previousSibling),!m)return!1;for(var Z=t.doc.splitLines(Hk(t,m,X,p,C)),Te=Tt(t.doc,de(p,0),de(C,st(t.doc,C).text.length));Z.length>1&&Te.length>1;)if(fe(Z)==fe(Te))Z.pop(),Te.pop(),C--;else if(Z[0]==Te[0])Z.shift(),Te.shift(),p++;else break;for(var ye=0,Be=0,Ve=Z[0],nt=Te[0],ut=Math.min(Ve.length,nt.length);yeo.ch&&pt.charCodeAt(pt.length-Be-1)==lt.charCodeAt(lt.length-Be-1);)ye--,Be++;Z[Z.length-1]=pt.slice(0,pt.length-Be).replace(/^\u200b+/,""),Z[0]=Z[0].slice(ye).replace(/\u200b+$/,"");var kt=de(p,ye),xt=de(C,Te.length?fe(Te).length-Be:0);if(Z.length>1||Z[0]||_(kt,xt))return ca(t.doc,Z,kt,xt,"+input"),!0},an.prototype.ensurePolled=function(){this.forceCompositionEnd()},an.prototype.reset=function(){this.forceCompositionEnd()},an.prototype.forceCompositionEnd=function(){!this.composing||(clearTimeout(this.readDOMTimeout),this.composing=null,this.updateFromDOM(),this.div.blur(),this.div.focus())},an.prototype.readFromDOMSoon=function(){var t=this;this.readDOMTimeout==null&&(this.readDOMTimeout=setTimeout(function(){if(t.readDOMTimeout=null,t.composing)if(t.composing.done)t.composing=null;else return;t.updateFromDOM()},80))},an.prototype.updateFromDOM=function(){var t=this;(this.cm.isReadOnly()||!this.pollContent())&&Cr(this.cm,function(){return hr(t.cm)})},an.prototype.setUneditable=function(t){t.contentEditable="false"},an.prototype.onKeyPress=function(t){t.charCode==0||this.composing||(t.preventDefault(),this.cm.isReadOnly()||Wn(this.cm,zc)(this.cm,String.fromCharCode(t.charCode==null?t.keyCode:t.charCode),0))},an.prototype.readOnlyChanged=function(t){this.div.contentEditable=String(t!="nocursor")},an.prototype.onContextMenu=function(){},an.prototype.resetPosition=function(){},an.prototype.needsContentAttribute=!0;function Rg(t,r){var a=ac(t,r.line);if(!a||a.hidden)return null;var o=st(t.doc,r.line),l=fv(a,o,r.line),f=Xe(o,t.doc.direction),p="left";if(f){var m=j(f,r.ch);p=m%2?"right":"left"}var T=dv(l.map,r.ch,p);return T.offset=T.collapse=="right"?T.end:T.start,T}function zk(t){for(var r=t;r;r=r.parentNode)if(/CodeMirror-gutter-wrapper/.test(r.className))return!0;return!1}function ga(t,r){return r&&(t.bad=!0),t}function Hk(t,r,a,o,l){var f="",p=!1,m=t.doc.lineSeparator(),T=!1;function C(ye){return function(Be){return Be.id==ye}}function X(){p&&(f+=m,T&&(f+=m),p=T=!1)}function Z(ye){ye&&(X(),f+=ye)}function Te(ye){if(ye.nodeType==1){var Be=ye.getAttribute("cm-text");if(Be){Z(Be);return}var Ve=ye.getAttribute("cm-marker"),nt;if(Ve){var ut=t.findMarks(de(o,0),de(l+1,0),C(+Ve));ut.length&&(nt=ut[0].find(0))&&Z(Tt(t.doc,nt.from,nt.to).join(m));return}if(ye.getAttribute("contenteditable")=="false")return;var pt=/^(pre|div|p|li|table|br)$/i.test(ye.nodeName);if(!/^br$/i.test(ye.nodeName)&&ye.textContent.length==0)return;pt&&X();for(var lt=0;lt=9&&r.hasSelection&&(r.hasSelection=null),a.poll()}),M(l,"paste",function(p){tt(o,p)||Pg(p,o)||(o.state.pasteIncoming=+new Date,a.fastPoll())});function f(p){if(!tt(o,p)){if(o.somethingSelected())ql({lineWise:!1,text:o.getSelections()});else if(o.options.lineWiseCopyCut){var m=Og(o);ql({lineWise:!0,text:m.text}),p.type=="cut"?o.setSelections(m.ranges,null,Je):(a.prevInput="",l.value=m.text.join(` +`),re(l))}else return;p.type=="cut"&&(o.state.cutIncoming=+new Date)}}M(l,"cut",f),M(l,"copy",f),M(t.scroller,"paste",function(p){if(!(Si(t,p)||tt(o,p))){if(!l.dispatchEvent){o.state.pasteIncoming=+new Date,a.focus();return}var m=new Event("paste");m.clipboardData=p.clipboardData,l.dispatchEvent(m)}}),M(t.lineSpace,"selectstart",function(p){Si(t,p)||bt(p)}),M(l,"compositionstart",function(){var p=o.getCursor("from");a.composing&&a.composing.range.clear(),a.composing={start:p,range:o.markText(p,o.getCursor("to"),{className:"CodeMirror-composing"})}}),M(l,"compositionend",function(){a.composing&&(a.poll(),a.composing.range.clear(),a.composing=null)})},Cn.prototype.createField=function(t){this.wrapper=Ag(),this.textarea=this.wrapper.firstChild},Cn.prototype.screenReaderLabelChanged=function(t){t?this.textarea.setAttribute("aria-label",t):this.textarea.removeAttribute("aria-label")},Cn.prototype.prepareSelection=function(){var t=this.cm,r=t.display,a=t.doc,o=Sv(t);if(t.options.moveInputWithCursor){var l=Jr(t,a.sel.primary().head,"div"),f=r.wrapper.getBoundingClientRect(),p=r.lineDiv.getBoundingClientRect();o.teTop=Math.max(0,Math.min(r.wrapper.clientHeight-10,l.top+p.top-f.top)),o.teLeft=Math.max(0,Math.min(r.wrapper.clientWidth-10,l.left+p.left-f.left))}return o},Cn.prototype.showSelection=function(t){var r=this.cm,a=r.display;b(a.cursorDiv,t.cursors),b(a.selectionDiv,t.selection),t.teTop!=null&&(this.wrapper.style.top=t.teTop+"px",this.wrapper.style.left=t.teLeft+"px")},Cn.prototype.reset=function(t){if(!(this.contextMenuPending||this.composing)){var r=this.cm;if(r.somethingSelected()){this.prevInput="";var a=r.getSelection();this.textarea.value=a,r.state.focused&&re(this.textarea),d&&v>=9&&(this.hasSelection=a)}else t||(this.prevInput=this.textarea.value="",d&&v>=9&&(this.hasSelection=null))}},Cn.prototype.getField=function(){return this.textarea},Cn.prototype.supportsTouch=function(){return!1},Cn.prototype.focus=function(){if(this.cm.options.readOnly!="nocursor"&&(!I||oe()!=this.textarea))try{this.textarea.focus()}catch{}},Cn.prototype.blur=function(){this.textarea.blur()},Cn.prototype.resetPosition=function(){this.wrapper.style.top=this.wrapper.style.left=0},Cn.prototype.receivedFocus=function(){this.slowPoll()},Cn.prototype.slowPoll=function(){var t=this;this.pollingFast||this.polling.set(this.cm.options.pollInterval,function(){t.poll(),t.cm.state.focused&&t.slowPoll()})},Cn.prototype.fastPoll=function(){var t=!1,r=this;r.pollingFast=!0;function a(){var o=r.poll();!o&&!t?(t=!0,r.polling.set(60,a)):(r.pollingFast=!1,r.slowPoll())}r.polling.set(20,a)},Cn.prototype.poll=function(){var t=this,r=this.cm,a=this.textarea,o=this.prevInput;if(this.contextMenuPending||!r.state.focused||V(a)&&!o&&!this.composing||r.isReadOnly()||r.options.disableInput||r.state.keySeq)return!1;var l=a.value;if(l==o&&!r.somethingSelected())return!1;if(d&&v>=9&&this.hasSelection===l||Y&&/[\uf700-\uf7ff]/.test(l))return r.display.input.reset(),!1;if(r.doc.sel==r.display.selForContextMenu){var f=l.charCodeAt(0);if(f==8203&&!o&&(o="\u200B"),f==8666)return this.reset(),this.cm.execCommand("undo")}for(var p=0,m=Math.min(o.length,l.length);p1e3||l.indexOf(` `)>-1?a.value=t.prevInput="":t.prevInput=l,t.composing&&(t.composing.range.clear(),t.composing.range=r.markText(t.composing.start,r.getCursor("to"),{className:"CodeMirror-composing"}))}),!0},Cn.prototype.ensurePolled=function(){this.pollingFast&&this.poll()&&(this.pollingFast=!1)},Cn.prototype.onKeyPress=function(){d&&v>=9&&(this.hasSelection=null),this.fastPoll()},Cn.prototype.onContextMenu=function(t){var r=this,a=r.cm,o=a.display,l=r.textarea;r.contextMenuPending&&r.contextMenuPending();var f=bo(a,t),p=o.scroller.scrollTop;if(!f||O)return;var m=a.options.resetSelectionOnContextMenu;m&&a.doc.sel.contains(f)==-1&&Wn(a,Jn)(a.doc,ji(f),Je);var T=l.style.cssText,C=r.wrapper.style.cssText,X=r.wrapper.offsetParent.getBoundingClientRect();r.wrapper.style.cssText="position: static",l.style.cssText=`position: absolute; width: 30px; height: 30px; top: `+(t.clientY-X.top-5)+"px; left: "+(t.clientX-X.left-5)+`px; z-index: 1000; background: `+(d?"rgba(255, 255, 255, .05)":"transparent")+`; - outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);`;var Z;k&&(Z=window.scrollY),o.input.focus(),k&&window.scrollTo(null,Z),o.input.reset(),a.somethingSelected()||(l.value=r.prevInput=" "),r.contextMenuPending=ye,o.selForContextMenu=a.doc.sel,clearTimeout(o.detectingSelectAll);function Te(){if(l.selectionStart!=null){var Ve=a.somethingSelected(),nt="\u200B"+(Ve?l.value:"");l.value="\u21DA",l.value=nt,r.prevInput=Ve?"":"\u200B",l.selectionStart=1,l.selectionEnd=nt.length,o.selForContextMenu=a.doc.sel}}function ye(){if(r.contextMenuPending==ye&&(r.contextMenuPending=!1,r.wrapper.style.cssText=C,l.style.cssText=T,d&&v<9&&o.scrollbars.setScrollTop(o.scroller.scrollTop=p),l.selectionStart!=null)){(!d||d&&v<9)&&Te();var Ve=0,nt=function(){o.selForContextMenu==a.doc.sel&&l.selectionStart==0&&l.selectionEnd>0&&r.prevInput=="\u200B"?Wn(a,Jv)(a):Ve++<10?o.detectingSelectAll=setTimeout(nt,500):(o.selForContextMenu=null,o.input.reset())};o.detectingSelectAll=setTimeout(nt,200)}}if(d&&v>=9&&Te(),c){ln(t);var Be=function(){Se(window,"mouseup",Be),setTimeout(ye,20)};M(window,"mouseup",Be)}else setTimeout(ye,50)},Cn.prototype.readOnlyChanged=function(t){t||this.reset(),this.textarea.disabled=t=="nocursor",this.textarea.readOnly=!!t},Cn.prototype.setUneditable=function(){},Cn.prototype.needsContentAttribute=!1;function Hk(t,r){if(r=r?ce(r):{},r.value=t.value,!r.tabindex&&t.tabIndex&&(r.tabindex=t.tabIndex),!r.placeholder&&t.placeholder&&(r.placeholder=t.placeholder),r.autofocus==null){var a=oe();r.autofocus=a==t||t.getAttribute("autofocus")!=null&&a==document.body}function o(){t.value=m.getValue()}var l;if(t.form&&(M(t.form,"submit",o),!r.leaveSubmitMethodAlone)){var f=t.form;l=f.submit;try{var p=f.submit=function(){o(),f.submit=l,f.submit(),f.submit=p}}catch{}}r.finishInit=function(T){T.save=o,T.getTextArea=function(){return t},T.toTextArea=function(){T.toTextArea=isNaN,o(),t.parentNode.removeChild(T.getWrapperElement()),t.style.display="",t.form&&(Se(t.form,"submit",o),!r.leaveSubmitMethodAlone&&typeof t.form.submit=="function"&&(t.form.submit=l))}},t.style.display="none";var m=vn(function(T){return t.parentNode.insertBefore(T,t.nextSibling)},r);return m}function Wk(t){t.off=Se,t.on=M,t.wheelEventPixels=$_,t.Doc=dr,t.splitLines=L,t.countColumn=ke,t.findColumn=Oe,t.isWordChar=Lt,t.Pass=He,t.signal=ze,t.Line=si,t.changeEnd=Yi,t.scrollbarModel=Nv,t.Pos=de,t.cmpPos=_,t.modes=Ie,t.mimeModes=$e,t.resolveMode=vt,t.getMode=Ot,t.modeExtensions=Ct,t.extendMode=Nt,t.copyState=Jt,t.startState=bn,t.innerMode=An,t.commands=xu,t.keyMap=Ci,t.keyName=vg,t.isModifierKey=dg,t.lookupKey=da,t.normalizeKeyMap=vk,t.StringStream=Ut,t.SharedTextMarker=mu,t.TextMarker=Gi,t.LineWidget=gu,t.e_preventDefault=bt,t.e_stopPropagation=Rt,t.e_stop=ln,t.addClass=Le,t.contains=q,t.rmClass=x,t.keyNames=$i}Lk(vn),Ik(vn);var Uk="iter insert remove copy getEditor constructor".split(" ");for(var $l in dr.prototype)dr.prototype.hasOwnProperty($l)&&me(Uk,$l)<0&&(vn.prototype[$l]=function(t){return function(){return t.apply(this.doc,arguments)}}(dr.prototype[$l]));return wt(dr),vn.inputStyles={textarea:Cn,contenteditable:an},vn.defineMode=function(t){!vn.defaults.mode&&t!="null"&&(vn.defaults.mode=t),Ke.apply(this,arguments)},vn.defineMIME=et,vn.defineMode("null",function(){return{token:function(t){return t.skipToEnd()}}}),vn.defineMIME("text/plain","null"),vn.defineExtension=function(t,r){vn.prototype[t]=r},vn.defineDocExtension=function(t,r){dr.prototype[t]=r},vn.fromTextArea=Hk,Wk(vn),vn.version="5.65.1",vn})});var uw=yt((ow,aw)=>{(function(e){typeof ow=="object"&&typeof aw=="object"?e(wl()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)})(function(e){"use strict";var n={autoSelfClosers:{area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0,menuitem:!0},implicitlyClosed:{dd:!0,li:!0,optgroup:!0,option:!0,p:!0,rp:!0,rt:!0,tbody:!0,td:!0,tfoot:!0,th:!0,tr:!0},contextGrabbers:{dd:{dd:!0,dt:!0},dt:{dd:!0,dt:!0},li:{li:!0},option:{option:!0,optgroup:!0},optgroup:{optgroup:!0},p:{address:!0,article:!0,aside:!0,blockquote:!0,dir:!0,div:!0,dl:!0,fieldset:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,menu:!0,nav:!0,ol:!0,p:!0,pre:!0,section:!0,table:!0,ul:!0},rp:{rp:!0,rt:!0},rt:{rp:!0,rt:!0},tbody:{tbody:!0,tfoot:!0},td:{td:!0,th:!0},tfoot:{tbody:!0},th:{td:!0,th:!0},thead:{tbody:!0,tfoot:!0},tr:{tr:!0}},doNotIndent:{pre:!0},allowUnquoted:!0,allowMissing:!0,caseFold:!0},i={autoSelfClosers:{},implicitlyClosed:{},contextGrabbers:{},doNotIndent:{},allowUnquoted:!1,allowMissing:!1,allowMissingTagName:!1,caseFold:!1};e.defineMode("xml",function(u,s){var h=u.indentUnit,d={},v=s.htmlMode?n:i;for(var k in v)d[k]=v[k];for(var k in s)d[k]=s[k];var S,E;function O(y,D){function q(we){return D.tokenize=we,we(y,D)}var oe=y.next();if(oe=="<")return y.eat("!")?y.eat("[")?y.match("CDATA[")?q(Ee("atom","]]>")):null:y.match("--")?q(Ee("comment","-->")):y.match("DOCTYPE",!0,!0)?(y.eatWhile(/[\w\._\-]/),q(ne(1))):null:y.eat("?")?(y.eatWhile(/[\w\._\-]/),D.tokenize=Ee("meta","?>"),"meta"):(S=y.eat("/")?"closeTag":"openTag",D.tokenize=ie,"tag bracket");if(oe=="&"){var Le;return y.eat("#")?y.eat("x")?Le=y.eatWhile(/[a-fA-F\d]/)&&y.eat(";"):Le=y.eatWhile(/[\d]/)&&y.eat(";"):Le=y.eatWhile(/[\w\.\-:]/)&&y.eat(";"),Le?"atom":"error"}else return y.eatWhile(/[^&<]/),null}O.isInText=!0;function ie(y,D){var q=y.next();if(q==">"||q=="/"&&y.eat(">"))return D.tokenize=O,S=q==">"?"endTag":"selfcloseTag","tag bracket";if(q=="=")return S="equals",null;if(q=="<"){D.tokenize=O,D.state=pe,D.tagName=D.tagStart=null;var oe=D.tokenize(y,D);return oe?oe+" tag error":"tag error"}else return/[\'\"]/.test(q)?(D.tokenize=ve(q),D.stringStartCol=y.column(),D.tokenize(y,D)):(y.match(/^[^\s\u00a0=<>\"\']*[^\s\u00a0=<>\"\'\/]/),"word")}function ve(y){var D=function(q,oe){for(;!q.eol();)if(q.next()==y){oe.tokenize=ie;break}return"string"};return D.isInAttribute=!0,D}function Ee(y,D){return function(q,oe){for(;!q.eol();){if(q.match(D)){oe.tokenize=O;break}q.next()}return y}}function ne(y){return function(D,q){for(var oe;(oe=D.next())!=null;){if(oe=="<")return q.tokenize=ne(y+1),q.tokenize(D,q);if(oe==">")if(y==1){q.tokenize=O;break}else return q.tokenize=ne(y-1),q.tokenize(D,q)}return"meta"}}function R(y){return y&&y.toLowerCase()}function I(y,D,q){this.prev=y.context,this.tagName=D||"",this.indent=y.indented,this.startOfLine=q,(d.doNotIndent.hasOwnProperty(D)||y.context&&y.context.noIndent)&&(this.noIndent=!0)}function Y(y){y.context&&(y.context=y.context.prev)}function le(y,D){for(var q;;){if(!y.context||(q=y.context.tagName,!d.contextGrabbers.hasOwnProperty(R(q))||!d.contextGrabbers[R(q)].hasOwnProperty(R(D))))return;Y(y)}}function pe(y,D,q){return y=="openTag"?(q.tagStart=D.column(),Re):y=="closeTag"?B:pe}function Re(y,D,q){return y=="word"?(q.tagName=D.current(),E="tag",x):d.allowMissingTagName&&y=="endTag"?(E="tag bracket",x(y,D,q)):(E="error",Re)}function B(y,D,q){if(y=="word"){var oe=D.current();return q.context&&q.context.tagName!=oe&&d.implicitlyClosed.hasOwnProperty(R(q.context.tagName))&&Y(q),q.context&&q.context.tagName==oe||d.matchClosing===!1?(E="tag",c):(E="tag error",g)}else return d.allowMissingTagName&&y=="endTag"?(E="tag bracket",c(y,D,q)):(E="error",g)}function c(y,D,q){return y!="endTag"?(E="error",c):(Y(q),pe)}function g(y,D,q){return E="error",c(y,D,q)}function x(y,D,q){if(y=="word")return E="attribute",P;if(y=="endTag"||y=="selfcloseTag"){var oe=q.tagName,Le=q.tagStart;return q.tagName=q.tagStart=null,y=="selfcloseTag"||d.autoSelfClosers.hasOwnProperty(R(oe))?le(q,oe):(le(q,oe),q.context=new I(q,oe,Le==q.indented)),pe}return E="error",x}function P(y,D,q){return y=="equals"?b:(d.allowMissing||(E="error"),x(y,D,q))}function b(y,D,q){return y=="string"?U:y=="word"&&d.allowUnquoted?(E="string",x):(E="error",x(y,D,q))}function U(y,D,q){return y=="string"?U:x(y,D,q)}return{startState:function(y){var D={tokenize:O,state:pe,indented:y||0,tagName:null,tagStart:null,context:null};return y!=null&&(D.baseIndent=y),D},token:function(y,D){if(!D.tagName&&y.sol()&&(D.indented=y.indentation()),y.eatSpace())return null;S=null;var q=D.tokenize(y,D);return(q||S)&&q!="comment"&&(E=null,D.state=D.state(S||q,y,D),E&&(q=E=="error"?q+" error":E)),q},indent:function(y,D,q){var oe=y.context;if(y.tokenize.isInAttribute)return y.tagStart==y.indented?y.stringStartCol+1:y.indented+h;if(oe&&oe.noIndent)return e.Pass;if(y.tokenize!=ie&&y.tokenize!=O)return q?q.match(/^(\s*)/)[0].length:0;if(y.tagName)return d.multilineTagIndentPastTag!==!1?y.tagStart+y.tagName.length+2:y.tagStart+h*(d.multilineTagIndentFactor||1);if(d.alignCDATA&&/$/,blockCommentStart:"",configuration:d.htmlMode?"html":"xml",helperType:d.htmlMode?"html":"xml",skipAttribute:function(y){y.state==b&&(y.state=x)},xmlCurrentTag:function(y){return y.tagName?{name:y.tagName,close:y.type=="closeTag"}:null},xmlCurrentContext:function(y){for(var D=[],q=y.context;q;q=q.prev)D.push(q.tagName);return D.reverse()}}}),e.defineMIME("text/xml","xml"),e.defineMIME("application/xml","xml"),e.mimeModes.hasOwnProperty("text/html")||e.defineMIME("text/html",{name:"xml",htmlMode:!0})})});var fw=yt((lw,sw)=>{(function(e){typeof lw=="object"&&typeof sw=="object"?e(wl()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)})(function(e){"use strict";e.defineMode("javascript",function(n,i){var u=n.indentUnit,s=i.statementIndent,h=i.jsonld,d=i.json||h,v=i.trackScope!==!1,k=i.typescript,S=i.wordCharacters||/[\w$\xa1-\uffff]/,E=function(){function _(Vt){return{type:Vt,style:"keyword"}}var H=_("keyword a"),be=_("keyword b"),Ne=_("keyword c"),Ze=_("keyword d"),ft=_("operator"),Qe={type:"atom",style:"atom"};return{if:_("if"),while:H,with:H,else:be,do:be,try:be,finally:be,return:Ze,break:Ze,continue:Ze,new:_("new"),delete:Ne,void:Ne,throw:Ne,debugger:_("debugger"),var:_("var"),const:_("var"),let:_("var"),function:_("function"),catch:_("catch"),for:_("for"),switch:_("switch"),case:_("case"),default:_("default"),in:ft,typeof:ft,instanceof:ft,true:Qe,false:Qe,null:Qe,undefined:Qe,NaN:Qe,Infinity:Qe,this:_("this"),class:_("class"),super:_("atom"),yield:Ne,export:_("export"),import:_("import"),extends:Ne,await:Ne}}(),O=/[+\-*&%=<>!?|~^@]/,ie=/^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/;function ve(_){for(var H=!1,be,Ne=!1;(be=_.next())!=null;){if(!H){if(be=="/"&&!Ne)return;be=="["?Ne=!0:Ne&&be=="]"&&(Ne=!1)}H=!H&&be=="\\"}}var Ee,ne;function R(_,H,be){return Ee=_,ne=be,H}function I(_,H){var be=_.next();if(be=='"'||be=="'")return H.tokenize=Y(be),H.tokenize(_,H);if(be=="."&&_.match(/^\d[\d_]*(?:[eE][+\-]?[\d_]+)?/))return R("number","number");if(be=="."&&_.match(".."))return R("spread","meta");if(/[\[\]{}\(\),;\:\.]/.test(be))return R(be);if(be=="="&&_.eat(">"))return R("=>","operator");if(be=="0"&&_.match(/^(?:x[\dA-Fa-f_]+|o[0-7_]+|b[01_]+)n?/))return R("number","number");if(/\d/.test(be))return _.match(/^[\d_]*(?:n|(?:\.[\d_]*)?(?:[eE][+\-]?[\d_]+)?)?/),R("number","number");if(be=="/")return _.eat("*")?(H.tokenize=le,le(_,H)):_.eat("/")?(_.skipToEnd(),R("comment","comment")):de(_,H,1)?(ve(_),_.match(/^\b(([gimyus])(?![gimyus]*\2))+\b/),R("regexp","string-2")):(_.eat("="),R("operator","operator",_.current()));if(be=="`")return H.tokenize=pe,pe(_,H);if(be=="#"&&_.peek()=="!")return _.skipToEnd(),R("meta","meta");if(be=="#"&&_.eatWhile(S))return R("variable","property");if(be=="<"&&_.match("!--")||be=="-"&&_.match("->")&&!/\S/.test(_.string.slice(0,_.start)))return _.skipToEnd(),R("comment","comment");if(O.test(be))return(be!=">"||!H.lexical||H.lexical.type!=">")&&(_.eat("=")?(be=="!"||be=="=")&&_.eat("="):/[<>*+\-|&?]/.test(be)&&(_.eat(be),be==">"&&_.eat(be))),be=="?"&&_.eat(".")?R("."):R("operator","operator",_.current());if(S.test(be)){_.eatWhile(S);var Ne=_.current();if(H.lastType!="."){if(E.propertyIsEnumerable(Ne)){var Ze=E[Ne];return R(Ze.type,Ze.style,Ne)}if(Ne=="async"&&_.match(/^(\s|\/\*([^*]|\*(?!\/))*?\*\/)*[\[\(\w]/,!1))return R("async","keyword",Ne)}return R("variable","variable",Ne)}}function Y(_){return function(H,be){var Ne=!1,Ze;if(h&&H.peek()=="@"&&H.match(ie))return be.tokenize=I,R("jsonld-keyword","meta");for(;(Ze=H.next())!=null&&!(Ze==_&&!Ne);)Ne=!Ne&&Ze=="\\";return Ne||(be.tokenize=I),R("string","string")}}function le(_,H){for(var be=!1,Ne;Ne=_.next();){if(Ne=="/"&&be){H.tokenize=I;break}be=Ne=="*"}return R("comment","comment")}function pe(_,H){for(var be=!1,Ne;(Ne=_.next())!=null;){if(!be&&(Ne=="`"||Ne=="$"&&_.eat("{"))){H.tokenize=I;break}be=!be&&Ne=="\\"}return R("quasi","string-2",_.current())}var Re="([{}])";function B(_,H){H.fatArrowAt&&(H.fatArrowAt=null);var be=_.string.indexOf("=>",_.start);if(!(be<0)){if(k){var Ne=/:\s*(?:\w+(?:<[^>]*>|\[\])?|\{[^}]*\})\s*$/.exec(_.string.slice(_.start,be));Ne&&(be=Ne.index)}for(var Ze=0,ft=!1,Qe=be-1;Qe>=0;--Qe){var Vt=_.string.charAt(Qe),sn=Re.indexOf(Vt);if(sn>=0&&sn<3){if(!Ze){++Qe;break}if(--Ze==0){Vt=="("&&(ft=!0);break}}else if(sn>=3&&sn<6)++Ze;else if(S.test(Vt))ft=!0;else if(/["'\/`]/.test(Vt))for(;;--Qe){if(Qe==0)return;var on=_.string.charAt(Qe-1);if(on==Vt&&_.string.charAt(Qe-2)!="\\"){Qe--;break}}else if(ft&&!Ze){++Qe;break}}ft&&!Ze&&(H.fatArrowAt=Qe)}}var c={atom:!0,number:!0,variable:!0,string:!0,regexp:!0,this:!0,import:!0,"jsonld-keyword":!0};function g(_,H,be,Ne,Ze,ft){this.indented=_,this.column=H,this.type=be,this.prev=Ze,this.info=ft,Ne!=null&&(this.align=Ne)}function x(_,H){if(!v)return!1;for(var be=_.localVars;be;be=be.next)if(be.name==H)return!0;for(var Ne=_.context;Ne;Ne=Ne.prev)for(var be=Ne.vars;be;be=be.next)if(be.name==H)return!0}function P(_,H,be,Ne,Ze){var ft=_.cc;for(b.state=_,b.stream=Ze,b.marked=null,b.cc=ft,b.style=H,_.lexical.hasOwnProperty("align")||(_.lexical.align=!0);;){var Qe=ft.length?ft.pop():d?ge:Je;if(Qe(be,Ne)){for(;ft.length&&ft[ft.length-1].lex;)ft.pop()();return b.marked?b.marked:be=="variable"&&x(_,Ne)?"variable-2":H}}}var b={state:null,column:null,marked:null,cc:null};function U(){for(var _=arguments.length-1;_>=0;_--)b.cc.push(arguments[_])}function y(){return U.apply(null,arguments),!0}function D(_,H){for(var be=H;be;be=be.next)if(be.name==_)return!0;return!1}function q(_){var H=b.state;if(b.marked="def",!!v){if(H.context){if(H.lexical.info=="var"&&H.context&&H.context.block){var be=oe(_,H.context);if(be!=null){H.context=be;return}}else if(!D(_,H.localVars)){H.localVars=new re(_,H.localVars);return}}i.globalVars&&!D(_,H.globalVars)&&(H.globalVars=new re(_,H.globalVars))}}function oe(_,H){if(H)if(H.block){var be=oe(_,H.prev);return be?be==H.prev?H:new we(be,H.vars,!0):null}else return D(_,H.vars)?H:new we(H.prev,new re(_,H.vars),!1);else return null}function Le(_){return _=="public"||_=="private"||_=="protected"||_=="abstract"||_=="readonly"}function we(_,H,be){this.prev=_,this.vars=H,this.block=be}function re(_,H){this.name=_,this.next=H}var We=new re("this",new re("arguments",null));function ce(){b.state.context=new we(b.state.context,b.state.localVars,!1),b.state.localVars=We}function ke(){b.state.context=new we(b.state.context,b.state.localVars,!0),b.state.localVars=null}ce.lex=ke.lex=!0;function Ce(){b.state.localVars=b.state.context.vars,b.state.context=b.state.context.prev}Ce.lex=!0;function me(_,H){var be=function(){var Ne=b.state,Ze=Ne.indented;if(Ne.lexical.type=="stat")Ze=Ne.lexical.indented;else for(var ft=Ne.lexical;ft&&ft.type==")"&&ft.align;ft=ft.prev)Ze=ft.indented;Ne.lexical=new g(Ze,b.stream.column(),_,null,Ne.lexical,H)};return be.lex=!0,be}function Ue(){var _=b.state;_.lexical.prev&&(_.lexical.type==")"&&(_.indented=_.lexical.indented),_.lexical=_.lexical.prev)}Ue.lex=!0;function He(_){function H(be){return be==_?y():_==";"||be=="}"||be==")"||be=="]"?U():y(H)}return H}function Je(_,H){return _=="var"?y(me("vardef",H),K,He(";"),Ue):_=="keyword a"?y(me("form"),Q,Je,Ue):_=="keyword b"?y(me("form"),Je,Ue):_=="keyword d"?b.stream.match(/^\s*$/,!1)?y():y(me("stat"),fe,He(";"),Ue):_=="debugger"?y(He(";")):_=="{"?y(me("}"),ke,Xe,Ue,Ce):_==";"?y():_=="if"?(b.state.lexical.info=="else"&&b.state.cc[b.state.cc.length-1]==Ue&&b.state.cc.pop()(),y(me("form"),Q,Je,Ue,V)):_=="function"?y(Ie):_=="for"?y(me("form"),ke,he,Je,Ce,Ue):_=="class"||k&&H=="interface"?(b.marked="keyword",y(me("form",_=="class"?_:H),Ot,Ue)):_=="variable"?k&&H=="declare"?(b.marked="keyword",y(Je)):k&&(H=="module"||H=="enum"||H=="type")&&b.stream.match(/^\s*\w/,!1)?(b.marked="keyword",H=="enum"?y(G):H=="type"?y(Ke,He("operator"),ze,He(";")):y(me("form"),Pe,He("{"),me("}"),Xe,Ue,Ue)):k&&H=="namespace"?(b.marked="keyword",y(me("form"),ge,Je,Ue)):k&&H=="abstract"?(b.marked="keyword",y(Je)):y(me("stat"),Zt):_=="switch"?y(me("form"),Q,He("{"),me("}","switch"),ke,Xe,Ue,Ue,Ce):_=="case"?y(ge,He(":")):_=="default"?y(He(":")):_=="catch"?y(me("form"),ce,te,Je,Ue,Ce):_=="export"?y(me("stat"),An,Ue):_=="import"?y(me("stat"),Ut,Ue):_=="async"?y(Je):H=="@"?y(ge,Je):U(me("stat"),ge,He(";"),Ue)}function te(_){if(_=="(")return y(et,He(")"))}function ge(_,H){return ee(_,H,!1)}function Oe(_,H){return ee(_,H,!0)}function Q(_){return _!="("?U():y(me(")"),fe,He(")"),Ue)}function ee(_,H,be){if(b.state.fatArrowAt==b.stream.start){var Ne=be?Lt:Gt;if(_=="(")return y(ce,me(")"),j(et,")"),Ue,He("=>"),Ne,Ce);if(_=="variable")return U(ce,Pe,He("=>"),Ne,Ce)}var Ze=be?at:De;return c.hasOwnProperty(_)?y(Ze):_=="function"?y(Ie,Ze):_=="class"||k&&H=="interface"?(b.marked="keyword",y(me("form"),vt,Ue)):_=="keyword c"||_=="async"?y(be?Oe:ge):_=="("?y(me(")"),fe,He(")"),Ue,Ze):_=="operator"||_=="spread"?y(be?Oe:ge):_=="["?y(me("]"),St,Ue,Ze):_=="{"?Ae($t,"}",null,Ze):_=="quasi"?U(dt,Ze):_=="new"?y(Et(be)):y()}function fe(_){return _.match(/[;\}\)\],]/)?U():U(ge)}function De(_,H){return _==","?y(fe):at(_,H,!1)}function at(_,H,be){var Ne=be==!1?De:at,Ze=be==!1?ge:Oe;if(_=="=>")return y(ce,be?Lt:Gt,Ce);if(_=="operator")return/\+\+|--/.test(H)||k&&H=="!"?y(Ne):k&&H=="<"&&b.stream.match(/^([^<>]|<[^<>]*>)*>\s*\(/,!1)?y(me(">"),j(ze,">"),Ue,Ne):H=="?"?y(ge,He(":"),Ze):y(Ze);if(_=="quasi")return U(dt,Ne);if(_!=";"){if(_=="(")return Ae(Oe,")","call",Ne);if(_==".")return y(pn,Ne);if(_=="[")return y(me("]"),fe,He("]"),Ue,Ne);if(k&&H=="as")return b.marked="keyword",y(ze,Ne);if(_=="regexp")return b.state.lastType=b.marked="operator",b.stream.backUp(b.stream.pos-b.stream.start-1),y(Ze)}}function dt(_,H){return _!="quasi"?U():H.slice(H.length-2)!="${"?y(dt):y(fe,jt)}function jt(_){if(_=="}")return b.marked="string-2",b.state.tokenize=pe,y(dt)}function Gt(_){return B(b.stream,b.state),U(_=="{"?Je:ge)}function Lt(_){return B(b.stream,b.state),U(_=="{"?Je:Oe)}function Et(_){return function(H){return H=="."?y(_?zt:Bt):H=="variable"&&k?y(ln,_?at:De):U(_?Oe:ge)}}function Bt(_,H){if(H=="target")return b.marked="keyword",y(De)}function zt(_,H){if(H=="target")return b.marked="keyword",y(at)}function Zt(_){return _==":"?y(Ue,Je):U(De,He(";"),Ue)}function pn(_){if(_=="variable")return b.marked="property",y()}function $t(_,H){if(_=="async")return b.marked="property",y($t);if(_=="variable"||b.style=="keyword"){if(b.marked="property",H=="get"||H=="set")return y(_n);var be;return k&&b.state.fatArrowAt==b.stream.start&&(be=b.stream.match(/^\s*:\s*/,!1))&&(b.state.fatArrowAt=b.stream.pos+be[0].length),y(A)}else{if(_=="number"||_=="string")return b.marked=h?"property":b.style+" property",y(A);if(_=="jsonld-keyword")return y(A);if(k&&Le(H))return b.marked="keyword",y($t);if(_=="[")return y(ge,je,He("]"),A);if(_=="spread")return y(Oe,A);if(H=="*")return b.marked="keyword",y($t);if(_==":")return U(A)}}function _n(_){return _!="variable"?U(A):(b.marked="property",y(Ie))}function A(_){if(_==":")return y(Oe);if(_=="(")return U(Ie)}function j(_,H,be){function Ne(Ze,ft){if(be?be.indexOf(Ze)>-1:Ze==","){var Qe=b.state.lexical;return Qe.info=="call"&&(Qe.pos=(Qe.pos||0)+1),y(function(Vt,sn){return Vt==H||sn==H?U():U(_)},Ne)}return Ze==H||ft==H?y():be&&be.indexOf(";")>-1?U(_):y(He(H))}return function(Ze,ft){return Ze==H||ft==H?y():U(_,Ne)}}function Ae(_,H,be){for(var Ne=3;Ne"),ze);if(_=="quasi")return U(wt,Wt)}function tt(_){if(_=="=>")return y(ze)}function ct(_){return _.match(/[\}\)\]]/)?y():_==","||_==";"?y(ct):U(ht,ct)}function ht(_,H){if(_=="variable"||b.style=="keyword")return b.marked="property",y(ht);if(H=="?"||_=="number"||_=="string")return y(ht);if(_==":")return y(ze);if(_=="[")return y(He("variable"),M,He("]"),ht);if(_=="(")return U($e,ht);if(!_.match(/[;\}\)\],]/))return y()}function wt(_,H){return _!="quasi"?U():H.slice(H.length-2)!="${"?y(wt):y(ze,bt)}function bt(_){if(_=="}")return b.marked="string-2",b.state.tokenize=pe,y(wt)}function Rt(_,H){return _=="variable"&&b.stream.match(/^\s*[?:]/,!1)||H=="?"?y(Rt):_==":"?y(ze):_=="spread"?y(Rt):U(ze)}function Wt(_,H){if(H=="<")return y(me(">"),j(ze,">"),Ue,Wt);if(H=="|"||_=="."||H=="&")return y(ze);if(_=="[")return y(ze,He("]"),Wt);if(H=="extends"||H=="implements")return b.marked="keyword",y(ze);if(H=="?")return y(ze,He(":"),ze)}function ln(_,H){if(H=="<")return y(me(">"),j(ze,">"),Ue,Wt)}function nn(){return U(ze,gn)}function gn(_,H){if(H=="=")return y(ze)}function K(_,H){return H=="enum"?(b.marked="keyword",y(G)):U(Pe,je,N,L)}function Pe(_,H){if(k&&Le(H))return b.marked="keyword",y(Pe);if(_=="variable")return q(H),y();if(_=="spread")return y(Pe);if(_=="[")return Ae($,"]");if(_=="{")return Ae(F,"}")}function F(_,H){return _=="variable"&&!b.stream.match(/^\s*:/,!1)?(q(H),y(N)):(_=="variable"&&(b.marked="property"),_=="spread"?y(Pe):_=="}"?U():_=="["?y(ge,He("]"),He(":"),F):y(He(":"),Pe,N))}function $(){return U(Pe,N)}function N(_,H){if(H=="=")return y(Oe)}function L(_){if(_==",")return y(K)}function V(_,H){if(_=="keyword b"&&H=="else")return y(me("form","else"),Je,Ue)}function he(_,H){if(H=="await")return y(he);if(_=="(")return y(me(")"),_e,Ue)}function _e(_){return _=="var"?y(K,Fe):_=="variable"?y(Fe):U(Fe)}function Fe(_,H){return _==")"?y():_==";"?y(Fe):H=="in"||H=="of"?(b.marked="keyword",y(ge,Fe)):U(ge,Fe)}function Ie(_,H){if(H=="*")return b.marked="keyword",y(Ie);if(_=="variable")return q(H),y(Ie);if(_=="(")return y(ce,me(")"),j(et,")"),Ue,J,Je,Ce);if(k&&H=="<")return y(me(">"),j(nn,">"),Ue,Ie)}function $e(_,H){if(H=="*")return b.marked="keyword",y($e);if(_=="variable")return q(H),y($e);if(_=="(")return y(ce,me(")"),j(et,")"),Ue,J,Ce);if(k&&H=="<")return y(me(">"),j(nn,">"),Ue,$e)}function Ke(_,H){if(_=="keyword"||_=="variable")return b.marked="type",y(Ke);if(H=="<")return y(me(">"),j(nn,">"),Ue)}function et(_,H){return H=="@"&&y(ge,et),_=="spread"?y(et):k&&Le(H)?(b.marked="keyword",y(et)):k&&_=="this"?y(je,N):U(Pe,je,N)}function vt(_,H){return _=="variable"?Ot(_,H):Ct(_,H)}function Ot(_,H){if(_=="variable")return q(H),y(Ct)}function Ct(_,H){if(H=="<")return y(me(">"),j(nn,">"),Ue,Ct);if(H=="extends"||H=="implements"||k&&_==",")return H=="implements"&&(b.marked="keyword"),y(k?ze:ge,Ct);if(_=="{")return y(me("}"),Nt,Ue)}function Nt(_,H){if(_=="async"||_=="variable"&&(H=="static"||H=="get"||H=="set"||k&&Le(H))&&b.stream.match(/^\s+[\w$\xa1-\uffff]/,!1))return b.marked="keyword",y(Nt);if(_=="variable"||b.style=="keyword")return b.marked="property",y(Jt,Nt);if(_=="number"||_=="string")return y(Jt,Nt);if(_=="[")return y(ge,je,He("]"),Jt,Nt);if(H=="*")return b.marked="keyword",y(Nt);if(k&&_=="(")return U($e,Nt);if(_==";"||_==",")return y(Nt);if(_=="}")return y();if(H=="@")return y(ge,Nt)}function Jt(_,H){if(H=="!"||H=="?")return y(Jt);if(_==":")return y(ze,N);if(H=="=")return y(Oe);var be=b.state.lexical.prev,Ne=be&&be.info=="interface";return U(Ne?$e:Ie)}function An(_,H){return H=="*"?(b.marked="keyword",y(Xt,He(";"))):H=="default"?(b.marked="keyword",y(ge,He(";"))):_=="{"?y(j(bn,"}"),Xt,He(";")):U(Je)}function bn(_,H){if(H=="as")return b.marked="keyword",y(He("variable"));if(_=="variable")return U(Oe,bn)}function Ut(_){return _=="string"?y():_=="("?U(ge):_=="."?U(De):U(st,Tt,Xt)}function st(_,H){return _=="{"?Ae(st,"}"):(_=="variable"&&q(H),H=="*"&&(b.marked="keyword"),y(rn))}function Tt(_){if(_==",")return y(st,Tt)}function rn(_,H){if(H=="as")return b.marked="keyword",y(st)}function Xt(_,H){if(H=="from")return b.marked="keyword",y(ge)}function St(_){return _=="]"?y():U(j(Oe,"]"))}function G(){return U(me("form"),Pe,He("{"),me("}"),j(se,"}"),Ue,Ue)}function se(){return U(Pe,N)}function qe(_,H){return _.lastType=="operator"||_.lastType==","||O.test(H.charAt(0))||/[,.]/.test(H.charAt(0))}function de(_,H,be){return H.tokenize==I&&/^(?:operator|sof|keyword [bcd]|case|new|export|default|spread|[\[{}\(,;:]|=>)$/.test(H.lastType)||H.lastType=="quasi"&&/\{\s*$/.test(_.string.slice(0,_.pos-(be||0)))}return{startState:function(_){var H={tokenize:I,lastType:"sof",cc:[],lexical:new g((_||0)-u,0,"block",!1),localVars:i.localVars,context:i.localVars&&new we(null,null,!1),indented:_||0};return i.globalVars&&typeof i.globalVars=="object"&&(H.globalVars=i.globalVars),H},token:function(_,H){if(_.sol()&&(H.lexical.hasOwnProperty("align")||(H.lexical.align=!1),H.indented=_.indentation(),B(_,H)),H.tokenize!=le&&_.eatSpace())return null;var be=H.tokenize(_,H);return Ee=="comment"?be:(H.lastType=Ee=="operator"&&(ne=="++"||ne=="--")?"incdec":Ee,P(H,be,Ee,ne,_))},indent:function(_,H){if(_.tokenize==le||_.tokenize==pe)return e.Pass;if(_.tokenize!=I)return 0;var be=H&&H.charAt(0),Ne=_.lexical,Ze;if(!/^\s*else\b/.test(H))for(var ft=_.cc.length-1;ft>=0;--ft){var Qe=_.cc[ft];if(Qe==Ue)Ne=Ne.prev;else if(Qe!=V&&Qe!=Ce)break}for(;(Ne.type=="stat"||Ne.type=="form")&&(be=="}"||(Ze=_.cc[_.cc.length-1])&&(Ze==De||Ze==at)&&!/^[,\.=+\-*:?[\(]/.test(H));)Ne=Ne.prev;s&&Ne.type==")"&&Ne.prev.type=="stat"&&(Ne=Ne.prev);var Vt=Ne.type,sn=be==Vt;return Vt=="vardef"?Ne.indented+(_.lastType=="operator"||_.lastType==","?Ne.info.length+1:0):Vt=="form"&&be=="{"?Ne.indented:Vt=="form"?Ne.indented+u:Vt=="stat"?Ne.indented+(qe(_,H)?s||u:0):Ne.info=="switch"&&!sn&&i.doubleIndentSwitch!=!1?Ne.indented+(/^(?:case|default)\b/.test(H)?u:2*u):Ne.align?Ne.column+(sn?0:1):Ne.indented+(sn?0:u)},electricInput:/^\s*(?:case .*?:|default:|\{|\})$/,blockCommentStart:d?null:"/*",blockCommentEnd:d?null:"*/",blockCommentContinue:d?null:" * ",lineComment:d?null:"//",fold:"brace",closeBrackets:"()[]{}''\"\"``",helperType:d?"json":"javascript",jsonldMode:h,jsonMode:d,expressionAllowed:de,skipExpression:function(_){P(_,"atom","atom","true",new e.StringStream("",2,null))}}}),e.registerHelper("wordChars","javascript",/[\w$]/),e.defineMIME("text/javascript","javascript"),e.defineMIME("text/ecmascript","javascript"),e.defineMIME("application/javascript","javascript"),e.defineMIME("application/x-javascript","javascript"),e.defineMIME("application/ecmascript","javascript"),e.defineMIME("application/json",{name:"javascript",json:!0}),e.defineMIME("application/x-json",{name:"javascript",json:!0}),e.defineMIME("application/manifest+json",{name:"javascript",json:!0}),e.defineMIME("application/ld+json",{name:"javascript",jsonld:!0}),e.defineMIME("text/typescript",{name:"javascript",typescript:!0}),e.defineMIME("application/typescript",{name:"javascript",typescript:!0})})});var dw=yt((cw,hw)=>{(function(e){typeof cw=="object"&&typeof hw=="object"?e(wl(),uw(),fw()):typeof define=="function"&&define.amd?define(["../../lib/codemirror","../xml/xml","../javascript/javascript"],e):e(CodeMirror)})(function(e){"use strict";function n(u,s,h,d){this.state=u,this.mode=s,this.depth=h,this.prev=d}function i(u){return new n(e.copyState(u.mode,u.state),u.mode,u.depth,u.prev&&i(u.prev))}e.defineMode("jsx",function(u,s){var h=e.getMode(u,{name:"xml",allowMissing:!0,multilineTagIndentPastTag:!1,allowMissingTagName:!0}),d=e.getMode(u,s&&s.base||"javascript");function v(O){var ie=O.tagName;O.tagName=null;var ve=h.indent(O,"","");return O.tagName=ie,ve}function k(O,ie){return ie.context.mode==h?S(O,ie,ie.context):E(O,ie,ie.context)}function S(O,ie,ve){if(ve.depth==2)return O.match(/^.*?\*\//)?ve.depth=1:O.skipToEnd(),"comment";if(O.peek()=="{"){h.skipAttribute(ve.state);var Ee=v(ve.state),ne=ve.state.context;if(ne&&O.match(/^[^>]*>\s*$/,!1)){for(;ne.prev&&!ne.startOfLine;)ne=ne.prev;ne.startOfLine?Ee-=u.indentUnit:ve.prev.state.lexical&&(Ee=ve.prev.state.lexical.indented)}else ve.depth==1&&(Ee+=u.indentUnit);return ie.context=new n(e.startState(d,Ee),d,0,ie.context),null}if(ve.depth==1){if(O.peek()=="<")return h.skipAttribute(ve.state),ie.context=new n(e.startState(h,v(ve.state)),h,0,ie.context),null;if(O.match("//"))return O.skipToEnd(),"comment";if(O.match("/*"))return ve.depth=2,k(O,ie)}var R=h.token(O,ve.state),I=O.current(),Y;return/\btag\b/.test(R)?/>$/.test(I)?ve.state.context?ve.depth=0:ie.context=ie.context.prev:/^-1&&O.backUp(I.length-Y),R}function E(O,ie,ve){if(O.peek()=="<"&&d.expressionAllowed(O,ve.state))return ie.context=new n(e.startState(h,d.indent(ve.state,"","")),h,0,ie.context),d.skipExpression(ve.state),null;var Ee=d.token(O,ve.state);if(!Ee&&ve.depth!=null){var ne=O.current();ne=="{"?ve.depth++:ne=="}"&&--ve.depth==0&&(ie.context=ie.context.prev)}return Ee}return{startState:function(){return{context:new n(e.startState(d),d)}},copyState:function(O){return{context:i(O.context)}},token:k,indent:function(O,ie,ve){return O.context.mode.indent(O.context.state,ie,ve)},innerMode:function(O){return O.context}}},"xml","javascript"),e.defineMIME("text/jsx","jsx"),e.defineMIME("text/typescript-jsx",{name:"jsx",base:{name:"javascript",typescript:!0}})})});var yw=yt((nE,mw)=>{mw.exports=[">",">>","#","%"]});var xw=yt((rE,ww)=>{function iC({trigger:e="",text:n}){let i=n.slice(e.length).match(/(^\S*\((.*?)\)|^\S*)/),u=n.slice(e.length+i[1].length+1),s=i[2],h=s?s.split(","):[],d=i[1].slice(0,i[1].length-(typeof s!="undefined"?s.length+2:0)),v=d.split(".");return{path:d,list:v,params:h,root:v[0],input:u}}ww.exports={parseCommand:iC}});var Mw=yt((dE,Cw)=>{var bw=6e4;Cw.exports=function(n){var i=new Date(n.getTime()),u=i.getTimezoneOffset();i.setSeconds(0,0);var s=i.getTime()%bw;return u*bw+s}});var Ap=yt((pE,Ew)=>{function uC(e){return e instanceof Date}Ew.exports=uC});var xi=yt((vE,Pw)=>{var Ip=Mw(),lC=Ap(),Rp=36e5,Fp=6e4,sC=2,fC=/[T ]/,cC=/:/,hC=/^(\d{2})$/,dC=[/^([+-]\d{2})$/,/^([+-]\d{3})$/,/^([+-]\d{4})$/],pC=/^(\d{4})/,vC=[/^([+-]\d{4})/,/^([+-]\d{5})/,/^([+-]\d{6})/],gC=/^-(\d{2})$/,mC=/^-?(\d{3})$/,yC=/^-?(\d{2})-?(\d{2})$/,wC=/^-?W(\d{2})$/,xC=/^-?W(\d{2})-?(\d{1})$/,_C=/^(\d{2}([.,]\d*)?)$/,kC=/^(\d{2}):?(\d{2}([.,]\d*)?)$/,TC=/^(\d{2}):?(\d{2}):?(\d{2}([.,]\d*)?)$/,SC=/([Z+-].*)$/,bC=/^(Z)$/,CC=/^([+-])(\d{2})$/,MC=/^([+-])(\d{2}):?(\d{2})$/;function EC(e,n){if(lC(e))return new Date(e.getTime());if(typeof e!="string")return new Date(e);var i=n||{},u=i.additionalDigits;u==null?u=sC:u=Number(u);var s=NC(e),h=PC(s.date,u),d=h.year,v=h.restDateString,k=LC(v,d);if(k){var S=k.getTime(),E=0,O;if(s.time&&(E=OC(s.time)),s.timezone)O=DC(s.timezone)*Fp;else{var ie=S+E,ve=new Date(ie);O=Ip(ve);var Ee=new Date(ie);Ee.setDate(ve.getDate()+1);var ne=Ip(Ee)-Ip(ve);ne>0&&(O+=ne)}return new Date(S+E+O)}else return new Date(e)}function NC(e){var n={},i=e.split(fC),u;if(cC.test(i[0])?(n.date=null,u=i[0]):(n.date=i[0],u=i[1]),u){var s=SC.exec(u);s?(n.time=u.replace(s[1],""),n.timezone=s[1]):n.time=u}return n}function PC(e,n){var i=dC[n],u=vC[n],s;if(s=pC.exec(e)||u.exec(e),s){var h=s[1];return{year:parseInt(h,10),restDateString:e.slice(h.length)}}if(s=hC.exec(e)||i.exec(e),s){var d=s[1];return{year:parseInt(d,10)*100,restDateString:e.slice(d.length)}}return{year:null}}function LC(e,n){if(n===null)return null;var i,u,s,h;if(e.length===0)return u=new Date(0),u.setUTCFullYear(n),u;if(i=gC.exec(e),i)return u=new Date(0),s=parseInt(i[1],10)-1,u.setUTCFullYear(n,s),u;if(i=mC.exec(e),i){u=new Date(0);var d=parseInt(i[1],10);return u.setUTCFullYear(n,0,d),u}if(i=yC.exec(e),i){u=new Date(0),s=parseInt(i[1],10)-1;var v=parseInt(i[2],10);return u.setUTCFullYear(n,s,v),u}if(i=wC.exec(e),i)return h=parseInt(i[1],10)-1,Nw(n,h);if(i=xC.exec(e),i){h=parseInt(i[1],10)-1;var k=parseInt(i[2],10)-1;return Nw(n,h,k)}return null}function OC(e){var n,i,u;if(n=_C.exec(e),n)return i=parseFloat(n[1].replace(",",".")),i%24*Rp;if(n=kC.exec(e),n)return i=parseInt(n[1],10),u=parseFloat(n[2].replace(",",".")),i%24*Rp+u*Fp;if(n=TC.exec(e),n){i=parseInt(n[1],10),u=parseInt(n[2],10);var s=parseFloat(n[3].replace(",","."));return i%24*Rp+u*Fp+s*1e3}return null}function DC(e){var n,i;return n=bC.exec(e),n?0:(n=CC.exec(e),n?(i=parseInt(n[2],10)*60,n[1]==="+"?-i:i):(n=MC.exec(e),n?(i=parseInt(n[2],10)*60+parseInt(n[3],10),n[1]==="+"?-i:i):0))}function Nw(e,n,i){n=n||0,i=i||0;var u=new Date(0);u.setUTCFullYear(e,0,4);var s=u.getUTCDay()||7,h=n*7+i+1-s;return u.setUTCDate(u.getUTCDate()+h),u}Pw.exports=EC});var Ow=yt((gE,Lw)=>{var AC=xi();function IC(e){var n=AC(e),i=new Date(0);return i.setFullYear(n.getFullYear(),0,1),i.setHours(0,0,0,0),i}Lw.exports=IC});var Aw=yt((mE,Dw)=>{var RC=xi();function FC(e){var n=RC(e);return n.setHours(0,0,0,0),n}Dw.exports=FC});var zw=yt((yE,Fw)=>{var Iw=Aw(),Rw=6e4,zC=864e5;function HC(e,n){var i=Iw(e),u=Iw(n),s=i.getTime()-i.getTimezoneOffset()*Rw,h=u.getTime()-u.getTimezoneOffset()*Rw;return Math.round((s-h)/zC)}Fw.exports=HC});var Ww=yt((wE,Hw)=>{var WC=xi(),UC=Ow(),BC=zw();function jC(e){var n=WC(e),i=BC(n,UC(n)),u=i+1;return u}Hw.exports=jC});var Bw=yt((xE,Uw)=>{var YC=xi();function qC(e,n){var i=n&&Number(n.weekStartsOn)||0,u=YC(e),s=u.getDay(),h=(s{var GC=Bw();function $C(e){return GC(e,{weekStartsOn:1})}jw.exports=$C});var zp=yt((kE,qw)=>{var VC=xi(),Yw=Pf();function XC(e){var n=VC(e),i=n.getFullYear(),u=new Date(0);u.setFullYear(i+1,0,4),u.setHours(0,0,0,0);var s=Yw(u),h=new Date(0);h.setFullYear(i,0,4),h.setHours(0,0,0,0);var d=Yw(h);return n.getTime()>=s.getTime()?i+1:n.getTime()>=d.getTime()?i:i-1}qw.exports=XC});var $w=yt((TE,Gw)=>{var KC=zp(),QC=Pf();function ZC(e){var n=KC(e),i=new Date(0);i.setFullYear(n,0,4),i.setHours(0,0,0,0);var u=QC(i);return u}Gw.exports=ZC});var Xw=yt((SE,Vw)=>{var JC=xi(),eM=Pf(),tM=$w(),nM=6048e5;function rM(e){var n=JC(e),i=eM(n).getTime()-tM(n).getTime();return Math.round(i/nM)+1}Vw.exports=rM});var Qw=yt((bE,Kw)=>{var iM=Ap();function oM(e){if(iM(e))return!isNaN(e);throw new TypeError(toString.call(e)+" is not an instance of Date")}Kw.exports=oM});var Jw=yt((CE,Zw)=>{function aM(){var e={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}};function n(i,u,s){s=s||{};var h;return typeof e[i]=="string"?h=e[i]:u===1?h=e[i].one:h=e[i].other.replace("{{count}}",u),s.addSuffix?s.comparison>0?"in "+h:h+" ago":h}return{localize:n}}Zw.exports=aM});var tx=yt((ME,ex)=>{var uM=["M","MM","Q","D","DD","DDD","DDDD","d","E","W","WW","YY","YYYY","GG","GGGG","H","HH","h","hh","m","mm","s","ss","S","SS","SSS","Z","ZZ","X","x"];function lM(e){var n=[];for(var i in e)e.hasOwnProperty(i)&&n.push(i);var u=uM.concat(n).sort().reverse(),s=new RegExp("(\\[[^\\[]*\\])|(\\\\)?("+u.join("|")+"|.)","g");return s}ex.exports=lM});var rx=yt((EE,nx)=>{var sM=tx();function fM(){var e=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],n=["January","February","March","April","May","June","July","August","September","October","November","December"],i=["Su","Mo","Tu","We","Th","Fr","Sa"],u=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],s=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],h=["AM","PM"],d=["am","pm"],v=["a.m.","p.m."],k={MMM:function(E){return e[E.getMonth()]},MMMM:function(E){return n[E.getMonth()]},dd:function(E){return i[E.getDay()]},ddd:function(E){return u[E.getDay()]},dddd:function(E){return s[E.getDay()]},A:function(E){return E.getHours()/12>=1?h[1]:h[0]},a:function(E){return E.getHours()/12>=1?d[1]:d[0]},aa:function(E){return E.getHours()/12>=1?v[1]:v[0]}},S=["M","D","DDD","d","Q","W"];return S.forEach(function(E){k[E+"o"]=function(O,ie){return cM(ie[E](O))}}),{formatters:k,formattingTokensRegExp:sM(k)}}function cM(e){var n=e%100;if(n>20||n<10)switch(n%10){case 1:return e+"st";case 2:return e+"nd";case 3:return e+"rd"}return e+"th"}nx.exports=fM});var ox=yt((NE,ix)=>{var hM=Jw(),dM=rx();ix.exports={distanceInWords:hM(),format:dM()}});var hx=yt((PE,cx)=>{var ax=Ww(),ux=Xw(),lx=zp(),pM=xi(),vM=Qw(),sx=ox();function gM(e,n,i){var u=n?String(n):"YYYY-MM-DDTHH:mm:ss.SSSZ",s=i||{},h=s.locale,d=sx.format.formatters,v=sx.format.formattingTokensRegExp;h&&h.format&&h.format.formatters&&(d=h.format.formatters,h.format.formattingTokensRegExp&&(v=h.format.formattingTokensRegExp));var k=pM(e);if(!vM(k))return"Invalid Date";var S=mM(u,d,v);return S(k)}var Hp={M:function(e){return e.getMonth()+1},MM:function(e){return Dr(e.getMonth()+1,2)},Q:function(e){return Math.ceil((e.getMonth()+1)/3)},D:function(e){return e.getDate()},DD:function(e){return Dr(e.getDate(),2)},DDD:function(e){return ax(e)},DDDD:function(e){return Dr(ax(e),3)},d:function(e){return e.getDay()},E:function(e){return e.getDay()||7},W:function(e){return ux(e)},WW:function(e){return Dr(ux(e),2)},YY:function(e){return Dr(e.getFullYear(),4).substr(2)},YYYY:function(e){return Dr(e.getFullYear(),4)},GG:function(e){return String(lx(e)).substr(2)},GGGG:function(e){return lx(e)},H:function(e){return e.getHours()},HH:function(e){return Dr(e.getHours(),2)},h:function(e){var n=e.getHours();return n===0?12:n>12?n%12:n},hh:function(e){return Dr(Hp.h(e),2)},m:function(e){return e.getMinutes()},mm:function(e){return Dr(e.getMinutes(),2)},s:function(e){return e.getSeconds()},ss:function(e){return Dr(e.getSeconds(),2)},S:function(e){return Math.floor(e.getMilliseconds()/100)},SS:function(e){return Dr(Math.floor(e.getMilliseconds()/10),2)},SSS:function(e){return Dr(e.getMilliseconds(),3)},Z:function(e){return fx(e.getTimezoneOffset(),":")},ZZ:function(e){return fx(e.getTimezoneOffset())},X:function(e){return Math.floor(e.getTime()/1e3)},x:function(e){return e.getTime()}};function mM(e,n,i){var u=e.match(i),s=u.length,h,d;for(h=0;h0?"-":"+",u=Math.abs(e),s=Math.floor(u/60),h=u%60;return i+Dr(s,2)+n+Dr(h,2)}function Dr(e,n){for(var i=Math.abs(e).toString();i.length{var wM=xi();function xM(e){var n=wM(e),i=n.getFullYear(),u=n.getMonth(),s=new Date(0);return s.setFullYear(i,u+1,0),s.setHours(0,0,0,0),s.getDate()}dx.exports=xM});var gx=yt((OE,vx)=>{var _M=xi(),kM=px();function TM(e,n){var i=_M(e),u=Number(n),s=i.getMonth()+u,h=new Date(0);h.setFullYear(i.getFullYear(),s,1),h.setHours(0,0,0,0);var d=kM(h);return i.setMonth(s,Math.min(d,i.getDate())),i}vx.exports=TM});var yx=yt((DE,mx)=>{var SM=gx();function bM(e,n){var i=Number(n);return SM(e,-i)}mx.exports=bM});var Jo=yt((Lf,_x)=>{(function(e,n){typeof Lf=="object"&&typeof _x!="undefined"?n(Lf):typeof define=="function"&&define.amd?define(["exports"],n):(e=e||self,n(e.d3=e.d3||{}))})(Lf,function(e){"use strict";var n="http://www.w3.org/1999/xhtml",i={svg:"http://www.w3.org/2000/svg",xhtml:n,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function u(G){var se=G+="",qe=se.indexOf(":");return qe>=0&&(se=G.slice(0,qe))!=="xmlns"&&(G=G.slice(qe+1)),i.hasOwnProperty(se)?{space:i[se],local:G}:G}function s(G){return function(){var se=this.ownerDocument,qe=this.namespaceURI;return qe===n&&se.documentElement.namespaceURI===n?se.createElement(G):se.createElementNS(qe,G)}}function h(G){return function(){return this.ownerDocument.createElementNS(G.space,G.local)}}function d(G){var se=u(G);return(se.local?h:s)(se)}function v(){}function k(G){return G==null?v:function(){return this.querySelector(G)}}function S(G){typeof G!="function"&&(G=k(G));for(var se=this._groups,qe=se.length,de=new Array(qe),_=0;_=z&&(z=w+1);!(ae=ki[z])&&++z=0;)(be=de[_])&&(H&&be.compareDocumentPosition(H)^4&&H.parentNode.insertBefore(be,H),H=be);return this}function b(G){G||(G=U);function se(Vt,sn){return Vt&&sn?G(Vt.__data__,sn.__data__):!Vt-!sn}for(var qe=this._groups,de=qe.length,_=new Array(de),H=0;Hse?1:G>=se?0:NaN}function y(){var G=arguments[0];return arguments[0]=this,G.apply(null,arguments),this}function D(){var G=new Array(this.size()),se=-1;return this.each(function(){G[++se]=this}),G}function q(){for(var G=this._groups,se=0,qe=G.length;se1?this.each((se==null?Je:typeof se=="function"?ge:te)(G,se,qe??"")):Q(this.node(),G)}function Q(G,se){return G.style.getPropertyValue(se)||He(G).getComputedStyle(G,null).getPropertyValue(se)}function ee(G){return function(){delete this[G]}}function fe(G,se){return function(){this[G]=se}}function De(G,se){return function(){var qe=se.apply(this,arguments);qe==null?delete this[G]:this[G]=qe}}function at(G,se){return arguments.length>1?this.each((se==null?ee:typeof se=="function"?De:fe)(G,se)):this.node()[G]}function dt(G){return G.trim().split(/^|\s+/)}function jt(G){return G.classList||new Gt(G)}function Gt(G){this._node=G,this._names=dt(G.getAttribute("class")||"")}Gt.prototype={add:function(G){var se=this._names.indexOf(G);se<0&&(this._names.push(G),this._node.setAttribute("class",this._names.join(" ")))},remove:function(G){var se=this._names.indexOf(G);se>=0&&(this._names.splice(se,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(G){return this._names.indexOf(G)>=0}};function Lt(G,se){for(var qe=jt(G),de=-1,_=se.length;++de<_;)qe.add(se[de])}function Et(G,se){for(var qe=jt(G),de=-1,_=se.length;++de<_;)qe.remove(se[de])}function Bt(G){return function(){Lt(this,G)}}function zt(G){return function(){Et(this,G)}}function Zt(G,se){return function(){(se.apply(this,arguments)?Lt:Et)(this,G)}}function pn(G,se){var qe=dt(G+"");if(arguments.length<2){for(var de=jt(this.node()),_=-1,H=qe.length;++_=0&&(qe=se.slice(de+1),se=se.slice(0,de)),{type:se,name:qe}})}function L(G){return function(){var se=this.__on;if(!!se){for(var qe=0,de=-1,_=se.length,H;qe<_;++qe)H=se[qe],(!G.type||H.type===G.type)&&H.name===G.name?this.removeEventListener(H.type,H.listener,H.capture):se[++de]=H;++de?se.length=de:delete this.__on}}}function V(G,se,qe){var de=K.hasOwnProperty(G.type)?F:$;return function(_,H,be){var Ne=this.__on,Ze,ft=de(se,H,be);if(Ne){for(var Qe=0,Vt=Ne.length;Qe{(function(e,n){typeof Of=="object"&&typeof kx!="undefined"?n(Of):typeof define=="function"&&define.amd?define(["exports"],n):n(e.d3=e.d3||{})})(Of,function(e){"use strict";var n="$";function i(){}i.prototype=u.prototype={constructor:i,has:function(ne){return n+ne in this},get:function(ne){return this[n+ne]},set:function(ne,R){return this[n+ne]=R,this},remove:function(ne){var R=n+ne;return R in this&&delete this[R]},clear:function(){for(var ne in this)ne[0]===n&&delete this[ne]},keys:function(){var ne=[];for(var R in this)R[0]===n&&ne.push(R.slice(1));return ne},values:function(){var ne=[];for(var R in this)R[0]===n&&ne.push(this[R]);return ne},entries:function(){var ne=[];for(var R in this)R[0]===n&&ne.push({key:R.slice(1),value:this[R]});return ne},size:function(){var ne=0;for(var R in this)R[0]===n&&++ne;return ne},empty:function(){for(var ne in this)if(ne[0]===n)return!1;return!0},each:function(ne){for(var R in this)R[0]===n&&ne(this[R],R.slice(1),this)}};function u(ne,R){var I=new i;if(ne instanceof i)ne.each(function(B,c){I.set(c,B)});else if(Array.isArray(ne)){var Y=-1,le=ne.length,pe;if(R==null)for(;++Y=ne.length)return I!=null&&B.sort(I),Y!=null?Y(B):B;for(var P=-1,b=B.length,U=ne[c++],y,D,q=u(),oe,Le=g();++Pne.length)return B;var g,x=R[c-1];return Y!=null&&c>=ne.length?g=B.entries():(g=[],B.each(function(P,b){g.push({key:b,values:Re(P,c)})})),x!=null?g.sort(function(P,b){return x(P.key,b.key)}):g}return le={object:function(B){return pe(B,0,h,d)},map:function(B){return pe(B,0,v,k)},entries:function(B){return Re(pe(B,0,v,k),0)},key:function(B){return ne.push(B),le},sortKeys:function(B){return R[ne.length-1]=B,le},sortValues:function(B){return I=B,le},rollup:function(B){return Y=B,le}}}function h(){return{}}function d(ne,R,I){ne[R]=I}function v(){return u()}function k(ne,R,I){ne.set(R,I)}function S(){}var E=u.prototype;S.prototype=O.prototype={constructor:S,has:E.has,add:function(ne){return ne+="",this[n+ne]=ne,this},remove:E.remove,clear:E.clear,values:E.keys,size:E.size,empty:E.empty,each:E.each};function O(ne,R){var I=new S;if(ne instanceof S)ne.each(function(pe){I.add(pe)});else if(ne){var Y=-1,le=ne.length;if(R==null)for(;++Y{(function(e,n){typeof Df=="object"&&typeof Tx!="undefined"?n(Df):typeof define=="function"&&define.amd?define(["exports"],n):n(e.d3=e.d3||{})})(Df,function(e){"use strict";function n(te,ge){return tege?1:te>=ge?0:NaN}function i(te){return te.length===1&&(te=u(te)),{left:function(ge,Oe,Q,ee){for(Q==null&&(Q=0),ee==null&&(ee=ge.length);Q>>1;te(ge[fe],Oe)<0?Q=fe+1:ee=fe}return Q},right:function(ge,Oe,Q,ee){for(Q==null&&(Q=0),ee==null&&(ee=ge.length);Q>>1;te(ge[fe],Oe)>0?ee=fe:Q=fe+1}return Q}}}function u(te){return function(ge,Oe){return n(te(ge),Oe)}}var s=i(n),h=s.right,d=s.left;function v(te,ge){ge==null&&(ge=k);for(var Oe=0,Q=te.length-1,ee=te[0],fe=new Array(Q<0?0:Q);Oete?1:ge>=te?0:NaN}function O(te){return te===null?NaN:+te}function ie(te,ge){var Oe=te.length,Q=0,ee=-1,fe=0,De,at,dt=0;if(ge==null)for(;++ee1)return dt/(Q-1)}function ve(te,ge){var Oe=ie(te,ge);return Oe&&Math.sqrt(Oe)}function Ee(te,ge){var Oe=te.length,Q=-1,ee,fe,De;if(ge==null){for(;++Q=ee)for(fe=De=ee;++Qee&&(fe=ee),De=ee)for(fe=De=ee;++Qee&&(fe=ee),De0)return[te];if((Q=ge0)for(te=Math.ceil(te/at),ge=Math.floor(ge/at),De=new Array(fe=Math.ceil(ge-te+1));++ee=0?(fe>=Re?10:fe>=B?5:fe>=c?2:1)*Math.pow(10,ee):-Math.pow(10,-ee)/(fe>=Re?10:fe>=B?5:fe>=c?2:1)}function P(te,ge,Oe){var Q=Math.abs(ge-te)/Math.max(0,Oe),ee=Math.pow(10,Math.floor(Math.log(Q)/Math.LN10)),fe=Q/ee;return fe>=Re?ee*=10:fe>=B?ee*=5:fe>=c&&(ee*=2),geLt;)Et.pop(),--Bt;var zt=new Array(Bt+1),Zt;for(fe=0;fe<=Bt;++fe)Zt=zt[fe]=[],Zt.x0=fe>0?Et[fe-1]:Gt,Zt.x1=fe=1)return+Oe(te[Q-1],Q-1,te);var Q,ee=(Q-1)*ge,fe=Math.floor(ee),De=+Oe(te[fe],fe,te),at=+Oe(te[fe+1],fe+1,te);return De+(at-De)*(ee-fe)}}function D(te,ge,Oe){return te=I.call(te,O).sort(n),Math.ceil((Oe-ge)/(2*(y(te,.75)-y(te,.25))*Math.pow(te.length,-1/3)))}function q(te,ge,Oe){return Math.ceil((Oe-ge)/(3.5*ve(te)*Math.pow(te.length,-1/3)))}function oe(te,ge){var Oe=te.length,Q=-1,ee,fe;if(ge==null){for(;++Q=ee)for(fe=ee;++Qfe&&(fe=ee)}else for(;++Q=ee)for(fe=ee;++Qfe&&(fe=ee);return fe}function Le(te,ge){var Oe=te.length,Q=Oe,ee=-1,fe,De=0;if(ge==null)for(;++ee=0;)for(De=te[ge],Oe=De.length;--Oe>=0;)fe[--ee]=De[Oe];return fe}function We(te,ge){var Oe=te.length,Q=-1,ee,fe;if(ge==null){for(;++Q=ee)for(fe=ee;++Qee&&(fe=ee)}else for(;++Q=ee)for(fe=ee;++Qee&&(fe=ee);return fe}function ce(te,ge){for(var Oe=ge.length,Q=new Array(Oe);Oe--;)Q[Oe]=te[ge[Oe]];return Q}function ke(te,ge){if(!!(Oe=te.length)){var Oe,Q=0,ee=0,fe,De=te[ee];for(ge==null&&(ge=n);++Q{(function(e,n){typeof Af=="object"&&typeof bx!="undefined"?n(Af):typeof define=="function"&&define.amd?define(["exports"],n):(e=e||self,n(e.d3=e.d3||{}))})(Af,function(e){"use strict";function n(M,J,Se){M.prototype=J.prototype=Se,Se.constructor=M}function i(M,J){var Se=Object.create(M.prototype);for(var ze in J)Se[ze]=J[ze];return Se}function u(){}var s=.7,h=1/s,d="\\s*([+-]?\\d+)\\s*",v="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",k="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",S=/^#([0-9a-f]{3,8})$/,E=new RegExp("^rgb\\("+[d,d,d]+"\\)$"),O=new RegExp("^rgb\\("+[k,k,k]+"\\)$"),ie=new RegExp("^rgba\\("+[d,d,d,v]+"\\)$"),ve=new RegExp("^rgba\\("+[k,k,k,v]+"\\)$"),Ee=new RegExp("^hsl\\("+[v,k,k]+"\\)$"),ne=new RegExp("^hsla\\("+[v,k,k,v]+"\\)$"),R={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};n(u,pe,{copy:function(M){return Object.assign(new this.constructor,this,M)},displayable:function(){return this.rgb().displayable()},hex:I,formatHex:I,formatHsl:Y,formatRgb:le,toString:le});function I(){return this.rgb().formatHex()}function Y(){return D(this).formatHsl()}function le(){return this.rgb().formatRgb()}function pe(M){var J,Se;return M=(M+"").trim().toLowerCase(),(J=S.exec(M))?(Se=J[1].length,J=parseInt(J[1],16),Se===6?Re(J):Se===3?new x(J>>8&15|J>>4&240,J>>4&15|J&240,(J&15)<<4|J&15,1):Se===8?B(J>>24&255,J>>16&255,J>>8&255,(J&255)/255):Se===4?B(J>>12&15|J>>8&240,J>>8&15|J>>4&240,J>>4&15|J&240,((J&15)<<4|J&15)/255):null):(J=E.exec(M))?new x(J[1],J[2],J[3],1):(J=O.exec(M))?new x(J[1]*255/100,J[2]*255/100,J[3]*255/100,1):(J=ie.exec(M))?B(J[1],J[2],J[3],J[4]):(J=ve.exec(M))?B(J[1]*255/100,J[2]*255/100,J[3]*255/100,J[4]):(J=Ee.exec(M))?y(J[1],J[2]/100,J[3]/100,1):(J=ne.exec(M))?y(J[1],J[2]/100,J[3]/100,J[4]):R.hasOwnProperty(M)?Re(R[M]):M==="transparent"?new x(NaN,NaN,NaN,0):null}function Re(M){return new x(M>>16&255,M>>8&255,M&255,1)}function B(M,J,Se,ze){return ze<=0&&(M=J=Se=NaN),new x(M,J,Se,ze)}function c(M){return M instanceof u||(M=pe(M)),M?(M=M.rgb(),new x(M.r,M.g,M.b,M.opacity)):new x}function g(M,J,Se,ze){return arguments.length===1?c(M):new x(M,J,Se,ze??1)}function x(M,J,Se,ze){this.r=+M,this.g=+J,this.b=+Se,this.opacity=+ze}n(x,g,i(u,{brighter:function(M){return M=M==null?h:Math.pow(h,M),new x(this.r*M,this.g*M,this.b*M,this.opacity)},darker:function(M){return M=M==null?s:Math.pow(s,M),new x(this.r*M,this.g*M,this.b*M,this.opacity)},rgb:function(){return this},displayable:function(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:P,formatHex:P,formatRgb:b,toString:b}));function P(){return"#"+U(this.r)+U(this.g)+U(this.b)}function b(){var M=this.opacity;return M=isNaN(M)?1:Math.max(0,Math.min(1,M)),(M===1?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(M===1?")":", "+M+")")}function U(M){return M=Math.max(0,Math.min(255,Math.round(M)||0)),(M<16?"0":"")+M.toString(16)}function y(M,J,Se,ze){return ze<=0?M=J=Se=NaN:Se<=0||Se>=1?M=J=NaN:J<=0&&(M=NaN),new oe(M,J,Se,ze)}function D(M){if(M instanceof oe)return new oe(M.h,M.s,M.l,M.opacity);if(M instanceof u||(M=pe(M)),!M)return new oe;if(M instanceof oe)return M;M=M.rgb();var J=M.r/255,Se=M.g/255,ze=M.b/255,tt=Math.min(J,Se,ze),ct=Math.max(J,Se,ze),ht=NaN,wt=ct-tt,bt=(ct+tt)/2;return wt?(J===ct?ht=(Se-ze)/wt+(Se0&&bt<1?0:ht,new oe(ht,wt,bt,M.opacity)}function q(M,J,Se,ze){return arguments.length===1?D(M):new oe(M,J,Se,ze??1)}function oe(M,J,Se,ze){this.h=+M,this.s=+J,this.l=+Se,this.opacity=+ze}n(oe,q,i(u,{brighter:function(M){return M=M==null?h:Math.pow(h,M),new oe(this.h,this.s,this.l*M,this.opacity)},darker:function(M){return M=M==null?s:Math.pow(s,M),new oe(this.h,this.s,this.l*M,this.opacity)},rgb:function(){var M=this.h%360+(this.h<0)*360,J=isNaN(M)||isNaN(this.s)?0:this.s,Se=this.l,ze=Se+(Se<.5?Se:1-Se)*J,tt=2*Se-ze;return new x(Le(M>=240?M-240:M+120,tt,ze),Le(M,tt,ze),Le(M<120?M+240:M-120,tt,ze),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl:function(){var M=this.opacity;return M=isNaN(M)?1:Math.max(0,Math.min(1,M)),(M===1?"hsl(":"hsla(")+(this.h||0)+", "+(this.s||0)*100+"%, "+(this.l||0)*100+"%"+(M===1?")":", "+M+")")}}));function Le(M,J,Se){return(M<60?J+(Se-J)*M/60:M<180?Se:M<240?J+(Se-J)*(240-M)/60:J)*255}var we=Math.PI/180,re=180/Math.PI,We=18,ce=.96422,ke=1,Ce=.82521,me=4/29,Ue=6/29,He=3*Ue*Ue,Je=Ue*Ue*Ue;function te(M){if(M instanceof Q)return new Q(M.l,M.a,M.b,M.opacity);if(M instanceof Lt)return Et(M);M instanceof x||(M=c(M));var J=at(M.r),Se=at(M.g),ze=at(M.b),tt=ee((.2225045*J+.7168786*Se+.0606169*ze)/ke),ct,ht;return J===Se&&Se===ze?ct=ht=tt:(ct=ee((.4360747*J+.3850649*Se+.1430804*ze)/ce),ht=ee((.0139322*J+.0971045*Se+.7141733*ze)/Ce)),new Q(116*tt-16,500*(ct-tt),200*(tt-ht),M.opacity)}function ge(M,J){return new Q(M,0,0,J??1)}function Oe(M,J,Se,ze){return arguments.length===1?te(M):new Q(M,J,Se,ze??1)}function Q(M,J,Se,ze){this.l=+M,this.a=+J,this.b=+Se,this.opacity=+ze}n(Q,Oe,i(u,{brighter:function(M){return new Q(this.l+We*(M??1),this.a,this.b,this.opacity)},darker:function(M){return new Q(this.l-We*(M??1),this.a,this.b,this.opacity)},rgb:function(){var M=(this.l+16)/116,J=isNaN(this.a)?M:M+this.a/500,Se=isNaN(this.b)?M:M-this.b/200;return J=ce*fe(J),M=ke*fe(M),Se=Ce*fe(Se),new x(De(3.1338561*J-1.6168667*M-.4906146*Se),De(-.9787684*J+1.9161415*M+.033454*Se),De(.0719453*J-.2289914*M+1.4052427*Se),this.opacity)}}));function ee(M){return M>Je?Math.pow(M,1/3):M/He+me}function fe(M){return M>Ue?M*M*M:He*(M-me)}function De(M){return 255*(M<=.0031308?12.92*M:1.055*Math.pow(M,1/2.4)-.055)}function at(M){return(M/=255)<=.04045?M/12.92:Math.pow((M+.055)/1.055,2.4)}function dt(M){if(M instanceof Lt)return new Lt(M.h,M.c,M.l,M.opacity);if(M instanceof Q||(M=te(M)),M.a===0&&M.b===0)return new Lt(NaN,0{(function(e,n){typeof Rf=="object"&&typeof Cx!="undefined"?n(Rf,If()):typeof define=="function"&&define.amd?define(["exports","d3-color"],n):(e=e||self,n(e.d3=e.d3||{},e.d3))})(Rf,function(e,n){"use strict";function i(A,j,Ae,Xe,je){var M=A*A,J=M*A;return((1-3*A+3*M-J)*j+(4-6*M+3*J)*Ae+(1+3*A+3*M-3*J)*Xe+J*je)/6}function u(A){var j=A.length-1;return function(Ae){var Xe=Ae<=0?Ae=0:Ae>=1?(Ae=1,j-1):Math.floor(Ae*j),je=A[Xe],M=A[Xe+1],J=Xe>0?A[Xe-1]:2*je-M,Se=Xe180||Ae<-180?Ae-360*Math.round(Ae/360):Ae):h(isNaN(A)?j:A)}function S(A){return(A=+A)==1?E:function(j,Ae){return Ae-j?v(j,Ae,A):h(isNaN(j)?Ae:j)}}function E(A,j){var Ae=j-A;return Ae?d(A,Ae):h(isNaN(A)?j:A)}var O=function A(j){var Ae=S(j);function Xe(je,M){var J=Ae((je=n.rgb(je)).r,(M=n.rgb(M)).r),Se=Ae(je.g,M.g),ze=Ae(je.b,M.b),tt=E(je.opacity,M.opacity);return function(ct){return je.r=J(ct),je.g=Se(ct),je.b=ze(ct),je.opacity=tt(ct),je+""}}return Xe.gamma=A,Xe}(1);function ie(A){return function(j){var Ae=j.length,Xe=new Array(Ae),je=new Array(Ae),M=new Array(Ae),J,Se;for(J=0;JAe&&(M=j.slice(Ae,M),Se[J]?Se[J]+=M:Se[++J]=M),(Xe=Xe[0])===(je=je[0])?Se[J]?Se[J]+=je:Se[++J]=je:(Se[++J]=null,ze.push({i:J,x:pe(Xe,je)})),Ae=c.lastIndex;return Ae180?ct+=360:ct-tt>180&&(tt+=360),wt.push({i:ht.push(je(ht)+"rotate(",null,Xe)-2,x:pe(tt,ct)})):ct&&ht.push(je(ht)+"rotate("+ct+Xe)}function Se(tt,ct,ht,wt){tt!==ct?wt.push({i:ht.push(je(ht)+"skewX(",null,Xe)-2,x:pe(tt,ct)}):ct&&ht.push(je(ht)+"skewX("+ct+Xe)}function ze(tt,ct,ht,wt,bt,Rt){if(tt!==ht||ct!==wt){var Wt=bt.push(je(bt)+"scale(",null,",",null,")");Rt.push({i:Wt-4,x:pe(tt,ht)},{i:Wt-2,x:pe(ct,wt)})}else(ht!==1||wt!==1)&&bt.push(je(bt)+"scale("+ht+","+wt+")")}return function(tt,ct){var ht=[],wt=[];return tt=A(tt),ct=A(ct),M(tt.translateX,tt.translateY,ct.translateX,ct.translateY,ht,wt),J(tt.rotate,ct.rotate,ht,wt),Se(tt.skewX,ct.skewX,ht,wt),ze(tt.scaleX,tt.scaleY,ct.scaleX,ct.scaleY,ht,wt),tt=ct=null,function(bt){for(var Rt=-1,Wt=wt.length,ln;++Rt{(function(e,n){typeof zf=="object"&&typeof Mx!="undefined"?n(zf):typeof define=="function"&&define.amd?define(["exports"],n):(e=typeof globalThis!="undefined"?globalThis:e||self,n(e.d3=e.d3||{}))})(zf,function(e){"use strict";function n(c){return Math.abs(c=Math.round(c))>=1e21?c.toLocaleString("en").replace(/,/g,""):c.toString(10)}function i(c,g){if((x=(c=g?c.toExponential(g-1):c.toExponential()).indexOf("e"))<0)return null;var x,P=c.slice(0,x);return[P.length>1?P[0]+P.slice(2):P,+c.slice(x+1)]}function u(c){return c=i(Math.abs(c)),c?c[1]:NaN}function s(c,g){return function(x,P){for(var b=x.length,U=[],y=0,D=c[0],q=0;b>0&&D>0&&(q+D+1>P&&(D=Math.max(1,P-q)),U.push(x.substring(b-=D,b+D)),!((q+=D+1)>P));)D=c[y=(y+1)%c.length];return U.reverse().join(g)}}function h(c){return function(g){return g.replace(/[0-9]/g,function(x){return c[+x]})}}var d=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function v(c){if(!(g=d.exec(c)))throw new Error("invalid format: "+c);var g;return new k({fill:g[1],align:g[2],sign:g[3],symbol:g[4],zero:g[5],width:g[6],comma:g[7],precision:g[8]&&g[8].slice(1),trim:g[9],type:g[10]})}v.prototype=k.prototype;function k(c){this.fill=c.fill===void 0?" ":c.fill+"",this.align=c.align===void 0?">":c.align+"",this.sign=c.sign===void 0?"-":c.sign+"",this.symbol=c.symbol===void 0?"":c.symbol+"",this.zero=!!c.zero,this.width=c.width===void 0?void 0:+c.width,this.comma=!!c.comma,this.precision=c.precision===void 0?void 0:+c.precision,this.trim=!!c.trim,this.type=c.type===void 0?"":c.type+""}k.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function S(c){e:for(var g=c.length,x=1,P=-1,b;x0&&(P=0);break}return P>0?c.slice(0,P)+c.slice(b+1):c}var E;function O(c,g){var x=i(c,g);if(!x)return c+"";var P=x[0],b=x[1],U=b-(E=Math.max(-8,Math.min(8,Math.floor(b/3)))*3)+1,y=P.length;return U===y?P:U>y?P+new Array(U-y+1).join("0"):U>0?P.slice(0,U)+"."+P.slice(U):"0."+new Array(1-U).join("0")+i(c,Math.max(0,g+U-1))[0]}function ie(c,g){var x=i(c,g);if(!x)return c+"";var P=x[0],b=x[1];return b<0?"0."+new Array(-b).join("0")+P:P.length>b+1?P.slice(0,b+1)+"."+P.slice(b+1):P+new Array(b-P.length+2).join("0")}var ve={"%":function(c,g){return(c*100).toFixed(g)},b:function(c){return Math.round(c).toString(2)},c:function(c){return c+""},d:n,e:function(c,g){return c.toExponential(g)},f:function(c,g){return c.toFixed(g)},g:function(c,g){return c.toPrecision(g)},o:function(c){return Math.round(c).toString(8)},p:function(c,g){return ie(c*100,g)},r:ie,s:O,X:function(c){return Math.round(c).toString(16).toUpperCase()},x:function(c){return Math.round(c).toString(16)}};function Ee(c){return c}var ne=Array.prototype.map,R=["y","z","a","f","p","n","\xB5","m","","k","M","G","T","P","E","Z","Y"];function I(c){var g=c.grouping===void 0||c.thousands===void 0?Ee:s(ne.call(c.grouping,Number),c.thousands+""),x=c.currency===void 0?"":c.currency[0]+"",P=c.currency===void 0?"":c.currency[1]+"",b=c.decimal===void 0?".":c.decimal+"",U=c.numerals===void 0?Ee:h(ne.call(c.numerals,String)),y=c.percent===void 0?"%":c.percent+"",D=c.minus===void 0?"-":c.minus+"",q=c.nan===void 0?"NaN":c.nan+"";function oe(we){we=v(we);var re=we.fill,We=we.align,ce=we.sign,ke=we.symbol,Ce=we.zero,me=we.width,Ue=we.comma,He=we.precision,Je=we.trim,te=we.type;te==="n"?(Ue=!0,te="g"):ve[te]||(He===void 0&&(He=12),Je=!0,te="g"),(Ce||re==="0"&&We==="=")&&(Ce=!0,re="0",We="=");var ge=ke==="$"?x:ke==="#"&&/[boxX]/.test(te)?"0"+te.toLowerCase():"",Oe=ke==="$"?P:/[%p]/.test(te)?y:"",Q=ve[te],ee=/[defgprs%]/.test(te);He=He===void 0?6:/[gprs]/.test(te)?Math.max(1,Math.min(21,He)):Math.max(0,Math.min(20,He));function fe(De){var at=ge,dt=Oe,jt,Gt,Lt;if(te==="c")dt=Q(De)+dt,De="";else{De=+De;var Et=De<0||1/De<0;if(De=isNaN(De)?q:Q(Math.abs(De),He),Je&&(De=S(De)),Et&&+De==0&&ce!=="+"&&(Et=!1),at=(Et?ce==="("?ce:D:ce==="-"||ce==="("?"":ce)+at,dt=(te==="s"?R[8+E/3]:"")+dt+(Et&&ce==="("?")":""),ee){for(jt=-1,Gt=De.length;++jtLt||Lt>57){dt=(Lt===46?b+De.slice(jt+1):De.slice(jt))+dt,De=De.slice(0,jt);break}}}Ue&&!Ce&&(De=g(De,1/0));var Bt=at.length+De.length+dt.length,zt=Bt>1)+at+De+dt+zt.slice(Bt);break;default:De=zt+at+De+dt;break}return U(De)}return fe.toString=function(){return we+""},fe}function Le(we,re){var We=oe((we=v(we),we.type="f",we)),ce=Math.max(-8,Math.min(8,Math.floor(u(re)/3)))*3,ke=Math.pow(10,-ce),Ce=R[8+ce/3];return function(me){return We(ke*me)+Ce}}return{format:oe,formatPrefix:Le}}var Y;le({decimal:".",thousands:",",grouping:[3],currency:["$",""],minus:"-"});function le(c){return Y=I(c),e.format=Y.format,e.formatPrefix=Y.formatPrefix,Y}function pe(c){return Math.max(0,-u(Math.abs(c)))}function Re(c,g){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(u(g)/3)))*3-u(Math.abs(c)))}function B(c,g){return c=Math.abs(c),g=Math.abs(g)-c,Math.max(0,u(g)-u(c))+1}e.FormatSpecifier=k,e.formatDefaultLocale=le,e.formatLocale=I,e.formatSpecifier=v,e.precisionFixed=pe,e.precisionPrefix=Re,e.precisionRound=B,Object.defineProperty(e,"__esModule",{value:!0})})});var Bp=yt((Hf,Nx)=>{(function(e,n){typeof Hf=="object"&&typeof Nx!="undefined"?n(Hf):typeof define=="function"&&define.amd?define(["exports"],n):(e=e||self,n(e.d3=e.d3||{}))})(Hf,function(e){"use strict";var n=new Date,i=new Date;function u(A,j,Ae,Xe){function je(M){return A(M=arguments.length===0?new Date:new Date(+M)),M}return je.floor=function(M){return A(M=new Date(+M)),M},je.ceil=function(M){return A(M=new Date(M-1)),j(M,1),A(M),M},je.round=function(M){var J=je(M),Se=je.ceil(M);return M-J0))return ze;do ze.push(tt=new Date(+M)),j(M,Se),A(M);while(tt=J)for(;A(J),!M(J);)J.setTime(J-1)},function(J,Se){if(J>=J)if(Se<0)for(;++Se<=0;)for(;j(J,-1),!M(J););else for(;--Se>=0;)for(;j(J,1),!M(J););})},Ae&&(je.count=function(M,J){return n.setTime(+M),i.setTime(+J),A(n),A(i),Math.floor(Ae(n,i))},je.every=function(M){return M=Math.floor(M),!isFinite(M)||!(M>0)?null:M>1?je.filter(Xe?function(J){return Xe(J)%M==0}:function(J){return je.count(0,J)%M==0}):je}),je}var s=u(function(){},function(A,j){A.setTime(+A+j)},function(A,j){return j-A});s.every=function(A){return A=Math.floor(A),!isFinite(A)||!(A>0)?null:A>1?u(function(j){j.setTime(Math.floor(j/A)*A)},function(j,Ae){j.setTime(+j+Ae*A)},function(j,Ae){return(Ae-j)/A}):s};var h=s.range,d=1e3,v=6e4,k=36e5,S=864e5,E=6048e5,O=u(function(A){A.setTime(A-A.getMilliseconds())},function(A,j){A.setTime(+A+j*d)},function(A,j){return(j-A)/d},function(A){return A.getUTCSeconds()}),ie=O.range,ve=u(function(A){A.setTime(A-A.getMilliseconds()-A.getSeconds()*d)},function(A,j){A.setTime(+A+j*v)},function(A,j){return(j-A)/v},function(A){return A.getMinutes()}),Ee=ve.range,ne=u(function(A){A.setTime(A-A.getMilliseconds()-A.getSeconds()*d-A.getMinutes()*v)},function(A,j){A.setTime(+A+j*k)},function(A,j){return(j-A)/k},function(A){return A.getHours()}),R=ne.range,I=u(function(A){A.setHours(0,0,0,0)},function(A,j){A.setDate(A.getDate()+j)},function(A,j){return(j-A-(j.getTimezoneOffset()-A.getTimezoneOffset())*v)/S},function(A){return A.getDate()-1}),Y=I.range;function le(A){return u(function(j){j.setDate(j.getDate()-(j.getDay()+7-A)%7),j.setHours(0,0,0,0)},function(j,Ae){j.setDate(j.getDate()+Ae*7)},function(j,Ae){return(Ae-j-(Ae.getTimezoneOffset()-j.getTimezoneOffset())*v)/E})}var pe=le(0),Re=le(1),B=le(2),c=le(3),g=le(4),x=le(5),P=le(6),b=pe.range,U=Re.range,y=B.range,D=c.range,q=g.range,oe=x.range,Le=P.range,we=u(function(A){A.setDate(1),A.setHours(0,0,0,0)},function(A,j){A.setMonth(A.getMonth()+j)},function(A,j){return j.getMonth()-A.getMonth()+(j.getFullYear()-A.getFullYear())*12},function(A){return A.getMonth()}),re=we.range,We=u(function(A){A.setMonth(0,1),A.setHours(0,0,0,0)},function(A,j){A.setFullYear(A.getFullYear()+j)},function(A,j){return j.getFullYear()-A.getFullYear()},function(A){return A.getFullYear()});We.every=function(A){return!isFinite(A=Math.floor(A))||!(A>0)?null:u(function(j){j.setFullYear(Math.floor(j.getFullYear()/A)*A),j.setMonth(0,1),j.setHours(0,0,0,0)},function(j,Ae){j.setFullYear(j.getFullYear()+Ae*A)})};var ce=We.range,ke=u(function(A){A.setUTCSeconds(0,0)},function(A,j){A.setTime(+A+j*v)},function(A,j){return(j-A)/v},function(A){return A.getUTCMinutes()}),Ce=ke.range,me=u(function(A){A.setUTCMinutes(0,0,0)},function(A,j){A.setTime(+A+j*k)},function(A,j){return(j-A)/k},function(A){return A.getUTCHours()}),Ue=me.range,He=u(function(A){A.setUTCHours(0,0,0,0)},function(A,j){A.setUTCDate(A.getUTCDate()+j)},function(A,j){return(j-A)/S},function(A){return A.getUTCDate()-1}),Je=He.range;function te(A){return u(function(j){j.setUTCDate(j.getUTCDate()-(j.getUTCDay()+7-A)%7),j.setUTCHours(0,0,0,0)},function(j,Ae){j.setUTCDate(j.getUTCDate()+Ae*7)},function(j,Ae){return(Ae-j)/E})}var ge=te(0),Oe=te(1),Q=te(2),ee=te(3),fe=te(4),De=te(5),at=te(6),dt=ge.range,jt=Oe.range,Gt=Q.range,Lt=ee.range,Et=fe.range,Bt=De.range,zt=at.range,Zt=u(function(A){A.setUTCDate(1),A.setUTCHours(0,0,0,0)},function(A,j){A.setUTCMonth(A.getUTCMonth()+j)},function(A,j){return j.getUTCMonth()-A.getUTCMonth()+(j.getUTCFullYear()-A.getUTCFullYear())*12},function(A){return A.getUTCMonth()}),pn=Zt.range,$t=u(function(A){A.setUTCMonth(0,1),A.setUTCHours(0,0,0,0)},function(A,j){A.setUTCFullYear(A.getUTCFullYear()+j)},function(A,j){return j.getUTCFullYear()-A.getUTCFullYear()},function(A){return A.getUTCFullYear()});$t.every=function(A){return!isFinite(A=Math.floor(A))||!(A>0)?null:u(function(j){j.setUTCFullYear(Math.floor(j.getUTCFullYear()/A)*A),j.setUTCMonth(0,1),j.setUTCHours(0,0,0,0)},function(j,Ae){j.setUTCFullYear(j.getUTCFullYear()+Ae*A)})};var _n=$t.range;e.timeDay=I,e.timeDays=Y,e.timeFriday=x,e.timeFridays=oe,e.timeHour=ne,e.timeHours=R,e.timeInterval=u,e.timeMillisecond=s,e.timeMilliseconds=h,e.timeMinute=ve,e.timeMinutes=Ee,e.timeMonday=Re,e.timeMondays=U,e.timeMonth=we,e.timeMonths=re,e.timeSaturday=P,e.timeSaturdays=Le,e.timeSecond=O,e.timeSeconds=ie,e.timeSunday=pe,e.timeSundays=b,e.timeThursday=g,e.timeThursdays=q,e.timeTuesday=B,e.timeTuesdays=y,e.timeWednesday=c,e.timeWednesdays=D,e.timeWeek=pe,e.timeWeeks=b,e.timeYear=We,e.timeYears=ce,e.utcDay=He,e.utcDays=Je,e.utcFriday=De,e.utcFridays=Bt,e.utcHour=me,e.utcHours=Ue,e.utcMillisecond=s,e.utcMilliseconds=h,e.utcMinute=ke,e.utcMinutes=Ce,e.utcMonday=Oe,e.utcMondays=jt,e.utcMonth=Zt,e.utcMonths=pn,e.utcSaturday=at,e.utcSaturdays=zt,e.utcSecond=O,e.utcSeconds=ie,e.utcSunday=ge,e.utcSundays=dt,e.utcThursday=fe,e.utcThursdays=Et,e.utcTuesday=Q,e.utcTuesdays=Gt,e.utcWednesday=ee,e.utcWednesdays=Lt,e.utcWeek=ge,e.utcWeeks=dt,e.utcYear=$t,e.utcYears=_n,Object.defineProperty(e,"__esModule",{value:!0})})});var Lx=yt((Wf,Px)=>{(function(e,n){typeof Wf=="object"&&typeof Px!="undefined"?n(Wf,Bp()):typeof define=="function"&&define.amd?define(["exports","d3-time"],n):(e=e||self,n(e.d3=e.d3||{},e.d3))})(Wf,function(e,n){"use strict";function i(F){if(0<=F.y&&F.y<100){var $=new Date(-1,F.m,F.d,F.H,F.M,F.S,F.L);return $.setFullYear(F.y),$}return new Date(F.y,F.m,F.d,F.H,F.M,F.S,F.L)}function u(F){if(0<=F.y&&F.y<100){var $=new Date(Date.UTC(-1,F.m,F.d,F.H,F.M,F.S,F.L));return $.setUTCFullYear(F.y),$}return new Date(Date.UTC(F.y,F.m,F.d,F.H,F.M,F.S,F.L))}function s(F,$,N){return{y:F,m:$,d:N,H:0,M:0,S:0,L:0}}function h(F){var $=F.dateTime,N=F.date,L=F.time,V=F.periods,he=F.days,_e=F.shortDays,Fe=F.months,Ie=F.shortMonths,$e=ie(V),Ke=ve(V),et=ie(he),vt=ve(he),Ot=ie(_e),Ct=ve(_e),Nt=ie(Fe),Jt=ve(Fe),An=ie(Ie),bn=ve(Ie),Ut={a:Ze,A:ft,b:Qe,B:Vt,c:null,d:we,e:we,f:Ce,g:De,G:dt,H:re,I:We,j:ce,L:ke,m:me,M:Ue,p:sn,q:on,Q:wt,s:bt,S:He,u:Je,U:te,V:Oe,w:Q,W:ee,x:null,X:null,y:fe,Y:at,Z:jt,"%":ht},st={a:In,A:_i,b:ki,B:Qr,c:null,d:Gt,e:Gt,f:Zt,g:Se,G:tt,H:Lt,I:Et,j:Bt,L:zt,m:pn,M:$t,p:w,q:z,Q:wt,s:bt,S:_n,u:A,U:j,V:Xe,w:je,W:M,x:null,X:null,y:J,Y:ze,Z:ct,"%":ht},Tt={a:se,A:qe,b:de,B:_,c:H,d:g,e:g,f:D,g:pe,G:le,H:P,I:P,j:x,L:y,m:c,M:b,p:G,q:B,Q:oe,s:Le,S:U,u:ne,U:R,V:I,w:Ee,W:Y,x:be,X:Ne,y:pe,Y:le,Z:Re,"%":q};Ut.x=rn(N,Ut),Ut.X=rn(L,Ut),Ut.c=rn($,Ut),st.x=rn(N,st),st.X=rn(L,st),st.c=rn($,st);function rn(W,ae){return function(Me){var ue=[],Ye=-1,xe=0,Ge=W.length,ot,rt,mt;for(Me instanceof Date||(Me=new Date(+Me));++Ye53)return null;"w"in ue||(ue.w=1),"Z"in ue?(xe=u(s(ue.y,0,1)),Ge=xe.getUTCDay(),xe=Ge>4||Ge===0?n.utcMonday.ceil(xe):n.utcMonday(xe),xe=n.utcDay.offset(xe,(ue.V-1)*7),ue.y=xe.getUTCFullYear(),ue.m=xe.getUTCMonth(),ue.d=xe.getUTCDate()+(ue.w+6)%7):(xe=i(s(ue.y,0,1)),Ge=xe.getDay(),xe=Ge>4||Ge===0?n.timeMonday.ceil(xe):n.timeMonday(xe),xe=n.timeDay.offset(xe,(ue.V-1)*7),ue.y=xe.getFullYear(),ue.m=xe.getMonth(),ue.d=xe.getDate()+(ue.w+6)%7)}else("W"in ue||"U"in ue)&&("w"in ue||(ue.w="u"in ue?ue.u%7:"W"in ue?1:0),Ge="Z"in ue?u(s(ue.y,0,1)).getUTCDay():i(s(ue.y,0,1)).getDay(),ue.m=0,ue.d="W"in ue?(ue.w+6)%7+ue.W*7-(Ge+5)%7:ue.w+ue.U*7-(Ge+6)%7);return"Z"in ue?(ue.H+=ue.Z/100|0,ue.M+=ue.Z%100,u(ue)):i(ue)}}function St(W,ae,Me,ue){for(var Ye=0,xe=ae.length,Ge=Me.length,ot,rt;Ye=Ge)return-1;if(ot=ae.charCodeAt(Ye++),ot===37){if(ot=ae.charAt(Ye++),rt=Tt[ot in d?ae.charAt(Ye++):ot],!rt||(ue=rt(W,Me,ue))<0)return-1}else if(ot!=Me.charCodeAt(ue++))return-1}return ue}function G(W,ae,Me){var ue=$e.exec(ae.slice(Me));return ue?(W.p=Ke[ue[0].toLowerCase()],Me+ue[0].length):-1}function se(W,ae,Me){var ue=Ot.exec(ae.slice(Me));return ue?(W.w=Ct[ue[0].toLowerCase()],Me+ue[0].length):-1}function qe(W,ae,Me){var ue=et.exec(ae.slice(Me));return ue?(W.w=vt[ue[0].toLowerCase()],Me+ue[0].length):-1}function de(W,ae,Me){var ue=An.exec(ae.slice(Me));return ue?(W.m=bn[ue[0].toLowerCase()],Me+ue[0].length):-1}function _(W,ae,Me){var ue=Nt.exec(ae.slice(Me));return ue?(W.m=Jt[ue[0].toLowerCase()],Me+ue[0].length):-1}function H(W,ae,Me){return St(W,$,ae,Me)}function be(W,ae,Me){return St(W,N,ae,Me)}function Ne(W,ae,Me){return St(W,L,ae,Me)}function Ze(W){return _e[W.getDay()]}function ft(W){return he[W.getDay()]}function Qe(W){return Ie[W.getMonth()]}function Vt(W){return Fe[W.getMonth()]}function sn(W){return V[+(W.getHours()>=12)]}function on(W){return 1+~~(W.getMonth()/3)}function In(W){return _e[W.getUTCDay()]}function _i(W){return he[W.getUTCDay()]}function ki(W){return Ie[W.getUTCMonth()]}function Qr(W){return Fe[W.getUTCMonth()]}function w(W){return V[+(W.getUTCHours()>=12)]}function z(W){return 1+~~(W.getUTCMonth()/3)}return{format:function(W){var ae=rn(W+="",Ut);return ae.toString=function(){return W},ae},parse:function(W){var ae=Xt(W+="",!1);return ae.toString=function(){return W},ae},utcFormat:function(W){var ae=rn(W+="",st);return ae.toString=function(){return W},ae},utcParse:function(W){var ae=Xt(W+="",!0);return ae.toString=function(){return W},ae}}}var d={"-":"",_:" ","0":"0"},v=/^\s*\d+/,k=/^%/,S=/[\\^$*+?|[\]().{}]/g;function E(F,$,N){var L=F<0?"-":"",V=(L?-F:F)+"",he=V.length;return L+(he68?1900:2e3),N+L[0].length):-1}function Re(F,$,N){var L=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec($.slice(N,N+6));return L?(F.Z=L[1]?0:-(L[2]+(L[3]||"00")),N+L[0].length):-1}function B(F,$,N){var L=v.exec($.slice(N,N+1));return L?(F.q=L[0]*3-3,N+L[0].length):-1}function c(F,$,N){var L=v.exec($.slice(N,N+2));return L?(F.m=L[0]-1,N+L[0].length):-1}function g(F,$,N){var L=v.exec($.slice(N,N+2));return L?(F.d=+L[0],N+L[0].length):-1}function x(F,$,N){var L=v.exec($.slice(N,N+3));return L?(F.m=0,F.d=+L[0],N+L[0].length):-1}function P(F,$,N){var L=v.exec($.slice(N,N+2));return L?(F.H=+L[0],N+L[0].length):-1}function b(F,$,N){var L=v.exec($.slice(N,N+2));return L?(F.M=+L[0],N+L[0].length):-1}function U(F,$,N){var L=v.exec($.slice(N,N+2));return L?(F.S=+L[0],N+L[0].length):-1}function y(F,$,N){var L=v.exec($.slice(N,N+3));return L?(F.L=+L[0],N+L[0].length):-1}function D(F,$,N){var L=v.exec($.slice(N,N+6));return L?(F.L=Math.floor(L[0]/1e3),N+L[0].length):-1}function q(F,$,N){var L=k.exec($.slice(N,N+1));return L?N+L[0].length:-1}function oe(F,$,N){var L=v.exec($.slice(N));return L?(F.Q=+L[0],N+L[0].length):-1}function Le(F,$,N){var L=v.exec($.slice(N));return L?(F.s=+L[0],N+L[0].length):-1}function we(F,$){return E(F.getDate(),$,2)}function re(F,$){return E(F.getHours(),$,2)}function We(F,$){return E(F.getHours()%12||12,$,2)}function ce(F,$){return E(1+n.timeDay.count(n.timeYear(F),F),$,3)}function ke(F,$){return E(F.getMilliseconds(),$,3)}function Ce(F,$){return ke(F,$)+"000"}function me(F,$){return E(F.getMonth()+1,$,2)}function Ue(F,$){return E(F.getMinutes(),$,2)}function He(F,$){return E(F.getSeconds(),$,2)}function Je(F){var $=F.getDay();return $===0?7:$}function te(F,$){return E(n.timeSunday.count(n.timeYear(F)-1,F),$,2)}function ge(F){var $=F.getDay();return $>=4||$===0?n.timeThursday(F):n.timeThursday.ceil(F)}function Oe(F,$){return F=ge(F),E(n.timeThursday.count(n.timeYear(F),F)+(n.timeYear(F).getDay()===4),$,2)}function Q(F){return F.getDay()}function ee(F,$){return E(n.timeMonday.count(n.timeYear(F)-1,F),$,2)}function fe(F,$){return E(F.getFullYear()%100,$,2)}function De(F,$){return F=ge(F),E(F.getFullYear()%100,$,2)}function at(F,$){return E(F.getFullYear()%1e4,$,4)}function dt(F,$){var N=F.getDay();return F=N>=4||N===0?n.timeThursday(F):n.timeThursday.ceil(F),E(F.getFullYear()%1e4,$,4)}function jt(F){var $=F.getTimezoneOffset();return($>0?"-":($*=-1,"+"))+E($/60|0,"0",2)+E($%60,"0",2)}function Gt(F,$){return E(F.getUTCDate(),$,2)}function Lt(F,$){return E(F.getUTCHours(),$,2)}function Et(F,$){return E(F.getUTCHours()%12||12,$,2)}function Bt(F,$){return E(1+n.utcDay.count(n.utcYear(F),F),$,3)}function zt(F,$){return E(F.getUTCMilliseconds(),$,3)}function Zt(F,$){return zt(F,$)+"000"}function pn(F,$){return E(F.getUTCMonth()+1,$,2)}function $t(F,$){return E(F.getUTCMinutes(),$,2)}function _n(F,$){return E(F.getUTCSeconds(),$,2)}function A(F){var $=F.getUTCDay();return $===0?7:$}function j(F,$){return E(n.utcSunday.count(n.utcYear(F)-1,F),$,2)}function Ae(F){var $=F.getUTCDay();return $>=4||$===0?n.utcThursday(F):n.utcThursday.ceil(F)}function Xe(F,$){return F=Ae(F),E(n.utcThursday.count(n.utcYear(F),F)+(n.utcYear(F).getUTCDay()===4),$,2)}function je(F){return F.getUTCDay()}function M(F,$){return E(n.utcMonday.count(n.utcYear(F)-1,F),$,2)}function J(F,$){return E(F.getUTCFullYear()%100,$,2)}function Se(F,$){return F=Ae(F),E(F.getUTCFullYear()%100,$,2)}function ze(F,$){return E(F.getUTCFullYear()%1e4,$,4)}function tt(F,$){var N=F.getUTCDay();return F=N>=4||N===0?n.utcThursday(F):n.utcThursday.ceil(F),E(F.getUTCFullYear()%1e4,$,4)}function ct(){return"+0000"}function ht(){return"%"}function wt(F){return+F}function bt(F){return Math.floor(+F/1e3)}var Rt;Wt({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function Wt(F){return Rt=h(F),e.timeFormat=Rt.format,e.timeParse=Rt.parse,e.utcFormat=Rt.utcFormat,e.utcParse=Rt.utcParse,Rt}var ln="%Y-%m-%dT%H:%M:%S.%LZ";function nn(F){return F.toISOString()}var gn=Date.prototype.toISOString?nn:e.utcFormat(ln);function K(F){var $=new Date(F);return isNaN($)?null:$}var Pe=+new Date("2000-01-01T00:00:00.000Z")?K:e.utcParse(ln);e.isoFormat=gn,e.isoParse=Pe,e.timeFormatDefaultLocale=Wt,e.timeFormatLocale=h,Object.defineProperty(e,"__esModule",{value:!0})})});var jp=yt((Uf,Ox)=>{(function(e,n){typeof Uf=="object"&&typeof Ox!="undefined"?n(Uf,Up(),Sx(),Ff(),Ex(),Bp(),Lx()):typeof define=="function"&&define.amd?define(["exports","d3-collection","d3-array","d3-interpolate","d3-format","d3-time","d3-time-format"],n):n(e.d3=e.d3||{},e.d3,e.d3,e.d3,e.d3,e.d3,e.d3)})(Uf,function(e,n,i,u,s,h,d){"use strict";function v(K,Pe){switch(arguments.length){case 0:break;case 1:this.range(K);break;default:this.range(Pe).domain(K);break}return this}function k(K,Pe){switch(arguments.length){case 0:break;case 1:this.interpolator(K);break;default:this.interpolator(Pe).domain(K);break}return this}var S=Array.prototype,E=S.map,O=S.slice,ie={name:"implicit"};function ve(){var K=n.map(),Pe=[],F=[],$=ie;function N(L){var V=L+"",he=K.get(V);if(!he){if($!==ie)return $;K.set(V,he=Pe.push(L))}return F[(he-1)%F.length]}return N.domain=function(L){if(!arguments.length)return Pe.slice();Pe=[],K=n.map();for(var V=-1,he=L.length,_e,Fe;++VF&&($=Pe,Pe=F,F=$),function(N){return Math.max(Pe,Math.min(F,N))}}function c(K,Pe,F){var $=K[0],N=K[1],L=Pe[0],V=Pe[1];return N<$?($=Re(N,$),L=F(V,L)):($=Re($,N),L=F(L,V)),function(he){return L($(he))}}function g(K,Pe,F){var $=Math.min(K.length,Pe.length)-1,N=new Array($),L=new Array($),V=-1;for(K[$]2?g:c,_e=Fe=null,$e}function $e(Ke){return isNaN(Ke=+Ke)?L:(_e||(_e=he(K.map($),Pe,F)))($(V(Ke)))}return $e.invert=function(Ke){return V(N((Fe||(Fe=he(Pe,K.map($),u.interpolateNumber)))(Ke)))},$e.domain=function(Ke){return arguments.length?(K=E.call(Ke,Y),V===pe||(V=B(K)),Ie()):K.slice()},$e.range=function(Ke){return arguments.length?(Pe=O.call(Ke),Ie()):Pe.slice()},$e.rangeRound=function(Ke){return Pe=O.call(Ke),F=u.interpolateRound,Ie()},$e.clamp=function(Ke){return arguments.length?(V=Ke?B(K):pe,$e):V!==pe},$e.interpolate=function(Ke){return arguments.length?(F=Ke,Ie()):F},$e.unknown=function(Ke){return arguments.length?(L=Ke,$e):L},function(Ke,et){return $=Ke,N=et,Ie()}}function b(K,Pe){return P()(K,Pe)}function U(K,Pe,F,$){var N=i.tickStep(K,Pe,F),L;switch($=s.formatSpecifier($??",f"),$.type){case"s":{var V=Math.max(Math.abs(K),Math.abs(Pe));return $.precision==null&&!isNaN(L=s.precisionPrefix(N,V))&&($.precision=L),s.formatPrefix($,V)}case"":case"e":case"g":case"p":case"r":{$.precision==null&&!isNaN(L=s.precisionRound(N,Math.max(Math.abs(K),Math.abs(Pe))))&&($.precision=L-($.type==="e"));break}case"f":case"%":{$.precision==null&&!isNaN(L=s.precisionFixed(N))&&($.precision=L-($.type==="%")*2);break}}return s.format($)}function y(K){var Pe=K.domain;return K.ticks=function(F){var $=Pe();return i.ticks($[0],$[$.length-1],F??10)},K.tickFormat=function(F,$){var N=Pe();return U(N[0],N[N.length-1],F??10,$)},K.nice=function(F){F==null&&(F=10);var $=Pe(),N=0,L=$.length-1,V=$[N],he=$[L],_e;return he0?(V=Math.floor(V/_e)*_e,he=Math.ceil(he/_e)*_e,_e=i.tickIncrement(V,he,F)):_e<0&&(V=Math.ceil(V*_e)/_e,he=Math.floor(he*_e)/_e,_e=i.tickIncrement(V,he,F)),_e>0?($[N]=Math.floor(V/_e)*_e,$[L]=Math.ceil(he/_e)*_e,Pe($)):_e<0&&($[N]=Math.ceil(V*_e)/_e,$[L]=Math.floor(he*_e)/_e,Pe($)),K},K}function D(){var K=b(pe,pe);return K.copy=function(){return x(K,D())},v.apply(K,arguments),y(K)}function q(K){var Pe;function F($){return isNaN($=+$)?Pe:$}return F.invert=F,F.domain=F.range=function($){return arguments.length?(K=E.call($,Y),F):K.slice()},F.unknown=function($){return arguments.length?(Pe=$,F):Pe},F.copy=function(){return q(K).unknown(Pe)},K=arguments.length?E.call(K,Y):[0,1],y(F)}function oe(K,Pe){K=K.slice();var F=0,$=K.length-1,N=K[F],L=K[$],V;return L0){for(;KeIe)break;Jt.push(Ct)}}else for(;Ke=1;--Ot)if(Ct=vt*Ot,!(CtIe)break;Jt.push(Ct)}}else Jt=i.ticks(Ke,et,Math.min(et-Ke,Nt)).map(L);return $e?Jt.reverse():Jt},Pe.tickFormat=function(he,_e){if(_e==null&&(_e=$===10?".0e":","),typeof _e!="function"&&(_e=s.format(_e)),he===1/0)return _e;he==null&&(he=10);var Fe=Math.max(1,$*he/Pe.ticks().length);return function(Ie){var $e=Ie/L(Math.round(N(Ie)));return $e*$<$-.5&&($e*=$),$e<=Fe?_e(Ie):""}},Pe.nice=function(){return F(oe(F(),{floor:function(he){return L(Math.floor(N(he)))},ceil:function(he){return L(Math.ceil(N(he)))}}))},Pe}function He(){var K=Ue(P()).domain([1,10]);return K.copy=function(){return x(K,He()).base(K.base())},v.apply(K,arguments),K}function Je(K){return function(Pe){return Math.sign(Pe)*Math.log1p(Math.abs(Pe/K))}}function te(K){return function(Pe){return Math.sign(Pe)*Math.expm1(Math.abs(Pe))*K}}function ge(K){var Pe=1,F=K(Je(Pe),te(Pe));return F.constant=function($){return arguments.length?K(Je(Pe=+$),te(Pe)):Pe},y(F)}function Oe(){var K=ge(P());return K.copy=function(){return x(K,Oe()).constant(K.constant())},v.apply(K,arguments)}function Q(K){return function(Pe){return Pe<0?-Math.pow(-Pe,K):Math.pow(Pe,K)}}function ee(K){return K<0?-Math.sqrt(-K):Math.sqrt(K)}function fe(K){return K<0?-K*K:K*K}function De(K){var Pe=K(pe,pe),F=1;function $(){return F===1?K(pe,pe):F===.5?K(ee,fe):K(Q(F),Q(1/F))}return Pe.exponent=function(N){return arguments.length?(F=+N,$()):F},y(Pe)}function at(){var K=De(P());return K.copy=function(){return x(K,at()).exponent(K.exponent())},v.apply(K,arguments),K}function dt(){return at.apply(null,arguments).exponent(.5)}function jt(){var K=[],Pe=[],F=[],$;function N(){var V=0,he=Math.max(1,Pe.length);for(F=new Array(he-1);++V0?F[he-1]:K[0],he=F?[$[F-1],Pe]:[$[Fe-1],$[Fe]]},V.unknown=function(_e){return arguments.length&&(L=_e),V},V.thresholds=function(){return $.slice()},V.copy=function(){return Gt().domain([K,Pe]).range(N).unknown(L)},v.apply(y(V),arguments)}function Lt(){var K=[.5],Pe=[0,1],F,$=1;function N(L){return L<=L?Pe[i.bisect(K,L,0,$)]:F}return N.domain=function(L){return arguments.length?(K=O.call(L),$=Math.min(K.length,Pe.length-1),N):K.slice()},N.range=function(L){return arguments.length?(Pe=O.call(L),$=Math.min(K.length,Pe.length-1),N):Pe.slice()},N.invertExtent=function(L){var V=Pe.indexOf(L);return[K[V-1],K[V]]},N.unknown=function(L){return arguments.length?(F=L,N):F},N.copy=function(){return Lt().domain(K).range(Pe).unknown(F)},v.apply(N,arguments)}var Et=1e3,Bt=Et*60,zt=Bt*60,Zt=zt*24,pn=Zt*7,$t=Zt*30,_n=Zt*365;function A(K){return new Date(K)}function j(K){return K instanceof Date?+K:+new Date(+K)}function Ae(K,Pe,F,$,N,L,V,he,_e){var Fe=b(pe,pe),Ie=Fe.invert,$e=Fe.domain,Ke=_e(".%L"),et=_e(":%S"),vt=_e("%I:%M"),Ot=_e("%I %p"),Ct=_e("%a %d"),Nt=_e("%b %d"),Jt=_e("%B"),An=_e("%Y"),bn=[[V,1,Et],[V,5,5*Et],[V,15,15*Et],[V,30,30*Et],[L,1,Bt],[L,5,5*Bt],[L,15,15*Bt],[L,30,30*Bt],[N,1,zt],[N,3,3*zt],[N,6,6*zt],[N,12,12*zt],[$,1,Zt],[$,2,2*Zt],[F,1,pn],[Pe,1,$t],[Pe,3,3*$t],[K,1,_n]];function Ut(Tt){return(V(Tt){(function(e,n){typeof Bf=="object"&&typeof Dx!="undefined"?n(Bf):typeof define=="function"&&define.amd?define(["exports"],n):n(e.d3=e.d3||{})})(Bf,function(e){"use strict";var n=Array.prototype.slice;function i(Y){return Y}var u=1,s=2,h=3,d=4,v=1e-6;function k(Y){return"translate("+(Y+.5)+",0)"}function S(Y){return"translate(0,"+(Y+.5)+")"}function E(Y){return function(le){return+Y(le)}}function O(Y){var le=Math.max(0,Y.bandwidth()-1)/2;return Y.round()&&(le=Math.round(le)),function(pe){return+Y(pe)+le}}function ie(){return!this.__axis}function ve(Y,le){var pe=[],Re=null,B=null,c=6,g=6,x=3,P=Y===u||Y===d?-1:1,b=Y===d||Y===s?"x":"y",U=Y===u||Y===h?k:S;function y(D){var q=Re??(le.ticks?le.ticks.apply(le,pe):le.domain()),oe=B??(le.tickFormat?le.tickFormat.apply(le,pe):i),Le=Math.max(c,0)+x,we=le.range(),re=+we[0]+.5,We=+we[we.length-1]+.5,ce=(le.bandwidth?O:E)(le.copy()),ke=D.selection?D.selection():D,Ce=ke.selectAll(".domain").data([null]),me=ke.selectAll(".tick").data(q,le).order(),Ue=me.exit(),He=me.enter().append("g").attr("class","tick"),Je=me.select("line"),te=me.select("text");Ce=Ce.merge(Ce.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),me=me.merge(He),Je=Je.merge(He.append("line").attr("stroke","currentColor").attr(b+"2",P*c)),te=te.merge(He.append("text").attr("fill","currentColor").attr(b,P*Le).attr("dy",Y===u?"0em":Y===h?"0.71em":"0.32em")),D!==ke&&(Ce=Ce.transition(D),me=me.transition(D),Je=Je.transition(D),te=te.transition(D),Ue=Ue.transition(D).attr("opacity",v).attr("transform",function(ge){return isFinite(ge=ce(ge))?U(ge):this.getAttribute("transform")}),He.attr("opacity",v).attr("transform",function(ge){var Oe=this.parentNode.__axis;return U(Oe&&isFinite(Oe=Oe(ge))?Oe:ce(ge))})),Ue.remove(),Ce.attr("d",Y===d||Y==s?g?"M"+P*g+","+re+"H0.5V"+We+"H"+P*g:"M0.5,"+re+"V"+We:g?"M"+re+","+P*g+"V0.5H"+We+"V"+P*g:"M"+re+",0.5H"+We),me.attr("opacity",1).attr("transform",function(ge){return U(ce(ge))}),Je.attr(b+"2",P*c),te.attr(b,P*Le).text(oe),ke.filter(ie).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",Y===s?"start":Y===d?"end":"middle"),ke.each(function(){this.__axis=ce})}return y.scale=function(D){return arguments.length?(le=D,y):le},y.ticks=function(){return pe=n.call(arguments),y},y.tickArguments=function(D){return arguments.length?(pe=D==null?[]:n.call(D),y):pe.slice()},y.tickValues=function(D){return arguments.length?(Re=D==null?null:n.call(D),y):Re&&Re.slice()},y.tickFormat=function(D){return arguments.length?(B=D,y):B},y.tickSize=function(D){return arguments.length?(c=g=+D,y):c},y.tickSizeInner=function(D){return arguments.length?(c=+D,y):c},y.tickSizeOuter=function(D){return arguments.length?(g=+D,y):g},y.tickPadding=function(D){return arguments.length?(x=+D,y):x},y}function Ee(Y){return ve(u,Y)}function ne(Y){return ve(s,Y)}function R(Y){return ve(h,Y)}function I(Y){return ve(d,Y)}e.axisTop=Ee,e.axisRight=ne,e.axisBottom=R,e.axisLeft=I,Object.defineProperty(e,"__esModule",{value:!0})})});var Yf=yt((jf,Ax)=>{(function(e,n){typeof jf=="object"&&typeof Ax!="undefined"?n(jf):typeof define=="function"&&define.amd?define(["exports"],n):(e=e||self,n(e.d3=e.d3||{}))})(jf,function(e){"use strict";var n={value:function(){}};function i(){for(var v=0,k=arguments.length,S={},E;v=0&&(E=S.slice(O+1),S=S.slice(0,O)),S&&!k.hasOwnProperty(S))throw new Error("unknown type: "+S);return{type:S,name:E}})}u.prototype=i.prototype={constructor:u,on:function(v,k){var S=this._,E=s(v+"",S),O,ie=-1,ve=E.length;if(arguments.length<2){for(;++ie0)for(var S=new Array(O),E=0,O,ie;E{(function(e,n){typeof qf=="object"&&typeof Ix!="undefined"?n(qf):typeof define=="function"&&define.amd?define(["exports"],n):(e=e||self,n(e.d3=e.d3||{}))})(qf,function(e){"use strict";var n=0,i=0,u=0,s=1e3,h,d,v=0,k=0,S=0,E=typeof performance=="object"&&performance.now?performance:Date,O=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(c){setTimeout(c,17)};function ie(){return k||(O(ve),k=E.now()+S)}function ve(){k=0}function Ee(){this._call=this._time=this._next=null}Ee.prototype=ne.prototype={constructor:Ee,restart:function(c,g,x){if(typeof c!="function")throw new TypeError("callback is not a function");x=(x==null?ie():+x)+(g==null?0:+g),!this._next&&d!==this&&(d?d._next=this:h=this,d=this),this._call=c,this._time=x,pe()},stop:function(){this._call&&(this._call=null,this._time=1/0,pe())}};function ne(c,g,x){var P=new Ee;return P.restart(c,g,x),P}function R(){ie(),++n;for(var c=h,g;c;)(g=k-c._time)>=0&&c._call.call(null,g),c=c._next;--n}function I(){k=(v=E.now())+S,n=i=0;try{R()}finally{n=0,le(),k=0}}function Y(){var c=E.now(),g=c-v;g>s&&(S-=g,v=c)}function le(){for(var c,g=h,x,P=1/0;g;)g._call?(P>g._time&&(P=g._time),c=g,g=g._next):(x=g._next,g._next=null,g=c?c._next=x:h=x);d=c,pe(P)}function pe(c){if(!n){i&&(i=clearTimeout(i));var g=c-k;g>24?(c<1/0&&(i=setTimeout(I,c-E.now()-S)),u&&(u=clearInterval(u))):(u||(v=E.now(),u=setInterval(Y,s)),n=1,O(I))}}function Re(c,g,x){var P=new Ee;return g=g==null?0:+g,P.restart(function(b){P.stop(),c(b+g)},g,x),P}function B(c,g,x){var P=new Ee,b=g;return g==null?(P.restart(c,g,x),P):(g=+g,x=x==null?ie():+x,P.restart(function U(y){y+=b,P.restart(U,b+=g,x),c(y)},g,x),P)}e.interval=B,e.now=ie,e.timeout=Re,e.timer=ne,e.timerFlush=R,Object.defineProperty(e,"__esModule",{value:!0})})});var Fx=yt((Gf,Rx)=>{(function(e,n){typeof Gf=="object"&&typeof Rx!="undefined"?n(Gf):typeof define=="function"&&define.amd?define(["exports"],n):(e=e||self,n(e.d3=e.d3||{}))})(Gf,function(e){"use strict";function n(Q){return+Q}function i(Q){return Q*Q}function u(Q){return Q*(2-Q)}function s(Q){return((Q*=2)<=1?Q*Q:--Q*(2-Q)+1)/2}function h(Q){return Q*Q*Q}function d(Q){return--Q*Q*Q+1}function v(Q){return((Q*=2)<=1?Q*Q*Q:(Q-=2)*Q*Q+2)/2}var k=3,S=function Q(ee){ee=+ee;function fe(De){return Math.pow(De,ee)}return fe.exponent=Q,fe}(k),E=function Q(ee){ee=+ee;function fe(De){return 1-Math.pow(1-De,ee)}return fe.exponent=Q,fe}(k),O=function Q(ee){ee=+ee;function fe(De){return((De*=2)<=1?Math.pow(De,ee):2-Math.pow(2-De,ee))/2}return fe.exponent=Q,fe}(k),ie=Math.PI,ve=ie/2;function Ee(Q){return+Q==1?1:1-Math.cos(Q*ve)}function ne(Q){return Math.sin(Q*ve)}function R(Q){return(1-Math.cos(ie*Q))/2}function I(Q){return(Math.pow(2,-10*Q)-.0009765625)*1.0009775171065494}function Y(Q){return I(1-+Q)}function le(Q){return 1-I(Q)}function pe(Q){return((Q*=2)<=1?I(1-Q):2-I(Q-1))/2}function Re(Q){return 1-Math.sqrt(1-Q*Q)}function B(Q){return Math.sqrt(1- --Q*Q)}function c(Q){return((Q*=2)<=1?1-Math.sqrt(1-Q*Q):Math.sqrt(1-(Q-=2)*Q)+1)/2}var g=4/11,x=6/11,P=8/11,b=3/4,U=9/11,y=10/11,D=15/16,q=21/22,oe=63/64,Le=1/g/g;function we(Q){return 1-re(1-Q)}function re(Q){return(Q=+Q){(function(e,n){typeof $f=="object"&&typeof zx!="undefined"?n($f,Jo(),Yf(),qp(),Ff(),If(),Fx()):typeof define=="function"&&define.amd?define(["exports","d3-selection","d3-dispatch","d3-timer","d3-interpolate","d3-color","d3-ease"],n):(e=e||self,n(e.d3=e.d3||{},e.d3,e.d3,e.d3,e.d3,e.d3,e.d3))})($f,function(e,n,i,u,s,h,d){"use strict";var v=i.dispatch("start","end","cancel","interrupt"),k=[],S=0,E=1,O=2,ie=3,ve=4,Ee=5,ne=6;function R(N,L,V,he,_e,Fe){var Ie=N.__transition;if(!Ie)N.__transition={};else if(V in Ie)return;pe(N,V,{name:L,index:he,group:_e,on:v,tween:k,time:Fe.time,delay:Fe.delay,duration:Fe.duration,ease:Fe.ease,timer:null,state:S})}function I(N,L){var V=le(N,L);if(V.state>S)throw new Error("too late; already scheduled");return V}function Y(N,L){var V=le(N,L);if(V.state>ie)throw new Error("too late; already running");return V}function le(N,L){var V=N.__transition;if(!V||!(V=V[L]))throw new Error("transition not found");return V}function pe(N,L,V){var he=N.__transition,_e;he[L]=V,V.timer=u.timer(Fe,0,V.time);function Fe(et){V.state=E,V.timer.restart(Ie,V.delay,V.time),V.delay<=et&&Ie(et-V.delay)}function Ie(et){var vt,Ot,Ct,Nt;if(V.state!==E)return Ke();for(vt in he)if(Nt=he[vt],Nt.name===V.name){if(Nt.state===ie)return u.timeout(Ie);Nt.state===ve?(Nt.state=ne,Nt.timer.stop(),Nt.on.call("interrupt",N,N.__data__,Nt.index,Nt.group),delete he[vt]):+vtO&&he.state=0&&(L=L.slice(0,V)),!L||L==="start"})}function at(N,L,V){var he,_e,Fe=De(L)?I:Y;return function(){var Ie=Fe(this,N),$e=Ie.on;$e!==he&&(_e=(he=$e).copy()).on(L,V),Ie.on=_e}}function dt(N,L){var V=this._id;return arguments.length<2?le(this.node(),V).on.on(N):this.each(at(V,N,L))}function jt(N){return function(){var L=this.parentNode;for(var V in this.__transition)if(+V!==N)return;L&&L.removeChild(this)}}function Gt(){return this.on("end.remove",jt(this._id))}function Lt(N){var L=this._name,V=this._id;typeof N!="function"&&(N=n.selector(N));for(var he=this._groups,_e=he.length,Fe=new Array(_e),Ie=0;Ie<_e;++Ie)for(var $e=he[Ie],Ke=$e.length,et=Fe[Ie]=new Array(Ke),vt,Ot,Ct=0;CtE&&he.name===L)return new Rt([[N]],F,L,+_e)}return null}e.active=$,e.interrupt=Re,e.transition=Wt,Object.defineProperty(e,"__esModule",{value:!0})})});var Ux=yt((Vf,Wx)=>{(function(e,n){typeof Vf=="object"&&typeof Wx!="undefined"?n(Vf):typeof define=="function"&&define.amd?define(["exports"],n):(e=e||self,n(e.d3=e.d3||{}))})(Vf,function(e){"use strict";var n=Math.PI,i=2*n,u=1e-6,s=i-u;function h(){this._x0=this._y0=this._x1=this._y1=null,this._=""}function d(){return new h}h.prototype=d.prototype={constructor:h,moveTo:function(v,k){this._+="M"+(this._x0=this._x1=+v)+","+(this._y0=this._y1=+k)},closePath:function(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},lineTo:function(v,k){this._+="L"+(this._x1=+v)+","+(this._y1=+k)},quadraticCurveTo:function(v,k,S,E){this._+="Q"+ +v+","+ +k+","+(this._x1=+S)+","+(this._y1=+E)},bezierCurveTo:function(v,k,S,E,O,ie){this._+="C"+ +v+","+ +k+","+ +S+","+ +E+","+(this._x1=+O)+","+(this._y1=+ie)},arcTo:function(v,k,S,E,O){v=+v,k=+k,S=+S,E=+E,O=+O;var ie=this._x1,ve=this._y1,Ee=S-v,ne=E-k,R=ie-v,I=ve-k,Y=R*R+I*I;if(O<0)throw new Error("negative radius: "+O);if(this._x1===null)this._+="M"+(this._x1=v)+","+(this._y1=k);else if(Y>u)if(!(Math.abs(I*Ee-ne*R)>u)||!O)this._+="L"+(this._x1=v)+","+(this._y1=k);else{var le=S-ie,pe=E-ve,Re=Ee*Ee+ne*ne,B=le*le+pe*pe,c=Math.sqrt(Re),g=Math.sqrt(Y),x=O*Math.tan((n-Math.acos((Re+Y-B)/(2*c*g)))/2),P=x/g,b=x/c;Math.abs(P-1)>u&&(this._+="L"+(v+P*R)+","+(k+P*I)),this._+="A"+O+","+O+",0,0,"+ +(I*le>R*pe)+","+(this._x1=v+b*Ee)+","+(this._y1=k+b*ne)}},arc:function(v,k,S,E,O,ie){v=+v,k=+k,S=+S,ie=!!ie;var ve=S*Math.cos(E),Ee=S*Math.sin(E),ne=v+ve,R=k+Ee,I=1^ie,Y=ie?E-O:O-E;if(S<0)throw new Error("negative radius: "+S);this._x1===null?this._+="M"+ne+","+R:(Math.abs(this._x1-ne)>u||Math.abs(this._y1-R)>u)&&(this._+="L"+ne+","+R),!!S&&(Y<0&&(Y=Y%i+i),Y>s?this._+="A"+S+","+S+",0,1,"+I+","+(v-ve)+","+(k-Ee)+"A"+S+","+S+",0,1,"+I+","+(this._x1=ne)+","+(this._y1=R):Y>u&&(this._+="A"+S+","+S+",0,"+ +(Y>=n)+","+I+","+(this._x1=v+S*Math.cos(O))+","+(this._y1=k+S*Math.sin(O))))},rect:function(v,k,S,E){this._+="M"+(this._x0=this._x1=+v)+","+(this._y0=this._y1=+k)+"h"+ +S+"v"+ +E+"h"+-S+"Z"},toString:function(){return this._}},e.path=d,Object.defineProperty(e,"__esModule",{value:!0})})});var jx=yt((Xf,Bx)=>{(function(e,n){typeof Xf=="object"&&typeof Bx!="undefined"?n(Xf,Ux()):typeof define=="function"&&define.amd?define(["exports","d3-path"],n):(e=e||self,n(e.d3=e.d3||{},e.d3))})(Xf,function(e,n){"use strict";function i(w){return function(){return w}}var u=Math.abs,s=Math.atan2,h=Math.cos,d=Math.max,v=Math.min,k=Math.sin,S=Math.sqrt,E=1e-12,O=Math.PI,ie=O/2,ve=2*O;function Ee(w){return w>1?0:w<-1?O:Math.acos(w)}function ne(w){return w>=1?ie:w<=-1?-ie:Math.asin(w)}function R(w){return w.innerRadius}function I(w){return w.outerRadius}function Y(w){return w.startAngle}function le(w){return w.endAngle}function pe(w){return w&&w.padAngle}function Re(w,z,W,ae,Me,ue,Ye,xe){var Ge=W-w,ot=ae-z,rt=Ye-Me,mt=xe-ue,Pt=mt*Ge-rt*ot;if(!(Pt*PtTi*Ti+li*li&&(Ar=cr,Zn=Sr),{cx:Ar,cy:Zn,x01:-rt,y01:-mt,x11:Ar*(Me/Tr-1),y11:Zn*(Me/Tr-1)}}function c(){var w=R,z=I,W=i(0),ae=null,Me=Y,ue=le,Ye=pe,xe=null;function Ge(){var ot,rt,mt=+w.apply(this,arguments),Pt=+z.apply(this,arguments),Yt=Me.apply(this,arguments)-ie,It=ue.apply(this,arguments)-ie,dn=u(It-Yt),Kt=It>Yt;if(xe||(xe=ot=n.path()),PtE))xe.moveTo(0,0);else if(dn>ve-E)xe.moveTo(Pt*h(Yt),Pt*k(Yt)),xe.arc(0,0,Pt,Yt,It,!Kt),mt>E&&(xe.moveTo(mt*h(It),mt*k(It)),xe.arc(0,0,mt,It,Yt,Kt));else{var Rn=Yt,Nn=It,mn=Yt,Pn=It,Tr=dn,Qn=dn,Zr=Ye.apply(this,arguments)/2,Ar=Zr>E&&(ae?+ae.apply(this,arguments):S(mt*mt+Pt*Pt)),Zn=v(u(Pt-mt)/2,+W.apply(this,arguments)),cr=Zn,Sr=Zn,At,Qt;if(Ar>E){var Ti=ne(Ar/mt*k(Zr)),li=ne(Ar/Pt*k(Zr));(Tr-=Ti*2)>E?(Ti*=Kt?1:-1,mn+=Ti,Pn-=Ti):(Tr=0,mn=Pn=(Yt+It)/2),(Qn-=li*2)>E?(li*=Kt?1:-1,Rn+=li,Nn-=li):(Qn=0,Rn=Nn=(Yt+It)/2)}var Gn=Pt*h(Rn),Hi=Pt*k(Rn),ea=mt*h(Pn),Wi=mt*k(Pn);if(Zn>E){var xo=Pt*h(Nn),Ir=Pt*k(Nn),_o=mt*h(mn),Rr=mt*k(mn),br;if(dnE?Sr>E?(At=B(_o,Rr,Gn,Hi,Pt,Sr,Kt),Qt=B(xo,Ir,ea,Wi,Pt,Sr,Kt),xe.moveTo(At.cx+At.x01,At.cy+At.y01),SrE)||!(Tr>E)?xe.lineTo(ea,Wi):cr>E?(At=B(ea,Wi,xo,Ir,mt,-cr,Kt),Qt=B(Gn,Hi,_o,Rr,mt,-cr,Kt),xe.lineTo(At.cx+At.x01,At.cy+At.y01),cr=Pt;--Yt)xe.point(Nn[Yt],mn[Yt]);xe.lineEnd(),xe.areaEnd()}Kt&&(Nn[mt]=+w(dn,mt,rt),mn[mt]=+W(dn,mt,rt),xe.point(z?+z(dn,mt,rt):Nn[mt],ae?+ae(dn,mt,rt):mn[mt]))}if(Rn)return xe=null,Rn+""||null}function ot(){return U().defined(Me).curve(Ye).context(ue)}return Ge.x=function(rt){return arguments.length?(w=typeof rt=="function"?rt:i(+rt),z=null,Ge):w},Ge.x0=function(rt){return arguments.length?(w=typeof rt=="function"?rt:i(+rt),Ge):w},Ge.x1=function(rt){return arguments.length?(z=rt==null?null:typeof rt=="function"?rt:i(+rt),Ge):z},Ge.y=function(rt){return arguments.length?(W=typeof rt=="function"?rt:i(+rt),ae=null,Ge):W},Ge.y0=function(rt){return arguments.length?(W=typeof rt=="function"?rt:i(+rt),Ge):W},Ge.y1=function(rt){return arguments.length?(ae=rt==null?null:typeof rt=="function"?rt:i(+rt),Ge):ae},Ge.lineX0=Ge.lineY0=function(){return ot().x(w).y(W)},Ge.lineY1=function(){return ot().x(w).y(ae)},Ge.lineX1=function(){return ot().x(z).y(W)},Ge.defined=function(rt){return arguments.length?(Me=typeof rt=="function"?rt:i(!!rt),Ge):Me},Ge.curve=function(rt){return arguments.length?(Ye=rt,ue!=null&&(xe=Ye(ue)),Ge):Ye},Ge.context=function(rt){return arguments.length?(rt==null?ue=xe=null:xe=Ye(ue=rt),Ge):ue},Ge}function D(w,z){return zw?1:z>=w?0:NaN}function q(w){return w}function oe(){var w=q,z=D,W=null,ae=i(0),Me=i(ve),ue=i(0);function Ye(xe){var Ge,ot=xe.length,rt,mt,Pt=0,Yt=new Array(ot),It=new Array(ot),dn=+ae.apply(this,arguments),Kt=Math.min(ve,Math.max(-ve,Me.apply(this,arguments)-dn)),Rn,Nn=Math.min(Math.abs(Kt)/ot,ue.apply(this,arguments)),mn=Nn*(Kt<0?-1:1),Pn;for(Ge=0;Ge0&&(Pt+=Pn);for(z!=null?Yt.sort(function(Tr,Qn){return z(It[Tr],It[Qn])}):W!=null&&Yt.sort(function(Tr,Qn){return W(xe[Tr],xe[Qn])}),Ge=0,mt=Pt?(Kt-ot*mn)/Pt:0;Ge0?Pn*mt:0)+mn,It[rt]={data:xe[rt],index:Ge,value:Pn,startAngle:dn,endAngle:Rn,padAngle:Nn};return It}return Ye.value=function(xe){return arguments.length?(w=typeof xe=="function"?xe:i(+xe),Ye):w},Ye.sortValues=function(xe){return arguments.length?(z=xe,W=null,Ye):z},Ye.sort=function(xe){return arguments.length?(W=xe,z=null,Ye):W},Ye.startAngle=function(xe){return arguments.length?(ae=typeof xe=="function"?xe:i(+xe),Ye):ae},Ye.endAngle=function(xe){return arguments.length?(Me=typeof xe=="function"?xe:i(+xe),Ye):Me},Ye.padAngle=function(xe){return arguments.length?(ue=typeof xe=="function"?xe:i(+xe),Ye):ue},Ye}var Le=re(x);function we(w){this._curve=w}we.prototype={areaStart:function(){this._curve.areaStart()},areaEnd:function(){this._curve.areaEnd()},lineStart:function(){this._curve.lineStart()},lineEnd:function(){this._curve.lineEnd()},point:function(w,z){this._curve.point(z*Math.sin(w),z*-Math.cos(w))}};function re(w){function z(W){return new we(w(W))}return z._curve=w,z}function We(w){var z=w.curve;return w.angle=w.x,delete w.x,w.radius=w.y,delete w.y,w.curve=function(W){return arguments.length?z(re(W)):z()._curve},w}function ce(){return We(U().curve(Le))}function ke(){var w=y().curve(Le),z=w.curve,W=w.lineX0,ae=w.lineX1,Me=w.lineY0,ue=w.lineY1;return w.angle=w.x,delete w.x,w.startAngle=w.x0,delete w.x0,w.endAngle=w.x1,delete w.x1,w.radius=w.y,delete w.y,w.innerRadius=w.y0,delete w.y0,w.outerRadius=w.y1,delete w.y1,w.lineStartAngle=function(){return We(W())},delete w.lineX0,w.lineEndAngle=function(){return We(ae())},delete w.lineX1,w.lineInnerRadius=function(){return We(Me())},delete w.lineY0,w.lineOuterRadius=function(){return We(ue())},delete w.lineY1,w.curve=function(Ye){return arguments.length?z(re(Ye)):z()._curve},w}function Ce(w,z){return[(z=+z)*Math.cos(w-=Math.PI/2),z*Math.sin(w)]}var me=Array.prototype.slice;function Ue(w){return w.source}function He(w){return w.target}function Je(w){var z=Ue,W=He,ae=P,Me=b,ue=null;function Ye(){var xe,Ge=me.call(arguments),ot=z.apply(this,Ge),rt=W.apply(this,Ge);if(ue||(ue=xe=n.path()),w(ue,+ae.apply(this,(Ge[0]=ot,Ge)),+Me.apply(this,Ge),+ae.apply(this,(Ge[0]=rt,Ge)),+Me.apply(this,Ge)),xe)return ue=null,xe+""||null}return Ye.source=function(xe){return arguments.length?(z=xe,Ye):z},Ye.target=function(xe){return arguments.length?(W=xe,Ye):W},Ye.x=function(xe){return arguments.length?(ae=typeof xe=="function"?xe:i(+xe),Ye):ae},Ye.y=function(xe){return arguments.length?(Me=typeof xe=="function"?xe:i(+xe),Ye):Me},Ye.context=function(xe){return arguments.length?(ue=xe??null,Ye):ue},Ye}function te(w,z,W,ae,Me){w.moveTo(z,W),w.bezierCurveTo(z=(z+ae)/2,W,z,Me,ae,Me)}function ge(w,z,W,ae,Me){w.moveTo(z,W),w.bezierCurveTo(z,W=(W+Me)/2,ae,W,ae,Me)}function Oe(w,z,W,ae,Me){var ue=Ce(z,W),Ye=Ce(z,W=(W+Me)/2),xe=Ce(ae,W),Ge=Ce(ae,Me);w.moveTo(ue[0],ue[1]),w.bezierCurveTo(Ye[0],Ye[1],xe[0],xe[1],Ge[0],Ge[1])}function Q(){return Je(te)}function ee(){return Je(ge)}function fe(){var w=Je(Oe);return w.angle=w.x,delete w.x,w.radius=w.y,delete w.y,w}var De={draw:function(w,z){var W=Math.sqrt(z/O);w.moveTo(W,0),w.arc(0,0,W,0,ve)}},at={draw:function(w,z){var W=Math.sqrt(z/5)/2;w.moveTo(-3*W,-W),w.lineTo(-W,-W),w.lineTo(-W,-3*W),w.lineTo(W,-3*W),w.lineTo(W,-W),w.lineTo(3*W,-W),w.lineTo(3*W,W),w.lineTo(W,W),w.lineTo(W,3*W),w.lineTo(-W,3*W),w.lineTo(-W,W),w.lineTo(-3*W,W),w.closePath()}},dt=Math.sqrt(1/3),jt=dt*2,Gt={draw:function(w,z){var W=Math.sqrt(z/jt),ae=W*dt;w.moveTo(0,-W),w.lineTo(ae,0),w.lineTo(0,W),w.lineTo(-ae,0),w.closePath()}},Lt=.8908130915292852,Et=Math.sin(O/10)/Math.sin(7*O/10),Bt=Math.sin(ve/10)*Et,zt=-Math.cos(ve/10)*Et,Zt={draw:function(w,z){var W=Math.sqrt(z*Lt),ae=Bt*W,Me=zt*W;w.moveTo(0,-W),w.lineTo(ae,Me);for(var ue=1;ue<5;++ue){var Ye=ve*ue/5,xe=Math.cos(Ye),Ge=Math.sin(Ye);w.lineTo(Ge*W,-xe*W),w.lineTo(xe*ae-Ge*Me,Ge*ae+xe*Me)}w.closePath()}},pn={draw:function(w,z){var W=Math.sqrt(z),ae=-W/2;w.rect(ae,ae,W,W)}},$t=Math.sqrt(3),_n={draw:function(w,z){var W=-Math.sqrt(z/($t*3));w.moveTo(0,W*2),w.lineTo(-$t*W,-W),w.lineTo($t*W,-W),w.closePath()}},A=-.5,j=Math.sqrt(3)/2,Ae=1/Math.sqrt(12),Xe=(Ae/2+1)*3,je={draw:function(w,z){var W=Math.sqrt(z/Xe),ae=W/2,Me=W*Ae,ue=ae,Ye=W*Ae+W,xe=-ue,Ge=Ye;w.moveTo(ae,Me),w.lineTo(ue,Ye),w.lineTo(xe,Ge),w.lineTo(A*ae-j*Me,j*ae+A*Me),w.lineTo(A*ue-j*Ye,j*ue+A*Ye),w.lineTo(A*xe-j*Ge,j*xe+A*Ge),w.lineTo(A*ae+j*Me,A*Me-j*ae),w.lineTo(A*ue+j*Ye,A*Ye-j*ue),w.lineTo(A*xe+j*Ge,A*Ge-j*xe),w.closePath()}},M=[De,at,Gt,pn,Zt,_n,je];function J(){var w=i(De),z=i(64),W=null;function ae(){var Me;if(W||(W=Me=n.path()),w.apply(this,arguments).draw(W,+z.apply(this,arguments)),Me)return W=null,Me+""||null}return ae.type=function(Me){return arguments.length?(w=typeof Me=="function"?Me:i(Me),ae):w},ae.size=function(Me){return arguments.length?(z=typeof Me=="function"?Me:i(+Me),ae):z},ae.context=function(Me){return arguments.length?(W=Me??null,ae):W},ae}function Se(){}function ze(w,z,W){w._context.bezierCurveTo((2*w._x0+w._x1)/3,(2*w._y0+w._y1)/3,(w._x0+2*w._x1)/3,(w._y0+2*w._y1)/3,(w._x0+4*w._x1+z)/6,(w._y0+4*w._y1+W)/6)}function tt(w){this._context=w}tt.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:ze(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(w,z){switch(w=+w,z=+z,this._point){case 0:this._point=1,this._line?this._context.lineTo(w,z):this._context.moveTo(w,z);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:ze(this,w,z);break}this._x0=this._x1,this._x1=w,this._y0=this._y1,this._y1=z}};function ct(w){return new tt(w)}function ht(w){this._context=w}ht.prototype={areaStart:Se,areaEnd:Se,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(w,z){switch(w=+w,z=+z,this._point){case 0:this._point=1,this._x2=w,this._y2=z;break;case 1:this._point=2,this._x3=w,this._y3=z;break;case 2:this._point=3,this._x4=w,this._y4=z,this._context.moveTo((this._x0+4*this._x1+w)/6,(this._y0+4*this._y1+z)/6);break;default:ze(this,w,z);break}this._x0=this._x1,this._x1=w,this._y0=this._y1,this._y1=z}};function wt(w){return new ht(w)}function bt(w){this._context=w}bt.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(w,z){switch(w=+w,z=+z,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var W=(this._x0+4*this._x1+w)/6,ae=(this._y0+4*this._y1+z)/6;this._line?this._context.lineTo(W,ae):this._context.moveTo(W,ae);break;case 3:this._point=4;default:ze(this,w,z);break}this._x0=this._x1,this._x1=w,this._y0=this._y1,this._y1=z}};function Rt(w){return new bt(w)}function Wt(w,z){this._basis=new tt(w),this._beta=z}Wt.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var w=this._x,z=this._y,W=w.length-1;if(W>0)for(var ae=w[0],Me=z[0],ue=w[W]-ae,Ye=z[W]-Me,xe=-1,Ge;++xe<=W;)Ge=xe/W,this._basis.point(this._beta*w[xe]+(1-this._beta)*(ae+Ge*ue),this._beta*z[xe]+(1-this._beta)*(Me+Ge*Ye));this._x=this._y=null,this._basis.lineEnd()},point:function(w,z){this._x.push(+w),this._y.push(+z)}};var ln=function w(z){function W(ae){return z===1?new tt(ae):new Wt(ae,z)}return W.beta=function(ae){return w(+ae)},W}(.85);function nn(w,z,W){w._context.bezierCurveTo(w._x1+w._k*(w._x2-w._x0),w._y1+w._k*(w._y2-w._y0),w._x2+w._k*(w._x1-z),w._y2+w._k*(w._y1-W),w._x2,w._y2)}function gn(w,z){this._context=w,this._k=(1-z)/6}gn.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:nn(this,this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(w,z){switch(w=+w,z=+z,this._point){case 0:this._point=1,this._line?this._context.lineTo(w,z):this._context.moveTo(w,z);break;case 1:this._point=2,this._x1=w,this._y1=z;break;case 2:this._point=3;default:nn(this,w,z);break}this._x0=this._x1,this._x1=this._x2,this._x2=w,this._y0=this._y1,this._y1=this._y2,this._y2=z}};var K=function w(z){function W(ae){return new gn(ae,z)}return W.tension=function(ae){return w(+ae)},W}(0);function Pe(w,z){this._context=w,this._k=(1-z)/6}Pe.prototype={areaStart:Se,areaEnd:Se,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},point:function(w,z){switch(w=+w,z=+z,this._point){case 0:this._point=1,this._x3=w,this._y3=z;break;case 1:this._point=2,this._context.moveTo(this._x4=w,this._y4=z);break;case 2:this._point=3,this._x5=w,this._y5=z;break;default:nn(this,w,z);break}this._x0=this._x1,this._x1=this._x2,this._x2=w,this._y0=this._y1,this._y1=this._y2,this._y2=z}};var F=function w(z){function W(ae){return new Pe(ae,z)}return W.tension=function(ae){return w(+ae)},W}(0);function $(w,z){this._context=w,this._k=(1-z)/6}$.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(w,z){switch(w=+w,z=+z,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:nn(this,w,z);break}this._x0=this._x1,this._x1=this._x2,this._x2=w,this._y0=this._y1,this._y1=this._y2,this._y2=z}};var N=function w(z){function W(ae){return new $(ae,z)}return W.tension=function(ae){return w(+ae)},W}(0);function L(w,z,W){var ae=w._x1,Me=w._y1,ue=w._x2,Ye=w._y2;if(w._l01_a>E){var xe=2*w._l01_2a+3*w._l01_a*w._l12_a+w._l12_2a,Ge=3*w._l01_a*(w._l01_a+w._l12_a);ae=(ae*xe-w._x0*w._l12_2a+w._x2*w._l01_2a)/Ge,Me=(Me*xe-w._y0*w._l12_2a+w._y2*w._l01_2a)/Ge}if(w._l23_a>E){var ot=2*w._l23_2a+3*w._l23_a*w._l12_a+w._l12_2a,rt=3*w._l23_a*(w._l23_a+w._l12_a);ue=(ue*ot+w._x1*w._l23_2a-z*w._l12_2a)/rt,Ye=(Ye*ot+w._y1*w._l23_2a-W*w._l12_2a)/rt}w._context.bezierCurveTo(ae,Me,ue,Ye,w._x2,w._y2)}function V(w,z){this._context=w,this._alpha=z}V.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(w,z){if(w=+w,z=+z,this._point){var W=this._x2-w,ae=this._y2-z;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(W*W+ae*ae,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(w,z):this._context.moveTo(w,z);break;case 1:this._point=2;break;case 2:this._point=3;default:L(this,w,z);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=w,this._y0=this._y1,this._y1=this._y2,this._y2=z}};var he=function w(z){function W(ae){return z?new V(ae,z):new gn(ae,0)}return W.alpha=function(ae){return w(+ae)},W}(.5);function _e(w,z){this._context=w,this._alpha=z}_e.prototype={areaStart:Se,areaEnd:Se,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},point:function(w,z){if(w=+w,z=+z,this._point){var W=this._x2-w,ae=this._y2-z;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(W*W+ae*ae,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=w,this._y3=z;break;case 1:this._point=2,this._context.moveTo(this._x4=w,this._y4=z);break;case 2:this._point=3,this._x5=w,this._y5=z;break;default:L(this,w,z);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=w,this._y0=this._y1,this._y1=this._y2,this._y2=z}};var Fe=function w(z){function W(ae){return z?new _e(ae,z):new Pe(ae,0)}return W.alpha=function(ae){return w(+ae)},W}(.5);function Ie(w,z){this._context=w,this._alpha=z}Ie.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(w,z){if(w=+w,z=+z,this._point){var W=this._x2-w,ae=this._y2-z;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(W*W+ae*ae,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:L(this,w,z);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=w,this._y0=this._y1,this._y1=this._y2,this._y2=z}};var $e=function w(z){function W(ae){return z?new Ie(ae,z):new $(ae,0)}return W.alpha=function(ae){return w(+ae)},W}(.5);function Ke(w){this._context=w}Ke.prototype={areaStart:Se,areaEnd:Se,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(w,z){w=+w,z=+z,this._point?this._context.lineTo(w,z):(this._point=1,this._context.moveTo(w,z))}};function et(w){return new Ke(w)}function vt(w){return w<0?-1:1}function Ot(w,z,W){var ae=w._x1-w._x0,Me=z-w._x1,ue=(w._y1-w._y0)/(ae||Me<0&&-0),Ye=(W-w._y1)/(Me||ae<0&&-0),xe=(ue*Me+Ye*ae)/(ae+Me);return(vt(ue)+vt(Ye))*Math.min(Math.abs(ue),Math.abs(Ye),.5*Math.abs(xe))||0}function Ct(w,z){var W=w._x1-w._x0;return W?(3*(w._y1-w._y0)/W-z)/2:z}function Nt(w,z,W){var ae=w._x0,Me=w._y0,ue=w._x1,Ye=w._y1,xe=(ue-ae)/3;w._context.bezierCurveTo(ae+xe,Me+xe*z,ue-xe,Ye-xe*W,ue,Ye)}function Jt(w){this._context=w}Jt.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:Nt(this,this._t0,Ct(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(w,z){var W=NaN;if(w=+w,z=+z,!(w===this._x1&&z===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(w,z):this._context.moveTo(w,z);break;case 1:this._point=2;break;case 2:this._point=3,Nt(this,Ct(this,W=Ot(this,w,z)),W);break;default:Nt(this,this._t0,W=Ot(this,w,z));break}this._x0=this._x1,this._x1=w,this._y0=this._y1,this._y1=z,this._t0=W}}};function An(w){this._context=new bn(w)}(An.prototype=Object.create(Jt.prototype)).point=function(w,z){Jt.prototype.point.call(this,z,w)};function bn(w){this._context=w}bn.prototype={moveTo:function(w,z){this._context.moveTo(z,w)},closePath:function(){this._context.closePath()},lineTo:function(w,z){this._context.lineTo(z,w)},bezierCurveTo:function(w,z,W,ae,Me,ue){this._context.bezierCurveTo(z,w,ae,W,ue,Me)}};function Ut(w){return new Jt(w)}function st(w){return new An(w)}function Tt(w){this._context=w}Tt.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var w=this._x,z=this._y,W=w.length;if(W)if(this._line?this._context.lineTo(w[0],z[0]):this._context.moveTo(w[0],z[0]),W===2)this._context.lineTo(w[1],z[1]);else for(var ae=rn(w),Me=rn(z),ue=0,Ye=1;Ye=0;--z)Me[z]=(Ye[z]-Me[z+1])/ue[z];for(ue[W-1]=(w[W]+Me[W-1])/2,z=0;z=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(w,z){switch(w=+w,z=+z,this._point){case 0:this._point=1,this._line?this._context.lineTo(w,z):this._context.moveTo(w,z);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,z),this._context.lineTo(w,z);else{var W=this._x*(1-this._t)+w*this._t;this._context.lineTo(W,this._y),this._context.lineTo(W,z)}break}}this._x=w,this._y=z}};function G(w){return new St(w,.5)}function se(w){return new St(w,0)}function qe(w){return new St(w,1)}function de(w,z){if((Ye=w.length)>1)for(var W=1,ae,Me,ue=w[z[0]],Ye,xe=ue.length;W=0;)W[z]=z;return W}function H(w,z){return w[z]}function be(){var w=i([]),z=_,W=de,ae=H;function Me(ue){var Ye=w.apply(this,arguments),xe,Ge=ue.length,ot=Ye.length,rt=new Array(ot),mt;for(xe=0;xe0){for(var W,ae,Me=0,ue=w[0].length,Ye;Me0)for(var W,ae=0,Me,ue,Ye,xe,Ge,ot=w[z[0]].length;ae0?(Me[0]=Ye,Me[1]=Ye+=ue):ue<0?(Me[1]=xe,Me[0]=xe+=ue):(Me[0]=0,Me[1]=ue)}function ft(w,z){if((Me=w.length)>0){for(var W=0,ae=w[z[0]],Me,ue=ae.length;W0)||!((ue=(Me=w[z[0]]).length)>0))){for(var W=0,ae=1,Me,ue,Ye;aeue&&(ue=Me,W=z);return W}function on(w){var z=w.map(In);return _(w).sort(function(W,ae){return z[W]-z[ae]})}function In(w){for(var z=0,W=-1,ae=w.length,Me;++W{(function(e,n){typeof Kf=="object"&&typeof Yx!="undefined"?n(Kf):typeof define=="function"&&define.amd?define(["exports"],n):(e=typeof globalThis!="undefined"?globalThis:e||self,n(e.d3=e.d3||{}))})(Kf,function(e){"use strict";function n(B,c){var g=Object.keys(B);if(Object.getOwnPropertySymbols){var x=Object.getOwnPropertySymbols(B);c&&(x=x.filter(function(P){return Object.getOwnPropertyDescriptor(B,P).enumerable})),g.push.apply(g,x)}return g}function i(B){for(var c=1;cB.length)&&(c=B.length);for(var g=0,x=new Array(c);g=B.length?{done:!0}:{done:!1,value:B[x++]}},e:function(D){throw D},f:P}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var b=!0,U=!1,y;return{s:function(){g=g.call(B)},n:function(){var D=g.next();return b=D.done,D},e:function(D){U=!0,y=D},f:function(){try{!b&&g.return!=null&&g.return()}finally{if(U)throw y}}}}function k(B,c){var g=[],x=[];function P(b,U){if(b.length===1)g.push(b[0]),x.push(b[0]);else{for(var y=Array(b.length-1),D=0;D=3&&(c.x1=B[1][0],c.y1=B[1][1]),c.x=B[B.length-1][0],c.y=B[B.length-1][1],B.length===4?c.type="C":B.length===3?c.type="Q":c.type="L",c}function E(B,c){c=c||2;for(var g=[],x=B,P=1/c,b=0;b0?Le-=1:Le0&&(Le-=1))}return D[Le]=(D[Le]||0)+1,D},[]),y=U.reduce(function(D,q,oe){if(oe===B.length-1){var Le=Ee(q,s({},B[B.length-1]));return Le[0].type==="M"&&Le.forEach(function(we){we.type="L"}),D.concat(Le)}return D.concat(I(B[oe],B[oe+1],q))},[]);return y.unshift(B[0]),y}function le(B){for(var c=(B||"").match(ie)||[],g=[],x,P,b=0;b0&&x[x.length-1].type==="Z"&&x.pop(),P.length>0&&P[P.length-1].type==="Z"&&P.pop(),x.length?P.length||P.push(x[0]):x.push(P[0]);var U=Math.abs(P.length-x.length);U!==0&&(P.length>x.length?x=Y(x,P,g):P.length{(function(e,n){typeof Jf=="object"&&typeof $x!="undefined"?n(Jf):typeof define=="function"&&define.amd?define(["exports"],n):(e=e||self,n(e.d3=e.d3||{}))})(Jf,function(e){"use strict";function n(c){var g=+this._x.call(null,c),x=+this._y.call(null,c);return i(this.cover(g,x),g,x,c)}function i(c,g,x,P){if(isNaN(g)||isNaN(x))return c;var b,U=c._root,y={data:P},D=c._x0,q=c._y0,oe=c._x1,Le=c._y1,we,re,We,ce,ke,Ce,me,Ue;if(!U)return c._root=y,c;for(;U.length;)if((ke=g>=(we=(D+oe)/2))?D=we:oe=we,(Ce=x>=(re=(q+Le)/2))?q=re:Le=re,b=U,!(U=U[me=Ce<<1|ke]))return b[me]=y,c;if(We=+c._x.call(null,U.data),ce=+c._y.call(null,U.data),g===We&&x===ce)return y.next=U,b?b[me]=y:c._root=y,c;do b=b?b[me]=new Array(4):c._root=new Array(4),(ke=g>=(we=(D+oe)/2))?D=we:oe=we,(Ce=x>=(re=(q+Le)/2))?q=re:Le=re;while((me=Ce<<1|ke)==(Ue=(ce>=re)<<1|We>=we));return b[Ue]=U,b[me]=y,c}function u(c){var g,x,P=c.length,b,U,y=new Array(P),D=new Array(P),q=1/0,oe=1/0,Le=-1/0,we=-1/0;for(x=0;xLe&&(Le=b),Uwe&&(we=U));if(q>Le||oe>we)return this;for(this.cover(q,oe).cover(Le,we),x=0;xc||c>=b||P>g||g>=U;)switch(oe=(gLe||(D=ce.y0)>we||(q=ce.x1)=me)<<1|c>=Ce)&&(ce=re[re.length-1],re[re.length-1]=re[re.length-1-ke],re[re.length-1-ke]=ce)}else{var Ue=c-+this._x.call(null,We.data),He=g-+this._y.call(null,We.data),Je=Ue*Ue+He*He;if(Je=(re=(y+q)/2))?y=re:q=re,(ke=we>=(We=(D+oe)/2))?D=We:oe=We,g=x,!(x=x[Ce=ke<<1|ce]))return this;if(!x.length)break;(g[Ce+1&3]||g[Ce+2&3]||g[Ce+3&3])&&(P=g,me=Ce)}for(;x.data!==c;)if(b=x,!(x=x.next))return this;return(U=x.next)&&delete x.next,b?(U?b.next=U:delete b.next,this):g?(U?g[Ce]=U:delete g[Ce],(x=g[0]||g[1]||g[2]||g[3])&&x===(g[3]||g[2]||g[1]||g[0])&&!x.length&&(P?P[me]=x:this._root=x),this):(this._root=U,this)}function E(c){for(var g=0,x=c.length;g{(function(e,n){typeof ec=="object"&&typeof Xx!="undefined"?n(ec,Vx(),Up(),Yf(),qp()):typeof define=="function"&&define.amd?define(["exports","d3-quadtree","d3-collection","d3-dispatch","d3-timer"],n):n(e.d3=e.d3||{},e.d3,e.d3,e.d3,e.d3)})(ec,function(e,n,i,u,s){"use strict";function h(c,g){var x;c==null&&(c=0),g==null&&(g=0);function P(){var b,U=x.length,y,D=0,q=0;for(b=0;bwe.index){var fe=re-Oe.x-Oe.vx,De=We-Oe.y-Oe.vy,at=fe*fe+De*De;atre+ee||teWe+ee||geq.r&&(q.r=q[oe].r)}function D(){if(!!g){var q,oe=g.length,Le;for(x=new Array(oe),q=0;q1?(ke==null?D.remove(ce):D.set(ce,We(ke)),g):D.get(ce)},find:function(ce,ke,Ce){var me=0,Ue=c.length,He,Je,te,ge,Oe;for(Ce==null?Ce=1/0:Ce*=Ce,me=0;me1?(oe.on(ce,ke),g):oe.on(ce)}}}function le(){var c,g,x,P=d(-30),b,U=1,y=1/0,D=.81;function q(re){var We,ce=c.length,ke=n.quadtree(c,Ee,ne).visitAfter(Le);for(x=re,We=0;We=y)return;(re.data!==g||re.next)&&(Ce===0&&(Ce=v(),He+=Ce*Ce),me===0&&(me=v(),He+=me*me),He{(function(e,n){typeof tc=="object"&&typeof Qx!="undefined"?n(tc,Yf(),Jo()):typeof define=="function"&&define.amd?define(["exports","d3-dispatch","d3-selection"],n):(e=e||self,n(e.d3=e.d3||{},e.d3,e.d3))})(tc,function(e,n,i){"use strict";function u(){i.event.stopImmediatePropagation()}function s(){i.event.preventDefault(),i.event.stopImmediatePropagation()}function h(Ee){var ne=Ee.document.documentElement,R=i.select(Ee).on("dragstart.drag",s,!0);"onselectstart"in ne?R.on("selectstart.drag",s,!0):(ne.__noselect=ne.style.MozUserSelect,ne.style.MozUserSelect="none")}function d(Ee,ne){var R=Ee.document.documentElement,I=i.select(Ee).on("dragstart.drag",null);ne&&(I.on("click.drag",s,!0),setTimeout(function(){I.on("click.drag",null)},0)),"onselectstart"in R?I.on("selectstart.drag",null):(R.style.MozUserSelect=R.__noselect,delete R.__noselect)}function v(Ee){return function(){return Ee}}function k(Ee,ne,R,I,Y,le,pe,Re,B,c){this.target=Ee,this.type=ne,this.subject=R,this.identifier=I,this.active=Y,this.x=le,this.y=pe,this.dx=Re,this.dy=B,this._=c}k.prototype.on=function(){var Ee=this._.on.apply(this._,arguments);return Ee===this._?this:Ee};function S(){return!i.event.ctrlKey&&!i.event.button}function E(){return this.parentNode}function O(Ee){return Ee??{x:i.event.x,y:i.event.y}}function ie(){return navigator.maxTouchPoints||"ontouchstart"in this}function ve(){var Ee=S,ne=E,R=O,I=ie,Y={},le=n.dispatch("start","drag","end"),pe=0,Re,B,c,g,x=0;function P(we){we.on("mousedown.drag",b).filter(I).on("touchstart.drag",D).on("touchmove.drag",q).on("touchend.drag touchcancel.drag",oe).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function b(){if(!(g||!Ee.apply(this,arguments))){var we=Le("mouse",ne.apply(this,arguments),i.mouse,this,arguments);!we||(i.select(i.event.view).on("mousemove.drag",U,!0).on("mouseup.drag",y,!0),h(i.event.view),u(),c=!1,Re=i.event.clientX,B=i.event.clientY,we("start"))}}function U(){if(s(),!c){var we=i.event.clientX-Re,re=i.event.clientY-B;c=we*we+re*re>x}Y.mouse("drag")}function y(){i.select(i.event.view).on("mousemove.drag mouseup.drag",null),d(i.event.view,c),s(),Y.mouse("end")}function D(){if(!!Ee.apply(this,arguments)){var we=i.event.changedTouches,re=ne.apply(this,arguments),We=we.length,ce,ke;for(ce=0;ce=0;E--){var O=u[E];O==="."?rp(u,E):O===".."?(rp(u,E),S++):S&&(rp(u,E),S--)}if(!d)for(;S--;S)u.unshift("..");d&&u[0]!==""&&(!u[0]||!vf(u[0]))&&u.unshift("");var ie=u.join("/");return v&&ie.substr(-1)!=="/"&&(ie+="/"),ie}var v1=ub;var lb=!0,ip="Invariant failed";function ui(e,n){if(!e){if(lb)throw new Error(ip);var i=typeof n=="function"?n():n,u=i?ip+": "+i:ip;throw new Error(u)}}function dl(e){return e.charAt(0)==="/"?e:"/"+e}function g1(e){return e.charAt(0)==="/"?e.substr(1):e}function sb(e,n){return e.toLowerCase().indexOf(n.toLowerCase())===0&&"/?#".indexOf(e.charAt(n.length))!==-1}function m1(e,n){return sb(e,n)?e.substr(n.length):e}function y1(e){return e.charAt(e.length-1)==="/"?e.slice(0,-1):e}function fb(e){var n=e||"/",i="",u="",s=n.indexOf("#");s!==-1&&(u=n.substr(s),n=n.substr(0,s));var h=n.indexOf("?");return h!==-1&&(i=n.substr(h),n=n.substr(0,h)),{pathname:n,search:i==="?"?"":i,hash:u==="#"?"":u}}function sr(e){var n=e.pathname,i=e.search,u=e.hash,s=n||"/";return i&&i!=="?"&&(s+=i.charAt(0)==="?"?i:"?"+i),u&&u!=="#"&&(s+=u.charAt(0)==="#"?u:"#"+u),s}function xr(e,n,i,u){var s;typeof e=="string"?(s=fb(e),s.state=n):(s=zn({},e),s.pathname===void 0&&(s.pathname=""),s.search?s.search.charAt(0)!=="?"&&(s.search="?"+s.search):s.search="",s.hash?s.hash.charAt(0)!=="#"&&(s.hash="#"+s.hash):s.hash="",n!==void 0&&s.state===void 0&&(s.state=n));try{s.pathname=decodeURI(s.pathname)}catch(h){throw h instanceof URIError?new URIError('Pathname "'+s.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):h}return i&&(s.key=i),u?s.pathname?s.pathname.charAt(0)!=="/"&&(s.pathname=v1(s.pathname,u.pathname)):s.pathname=u.pathname:s.pathname||(s.pathname="/"),s}function op(){var e=null;function n(d){return e=d,function(){e===d&&(e=null)}}function i(d,v,k,S){if(e!=null){var E=typeof e=="function"?e(d,v):e;typeof E=="string"?typeof k=="function"?k(E,S):S(!0):S(E!==!1)}else S(!0)}var u=[];function s(d){var v=!0;function k(){v&&d.apply(void 0,arguments)}return u.push(k),function(){v=!1,u=u.filter(function(S){return S!==k})}}function h(){for(var d=arguments.length,v=new Array(d),k=0;kD?q.splice(D,q.length-D,b):q.push(b),E({action:P,location:b,index:D,entries:q})}})}function R(g,x){var P="REPLACE",b=xr(g,x,O(),c.location);S.confirmTransitionTo(b,P,i,function(U){!U||(c.entries[c.index]=b,E({action:P,location:b}))})}function I(g){var x=E1(c.index+g,0,c.entries.length-1),P="POP",b=c.entries[x];S.confirmTransitionTo(b,P,i,function(U){U?E({action:P,location:b,index:x}):E()})}function Y(){I(-1)}function le(){I(1)}function pe(g){var x=c.index+g;return x>=0&&x=0)&&(i[s]=e[s]);return i}var X1=qt($1()),K1=function(n){var i=L1();return i.displayName=n,i},jb=K1("Router-History"),vo=K1("Router"),Ya=function(e){Or(n,e),n.computeRootMatch=function(s){return{path:"/",url:"/",params:{},isExact:s==="/"}};function n(u){var s;return s=e.call(this,u)||this,s.state={location:u.history.location},s._isMounted=!1,s._pendingLocation=null,u.staticContext||(s.unlisten=u.history.listen(function(h){s._isMounted?s.setState({location:h}):s._pendingLocation=h})),s}var i=n.prototype;return i.componentDidMount=function(){this._isMounted=!0,this._pendingLocation&&this.setState({location:this._pendingLocation})},i.componentWillUnmount=function(){this.unlisten&&(this.unlisten(),this._isMounted=!1,this._pendingLocation=null)},i.render=function(){return En.default.createElement(vo.Provider,{value:{history:this.props.history,location:this.state.location,match:n.computeRootMatch(this.state.location.pathname),staticContext:this.props.staticContext}},En.default.createElement(jb.Provider,{children:this.props.children||null,value:this.props.history}))},n}(En.default.Component),Yb=function(e){Or(n,e);function n(){for(var u,s=arguments.length,h=new Array(s),d=0;d{fetch("https://github.com/api/readme").then(u=>u.text()).then(u=>{n((0,rw.default)(u.replace(/\[\/\/\](.*?)\(__repo__\)[\S\s]*/,"")))}).catch(console.error)},[]),(0,zi.useEffect)(()=>{[...i.current.querySelectorAll("a")].forEach(u=>u.setAttribute("target","_blank"))},[e]),zi.default.createElement("div",{ref:i,className:"document",dangerouslySetInnerHTML:{__html:e}})}var iw=tC;var Mt=qt(Tn());var yl=qt(Tn());function Ga({checked:e,onChange:n}){return yl.default.createElement("div",{className:"checkbox",onClick:n},yl.default.createElement("svg",{width:9,height:9,viewBox:"0 0 80 80"},e&&yl.default.createElement("path",{d:"M14 30L0 44 37 76 80 11 65 0 34 50z"})),yl.default.createElement("input",{hidden:!0,"aria-hidden":"false",type:"checkbox",checked:e,onChange:n}))}var Mp=qt(Tn());function nC(){return Mp.default.createElement("svg",{className:"lock",width:"10",height:"10",viewBox:"0 0 20 20"},Mp.default.createElement("path",{fill:"#07A",d:"m3,9h1V6a5,5 0 0,1 12,0V9h1v11H3M14,9V6a4,4 0 1,0-8,0v3"}))}var Ep=nC;var Kr=qt(Tn()),pw=qt(wl()),V2=qt(dw());function Lp({value:e="",onChange:n,onSave:i,children:u,readOnly:s}){let h=(0,Kr.useRef)(),d=(0,Kr.useRef)(),v=(0,Kr.useRef)();return(0,Kr.useEffect)(()=>{let k=(0,pw.default)(h.current,{value:e,mode:"jsx",theme:"mdn-like",autofocus:!0,lineWrapping:!0,inputStyle:"contenteditable",lineNumbers:!0,gutters:["CodeMirror-linenumbers","breakpoints"]});d.current=e,v.current=k},[]),(0,Kr.useEffect)(()=>{function k(S,[{origin:E}]){let O=v.current.getValue();E!=="setValue"&&n(O),d.current=O}return v.current.on("changes",k),()=>{v.current.off("changes",k)}},[n]),(0,Kr.useEffect)(()=>{v.current.setOption("extraKeys",{"Ctrl-S":i})},[i]),(0,Kr.useEffect)(()=>{v.current.setOption("readOnly",s)},[s]),(0,Kr.useEffect)(()=>{d.current!==e&&v.current.setValue(e)},[e]),Kr.default.createElement("div",{ref:h,className:"cmd-editor"},u)}var $a=qt(Tn());var Qo=qt(Tn());function rC({commands:e}){let n=(0,Qo.useRef)(),[{height:i},u]=(0,Qo.useState)({}),[s,h]=(0,Qo.useState)(0),{length:d}=e,v=20,k=d*v;return(0,Qo.useEffect)(()=>{let S=()=>u(n.current.getBoundingClientRect());S(),window.addEventListener("resize",S);let E=O=>h(O.target.scrollTop);return n.current.addEventListener("scroll",E),()=>{window.removeEventListener("resize",S),n.current.removeEventListener("scroll",E)}},[]),$a.default.createElement("div",{className:"cmd-list",ref:n},$a.default.createElement("div",{style:{height:k}},e.map((S,E)=>{let O=E*v,ie=O+v>s,ve=O-v{let s=localStorage.getItem(e);return s?JSON.parse(s):n});return(0,Nf.useEffect)(()=>{localStorage.setItem(e,JSON.stringify(i))},[i]),[i,u]}function Zo(){let[e,n]=gw("password",""),[i,u]=gw("admin",!1);return{fetchAPI:(h,d={})=>new Promise((v,k)=>{let S={...d,headers:{"X-Authorization":`Basic ${btoa(`web:${e}`)}`,"Content-Type":"application/json"},body:d.body&&JSON.stringify(d.body)};fetch(`/api/${h}`,S).then(E=>E.json()).then(v).catch(k)}),password:e,setPassword:n,admin:i,setAdmin:u}}function Dp(){let{fetchAPI:e,password:n,setPassword:i,admin:u,setAdmin:s}=Zo();return(0,go.useEffect)(()=>{e("is-admin").then(s).catch(console.error)},[n]),go.default.createElement("div",{className:"cmd-default"},go.default.createElement("input",{type:"password",placeholder:"admin pwd",value:n,className:u?"admin":"error",onChange:h=>i(h.target.value)}),go.default.createElement("p",null,"an interface for manipulating commands"),go.default.createElement("p",null,"alternatively, try the"," ",go.default.createElement("a",{href:"https://www.github.com/kirjavascript/nibblrjr.vim",target:"_blank"},"vim plugin")))}var _w=qt(yw()),kw=qt(xw());function Op({command:e}){return Mt.default.createElement(Mt.default.Fragment,null,e.name,e.starred&&Mt.default.createElement("span",{className:"star"}," \u2605")," ",e.locked&&Mt.default.createElement(Ep,null),e.event&&Mt.default.createElement("span",{className:"event"}," (event)"))}function oC({history:e}){let[n,i]=(0,Mt.useState)([]),[u,s]=(0,Mt.useState)(""),[h,d]=(0,Mt.useState)(!1),[v,k]=(0,Mt.useState)(!1),[S,E]=(0,Mt.useState)(""),{fetchAPI:O,admin:ie}=Zo(),ve=(0,Mt.useCallback)(()=>{O("command/list").then(i).catch(console.error)},[]);(0,Mt.useEffect)(ve,[]);let Ee;try{Ee=new RegExp(u)}catch{}let ne=n.filter(g=>(g.starred&&h||!h)&&(g.locked&&v||!v)),R=ne.filter(g=>!u||g.name.match(Ee)),I=n.some(g=>g.name===S),{root:Y}=(0,kw.parseCommand)({text:S}),le=n.find(g=>g.name===Y),pe=le&&le.locked,B=!_w.default.includes(S)&&!I&&(!pe||ie),c=(0,Mt.useCallback)(g=>{if(g.keyCode===13&&B){let x=encodeURIComponent(S);O(`command/new/${x}`,{method:"POST"}).then(()=>{E(""),ve(),e.push(`/cmds/${x}`)}).catch(console.error)}},[S]);return Mt.default.createElement(Mt.default.Fragment,null,Mt.default.createElement("div",{className:"cmd-menu"},Mt.default.createElement("div",null,Mt.default.createElement("input",{type:"text",placeholder:"new command",className:!B&&S?"invalid":"",value:S,onChange:g=>E(g.target.value.replace(/\s+/g,"")),onKeyDown:c}),Mt.default.createElement("input",{type:"text",placeholder:"search commands (regex)",value:u,onChange:g=>{s(g.target.value)}}),Mt.default.createElement("div",{className:"cmd-filter"},Mt.default.createElement("span",null," ",R.length," / ",ne.length," "),Mt.default.createElement("div",{className:"cmd-toggle"},Mt.default.createElement("span",{className:"star"},"\u2605"),Mt.default.createElement(Ga,{checked:h,onChange:()=>d(!h)}),Mt.default.createElement(Ep,null),Mt.default.createElement(Ga,{checked:v,onChange:()=>k(!v)})))),Mt.default.createElement(vw,{commands:R})),Mt.default.createElement(Fi,{exact:!0,path:"/cmds/:name",render:g=>Mt.default.createElement(aC,{updateList:ve,...g})}),Mt.default.createElement(Fi,{exact:!0,path:"/cmds",component:Dp}))}var Tw="/* loading ... */";function aC({updateList:e,history:n,match:{params:i}}){let{fetchAPI:u,admin:s}=Zo(),[h,d]=(0,Mt.useState)({command:Tw}),[v,k]=(0,Mt.useState)(Tw),[S,E]=(0,Mt.useState)(!1),[O,ie]=(0,Mt.useState)("delete");function ve(){u("command/get/"+i.name).then(g=>{d(g),k(g.command)}).catch(console.error),ie("delete")}(0,Mt.useEffect)(ve,[i.name]);let Ee=g=>{let x={method:"POST",body:{[g]:!h[g]}};u("command/set-config/"+i.name,x).then(P=>{P.error||(ve(),e())}).catch(console.error)},ne=()=>{E(!0);let g={method:"POST",body:{command:h.command}};u("command/set/"+i.name,g).then(x=>{x.error?alert(x.error):k(h.command),E(!1)}).catch(console.error)},R=()=>{O!=="confirm?"?ie("confirm?"):u("command/delete/"+i.name,{method:"POST"}).then(g=>{g.error?ie(g.error):(e(),n.push("/cmds"))}).catch(console.error)},I=h.error?`/* error: ${h.error} */`:h.command,{locked:Y,starred:le,event:pe}=h,Re=S?"saving":h.command===v?"saved":"save",B=s,c=h.locked&&!B;return Mt.default.createElement(Lp,{value:I,readOnly:c,onSave:ne,onChange:g=>{d({...h,command:g})}},Mt.default.createElement("div",{className:"cmd-options"},Mt.default.createElement("span",{className:"cmd-name"},Mt.default.createElement(Op,{command:h})),!!h.name&&Mt.default.createElement("div",null,!c&&Mt.default.createElement(Mt.default.Fragment,null,Mt.default.createElement("button",{type:"button",onClick:ne},Re),B&&Mt.default.createElement(Mt.default.Fragment,null,Mt.default.createElement("button",{type:"button",onClick:()=>{Ee("locked")}},Y?"unlock":"lock"),Mt.default.createElement("button",{type:"button",onClick:()=>{Ee("starred")}},le?"unstar":"star"),Mt.default.createElement("button",{type:"button",onClick:()=>{Ee("event")}},pe?"unevent":"as event")),Mt.default.createElement("button",{type:"button",onClick:R},O)))))}var Sw=oC;var tn=qt(Tn());var _r=qt(Tn());var Va=qt(Tn());function xl({items:e,...n}){return Va.default.createElement("div",{className:"select"},Va.default.createElement("select",{...n},e.map(({label:i,value:u})=>Va.default.createElement("option",{value:u,key:u},i))),Va.default.createElement("svg",{className:"arrow",width:"12",height:"12",viewBox:"0 0 100 50"},Va.default.createElement("path",{d:"M0,0H100L50,50z"})))}var Wp=qt(hx()),wx=qt(yx());function CM({onMonth:e,onChange:n,base:i,history:u,location:s}){let h=(0,_r.useMemo)(()=>s.pathname.split("/"),[]),[d,v]=(0,_r.useState)(h[2]||""),[k,S]=(0,_r.useState)(decodeURIComponent(h[3]||"")),[E,O]=(0,_r.useState)(h[4]||"");(0,_r.useEffect)(()=>{u.replace(["/stats",d||k||E?"/":"",d,k||E?"/":"",encodeURIComponent(k),E?"/":"",E].join("")),n({server:d,channel:k,month:E})},[d,k,E]),(0,_r.useEffect)(()=>{e({server:d,channel:k,month:E})},[E]);let ie=i.servers.map(({server:ne})=>({label:ne,value:ne})),ve=i.servers.reduce((ne,R)=>((d===""||R.server===d)&&ne.push(...R.channels.map(I=>({label:I,value:I}))),ne),[]).filter((ne,R,I)=>I.findIndex(Y=>Y.value==ne.value)===R),Ee=Array.from({length:12},(ne,R)=>{let I=(0,wx.default)(new Date,R+1);return{label:(0,Wp.default)(I,"MMMM YYYY").toLowerCase(),value:(0,Wp.default)(I,"YYYY-MM")}});return(0,_r.useEffect)(()=>{(d||k||E)&&s.pathname==="/stats"&&(v(""),S(""),O(""))},[s.pathname]),_r.default.createElement("div",{className:"stats-filter"},_r.default.createElement(xl,{value:d,items:[{label:"servers",value:""},...ie],onChange:ne=>{v(ne.target.value),ne.target.value&&S("")}}),_r.default.createElement(xl,{value:k,items:[{label:"channels",value:""},...ve],onChange:ne=>S(ne.target.value)}),_r.default.createElement(xl,{value:E,items:[{label:"this month",value:""},...Ee],onChange:ne=>O(ne.target.value)}))}var xx=CM;var mo=qt(Tn()),_l=Object.assign({},Jo(),jp(),Yp(),Gp());function $p({x:e,y:n,width:i,height:u,radius:s=3}){return s>u&&(s=u),i0&&r.prevInput=="\u200B"?Wn(a,eg)(a):Ve++<10?o.detectingSelectAll=setTimeout(nt,500):(o.selForContextMenu=null,o.input.reset())};o.detectingSelectAll=setTimeout(nt,200)}}if(d&&v>=9&&Te(),c){ln(t);var Be=function(){Se(window,"mouseup",Be),setTimeout(ye,20)};M(window,"mouseup",Be)}else setTimeout(ye,50)},Cn.prototype.readOnlyChanged=function(t){t||this.reset(),this.textarea.disabled=t=="nocursor",this.textarea.readOnly=!!t},Cn.prototype.setUneditable=function(){},Cn.prototype.needsContentAttribute=!1;function Uk(t,r){if(r=r?ce(r):{},r.value=t.value,!r.tabindex&&t.tabIndex&&(r.tabindex=t.tabIndex),!r.placeholder&&t.placeholder&&(r.placeholder=t.placeholder),r.autofocus==null){var a=oe();r.autofocus=a==t||t.getAttribute("autofocus")!=null&&a==document.body}function o(){t.value=m.getValue()}var l;if(t.form&&(M(t.form,"submit",o),!r.leaveSubmitMethodAlone)){var f=t.form;l=f.submit;try{var p=f.submit=function(){o(),f.submit=l,f.submit(),f.submit=p}}catch{}}r.finishInit=function(T){T.save=o,T.getTextArea=function(){return t},T.toTextArea=function(){T.toTextArea=isNaN,o(),t.parentNode.removeChild(T.getWrapperElement()),t.style.display="",t.form&&(Se(t.form,"submit",o),!r.leaveSubmitMethodAlone&&typeof t.form.submit=="function"&&(t.form.submit=l))}},t.style.display="none";var m=vn(function(T){return t.parentNode.insertBefore(T,t.nextSibling)},r);return m}function Bk(t){t.off=Se,t.on=M,t.wheelEventPixels=X_,t.Doc=dr,t.splitLines=L,t.countColumn=ke,t.findColumn=Oe,t.isWordChar=Lt,t.Pass=He,t.signal=ze,t.Line=si,t.changeEnd=Yi,t.scrollbarModel=Pv,t.Pos=de,t.cmpPos=_,t.modes=Ie,t.mimeModes=$e,t.resolveMode=vt,t.getMode=Ot,t.modeExtensions=Ct,t.extendMode=Nt,t.copyState=Jt,t.startState=bn,t.innerMode=An,t.commands=xu,t.keyMap=Ci,t.keyName=gg,t.isModifierKey=pg,t.lookupKey=da,t.normalizeKeyMap=mk,t.StringStream=Ut,t.SharedTextMarker=mu,t.TextMarker=Gi,t.LineWidget=gu,t.e_preventDefault=bt,t.e_stopPropagation=Rt,t.e_stop=ln,t.addClass=Le,t.contains=q,t.rmClass=x,t.keyNames=$i}Dk(vn),Fk(vn);var jk="iter insert remove copy getEditor constructor".split(" ");for(var $l in dr.prototype)dr.prototype.hasOwnProperty($l)&&me(jk,$l)<0&&(vn.prototype[$l]=function(t){return function(){return t.apply(this.doc,arguments)}}(dr.prototype[$l]));return wt(dr),vn.inputStyles={textarea:Cn,contenteditable:an},vn.defineMode=function(t){!vn.defaults.mode&&t!="null"&&(vn.defaults.mode=t),Ke.apply(this,arguments)},vn.defineMIME=et,vn.defineMode("null",function(){return{token:function(t){return t.skipToEnd()}}}),vn.defineMIME("text/plain","null"),vn.defineExtension=function(t,r){vn.prototype[t]=r},vn.defineDocExtension=function(t,r){dr.prototype[t]=r},vn.fromTextArea=Uk,Bk(vn),vn.version="5.65.3",vn})});var sw=yt((uw,lw)=>{(function(e){typeof uw=="object"&&typeof lw=="object"?e(wl()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)})(function(e){"use strict";var n={autoSelfClosers:{area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0,menuitem:!0},implicitlyClosed:{dd:!0,li:!0,optgroup:!0,option:!0,p:!0,rp:!0,rt:!0,tbody:!0,td:!0,tfoot:!0,th:!0,tr:!0},contextGrabbers:{dd:{dd:!0,dt:!0},dt:{dd:!0,dt:!0},li:{li:!0},option:{option:!0,optgroup:!0},optgroup:{optgroup:!0},p:{address:!0,article:!0,aside:!0,blockquote:!0,dir:!0,div:!0,dl:!0,fieldset:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,menu:!0,nav:!0,ol:!0,p:!0,pre:!0,section:!0,table:!0,ul:!0},rp:{rp:!0,rt:!0},rt:{rp:!0,rt:!0},tbody:{tbody:!0,tfoot:!0},td:{td:!0,th:!0},tfoot:{tbody:!0},th:{td:!0,th:!0},thead:{tbody:!0,tfoot:!0},tr:{tr:!0}},doNotIndent:{pre:!0},allowUnquoted:!0,allowMissing:!0,caseFold:!0},i={autoSelfClosers:{},implicitlyClosed:{},contextGrabbers:{},doNotIndent:{},allowUnquoted:!1,allowMissing:!1,allowMissingTagName:!1,caseFold:!1};e.defineMode("xml",function(u,s){var h=u.indentUnit,d={},v=s.htmlMode?n:i;for(var k in v)d[k]=v[k];for(var k in s)d[k]=s[k];var S,E;function O(y,D){function q(we){return D.tokenize=we,we(y,D)}var oe=y.next();if(oe=="<")return y.eat("!")?y.eat("[")?y.match("CDATA[")?q(Ee("atom","]]>")):null:y.match("--")?q(Ee("comment","-->")):y.match("DOCTYPE",!0,!0)?(y.eatWhile(/[\w\._\-]/),q(ne(1))):null:y.eat("?")?(y.eatWhile(/[\w\._\-]/),D.tokenize=Ee("meta","?>"),"meta"):(S=y.eat("/")?"closeTag":"openTag",D.tokenize=ie,"tag bracket");if(oe=="&"){var Le;return y.eat("#")?y.eat("x")?Le=y.eatWhile(/[a-fA-F\d]/)&&y.eat(";"):Le=y.eatWhile(/[\d]/)&&y.eat(";"):Le=y.eatWhile(/[\w\.\-:]/)&&y.eat(";"),Le?"atom":"error"}else return y.eatWhile(/[^&<]/),null}O.isInText=!0;function ie(y,D){var q=y.next();if(q==">"||q=="/"&&y.eat(">"))return D.tokenize=O,S=q==">"?"endTag":"selfcloseTag","tag bracket";if(q=="=")return S="equals",null;if(q=="<"){D.tokenize=O,D.state=pe,D.tagName=D.tagStart=null;var oe=D.tokenize(y,D);return oe?oe+" tag error":"tag error"}else return/[\'\"]/.test(q)?(D.tokenize=ve(q),D.stringStartCol=y.column(),D.tokenize(y,D)):(y.match(/^[^\s\u00a0=<>\"\']*[^\s\u00a0=<>\"\'\/]/),"word")}function ve(y){var D=function(q,oe){for(;!q.eol();)if(q.next()==y){oe.tokenize=ie;break}return"string"};return D.isInAttribute=!0,D}function Ee(y,D){return function(q,oe){for(;!q.eol();){if(q.match(D)){oe.tokenize=O;break}q.next()}return y}}function ne(y){return function(D,q){for(var oe;(oe=D.next())!=null;){if(oe=="<")return q.tokenize=ne(y+1),q.tokenize(D,q);if(oe==">")if(y==1){q.tokenize=O;break}else return q.tokenize=ne(y-1),q.tokenize(D,q)}return"meta"}}function R(y){return y&&y.toLowerCase()}function I(y,D,q){this.prev=y.context,this.tagName=D||"",this.indent=y.indented,this.startOfLine=q,(d.doNotIndent.hasOwnProperty(D)||y.context&&y.context.noIndent)&&(this.noIndent=!0)}function Y(y){y.context&&(y.context=y.context.prev)}function le(y,D){for(var q;;){if(!y.context||(q=y.context.tagName,!d.contextGrabbers.hasOwnProperty(R(q))||!d.contextGrabbers[R(q)].hasOwnProperty(R(D))))return;Y(y)}}function pe(y,D,q){return y=="openTag"?(q.tagStart=D.column(),Re):y=="closeTag"?B:pe}function Re(y,D,q){return y=="word"?(q.tagName=D.current(),E="tag",x):d.allowMissingTagName&&y=="endTag"?(E="tag bracket",x(y,D,q)):(E="error",Re)}function B(y,D,q){if(y=="word"){var oe=D.current();return q.context&&q.context.tagName!=oe&&d.implicitlyClosed.hasOwnProperty(R(q.context.tagName))&&Y(q),q.context&&q.context.tagName==oe||d.matchClosing===!1?(E="tag",c):(E="tag error",g)}else return d.allowMissingTagName&&y=="endTag"?(E="tag bracket",c(y,D,q)):(E="error",g)}function c(y,D,q){return y!="endTag"?(E="error",c):(Y(q),pe)}function g(y,D,q){return E="error",c(y,D,q)}function x(y,D,q){if(y=="word")return E="attribute",P;if(y=="endTag"||y=="selfcloseTag"){var oe=q.tagName,Le=q.tagStart;return q.tagName=q.tagStart=null,y=="selfcloseTag"||d.autoSelfClosers.hasOwnProperty(R(oe))?le(q,oe):(le(q,oe),q.context=new I(q,oe,Le==q.indented)),pe}return E="error",x}function P(y,D,q){return y=="equals"?b:(d.allowMissing||(E="error"),x(y,D,q))}function b(y,D,q){return y=="string"?U:y=="word"&&d.allowUnquoted?(E="string",x):(E="error",x(y,D,q))}function U(y,D,q){return y=="string"?U:x(y,D,q)}return{startState:function(y){var D={tokenize:O,state:pe,indented:y||0,tagName:null,tagStart:null,context:null};return y!=null&&(D.baseIndent=y),D},token:function(y,D){if(!D.tagName&&y.sol()&&(D.indented=y.indentation()),y.eatSpace())return null;S=null;var q=D.tokenize(y,D);return(q||S)&&q!="comment"&&(E=null,D.state=D.state(S||q,y,D),E&&(q=E=="error"?q+" error":E)),q},indent:function(y,D,q){var oe=y.context;if(y.tokenize.isInAttribute)return y.tagStart==y.indented?y.stringStartCol+1:y.indented+h;if(oe&&oe.noIndent)return e.Pass;if(y.tokenize!=ie&&y.tokenize!=O)return q?q.match(/^(\s*)/)[0].length:0;if(y.tagName)return d.multilineTagIndentPastTag!==!1?y.tagStart+y.tagName.length+2:y.tagStart+h*(d.multilineTagIndentFactor||1);if(d.alignCDATA&&/$/,blockCommentStart:"",configuration:d.htmlMode?"html":"xml",helperType:d.htmlMode?"html":"xml",skipAttribute:function(y){y.state==b&&(y.state=x)},xmlCurrentTag:function(y){return y.tagName?{name:y.tagName,close:y.type=="closeTag"}:null},xmlCurrentContext:function(y){for(var D=[],q=y.context;q;q=q.prev)D.push(q.tagName);return D.reverse()}}}),e.defineMIME("text/xml","xml"),e.defineMIME("application/xml","xml"),e.mimeModes.hasOwnProperty("text/html")||e.defineMIME("text/html",{name:"xml",htmlMode:!0})})});var hw=yt((fw,cw)=>{(function(e){typeof fw=="object"&&typeof cw=="object"?e(wl()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)})(function(e){"use strict";e.defineMode("javascript",function(n,i){var u=n.indentUnit,s=i.statementIndent,h=i.jsonld,d=i.json||h,v=i.trackScope!==!1,k=i.typescript,S=i.wordCharacters||/[\w$\xa1-\uffff]/,E=function(){function _(Vt){return{type:Vt,style:"keyword"}}var H=_("keyword a"),be=_("keyword b"),Ne=_("keyword c"),Ze=_("keyword d"),ft=_("operator"),Qe={type:"atom",style:"atom"};return{if:_("if"),while:H,with:H,else:be,do:be,try:be,finally:be,return:Ze,break:Ze,continue:Ze,new:_("new"),delete:Ne,void:Ne,throw:Ne,debugger:_("debugger"),var:_("var"),const:_("var"),let:_("var"),function:_("function"),catch:_("catch"),for:_("for"),switch:_("switch"),case:_("case"),default:_("default"),in:ft,typeof:ft,instanceof:ft,true:Qe,false:Qe,null:Qe,undefined:Qe,NaN:Qe,Infinity:Qe,this:_("this"),class:_("class"),super:_("atom"),yield:Ne,export:_("export"),import:_("import"),extends:Ne,await:Ne}}(),O=/[+\-*&%=<>!?|~^@]/,ie=/^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/;function ve(_){for(var H=!1,be,Ne=!1;(be=_.next())!=null;){if(!H){if(be=="/"&&!Ne)return;be=="["?Ne=!0:Ne&&be=="]"&&(Ne=!1)}H=!H&&be=="\\"}}var Ee,ne;function R(_,H,be){return Ee=_,ne=be,H}function I(_,H){var be=_.next();if(be=='"'||be=="'")return H.tokenize=Y(be),H.tokenize(_,H);if(be=="."&&_.match(/^\d[\d_]*(?:[eE][+\-]?[\d_]+)?/))return R("number","number");if(be=="."&&_.match(".."))return R("spread","meta");if(/[\[\]{}\(\),;\:\.]/.test(be))return R(be);if(be=="="&&_.eat(">"))return R("=>","operator");if(be=="0"&&_.match(/^(?:x[\dA-Fa-f_]+|o[0-7_]+|b[01_]+)n?/))return R("number","number");if(/\d/.test(be))return _.match(/^[\d_]*(?:n|(?:\.[\d_]*)?(?:[eE][+\-]?[\d_]+)?)?/),R("number","number");if(be=="/")return _.eat("*")?(H.tokenize=le,le(_,H)):_.eat("/")?(_.skipToEnd(),R("comment","comment")):de(_,H,1)?(ve(_),_.match(/^\b(([gimyus])(?![gimyus]*\2))+\b/),R("regexp","string-2")):(_.eat("="),R("operator","operator",_.current()));if(be=="`")return H.tokenize=pe,pe(_,H);if(be=="#"&&_.peek()=="!")return _.skipToEnd(),R("meta","meta");if(be=="#"&&_.eatWhile(S))return R("variable","property");if(be=="<"&&_.match("!--")||be=="-"&&_.match("->")&&!/\S/.test(_.string.slice(0,_.start)))return _.skipToEnd(),R("comment","comment");if(O.test(be))return(be!=">"||!H.lexical||H.lexical.type!=">")&&(_.eat("=")?(be=="!"||be=="=")&&_.eat("="):/[<>*+\-|&?]/.test(be)&&(_.eat(be),be==">"&&_.eat(be))),be=="?"&&_.eat(".")?R("."):R("operator","operator",_.current());if(S.test(be)){_.eatWhile(S);var Ne=_.current();if(H.lastType!="."){if(E.propertyIsEnumerable(Ne)){var Ze=E[Ne];return R(Ze.type,Ze.style,Ne)}if(Ne=="async"&&_.match(/^(\s|\/\*([^*]|\*(?!\/))*?\*\/)*[\[\(\w]/,!1))return R("async","keyword",Ne)}return R("variable","variable",Ne)}}function Y(_){return function(H,be){var Ne=!1,Ze;if(h&&H.peek()=="@"&&H.match(ie))return be.tokenize=I,R("jsonld-keyword","meta");for(;(Ze=H.next())!=null&&!(Ze==_&&!Ne);)Ne=!Ne&&Ze=="\\";return Ne||(be.tokenize=I),R("string","string")}}function le(_,H){for(var be=!1,Ne;Ne=_.next();){if(Ne=="/"&&be){H.tokenize=I;break}be=Ne=="*"}return R("comment","comment")}function pe(_,H){for(var be=!1,Ne;(Ne=_.next())!=null;){if(!be&&(Ne=="`"||Ne=="$"&&_.eat("{"))){H.tokenize=I;break}be=!be&&Ne=="\\"}return R("quasi","string-2",_.current())}var Re="([{}])";function B(_,H){H.fatArrowAt&&(H.fatArrowAt=null);var be=_.string.indexOf("=>",_.start);if(!(be<0)){if(k){var Ne=/:\s*(?:\w+(?:<[^>]*>|\[\])?|\{[^}]*\})\s*$/.exec(_.string.slice(_.start,be));Ne&&(be=Ne.index)}for(var Ze=0,ft=!1,Qe=be-1;Qe>=0;--Qe){var Vt=_.string.charAt(Qe),sn=Re.indexOf(Vt);if(sn>=0&&sn<3){if(!Ze){++Qe;break}if(--Ze==0){Vt=="("&&(ft=!0);break}}else if(sn>=3&&sn<6)++Ze;else if(S.test(Vt))ft=!0;else if(/["'\/`]/.test(Vt))for(;;--Qe){if(Qe==0)return;var on=_.string.charAt(Qe-1);if(on==Vt&&_.string.charAt(Qe-2)!="\\"){Qe--;break}}else if(ft&&!Ze){++Qe;break}}ft&&!Ze&&(H.fatArrowAt=Qe)}}var c={atom:!0,number:!0,variable:!0,string:!0,regexp:!0,this:!0,import:!0,"jsonld-keyword":!0};function g(_,H,be,Ne,Ze,ft){this.indented=_,this.column=H,this.type=be,this.prev=Ze,this.info=ft,Ne!=null&&(this.align=Ne)}function x(_,H){if(!v)return!1;for(var be=_.localVars;be;be=be.next)if(be.name==H)return!0;for(var Ne=_.context;Ne;Ne=Ne.prev)for(var be=Ne.vars;be;be=be.next)if(be.name==H)return!0}function P(_,H,be,Ne,Ze){var ft=_.cc;for(b.state=_,b.stream=Ze,b.marked=null,b.cc=ft,b.style=H,_.lexical.hasOwnProperty("align")||(_.lexical.align=!0);;){var Qe=ft.length?ft.pop():d?ge:Je;if(Qe(be,Ne)){for(;ft.length&&ft[ft.length-1].lex;)ft.pop()();return b.marked?b.marked:be=="variable"&&x(_,Ne)?"variable-2":H}}}var b={state:null,column:null,marked:null,cc:null};function U(){for(var _=arguments.length-1;_>=0;_--)b.cc.push(arguments[_])}function y(){return U.apply(null,arguments),!0}function D(_,H){for(var be=H;be;be=be.next)if(be.name==_)return!0;return!1}function q(_){var H=b.state;if(b.marked="def",!!v){if(H.context){if(H.lexical.info=="var"&&H.context&&H.context.block){var be=oe(_,H.context);if(be!=null){H.context=be;return}}else if(!D(_,H.localVars)){H.localVars=new re(_,H.localVars);return}}i.globalVars&&!D(_,H.globalVars)&&(H.globalVars=new re(_,H.globalVars))}}function oe(_,H){if(H)if(H.block){var be=oe(_,H.prev);return be?be==H.prev?H:new we(be,H.vars,!0):null}else return D(_,H.vars)?H:new we(H.prev,new re(_,H.vars),!1);else return null}function Le(_){return _=="public"||_=="private"||_=="protected"||_=="abstract"||_=="readonly"}function we(_,H,be){this.prev=_,this.vars=H,this.block=be}function re(_,H){this.name=_,this.next=H}var We=new re("this",new re("arguments",null));function ce(){b.state.context=new we(b.state.context,b.state.localVars,!1),b.state.localVars=We}function ke(){b.state.context=new we(b.state.context,b.state.localVars,!0),b.state.localVars=null}ce.lex=ke.lex=!0;function Ce(){b.state.localVars=b.state.context.vars,b.state.context=b.state.context.prev}Ce.lex=!0;function me(_,H){var be=function(){var Ne=b.state,Ze=Ne.indented;if(Ne.lexical.type=="stat")Ze=Ne.lexical.indented;else for(var ft=Ne.lexical;ft&&ft.type==")"&&ft.align;ft=ft.prev)Ze=ft.indented;Ne.lexical=new g(Ze,b.stream.column(),_,null,Ne.lexical,H)};return be.lex=!0,be}function Ue(){var _=b.state;_.lexical.prev&&(_.lexical.type==")"&&(_.indented=_.lexical.indented),_.lexical=_.lexical.prev)}Ue.lex=!0;function He(_){function H(be){return be==_?y():_==";"||be=="}"||be==")"||be=="]"?U():y(H)}return H}function Je(_,H){return _=="var"?y(me("vardef",H),K,He(";"),Ue):_=="keyword a"?y(me("form"),Q,Je,Ue):_=="keyword b"?y(me("form"),Je,Ue):_=="keyword d"?b.stream.match(/^\s*$/,!1)?y():y(me("stat"),fe,He(";"),Ue):_=="debugger"?y(He(";")):_=="{"?y(me("}"),ke,Xe,Ue,Ce):_==";"?y():_=="if"?(b.state.lexical.info=="else"&&b.state.cc[b.state.cc.length-1]==Ue&&b.state.cc.pop()(),y(me("form"),Q,Je,Ue,V)):_=="function"?y(Ie):_=="for"?y(me("form"),ke,he,Je,Ce,Ue):_=="class"||k&&H=="interface"?(b.marked="keyword",y(me("form",_=="class"?_:H),Ot,Ue)):_=="variable"?k&&H=="declare"?(b.marked="keyword",y(Je)):k&&(H=="module"||H=="enum"||H=="type")&&b.stream.match(/^\s*\w/,!1)?(b.marked="keyword",H=="enum"?y(G):H=="type"?y(Ke,He("operator"),ze,He(";")):y(me("form"),Pe,He("{"),me("}"),Xe,Ue,Ue)):k&&H=="namespace"?(b.marked="keyword",y(me("form"),ge,Je,Ue)):k&&H=="abstract"?(b.marked="keyword",y(Je)):y(me("stat"),Zt):_=="switch"?y(me("form"),Q,He("{"),me("}","switch"),ke,Xe,Ue,Ue,Ce):_=="case"?y(ge,He(":")):_=="default"?y(He(":")):_=="catch"?y(me("form"),ce,te,Je,Ue,Ce):_=="export"?y(me("stat"),An,Ue):_=="import"?y(me("stat"),Ut,Ue):_=="async"?y(Je):H=="@"?y(ge,Je):U(me("stat"),ge,He(";"),Ue)}function te(_){if(_=="(")return y(et,He(")"))}function ge(_,H){return ee(_,H,!1)}function Oe(_,H){return ee(_,H,!0)}function Q(_){return _!="("?U():y(me(")"),fe,He(")"),Ue)}function ee(_,H,be){if(b.state.fatArrowAt==b.stream.start){var Ne=be?Lt:Gt;if(_=="(")return y(ce,me(")"),j(et,")"),Ue,He("=>"),Ne,Ce);if(_=="variable")return U(ce,Pe,He("=>"),Ne,Ce)}var Ze=be?at:De;return c.hasOwnProperty(_)?y(Ze):_=="function"?y(Ie,Ze):_=="class"||k&&H=="interface"?(b.marked="keyword",y(me("form"),vt,Ue)):_=="keyword c"||_=="async"?y(be?Oe:ge):_=="("?y(me(")"),fe,He(")"),Ue,Ze):_=="operator"||_=="spread"?y(be?Oe:ge):_=="["?y(me("]"),St,Ue,Ze):_=="{"?Ae($t,"}",null,Ze):_=="quasi"?U(dt,Ze):_=="new"?y(Et(be)):y()}function fe(_){return _.match(/[;\}\)\],]/)?U():U(ge)}function De(_,H){return _==","?y(fe):at(_,H,!1)}function at(_,H,be){var Ne=be==!1?De:at,Ze=be==!1?ge:Oe;if(_=="=>")return y(ce,be?Lt:Gt,Ce);if(_=="operator")return/\+\+|--/.test(H)||k&&H=="!"?y(Ne):k&&H=="<"&&b.stream.match(/^([^<>]|<[^<>]*>)*>\s*\(/,!1)?y(me(">"),j(ze,">"),Ue,Ne):H=="?"?y(ge,He(":"),Ze):y(Ze);if(_=="quasi")return U(dt,Ne);if(_!=";"){if(_=="(")return Ae(Oe,")","call",Ne);if(_==".")return y(pn,Ne);if(_=="[")return y(me("]"),fe,He("]"),Ue,Ne);if(k&&H=="as")return b.marked="keyword",y(ze,Ne);if(_=="regexp")return b.state.lastType=b.marked="operator",b.stream.backUp(b.stream.pos-b.stream.start-1),y(Ze)}}function dt(_,H){return _!="quasi"?U():H.slice(H.length-2)!="${"?y(dt):y(fe,Yt)}function Yt(_){if(_=="}")return b.marked="string-2",b.state.tokenize=pe,y(dt)}function Gt(_){return B(b.stream,b.state),U(_=="{"?Je:ge)}function Lt(_){return B(b.stream,b.state),U(_=="{"?Je:Oe)}function Et(_){return function(H){return H=="."?y(_?zt:Bt):H=="variable"&&k?y(ln,_?at:De):U(_?Oe:ge)}}function Bt(_,H){if(H=="target")return b.marked="keyword",y(De)}function zt(_,H){if(H=="target")return b.marked="keyword",y(at)}function Zt(_){return _==":"?y(Ue,Je):U(De,He(";"),Ue)}function pn(_){if(_=="variable")return b.marked="property",y()}function $t(_,H){if(_=="async")return b.marked="property",y($t);if(_=="variable"||b.style=="keyword"){if(b.marked="property",H=="get"||H=="set")return y(kn);var be;return k&&b.state.fatArrowAt==b.stream.start&&(be=b.stream.match(/^\s*:\s*/,!1))&&(b.state.fatArrowAt=b.stream.pos+be[0].length),y(A)}else{if(_=="number"||_=="string")return b.marked=h?"property":b.style+" property",y(A);if(_=="jsonld-keyword")return y(A);if(k&&Le(H))return b.marked="keyword",y($t);if(_=="[")return y(ge,je,He("]"),A);if(_=="spread")return y(Oe,A);if(H=="*")return b.marked="keyword",y($t);if(_==":")return U(A)}}function kn(_){return _!="variable"?U(A):(b.marked="property",y(Ie))}function A(_){if(_==":")return y(Oe);if(_=="(")return U(Ie)}function j(_,H,be){function Ne(Ze,ft){if(be?be.indexOf(Ze)>-1:Ze==","){var Qe=b.state.lexical;return Qe.info=="call"&&(Qe.pos=(Qe.pos||0)+1),y(function(Vt,sn){return Vt==H||sn==H?U():U(_)},Ne)}return Ze==H||ft==H?y():be&&be.indexOf(";")>-1?U(_):y(He(H))}return function(Ze,ft){return Ze==H||ft==H?y():U(_,Ne)}}function Ae(_,H,be){for(var Ne=3;Ne"),ze);if(_=="quasi")return U(wt,Wt)}function tt(_){if(_=="=>")return y(ze)}function ct(_){return _.match(/[\}\)\]]/)?y():_==","||_==";"?y(ct):U(ht,ct)}function ht(_,H){if(_=="variable"||b.style=="keyword")return b.marked="property",y(ht);if(H=="?"||_=="number"||_=="string")return y(ht);if(_==":")return y(ze);if(_=="[")return y(He("variable"),M,He("]"),ht);if(_=="(")return U($e,ht);if(!_.match(/[;\}\)\],]/))return y()}function wt(_,H){return _!="quasi"?U():H.slice(H.length-2)!="${"?y(wt):y(ze,bt)}function bt(_){if(_=="}")return b.marked="string-2",b.state.tokenize=pe,y(wt)}function Rt(_,H){return _=="variable"&&b.stream.match(/^\s*[?:]/,!1)||H=="?"?y(Rt):_==":"?y(ze):_=="spread"?y(Rt):U(ze)}function Wt(_,H){if(H=="<")return y(me(">"),j(ze,">"),Ue,Wt);if(H=="|"||_=="."||H=="&")return y(ze);if(_=="[")return y(ze,He("]"),Wt);if(H=="extends"||H=="implements")return b.marked="keyword",y(ze);if(H=="?")return y(ze,He(":"),ze)}function ln(_,H){if(H=="<")return y(me(">"),j(ze,">"),Ue,Wt)}function nn(){return U(ze,gn)}function gn(_,H){if(H=="=")return y(ze)}function K(_,H){return H=="enum"?(b.marked="keyword",y(G)):U(Pe,je,N,L)}function Pe(_,H){if(k&&Le(H))return b.marked="keyword",y(Pe);if(_=="variable")return q(H),y();if(_=="spread")return y(Pe);if(_=="[")return Ae($,"]");if(_=="{")return Ae(F,"}")}function F(_,H){return _=="variable"&&!b.stream.match(/^\s*:/,!1)?(q(H),y(N)):(_=="variable"&&(b.marked="property"),_=="spread"?y(Pe):_=="}"?U():_=="["?y(ge,He("]"),He(":"),F):y(He(":"),Pe,N))}function $(){return U(Pe,N)}function N(_,H){if(H=="=")return y(Oe)}function L(_){if(_==",")return y(K)}function V(_,H){if(_=="keyword b"&&H=="else")return y(me("form","else"),Je,Ue)}function he(_,H){if(H=="await")return y(he);if(_=="(")return y(me(")"),_e,Ue)}function _e(_){return _=="var"?y(K,Fe):_=="variable"?y(Fe):U(Fe)}function Fe(_,H){return _==")"?y():_==";"?y(Fe):H=="in"||H=="of"?(b.marked="keyword",y(ge,Fe)):U(ge,Fe)}function Ie(_,H){if(H=="*")return b.marked="keyword",y(Ie);if(_=="variable")return q(H),y(Ie);if(_=="(")return y(ce,me(")"),j(et,")"),Ue,J,Je,Ce);if(k&&H=="<")return y(me(">"),j(nn,">"),Ue,Ie)}function $e(_,H){if(H=="*")return b.marked="keyword",y($e);if(_=="variable")return q(H),y($e);if(_=="(")return y(ce,me(")"),j(et,")"),Ue,J,Ce);if(k&&H=="<")return y(me(">"),j(nn,">"),Ue,$e)}function Ke(_,H){if(_=="keyword"||_=="variable")return b.marked="type",y(Ke);if(H=="<")return y(me(">"),j(nn,">"),Ue)}function et(_,H){return H=="@"&&y(ge,et),_=="spread"?y(et):k&&Le(H)?(b.marked="keyword",y(et)):k&&_=="this"?y(je,N):U(Pe,je,N)}function vt(_,H){return _=="variable"?Ot(_,H):Ct(_,H)}function Ot(_,H){if(_=="variable")return q(H),y(Ct)}function Ct(_,H){if(H=="<")return y(me(">"),j(nn,">"),Ue,Ct);if(H=="extends"||H=="implements"||k&&_==",")return H=="implements"&&(b.marked="keyword"),y(k?ze:ge,Ct);if(_=="{")return y(me("}"),Nt,Ue)}function Nt(_,H){if(_=="async"||_=="variable"&&(H=="static"||H=="get"||H=="set"||k&&Le(H))&&b.stream.match(/^\s+[\w$\xa1-\uffff]/,!1))return b.marked="keyword",y(Nt);if(_=="variable"||b.style=="keyword")return b.marked="property",y(Jt,Nt);if(_=="number"||_=="string")return y(Jt,Nt);if(_=="[")return y(ge,je,He("]"),Jt,Nt);if(H=="*")return b.marked="keyword",y(Nt);if(k&&_=="(")return U($e,Nt);if(_==";"||_==",")return y(Nt);if(_=="}")return y();if(H=="@")return y(ge,Nt)}function Jt(_,H){if(H=="!"||H=="?")return y(Jt);if(_==":")return y(ze,N);if(H=="=")return y(Oe);var be=b.state.lexical.prev,Ne=be&&be.info=="interface";return U(Ne?$e:Ie)}function An(_,H){return H=="*"?(b.marked="keyword",y(Xt,He(";"))):H=="default"?(b.marked="keyword",y(ge,He(";"))):_=="{"?y(j(bn,"}"),Xt,He(";")):U(Je)}function bn(_,H){if(H=="as")return b.marked="keyword",y(He("variable"));if(_=="variable")return U(Oe,bn)}function Ut(_){return _=="string"?y():_=="("?U(ge):_=="."?U(De):U(st,Tt,Xt)}function st(_,H){return _=="{"?Ae(st,"}"):(_=="variable"&&q(H),H=="*"&&(b.marked="keyword"),y(rn))}function Tt(_){if(_==",")return y(st,Tt)}function rn(_,H){if(H=="as")return b.marked="keyword",y(st)}function Xt(_,H){if(H=="from")return b.marked="keyword",y(ge)}function St(_){return _=="]"?y():U(j(Oe,"]"))}function G(){return U(me("form"),Pe,He("{"),me("}"),j(se,"}"),Ue,Ue)}function se(){return U(Pe,N)}function qe(_,H){return _.lastType=="operator"||_.lastType==","||O.test(H.charAt(0))||/[,.]/.test(H.charAt(0))}function de(_,H,be){return H.tokenize==I&&/^(?:operator|sof|keyword [bcd]|case|new|export|default|spread|[\[{}\(,;:]|=>)$/.test(H.lastType)||H.lastType=="quasi"&&/\{\s*$/.test(_.string.slice(0,_.pos-(be||0)))}return{startState:function(_){var H={tokenize:I,lastType:"sof",cc:[],lexical:new g((_||0)-u,0,"block",!1),localVars:i.localVars,context:i.localVars&&new we(null,null,!1),indented:_||0};return i.globalVars&&typeof i.globalVars=="object"&&(H.globalVars=i.globalVars),H},token:function(_,H){if(_.sol()&&(H.lexical.hasOwnProperty("align")||(H.lexical.align=!1),H.indented=_.indentation(),B(_,H)),H.tokenize!=le&&_.eatSpace())return null;var be=H.tokenize(_,H);return Ee=="comment"?be:(H.lastType=Ee=="operator"&&(ne=="++"||ne=="--")?"incdec":Ee,P(H,be,Ee,ne,_))},indent:function(_,H){if(_.tokenize==le||_.tokenize==pe)return e.Pass;if(_.tokenize!=I)return 0;var be=H&&H.charAt(0),Ne=_.lexical,Ze;if(!/^\s*else\b/.test(H))for(var ft=_.cc.length-1;ft>=0;--ft){var Qe=_.cc[ft];if(Qe==Ue)Ne=Ne.prev;else if(Qe!=V&&Qe!=Ce)break}for(;(Ne.type=="stat"||Ne.type=="form")&&(be=="}"||(Ze=_.cc[_.cc.length-1])&&(Ze==De||Ze==at)&&!/^[,\.=+\-*:?[\(]/.test(H));)Ne=Ne.prev;s&&Ne.type==")"&&Ne.prev.type=="stat"&&(Ne=Ne.prev);var Vt=Ne.type,sn=be==Vt;return Vt=="vardef"?Ne.indented+(_.lastType=="operator"||_.lastType==","?Ne.info.length+1:0):Vt=="form"&&be=="{"?Ne.indented:Vt=="form"?Ne.indented+u:Vt=="stat"?Ne.indented+(qe(_,H)?s||u:0):Ne.info=="switch"&&!sn&&i.doubleIndentSwitch!=!1?Ne.indented+(/^(?:case|default)\b/.test(H)?u:2*u):Ne.align?Ne.column+(sn?0:1):Ne.indented+(sn?0:u)},electricInput:/^\s*(?:case .*?:|default:|\{|\})$/,blockCommentStart:d?null:"/*",blockCommentEnd:d?null:"*/",blockCommentContinue:d?null:" * ",lineComment:d?null:"//",fold:"brace",closeBrackets:"()[]{}''\"\"``",helperType:d?"json":"javascript",jsonldMode:h,jsonMode:d,expressionAllowed:de,skipExpression:function(_){P(_,"atom","atom","true",new e.StringStream("",2,null))}}}),e.registerHelper("wordChars","javascript",/[\w$]/),e.defineMIME("text/javascript","javascript"),e.defineMIME("text/ecmascript","javascript"),e.defineMIME("application/javascript","javascript"),e.defineMIME("application/x-javascript","javascript"),e.defineMIME("application/ecmascript","javascript"),e.defineMIME("application/json",{name:"javascript",json:!0}),e.defineMIME("application/x-json",{name:"javascript",json:!0}),e.defineMIME("application/manifest+json",{name:"javascript",json:!0}),e.defineMIME("application/ld+json",{name:"javascript",jsonld:!0}),e.defineMIME("text/typescript",{name:"javascript",typescript:!0}),e.defineMIME("application/typescript",{name:"javascript",typescript:!0})})});var vw=yt((dw,pw)=>{(function(e){typeof dw=="object"&&typeof pw=="object"?e(wl(),sw(),hw()):typeof define=="function"&&define.amd?define(["../../lib/codemirror","../xml/xml","../javascript/javascript"],e):e(CodeMirror)})(function(e){"use strict";function n(u,s,h,d){this.state=u,this.mode=s,this.depth=h,this.prev=d}function i(u){return new n(e.copyState(u.mode,u.state),u.mode,u.depth,u.prev&&i(u.prev))}e.defineMode("jsx",function(u,s){var h=e.getMode(u,{name:"xml",allowMissing:!0,multilineTagIndentPastTag:!1,allowMissingTagName:!0}),d=e.getMode(u,s&&s.base||"javascript");function v(O){var ie=O.tagName;O.tagName=null;var ve=h.indent(O,"","");return O.tagName=ie,ve}function k(O,ie){return ie.context.mode==h?S(O,ie,ie.context):E(O,ie,ie.context)}function S(O,ie,ve){if(ve.depth==2)return O.match(/^.*?\*\//)?ve.depth=1:O.skipToEnd(),"comment";if(O.peek()=="{"){h.skipAttribute(ve.state);var Ee=v(ve.state),ne=ve.state.context;if(ne&&O.match(/^[^>]*>\s*$/,!1)){for(;ne.prev&&!ne.startOfLine;)ne=ne.prev;ne.startOfLine?Ee-=u.indentUnit:ve.prev.state.lexical&&(Ee=ve.prev.state.lexical.indented)}else ve.depth==1&&(Ee+=u.indentUnit);return ie.context=new n(e.startState(d,Ee),d,0,ie.context),null}if(ve.depth==1){if(O.peek()=="<")return h.skipAttribute(ve.state),ie.context=new n(e.startState(h,v(ve.state)),h,0,ie.context),null;if(O.match("//"))return O.skipToEnd(),"comment";if(O.match("/*"))return ve.depth=2,k(O,ie)}var R=h.token(O,ve.state),I=O.current(),Y;return/\btag\b/.test(R)?/>$/.test(I)?ve.state.context?ve.depth=0:ie.context=ie.context.prev:/^-1&&O.backUp(I.length-Y),R}function E(O,ie,ve){if(O.peek()=="<"&&d.expressionAllowed(O,ve.state))return ie.context=new n(e.startState(h,d.indent(ve.state,"","")),h,0,ie.context),d.skipExpression(ve.state),null;var Ee=d.token(O,ve.state);if(!Ee&&ve.depth!=null){var ne=O.current();ne=="{"?ve.depth++:ne=="}"&&--ve.depth==0&&(ie.context=ie.context.prev)}return Ee}return{startState:function(){return{context:new n(e.startState(d),d)}},copyState:function(O){return{context:i(O.context)}},token:k,indent:function(O,ie,ve){return O.context.mode.indent(O.context.state,ie,ve)},innerMode:function(O){return O.context}}},"xml","javascript"),e.defineMIME("text/jsx","jsx"),e.defineMIME("text/typescript-jsx",{name:"jsx",base:{name:"javascript",typescript:!0}})})});var xw=yt((aE,ww)=>{ww.exports=[">",">>","#","%"]});var kw=yt((uE,_w)=>{function uC({trigger:e="",text:n}){let i=n.slice(e.length).match(/(^\S*\((.*?)\)|^\S*)/),u=n.slice(e.length+i[1].length+1),s=i[2],h=s?s.split(","):[],d=i[1].slice(0,i[1].length-(typeof s!="undefined"?s.length+2:0)),v=d.split(".");return{path:d,list:v,params:h,root:v[0],input:u}}_w.exports={parseCommand:uC}});var Nw=yt((yE,Ew)=>{var Mw=6e4;Ew.exports=function(n){var i=new Date(n.getTime()),u=i.getTimezoneOffset();i.setSeconds(0,0);var s=i.getTime()%Mw;return u*Mw+s}});var Ip=yt((wE,Pw)=>{function fC(e){return e instanceof Date}Pw.exports=fC});var xi=yt((xE,Ow)=>{var Rp=Nw(),cC=Ip(),Fp=36e5,zp=6e4,hC=2,dC=/[T ]/,pC=/:/,vC=/^(\d{2})$/,gC=[/^([+-]\d{2})$/,/^([+-]\d{3})$/,/^([+-]\d{4})$/],mC=/^(\d{4})/,yC=[/^([+-]\d{4})/,/^([+-]\d{5})/,/^([+-]\d{6})/],wC=/^-(\d{2})$/,xC=/^-?(\d{3})$/,_C=/^-?(\d{2})-?(\d{2})$/,kC=/^-?W(\d{2})$/,TC=/^-?W(\d{2})-?(\d{1})$/,SC=/^(\d{2}([.,]\d*)?)$/,bC=/^(\d{2}):?(\d{2}([.,]\d*)?)$/,CC=/^(\d{2}):?(\d{2}):?(\d{2}([.,]\d*)?)$/,MC=/([Z+-].*)$/,EC=/^(Z)$/,NC=/^([+-])(\d{2})$/,PC=/^([+-])(\d{2}):?(\d{2})$/;function LC(e,n){if(cC(e))return new Date(e.getTime());if(typeof e!="string")return new Date(e);var i=n||{},u=i.additionalDigits;u==null?u=hC:u=Number(u);var s=OC(e),h=DC(s.date,u),d=h.year,v=h.restDateString,k=AC(v,d);if(k){var S=k.getTime(),E=0,O;if(s.time&&(E=IC(s.time)),s.timezone)O=RC(s.timezone)*zp;else{var ie=S+E,ve=new Date(ie);O=Rp(ve);var Ee=new Date(ie);Ee.setDate(ve.getDate()+1);var ne=Rp(Ee)-Rp(ve);ne>0&&(O+=ne)}return new Date(S+E+O)}else return new Date(e)}function OC(e){var n={},i=e.split(dC),u;if(pC.test(i[0])?(n.date=null,u=i[0]):(n.date=i[0],u=i[1]),u){var s=MC.exec(u);s?(n.time=u.replace(s[1],""),n.timezone=s[1]):n.time=u}return n}function DC(e,n){var i=gC[n],u=yC[n],s;if(s=mC.exec(e)||u.exec(e),s){var h=s[1];return{year:parseInt(h,10),restDateString:e.slice(h.length)}}if(s=vC.exec(e)||i.exec(e),s){var d=s[1];return{year:parseInt(d,10)*100,restDateString:e.slice(d.length)}}return{year:null}}function AC(e,n){if(n===null)return null;var i,u,s,h;if(e.length===0)return u=new Date(0),u.setUTCFullYear(n),u;if(i=wC.exec(e),i)return u=new Date(0),s=parseInt(i[1],10)-1,u.setUTCFullYear(n,s),u;if(i=xC.exec(e),i){u=new Date(0);var d=parseInt(i[1],10);return u.setUTCFullYear(n,0,d),u}if(i=_C.exec(e),i){u=new Date(0),s=parseInt(i[1],10)-1;var v=parseInt(i[2],10);return u.setUTCFullYear(n,s,v),u}if(i=kC.exec(e),i)return h=parseInt(i[1],10)-1,Lw(n,h);if(i=TC.exec(e),i){h=parseInt(i[1],10)-1;var k=parseInt(i[2],10)-1;return Lw(n,h,k)}return null}function IC(e){var n,i,u;if(n=SC.exec(e),n)return i=parseFloat(n[1].replace(",",".")),i%24*Fp;if(n=bC.exec(e),n)return i=parseInt(n[1],10),u=parseFloat(n[2].replace(",",".")),i%24*Fp+u*zp;if(n=CC.exec(e),n){i=parseInt(n[1],10),u=parseInt(n[2],10);var s=parseFloat(n[3].replace(",","."));return i%24*Fp+u*zp+s*1e3}return null}function RC(e){var n,i;return n=EC.exec(e),n?0:(n=NC.exec(e),n?(i=parseInt(n[2],10)*60,n[1]==="+"?-i:i):(n=PC.exec(e),n?(i=parseInt(n[2],10)*60+parseInt(n[3],10),n[1]==="+"?-i:i):0))}function Lw(e,n,i){n=n||0,i=i||0;var u=new Date(0);u.setUTCFullYear(e,0,4);var s=u.getUTCDay()||7,h=n*7+i+1-s;return u.setUTCDate(u.getUTCDate()+h),u}Ow.exports=LC});var Aw=yt((_E,Dw)=>{var FC=xi();function zC(e){var n=FC(e),i=new Date(0);return i.setFullYear(n.getFullYear(),0,1),i.setHours(0,0,0,0),i}Dw.exports=zC});var Rw=yt((kE,Iw)=>{var HC=xi();function WC(e){var n=HC(e);return n.setHours(0,0,0,0),n}Iw.exports=WC});var Ww=yt((TE,Hw)=>{var Fw=Rw(),zw=6e4,UC=864e5;function BC(e,n){var i=Fw(e),u=Fw(n),s=i.getTime()-i.getTimezoneOffset()*zw,h=u.getTime()-u.getTimezoneOffset()*zw;return Math.round((s-h)/UC)}Hw.exports=BC});var Bw=yt((SE,Uw)=>{var jC=xi(),YC=Aw(),qC=Ww();function GC(e){var n=jC(e),i=qC(n,YC(n)),u=i+1;return u}Uw.exports=GC});var Yw=yt((bE,jw)=>{var $C=xi();function VC(e,n){var i=n&&Number(n.weekStartsOn)||0,u=$C(e),s=u.getDay(),h=(s{var XC=Yw();function KC(e){return XC(e,{weekStartsOn:1})}qw.exports=KC});var Hp=yt((ME,$w)=>{var QC=xi(),Gw=Lf();function ZC(e){var n=QC(e),i=n.getFullYear(),u=new Date(0);u.setFullYear(i+1,0,4),u.setHours(0,0,0,0);var s=Gw(u),h=new Date(0);h.setFullYear(i,0,4),h.setHours(0,0,0,0);var d=Gw(h);return n.getTime()>=s.getTime()?i+1:n.getTime()>=d.getTime()?i:i-1}$w.exports=ZC});var Xw=yt((EE,Vw)=>{var JC=Hp(),eM=Lf();function tM(e){var n=JC(e),i=new Date(0);i.setFullYear(n,0,4),i.setHours(0,0,0,0);var u=eM(i);return u}Vw.exports=tM});var Qw=yt((NE,Kw)=>{var nM=xi(),rM=Lf(),iM=Xw(),oM=6048e5;function aM(e){var n=nM(e),i=rM(n).getTime()-iM(n).getTime();return Math.round(i/oM)+1}Kw.exports=aM});var Jw=yt((PE,Zw)=>{var uM=Ip();function lM(e){if(uM(e))return!isNaN(e);throw new TypeError(toString.call(e)+" is not an instance of Date")}Zw.exports=lM});var tx=yt((LE,ex)=>{function sM(){var e={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}};function n(i,u,s){s=s||{};var h;return typeof e[i]=="string"?h=e[i]:u===1?h=e[i].one:h=e[i].other.replace("{{count}}",u),s.addSuffix?s.comparison>0?"in "+h:h+" ago":h}return{localize:n}}ex.exports=sM});var rx=yt((OE,nx)=>{var fM=["M","MM","Q","D","DD","DDD","DDDD","d","E","W","WW","YY","YYYY","GG","GGGG","H","HH","h","hh","m","mm","s","ss","S","SS","SSS","Z","ZZ","X","x"];function cM(e){var n=[];for(var i in e)e.hasOwnProperty(i)&&n.push(i);var u=fM.concat(n).sort().reverse(),s=new RegExp("(\\[[^\\[]*\\])|(\\\\)?("+u.join("|")+"|.)","g");return s}nx.exports=cM});var ox=yt((DE,ix)=>{var hM=rx();function dM(){var e=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],n=["January","February","March","April","May","June","July","August","September","October","November","December"],i=["Su","Mo","Tu","We","Th","Fr","Sa"],u=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],s=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],h=["AM","PM"],d=["am","pm"],v=["a.m.","p.m."],k={MMM:function(E){return e[E.getMonth()]},MMMM:function(E){return n[E.getMonth()]},dd:function(E){return i[E.getDay()]},ddd:function(E){return u[E.getDay()]},dddd:function(E){return s[E.getDay()]},A:function(E){return E.getHours()/12>=1?h[1]:h[0]},a:function(E){return E.getHours()/12>=1?d[1]:d[0]},aa:function(E){return E.getHours()/12>=1?v[1]:v[0]}},S=["M","D","DDD","d","Q","W"];return S.forEach(function(E){k[E+"o"]=function(O,ie){return pM(ie[E](O))}}),{formatters:k,formattingTokensRegExp:hM(k)}}function pM(e){var n=e%100;if(n>20||n<10)switch(n%10){case 1:return e+"st";case 2:return e+"nd";case 3:return e+"rd"}return e+"th"}ix.exports=dM});var ux=yt((AE,ax)=>{var vM=tx(),gM=ox();ax.exports={distanceInWords:vM(),format:gM()}});var px=yt((IE,dx)=>{var lx=Bw(),sx=Qw(),fx=Hp(),mM=xi(),yM=Jw(),cx=ux();function wM(e,n,i){var u=n?String(n):"YYYY-MM-DDTHH:mm:ss.SSSZ",s=i||{},h=s.locale,d=cx.format.formatters,v=cx.format.formattingTokensRegExp;h&&h.format&&h.format.formatters&&(d=h.format.formatters,h.format.formattingTokensRegExp&&(v=h.format.formattingTokensRegExp));var k=mM(e);if(!yM(k))return"Invalid Date";var S=xM(u,d,v);return S(k)}var Wp={M:function(e){return e.getMonth()+1},MM:function(e){return Dr(e.getMonth()+1,2)},Q:function(e){return Math.ceil((e.getMonth()+1)/3)},D:function(e){return e.getDate()},DD:function(e){return Dr(e.getDate(),2)},DDD:function(e){return lx(e)},DDDD:function(e){return Dr(lx(e),3)},d:function(e){return e.getDay()},E:function(e){return e.getDay()||7},W:function(e){return sx(e)},WW:function(e){return Dr(sx(e),2)},YY:function(e){return Dr(e.getFullYear(),4).substr(2)},YYYY:function(e){return Dr(e.getFullYear(),4)},GG:function(e){return String(fx(e)).substr(2)},GGGG:function(e){return fx(e)},H:function(e){return e.getHours()},HH:function(e){return Dr(e.getHours(),2)},h:function(e){var n=e.getHours();return n===0?12:n>12?n%12:n},hh:function(e){return Dr(Wp.h(e),2)},m:function(e){return e.getMinutes()},mm:function(e){return Dr(e.getMinutes(),2)},s:function(e){return e.getSeconds()},ss:function(e){return Dr(e.getSeconds(),2)},S:function(e){return Math.floor(e.getMilliseconds()/100)},SS:function(e){return Dr(Math.floor(e.getMilliseconds()/10),2)},SSS:function(e){return Dr(e.getMilliseconds(),3)},Z:function(e){return hx(e.getTimezoneOffset(),":")},ZZ:function(e){return hx(e.getTimezoneOffset())},X:function(e){return Math.floor(e.getTime()/1e3)},x:function(e){return e.getTime()}};function xM(e,n,i){var u=e.match(i),s=u.length,h,d;for(h=0;h0?"-":"+",u=Math.abs(e),s=Math.floor(u/60),h=u%60;return i+Dr(s,2)+n+Dr(h,2)}function Dr(e,n){for(var i=Math.abs(e).toString();i.length{var kM=xi();function TM(e){var n=kM(e),i=n.getFullYear(),u=n.getMonth(),s=new Date(0);return s.setFullYear(i,u+1,0),s.setHours(0,0,0,0),s.getDate()}vx.exports=TM});var yx=yt((FE,mx)=>{var SM=xi(),bM=gx();function CM(e,n){var i=SM(e),u=Number(n),s=i.getMonth()+u,h=new Date(0);h.setFullYear(i.getFullYear(),s,1),h.setHours(0,0,0,0);var d=bM(h);return i.setMonth(s,Math.min(d,i.getDate())),i}mx.exports=CM});var xx=yt((zE,wx)=>{var MM=yx();function EM(e,n){var i=Number(n);return MM(e,-i)}wx.exports=EM});var Jo=yt((Of,Tx)=>{(function(e,n){typeof Of=="object"&&typeof Tx!="undefined"?n(Of):typeof define=="function"&&define.amd?define(["exports"],n):(e=e||self,n(e.d3=e.d3||{}))})(Of,function(e){"use strict";var n="http://www.w3.org/1999/xhtml",i={svg:"http://www.w3.org/2000/svg",xhtml:n,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function u(G){var se=G+="",qe=se.indexOf(":");return qe>=0&&(se=G.slice(0,qe))!=="xmlns"&&(G=G.slice(qe+1)),i.hasOwnProperty(se)?{space:i[se],local:G}:G}function s(G){return function(){var se=this.ownerDocument,qe=this.namespaceURI;return qe===n&&se.documentElement.namespaceURI===n?se.createElement(G):se.createElementNS(qe,G)}}function h(G){return function(){return this.ownerDocument.createElementNS(G.space,G.local)}}function d(G){var se=u(G);return(se.local?h:s)(se)}function v(){}function k(G){return G==null?v:function(){return this.querySelector(G)}}function S(G){typeof G!="function"&&(G=k(G));for(var se=this._groups,qe=se.length,de=new Array(qe),_=0;_=z&&(z=w+1);!(ae=ki[z])&&++z=0;)(be=de[_])&&(H&&be.compareDocumentPosition(H)^4&&H.parentNode.insertBefore(be,H),H=be);return this}function b(G){G||(G=U);function se(Vt,sn){return Vt&&sn?G(Vt.__data__,sn.__data__):!Vt-!sn}for(var qe=this._groups,de=qe.length,_=new Array(de),H=0;Hse?1:G>=se?0:NaN}function y(){var G=arguments[0];return arguments[0]=this,G.apply(null,arguments),this}function D(){var G=new Array(this.size()),se=-1;return this.each(function(){G[++se]=this}),G}function q(){for(var G=this._groups,se=0,qe=G.length;se1?this.each((se==null?Je:typeof se=="function"?ge:te)(G,se,qe??"")):Q(this.node(),G)}function Q(G,se){return G.style.getPropertyValue(se)||He(G).getComputedStyle(G,null).getPropertyValue(se)}function ee(G){return function(){delete this[G]}}function fe(G,se){return function(){this[G]=se}}function De(G,se){return function(){var qe=se.apply(this,arguments);qe==null?delete this[G]:this[G]=qe}}function at(G,se){return arguments.length>1?this.each((se==null?ee:typeof se=="function"?De:fe)(G,se)):this.node()[G]}function dt(G){return G.trim().split(/^|\s+/)}function Yt(G){return G.classList||new Gt(G)}function Gt(G){this._node=G,this._names=dt(G.getAttribute("class")||"")}Gt.prototype={add:function(G){var se=this._names.indexOf(G);se<0&&(this._names.push(G),this._node.setAttribute("class",this._names.join(" ")))},remove:function(G){var se=this._names.indexOf(G);se>=0&&(this._names.splice(se,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(G){return this._names.indexOf(G)>=0}};function Lt(G,se){for(var qe=Yt(G),de=-1,_=se.length;++de<_;)qe.add(se[de])}function Et(G,se){for(var qe=Yt(G),de=-1,_=se.length;++de<_;)qe.remove(se[de])}function Bt(G){return function(){Lt(this,G)}}function zt(G){return function(){Et(this,G)}}function Zt(G,se){return function(){(se.apply(this,arguments)?Lt:Et)(this,G)}}function pn(G,se){var qe=dt(G+"");if(arguments.length<2){for(var de=Yt(this.node()),_=-1,H=qe.length;++_=0&&(qe=se.slice(de+1),se=se.slice(0,de)),{type:se,name:qe}})}function L(G){return function(){var se=this.__on;if(!!se){for(var qe=0,de=-1,_=se.length,H;qe<_;++qe)H=se[qe],(!G.type||H.type===G.type)&&H.name===G.name?this.removeEventListener(H.type,H.listener,H.capture):se[++de]=H;++de?se.length=de:delete this.__on}}}function V(G,se,qe){var de=K.hasOwnProperty(G.type)?F:$;return function(_,H,be){var Ne=this.__on,Ze,ft=de(se,H,be);if(Ne){for(var Qe=0,Vt=Ne.length;Qe{(function(e,n){typeof Df=="object"&&typeof Sx!="undefined"?n(Df):typeof define=="function"&&define.amd?define(["exports"],n):n(e.d3=e.d3||{})})(Df,function(e){"use strict";var n="$";function i(){}i.prototype=u.prototype={constructor:i,has:function(ne){return n+ne in this},get:function(ne){return this[n+ne]},set:function(ne,R){return this[n+ne]=R,this},remove:function(ne){var R=n+ne;return R in this&&delete this[R]},clear:function(){for(var ne in this)ne[0]===n&&delete this[ne]},keys:function(){var ne=[];for(var R in this)R[0]===n&&ne.push(R.slice(1));return ne},values:function(){var ne=[];for(var R in this)R[0]===n&&ne.push(this[R]);return ne},entries:function(){var ne=[];for(var R in this)R[0]===n&&ne.push({key:R.slice(1),value:this[R]});return ne},size:function(){var ne=0;for(var R in this)R[0]===n&&++ne;return ne},empty:function(){for(var ne in this)if(ne[0]===n)return!1;return!0},each:function(ne){for(var R in this)R[0]===n&&ne(this[R],R.slice(1),this)}};function u(ne,R){var I=new i;if(ne instanceof i)ne.each(function(B,c){I.set(c,B)});else if(Array.isArray(ne)){var Y=-1,le=ne.length,pe;if(R==null)for(;++Y=ne.length)return I!=null&&B.sort(I),Y!=null?Y(B):B;for(var P=-1,b=B.length,U=ne[c++],y,D,q=u(),oe,Le=g();++Pne.length)return B;var g,x=R[c-1];return Y!=null&&c>=ne.length?g=B.entries():(g=[],B.each(function(P,b){g.push({key:b,values:Re(P,c)})})),x!=null?g.sort(function(P,b){return x(P.key,b.key)}):g}return le={object:function(B){return pe(B,0,h,d)},map:function(B){return pe(B,0,v,k)},entries:function(B){return Re(pe(B,0,v,k),0)},key:function(B){return ne.push(B),le},sortKeys:function(B){return R[ne.length-1]=B,le},sortValues:function(B){return I=B,le},rollup:function(B){return Y=B,le}}}function h(){return{}}function d(ne,R,I){ne[R]=I}function v(){return u()}function k(ne,R,I){ne.set(R,I)}function S(){}var E=u.prototype;S.prototype=O.prototype={constructor:S,has:E.has,add:function(ne){return ne+="",this[n+ne]=ne,this},remove:E.remove,clear:E.clear,values:E.keys,size:E.size,empty:E.empty,each:E.each};function O(ne,R){var I=new S;if(ne instanceof S)ne.each(function(pe){I.add(pe)});else if(ne){var Y=-1,le=ne.length;if(R==null)for(;++Y{(function(e,n){typeof Af=="object"&&typeof bx!="undefined"?n(Af):typeof define=="function"&&define.amd?define(["exports"],n):n(e.d3=e.d3||{})})(Af,function(e){"use strict";function n(te,ge){return tege?1:te>=ge?0:NaN}function i(te){return te.length===1&&(te=u(te)),{left:function(ge,Oe,Q,ee){for(Q==null&&(Q=0),ee==null&&(ee=ge.length);Q>>1;te(ge[fe],Oe)<0?Q=fe+1:ee=fe}return Q},right:function(ge,Oe,Q,ee){for(Q==null&&(Q=0),ee==null&&(ee=ge.length);Q>>1;te(ge[fe],Oe)>0?ee=fe:Q=fe+1}return Q}}}function u(te){return function(ge,Oe){return n(te(ge),Oe)}}var s=i(n),h=s.right,d=s.left;function v(te,ge){ge==null&&(ge=k);for(var Oe=0,Q=te.length-1,ee=te[0],fe=new Array(Q<0?0:Q);Oete?1:ge>=te?0:NaN}function O(te){return te===null?NaN:+te}function ie(te,ge){var Oe=te.length,Q=0,ee=-1,fe=0,De,at,dt=0;if(ge==null)for(;++ee1)return dt/(Q-1)}function ve(te,ge){var Oe=ie(te,ge);return Oe&&Math.sqrt(Oe)}function Ee(te,ge){var Oe=te.length,Q=-1,ee,fe,De;if(ge==null){for(;++Q=ee)for(fe=De=ee;++Qee&&(fe=ee),De=ee)for(fe=De=ee;++Qee&&(fe=ee),De0)return[te];if((Q=ge0)for(te=Math.ceil(te/at),ge=Math.floor(ge/at),De=new Array(fe=Math.ceil(ge-te+1));++ee=0?(fe>=Re?10:fe>=B?5:fe>=c?2:1)*Math.pow(10,ee):-Math.pow(10,-ee)/(fe>=Re?10:fe>=B?5:fe>=c?2:1)}function P(te,ge,Oe){var Q=Math.abs(ge-te)/Math.max(0,Oe),ee=Math.pow(10,Math.floor(Math.log(Q)/Math.LN10)),fe=Q/ee;return fe>=Re?ee*=10:fe>=B?ee*=5:fe>=c&&(ee*=2),geLt;)Et.pop(),--Bt;var zt=new Array(Bt+1),Zt;for(fe=0;fe<=Bt;++fe)Zt=zt[fe]=[],Zt.x0=fe>0?Et[fe-1]:Gt,Zt.x1=fe=1)return+Oe(te[Q-1],Q-1,te);var Q,ee=(Q-1)*ge,fe=Math.floor(ee),De=+Oe(te[fe],fe,te),at=+Oe(te[fe+1],fe+1,te);return De+(at-De)*(ee-fe)}}function D(te,ge,Oe){return te=I.call(te,O).sort(n),Math.ceil((Oe-ge)/(2*(y(te,.75)-y(te,.25))*Math.pow(te.length,-1/3)))}function q(te,ge,Oe){return Math.ceil((Oe-ge)/(3.5*ve(te)*Math.pow(te.length,-1/3)))}function oe(te,ge){var Oe=te.length,Q=-1,ee,fe;if(ge==null){for(;++Q=ee)for(fe=ee;++Qfe&&(fe=ee)}else for(;++Q=ee)for(fe=ee;++Qfe&&(fe=ee);return fe}function Le(te,ge){var Oe=te.length,Q=Oe,ee=-1,fe,De=0;if(ge==null)for(;++ee=0;)for(De=te[ge],Oe=De.length;--Oe>=0;)fe[--ee]=De[Oe];return fe}function We(te,ge){var Oe=te.length,Q=-1,ee,fe;if(ge==null){for(;++Q=ee)for(fe=ee;++Qee&&(fe=ee)}else for(;++Q=ee)for(fe=ee;++Qee&&(fe=ee);return fe}function ce(te,ge){for(var Oe=ge.length,Q=new Array(Oe);Oe--;)Q[Oe]=te[ge[Oe]];return Q}function ke(te,ge){if(!!(Oe=te.length)){var Oe,Q=0,ee=0,fe,De=te[ee];for(ge==null&&(ge=n);++Q{(function(e,n){typeof If=="object"&&typeof Mx!="undefined"?n(If):typeof define=="function"&&define.amd?define(["exports"],n):(e=e||self,n(e.d3=e.d3||{}))})(If,function(e){"use strict";function n(M,J,Se){M.prototype=J.prototype=Se,Se.constructor=M}function i(M,J){var Se=Object.create(M.prototype);for(var ze in J)Se[ze]=J[ze];return Se}function u(){}var s=.7,h=1/s,d="\\s*([+-]?\\d+)\\s*",v="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",k="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",S=/^#([0-9a-f]{3,8})$/,E=new RegExp("^rgb\\("+[d,d,d]+"\\)$"),O=new RegExp("^rgb\\("+[k,k,k]+"\\)$"),ie=new RegExp("^rgba\\("+[d,d,d,v]+"\\)$"),ve=new RegExp("^rgba\\("+[k,k,k,v]+"\\)$"),Ee=new RegExp("^hsl\\("+[v,k,k]+"\\)$"),ne=new RegExp("^hsla\\("+[v,k,k,v]+"\\)$"),R={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};n(u,pe,{copy:function(M){return Object.assign(new this.constructor,this,M)},displayable:function(){return this.rgb().displayable()},hex:I,formatHex:I,formatHsl:Y,formatRgb:le,toString:le});function I(){return this.rgb().formatHex()}function Y(){return D(this).formatHsl()}function le(){return this.rgb().formatRgb()}function pe(M){var J,Se;return M=(M+"").trim().toLowerCase(),(J=S.exec(M))?(Se=J[1].length,J=parseInt(J[1],16),Se===6?Re(J):Se===3?new x(J>>8&15|J>>4&240,J>>4&15|J&240,(J&15)<<4|J&15,1):Se===8?B(J>>24&255,J>>16&255,J>>8&255,(J&255)/255):Se===4?B(J>>12&15|J>>8&240,J>>8&15|J>>4&240,J>>4&15|J&240,((J&15)<<4|J&15)/255):null):(J=E.exec(M))?new x(J[1],J[2],J[3],1):(J=O.exec(M))?new x(J[1]*255/100,J[2]*255/100,J[3]*255/100,1):(J=ie.exec(M))?B(J[1],J[2],J[3],J[4]):(J=ve.exec(M))?B(J[1]*255/100,J[2]*255/100,J[3]*255/100,J[4]):(J=Ee.exec(M))?y(J[1],J[2]/100,J[3]/100,1):(J=ne.exec(M))?y(J[1],J[2]/100,J[3]/100,J[4]):R.hasOwnProperty(M)?Re(R[M]):M==="transparent"?new x(NaN,NaN,NaN,0):null}function Re(M){return new x(M>>16&255,M>>8&255,M&255,1)}function B(M,J,Se,ze){return ze<=0&&(M=J=Se=NaN),new x(M,J,Se,ze)}function c(M){return M instanceof u||(M=pe(M)),M?(M=M.rgb(),new x(M.r,M.g,M.b,M.opacity)):new x}function g(M,J,Se,ze){return arguments.length===1?c(M):new x(M,J,Se,ze??1)}function x(M,J,Se,ze){this.r=+M,this.g=+J,this.b=+Se,this.opacity=+ze}n(x,g,i(u,{brighter:function(M){return M=M==null?h:Math.pow(h,M),new x(this.r*M,this.g*M,this.b*M,this.opacity)},darker:function(M){return M=M==null?s:Math.pow(s,M),new x(this.r*M,this.g*M,this.b*M,this.opacity)},rgb:function(){return this},displayable:function(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:P,formatHex:P,formatRgb:b,toString:b}));function P(){return"#"+U(this.r)+U(this.g)+U(this.b)}function b(){var M=this.opacity;return M=isNaN(M)?1:Math.max(0,Math.min(1,M)),(M===1?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(M===1?")":", "+M+")")}function U(M){return M=Math.max(0,Math.min(255,Math.round(M)||0)),(M<16?"0":"")+M.toString(16)}function y(M,J,Se,ze){return ze<=0?M=J=Se=NaN:Se<=0||Se>=1?M=J=NaN:J<=0&&(M=NaN),new oe(M,J,Se,ze)}function D(M){if(M instanceof oe)return new oe(M.h,M.s,M.l,M.opacity);if(M instanceof u||(M=pe(M)),!M)return new oe;if(M instanceof oe)return M;M=M.rgb();var J=M.r/255,Se=M.g/255,ze=M.b/255,tt=Math.min(J,Se,ze),ct=Math.max(J,Se,ze),ht=NaN,wt=ct-tt,bt=(ct+tt)/2;return wt?(J===ct?ht=(Se-ze)/wt+(Se0&&bt<1?0:ht,new oe(ht,wt,bt,M.opacity)}function q(M,J,Se,ze){return arguments.length===1?D(M):new oe(M,J,Se,ze??1)}function oe(M,J,Se,ze){this.h=+M,this.s=+J,this.l=+Se,this.opacity=+ze}n(oe,q,i(u,{brighter:function(M){return M=M==null?h:Math.pow(h,M),new oe(this.h,this.s,this.l*M,this.opacity)},darker:function(M){return M=M==null?s:Math.pow(s,M),new oe(this.h,this.s,this.l*M,this.opacity)},rgb:function(){var M=this.h%360+(this.h<0)*360,J=isNaN(M)||isNaN(this.s)?0:this.s,Se=this.l,ze=Se+(Se<.5?Se:1-Se)*J,tt=2*Se-ze;return new x(Le(M>=240?M-240:M+120,tt,ze),Le(M,tt,ze),Le(M<120?M+240:M-120,tt,ze),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl:function(){var M=this.opacity;return M=isNaN(M)?1:Math.max(0,Math.min(1,M)),(M===1?"hsl(":"hsla(")+(this.h||0)+", "+(this.s||0)*100+"%, "+(this.l||0)*100+"%"+(M===1?")":", "+M+")")}}));function Le(M,J,Se){return(M<60?J+(Se-J)*M/60:M<180?Se:M<240?J+(Se-J)*(240-M)/60:J)*255}var we=Math.PI/180,re=180/Math.PI,We=18,ce=.96422,ke=1,Ce=.82521,me=4/29,Ue=6/29,He=3*Ue*Ue,Je=Ue*Ue*Ue;function te(M){if(M instanceof Q)return new Q(M.l,M.a,M.b,M.opacity);if(M instanceof Lt)return Et(M);M instanceof x||(M=c(M));var J=at(M.r),Se=at(M.g),ze=at(M.b),tt=ee((.2225045*J+.7168786*Se+.0606169*ze)/ke),ct,ht;return J===Se&&Se===ze?ct=ht=tt:(ct=ee((.4360747*J+.3850649*Se+.1430804*ze)/ce),ht=ee((.0139322*J+.0971045*Se+.7141733*ze)/Ce)),new Q(116*tt-16,500*(ct-tt),200*(tt-ht),M.opacity)}function ge(M,J){return new Q(M,0,0,J??1)}function Oe(M,J,Se,ze){return arguments.length===1?te(M):new Q(M,J,Se,ze??1)}function Q(M,J,Se,ze){this.l=+M,this.a=+J,this.b=+Se,this.opacity=+ze}n(Q,Oe,i(u,{brighter:function(M){return new Q(this.l+We*(M??1),this.a,this.b,this.opacity)},darker:function(M){return new Q(this.l-We*(M??1),this.a,this.b,this.opacity)},rgb:function(){var M=(this.l+16)/116,J=isNaN(this.a)?M:M+this.a/500,Se=isNaN(this.b)?M:M-this.b/200;return J=ce*fe(J),M=ke*fe(M),Se=Ce*fe(Se),new x(De(3.1338561*J-1.6168667*M-.4906146*Se),De(-.9787684*J+1.9161415*M+.033454*Se),De(.0719453*J-.2289914*M+1.4052427*Se),this.opacity)}}));function ee(M){return M>Je?Math.pow(M,1/3):M/He+me}function fe(M){return M>Ue?M*M*M:He*(M-me)}function De(M){return 255*(M<=.0031308?12.92*M:1.055*Math.pow(M,1/2.4)-.055)}function at(M){return(M/=255)<=.04045?M/12.92:Math.pow((M+.055)/1.055,2.4)}function dt(M){if(M instanceof Lt)return new Lt(M.h,M.c,M.l,M.opacity);if(M instanceof Q||(M=te(M)),M.a===0&&M.b===0)return new Lt(NaN,0{(function(e,n){typeof Ff=="object"&&typeof Ex!="undefined"?n(Ff,Rf()):typeof define=="function"&&define.amd?define(["exports","d3-color"],n):(e=e||self,n(e.d3=e.d3||{},e.d3))})(Ff,function(e,n){"use strict";function i(A,j,Ae,Xe,je){var M=A*A,J=M*A;return((1-3*A+3*M-J)*j+(4-6*M+3*J)*Ae+(1+3*A+3*M-3*J)*Xe+J*je)/6}function u(A){var j=A.length-1;return function(Ae){var Xe=Ae<=0?Ae=0:Ae>=1?(Ae=1,j-1):Math.floor(Ae*j),je=A[Xe],M=A[Xe+1],J=Xe>0?A[Xe-1]:2*je-M,Se=Xe180||Ae<-180?Ae-360*Math.round(Ae/360):Ae):h(isNaN(A)?j:A)}function S(A){return(A=+A)==1?E:function(j,Ae){return Ae-j?v(j,Ae,A):h(isNaN(j)?Ae:j)}}function E(A,j){var Ae=j-A;return Ae?d(A,Ae):h(isNaN(A)?j:A)}var O=function A(j){var Ae=S(j);function Xe(je,M){var J=Ae((je=n.rgb(je)).r,(M=n.rgb(M)).r),Se=Ae(je.g,M.g),ze=Ae(je.b,M.b),tt=E(je.opacity,M.opacity);return function(ct){return je.r=J(ct),je.g=Se(ct),je.b=ze(ct),je.opacity=tt(ct),je+""}}return Xe.gamma=A,Xe}(1);function ie(A){return function(j){var Ae=j.length,Xe=new Array(Ae),je=new Array(Ae),M=new Array(Ae),J,Se;for(J=0;JAe&&(M=j.slice(Ae,M),Se[J]?Se[J]+=M:Se[++J]=M),(Xe=Xe[0])===(je=je[0])?Se[J]?Se[J]+=je:Se[++J]=je:(Se[++J]=null,ze.push({i:J,x:pe(Xe,je)})),Ae=c.lastIndex;return Ae180?ct+=360:ct-tt>180&&(tt+=360),wt.push({i:ht.push(je(ht)+"rotate(",null,Xe)-2,x:pe(tt,ct)})):ct&&ht.push(je(ht)+"rotate("+ct+Xe)}function Se(tt,ct,ht,wt){tt!==ct?wt.push({i:ht.push(je(ht)+"skewX(",null,Xe)-2,x:pe(tt,ct)}):ct&&ht.push(je(ht)+"skewX("+ct+Xe)}function ze(tt,ct,ht,wt,bt,Rt){if(tt!==ht||ct!==wt){var Wt=bt.push(je(bt)+"scale(",null,",",null,")");Rt.push({i:Wt-4,x:pe(tt,ht)},{i:Wt-2,x:pe(ct,wt)})}else(ht!==1||wt!==1)&&bt.push(je(bt)+"scale("+ht+","+wt+")")}return function(tt,ct){var ht=[],wt=[];return tt=A(tt),ct=A(ct),M(tt.translateX,tt.translateY,ct.translateX,ct.translateY,ht,wt),J(tt.rotate,ct.rotate,ht,wt),Se(tt.skewX,ct.skewX,ht,wt),ze(tt.scaleX,tt.scaleY,ct.scaleX,ct.scaleY,ht,wt),tt=ct=null,function(bt){for(var Rt=-1,Wt=wt.length,ln;++Rt{(function(e,n){typeof Hf=="object"&&typeof Nx!="undefined"?n(Hf):typeof define=="function"&&define.amd?define(["exports"],n):(e=typeof globalThis!="undefined"?globalThis:e||self,n(e.d3=e.d3||{}))})(Hf,function(e){"use strict";function n(c){return Math.abs(c=Math.round(c))>=1e21?c.toLocaleString("en").replace(/,/g,""):c.toString(10)}function i(c,g){if((x=(c=g?c.toExponential(g-1):c.toExponential()).indexOf("e"))<0)return null;var x,P=c.slice(0,x);return[P.length>1?P[0]+P.slice(2):P,+c.slice(x+1)]}function u(c){return c=i(Math.abs(c)),c?c[1]:NaN}function s(c,g){return function(x,P){for(var b=x.length,U=[],y=0,D=c[0],q=0;b>0&&D>0&&(q+D+1>P&&(D=Math.max(1,P-q)),U.push(x.substring(b-=D,b+D)),!((q+=D+1)>P));)D=c[y=(y+1)%c.length];return U.reverse().join(g)}}function h(c){return function(g){return g.replace(/[0-9]/g,function(x){return c[+x]})}}var d=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function v(c){if(!(g=d.exec(c)))throw new Error("invalid format: "+c);var g;return new k({fill:g[1],align:g[2],sign:g[3],symbol:g[4],zero:g[5],width:g[6],comma:g[7],precision:g[8]&&g[8].slice(1),trim:g[9],type:g[10]})}v.prototype=k.prototype;function k(c){this.fill=c.fill===void 0?" ":c.fill+"",this.align=c.align===void 0?">":c.align+"",this.sign=c.sign===void 0?"-":c.sign+"",this.symbol=c.symbol===void 0?"":c.symbol+"",this.zero=!!c.zero,this.width=c.width===void 0?void 0:+c.width,this.comma=!!c.comma,this.precision=c.precision===void 0?void 0:+c.precision,this.trim=!!c.trim,this.type=c.type===void 0?"":c.type+""}k.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function S(c){e:for(var g=c.length,x=1,P=-1,b;x0&&(P=0);break}return P>0?c.slice(0,P)+c.slice(b+1):c}var E;function O(c,g){var x=i(c,g);if(!x)return c+"";var P=x[0],b=x[1],U=b-(E=Math.max(-8,Math.min(8,Math.floor(b/3)))*3)+1,y=P.length;return U===y?P:U>y?P+new Array(U-y+1).join("0"):U>0?P.slice(0,U)+"."+P.slice(U):"0."+new Array(1-U).join("0")+i(c,Math.max(0,g+U-1))[0]}function ie(c,g){var x=i(c,g);if(!x)return c+"";var P=x[0],b=x[1];return b<0?"0."+new Array(-b).join("0")+P:P.length>b+1?P.slice(0,b+1)+"."+P.slice(b+1):P+new Array(b-P.length+2).join("0")}var ve={"%":function(c,g){return(c*100).toFixed(g)},b:function(c){return Math.round(c).toString(2)},c:function(c){return c+""},d:n,e:function(c,g){return c.toExponential(g)},f:function(c,g){return c.toFixed(g)},g:function(c,g){return c.toPrecision(g)},o:function(c){return Math.round(c).toString(8)},p:function(c,g){return ie(c*100,g)},r:ie,s:O,X:function(c){return Math.round(c).toString(16).toUpperCase()},x:function(c){return Math.round(c).toString(16)}};function Ee(c){return c}var ne=Array.prototype.map,R=["y","z","a","f","p","n","\xB5","m","","k","M","G","T","P","E","Z","Y"];function I(c){var g=c.grouping===void 0||c.thousands===void 0?Ee:s(ne.call(c.grouping,Number),c.thousands+""),x=c.currency===void 0?"":c.currency[0]+"",P=c.currency===void 0?"":c.currency[1]+"",b=c.decimal===void 0?".":c.decimal+"",U=c.numerals===void 0?Ee:h(ne.call(c.numerals,String)),y=c.percent===void 0?"%":c.percent+"",D=c.minus===void 0?"-":c.minus+"",q=c.nan===void 0?"NaN":c.nan+"";function oe(we){we=v(we);var re=we.fill,We=we.align,ce=we.sign,ke=we.symbol,Ce=we.zero,me=we.width,Ue=we.comma,He=we.precision,Je=we.trim,te=we.type;te==="n"?(Ue=!0,te="g"):ve[te]||(He===void 0&&(He=12),Je=!0,te="g"),(Ce||re==="0"&&We==="=")&&(Ce=!0,re="0",We="=");var ge=ke==="$"?x:ke==="#"&&/[boxX]/.test(te)?"0"+te.toLowerCase():"",Oe=ke==="$"?P:/[%p]/.test(te)?y:"",Q=ve[te],ee=/[defgprs%]/.test(te);He=He===void 0?6:/[gprs]/.test(te)?Math.max(1,Math.min(21,He)):Math.max(0,Math.min(20,He));function fe(De){var at=ge,dt=Oe,Yt,Gt,Lt;if(te==="c")dt=Q(De)+dt,De="";else{De=+De;var Et=De<0||1/De<0;if(De=isNaN(De)?q:Q(Math.abs(De),He),Je&&(De=S(De)),Et&&+De==0&&ce!=="+"&&(Et=!1),at=(Et?ce==="("?ce:D:ce==="-"||ce==="("?"":ce)+at,dt=(te==="s"?R[8+E/3]:"")+dt+(Et&&ce==="("?")":""),ee){for(Yt=-1,Gt=De.length;++YtLt||Lt>57){dt=(Lt===46?b+De.slice(Yt+1):De.slice(Yt))+dt,De=De.slice(0,Yt);break}}}Ue&&!Ce&&(De=g(De,1/0));var Bt=at.length+De.length+dt.length,zt=Bt>1)+at+De+dt+zt.slice(Bt);break;default:De=zt+at+De+dt;break}return U(De)}return fe.toString=function(){return we+""},fe}function Le(we,re){var We=oe((we=v(we),we.type="f",we)),ce=Math.max(-8,Math.min(8,Math.floor(u(re)/3)))*3,ke=Math.pow(10,-ce),Ce=R[8+ce/3];return function(me){return We(ke*me)+Ce}}return{format:oe,formatPrefix:Le}}var Y;le({decimal:".",thousands:",",grouping:[3],currency:["$",""],minus:"-"});function le(c){return Y=I(c),e.format=Y.format,e.formatPrefix=Y.formatPrefix,Y}function pe(c){return Math.max(0,-u(Math.abs(c)))}function Re(c,g){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(u(g)/3)))*3-u(Math.abs(c)))}function B(c,g){return c=Math.abs(c),g=Math.abs(g)-c,Math.max(0,u(g)-u(c))+1}e.FormatSpecifier=k,e.formatDefaultLocale=le,e.formatLocale=I,e.formatSpecifier=v,e.precisionFixed=pe,e.precisionPrefix=Re,e.precisionRound=B,Object.defineProperty(e,"__esModule",{value:!0})})});var jp=yt((Wf,Lx)=>{(function(e,n){typeof Wf=="object"&&typeof Lx!="undefined"?n(Wf):typeof define=="function"&&define.amd?define(["exports"],n):(e=e||self,n(e.d3=e.d3||{}))})(Wf,function(e){"use strict";var n=new Date,i=new Date;function u(A,j,Ae,Xe){function je(M){return A(M=arguments.length===0?new Date:new Date(+M)),M}return je.floor=function(M){return A(M=new Date(+M)),M},je.ceil=function(M){return A(M=new Date(M-1)),j(M,1),A(M),M},je.round=function(M){var J=je(M),Se=je.ceil(M);return M-J0))return ze;do ze.push(tt=new Date(+M)),j(M,Se),A(M);while(tt=J)for(;A(J),!M(J);)J.setTime(J-1)},function(J,Se){if(J>=J)if(Se<0)for(;++Se<=0;)for(;j(J,-1),!M(J););else for(;--Se>=0;)for(;j(J,1),!M(J););})},Ae&&(je.count=function(M,J){return n.setTime(+M),i.setTime(+J),A(n),A(i),Math.floor(Ae(n,i))},je.every=function(M){return M=Math.floor(M),!isFinite(M)||!(M>0)?null:M>1?je.filter(Xe?function(J){return Xe(J)%M==0}:function(J){return je.count(0,J)%M==0}):je}),je}var s=u(function(){},function(A,j){A.setTime(+A+j)},function(A,j){return j-A});s.every=function(A){return A=Math.floor(A),!isFinite(A)||!(A>0)?null:A>1?u(function(j){j.setTime(Math.floor(j/A)*A)},function(j,Ae){j.setTime(+j+Ae*A)},function(j,Ae){return(Ae-j)/A}):s};var h=s.range,d=1e3,v=6e4,k=36e5,S=864e5,E=6048e5,O=u(function(A){A.setTime(A-A.getMilliseconds())},function(A,j){A.setTime(+A+j*d)},function(A,j){return(j-A)/d},function(A){return A.getUTCSeconds()}),ie=O.range,ve=u(function(A){A.setTime(A-A.getMilliseconds()-A.getSeconds()*d)},function(A,j){A.setTime(+A+j*v)},function(A,j){return(j-A)/v},function(A){return A.getMinutes()}),Ee=ve.range,ne=u(function(A){A.setTime(A-A.getMilliseconds()-A.getSeconds()*d-A.getMinutes()*v)},function(A,j){A.setTime(+A+j*k)},function(A,j){return(j-A)/k},function(A){return A.getHours()}),R=ne.range,I=u(function(A){A.setHours(0,0,0,0)},function(A,j){A.setDate(A.getDate()+j)},function(A,j){return(j-A-(j.getTimezoneOffset()-A.getTimezoneOffset())*v)/S},function(A){return A.getDate()-1}),Y=I.range;function le(A){return u(function(j){j.setDate(j.getDate()-(j.getDay()+7-A)%7),j.setHours(0,0,0,0)},function(j,Ae){j.setDate(j.getDate()+Ae*7)},function(j,Ae){return(Ae-j-(Ae.getTimezoneOffset()-j.getTimezoneOffset())*v)/E})}var pe=le(0),Re=le(1),B=le(2),c=le(3),g=le(4),x=le(5),P=le(6),b=pe.range,U=Re.range,y=B.range,D=c.range,q=g.range,oe=x.range,Le=P.range,we=u(function(A){A.setDate(1),A.setHours(0,0,0,0)},function(A,j){A.setMonth(A.getMonth()+j)},function(A,j){return j.getMonth()-A.getMonth()+(j.getFullYear()-A.getFullYear())*12},function(A){return A.getMonth()}),re=we.range,We=u(function(A){A.setMonth(0,1),A.setHours(0,0,0,0)},function(A,j){A.setFullYear(A.getFullYear()+j)},function(A,j){return j.getFullYear()-A.getFullYear()},function(A){return A.getFullYear()});We.every=function(A){return!isFinite(A=Math.floor(A))||!(A>0)?null:u(function(j){j.setFullYear(Math.floor(j.getFullYear()/A)*A),j.setMonth(0,1),j.setHours(0,0,0,0)},function(j,Ae){j.setFullYear(j.getFullYear()+Ae*A)})};var ce=We.range,ke=u(function(A){A.setUTCSeconds(0,0)},function(A,j){A.setTime(+A+j*v)},function(A,j){return(j-A)/v},function(A){return A.getUTCMinutes()}),Ce=ke.range,me=u(function(A){A.setUTCMinutes(0,0,0)},function(A,j){A.setTime(+A+j*k)},function(A,j){return(j-A)/k},function(A){return A.getUTCHours()}),Ue=me.range,He=u(function(A){A.setUTCHours(0,0,0,0)},function(A,j){A.setUTCDate(A.getUTCDate()+j)},function(A,j){return(j-A)/S},function(A){return A.getUTCDate()-1}),Je=He.range;function te(A){return u(function(j){j.setUTCDate(j.getUTCDate()-(j.getUTCDay()+7-A)%7),j.setUTCHours(0,0,0,0)},function(j,Ae){j.setUTCDate(j.getUTCDate()+Ae*7)},function(j,Ae){return(Ae-j)/E})}var ge=te(0),Oe=te(1),Q=te(2),ee=te(3),fe=te(4),De=te(5),at=te(6),dt=ge.range,Yt=Oe.range,Gt=Q.range,Lt=ee.range,Et=fe.range,Bt=De.range,zt=at.range,Zt=u(function(A){A.setUTCDate(1),A.setUTCHours(0,0,0,0)},function(A,j){A.setUTCMonth(A.getUTCMonth()+j)},function(A,j){return j.getUTCMonth()-A.getUTCMonth()+(j.getUTCFullYear()-A.getUTCFullYear())*12},function(A){return A.getUTCMonth()}),pn=Zt.range,$t=u(function(A){A.setUTCMonth(0,1),A.setUTCHours(0,0,0,0)},function(A,j){A.setUTCFullYear(A.getUTCFullYear()+j)},function(A,j){return j.getUTCFullYear()-A.getUTCFullYear()},function(A){return A.getUTCFullYear()});$t.every=function(A){return!isFinite(A=Math.floor(A))||!(A>0)?null:u(function(j){j.setUTCFullYear(Math.floor(j.getUTCFullYear()/A)*A),j.setUTCMonth(0,1),j.setUTCHours(0,0,0,0)},function(j,Ae){j.setUTCFullYear(j.getUTCFullYear()+Ae*A)})};var kn=$t.range;e.timeDay=I,e.timeDays=Y,e.timeFriday=x,e.timeFridays=oe,e.timeHour=ne,e.timeHours=R,e.timeInterval=u,e.timeMillisecond=s,e.timeMilliseconds=h,e.timeMinute=ve,e.timeMinutes=Ee,e.timeMonday=Re,e.timeMondays=U,e.timeMonth=we,e.timeMonths=re,e.timeSaturday=P,e.timeSaturdays=Le,e.timeSecond=O,e.timeSeconds=ie,e.timeSunday=pe,e.timeSundays=b,e.timeThursday=g,e.timeThursdays=q,e.timeTuesday=B,e.timeTuesdays=y,e.timeWednesday=c,e.timeWednesdays=D,e.timeWeek=pe,e.timeWeeks=b,e.timeYear=We,e.timeYears=ce,e.utcDay=He,e.utcDays=Je,e.utcFriday=De,e.utcFridays=Bt,e.utcHour=me,e.utcHours=Ue,e.utcMillisecond=s,e.utcMilliseconds=h,e.utcMinute=ke,e.utcMinutes=Ce,e.utcMonday=Oe,e.utcMondays=Yt,e.utcMonth=Zt,e.utcMonths=pn,e.utcSaturday=at,e.utcSaturdays=zt,e.utcSecond=O,e.utcSeconds=ie,e.utcSunday=ge,e.utcSundays=dt,e.utcThursday=fe,e.utcThursdays=Et,e.utcTuesday=Q,e.utcTuesdays=Gt,e.utcWednesday=ee,e.utcWednesdays=Lt,e.utcWeek=ge,e.utcWeeks=dt,e.utcYear=$t,e.utcYears=kn,Object.defineProperty(e,"__esModule",{value:!0})})});var Dx=yt((Uf,Ox)=>{(function(e,n){typeof Uf=="object"&&typeof Ox!="undefined"?n(Uf,jp()):typeof define=="function"&&define.amd?define(["exports","d3-time"],n):(e=e||self,n(e.d3=e.d3||{},e.d3))})(Uf,function(e,n){"use strict";function i(F){if(0<=F.y&&F.y<100){var $=new Date(-1,F.m,F.d,F.H,F.M,F.S,F.L);return $.setFullYear(F.y),$}return new Date(F.y,F.m,F.d,F.H,F.M,F.S,F.L)}function u(F){if(0<=F.y&&F.y<100){var $=new Date(Date.UTC(-1,F.m,F.d,F.H,F.M,F.S,F.L));return $.setUTCFullYear(F.y),$}return new Date(Date.UTC(F.y,F.m,F.d,F.H,F.M,F.S,F.L))}function s(F,$,N){return{y:F,m:$,d:N,H:0,M:0,S:0,L:0}}function h(F){var $=F.dateTime,N=F.date,L=F.time,V=F.periods,he=F.days,_e=F.shortDays,Fe=F.months,Ie=F.shortMonths,$e=ie(V),Ke=ve(V),et=ie(he),vt=ve(he),Ot=ie(_e),Ct=ve(_e),Nt=ie(Fe),Jt=ve(Fe),An=ie(Ie),bn=ve(Ie),Ut={a:Ze,A:ft,b:Qe,B:Vt,c:null,d:we,e:we,f:Ce,g:De,G:dt,H:re,I:We,j:ce,L:ke,m:me,M:Ue,p:sn,q:on,Q:wt,s:bt,S:He,u:Je,U:te,V:Oe,w:Q,W:ee,x:null,X:null,y:fe,Y:at,Z:Yt,"%":ht},st={a:In,A:_i,b:ki,B:Qr,c:null,d:Gt,e:Gt,f:Zt,g:Se,G:tt,H:Lt,I:Et,j:Bt,L:zt,m:pn,M:$t,p:w,q:z,Q:wt,s:bt,S:kn,u:A,U:j,V:Xe,w:je,W:M,x:null,X:null,y:J,Y:ze,Z:ct,"%":ht},Tt={a:se,A:qe,b:de,B:_,c:H,d:g,e:g,f:D,g:pe,G:le,H:P,I:P,j:x,L:y,m:c,M:b,p:G,q:B,Q:oe,s:Le,S:U,u:ne,U:R,V:I,w:Ee,W:Y,x:be,X:Ne,y:pe,Y:le,Z:Re,"%":q};Ut.x=rn(N,Ut),Ut.X=rn(L,Ut),Ut.c=rn($,Ut),st.x=rn(N,st),st.X=rn(L,st),st.c=rn($,st);function rn(W,ae){return function(Me){var ue=[],Ye=-1,xe=0,Ge=W.length,ot,rt,mt;for(Me instanceof Date||(Me=new Date(+Me));++Ye53)return null;"w"in ue||(ue.w=1),"Z"in ue?(xe=u(s(ue.y,0,1)),Ge=xe.getUTCDay(),xe=Ge>4||Ge===0?n.utcMonday.ceil(xe):n.utcMonday(xe),xe=n.utcDay.offset(xe,(ue.V-1)*7),ue.y=xe.getUTCFullYear(),ue.m=xe.getUTCMonth(),ue.d=xe.getUTCDate()+(ue.w+6)%7):(xe=i(s(ue.y,0,1)),Ge=xe.getDay(),xe=Ge>4||Ge===0?n.timeMonday.ceil(xe):n.timeMonday(xe),xe=n.timeDay.offset(xe,(ue.V-1)*7),ue.y=xe.getFullYear(),ue.m=xe.getMonth(),ue.d=xe.getDate()+(ue.w+6)%7)}else("W"in ue||"U"in ue)&&("w"in ue||(ue.w="u"in ue?ue.u%7:"W"in ue?1:0),Ge="Z"in ue?u(s(ue.y,0,1)).getUTCDay():i(s(ue.y,0,1)).getDay(),ue.m=0,ue.d="W"in ue?(ue.w+6)%7+ue.W*7-(Ge+5)%7:ue.w+ue.U*7-(Ge+6)%7);return"Z"in ue?(ue.H+=ue.Z/100|0,ue.M+=ue.Z%100,u(ue)):i(ue)}}function St(W,ae,Me,ue){for(var Ye=0,xe=ae.length,Ge=Me.length,ot,rt;Ye=Ge)return-1;if(ot=ae.charCodeAt(Ye++),ot===37){if(ot=ae.charAt(Ye++),rt=Tt[ot in d?ae.charAt(Ye++):ot],!rt||(ue=rt(W,Me,ue))<0)return-1}else if(ot!=Me.charCodeAt(ue++))return-1}return ue}function G(W,ae,Me){var ue=$e.exec(ae.slice(Me));return ue?(W.p=Ke[ue[0].toLowerCase()],Me+ue[0].length):-1}function se(W,ae,Me){var ue=Ot.exec(ae.slice(Me));return ue?(W.w=Ct[ue[0].toLowerCase()],Me+ue[0].length):-1}function qe(W,ae,Me){var ue=et.exec(ae.slice(Me));return ue?(W.w=vt[ue[0].toLowerCase()],Me+ue[0].length):-1}function de(W,ae,Me){var ue=An.exec(ae.slice(Me));return ue?(W.m=bn[ue[0].toLowerCase()],Me+ue[0].length):-1}function _(W,ae,Me){var ue=Nt.exec(ae.slice(Me));return ue?(W.m=Jt[ue[0].toLowerCase()],Me+ue[0].length):-1}function H(W,ae,Me){return St(W,$,ae,Me)}function be(W,ae,Me){return St(W,N,ae,Me)}function Ne(W,ae,Me){return St(W,L,ae,Me)}function Ze(W){return _e[W.getDay()]}function ft(W){return he[W.getDay()]}function Qe(W){return Ie[W.getMonth()]}function Vt(W){return Fe[W.getMonth()]}function sn(W){return V[+(W.getHours()>=12)]}function on(W){return 1+~~(W.getMonth()/3)}function In(W){return _e[W.getUTCDay()]}function _i(W){return he[W.getUTCDay()]}function ki(W){return Ie[W.getUTCMonth()]}function Qr(W){return Fe[W.getUTCMonth()]}function w(W){return V[+(W.getUTCHours()>=12)]}function z(W){return 1+~~(W.getUTCMonth()/3)}return{format:function(W){var ae=rn(W+="",Ut);return ae.toString=function(){return W},ae},parse:function(W){var ae=Xt(W+="",!1);return ae.toString=function(){return W},ae},utcFormat:function(W){var ae=rn(W+="",st);return ae.toString=function(){return W},ae},utcParse:function(W){var ae=Xt(W+="",!0);return ae.toString=function(){return W},ae}}}var d={"-":"",_:" ","0":"0"},v=/^\s*\d+/,k=/^%/,S=/[\\^$*+?|[\]().{}]/g;function E(F,$,N){var L=F<0?"-":"",V=(L?-F:F)+"",he=V.length;return L+(he68?1900:2e3),N+L[0].length):-1}function Re(F,$,N){var L=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec($.slice(N,N+6));return L?(F.Z=L[1]?0:-(L[2]+(L[3]||"00")),N+L[0].length):-1}function B(F,$,N){var L=v.exec($.slice(N,N+1));return L?(F.q=L[0]*3-3,N+L[0].length):-1}function c(F,$,N){var L=v.exec($.slice(N,N+2));return L?(F.m=L[0]-1,N+L[0].length):-1}function g(F,$,N){var L=v.exec($.slice(N,N+2));return L?(F.d=+L[0],N+L[0].length):-1}function x(F,$,N){var L=v.exec($.slice(N,N+3));return L?(F.m=0,F.d=+L[0],N+L[0].length):-1}function P(F,$,N){var L=v.exec($.slice(N,N+2));return L?(F.H=+L[0],N+L[0].length):-1}function b(F,$,N){var L=v.exec($.slice(N,N+2));return L?(F.M=+L[0],N+L[0].length):-1}function U(F,$,N){var L=v.exec($.slice(N,N+2));return L?(F.S=+L[0],N+L[0].length):-1}function y(F,$,N){var L=v.exec($.slice(N,N+3));return L?(F.L=+L[0],N+L[0].length):-1}function D(F,$,N){var L=v.exec($.slice(N,N+6));return L?(F.L=Math.floor(L[0]/1e3),N+L[0].length):-1}function q(F,$,N){var L=k.exec($.slice(N,N+1));return L?N+L[0].length:-1}function oe(F,$,N){var L=v.exec($.slice(N));return L?(F.Q=+L[0],N+L[0].length):-1}function Le(F,$,N){var L=v.exec($.slice(N));return L?(F.s=+L[0],N+L[0].length):-1}function we(F,$){return E(F.getDate(),$,2)}function re(F,$){return E(F.getHours(),$,2)}function We(F,$){return E(F.getHours()%12||12,$,2)}function ce(F,$){return E(1+n.timeDay.count(n.timeYear(F),F),$,3)}function ke(F,$){return E(F.getMilliseconds(),$,3)}function Ce(F,$){return ke(F,$)+"000"}function me(F,$){return E(F.getMonth()+1,$,2)}function Ue(F,$){return E(F.getMinutes(),$,2)}function He(F,$){return E(F.getSeconds(),$,2)}function Je(F){var $=F.getDay();return $===0?7:$}function te(F,$){return E(n.timeSunday.count(n.timeYear(F)-1,F),$,2)}function ge(F){var $=F.getDay();return $>=4||$===0?n.timeThursday(F):n.timeThursday.ceil(F)}function Oe(F,$){return F=ge(F),E(n.timeThursday.count(n.timeYear(F),F)+(n.timeYear(F).getDay()===4),$,2)}function Q(F){return F.getDay()}function ee(F,$){return E(n.timeMonday.count(n.timeYear(F)-1,F),$,2)}function fe(F,$){return E(F.getFullYear()%100,$,2)}function De(F,$){return F=ge(F),E(F.getFullYear()%100,$,2)}function at(F,$){return E(F.getFullYear()%1e4,$,4)}function dt(F,$){var N=F.getDay();return F=N>=4||N===0?n.timeThursday(F):n.timeThursday.ceil(F),E(F.getFullYear()%1e4,$,4)}function Yt(F){var $=F.getTimezoneOffset();return($>0?"-":($*=-1,"+"))+E($/60|0,"0",2)+E($%60,"0",2)}function Gt(F,$){return E(F.getUTCDate(),$,2)}function Lt(F,$){return E(F.getUTCHours(),$,2)}function Et(F,$){return E(F.getUTCHours()%12||12,$,2)}function Bt(F,$){return E(1+n.utcDay.count(n.utcYear(F),F),$,3)}function zt(F,$){return E(F.getUTCMilliseconds(),$,3)}function Zt(F,$){return zt(F,$)+"000"}function pn(F,$){return E(F.getUTCMonth()+1,$,2)}function $t(F,$){return E(F.getUTCMinutes(),$,2)}function kn(F,$){return E(F.getUTCSeconds(),$,2)}function A(F){var $=F.getUTCDay();return $===0?7:$}function j(F,$){return E(n.utcSunday.count(n.utcYear(F)-1,F),$,2)}function Ae(F){var $=F.getUTCDay();return $>=4||$===0?n.utcThursday(F):n.utcThursday.ceil(F)}function Xe(F,$){return F=Ae(F),E(n.utcThursday.count(n.utcYear(F),F)+(n.utcYear(F).getUTCDay()===4),$,2)}function je(F){return F.getUTCDay()}function M(F,$){return E(n.utcMonday.count(n.utcYear(F)-1,F),$,2)}function J(F,$){return E(F.getUTCFullYear()%100,$,2)}function Se(F,$){return F=Ae(F),E(F.getUTCFullYear()%100,$,2)}function ze(F,$){return E(F.getUTCFullYear()%1e4,$,4)}function tt(F,$){var N=F.getUTCDay();return F=N>=4||N===0?n.utcThursday(F):n.utcThursday.ceil(F),E(F.getUTCFullYear()%1e4,$,4)}function ct(){return"+0000"}function ht(){return"%"}function wt(F){return+F}function bt(F){return Math.floor(+F/1e3)}var Rt;Wt({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function Wt(F){return Rt=h(F),e.timeFormat=Rt.format,e.timeParse=Rt.parse,e.utcFormat=Rt.utcFormat,e.utcParse=Rt.utcParse,Rt}var ln="%Y-%m-%dT%H:%M:%S.%LZ";function nn(F){return F.toISOString()}var gn=Date.prototype.toISOString?nn:e.utcFormat(ln);function K(F){var $=new Date(F);return isNaN($)?null:$}var Pe=+new Date("2000-01-01T00:00:00.000Z")?K:e.utcParse(ln);e.isoFormat=gn,e.isoParse=Pe,e.timeFormatDefaultLocale=Wt,e.timeFormatLocale=h,Object.defineProperty(e,"__esModule",{value:!0})})});var Yp=yt((Bf,Ax)=>{(function(e,n){typeof Bf=="object"&&typeof Ax!="undefined"?n(Bf,Bp(),Cx(),zf(),Px(),jp(),Dx()):typeof define=="function"&&define.amd?define(["exports","d3-collection","d3-array","d3-interpolate","d3-format","d3-time","d3-time-format"],n):n(e.d3=e.d3||{},e.d3,e.d3,e.d3,e.d3,e.d3,e.d3)})(Bf,function(e,n,i,u,s,h,d){"use strict";function v(K,Pe){switch(arguments.length){case 0:break;case 1:this.range(K);break;default:this.range(Pe).domain(K);break}return this}function k(K,Pe){switch(arguments.length){case 0:break;case 1:this.interpolator(K);break;default:this.interpolator(Pe).domain(K);break}return this}var S=Array.prototype,E=S.map,O=S.slice,ie={name:"implicit"};function ve(){var K=n.map(),Pe=[],F=[],$=ie;function N(L){var V=L+"",he=K.get(V);if(!he){if($!==ie)return $;K.set(V,he=Pe.push(L))}return F[(he-1)%F.length]}return N.domain=function(L){if(!arguments.length)return Pe.slice();Pe=[],K=n.map();for(var V=-1,he=L.length,_e,Fe;++VF&&($=Pe,Pe=F,F=$),function(N){return Math.max(Pe,Math.min(F,N))}}function c(K,Pe,F){var $=K[0],N=K[1],L=Pe[0],V=Pe[1];return N<$?($=Re(N,$),L=F(V,L)):($=Re($,N),L=F(L,V)),function(he){return L($(he))}}function g(K,Pe,F){var $=Math.min(K.length,Pe.length)-1,N=new Array($),L=new Array($),V=-1;for(K[$]2?g:c,_e=Fe=null,$e}function $e(Ke){return isNaN(Ke=+Ke)?L:(_e||(_e=he(K.map($),Pe,F)))($(V(Ke)))}return $e.invert=function(Ke){return V(N((Fe||(Fe=he(Pe,K.map($),u.interpolateNumber)))(Ke)))},$e.domain=function(Ke){return arguments.length?(K=E.call(Ke,Y),V===pe||(V=B(K)),Ie()):K.slice()},$e.range=function(Ke){return arguments.length?(Pe=O.call(Ke),Ie()):Pe.slice()},$e.rangeRound=function(Ke){return Pe=O.call(Ke),F=u.interpolateRound,Ie()},$e.clamp=function(Ke){return arguments.length?(V=Ke?B(K):pe,$e):V!==pe},$e.interpolate=function(Ke){return arguments.length?(F=Ke,Ie()):F},$e.unknown=function(Ke){return arguments.length?(L=Ke,$e):L},function(Ke,et){return $=Ke,N=et,Ie()}}function b(K,Pe){return P()(K,Pe)}function U(K,Pe,F,$){var N=i.tickStep(K,Pe,F),L;switch($=s.formatSpecifier($??",f"),$.type){case"s":{var V=Math.max(Math.abs(K),Math.abs(Pe));return $.precision==null&&!isNaN(L=s.precisionPrefix(N,V))&&($.precision=L),s.formatPrefix($,V)}case"":case"e":case"g":case"p":case"r":{$.precision==null&&!isNaN(L=s.precisionRound(N,Math.max(Math.abs(K),Math.abs(Pe))))&&($.precision=L-($.type==="e"));break}case"f":case"%":{$.precision==null&&!isNaN(L=s.precisionFixed(N))&&($.precision=L-($.type==="%")*2);break}}return s.format($)}function y(K){var Pe=K.domain;return K.ticks=function(F){var $=Pe();return i.ticks($[0],$[$.length-1],F??10)},K.tickFormat=function(F,$){var N=Pe();return U(N[0],N[N.length-1],F??10,$)},K.nice=function(F){F==null&&(F=10);var $=Pe(),N=0,L=$.length-1,V=$[N],he=$[L],_e;return he0?(V=Math.floor(V/_e)*_e,he=Math.ceil(he/_e)*_e,_e=i.tickIncrement(V,he,F)):_e<0&&(V=Math.ceil(V*_e)/_e,he=Math.floor(he*_e)/_e,_e=i.tickIncrement(V,he,F)),_e>0?($[N]=Math.floor(V/_e)*_e,$[L]=Math.ceil(he/_e)*_e,Pe($)):_e<0&&($[N]=Math.ceil(V*_e)/_e,$[L]=Math.floor(he*_e)/_e,Pe($)),K},K}function D(){var K=b(pe,pe);return K.copy=function(){return x(K,D())},v.apply(K,arguments),y(K)}function q(K){var Pe;function F($){return isNaN($=+$)?Pe:$}return F.invert=F,F.domain=F.range=function($){return arguments.length?(K=E.call($,Y),F):K.slice()},F.unknown=function($){return arguments.length?(Pe=$,F):Pe},F.copy=function(){return q(K).unknown(Pe)},K=arguments.length?E.call(K,Y):[0,1],y(F)}function oe(K,Pe){K=K.slice();var F=0,$=K.length-1,N=K[F],L=K[$],V;return L0){for(;KeIe)break;Jt.push(Ct)}}else for(;Ke=1;--Ot)if(Ct=vt*Ot,!(CtIe)break;Jt.push(Ct)}}else Jt=i.ticks(Ke,et,Math.min(et-Ke,Nt)).map(L);return $e?Jt.reverse():Jt},Pe.tickFormat=function(he,_e){if(_e==null&&(_e=$===10?".0e":","),typeof _e!="function"&&(_e=s.format(_e)),he===1/0)return _e;he==null&&(he=10);var Fe=Math.max(1,$*he/Pe.ticks().length);return function(Ie){var $e=Ie/L(Math.round(N(Ie)));return $e*$<$-.5&&($e*=$),$e<=Fe?_e(Ie):""}},Pe.nice=function(){return F(oe(F(),{floor:function(he){return L(Math.floor(N(he)))},ceil:function(he){return L(Math.ceil(N(he)))}}))},Pe}function He(){var K=Ue(P()).domain([1,10]);return K.copy=function(){return x(K,He()).base(K.base())},v.apply(K,arguments),K}function Je(K){return function(Pe){return Math.sign(Pe)*Math.log1p(Math.abs(Pe/K))}}function te(K){return function(Pe){return Math.sign(Pe)*Math.expm1(Math.abs(Pe))*K}}function ge(K){var Pe=1,F=K(Je(Pe),te(Pe));return F.constant=function($){return arguments.length?K(Je(Pe=+$),te(Pe)):Pe},y(F)}function Oe(){var K=ge(P());return K.copy=function(){return x(K,Oe()).constant(K.constant())},v.apply(K,arguments)}function Q(K){return function(Pe){return Pe<0?-Math.pow(-Pe,K):Math.pow(Pe,K)}}function ee(K){return K<0?-Math.sqrt(-K):Math.sqrt(K)}function fe(K){return K<0?-K*K:K*K}function De(K){var Pe=K(pe,pe),F=1;function $(){return F===1?K(pe,pe):F===.5?K(ee,fe):K(Q(F),Q(1/F))}return Pe.exponent=function(N){return arguments.length?(F=+N,$()):F},y(Pe)}function at(){var K=De(P());return K.copy=function(){return x(K,at()).exponent(K.exponent())},v.apply(K,arguments),K}function dt(){return at.apply(null,arguments).exponent(.5)}function Yt(){var K=[],Pe=[],F=[],$;function N(){var V=0,he=Math.max(1,Pe.length);for(F=new Array(he-1);++V0?F[he-1]:K[0],he=F?[$[F-1],Pe]:[$[Fe-1],$[Fe]]},V.unknown=function(_e){return arguments.length&&(L=_e),V},V.thresholds=function(){return $.slice()},V.copy=function(){return Gt().domain([K,Pe]).range(N).unknown(L)},v.apply(y(V),arguments)}function Lt(){var K=[.5],Pe=[0,1],F,$=1;function N(L){return L<=L?Pe[i.bisect(K,L,0,$)]:F}return N.domain=function(L){return arguments.length?(K=O.call(L),$=Math.min(K.length,Pe.length-1),N):K.slice()},N.range=function(L){return arguments.length?(Pe=O.call(L),$=Math.min(K.length,Pe.length-1),N):Pe.slice()},N.invertExtent=function(L){var V=Pe.indexOf(L);return[K[V-1],K[V]]},N.unknown=function(L){return arguments.length?(F=L,N):F},N.copy=function(){return Lt().domain(K).range(Pe).unknown(F)},v.apply(N,arguments)}var Et=1e3,Bt=Et*60,zt=Bt*60,Zt=zt*24,pn=Zt*7,$t=Zt*30,kn=Zt*365;function A(K){return new Date(K)}function j(K){return K instanceof Date?+K:+new Date(+K)}function Ae(K,Pe,F,$,N,L,V,he,_e){var Fe=b(pe,pe),Ie=Fe.invert,$e=Fe.domain,Ke=_e(".%L"),et=_e(":%S"),vt=_e("%I:%M"),Ot=_e("%I %p"),Ct=_e("%a %d"),Nt=_e("%b %d"),Jt=_e("%B"),An=_e("%Y"),bn=[[V,1,Et],[V,5,5*Et],[V,15,15*Et],[V,30,30*Et],[L,1,Bt],[L,5,5*Bt],[L,15,15*Bt],[L,30,30*Bt],[N,1,zt],[N,3,3*zt],[N,6,6*zt],[N,12,12*zt],[$,1,Zt],[$,2,2*Zt],[F,1,pn],[Pe,1,$t],[Pe,3,3*$t],[K,1,kn]];function Ut(Tt){return(V(Tt){(function(e,n){typeof jf=="object"&&typeof Ix!="undefined"?n(jf):typeof define=="function"&&define.amd?define(["exports"],n):n(e.d3=e.d3||{})})(jf,function(e){"use strict";var n=Array.prototype.slice;function i(Y){return Y}var u=1,s=2,h=3,d=4,v=1e-6;function k(Y){return"translate("+(Y+.5)+",0)"}function S(Y){return"translate(0,"+(Y+.5)+")"}function E(Y){return function(le){return+Y(le)}}function O(Y){var le=Math.max(0,Y.bandwidth()-1)/2;return Y.round()&&(le=Math.round(le)),function(pe){return+Y(pe)+le}}function ie(){return!this.__axis}function ve(Y,le){var pe=[],Re=null,B=null,c=6,g=6,x=3,P=Y===u||Y===d?-1:1,b=Y===d||Y===s?"x":"y",U=Y===u||Y===h?k:S;function y(D){var q=Re??(le.ticks?le.ticks.apply(le,pe):le.domain()),oe=B??(le.tickFormat?le.tickFormat.apply(le,pe):i),Le=Math.max(c,0)+x,we=le.range(),re=+we[0]+.5,We=+we[we.length-1]+.5,ce=(le.bandwidth?O:E)(le.copy()),ke=D.selection?D.selection():D,Ce=ke.selectAll(".domain").data([null]),me=ke.selectAll(".tick").data(q,le).order(),Ue=me.exit(),He=me.enter().append("g").attr("class","tick"),Je=me.select("line"),te=me.select("text");Ce=Ce.merge(Ce.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),me=me.merge(He),Je=Je.merge(He.append("line").attr("stroke","currentColor").attr(b+"2",P*c)),te=te.merge(He.append("text").attr("fill","currentColor").attr(b,P*Le).attr("dy",Y===u?"0em":Y===h?"0.71em":"0.32em")),D!==ke&&(Ce=Ce.transition(D),me=me.transition(D),Je=Je.transition(D),te=te.transition(D),Ue=Ue.transition(D).attr("opacity",v).attr("transform",function(ge){return isFinite(ge=ce(ge))?U(ge):this.getAttribute("transform")}),He.attr("opacity",v).attr("transform",function(ge){var Oe=this.parentNode.__axis;return U(Oe&&isFinite(Oe=Oe(ge))?Oe:ce(ge))})),Ue.remove(),Ce.attr("d",Y===d||Y==s?g?"M"+P*g+","+re+"H0.5V"+We+"H"+P*g:"M0.5,"+re+"V"+We:g?"M"+re+","+P*g+"V0.5H"+We+"V"+P*g:"M"+re+",0.5H"+We),me.attr("opacity",1).attr("transform",function(ge){return U(ce(ge))}),Je.attr(b+"2",P*c),te.attr(b,P*Le).text(oe),ke.filter(ie).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",Y===s?"start":Y===d?"end":"middle"),ke.each(function(){this.__axis=ce})}return y.scale=function(D){return arguments.length?(le=D,y):le},y.ticks=function(){return pe=n.call(arguments),y},y.tickArguments=function(D){return arguments.length?(pe=D==null?[]:n.call(D),y):pe.slice()},y.tickValues=function(D){return arguments.length?(Re=D==null?null:n.call(D),y):Re&&Re.slice()},y.tickFormat=function(D){return arguments.length?(B=D,y):B},y.tickSize=function(D){return arguments.length?(c=g=+D,y):c},y.tickSizeInner=function(D){return arguments.length?(c=+D,y):c},y.tickSizeOuter=function(D){return arguments.length?(g=+D,y):g},y.tickPadding=function(D){return arguments.length?(x=+D,y):x},y}function Ee(Y){return ve(u,Y)}function ne(Y){return ve(s,Y)}function R(Y){return ve(h,Y)}function I(Y){return ve(d,Y)}e.axisTop=Ee,e.axisRight=ne,e.axisBottom=R,e.axisLeft=I,Object.defineProperty(e,"__esModule",{value:!0})})});var qf=yt((Yf,Rx)=>{(function(e,n){typeof Yf=="object"&&typeof Rx!="undefined"?n(Yf):typeof define=="function"&&define.amd?define(["exports"],n):(e=e||self,n(e.d3=e.d3||{}))})(Yf,function(e){"use strict";var n={value:function(){}};function i(){for(var v=0,k=arguments.length,S={},E;v=0&&(E=S.slice(O+1),S=S.slice(0,O)),S&&!k.hasOwnProperty(S))throw new Error("unknown type: "+S);return{type:S,name:E}})}u.prototype=i.prototype={constructor:u,on:function(v,k){var S=this._,E=s(v+"",S),O,ie=-1,ve=E.length;if(arguments.length<2){for(;++ie0)for(var S=new Array(O),E=0,O,ie;E{(function(e,n){typeof Gf=="object"&&typeof Fx!="undefined"?n(Gf):typeof define=="function"&&define.amd?define(["exports"],n):(e=e||self,n(e.d3=e.d3||{}))})(Gf,function(e){"use strict";var n=0,i=0,u=0,s=1e3,h,d,v=0,k=0,S=0,E=typeof performance=="object"&&performance.now?performance:Date,O=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(c){setTimeout(c,17)};function ie(){return k||(O(ve),k=E.now()+S)}function ve(){k=0}function Ee(){this._call=this._time=this._next=null}Ee.prototype=ne.prototype={constructor:Ee,restart:function(c,g,x){if(typeof c!="function")throw new TypeError("callback is not a function");x=(x==null?ie():+x)+(g==null?0:+g),!this._next&&d!==this&&(d?d._next=this:h=this,d=this),this._call=c,this._time=x,pe()},stop:function(){this._call&&(this._call=null,this._time=1/0,pe())}};function ne(c,g,x){var P=new Ee;return P.restart(c,g,x),P}function R(){ie(),++n;for(var c=h,g;c;)(g=k-c._time)>=0&&c._call.call(null,g),c=c._next;--n}function I(){k=(v=E.now())+S,n=i=0;try{R()}finally{n=0,le(),k=0}}function Y(){var c=E.now(),g=c-v;g>s&&(S-=g,v=c)}function le(){for(var c,g=h,x,P=1/0;g;)g._call?(P>g._time&&(P=g._time),c=g,g=g._next):(x=g._next,g._next=null,g=c?c._next=x:h=x);d=c,pe(P)}function pe(c){if(!n){i&&(i=clearTimeout(i));var g=c-k;g>24?(c<1/0&&(i=setTimeout(I,c-E.now()-S)),u&&(u=clearInterval(u))):(u||(v=E.now(),u=setInterval(Y,s)),n=1,O(I))}}function Re(c,g,x){var P=new Ee;return g=g==null?0:+g,P.restart(function(b){P.stop(),c(b+g)},g,x),P}function B(c,g,x){var P=new Ee,b=g;return g==null?(P.restart(c,g,x),P):(g=+g,x=x==null?ie():+x,P.restart(function U(y){y+=b,P.restart(U,b+=g,x),c(y)},g,x),P)}e.interval=B,e.now=ie,e.timeout=Re,e.timer=ne,e.timerFlush=R,Object.defineProperty(e,"__esModule",{value:!0})})});var Hx=yt(($f,zx)=>{(function(e,n){typeof $f=="object"&&typeof zx!="undefined"?n($f):typeof define=="function"&&define.amd?define(["exports"],n):(e=e||self,n(e.d3=e.d3||{}))})($f,function(e){"use strict";function n(Q){return+Q}function i(Q){return Q*Q}function u(Q){return Q*(2-Q)}function s(Q){return((Q*=2)<=1?Q*Q:--Q*(2-Q)+1)/2}function h(Q){return Q*Q*Q}function d(Q){return--Q*Q*Q+1}function v(Q){return((Q*=2)<=1?Q*Q*Q:(Q-=2)*Q*Q+2)/2}var k=3,S=function Q(ee){ee=+ee;function fe(De){return Math.pow(De,ee)}return fe.exponent=Q,fe}(k),E=function Q(ee){ee=+ee;function fe(De){return 1-Math.pow(1-De,ee)}return fe.exponent=Q,fe}(k),O=function Q(ee){ee=+ee;function fe(De){return((De*=2)<=1?Math.pow(De,ee):2-Math.pow(2-De,ee))/2}return fe.exponent=Q,fe}(k),ie=Math.PI,ve=ie/2;function Ee(Q){return+Q==1?1:1-Math.cos(Q*ve)}function ne(Q){return Math.sin(Q*ve)}function R(Q){return(1-Math.cos(ie*Q))/2}function I(Q){return(Math.pow(2,-10*Q)-.0009765625)*1.0009775171065494}function Y(Q){return I(1-+Q)}function le(Q){return 1-I(Q)}function pe(Q){return((Q*=2)<=1?I(1-Q):2-I(Q-1))/2}function Re(Q){return 1-Math.sqrt(1-Q*Q)}function B(Q){return Math.sqrt(1- --Q*Q)}function c(Q){return((Q*=2)<=1?1-Math.sqrt(1-Q*Q):Math.sqrt(1-(Q-=2)*Q)+1)/2}var g=4/11,x=6/11,P=8/11,b=3/4,U=9/11,y=10/11,D=15/16,q=21/22,oe=63/64,Le=1/g/g;function we(Q){return 1-re(1-Q)}function re(Q){return(Q=+Q){(function(e,n){typeof Vf=="object"&&typeof Wx!="undefined"?n(Vf,Jo(),qf(),Gp(),zf(),Rf(),Hx()):typeof define=="function"&&define.amd?define(["exports","d3-selection","d3-dispatch","d3-timer","d3-interpolate","d3-color","d3-ease"],n):(e=e||self,n(e.d3=e.d3||{},e.d3,e.d3,e.d3,e.d3,e.d3,e.d3))})(Vf,function(e,n,i,u,s,h,d){"use strict";var v=i.dispatch("start","end","cancel","interrupt"),k=[],S=0,E=1,O=2,ie=3,ve=4,Ee=5,ne=6;function R(N,L,V,he,_e,Fe){var Ie=N.__transition;if(!Ie)N.__transition={};else if(V in Ie)return;pe(N,V,{name:L,index:he,group:_e,on:v,tween:k,time:Fe.time,delay:Fe.delay,duration:Fe.duration,ease:Fe.ease,timer:null,state:S})}function I(N,L){var V=le(N,L);if(V.state>S)throw new Error("too late; already scheduled");return V}function Y(N,L){var V=le(N,L);if(V.state>ie)throw new Error("too late; already running");return V}function le(N,L){var V=N.__transition;if(!V||!(V=V[L]))throw new Error("transition not found");return V}function pe(N,L,V){var he=N.__transition,_e;he[L]=V,V.timer=u.timer(Fe,0,V.time);function Fe(et){V.state=E,V.timer.restart(Ie,V.delay,V.time),V.delay<=et&&Ie(et-V.delay)}function Ie(et){var vt,Ot,Ct,Nt;if(V.state!==E)return Ke();for(vt in he)if(Nt=he[vt],Nt.name===V.name){if(Nt.state===ie)return u.timeout(Ie);Nt.state===ve?(Nt.state=ne,Nt.timer.stop(),Nt.on.call("interrupt",N,N.__data__,Nt.index,Nt.group),delete he[vt]):+vtO&&he.state=0&&(L=L.slice(0,V)),!L||L==="start"})}function at(N,L,V){var he,_e,Fe=De(L)?I:Y;return function(){var Ie=Fe(this,N),$e=Ie.on;$e!==he&&(_e=(he=$e).copy()).on(L,V),Ie.on=_e}}function dt(N,L){var V=this._id;return arguments.length<2?le(this.node(),V).on.on(N):this.each(at(V,N,L))}function Yt(N){return function(){var L=this.parentNode;for(var V in this.__transition)if(+V!==N)return;L&&L.removeChild(this)}}function Gt(){return this.on("end.remove",Yt(this._id))}function Lt(N){var L=this._name,V=this._id;typeof N!="function"&&(N=n.selector(N));for(var he=this._groups,_e=he.length,Fe=new Array(_e),Ie=0;Ie<_e;++Ie)for(var $e=he[Ie],Ke=$e.length,et=Fe[Ie]=new Array(Ke),vt,Ot,Ct=0;CtE&&he.name===L)return new Rt([[N]],F,L,+_e)}return null}e.active=$,e.interrupt=Re,e.transition=Wt,Object.defineProperty(e,"__esModule",{value:!0})})});var jx=yt((Xf,Bx)=>{(function(e,n){typeof Xf=="object"&&typeof Bx!="undefined"?n(Xf):typeof define=="function"&&define.amd?define(["exports"],n):(e=e||self,n(e.d3=e.d3||{}))})(Xf,function(e){"use strict";var n=Math.PI,i=2*n,u=1e-6,s=i-u;function h(){this._x0=this._y0=this._x1=this._y1=null,this._=""}function d(){return new h}h.prototype=d.prototype={constructor:h,moveTo:function(v,k){this._+="M"+(this._x0=this._x1=+v)+","+(this._y0=this._y1=+k)},closePath:function(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},lineTo:function(v,k){this._+="L"+(this._x1=+v)+","+(this._y1=+k)},quadraticCurveTo:function(v,k,S,E){this._+="Q"+ +v+","+ +k+","+(this._x1=+S)+","+(this._y1=+E)},bezierCurveTo:function(v,k,S,E,O,ie){this._+="C"+ +v+","+ +k+","+ +S+","+ +E+","+(this._x1=+O)+","+(this._y1=+ie)},arcTo:function(v,k,S,E,O){v=+v,k=+k,S=+S,E=+E,O=+O;var ie=this._x1,ve=this._y1,Ee=S-v,ne=E-k,R=ie-v,I=ve-k,Y=R*R+I*I;if(O<0)throw new Error("negative radius: "+O);if(this._x1===null)this._+="M"+(this._x1=v)+","+(this._y1=k);else if(Y>u)if(!(Math.abs(I*Ee-ne*R)>u)||!O)this._+="L"+(this._x1=v)+","+(this._y1=k);else{var le=S-ie,pe=E-ve,Re=Ee*Ee+ne*ne,B=le*le+pe*pe,c=Math.sqrt(Re),g=Math.sqrt(Y),x=O*Math.tan((n-Math.acos((Re+Y-B)/(2*c*g)))/2),P=x/g,b=x/c;Math.abs(P-1)>u&&(this._+="L"+(v+P*R)+","+(k+P*I)),this._+="A"+O+","+O+",0,0,"+ +(I*le>R*pe)+","+(this._x1=v+b*Ee)+","+(this._y1=k+b*ne)}},arc:function(v,k,S,E,O,ie){v=+v,k=+k,S=+S,ie=!!ie;var ve=S*Math.cos(E),Ee=S*Math.sin(E),ne=v+ve,R=k+Ee,I=1^ie,Y=ie?E-O:O-E;if(S<0)throw new Error("negative radius: "+S);this._x1===null?this._+="M"+ne+","+R:(Math.abs(this._x1-ne)>u||Math.abs(this._y1-R)>u)&&(this._+="L"+ne+","+R),!!S&&(Y<0&&(Y=Y%i+i),Y>s?this._+="A"+S+","+S+",0,1,"+I+","+(v-ve)+","+(k-Ee)+"A"+S+","+S+",0,1,"+I+","+(this._x1=ne)+","+(this._y1=R):Y>u&&(this._+="A"+S+","+S+",0,"+ +(Y>=n)+","+I+","+(this._x1=v+S*Math.cos(O))+","+(this._y1=k+S*Math.sin(O))))},rect:function(v,k,S,E){this._+="M"+(this._x0=this._x1=+v)+","+(this._y0=this._y1=+k)+"h"+ +S+"v"+ +E+"h"+-S+"Z"},toString:function(){return this._}},e.path=d,Object.defineProperty(e,"__esModule",{value:!0})})});var qx=yt((Kf,Yx)=>{(function(e,n){typeof Kf=="object"&&typeof Yx!="undefined"?n(Kf,jx()):typeof define=="function"&&define.amd?define(["exports","d3-path"],n):(e=e||self,n(e.d3=e.d3||{},e.d3))})(Kf,function(e,n){"use strict";function i(w){return function(){return w}}var u=Math.abs,s=Math.atan2,h=Math.cos,d=Math.max,v=Math.min,k=Math.sin,S=Math.sqrt,E=1e-12,O=Math.PI,ie=O/2,ve=2*O;function Ee(w){return w>1?0:w<-1?O:Math.acos(w)}function ne(w){return w>=1?ie:w<=-1?-ie:Math.asin(w)}function R(w){return w.innerRadius}function I(w){return w.outerRadius}function Y(w){return w.startAngle}function le(w){return w.endAngle}function pe(w){return w&&w.padAngle}function Re(w,z,W,ae,Me,ue,Ye,xe){var Ge=W-w,ot=ae-z,rt=Ye-Me,mt=xe-ue,Pt=mt*Ge-rt*ot;if(!(Pt*PtTi*Ti+li*li&&(Ar=cr,Zn=Sr),{cx:Ar,cy:Zn,x01:-rt,y01:-mt,x11:Ar*(Me/Tr-1),y11:Zn*(Me/Tr-1)}}function c(){var w=R,z=I,W=i(0),ae=null,Me=Y,ue=le,Ye=pe,xe=null;function Ge(){var ot,rt,mt=+w.apply(this,arguments),Pt=+z.apply(this,arguments),qt=Me.apply(this,arguments)-ie,It=ue.apply(this,arguments)-ie,dn=u(It-qt),Kt=It>qt;if(xe||(xe=ot=n.path()),PtE))xe.moveTo(0,0);else if(dn>ve-E)xe.moveTo(Pt*h(qt),Pt*k(qt)),xe.arc(0,0,Pt,qt,It,!Kt),mt>E&&(xe.moveTo(mt*h(It),mt*k(It)),xe.arc(0,0,mt,It,qt,Kt));else{var Rn=qt,Nn=It,mn=qt,Pn=It,Tr=dn,Qn=dn,Zr=Ye.apply(this,arguments)/2,Ar=Zr>E&&(ae?+ae.apply(this,arguments):S(mt*mt+Pt*Pt)),Zn=v(u(Pt-mt)/2,+W.apply(this,arguments)),cr=Zn,Sr=Zn,At,Qt;if(Ar>E){var Ti=ne(Ar/mt*k(Zr)),li=ne(Ar/Pt*k(Zr));(Tr-=Ti*2)>E?(Ti*=Kt?1:-1,mn+=Ti,Pn-=Ti):(Tr=0,mn=Pn=(qt+It)/2),(Qn-=li*2)>E?(li*=Kt?1:-1,Rn+=li,Nn-=li):(Qn=0,Rn=Nn=(qt+It)/2)}var Gn=Pt*h(Rn),Hi=Pt*k(Rn),ea=mt*h(Pn),Wi=mt*k(Pn);if(Zn>E){var xo=Pt*h(Nn),Ir=Pt*k(Nn),_o=mt*h(mn),Rr=mt*k(mn),br;if(dnE?Sr>E?(At=B(_o,Rr,Gn,Hi,Pt,Sr,Kt),Qt=B(xo,Ir,ea,Wi,Pt,Sr,Kt),xe.moveTo(At.cx+At.x01,At.cy+At.y01),SrE)||!(Tr>E)?xe.lineTo(ea,Wi):cr>E?(At=B(ea,Wi,xo,Ir,mt,-cr,Kt),Qt=B(Gn,Hi,_o,Rr,mt,-cr,Kt),xe.lineTo(At.cx+At.x01,At.cy+At.y01),cr=Pt;--qt)xe.point(Nn[qt],mn[qt]);xe.lineEnd(),xe.areaEnd()}Kt&&(Nn[mt]=+w(dn,mt,rt),mn[mt]=+W(dn,mt,rt),xe.point(z?+z(dn,mt,rt):Nn[mt],ae?+ae(dn,mt,rt):mn[mt]))}if(Rn)return xe=null,Rn+""||null}function ot(){return U().defined(Me).curve(Ye).context(ue)}return Ge.x=function(rt){return arguments.length?(w=typeof rt=="function"?rt:i(+rt),z=null,Ge):w},Ge.x0=function(rt){return arguments.length?(w=typeof rt=="function"?rt:i(+rt),Ge):w},Ge.x1=function(rt){return arguments.length?(z=rt==null?null:typeof rt=="function"?rt:i(+rt),Ge):z},Ge.y=function(rt){return arguments.length?(W=typeof rt=="function"?rt:i(+rt),ae=null,Ge):W},Ge.y0=function(rt){return arguments.length?(W=typeof rt=="function"?rt:i(+rt),Ge):W},Ge.y1=function(rt){return arguments.length?(ae=rt==null?null:typeof rt=="function"?rt:i(+rt),Ge):ae},Ge.lineX0=Ge.lineY0=function(){return ot().x(w).y(W)},Ge.lineY1=function(){return ot().x(w).y(ae)},Ge.lineX1=function(){return ot().x(z).y(W)},Ge.defined=function(rt){return arguments.length?(Me=typeof rt=="function"?rt:i(!!rt),Ge):Me},Ge.curve=function(rt){return arguments.length?(Ye=rt,ue!=null&&(xe=Ye(ue)),Ge):Ye},Ge.context=function(rt){return arguments.length?(rt==null?ue=xe=null:xe=Ye(ue=rt),Ge):ue},Ge}function D(w,z){return zw?1:z>=w?0:NaN}function q(w){return w}function oe(){var w=q,z=D,W=null,ae=i(0),Me=i(ve),ue=i(0);function Ye(xe){var Ge,ot=xe.length,rt,mt,Pt=0,qt=new Array(ot),It=new Array(ot),dn=+ae.apply(this,arguments),Kt=Math.min(ve,Math.max(-ve,Me.apply(this,arguments)-dn)),Rn,Nn=Math.min(Math.abs(Kt)/ot,ue.apply(this,arguments)),mn=Nn*(Kt<0?-1:1),Pn;for(Ge=0;Ge0&&(Pt+=Pn);for(z!=null?qt.sort(function(Tr,Qn){return z(It[Tr],It[Qn])}):W!=null&&qt.sort(function(Tr,Qn){return W(xe[Tr],xe[Qn])}),Ge=0,mt=Pt?(Kt-ot*mn)/Pt:0;Ge0?Pn*mt:0)+mn,It[rt]={data:xe[rt],index:Ge,value:Pn,startAngle:dn,endAngle:Rn,padAngle:Nn};return It}return Ye.value=function(xe){return arguments.length?(w=typeof xe=="function"?xe:i(+xe),Ye):w},Ye.sortValues=function(xe){return arguments.length?(z=xe,W=null,Ye):z},Ye.sort=function(xe){return arguments.length?(W=xe,z=null,Ye):W},Ye.startAngle=function(xe){return arguments.length?(ae=typeof xe=="function"?xe:i(+xe),Ye):ae},Ye.endAngle=function(xe){return arguments.length?(Me=typeof xe=="function"?xe:i(+xe),Ye):Me},Ye.padAngle=function(xe){return arguments.length?(ue=typeof xe=="function"?xe:i(+xe),Ye):ue},Ye}var Le=re(x);function we(w){this._curve=w}we.prototype={areaStart:function(){this._curve.areaStart()},areaEnd:function(){this._curve.areaEnd()},lineStart:function(){this._curve.lineStart()},lineEnd:function(){this._curve.lineEnd()},point:function(w,z){this._curve.point(z*Math.sin(w),z*-Math.cos(w))}};function re(w){function z(W){return new we(w(W))}return z._curve=w,z}function We(w){var z=w.curve;return w.angle=w.x,delete w.x,w.radius=w.y,delete w.y,w.curve=function(W){return arguments.length?z(re(W)):z()._curve},w}function ce(){return We(U().curve(Le))}function ke(){var w=y().curve(Le),z=w.curve,W=w.lineX0,ae=w.lineX1,Me=w.lineY0,ue=w.lineY1;return w.angle=w.x,delete w.x,w.startAngle=w.x0,delete w.x0,w.endAngle=w.x1,delete w.x1,w.radius=w.y,delete w.y,w.innerRadius=w.y0,delete w.y0,w.outerRadius=w.y1,delete w.y1,w.lineStartAngle=function(){return We(W())},delete w.lineX0,w.lineEndAngle=function(){return We(ae())},delete w.lineX1,w.lineInnerRadius=function(){return We(Me())},delete w.lineY0,w.lineOuterRadius=function(){return We(ue())},delete w.lineY1,w.curve=function(Ye){return arguments.length?z(re(Ye)):z()._curve},w}function Ce(w,z){return[(z=+z)*Math.cos(w-=Math.PI/2),z*Math.sin(w)]}var me=Array.prototype.slice;function Ue(w){return w.source}function He(w){return w.target}function Je(w){var z=Ue,W=He,ae=P,Me=b,ue=null;function Ye(){var xe,Ge=me.call(arguments),ot=z.apply(this,Ge),rt=W.apply(this,Ge);if(ue||(ue=xe=n.path()),w(ue,+ae.apply(this,(Ge[0]=ot,Ge)),+Me.apply(this,Ge),+ae.apply(this,(Ge[0]=rt,Ge)),+Me.apply(this,Ge)),xe)return ue=null,xe+""||null}return Ye.source=function(xe){return arguments.length?(z=xe,Ye):z},Ye.target=function(xe){return arguments.length?(W=xe,Ye):W},Ye.x=function(xe){return arguments.length?(ae=typeof xe=="function"?xe:i(+xe),Ye):ae},Ye.y=function(xe){return arguments.length?(Me=typeof xe=="function"?xe:i(+xe),Ye):Me},Ye.context=function(xe){return arguments.length?(ue=xe??null,Ye):ue},Ye}function te(w,z,W,ae,Me){w.moveTo(z,W),w.bezierCurveTo(z=(z+ae)/2,W,z,Me,ae,Me)}function ge(w,z,W,ae,Me){w.moveTo(z,W),w.bezierCurveTo(z,W=(W+Me)/2,ae,W,ae,Me)}function Oe(w,z,W,ae,Me){var ue=Ce(z,W),Ye=Ce(z,W=(W+Me)/2),xe=Ce(ae,W),Ge=Ce(ae,Me);w.moveTo(ue[0],ue[1]),w.bezierCurveTo(Ye[0],Ye[1],xe[0],xe[1],Ge[0],Ge[1])}function Q(){return Je(te)}function ee(){return Je(ge)}function fe(){var w=Je(Oe);return w.angle=w.x,delete w.x,w.radius=w.y,delete w.y,w}var De={draw:function(w,z){var W=Math.sqrt(z/O);w.moveTo(W,0),w.arc(0,0,W,0,ve)}},at={draw:function(w,z){var W=Math.sqrt(z/5)/2;w.moveTo(-3*W,-W),w.lineTo(-W,-W),w.lineTo(-W,-3*W),w.lineTo(W,-3*W),w.lineTo(W,-W),w.lineTo(3*W,-W),w.lineTo(3*W,W),w.lineTo(W,W),w.lineTo(W,3*W),w.lineTo(-W,3*W),w.lineTo(-W,W),w.lineTo(-3*W,W),w.closePath()}},dt=Math.sqrt(1/3),Yt=dt*2,Gt={draw:function(w,z){var W=Math.sqrt(z/Yt),ae=W*dt;w.moveTo(0,-W),w.lineTo(ae,0),w.lineTo(0,W),w.lineTo(-ae,0),w.closePath()}},Lt=.8908130915292852,Et=Math.sin(O/10)/Math.sin(7*O/10),Bt=Math.sin(ve/10)*Et,zt=-Math.cos(ve/10)*Et,Zt={draw:function(w,z){var W=Math.sqrt(z*Lt),ae=Bt*W,Me=zt*W;w.moveTo(0,-W),w.lineTo(ae,Me);for(var ue=1;ue<5;++ue){var Ye=ve*ue/5,xe=Math.cos(Ye),Ge=Math.sin(Ye);w.lineTo(Ge*W,-xe*W),w.lineTo(xe*ae-Ge*Me,Ge*ae+xe*Me)}w.closePath()}},pn={draw:function(w,z){var W=Math.sqrt(z),ae=-W/2;w.rect(ae,ae,W,W)}},$t=Math.sqrt(3),kn={draw:function(w,z){var W=-Math.sqrt(z/($t*3));w.moveTo(0,W*2),w.lineTo(-$t*W,-W),w.lineTo($t*W,-W),w.closePath()}},A=-.5,j=Math.sqrt(3)/2,Ae=1/Math.sqrt(12),Xe=(Ae/2+1)*3,je={draw:function(w,z){var W=Math.sqrt(z/Xe),ae=W/2,Me=W*Ae,ue=ae,Ye=W*Ae+W,xe=-ue,Ge=Ye;w.moveTo(ae,Me),w.lineTo(ue,Ye),w.lineTo(xe,Ge),w.lineTo(A*ae-j*Me,j*ae+A*Me),w.lineTo(A*ue-j*Ye,j*ue+A*Ye),w.lineTo(A*xe-j*Ge,j*xe+A*Ge),w.lineTo(A*ae+j*Me,A*Me-j*ae),w.lineTo(A*ue+j*Ye,A*Ye-j*ue),w.lineTo(A*xe+j*Ge,A*Ge-j*xe),w.closePath()}},M=[De,at,Gt,pn,Zt,kn,je];function J(){var w=i(De),z=i(64),W=null;function ae(){var Me;if(W||(W=Me=n.path()),w.apply(this,arguments).draw(W,+z.apply(this,arguments)),Me)return W=null,Me+""||null}return ae.type=function(Me){return arguments.length?(w=typeof Me=="function"?Me:i(Me),ae):w},ae.size=function(Me){return arguments.length?(z=typeof Me=="function"?Me:i(+Me),ae):z},ae.context=function(Me){return arguments.length?(W=Me??null,ae):W},ae}function Se(){}function ze(w,z,W){w._context.bezierCurveTo((2*w._x0+w._x1)/3,(2*w._y0+w._y1)/3,(w._x0+2*w._x1)/3,(w._y0+2*w._y1)/3,(w._x0+4*w._x1+z)/6,(w._y0+4*w._y1+W)/6)}function tt(w){this._context=w}tt.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:ze(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(w,z){switch(w=+w,z=+z,this._point){case 0:this._point=1,this._line?this._context.lineTo(w,z):this._context.moveTo(w,z);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:ze(this,w,z);break}this._x0=this._x1,this._x1=w,this._y0=this._y1,this._y1=z}};function ct(w){return new tt(w)}function ht(w){this._context=w}ht.prototype={areaStart:Se,areaEnd:Se,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(w,z){switch(w=+w,z=+z,this._point){case 0:this._point=1,this._x2=w,this._y2=z;break;case 1:this._point=2,this._x3=w,this._y3=z;break;case 2:this._point=3,this._x4=w,this._y4=z,this._context.moveTo((this._x0+4*this._x1+w)/6,(this._y0+4*this._y1+z)/6);break;default:ze(this,w,z);break}this._x0=this._x1,this._x1=w,this._y0=this._y1,this._y1=z}};function wt(w){return new ht(w)}function bt(w){this._context=w}bt.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(w,z){switch(w=+w,z=+z,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var W=(this._x0+4*this._x1+w)/6,ae=(this._y0+4*this._y1+z)/6;this._line?this._context.lineTo(W,ae):this._context.moveTo(W,ae);break;case 3:this._point=4;default:ze(this,w,z);break}this._x0=this._x1,this._x1=w,this._y0=this._y1,this._y1=z}};function Rt(w){return new bt(w)}function Wt(w,z){this._basis=new tt(w),this._beta=z}Wt.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var w=this._x,z=this._y,W=w.length-1;if(W>0)for(var ae=w[0],Me=z[0],ue=w[W]-ae,Ye=z[W]-Me,xe=-1,Ge;++xe<=W;)Ge=xe/W,this._basis.point(this._beta*w[xe]+(1-this._beta)*(ae+Ge*ue),this._beta*z[xe]+(1-this._beta)*(Me+Ge*Ye));this._x=this._y=null,this._basis.lineEnd()},point:function(w,z){this._x.push(+w),this._y.push(+z)}};var ln=function w(z){function W(ae){return z===1?new tt(ae):new Wt(ae,z)}return W.beta=function(ae){return w(+ae)},W}(.85);function nn(w,z,W){w._context.bezierCurveTo(w._x1+w._k*(w._x2-w._x0),w._y1+w._k*(w._y2-w._y0),w._x2+w._k*(w._x1-z),w._y2+w._k*(w._y1-W),w._x2,w._y2)}function gn(w,z){this._context=w,this._k=(1-z)/6}gn.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:nn(this,this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(w,z){switch(w=+w,z=+z,this._point){case 0:this._point=1,this._line?this._context.lineTo(w,z):this._context.moveTo(w,z);break;case 1:this._point=2,this._x1=w,this._y1=z;break;case 2:this._point=3;default:nn(this,w,z);break}this._x0=this._x1,this._x1=this._x2,this._x2=w,this._y0=this._y1,this._y1=this._y2,this._y2=z}};var K=function w(z){function W(ae){return new gn(ae,z)}return W.tension=function(ae){return w(+ae)},W}(0);function Pe(w,z){this._context=w,this._k=(1-z)/6}Pe.prototype={areaStart:Se,areaEnd:Se,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},point:function(w,z){switch(w=+w,z=+z,this._point){case 0:this._point=1,this._x3=w,this._y3=z;break;case 1:this._point=2,this._context.moveTo(this._x4=w,this._y4=z);break;case 2:this._point=3,this._x5=w,this._y5=z;break;default:nn(this,w,z);break}this._x0=this._x1,this._x1=this._x2,this._x2=w,this._y0=this._y1,this._y1=this._y2,this._y2=z}};var F=function w(z){function W(ae){return new Pe(ae,z)}return W.tension=function(ae){return w(+ae)},W}(0);function $(w,z){this._context=w,this._k=(1-z)/6}$.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(w,z){switch(w=+w,z=+z,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:nn(this,w,z);break}this._x0=this._x1,this._x1=this._x2,this._x2=w,this._y0=this._y1,this._y1=this._y2,this._y2=z}};var N=function w(z){function W(ae){return new $(ae,z)}return W.tension=function(ae){return w(+ae)},W}(0);function L(w,z,W){var ae=w._x1,Me=w._y1,ue=w._x2,Ye=w._y2;if(w._l01_a>E){var xe=2*w._l01_2a+3*w._l01_a*w._l12_a+w._l12_2a,Ge=3*w._l01_a*(w._l01_a+w._l12_a);ae=(ae*xe-w._x0*w._l12_2a+w._x2*w._l01_2a)/Ge,Me=(Me*xe-w._y0*w._l12_2a+w._y2*w._l01_2a)/Ge}if(w._l23_a>E){var ot=2*w._l23_2a+3*w._l23_a*w._l12_a+w._l12_2a,rt=3*w._l23_a*(w._l23_a+w._l12_a);ue=(ue*ot+w._x1*w._l23_2a-z*w._l12_2a)/rt,Ye=(Ye*ot+w._y1*w._l23_2a-W*w._l12_2a)/rt}w._context.bezierCurveTo(ae,Me,ue,Ye,w._x2,w._y2)}function V(w,z){this._context=w,this._alpha=z}V.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(w,z){if(w=+w,z=+z,this._point){var W=this._x2-w,ae=this._y2-z;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(W*W+ae*ae,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(w,z):this._context.moveTo(w,z);break;case 1:this._point=2;break;case 2:this._point=3;default:L(this,w,z);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=w,this._y0=this._y1,this._y1=this._y2,this._y2=z}};var he=function w(z){function W(ae){return z?new V(ae,z):new gn(ae,0)}return W.alpha=function(ae){return w(+ae)},W}(.5);function _e(w,z){this._context=w,this._alpha=z}_e.prototype={areaStart:Se,areaEnd:Se,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},point:function(w,z){if(w=+w,z=+z,this._point){var W=this._x2-w,ae=this._y2-z;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(W*W+ae*ae,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=w,this._y3=z;break;case 1:this._point=2,this._context.moveTo(this._x4=w,this._y4=z);break;case 2:this._point=3,this._x5=w,this._y5=z;break;default:L(this,w,z);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=w,this._y0=this._y1,this._y1=this._y2,this._y2=z}};var Fe=function w(z){function W(ae){return z?new _e(ae,z):new Pe(ae,0)}return W.alpha=function(ae){return w(+ae)},W}(.5);function Ie(w,z){this._context=w,this._alpha=z}Ie.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(w,z){if(w=+w,z=+z,this._point){var W=this._x2-w,ae=this._y2-z;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(W*W+ae*ae,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:L(this,w,z);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=w,this._y0=this._y1,this._y1=this._y2,this._y2=z}};var $e=function w(z){function W(ae){return z?new Ie(ae,z):new $(ae,0)}return W.alpha=function(ae){return w(+ae)},W}(.5);function Ke(w){this._context=w}Ke.prototype={areaStart:Se,areaEnd:Se,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(w,z){w=+w,z=+z,this._point?this._context.lineTo(w,z):(this._point=1,this._context.moveTo(w,z))}};function et(w){return new Ke(w)}function vt(w){return w<0?-1:1}function Ot(w,z,W){var ae=w._x1-w._x0,Me=z-w._x1,ue=(w._y1-w._y0)/(ae||Me<0&&-0),Ye=(W-w._y1)/(Me||ae<0&&-0),xe=(ue*Me+Ye*ae)/(ae+Me);return(vt(ue)+vt(Ye))*Math.min(Math.abs(ue),Math.abs(Ye),.5*Math.abs(xe))||0}function Ct(w,z){var W=w._x1-w._x0;return W?(3*(w._y1-w._y0)/W-z)/2:z}function Nt(w,z,W){var ae=w._x0,Me=w._y0,ue=w._x1,Ye=w._y1,xe=(ue-ae)/3;w._context.bezierCurveTo(ae+xe,Me+xe*z,ue-xe,Ye-xe*W,ue,Ye)}function Jt(w){this._context=w}Jt.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:Nt(this,this._t0,Ct(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(w,z){var W=NaN;if(w=+w,z=+z,!(w===this._x1&&z===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(w,z):this._context.moveTo(w,z);break;case 1:this._point=2;break;case 2:this._point=3,Nt(this,Ct(this,W=Ot(this,w,z)),W);break;default:Nt(this,this._t0,W=Ot(this,w,z));break}this._x0=this._x1,this._x1=w,this._y0=this._y1,this._y1=z,this._t0=W}}};function An(w){this._context=new bn(w)}(An.prototype=Object.create(Jt.prototype)).point=function(w,z){Jt.prototype.point.call(this,z,w)};function bn(w){this._context=w}bn.prototype={moveTo:function(w,z){this._context.moveTo(z,w)},closePath:function(){this._context.closePath()},lineTo:function(w,z){this._context.lineTo(z,w)},bezierCurveTo:function(w,z,W,ae,Me,ue){this._context.bezierCurveTo(z,w,ae,W,ue,Me)}};function Ut(w){return new Jt(w)}function st(w){return new An(w)}function Tt(w){this._context=w}Tt.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var w=this._x,z=this._y,W=w.length;if(W)if(this._line?this._context.lineTo(w[0],z[0]):this._context.moveTo(w[0],z[0]),W===2)this._context.lineTo(w[1],z[1]);else for(var ae=rn(w),Me=rn(z),ue=0,Ye=1;Ye=0;--z)Me[z]=(Ye[z]-Me[z+1])/ue[z];for(ue[W-1]=(w[W]+Me[W-1])/2,z=0;z=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(w,z){switch(w=+w,z=+z,this._point){case 0:this._point=1,this._line?this._context.lineTo(w,z):this._context.moveTo(w,z);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,z),this._context.lineTo(w,z);else{var W=this._x*(1-this._t)+w*this._t;this._context.lineTo(W,this._y),this._context.lineTo(W,z)}break}}this._x=w,this._y=z}};function G(w){return new St(w,.5)}function se(w){return new St(w,0)}function qe(w){return new St(w,1)}function de(w,z){if((Ye=w.length)>1)for(var W=1,ae,Me,ue=w[z[0]],Ye,xe=ue.length;W=0;)W[z]=z;return W}function H(w,z){return w[z]}function be(){var w=i([]),z=_,W=de,ae=H;function Me(ue){var Ye=w.apply(this,arguments),xe,Ge=ue.length,ot=Ye.length,rt=new Array(ot),mt;for(xe=0;xe0){for(var W,ae,Me=0,ue=w[0].length,Ye;Me0)for(var W,ae=0,Me,ue,Ye,xe,Ge,ot=w[z[0]].length;ae0?(Me[0]=Ye,Me[1]=Ye+=ue):ue<0?(Me[1]=xe,Me[0]=xe+=ue):(Me[0]=0,Me[1]=ue)}function ft(w,z){if((Me=w.length)>0){for(var W=0,ae=w[z[0]],Me,ue=ae.length;W0)||!((ue=(Me=w[z[0]]).length)>0))){for(var W=0,ae=1,Me,ue,Ye;aeue&&(ue=Me,W=z);return W}function on(w){var z=w.map(In);return _(w).sort(function(W,ae){return z[W]-z[ae]})}function In(w){for(var z=0,W=-1,ae=w.length,Me;++W{(function(e,n){typeof Qf=="object"&&typeof Gx!="undefined"?n(Qf):typeof define=="function"&&define.amd?define(["exports"],n):(e=typeof globalThis!="undefined"?globalThis:e||self,n(e.d3=e.d3||{}))})(Qf,function(e){"use strict";function n(B,c){var g=Object.keys(B);if(Object.getOwnPropertySymbols){var x=Object.getOwnPropertySymbols(B);c&&(x=x.filter(function(P){return Object.getOwnPropertyDescriptor(B,P).enumerable})),g.push.apply(g,x)}return g}function i(B){for(var c=1;cB.length)&&(c=B.length);for(var g=0,x=new Array(c);g=B.length?{done:!0}:{done:!1,value:B[x++]}},e:function(D){throw D},f:P}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var b=!0,U=!1,y;return{s:function(){g=g.call(B)},n:function(){var D=g.next();return b=D.done,D},e:function(D){U=!0,y=D},f:function(){try{!b&&g.return!=null&&g.return()}finally{if(U)throw y}}}}function k(B,c){var g=[],x=[];function P(b,U){if(b.length===1)g.push(b[0]),x.push(b[0]);else{for(var y=Array(b.length-1),D=0;D=3&&(c.x1=B[1][0],c.y1=B[1][1]),c.x=B[B.length-1][0],c.y=B[B.length-1][1],B.length===4?c.type="C":B.length===3?c.type="Q":c.type="L",c}function E(B,c){c=c||2;for(var g=[],x=B,P=1/c,b=0;b0?Le-=1:Le0&&(Le-=1))}return D[Le]=(D[Le]||0)+1,D},[]),y=U.reduce(function(D,q,oe){if(oe===B.length-1){var Le=Ee(q,s({},B[B.length-1]));return Le[0].type==="M"&&Le.forEach(function(we){we.type="L"}),D.concat(Le)}return D.concat(I(B[oe],B[oe+1],q))},[]);return y.unshift(B[0]),y}function le(B){for(var c=(B||"").match(ie)||[],g=[],x,P,b=0;b0&&x[x.length-1].type==="Z"&&x.pop(),P.length>0&&P[P.length-1].type==="Z"&&P.pop(),x.length?P.length||P.push(x[0]):x.push(P[0]);var U=Math.abs(P.length-x.length);U!==0&&(P.length>x.length?x=Y(x,P,g):P.length{(function(e,n){typeof ec=="object"&&typeof Xx!="undefined"?n(ec):typeof define=="function"&&define.amd?define(["exports"],n):(e=e||self,n(e.d3=e.d3||{}))})(ec,function(e){"use strict";function n(c){var g=+this._x.call(null,c),x=+this._y.call(null,c);return i(this.cover(g,x),g,x,c)}function i(c,g,x,P){if(isNaN(g)||isNaN(x))return c;var b,U=c._root,y={data:P},D=c._x0,q=c._y0,oe=c._x1,Le=c._y1,we,re,We,ce,ke,Ce,me,Ue;if(!U)return c._root=y,c;for(;U.length;)if((ke=g>=(we=(D+oe)/2))?D=we:oe=we,(Ce=x>=(re=(q+Le)/2))?q=re:Le=re,b=U,!(U=U[me=Ce<<1|ke]))return b[me]=y,c;if(We=+c._x.call(null,U.data),ce=+c._y.call(null,U.data),g===We&&x===ce)return y.next=U,b?b[me]=y:c._root=y,c;do b=b?b[me]=new Array(4):c._root=new Array(4),(ke=g>=(we=(D+oe)/2))?D=we:oe=we,(Ce=x>=(re=(q+Le)/2))?q=re:Le=re;while((me=Ce<<1|ke)==(Ue=(ce>=re)<<1|We>=we));return b[Ue]=U,b[me]=y,c}function u(c){var g,x,P=c.length,b,U,y=new Array(P),D=new Array(P),q=1/0,oe=1/0,Le=-1/0,we=-1/0;for(x=0;xLe&&(Le=b),Uwe&&(we=U));if(q>Le||oe>we)return this;for(this.cover(q,oe).cover(Le,we),x=0;xc||c>=b||P>g||g>=U;)switch(oe=(gLe||(D=ce.y0)>we||(q=ce.x1)=me)<<1|c>=Ce)&&(ce=re[re.length-1],re[re.length-1]=re[re.length-1-ke],re[re.length-1-ke]=ce)}else{var Ue=c-+this._x.call(null,We.data),He=g-+this._y.call(null,We.data),Je=Ue*Ue+He*He;if(Je=(re=(y+q)/2))?y=re:q=re,(ke=we>=(We=(D+oe)/2))?D=We:oe=We,g=x,!(x=x[Ce=ke<<1|ce]))return this;if(!x.length)break;(g[Ce+1&3]||g[Ce+2&3]||g[Ce+3&3])&&(P=g,me=Ce)}for(;x.data!==c;)if(b=x,!(x=x.next))return this;return(U=x.next)&&delete x.next,b?(U?b.next=U:delete b.next,this):g?(U?g[Ce]=U:delete g[Ce],(x=g[0]||g[1]||g[2]||g[3])&&x===(g[3]||g[2]||g[1]||g[0])&&!x.length&&(P?P[me]=x:this._root=x),this):(this._root=U,this)}function E(c){for(var g=0,x=c.length;g{(function(e,n){typeof tc=="object"&&typeof Qx!="undefined"?n(tc,Kx(),Bp(),qf(),Gp()):typeof define=="function"&&define.amd?define(["exports","d3-quadtree","d3-collection","d3-dispatch","d3-timer"],n):n(e.d3=e.d3||{},e.d3,e.d3,e.d3,e.d3)})(tc,function(e,n,i,u,s){"use strict";function h(c,g){var x;c==null&&(c=0),g==null&&(g=0);function P(){var b,U=x.length,y,D=0,q=0;for(b=0;bwe.index){var fe=re-Oe.x-Oe.vx,De=We-Oe.y-Oe.vy,at=fe*fe+De*De;atre+ee||teWe+ee||geq.r&&(q.r=q[oe].r)}function D(){if(!!g){var q,oe=g.length,Le;for(x=new Array(oe),q=0;q1?(ke==null?D.remove(ce):D.set(ce,We(ke)),g):D.get(ce)},find:function(ce,ke,Ce){var me=0,Ue=c.length,He,Je,te,ge,Oe;for(Ce==null?Ce=1/0:Ce*=Ce,me=0;me1?(oe.on(ce,ke),g):oe.on(ce)}}}function le(){var c,g,x,P=d(-30),b,U=1,y=1/0,D=.81;function q(re){var We,ce=c.length,ke=n.quadtree(c,Ee,ne).visitAfter(Le);for(x=re,We=0;We=y)return;(re.data!==g||re.next)&&(Ce===0&&(Ce=v(),He+=Ce*Ce),me===0&&(me=v(),He+=me*me),He{(function(e,n){typeof nc=="object"&&typeof Jx!="undefined"?n(nc,qf(),Jo()):typeof define=="function"&&define.amd?define(["exports","d3-dispatch","d3-selection"],n):(e=e||self,n(e.d3=e.d3||{},e.d3,e.d3))})(nc,function(e,n,i){"use strict";function u(){i.event.stopImmediatePropagation()}function s(){i.event.preventDefault(),i.event.stopImmediatePropagation()}function h(Ee){var ne=Ee.document.documentElement,R=i.select(Ee).on("dragstart.drag",s,!0);"onselectstart"in ne?R.on("selectstart.drag",s,!0):(ne.__noselect=ne.style.MozUserSelect,ne.style.MozUserSelect="none")}function d(Ee,ne){var R=Ee.document.documentElement,I=i.select(Ee).on("dragstart.drag",null);ne&&(I.on("click.drag",s,!0),setTimeout(function(){I.on("click.drag",null)},0)),"onselectstart"in R?I.on("selectstart.drag",null):(R.style.MozUserSelect=R.__noselect,delete R.__noselect)}function v(Ee){return function(){return Ee}}function k(Ee,ne,R,I,Y,le,pe,Re,B,c){this.target=Ee,this.type=ne,this.subject=R,this.identifier=I,this.active=Y,this.x=le,this.y=pe,this.dx=Re,this.dy=B,this._=c}k.prototype.on=function(){var Ee=this._.on.apply(this._,arguments);return Ee===this._?this:Ee};function S(){return!i.event.ctrlKey&&!i.event.button}function E(){return this.parentNode}function O(Ee){return Ee??{x:i.event.x,y:i.event.y}}function ie(){return navigator.maxTouchPoints||"ontouchstart"in this}function ve(){var Ee=S,ne=E,R=O,I=ie,Y={},le=n.dispatch("start","drag","end"),pe=0,Re,B,c,g,x=0;function P(we){we.on("mousedown.drag",b).filter(I).on("touchstart.drag",D).on("touchmove.drag",q).on("touchend.drag touchcancel.drag",oe).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function b(){if(!(g||!Ee.apply(this,arguments))){var we=Le("mouse",ne.apply(this,arguments),i.mouse,this,arguments);!we||(i.select(i.event.view).on("mousemove.drag",U,!0).on("mouseup.drag",y,!0),h(i.event.view),u(),c=!1,Re=i.event.clientX,B=i.event.clientY,we("start"))}}function U(){if(s(),!c){var we=i.event.clientX-Re,re=i.event.clientY-B;c=we*we+re*re>x}Y.mouse("drag")}function y(){i.select(i.event.view).on("mousemove.drag mouseup.drag",null),d(i.event.view,c),s(),Y.mouse("end")}function D(){if(!!Ee.apply(this,arguments)){var we=i.event.changedTouches,re=ne.apply(this,arguments),We=we.length,ce,ke;for(ce=0;ce=0;E--){var O=u[E];O==="."?ip(u,E):O===".."?(ip(u,E),S++):S&&(ip(u,E),S--)}if(!d)for(;S--;S)u.unshift("..");d&&u[0]!==""&&(!u[0]||!vf(u[0]))&&u.unshift("");var ie=u.join("/");return v&&ie.substr(-1)!=="/"&&(ie+="/"),ie}var g1=sb;var fb=!0,op="Invariant failed";function ui(e,n){if(!e){if(fb)throw new Error(op);var i=typeof n=="function"?n():n,u=i?op+": "+i:op;throw new Error(u)}}function dl(e){return e.charAt(0)==="/"?e:"/"+e}function m1(e){return e.charAt(0)==="/"?e.substr(1):e}function cb(e,n){return e.toLowerCase().indexOf(n.toLowerCase())===0&&"/?#".indexOf(e.charAt(n.length))!==-1}function y1(e,n){return cb(e,n)?e.substr(n.length):e}function w1(e){return e.charAt(e.length-1)==="/"?e.slice(0,-1):e}function hb(e){var n=e||"/",i="",u="",s=n.indexOf("#");s!==-1&&(u=n.substr(s),n=n.substr(0,s));var h=n.indexOf("?");return h!==-1&&(i=n.substr(h),n=n.substr(0,h)),{pathname:n,search:i==="?"?"":i,hash:u==="#"?"":u}}function sr(e){var n=e.pathname,i=e.search,u=e.hash,s=n||"/";return i&&i!=="?"&&(s+=i.charAt(0)==="?"?i:"?"+i),u&&u!=="#"&&(s+=u.charAt(0)==="#"?u:"#"+u),s}function xr(e,n,i,u){var s;typeof e=="string"?(s=hb(e),s.state=n):(s=zn({},e),s.pathname===void 0&&(s.pathname=""),s.search?s.search.charAt(0)!=="?"&&(s.search="?"+s.search):s.search="",s.hash?s.hash.charAt(0)!=="#"&&(s.hash="#"+s.hash):s.hash="",n!==void 0&&s.state===void 0&&(s.state=n));try{s.pathname=decodeURI(s.pathname)}catch(h){throw h instanceof URIError?new URIError('Pathname "'+s.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):h}return i&&(s.key=i),u?s.pathname?s.pathname.charAt(0)!=="/"&&(s.pathname=g1(s.pathname,u.pathname)):s.pathname=u.pathname:s.pathname||(s.pathname="/"),s}function ap(){var e=null;function n(d){return e=d,function(){e===d&&(e=null)}}function i(d,v,k,S){if(e!=null){var E=typeof e=="function"?e(d,v):e;typeof E=="string"?typeof k=="function"?k(E,S):S(!0):S(E!==!1)}else S(!0)}var u=[];function s(d){var v=!0;function k(){v&&d.apply(void 0,arguments)}return u.push(k),function(){v=!1,u=u.filter(function(S){return S!==k})}}function h(){for(var d=arguments.length,v=new Array(d),k=0;kD?q.splice(D,q.length-D,b):q.push(b),E({action:P,location:b,index:D,entries:q})}})}function R(g,x){var P="REPLACE",b=xr(g,x,O(),c.location);S.confirmTransitionTo(b,P,i,function(U){!U||(c.entries[c.index]=b,E({action:P,location:b}))})}function I(g){var x=N1(c.index+g,0,c.entries.length-1),P="POP",b=c.entries[x];S.confirmTransitionTo(b,P,i,function(U){U?E({action:P,location:b,index:x}):E()})}function Y(){I(-1)}function le(){I(1)}function pe(g){var x=c.index+g;return x>=0&&x=0)&&(i[s]=e[s]);return i}var K1=jt(V1()),Q1=function(n){var i=O1();return i.displayName=n,i},qb=Q1("Router-History"),vo=Q1("Router"),Ya=function(e){Or(n,e),n.computeRootMatch=function(s){return{path:"/",url:"/",params:{},isExact:s==="/"}};function n(u){var s;return s=e.call(this,u)||this,s.state={location:u.history.location},s._isMounted=!1,s._pendingLocation=null,u.staticContext||(s.unlisten=u.history.listen(function(h){s._pendingLocation=h})),s}var i=n.prototype;return i.componentDidMount=function(){var s=this;this._isMounted=!0,this.unlisten&&this.unlisten(),this.props.staticContext||(this.unlisten=this.props.history.listen(function(h){s._isMounted&&s.setState({location:h})})),this._pendingLocation&&this.setState({location:this._pendingLocation})},i.componentWillUnmount=function(){this.unlisten&&(this.unlisten(),this._isMounted=!1,this._pendingLocation=null)},i.render=function(){return En.default.createElement(vo.Provider,{value:{history:this.props.history,location:this.state.location,match:n.computeRootMatch(this.state.location.pathname),staticContext:this.props.staticContext}},En.default.createElement(qb.Provider,{children:this.props.children||null,value:this.props.history}))},n}(En.default.Component),Gb=function(e){Or(n,e);function n(){for(var u,s=arguments.length,h=new Array(s),d=0;d{fetch("https://github.com/api/readme").then(u=>u.text()).then(u=>{n((0,iw.default)(u.replace(/\[\/\/\](.*?)\(__repo__\)[\S\s]*/,"")))}).catch(console.error)},[]),(0,zi.useEffect)(()=>{[...i.current.querySelectorAll("a")].forEach(u=>u.setAttribute("target","_blank"))},[e]),zi.default.createElement("div",{ref:i,className:"document",dangerouslySetInnerHTML:{__html:e}})}var ow=rC;var Mt=jt(wn());var yl=jt(wn());function Ga({checked:e,onChange:n}){return yl.default.createElement("div",{className:"checkbox",onClick:n},yl.default.createElement("svg",{width:9,height:9,viewBox:"0 0 80 80"},e&&yl.default.createElement("path",{d:"M14 30L0 44 37 76 80 11 65 0 34 50z"})),yl.default.createElement("input",{hidden:!0,"aria-hidden":"false",type:"checkbox",checked:e,onChange:n}))}var Nf=jt(wn());function iC(){return Nf.default.createElement("span",{title:"locked"},Nf.default.createElement("svg",{className:"lock",width:"10",height:"10",viewBox:"0 0 20 20"},Nf.default.createElement("path",{fill:"#07A",d:"m3,9h1V6a5,5 0 0,1 12,0V9h1v11H3M14,9V6a4,4 0 1,0-8,0v3"})))}var Ep=iC;var aw=jt(wn());function oC(){return aw.default.createElement("span",{className:"star",title:"starred"},"\u2605")}var Np=oC;var Kr=jt(wn()),gw=jt(wl()),Z2=jt(vw());function Op({value:e="",onChange:n,onSave:i,children:u,readOnly:s}){let h=(0,Kr.useRef)(),d=(0,Kr.useRef)(),v=(0,Kr.useRef)();return(0,Kr.useEffect)(()=>{let k=(0,gw.default)(h.current,{value:e,mode:"jsx",theme:"mdn-like",autofocus:!0,lineWrapping:!0,inputStyle:"contenteditable",lineNumbers:!0,gutters:["CodeMirror-linenumbers","breakpoints"]});d.current=e,v.current=k},[]),(0,Kr.useEffect)(()=>{function k(S,[{origin:E}]){let O=v.current.getValue();E!=="setValue"&&n(O),d.current=O}return v.current.on("changes",k),()=>{v.current.off("changes",k)}},[n]),(0,Kr.useEffect)(()=>{v.current.setOption("extraKeys",{"Ctrl-S":i})},[i]),(0,Kr.useEffect)(()=>{v.current.setOption("readOnly",s)},[s]),(0,Kr.useEffect)(()=>{d.current!==e&&v.current.setValue(e)},[e]),Kr.default.createElement("div",{ref:h,className:"cmd-editor"},u)}var $a=jt(wn());var Qo=jt(wn());function aC({commands:e}){let n=(0,Qo.useRef)(),[{height:i},u]=(0,Qo.useState)({}),[s,h]=(0,Qo.useState)(0),{length:d}=e,v=20,k=d*v;return(0,Qo.useEffect)(()=>{let S=()=>u(n.current.getBoundingClientRect());S(),window.addEventListener("resize",S);let E=O=>h(O.target.scrollTop);return n.current.addEventListener("scroll",E),()=>{window.removeEventListener("resize",S),n.current.removeEventListener("scroll",E)}},[]),$a.default.createElement("div",{className:"cmd-list",ref:n},$a.default.createElement("div",{style:{height:k}},e.map((S,E)=>{let O=E*v,ie=O+v>s,ve=O-v{let s=localStorage.getItem(e);return s?JSON.parse(s):n});return(0,Pf.useEffect)(()=>{localStorage.setItem(e,JSON.stringify(i))},[i]),[i,u]}function Zo(){let[e,n]=yw("password",""),[i,u]=yw("admin",!1);return{fetchAPI:(h,d={})=>new Promise((v,k)=>{let S={...d,headers:{"X-Authorization":`Basic ${btoa(`web:${e}`)}`,"Content-Type":"application/json"},body:d.body&&JSON.stringify(d.body)};fetch(`/api/${h}`,S).then(E=>E.json()).then(v).catch(k)}),password:e,setPassword:n,admin:i,setAdmin:u}}function Ap(){let{fetchAPI:e,password:n,setPassword:i,admin:u,setAdmin:s}=Zo();return(0,go.useEffect)(()=>{e("is-admin").then(s).catch(console.error)},[n]),go.default.createElement("div",{className:"cmd-default"},go.default.createElement("input",{type:"password",placeholder:"admin pwd",value:n,className:u?"admin":"error",onChange:h=>i(h.target.value)}),go.default.createElement("p",null,"an interface for manipulating commands"),go.default.createElement("p",null,"alternatively, try the"," ",go.default.createElement("a",{href:"https://www.github.com/kirjavascript/nibblrjr.vim",target:"_blank"},"vim plugin")))}var Tw=jt(xw()),Sw=jt(kw());function Dp({command:e}){return Mt.default.createElement(Mt.default.Fragment,null,e.name," ",e.starred&&Mt.default.createElement(Np,null)," ",e.locked&&Mt.default.createElement(Ep,null),e.event&&Mt.default.createElement("span",{className:"event"}," (event)"))}function lC({history:e}){let[n,i]=(0,Mt.useState)([]),[u,s]=(0,Mt.useState)(""),[h,d]=(0,Mt.useState)(!1),[v,k]=(0,Mt.useState)(!1),[S,E]=(0,Mt.useState)(""),{fetchAPI:O,admin:ie}=Zo(),ve=(0,Mt.useCallback)(()=>{O("command/list").then(i).catch(console.error)},[]);(0,Mt.useEffect)(ve,[]);let Ee;try{Ee=new RegExp(u)}catch{}let ne=n.filter(g=>(g.starred&&h||!h)&&(g.locked&&v||!v)),R=ne.filter(g=>!u||g.name.match(Ee)),I=n.some(g=>g.name===S),{root:Y}=(0,Sw.parseCommand)({text:S}),le=n.find(g=>g.name===Y),pe=le&&le.locked,B=!Tw.default.includes(S)&&!I&&(!pe||ie),c=(0,Mt.useCallback)(g=>{if(g.keyCode===13&&B){let x=encodeURIComponent(S);O(`command/new/${x}`,{method:"POST"}).then(()=>{E(""),ve(),e.push(`/cmds/${x}`)}).catch(console.error)}},[S]);return Mt.default.createElement(Mt.default.Fragment,null,Mt.default.createElement("div",{className:"cmd-menu"},Mt.default.createElement("div",null,Mt.default.createElement("input",{type:"text",placeholder:"new command",className:!B&&S?"invalid":"",value:S,onChange:g=>E(g.target.value.replace(/\s+/g,"")),onKeyDown:c}),Mt.default.createElement("input",{type:"text",placeholder:"search commands (regex)",value:u,onChange:g=>{s(g.target.value)}}),Mt.default.createElement("div",{className:"cmd-filter"},Mt.default.createElement("span",null," ",R.length," / ",ne.length," "),Mt.default.createElement("div",{className:"cmd-toggle"},Mt.default.createElement(Np,null),Mt.default.createElement(Ga,{checked:h,onChange:()=>d(!h)}),Mt.default.createElement(Ep,null),Mt.default.createElement(Ga,{checked:v,onChange:()=>k(!v)})))),Mt.default.createElement(mw,{commands:R})),Mt.default.createElement(Fi,{exact:!0,path:"/cmds/:name",render:g=>Mt.default.createElement(sC,{updateList:ve,...g})}),Mt.default.createElement(Fi,{exact:!0,path:"/cmds",component:Ap}))}var bw="/* loading ... */";function sC({updateList:e,history:n,match:{params:i}}){let{fetchAPI:u,admin:s}=Zo(),[h,d]=(0,Mt.useState)({command:bw}),[v,k]=(0,Mt.useState)(bw),[S,E]=(0,Mt.useState)(!1),[O,ie]=(0,Mt.useState)("delete");function ve(){u("command/get/"+i.name).then(g=>{d(g),k(g.command)}).catch(console.error),ie("delete")}(0,Mt.useEffect)(ve,[i.name]);let Ee=g=>{let x={method:"POST",body:{[g]:!h[g]}};u("command/set-config/"+i.name,x).then(P=>{P.error||(ve(),e())}).catch(console.error)},ne=()=>{E(!0);let g={method:"POST",body:{command:h.command}};u("command/set/"+i.name,g).then(x=>{x.error?alert(x.error):k(h.command),E(!1)}).catch(console.error)},R=()=>{O!=="confirm?"?ie("confirm?"):u("command/delete/"+i.name,{method:"POST"}).then(g=>{g.error?ie(g.error):(e(),n.push("/cmds"))}).catch(console.error)},I=h.error?`/* error: ${h.error} */`:h.command,{locked:Y,starred:le,event:pe}=h,Re=S?"saving":h.command===v?"saved":"save",B=s,c=h.locked&&!B;return Mt.default.createElement(Op,{value:I,readOnly:c,onSave:ne,onChange:g=>{d({...h,command:g})}},Mt.default.createElement("div",{className:"cmd-options"},Mt.default.createElement("span",{className:"cmd-name"},Mt.default.createElement(Dp,{command:h})),!!h.name&&Mt.default.createElement("div",null,!c&&Mt.default.createElement(Mt.default.Fragment,null,Mt.default.createElement("button",{type:"button",onClick:ne},Re),B&&Mt.default.createElement(Mt.default.Fragment,null,Mt.default.createElement("button",{type:"button",onClick:()=>{Ee("locked")}},Y?"unlock":"lock"),Mt.default.createElement("button",{type:"button",onClick:()=>{Ee("starred")}},le?"unstar":"star"),Mt.default.createElement("button",{type:"button",onClick:()=>{Ee("event")}},pe?"unevent":"as event")),Mt.default.createElement("button",{type:"button",onClick:R},O)))))}var Cw=lC;var tn=jt(wn());var _r=jt(wn());var Va=jt(wn());function xl({items:e,...n}){return Va.default.createElement("div",{className:"select"},Va.default.createElement("select",{...n},e.map(({label:i,value:u})=>Va.default.createElement("option",{value:u,key:u},i))),Va.default.createElement("svg",{className:"arrow",width:"12",height:"12",viewBox:"0 0 100 50"},Va.default.createElement("path",{d:"M0,0H100L50,50z"})))}var Up=jt(px()),_x=jt(xx());function NM({onMonth:e,onChange:n,base:i,history:u,location:s}){let h=(0,_r.useMemo)(()=>s.pathname.split("/"),[]),[d,v]=(0,_r.useState)(h[2]||""),[k,S]=(0,_r.useState)(decodeURIComponent(h[3]||"")),[E,O]=(0,_r.useState)(h[4]||"");(0,_r.useEffect)(()=>{u.replace(["/stats",d||k||E?"/":"",d,k||E?"/":"",encodeURIComponent(k),E?"/":"",E].join("")),n({server:d,channel:k,month:E})},[d,k,E]),(0,_r.useEffect)(()=>{e({server:d,channel:k,month:E})},[E]);let ie=i.servers.map(({server:ne})=>({label:ne,value:ne})),ve=i.servers.reduce((ne,R)=>((d===""||R.server===d)&&ne.push(...R.channels.map(I=>({label:I,value:I}))),ne),[]).filter((ne,R,I)=>I.findIndex(Y=>Y.value==ne.value)===R),Ee=Array.from({length:12},(ne,R)=>{let I=(0,_x.default)(new Date,R+1);return{label:(0,Up.default)(I,"MMMM YYYY").toLowerCase(),value:(0,Up.default)(I,"YYYY-MM")}});return(0,_r.useEffect)(()=>{(d||k||E)&&s.pathname==="/stats"&&(v(""),S(""),O(""))},[s.pathname]),_r.default.createElement("div",{className:"stats-filter"},_r.default.createElement(xl,{value:d,items:[{label:"servers",value:""},...ie],onChange:ne=>{v(ne.target.value),ne.target.value&&S("")}}),_r.default.createElement(xl,{value:k,items:[{label:"channels",value:""},...ve],onChange:ne=>S(ne.target.value)}),_r.default.createElement(xl,{value:E,items:[{label:"this month",value:""},...Ee],onChange:ne=>O(ne.target.value)}))}var kx=NM;var mo=jt(wn()),_l=Object.assign({},Jo(),Yp(),qp(),$p());function Vp({x:e,y:n,width:i,height:u,radius:s=3}){return s>u&&(s=u),i{s.current||(s.current=new Hx(u.current)),s.current.data(e,n).render(!0)},[e]),(0,mo.useEffect)(()=>()=>s.current.destroy(),[]),mo.default.createElement("div",{ref:u,...i})}var Hx=class{config={margin:{top:5,right:20,bottom:40,left:60},height:400,data:void 0,accessor:n=>n.label};get dimensions(){let{top:n,right:i,bottom:u,left:s}=this.config.margin;return{width:this.outerWidth-s-i,height:this.config.height-n-u,top:n,right:i,bottom:u,left:s}}container;svg;main;contents;xAxisG;yAxisG;outerWidth;constructor(n){this.container=_l.select(n),this.container.selectAll("*").remove(),this.svg=this.container.append("svg"),this.main=this.svg.append("g"),this.contents=this.main.append("g"),this.xAxisG=this.main.append("g").attr("transform",`translate(0, ${this.dimensions.height})`).attr("class","axis x"),this.yAxisG=this.main.append("g").attr("class","axis y"),window.addEventListener("resize",this.resize)}destroy=()=>{window.removeEventListener("resize",this.resize),this.container.selectAll("*").remove()};data=(n,i)=>(this.config.data=n,this.config.accessor=i,this);resize=()=>{this.render()};render=(n=!1)=>{this.outerWidth=this.container.node().getBoundingClientRect().width;let{width:i,height:u,top:s,right:h,bottom:d,left:v}=this.dimensions,k=I=>n?I.transition():I;this.svg.attr("width",i+v+h).attr("height",u+s+d),this.main.attr("transform",`translate(${[v,s]})`);let S=this.config.data.reduce((I,Y)=>Math.max(I,Y.count),0),E=_l.scaleLinear().domain([0,S]).range([u,0]),O=_l.scaleBand().paddingInner(1/3).paddingOuter(1/6).rangeRound([0,i]).domain(this.config.data.map(this.config.accessor)),ie=_l.axisBottom(O).tickSize(10);k(this.xAxisG).attr("transform",`translate(0,${u})`).call(ie).selectAll("text").style("text-anchor","end").attr("dx","-.8em").attr("dy",".55em").attr("transform","rotate(-14)");let ve=_l.axisLeft(E).tickSize(10).ticks(12);k(this.yAxisG).call(ve);let Ee=this.contents.selectAll(".bar").data(this.config.data,this.config.accessor);Ee.exit().attr("opacity",1).transition().attr("opacity",0).attr("d",$p({x:O.bandwidth(),width:O.bandwidth(),height:0,y:u})).remove();let R=Ee.enter().append("path").classed("bar",1).attr("d",I=>$p({x:O(this.config.accessor(I)),width:O.bandwidth(),height:0,y:u})).merge(Ee);k(R).attr("d",I=>$p({x:O(this.config.accessor(I)),width:O.bandwidth(),height:Math.abs(E(I.count)-E(0)),y:E(Math.max(0,I.count))}))}};var yo=qt(Tn()),wo=Object.assign({},Jo(),jp(),Yp(),jx(),Gp(),qx());function Qf({items:e=[],accessor:n,...i}){let u=(0,yo.useRef)(),s=(0,yo.useRef)();return(0,yo.useEffect)(()=>{s.current||(s.current=new Gx(u.current,i)),s.current.data(e,n).render(!0)},[e]),(0,yo.useEffect)(()=>()=>s.current.destroy(),[]),yo.default.createElement("div",{ref:u})}var Gx=class{config={margin:{top:5,right:20,bottom:40,left:60},height:400,data:void 0,accessor:n=>n.label,tickFormatX:void 0};get dimensions(){let{top:n,right:i,bottom:u,left:s}=this.config.margin;return{width:this.outerWidth-s-i,height:this.config.height-n-u,top:n,right:i,bottom:u,left:s}}container;svg;main;contents;xAxisG;yAxisG;outerWidth;constructor(n,i={}){this.container=wo.select(n),this.container.selectAll("*").remove(),Object.assign(this.config,i),this.svg=this.container.append("svg"),this.main=this.svg.append("g"),this.contents=this.main.append("g"),this.xAxisG=this.main.append("g").attr("transform",`translate(0, ${this.dimensions.height})`).attr("class","axis x"),this.yAxisG=this.main.append("g").attr("class","axis y"),window.addEventListener("resize",this.resize)}destroy=()=>{window.removeEventListener("resize",this.resize),this.container.selectAll("*").remove()};data=(n,i)=>(this.config.data=n,this.config.accessor=i,this);resize=()=>{this.render()};render=(n=!1)=>{this.outerWidth=this.container.node().getBoundingClientRect().width;let{width:i,height:u,top:s,right:h,bottom:d,left:v}=this.dimensions,k=I=>n?I.transition():I;this.svg.attr("width",i+v+h).attr("height",u+s+d),this.main.attr("transform",`translate(${[v,s]})`);let S=this.config.data.reduce((I,Y)=>Math.max(I,Y.count),0),E=wo.scaleLinear().domain([0,S]).range([u,0]),O=wo.scalePoint().domain(this.config.data.map(this.config.accessor)).rangeRound([0,i]),ie=wo.axisBottom(O).tickSize(10).tickFormat(this.config.tickFormatX);k(this.xAxisG).attr("transform",`translate(0,${u})`).call(ie).selectAll("text").attr("dy","1em");let ve=wo.axisLeft(E).tickSize(10).ticks(12);k(this.yAxisG).call(ve);let Ee=wo.line().x(I=>O(this.config.accessor(I))).y(I=>E(I.count)),ne=this.contents.selectAll(".line").data([this.config.data]),R=ne.enter().append("path").attr("class","line").merge(ne);n?R.transition().attrTween("d",function(I){let Y=wo.select(this).attr("d");return wo.interpolatePath(Y,Ee(I))}):R.attr("d",Ee)}};var kr=qt(Tn());var Xa=qt(If()),Xp=qt(Ff()),MM=(0,Xp.interpolateCubehelixLong)((0,Xa.cubehelix)(-100,.75,.35),(0,Xa.cubehelix)(80,1.5,.8)),EM=(0,Xp.interpolateCubehelixLong)((0,Xa.cubehelix)(260,.75,.35),(0,Xa.cubehelix)(80,1.5,.8)),Zf=(0,Xa.cubehelix)();function Kp(e){(e<0||e>1)&&(e-=Math.floor(e));var n=Math.abs(e-.5);return Zf.h=360*e-100,Zf.s=1.5-1.5*n,Zf.l=.8-.9*n,Zf+""}function NM(e){let[n,i]=[...e].reduce(([u,s],h)=>{let d=(u+h.charCodeAt())%65521;return[d,(s+d)%65521]},[1,0]);return i<<16|n}function Qp(e){return Kp(NM(e)/32640)}var xn=Object.assign({},Jo(),Kx(),Zx());Object.defineProperty(xn,"event",{get:()=>Jo().event});function Zp({items:e=[]}){let n=(0,kr.useRef)(),i=(0,kr.useRef)(),[u,s]=(0,kr.useState)(!1);return(0,kr.useEffect)(()=>{let h=e.reduce((k,[S,E]=[])=>(E.forEach(({user:O,count:ie},ve)=>{k[O]={count:ie,index:ve}}),k),{}),d=[];e.forEach(([k,S,E])=>{Object.entries(E).forEach(([O,ie])=>{Object.entries(ie).forEach(([ve,Ee])=>{d.push({source:O,target:ve,count:Ee,server:k,activity:h[O]})})})});let v=d.map(k=>[k.source,k.server]).concat(d.map(k=>[k.target,k.server])).map(([k,S])=>[`${k}-${S}`,k,S]).filter((k,S,E)=>E.findIndex(O=>O[0]===k[0])===S).map(([k,S,E])=>({id:k,name:S,server:E,activity:h[S]}));d.forEach(k=>{k.source=k.source+"-"+k.server,k.target=k.target+"-"+k.server}),v.forEach(k=>{let S=E=>d.filter(O=>O[E]===k.id).length;k.activity&&(k.activity.from=S("target"),k.activity.to=S("source"))}),i.current||(i.current=new Jx(n.current)),i.current.data(d,v)},[e]),(0,kr.useEffect)(()=>{i.current.orbit(u),i.current.render()},[u]),(0,kr.useEffect)(()=>()=>i.current.destroy(),[]),kr.default.createElement(kr.default.Fragment,null,kr.default.createElement("div",{className:"canvas",ref:n}),kr.default.createElement("div",{className:"hud"},"orbiters",kr.default.createElement(Ga,{checked:u,onChange:()=>s(!u)})))}var Jx=class{config={orbit:!1};constructor(n){this.container=xn.select(n),this.container.selectAll("*").remove(),this.canvas=this.container.append("canvas"),window.addEventListener("resize",this.resize),this.ctx=this.canvas.node().getContext("2d"),this.simulation=xn.forceSimulation().on("tick",this.render),this.setSize();let{width:i,height:u}=this;this.canvas.attr("width",i).attr("height",u).call(xn.drag().container(this.canvas.node()).subject(()=>this.simulation.find(xn.event.x,xn.event.y)).on("start",()=>{xn.event.active||this.simulation.alphaTarget(.3).restart(),xn.event.subject.fx=xn.event.subject.x,xn.event.subject.fy=xn.event.subject.y}).on("drag",()=>{xn.event.subject.fx=xn.event.x,xn.event.subject.fy=xn.event.y}).on("end",()=>{xn.event.active||this.simulation.alphaTarget(0),xn.event.subject.fx=null,xn.event.subject.fy=null})),this.container.style("position","relative"),this.popup=this.container.append("div").classed("popup",!0)}destroy=()=>{this.simulation.stop(),window.removeEventListener("resize",this.resize),this.container.selectAll("*").remove()};setSize=()=>{this.width=this.container.node().getBoundingClientRect().width,this.height=800;let{width:n,height:i}=this;Object.assign(this.canvas.node(),{width:n,height:i}),this.setOrbitCharge(),this.simulation.force("center",xn.forceCenter(n/2,i/2))};setOrbitCharge=()=>{let n=this.width<650;this.simulation.force("x",xn.forceX().strength(n?.2:.1)).force("y",xn.forceY().strength(n?.1:.2)).force("charge",xn.forceManyBody().strength(()=>-(this.width/(this.config.orbit?3:7))))};orbit=n=>{this.config.orbit=n,this.setOrbitCharge(),this.simulation.alphaTarget(.1).restart()};data=(n,i)=>{Object.assign(this.config,{links:n,nodes:i}),this.simulation.nodes(i).force("link",xn.forceLink(n).id(s=>s.id)).alphaTarget(.1).restart();let u;return this.focusedNode=void 0,this.canvas.on("mousemove",()=>{let[s,h]=xn.mouse(this.canvas.node()),d=this.simulation.find(s,h);d&&u!==d.id&&(u=d.id,i.forEach(v=>{v.focused=v.id===u}),n.forEach(v=>{v.from=v.source.id===u,v.to=v.target.id===u}),this.focusedNode=d),this.render()}),this};resize=()=>{this.setSize(),this.simulation.alphaTarget(.1).restart(),this.render()};render=()=>{let{width:n,height:i,ctx:u}=this,{links:s=[],nodes:h=[],orbit:d}=this.config,v=d?h:h.filter(({activity:S})=>!!S),k=d?s:s.filter(({activity:S})=>!!S);if(this.focusedNode&&this.focusedNode.activity){let{x:S,y:E,name:O,server:ie,activity:{count:ve,index:Ee,to:ne,from:R}}=this.focusedNode;this.popup.classed("visible",!0).style("left",`${S+5}px`).style("top",`${E-18}px`).selectAll("div").data([["name",[O,ie]],["stat rank",["rank",Ee+1]],["stat msgs",["msgs",ve]],["stat sent",["sent",ne]],["stat recv",["recv",R]]]).join("div").attr("class",([I])=>I).selectAll("span").data(([I,Y])=>Y).join("span").text(I=>I)}else this.popup.classed("visible",!1);u.clearRect(0,0,n,i),u.beginPath(),k.forEach(S=>{!S.to&&!S.from&&(u.moveTo(S.source.x,S.source.y),u.lineTo(S.target.x,S.target.y))}),u.strokeStyle="rgba(0, 255, 255, 0.2)",u.stroke(),u.beginPath(),u.strokeStyle="rgba(235, 51, 110, 0.8)",k.forEach(S=>{S.from&&(u.moveTo(S.source.x,S.source.y),u.quadraticCurveTo(S.source.x-10,S.target.y+10,S.target.x,S.target.y))}),u.stroke(),u.beginPath(),u.strokeStyle="rgba(0, 255, 255, 1)",k.forEach(S=>{S.to&&(u.moveTo(S.source.x,S.source.y),u.quadraticCurveTo(S.target.x+10,S.source.y-10,S.target.x,S.target.y))}),u.stroke(),u.beginPath(),v.forEach(S=>{let E=S.focused?8:6;u.moveTo(S.x+E,S.y),u.arc(S.x,S.y,E,0,2*Math.PI)}),u.fillStyle="limegreen",u.fill(),u.fillStyle="black",u.font="12px Hack",v.forEach(S=>{(!S.focused||!S.activity)&&u.fillText(S.name,S.x,S.y)})}};var qn=qt(Tn());function e_(e){return e==1?"once":e==2?"twice":`${e} times`}function PM(e,n){return e+(n>1?"s":"")}function Ka({items:e}){return e.map(n=>qn.default.createElement("span",{key:n.user,className:"name",style:{color:Qp(n.user)}},n.user)).reduce((n,i,u,s)=>[n,u==s.length-1?(u-1?",":"")+" and ":", ",i])}function LM({stats:e}){let{shouting:n=[],questions:i=[],kicks:u=[],kicked:s=[],avgLineLengthLow:h=[],avgLineLengthHigh:d=[]}=e;return qn.default.createElement("div",{className:"factoids"},!!n.length&&qn.default.createElement("p",{className:"factoid"},qn.default.createElement(Ka,{items:n})," shouted in ",qn.default.createElement("span",{className:"fact-type"},"ALL CAPS")," "+e_(n[0].count)),!!i.length&&qn.default.createElement("p",{className:"factoid"},qn.default.createElement(Ka,{items:i})," asked "+i[0].count+" ",qn.default.createElement("span",{className:"fact-type"},PM("question",i[0].count))),!!u.length&&qn.default.createElement("p",{className:"factoid"},qn.default.createElement(Ka,{items:u}),qn.default.createElement("span",{className:"fact-type"}," kicked "),u[0].count+" ",u[0].count>1?" people":" person"),!!s.length&&qn.default.createElement("p",{className:"factoid"},qn.default.createElement(Ka,{items:s}),qn.default.createElement("span",{className:"fact-type"}," got kicked "),e_(s[0].count)),!!d.length&&qn.default.createElement("p",{className:"factoid"},"for ",qn.default.createElement("span",{className:"fact-type"}," average line length "),qn.default.createElement(Ka,{items:d})," had "+(0|d[0].average)+" and ",qn.default.createElement(Ka,{items:h})," had "+(0|h[0].average)))}var t_=LM;function OM({history:e,location:n}){let{fetchAPI:i}=Zo(),[u,s]=(0,tn.useState)({servers:[]}),[h,d]=(0,tn.useState)({}),[v,k]=(0,tn.useState)(!1);return tn.default.createElement(tn.default.Fragment,null,tn.default.createElement(xx,{history:e,location:n,base:u,ready:v,onChange:({month:S,server:E,channel:O})=>{let ie=setTimeout(()=>k(!1),150);i("stats/all",{body:{month:S,server:E,channel:O},method:"POST"}).then(ve=>{d(ve),clearTimeout(ie),k(!0)}).catch(console.error)},onMonth:({month:S})=>{i("stats/base",{body:{month:S},method:"POST"}).then(s).catch(console.error)}}),tn.default.createElement("div",{className:`stats-container${v?"":" loading"}`},tn.default.createElement("div",{className:"stats"},tn.default.createElement("div",{className:"row"},tn.default.createElement("div",{className:"base"},tn.default.createElement("span",null,"updated hourly"),tn.default.createElement("div",{className:"uptime"},tn.default.createElement("h4",null,"uptime"," "),tn.default.createElement("span",null,u.uptime||"0","h"))),tn.default.createElement("div",{className:"command-chart"},tn.default.createElement("h3",{className:"title"},"most used commands"),tn.default.createElement(Vp,{items:h.commands,accessor:S=>S.command}))),tn.default.createElement("div",{className:"row"},tn.default.createElement("div",{className:"half"},tn.default.createElement("h3",{className:"title"},"activity / days"),tn.default.createElement(Qf,{items:h.activityDays,accessor:S=>S.day,tickFormatX:S=>+S.slice(8)})),tn.default.createElement("div",{className:"half"},tn.default.createElement("h3",{className:"title"},"activity / hours"),tn.default.createElement(Qf,{items:h.activityHours,accessor:S=>S.hour}))),tn.default.createElement(t_,{stats:h})),tn.default.createElement("div",{className:"stats-forcesim"},tn.default.createElement("h4",null," network graph "),tn.default.createElement("span",null,"tracking who talks to popular users"),tn.default.createElement("div",{className:"sim"},tn.default.createElement(Zp,{items:h.links})))))}var n_=OM;var Qa=qt(Tn()),r_=qt(Cp());function DM(){let[e,n]=(0,Qa.useState)("");return(0,Qa.useEffect)(()=>{fetch("https://github.com/api/docs").then(i=>i.text()).then(i=>{n((0,r_.default)(i.split("(__docs__)").pop())),window.location.hash.length&&window.location.replace(window.location.hash)}).catch(console.error)},[]),Qa.default.createElement("div",{className:"document",dangerouslySetInnerHTML:{__html:e}})}var i_=DM;var AM=xp(({location:e})=>{let n=e.pathname.split("/")[1];return fr.default.createElement(fr.default.Fragment,null,fr.default.createElement("div",{className:"menu"},fr.default.createElement("h1",null,"nibblr",fr.default.createElement("span",{className:"jr"},"jr")),["cmds","docs","stats"].map(i=>fr.default.createElement(ml,{className:n===i?"active":"",key:i,to:"/"+i},i)),fr.default.createElement("a",{target:"_blank",rel:"noopener",href:"https://www.github.com/kirjavascript/nibblrjr"},"src^")),fr.default.createElement("main",{className:`main-${n}`},fr.default.createElement(Fi,{exact:!0,path:"/",component:iw}),fr.default.createElement(Fi,{path:"/cmds",component:Sw}),fr.default.createElement(Fi,{path:"/stats",component:n_}),fr.default.createElement(Fi,{exact:!0,path:"/docs",component:i_})),fr.default.createElement("img",{src:"/nibblr.gif",className:"nibblr"}))});(0,o_.render)(fr.default.createElement(tw,null,fr.default.createElement(AM,null)),document.body.appendChild(document.createElement("div"))); + `.replace(/\s\s+/g," ")}function Xp({items:e=[],accessor:n,...i}){let u=(0,mo.useRef)(),s=(0,mo.useRef)();return(0,mo.useEffect)(()=>{s.current||(s.current=new Ux(u.current)),s.current.data(e,n).render(!0)},[e]),(0,mo.useEffect)(()=>()=>s.current.destroy(),[]),mo.default.createElement("div",{ref:u,...i})}var Ux=class{config={margin:{top:5,right:20,bottom:40,left:60},height:400,data:void 0,accessor:n=>n.label};get dimensions(){let{top:n,right:i,bottom:u,left:s}=this.config.margin;return{width:this.outerWidth-s-i,height:this.config.height-n-u,top:n,right:i,bottom:u,left:s}}container;svg;main;contents;xAxisG;yAxisG;outerWidth;constructor(n){this.container=_l.select(n),this.container.selectAll("*").remove(),this.svg=this.container.append("svg"),this.main=this.svg.append("g"),this.contents=this.main.append("g"),this.xAxisG=this.main.append("g").attr("transform",`translate(0, ${this.dimensions.height})`).attr("class","axis x"),this.yAxisG=this.main.append("g").attr("class","axis y"),window.addEventListener("resize",this.resize)}destroy=()=>{window.removeEventListener("resize",this.resize),this.container.selectAll("*").remove()};data=(n,i)=>(this.config.data=n,this.config.accessor=i,this);resize=()=>{this.render()};render=(n=!1)=>{this.outerWidth=this.container.node().getBoundingClientRect().width;let{width:i,height:u,top:s,right:h,bottom:d,left:v}=this.dimensions,k=I=>n?I.transition():I;this.svg.attr("width",i+v+h).attr("height",u+s+d),this.main.attr("transform",`translate(${[v,s]})`);let S=this.config.data.reduce((I,Y)=>Math.max(I,Y.count),0),E=_l.scaleLinear().domain([0,S]).range([u,0]),O=_l.scaleBand().paddingInner(1/3).paddingOuter(1/6).rangeRound([0,i]).domain(this.config.data.map(this.config.accessor)),ie=_l.axisBottom(O).tickSize(10);k(this.xAxisG).attr("transform",`translate(0,${u})`).call(ie).selectAll("text").style("text-anchor","end").attr("dx","-.8em").attr("dy",".55em").attr("transform","rotate(-14)");let ve=_l.axisLeft(E).tickSize(10).ticks(12);k(this.yAxisG).call(ve);let Ee=this.contents.selectAll(".bar").data(this.config.data,this.config.accessor);Ee.exit().attr("opacity",1).transition().attr("opacity",0).attr("d",Vp({x:O.bandwidth(),width:O.bandwidth(),height:0,y:u})).remove();let R=Ee.enter().append("path").classed("bar",1).attr("d",I=>Vp({x:O(this.config.accessor(I)),width:O.bandwidth(),height:0,y:u})).merge(Ee);k(R).attr("d",I=>Vp({x:O(this.config.accessor(I)),width:O.bandwidth(),height:Math.abs(E(I.count)-E(0)),y:E(Math.max(0,I.count))}))}};var yo=jt(wn()),wo=Object.assign({},Jo(),Yp(),qp(),qx(),$p(),$x());function Zf({items:e=[],accessor:n,...i}){let u=(0,yo.useRef)(),s=(0,yo.useRef)();return(0,yo.useEffect)(()=>{s.current||(s.current=new Vx(u.current,i)),s.current.data(e,n).render(!0)},[e]),(0,yo.useEffect)(()=>()=>s.current.destroy(),[]),yo.default.createElement("div",{ref:u})}var Vx=class{config={margin:{top:5,right:20,bottom:40,left:60},height:400,data:void 0,accessor:n=>n.label,tickFormatX:void 0};get dimensions(){let{top:n,right:i,bottom:u,left:s}=this.config.margin;return{width:this.outerWidth-s-i,height:this.config.height-n-u,top:n,right:i,bottom:u,left:s}}container;svg;main;contents;xAxisG;yAxisG;outerWidth;constructor(n,i={}){this.container=wo.select(n),this.container.selectAll("*").remove(),Object.assign(this.config,i),this.svg=this.container.append("svg"),this.main=this.svg.append("g"),this.contents=this.main.append("g"),this.xAxisG=this.main.append("g").attr("transform",`translate(0, ${this.dimensions.height})`).attr("class","axis x"),this.yAxisG=this.main.append("g").attr("class","axis y"),window.addEventListener("resize",this.resize)}destroy=()=>{window.removeEventListener("resize",this.resize),this.container.selectAll("*").remove()};data=(n,i)=>(this.config.data=n,this.config.accessor=i,this);resize=()=>{this.render()};render=(n=!1)=>{this.outerWidth=this.container.node().getBoundingClientRect().width;let{width:i,height:u,top:s,right:h,bottom:d,left:v}=this.dimensions,k=I=>n?I.transition():I;this.svg.attr("width",i+v+h).attr("height",u+s+d),this.main.attr("transform",`translate(${[v,s]})`);let S=this.config.data.reduce((I,Y)=>Math.max(I,Y.count),0),E=wo.scaleLinear().domain([0,S]).range([u,0]),O=wo.scalePoint().domain(this.config.data.map(this.config.accessor)).rangeRound([0,i]),ie=wo.axisBottom(O).tickSize(10).tickFormat(this.config.tickFormatX);k(this.xAxisG).attr("transform",`translate(0,${u})`).call(ie).selectAll("text").attr("dy","1em");let ve=wo.axisLeft(E).tickSize(10).ticks(12);k(this.yAxisG).call(ve);let Ee=wo.line().x(I=>O(this.config.accessor(I))).y(I=>E(I.count)),ne=this.contents.selectAll(".line").data([this.config.data]),R=ne.enter().append("path").attr("class","line").merge(ne);n?R.transition().attrTween("d",function(I){let Y=wo.select(this).attr("d");return wo.interpolatePath(Y,Ee(I))}):R.attr("d",Ee)}};var kr=jt(wn());var Xa=jt(Rf()),Kp=jt(zf()),PM=(0,Kp.interpolateCubehelixLong)((0,Xa.cubehelix)(-100,.75,.35),(0,Xa.cubehelix)(80,1.5,.8)),LM=(0,Kp.interpolateCubehelixLong)((0,Xa.cubehelix)(260,.75,.35),(0,Xa.cubehelix)(80,1.5,.8)),Jf=(0,Xa.cubehelix)();function Qp(e){(e<0||e>1)&&(e-=Math.floor(e));var n=Math.abs(e-.5);return Jf.h=360*e-100,Jf.s=1.5-1.5*n,Jf.l=.8-.9*n,Jf+""}function OM(e){let[n,i]=[...e].reduce(([u,s],h)=>{let d=(u+h.charCodeAt())%65521;return[d,(s+d)%65521]},[1,0]);return i<<16|n}function Zp(e){return Qp(OM(e)/32640)}var _n=Object.assign({},Jo(),Zx(),e_());Object.defineProperty(_n,"event",{get:()=>Jo().event});function Jp({items:e=[]}){let n=(0,kr.useRef)(),i=(0,kr.useRef)(),[u,s]=(0,kr.useState)(!1);return(0,kr.useEffect)(()=>{let h=e.reduce((k,[S,E]=[])=>(E.forEach(({user:O,count:ie},ve)=>{k[O]={count:ie,index:ve}}),k),{}),d=[];e.forEach(([k,S,E])=>{Object.entries(E).forEach(([O,ie])=>{Object.entries(ie).forEach(([ve,Ee])=>{d.push({source:O,target:ve,count:Ee,server:k,activity:h[O]})})})});let v=d.map(k=>[k.source,k.server]).concat(d.map(k=>[k.target,k.server])).map(([k,S])=>[`${k}-${S}`,k,S]).filter((k,S,E)=>E.findIndex(O=>O[0]===k[0])===S).map(([k,S,E])=>({id:k,name:S,server:E,activity:h[S]}));d.forEach(k=>{k.source=k.source+"-"+k.server,k.target=k.target+"-"+k.server}),v.forEach(k=>{let S=E=>d.filter(O=>O[E]===k.id).length;k.activity&&(k.activity.from=S("target"),k.activity.to=S("source"))}),i.current||(i.current=new t_(n.current)),i.current.data(d,v)},[e]),(0,kr.useEffect)(()=>{i.current.orbit(u),i.current.render()},[u]),(0,kr.useEffect)(()=>()=>i.current.destroy(),[]),kr.default.createElement(kr.default.Fragment,null,kr.default.createElement("div",{className:"canvas",ref:n}),kr.default.createElement("div",{className:"hud"},"orbiters",kr.default.createElement(Ga,{checked:u,onChange:()=>s(!u)})))}var t_=class{config={orbit:!1};constructor(n){this.container=_n.select(n),this.container.selectAll("*").remove(),this.canvas=this.container.append("canvas"),window.addEventListener("resize",this.resize),this.ctx=this.canvas.node().getContext("2d"),this.simulation=_n.forceSimulation().on("tick",this.render),this.setSize();let{width:i,height:u}=this;this.canvas.attr("width",i).attr("height",u).call(_n.drag().container(this.canvas.node()).subject(()=>this.simulation.find(_n.event.x,_n.event.y)).on("start",()=>{_n.event.active||this.simulation.alphaTarget(.3).restart(),_n.event.subject.fx=_n.event.subject.x,_n.event.subject.fy=_n.event.subject.y}).on("drag",()=>{_n.event.subject.fx=_n.event.x,_n.event.subject.fy=_n.event.y}).on("end",()=>{_n.event.active||this.simulation.alphaTarget(0),_n.event.subject.fx=null,_n.event.subject.fy=null})),this.container.style("position","relative"),this.popup=this.container.append("div").classed("popup",!0)}destroy=()=>{this.simulation.stop(),window.removeEventListener("resize",this.resize),this.container.selectAll("*").remove()};setSize=()=>{this.width=this.container.node().getBoundingClientRect().width,this.height=800;let{width:n,height:i}=this;Object.assign(this.canvas.node(),{width:n,height:i}),this.setOrbitCharge(),this.simulation.force("center",_n.forceCenter(n/2,i/2))};setOrbitCharge=()=>{let n=this.width<650;this.simulation.force("x",_n.forceX().strength(n?.2:.1)).force("y",_n.forceY().strength(n?.1:.2)).force("charge",_n.forceManyBody().strength(()=>-(this.width/(this.config.orbit?3:7))))};orbit=n=>{this.config.orbit=n,this.setOrbitCharge(),this.simulation.alphaTarget(.1).restart()};data=(n,i)=>{Object.assign(this.config,{links:n,nodes:i}),this.simulation.nodes(i).force("link",_n.forceLink(n).id(s=>s.id)).alphaTarget(.1).restart();let u;return this.focusedNode=void 0,this.canvas.on("mousemove",()=>{let[s,h]=_n.mouse(this.canvas.node()),d=this.simulation.find(s,h);d&&u!==d.id&&(u=d.id,i.forEach(v=>{v.focused=v.id===u}),n.forEach(v=>{v.from=v.source.id===u,v.to=v.target.id===u}),this.focusedNode=d),this.render()}),this};resize=()=>{this.setSize(),this.simulation.alphaTarget(.1).restart(),this.render()};render=()=>{let{width:n,height:i,ctx:u}=this,{links:s=[],nodes:h=[],orbit:d}=this.config,v=d?h:h.filter(({activity:S})=>!!S),k=d?s:s.filter(({activity:S})=>!!S);if(this.focusedNode&&this.focusedNode.activity){let{x:S,y:E,name:O,server:ie,activity:{count:ve,index:Ee,to:ne,from:R}}=this.focusedNode;this.popup.classed("visible",!0).style("left",`${S+5}px`).style("top",`${E-18}px`).selectAll("div").data([["name",[O,ie]],["stat rank",["rank",Ee+1]],["stat msgs",["msgs",ve]],["stat sent",["sent",ne]],["stat recv",["recv",R]]]).join("div").attr("class",([I])=>I).selectAll("span").data(([I,Y])=>Y).join("span").text(I=>I)}else this.popup.classed("visible",!1);u.clearRect(0,0,n,i),u.beginPath(),k.forEach(S=>{!S.to&&!S.from&&(u.moveTo(S.source.x,S.source.y),u.lineTo(S.target.x,S.target.y))}),u.strokeStyle="rgba(0, 255, 255, 0.2)",u.stroke(),u.beginPath(),u.strokeStyle="rgba(235, 51, 110, 0.8)",k.forEach(S=>{S.from&&(u.moveTo(S.source.x,S.source.y),u.quadraticCurveTo(S.source.x-10,S.target.y+10,S.target.x,S.target.y))}),u.stroke(),u.beginPath(),u.strokeStyle="rgba(0, 255, 255, 1)",k.forEach(S=>{S.to&&(u.moveTo(S.source.x,S.source.y),u.quadraticCurveTo(S.target.x+10,S.source.y-10,S.target.x,S.target.y))}),u.stroke(),u.beginPath(),v.forEach(S=>{let E=S.focused?8:6;u.moveTo(S.x+E,S.y),u.arc(S.x,S.y,E,0,2*Math.PI)}),u.fillStyle="limegreen",u.fill(),u.fillStyle="black",u.font="12px Hack",v.forEach(S=>{(!S.focused||!S.activity)&&u.fillText(S.name,S.x,S.y)})}};var qn=jt(wn());function n_(e){return e==1?"once":e==2?"twice":`${e} times`}function DM(e,n){return e+(n>1?"s":"")}function Ka({items:e}){return e.map(n=>qn.default.createElement("span",{key:n.user,className:"name",style:{color:Zp(n.user)}},n.user)).reduce((n,i,u,s)=>[n,u==s.length-1?(u-1?",":"")+" and ":", ",i])}function AM({stats:e}){let{shouting:n=[],questions:i=[],kicks:u=[],kicked:s=[],avgLineLengthLow:h=[],avgLineLengthHigh:d=[]}=e;return qn.default.createElement("div",{className:"factoids"},!!n.length&&qn.default.createElement("p",{className:"factoid"},qn.default.createElement(Ka,{items:n})," shouted in ",qn.default.createElement("span",{className:"fact-type"},"ALL CAPS")," "+n_(n[0].count)),!!i.length&&qn.default.createElement("p",{className:"factoid"},qn.default.createElement(Ka,{items:i})," asked "+i[0].count+" ",qn.default.createElement("span",{className:"fact-type"},DM("question",i[0].count))),!!u.length&&qn.default.createElement("p",{className:"factoid"},qn.default.createElement(Ka,{items:u}),qn.default.createElement("span",{className:"fact-type"}," kicked "),u[0].count+" ",u[0].count>1?" people":" person"),!!s.length&&qn.default.createElement("p",{className:"factoid"},qn.default.createElement(Ka,{items:s}),qn.default.createElement("span",{className:"fact-type"}," got kicked "),n_(s[0].count)),!!d.length&&qn.default.createElement("p",{className:"factoid"},"for ",qn.default.createElement("span",{className:"fact-type"}," average line length "),qn.default.createElement(Ka,{items:d})," had "+(0|d[0].average)+" and ",qn.default.createElement(Ka,{items:h})," had "+(0|h[0].average)))}var r_=AM;function IM({history:e,location:n}){let{fetchAPI:i}=Zo(),[u,s]=(0,tn.useState)({servers:[]}),[h,d]=(0,tn.useState)({}),[v,k]=(0,tn.useState)(!1);return tn.default.createElement(tn.default.Fragment,null,tn.default.createElement(kx,{history:e,location:n,base:u,ready:v,onChange:({month:S,server:E,channel:O})=>{let ie=setTimeout(()=>k(!1),150);i("stats/all",{body:{month:S,server:E,channel:O},method:"POST"}).then(ve=>{d(ve),clearTimeout(ie),k(!0)}).catch(console.error)},onMonth:({month:S})=>{i("stats/base",{body:{month:S},method:"POST"}).then(s).catch(console.error)}}),tn.default.createElement("div",{className:`stats-container${v?"":" loading"}`},tn.default.createElement("div",{className:"stats"},tn.default.createElement("div",{className:"row"},tn.default.createElement("div",{className:"base"},tn.default.createElement("span",null,"updated hourly"),tn.default.createElement("div",{className:"uptime"},tn.default.createElement("h4",null,"uptime"," "),tn.default.createElement("span",null,u.uptime||"0","h"))),tn.default.createElement("div",{className:"command-chart"},tn.default.createElement("h3",{className:"title"},"most used commands"),tn.default.createElement(Xp,{items:h.commands,accessor:S=>S.command}))),tn.default.createElement("div",{className:"row"},tn.default.createElement("div",{className:"half"},tn.default.createElement("h3",{className:"title"},"activity / days"),tn.default.createElement(Zf,{items:h.activityDays,accessor:S=>S.day,tickFormatX:S=>+S.slice(8)})),tn.default.createElement("div",{className:"half"},tn.default.createElement("h3",{className:"title"},"activity / hours"),tn.default.createElement(Zf,{items:h.activityHours,accessor:S=>S.hour}))),tn.default.createElement(r_,{stats:h})),tn.default.createElement("div",{className:"stats-forcesim"},tn.default.createElement("h4",null," network graph "),tn.default.createElement("span",null,"tracking who talks to popular users"),tn.default.createElement("div",{className:"sim"},tn.default.createElement(Jp,{items:h.links})))))}var i_=IM;var Qa=jt(wn()),o_=jt(Mp());function RM(){let[e,n]=(0,Qa.useState)("");return(0,Qa.useEffect)(()=>{fetch("https://github.com/api/docs").then(i=>i.text()).then(i=>{n((0,o_.default)(i.split("(__docs__)").pop())),window.location.hash.length&&window.location.replace(window.location.hash)}).catch(console.error)},[]),Qa.default.createElement("div",{className:"document",dangerouslySetInnerHTML:{__html:e}})}var a_=RM;var FM=_p(({location:e})=>{let n=e.pathname.split("/")[1];return fr.default.createElement(fr.default.Fragment,null,fr.default.createElement("div",{className:"menu"},fr.default.createElement("h1",null,"nibblr",fr.default.createElement("span",{className:"jr"},"jr")),["cmds","docs","stats"].map(i=>fr.default.createElement(ml,{className:n===i?"active":"",key:i,to:"/"+i},i)),fr.default.createElement("a",{target:"_blank",rel:"noopener",href:"https://www.github.com/kirjavascript/nibblrjr"},"src^")),fr.default.createElement("main",{className:`main-${n}`},fr.default.createElement(Fi,{exact:!0,path:"/",component:ow}),fr.default.createElement(Fi,{path:"/cmds",component:Cw}),fr.default.createElement(Fi,{path:"/stats",component:i_}),fr.default.createElement(Fi,{exact:!0,path:"/docs",component:a_})),fr.default.createElement("img",{src:"/nibblr.gif",className:"nibblr"}))});(0,u_.render)(fr.default.createElement(nw,null,fr.default.createElement(FM,null)),document.body.appendChild(document.createElement("div"))); /* object-assign (c) Sindre Sorhus From 37cd854c1de29ae1f308a59e0538609fef79ac79 Mon Sep 17 00:00:00 2001 From: Winston Weinert Date: Sat, 21 May 2022 15:23:40 -0500 Subject: [PATCH 37/94] frontend: hotfix for a layout bug introduced in 7c712fe --- web/modules/cmds/lock.js | 4 ++-- web/static/main.js | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/web/modules/cmds/lock.js b/web/modules/cmds/lock.js index 9c2eca5..8bc5375 100644 --- a/web/modules/cmds/lock.js +++ b/web/modules/cmds/lock.js @@ -2,8 +2,8 @@ import React from 'react'; function Lock() { return ( - - + + 0&&r.prevInput=="\u200B"?Wn(a,eg)(a):Ve++<10?o.detectingSelectAll=setTimeout(nt,500):(o.selForContextMenu=null,o.input.reset())};o.detectingSelectAll=setTimeout(nt,200)}}if(d&&v>=9&&Te(),c){ln(t);var Be=function(){Se(window,"mouseup",Be),setTimeout(ye,20)};M(window,"mouseup",Be)}else setTimeout(ye,50)},Cn.prototype.readOnlyChanged=function(t){t||this.reset(),this.textarea.disabled=t=="nocursor",this.textarea.readOnly=!!t},Cn.prototype.setUneditable=function(){},Cn.prototype.needsContentAttribute=!1;function Uk(t,r){if(r=r?ce(r):{},r.value=t.value,!r.tabindex&&t.tabIndex&&(r.tabindex=t.tabIndex),!r.placeholder&&t.placeholder&&(r.placeholder=t.placeholder),r.autofocus==null){var a=oe();r.autofocus=a==t||t.getAttribute("autofocus")!=null&&a==document.body}function o(){t.value=m.getValue()}var l;if(t.form&&(M(t.form,"submit",o),!r.leaveSubmitMethodAlone)){var f=t.form;l=f.submit;try{var p=f.submit=function(){o(),f.submit=l,f.submit(),f.submit=p}}catch{}}r.finishInit=function(T){T.save=o,T.getTextArea=function(){return t},T.toTextArea=function(){T.toTextArea=isNaN,o(),t.parentNode.removeChild(T.getWrapperElement()),t.style.display="",t.form&&(Se(t.form,"submit",o),!r.leaveSubmitMethodAlone&&typeof t.form.submit=="function"&&(t.form.submit=l))}},t.style.display="none";var m=vn(function(T){return t.parentNode.insertBefore(T,t.nextSibling)},r);return m}function Bk(t){t.off=Se,t.on=M,t.wheelEventPixels=X_,t.Doc=dr,t.splitLines=L,t.countColumn=ke,t.findColumn=Oe,t.isWordChar=Lt,t.Pass=He,t.signal=ze,t.Line=si,t.changeEnd=Yi,t.scrollbarModel=Pv,t.Pos=de,t.cmpPos=_,t.modes=Ie,t.mimeModes=$e,t.resolveMode=vt,t.getMode=Ot,t.modeExtensions=Ct,t.extendMode=Nt,t.copyState=Jt,t.startState=bn,t.innerMode=An,t.commands=xu,t.keyMap=Ci,t.keyName=gg,t.isModifierKey=pg,t.lookupKey=da,t.normalizeKeyMap=mk,t.StringStream=Ut,t.SharedTextMarker=mu,t.TextMarker=Gi,t.LineWidget=gu,t.e_preventDefault=bt,t.e_stopPropagation=Rt,t.e_stop=ln,t.addClass=Le,t.contains=q,t.rmClass=x,t.keyNames=$i}Dk(vn),Fk(vn);var jk="iter insert remove copy getEditor constructor".split(" ");for(var $l in dr.prototype)dr.prototype.hasOwnProperty($l)&&me(jk,$l)<0&&(vn.prototype[$l]=function(t){return function(){return t.apply(this.doc,arguments)}}(dr.prototype[$l]));return wt(dr),vn.inputStyles={textarea:Cn,contenteditable:an},vn.defineMode=function(t){!vn.defaults.mode&&t!="null"&&(vn.defaults.mode=t),Ke.apply(this,arguments)},vn.defineMIME=et,vn.defineMode("null",function(){return{token:function(t){return t.skipToEnd()}}}),vn.defineMIME("text/plain","null"),vn.defineExtension=function(t,r){vn.prototype[t]=r},vn.defineDocExtension=function(t,r){dr.prototype[t]=r},vn.fromTextArea=Uk,Bk(vn),vn.version="5.65.3",vn})});var sw=yt((uw,lw)=>{(function(e){typeof uw=="object"&&typeof lw=="object"?e(wl()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)})(function(e){"use strict";var n={autoSelfClosers:{area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0,menuitem:!0},implicitlyClosed:{dd:!0,li:!0,optgroup:!0,option:!0,p:!0,rp:!0,rt:!0,tbody:!0,td:!0,tfoot:!0,th:!0,tr:!0},contextGrabbers:{dd:{dd:!0,dt:!0},dt:{dd:!0,dt:!0},li:{li:!0},option:{option:!0,optgroup:!0},optgroup:{optgroup:!0},p:{address:!0,article:!0,aside:!0,blockquote:!0,dir:!0,div:!0,dl:!0,fieldset:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,menu:!0,nav:!0,ol:!0,p:!0,pre:!0,section:!0,table:!0,ul:!0},rp:{rp:!0,rt:!0},rt:{rp:!0,rt:!0},tbody:{tbody:!0,tfoot:!0},td:{td:!0,th:!0},tfoot:{tbody:!0},th:{td:!0,th:!0},thead:{tbody:!0,tfoot:!0},tr:{tr:!0}},doNotIndent:{pre:!0},allowUnquoted:!0,allowMissing:!0,caseFold:!0},i={autoSelfClosers:{},implicitlyClosed:{},contextGrabbers:{},doNotIndent:{},allowUnquoted:!1,allowMissing:!1,allowMissingTagName:!1,caseFold:!1};e.defineMode("xml",function(u,s){var h=u.indentUnit,d={},v=s.htmlMode?n:i;for(var k in v)d[k]=v[k];for(var k in s)d[k]=s[k];var S,E;function O(y,D){function q(we){return D.tokenize=we,we(y,D)}var oe=y.next();if(oe=="<")return y.eat("!")?y.eat("[")?y.match("CDATA[")?q(Ee("atom","]]>")):null:y.match("--")?q(Ee("comment","-->")):y.match("DOCTYPE",!0,!0)?(y.eatWhile(/[\w\._\-]/),q(ne(1))):null:y.eat("?")?(y.eatWhile(/[\w\._\-]/),D.tokenize=Ee("meta","?>"),"meta"):(S=y.eat("/")?"closeTag":"openTag",D.tokenize=ie,"tag bracket");if(oe=="&"){var Le;return y.eat("#")?y.eat("x")?Le=y.eatWhile(/[a-fA-F\d]/)&&y.eat(";"):Le=y.eatWhile(/[\d]/)&&y.eat(";"):Le=y.eatWhile(/[\w\.\-:]/)&&y.eat(";"),Le?"atom":"error"}else return y.eatWhile(/[^&<]/),null}O.isInText=!0;function ie(y,D){var q=y.next();if(q==">"||q=="/"&&y.eat(">"))return D.tokenize=O,S=q==">"?"endTag":"selfcloseTag","tag bracket";if(q=="=")return S="equals",null;if(q=="<"){D.tokenize=O,D.state=pe,D.tagName=D.tagStart=null;var oe=D.tokenize(y,D);return oe?oe+" tag error":"tag error"}else return/[\'\"]/.test(q)?(D.tokenize=ve(q),D.stringStartCol=y.column(),D.tokenize(y,D)):(y.match(/^[^\s\u00a0=<>\"\']*[^\s\u00a0=<>\"\'\/]/),"word")}function ve(y){var D=function(q,oe){for(;!q.eol();)if(q.next()==y){oe.tokenize=ie;break}return"string"};return D.isInAttribute=!0,D}function Ee(y,D){return function(q,oe){for(;!q.eol();){if(q.match(D)){oe.tokenize=O;break}q.next()}return y}}function ne(y){return function(D,q){for(var oe;(oe=D.next())!=null;){if(oe=="<")return q.tokenize=ne(y+1),q.tokenize(D,q);if(oe==">")if(y==1){q.tokenize=O;break}else return q.tokenize=ne(y-1),q.tokenize(D,q)}return"meta"}}function R(y){return y&&y.toLowerCase()}function I(y,D,q){this.prev=y.context,this.tagName=D||"",this.indent=y.indented,this.startOfLine=q,(d.doNotIndent.hasOwnProperty(D)||y.context&&y.context.noIndent)&&(this.noIndent=!0)}function Y(y){y.context&&(y.context=y.context.prev)}function le(y,D){for(var q;;){if(!y.context||(q=y.context.tagName,!d.contextGrabbers.hasOwnProperty(R(q))||!d.contextGrabbers[R(q)].hasOwnProperty(R(D))))return;Y(y)}}function pe(y,D,q){return y=="openTag"?(q.tagStart=D.column(),Re):y=="closeTag"?B:pe}function Re(y,D,q){return y=="word"?(q.tagName=D.current(),E="tag",x):d.allowMissingTagName&&y=="endTag"?(E="tag bracket",x(y,D,q)):(E="error",Re)}function B(y,D,q){if(y=="word"){var oe=D.current();return q.context&&q.context.tagName!=oe&&d.implicitlyClosed.hasOwnProperty(R(q.context.tagName))&&Y(q),q.context&&q.context.tagName==oe||d.matchClosing===!1?(E="tag",c):(E="tag error",g)}else return d.allowMissingTagName&&y=="endTag"?(E="tag bracket",c(y,D,q)):(E="error",g)}function c(y,D,q){return y!="endTag"?(E="error",c):(Y(q),pe)}function g(y,D,q){return E="error",c(y,D,q)}function x(y,D,q){if(y=="word")return E="attribute",P;if(y=="endTag"||y=="selfcloseTag"){var oe=q.tagName,Le=q.tagStart;return q.tagName=q.tagStart=null,y=="selfcloseTag"||d.autoSelfClosers.hasOwnProperty(R(oe))?le(q,oe):(le(q,oe),q.context=new I(q,oe,Le==q.indented)),pe}return E="error",x}function P(y,D,q){return y=="equals"?b:(d.allowMissing||(E="error"),x(y,D,q))}function b(y,D,q){return y=="string"?U:y=="word"&&d.allowUnquoted?(E="string",x):(E="error",x(y,D,q))}function U(y,D,q){return y=="string"?U:x(y,D,q)}return{startState:function(y){var D={tokenize:O,state:pe,indented:y||0,tagName:null,tagStart:null,context:null};return y!=null&&(D.baseIndent=y),D},token:function(y,D){if(!D.tagName&&y.sol()&&(D.indented=y.indentation()),y.eatSpace())return null;S=null;var q=D.tokenize(y,D);return(q||S)&&q!="comment"&&(E=null,D.state=D.state(S||q,y,D),E&&(q=E=="error"?q+" error":E)),q},indent:function(y,D,q){var oe=y.context;if(y.tokenize.isInAttribute)return y.tagStart==y.indented?y.stringStartCol+1:y.indented+h;if(oe&&oe.noIndent)return e.Pass;if(y.tokenize!=ie&&y.tokenize!=O)return q?q.match(/^(\s*)/)[0].length:0;if(y.tagName)return d.multilineTagIndentPastTag!==!1?y.tagStart+y.tagName.length+2:y.tagStart+h*(d.multilineTagIndentFactor||1);if(d.alignCDATA&&/$/,blockCommentStart:"",configuration:d.htmlMode?"html":"xml",helperType:d.htmlMode?"html":"xml",skipAttribute:function(y){y.state==b&&(y.state=x)},xmlCurrentTag:function(y){return y.tagName?{name:y.tagName,close:y.type=="closeTag"}:null},xmlCurrentContext:function(y){for(var D=[],q=y.context;q;q=q.prev)D.push(q.tagName);return D.reverse()}}}),e.defineMIME("text/xml","xml"),e.defineMIME("application/xml","xml"),e.mimeModes.hasOwnProperty("text/html")||e.defineMIME("text/html",{name:"xml",htmlMode:!0})})});var hw=yt((fw,cw)=>{(function(e){typeof fw=="object"&&typeof cw=="object"?e(wl()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)})(function(e){"use strict";e.defineMode("javascript",function(n,i){var u=n.indentUnit,s=i.statementIndent,h=i.jsonld,d=i.json||h,v=i.trackScope!==!1,k=i.typescript,S=i.wordCharacters||/[\w$\xa1-\uffff]/,E=function(){function _(Vt){return{type:Vt,style:"keyword"}}var H=_("keyword a"),be=_("keyword b"),Ne=_("keyword c"),Ze=_("keyword d"),ft=_("operator"),Qe={type:"atom",style:"atom"};return{if:_("if"),while:H,with:H,else:be,do:be,try:be,finally:be,return:Ze,break:Ze,continue:Ze,new:_("new"),delete:Ne,void:Ne,throw:Ne,debugger:_("debugger"),var:_("var"),const:_("var"),let:_("var"),function:_("function"),catch:_("catch"),for:_("for"),switch:_("switch"),case:_("case"),default:_("default"),in:ft,typeof:ft,instanceof:ft,true:Qe,false:Qe,null:Qe,undefined:Qe,NaN:Qe,Infinity:Qe,this:_("this"),class:_("class"),super:_("atom"),yield:Ne,export:_("export"),import:_("import"),extends:Ne,await:Ne}}(),O=/[+\-*&%=<>!?|~^@]/,ie=/^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/;function ve(_){for(var H=!1,be,Ne=!1;(be=_.next())!=null;){if(!H){if(be=="/"&&!Ne)return;be=="["?Ne=!0:Ne&&be=="]"&&(Ne=!1)}H=!H&&be=="\\"}}var Ee,ne;function R(_,H,be){return Ee=_,ne=be,H}function I(_,H){var be=_.next();if(be=='"'||be=="'")return H.tokenize=Y(be),H.tokenize(_,H);if(be=="."&&_.match(/^\d[\d_]*(?:[eE][+\-]?[\d_]+)?/))return R("number","number");if(be=="."&&_.match(".."))return R("spread","meta");if(/[\[\]{}\(\),;\:\.]/.test(be))return R(be);if(be=="="&&_.eat(">"))return R("=>","operator");if(be=="0"&&_.match(/^(?:x[\dA-Fa-f_]+|o[0-7_]+|b[01_]+)n?/))return R("number","number");if(/\d/.test(be))return _.match(/^[\d_]*(?:n|(?:\.[\d_]*)?(?:[eE][+\-]?[\d_]+)?)?/),R("number","number");if(be=="/")return _.eat("*")?(H.tokenize=le,le(_,H)):_.eat("/")?(_.skipToEnd(),R("comment","comment")):de(_,H,1)?(ve(_),_.match(/^\b(([gimyus])(?![gimyus]*\2))+\b/),R("regexp","string-2")):(_.eat("="),R("operator","operator",_.current()));if(be=="`")return H.tokenize=pe,pe(_,H);if(be=="#"&&_.peek()=="!")return _.skipToEnd(),R("meta","meta");if(be=="#"&&_.eatWhile(S))return R("variable","property");if(be=="<"&&_.match("!--")||be=="-"&&_.match("->")&&!/\S/.test(_.string.slice(0,_.start)))return _.skipToEnd(),R("comment","comment");if(O.test(be))return(be!=">"||!H.lexical||H.lexical.type!=">")&&(_.eat("=")?(be=="!"||be=="=")&&_.eat("="):/[<>*+\-|&?]/.test(be)&&(_.eat(be),be==">"&&_.eat(be))),be=="?"&&_.eat(".")?R("."):R("operator","operator",_.current());if(S.test(be)){_.eatWhile(S);var Ne=_.current();if(H.lastType!="."){if(E.propertyIsEnumerable(Ne)){var Ze=E[Ne];return R(Ze.type,Ze.style,Ne)}if(Ne=="async"&&_.match(/^(\s|\/\*([^*]|\*(?!\/))*?\*\/)*[\[\(\w]/,!1))return R("async","keyword",Ne)}return R("variable","variable",Ne)}}function Y(_){return function(H,be){var Ne=!1,Ze;if(h&&H.peek()=="@"&&H.match(ie))return be.tokenize=I,R("jsonld-keyword","meta");for(;(Ze=H.next())!=null&&!(Ze==_&&!Ne);)Ne=!Ne&&Ze=="\\";return Ne||(be.tokenize=I),R("string","string")}}function le(_,H){for(var be=!1,Ne;Ne=_.next();){if(Ne=="/"&&be){H.tokenize=I;break}be=Ne=="*"}return R("comment","comment")}function pe(_,H){for(var be=!1,Ne;(Ne=_.next())!=null;){if(!be&&(Ne=="`"||Ne=="$"&&_.eat("{"))){H.tokenize=I;break}be=!be&&Ne=="\\"}return R("quasi","string-2",_.current())}var Re="([{}])";function B(_,H){H.fatArrowAt&&(H.fatArrowAt=null);var be=_.string.indexOf("=>",_.start);if(!(be<0)){if(k){var Ne=/:\s*(?:\w+(?:<[^>]*>|\[\])?|\{[^}]*\})\s*$/.exec(_.string.slice(_.start,be));Ne&&(be=Ne.index)}for(var Ze=0,ft=!1,Qe=be-1;Qe>=0;--Qe){var Vt=_.string.charAt(Qe),sn=Re.indexOf(Vt);if(sn>=0&&sn<3){if(!Ze){++Qe;break}if(--Ze==0){Vt=="("&&(ft=!0);break}}else if(sn>=3&&sn<6)++Ze;else if(S.test(Vt))ft=!0;else if(/["'\/`]/.test(Vt))for(;;--Qe){if(Qe==0)return;var on=_.string.charAt(Qe-1);if(on==Vt&&_.string.charAt(Qe-2)!="\\"){Qe--;break}}else if(ft&&!Ze){++Qe;break}}ft&&!Ze&&(H.fatArrowAt=Qe)}}var c={atom:!0,number:!0,variable:!0,string:!0,regexp:!0,this:!0,import:!0,"jsonld-keyword":!0};function g(_,H,be,Ne,Ze,ft){this.indented=_,this.column=H,this.type=be,this.prev=Ze,this.info=ft,Ne!=null&&(this.align=Ne)}function x(_,H){if(!v)return!1;for(var be=_.localVars;be;be=be.next)if(be.name==H)return!0;for(var Ne=_.context;Ne;Ne=Ne.prev)for(var be=Ne.vars;be;be=be.next)if(be.name==H)return!0}function P(_,H,be,Ne,Ze){var ft=_.cc;for(b.state=_,b.stream=Ze,b.marked=null,b.cc=ft,b.style=H,_.lexical.hasOwnProperty("align")||(_.lexical.align=!0);;){var Qe=ft.length?ft.pop():d?ge:Je;if(Qe(be,Ne)){for(;ft.length&&ft[ft.length-1].lex;)ft.pop()();return b.marked?b.marked:be=="variable"&&x(_,Ne)?"variable-2":H}}}var b={state:null,column:null,marked:null,cc:null};function U(){for(var _=arguments.length-1;_>=0;_--)b.cc.push(arguments[_])}function y(){return U.apply(null,arguments),!0}function D(_,H){for(var be=H;be;be=be.next)if(be.name==_)return!0;return!1}function q(_){var H=b.state;if(b.marked="def",!!v){if(H.context){if(H.lexical.info=="var"&&H.context&&H.context.block){var be=oe(_,H.context);if(be!=null){H.context=be;return}}else if(!D(_,H.localVars)){H.localVars=new re(_,H.localVars);return}}i.globalVars&&!D(_,H.globalVars)&&(H.globalVars=new re(_,H.globalVars))}}function oe(_,H){if(H)if(H.block){var be=oe(_,H.prev);return be?be==H.prev?H:new we(be,H.vars,!0):null}else return D(_,H.vars)?H:new we(H.prev,new re(_,H.vars),!1);else return null}function Le(_){return _=="public"||_=="private"||_=="protected"||_=="abstract"||_=="readonly"}function we(_,H,be){this.prev=_,this.vars=H,this.block=be}function re(_,H){this.name=_,this.next=H}var We=new re("this",new re("arguments",null));function ce(){b.state.context=new we(b.state.context,b.state.localVars,!1),b.state.localVars=We}function ke(){b.state.context=new we(b.state.context,b.state.localVars,!0),b.state.localVars=null}ce.lex=ke.lex=!0;function Ce(){b.state.localVars=b.state.context.vars,b.state.context=b.state.context.prev}Ce.lex=!0;function me(_,H){var be=function(){var Ne=b.state,Ze=Ne.indented;if(Ne.lexical.type=="stat")Ze=Ne.lexical.indented;else for(var ft=Ne.lexical;ft&&ft.type==")"&&ft.align;ft=ft.prev)Ze=ft.indented;Ne.lexical=new g(Ze,b.stream.column(),_,null,Ne.lexical,H)};return be.lex=!0,be}function Ue(){var _=b.state;_.lexical.prev&&(_.lexical.type==")"&&(_.indented=_.lexical.indented),_.lexical=_.lexical.prev)}Ue.lex=!0;function He(_){function H(be){return be==_?y():_==";"||be=="}"||be==")"||be=="]"?U():y(H)}return H}function Je(_,H){return _=="var"?y(me("vardef",H),K,He(";"),Ue):_=="keyword a"?y(me("form"),Q,Je,Ue):_=="keyword b"?y(me("form"),Je,Ue):_=="keyword d"?b.stream.match(/^\s*$/,!1)?y():y(me("stat"),fe,He(";"),Ue):_=="debugger"?y(He(";")):_=="{"?y(me("}"),ke,Xe,Ue,Ce):_==";"?y():_=="if"?(b.state.lexical.info=="else"&&b.state.cc[b.state.cc.length-1]==Ue&&b.state.cc.pop()(),y(me("form"),Q,Je,Ue,V)):_=="function"?y(Ie):_=="for"?y(me("form"),ke,he,Je,Ce,Ue):_=="class"||k&&H=="interface"?(b.marked="keyword",y(me("form",_=="class"?_:H),Ot,Ue)):_=="variable"?k&&H=="declare"?(b.marked="keyword",y(Je)):k&&(H=="module"||H=="enum"||H=="type")&&b.stream.match(/^\s*\w/,!1)?(b.marked="keyword",H=="enum"?y(G):H=="type"?y(Ke,He("operator"),ze,He(";")):y(me("form"),Pe,He("{"),me("}"),Xe,Ue,Ue)):k&&H=="namespace"?(b.marked="keyword",y(me("form"),ge,Je,Ue)):k&&H=="abstract"?(b.marked="keyword",y(Je)):y(me("stat"),Zt):_=="switch"?y(me("form"),Q,He("{"),me("}","switch"),ke,Xe,Ue,Ue,Ce):_=="case"?y(ge,He(":")):_=="default"?y(He(":")):_=="catch"?y(me("form"),ce,te,Je,Ue,Ce):_=="export"?y(me("stat"),An,Ue):_=="import"?y(me("stat"),Ut,Ue):_=="async"?y(Je):H=="@"?y(ge,Je):U(me("stat"),ge,He(";"),Ue)}function te(_){if(_=="(")return y(et,He(")"))}function ge(_,H){return ee(_,H,!1)}function Oe(_,H){return ee(_,H,!0)}function Q(_){return _!="("?U():y(me(")"),fe,He(")"),Ue)}function ee(_,H,be){if(b.state.fatArrowAt==b.stream.start){var Ne=be?Lt:Gt;if(_=="(")return y(ce,me(")"),j(et,")"),Ue,He("=>"),Ne,Ce);if(_=="variable")return U(ce,Pe,He("=>"),Ne,Ce)}var Ze=be?at:De;return c.hasOwnProperty(_)?y(Ze):_=="function"?y(Ie,Ze):_=="class"||k&&H=="interface"?(b.marked="keyword",y(me("form"),vt,Ue)):_=="keyword c"||_=="async"?y(be?Oe:ge):_=="("?y(me(")"),fe,He(")"),Ue,Ze):_=="operator"||_=="spread"?y(be?Oe:ge):_=="["?y(me("]"),St,Ue,Ze):_=="{"?Ae($t,"}",null,Ze):_=="quasi"?U(dt,Ze):_=="new"?y(Et(be)):y()}function fe(_){return _.match(/[;\}\)\],]/)?U():U(ge)}function De(_,H){return _==","?y(fe):at(_,H,!1)}function at(_,H,be){var Ne=be==!1?De:at,Ze=be==!1?ge:Oe;if(_=="=>")return y(ce,be?Lt:Gt,Ce);if(_=="operator")return/\+\+|--/.test(H)||k&&H=="!"?y(Ne):k&&H=="<"&&b.stream.match(/^([^<>]|<[^<>]*>)*>\s*\(/,!1)?y(me(">"),j(ze,">"),Ue,Ne):H=="?"?y(ge,He(":"),Ze):y(Ze);if(_=="quasi")return U(dt,Ne);if(_!=";"){if(_=="(")return Ae(Oe,")","call",Ne);if(_==".")return y(pn,Ne);if(_=="[")return y(me("]"),fe,He("]"),Ue,Ne);if(k&&H=="as")return b.marked="keyword",y(ze,Ne);if(_=="regexp")return b.state.lastType=b.marked="operator",b.stream.backUp(b.stream.pos-b.stream.start-1),y(Ze)}}function dt(_,H){return _!="quasi"?U():H.slice(H.length-2)!="${"?y(dt):y(fe,Yt)}function Yt(_){if(_=="}")return b.marked="string-2",b.state.tokenize=pe,y(dt)}function Gt(_){return B(b.stream,b.state),U(_=="{"?Je:ge)}function Lt(_){return B(b.stream,b.state),U(_=="{"?Je:Oe)}function Et(_){return function(H){return H=="."?y(_?zt:Bt):H=="variable"&&k?y(ln,_?at:De):U(_?Oe:ge)}}function Bt(_,H){if(H=="target")return b.marked="keyword",y(De)}function zt(_,H){if(H=="target")return b.marked="keyword",y(at)}function Zt(_){return _==":"?y(Ue,Je):U(De,He(";"),Ue)}function pn(_){if(_=="variable")return b.marked="property",y()}function $t(_,H){if(_=="async")return b.marked="property",y($t);if(_=="variable"||b.style=="keyword"){if(b.marked="property",H=="get"||H=="set")return y(kn);var be;return k&&b.state.fatArrowAt==b.stream.start&&(be=b.stream.match(/^\s*:\s*/,!1))&&(b.state.fatArrowAt=b.stream.pos+be[0].length),y(A)}else{if(_=="number"||_=="string")return b.marked=h?"property":b.style+" property",y(A);if(_=="jsonld-keyword")return y(A);if(k&&Le(H))return b.marked="keyword",y($t);if(_=="[")return y(ge,je,He("]"),A);if(_=="spread")return y(Oe,A);if(H=="*")return b.marked="keyword",y($t);if(_==":")return U(A)}}function kn(_){return _!="variable"?U(A):(b.marked="property",y(Ie))}function A(_){if(_==":")return y(Oe);if(_=="(")return U(Ie)}function j(_,H,be){function Ne(Ze,ft){if(be?be.indexOf(Ze)>-1:Ze==","){var Qe=b.state.lexical;return Qe.info=="call"&&(Qe.pos=(Qe.pos||0)+1),y(function(Vt,sn){return Vt==H||sn==H?U():U(_)},Ne)}return Ze==H||ft==H?y():be&&be.indexOf(";")>-1?U(_):y(He(H))}return function(Ze,ft){return Ze==H||ft==H?y():U(_,Ne)}}function Ae(_,H,be){for(var Ne=3;Ne"),ze);if(_=="quasi")return U(wt,Wt)}function tt(_){if(_=="=>")return y(ze)}function ct(_){return _.match(/[\}\)\]]/)?y():_==","||_==";"?y(ct):U(ht,ct)}function ht(_,H){if(_=="variable"||b.style=="keyword")return b.marked="property",y(ht);if(H=="?"||_=="number"||_=="string")return y(ht);if(_==":")return y(ze);if(_=="[")return y(He("variable"),M,He("]"),ht);if(_=="(")return U($e,ht);if(!_.match(/[;\}\)\],]/))return y()}function wt(_,H){return _!="quasi"?U():H.slice(H.length-2)!="${"?y(wt):y(ze,bt)}function bt(_){if(_=="}")return b.marked="string-2",b.state.tokenize=pe,y(wt)}function Rt(_,H){return _=="variable"&&b.stream.match(/^\s*[?:]/,!1)||H=="?"?y(Rt):_==":"?y(ze):_=="spread"?y(Rt):U(ze)}function Wt(_,H){if(H=="<")return y(me(">"),j(ze,">"),Ue,Wt);if(H=="|"||_=="."||H=="&")return y(ze);if(_=="[")return y(ze,He("]"),Wt);if(H=="extends"||H=="implements")return b.marked="keyword",y(ze);if(H=="?")return y(ze,He(":"),ze)}function ln(_,H){if(H=="<")return y(me(">"),j(ze,">"),Ue,Wt)}function nn(){return U(ze,gn)}function gn(_,H){if(H=="=")return y(ze)}function K(_,H){return H=="enum"?(b.marked="keyword",y(G)):U(Pe,je,N,L)}function Pe(_,H){if(k&&Le(H))return b.marked="keyword",y(Pe);if(_=="variable")return q(H),y();if(_=="spread")return y(Pe);if(_=="[")return Ae($,"]");if(_=="{")return Ae(F,"}")}function F(_,H){return _=="variable"&&!b.stream.match(/^\s*:/,!1)?(q(H),y(N)):(_=="variable"&&(b.marked="property"),_=="spread"?y(Pe):_=="}"?U():_=="["?y(ge,He("]"),He(":"),F):y(He(":"),Pe,N))}function $(){return U(Pe,N)}function N(_,H){if(H=="=")return y(Oe)}function L(_){if(_==",")return y(K)}function V(_,H){if(_=="keyword b"&&H=="else")return y(me("form","else"),Je,Ue)}function he(_,H){if(H=="await")return y(he);if(_=="(")return y(me(")"),_e,Ue)}function _e(_){return _=="var"?y(K,Fe):_=="variable"?y(Fe):U(Fe)}function Fe(_,H){return _==")"?y():_==";"?y(Fe):H=="in"||H=="of"?(b.marked="keyword",y(ge,Fe)):U(ge,Fe)}function Ie(_,H){if(H=="*")return b.marked="keyword",y(Ie);if(_=="variable")return q(H),y(Ie);if(_=="(")return y(ce,me(")"),j(et,")"),Ue,J,Je,Ce);if(k&&H=="<")return y(me(">"),j(nn,">"),Ue,Ie)}function $e(_,H){if(H=="*")return b.marked="keyword",y($e);if(_=="variable")return q(H),y($e);if(_=="(")return y(ce,me(")"),j(et,")"),Ue,J,Ce);if(k&&H=="<")return y(me(">"),j(nn,">"),Ue,$e)}function Ke(_,H){if(_=="keyword"||_=="variable")return b.marked="type",y(Ke);if(H=="<")return y(me(">"),j(nn,">"),Ue)}function et(_,H){return H=="@"&&y(ge,et),_=="spread"?y(et):k&&Le(H)?(b.marked="keyword",y(et)):k&&_=="this"?y(je,N):U(Pe,je,N)}function vt(_,H){return _=="variable"?Ot(_,H):Ct(_,H)}function Ot(_,H){if(_=="variable")return q(H),y(Ct)}function Ct(_,H){if(H=="<")return y(me(">"),j(nn,">"),Ue,Ct);if(H=="extends"||H=="implements"||k&&_==",")return H=="implements"&&(b.marked="keyword"),y(k?ze:ge,Ct);if(_=="{")return y(me("}"),Nt,Ue)}function Nt(_,H){if(_=="async"||_=="variable"&&(H=="static"||H=="get"||H=="set"||k&&Le(H))&&b.stream.match(/^\s+[\w$\xa1-\uffff]/,!1))return b.marked="keyword",y(Nt);if(_=="variable"||b.style=="keyword")return b.marked="property",y(Jt,Nt);if(_=="number"||_=="string")return y(Jt,Nt);if(_=="[")return y(ge,je,He("]"),Jt,Nt);if(H=="*")return b.marked="keyword",y(Nt);if(k&&_=="(")return U($e,Nt);if(_==";"||_==",")return y(Nt);if(_=="}")return y();if(H=="@")return y(ge,Nt)}function Jt(_,H){if(H=="!"||H=="?")return y(Jt);if(_==":")return y(ze,N);if(H=="=")return y(Oe);var be=b.state.lexical.prev,Ne=be&&be.info=="interface";return U(Ne?$e:Ie)}function An(_,H){return H=="*"?(b.marked="keyword",y(Xt,He(";"))):H=="default"?(b.marked="keyword",y(ge,He(";"))):_=="{"?y(j(bn,"}"),Xt,He(";")):U(Je)}function bn(_,H){if(H=="as")return b.marked="keyword",y(He("variable"));if(_=="variable")return U(Oe,bn)}function Ut(_){return _=="string"?y():_=="("?U(ge):_=="."?U(De):U(st,Tt,Xt)}function st(_,H){return _=="{"?Ae(st,"}"):(_=="variable"&&q(H),H=="*"&&(b.marked="keyword"),y(rn))}function Tt(_){if(_==",")return y(st,Tt)}function rn(_,H){if(H=="as")return b.marked="keyword",y(st)}function Xt(_,H){if(H=="from")return b.marked="keyword",y(ge)}function St(_){return _=="]"?y():U(j(Oe,"]"))}function G(){return U(me("form"),Pe,He("{"),me("}"),j(se,"}"),Ue,Ue)}function se(){return U(Pe,N)}function qe(_,H){return _.lastType=="operator"||_.lastType==","||O.test(H.charAt(0))||/[,.]/.test(H.charAt(0))}function de(_,H,be){return H.tokenize==I&&/^(?:operator|sof|keyword [bcd]|case|new|export|default|spread|[\[{}\(,;:]|=>)$/.test(H.lastType)||H.lastType=="quasi"&&/\{\s*$/.test(_.string.slice(0,_.pos-(be||0)))}return{startState:function(_){var H={tokenize:I,lastType:"sof",cc:[],lexical:new g((_||0)-u,0,"block",!1),localVars:i.localVars,context:i.localVars&&new we(null,null,!1),indented:_||0};return i.globalVars&&typeof i.globalVars=="object"&&(H.globalVars=i.globalVars),H},token:function(_,H){if(_.sol()&&(H.lexical.hasOwnProperty("align")||(H.lexical.align=!1),H.indented=_.indentation(),B(_,H)),H.tokenize!=le&&_.eatSpace())return null;var be=H.tokenize(_,H);return Ee=="comment"?be:(H.lastType=Ee=="operator"&&(ne=="++"||ne=="--")?"incdec":Ee,P(H,be,Ee,ne,_))},indent:function(_,H){if(_.tokenize==le||_.tokenize==pe)return e.Pass;if(_.tokenize!=I)return 0;var be=H&&H.charAt(0),Ne=_.lexical,Ze;if(!/^\s*else\b/.test(H))for(var ft=_.cc.length-1;ft>=0;--ft){var Qe=_.cc[ft];if(Qe==Ue)Ne=Ne.prev;else if(Qe!=V&&Qe!=Ce)break}for(;(Ne.type=="stat"||Ne.type=="form")&&(be=="}"||(Ze=_.cc[_.cc.length-1])&&(Ze==De||Ze==at)&&!/^[,\.=+\-*:?[\(]/.test(H));)Ne=Ne.prev;s&&Ne.type==")"&&Ne.prev.type=="stat"&&(Ne=Ne.prev);var Vt=Ne.type,sn=be==Vt;return Vt=="vardef"?Ne.indented+(_.lastType=="operator"||_.lastType==","?Ne.info.length+1:0):Vt=="form"&&be=="{"?Ne.indented:Vt=="form"?Ne.indented+u:Vt=="stat"?Ne.indented+(qe(_,H)?s||u:0):Ne.info=="switch"&&!sn&&i.doubleIndentSwitch!=!1?Ne.indented+(/^(?:case|default)\b/.test(H)?u:2*u):Ne.align?Ne.column+(sn?0:1):Ne.indented+(sn?0:u)},electricInput:/^\s*(?:case .*?:|default:|\{|\})$/,blockCommentStart:d?null:"/*",blockCommentEnd:d?null:"*/",blockCommentContinue:d?null:" * ",lineComment:d?null:"//",fold:"brace",closeBrackets:"()[]{}''\"\"``",helperType:d?"json":"javascript",jsonldMode:h,jsonMode:d,expressionAllowed:de,skipExpression:function(_){P(_,"atom","atom","true",new e.StringStream("",2,null))}}}),e.registerHelper("wordChars","javascript",/[\w$]/),e.defineMIME("text/javascript","javascript"),e.defineMIME("text/ecmascript","javascript"),e.defineMIME("application/javascript","javascript"),e.defineMIME("application/x-javascript","javascript"),e.defineMIME("application/ecmascript","javascript"),e.defineMIME("application/json",{name:"javascript",json:!0}),e.defineMIME("application/x-json",{name:"javascript",json:!0}),e.defineMIME("application/manifest+json",{name:"javascript",json:!0}),e.defineMIME("application/ld+json",{name:"javascript",jsonld:!0}),e.defineMIME("text/typescript",{name:"javascript",typescript:!0}),e.defineMIME("application/typescript",{name:"javascript",typescript:!0})})});var vw=yt((dw,pw)=>{(function(e){typeof dw=="object"&&typeof pw=="object"?e(wl(),sw(),hw()):typeof define=="function"&&define.amd?define(["../../lib/codemirror","../xml/xml","../javascript/javascript"],e):e(CodeMirror)})(function(e){"use strict";function n(u,s,h,d){this.state=u,this.mode=s,this.depth=h,this.prev=d}function i(u){return new n(e.copyState(u.mode,u.state),u.mode,u.depth,u.prev&&i(u.prev))}e.defineMode("jsx",function(u,s){var h=e.getMode(u,{name:"xml",allowMissing:!0,multilineTagIndentPastTag:!1,allowMissingTagName:!0}),d=e.getMode(u,s&&s.base||"javascript");function v(O){var ie=O.tagName;O.tagName=null;var ve=h.indent(O,"","");return O.tagName=ie,ve}function k(O,ie){return ie.context.mode==h?S(O,ie,ie.context):E(O,ie,ie.context)}function S(O,ie,ve){if(ve.depth==2)return O.match(/^.*?\*\//)?ve.depth=1:O.skipToEnd(),"comment";if(O.peek()=="{"){h.skipAttribute(ve.state);var Ee=v(ve.state),ne=ve.state.context;if(ne&&O.match(/^[^>]*>\s*$/,!1)){for(;ne.prev&&!ne.startOfLine;)ne=ne.prev;ne.startOfLine?Ee-=u.indentUnit:ve.prev.state.lexical&&(Ee=ve.prev.state.lexical.indented)}else ve.depth==1&&(Ee+=u.indentUnit);return ie.context=new n(e.startState(d,Ee),d,0,ie.context),null}if(ve.depth==1){if(O.peek()=="<")return h.skipAttribute(ve.state),ie.context=new n(e.startState(h,v(ve.state)),h,0,ie.context),null;if(O.match("//"))return O.skipToEnd(),"comment";if(O.match("/*"))return ve.depth=2,k(O,ie)}var R=h.token(O,ve.state),I=O.current(),Y;return/\btag\b/.test(R)?/>$/.test(I)?ve.state.context?ve.depth=0:ie.context=ie.context.prev:/^-1&&O.backUp(I.length-Y),R}function E(O,ie,ve){if(O.peek()=="<"&&d.expressionAllowed(O,ve.state))return ie.context=new n(e.startState(h,d.indent(ve.state,"","")),h,0,ie.context),d.skipExpression(ve.state),null;var Ee=d.token(O,ve.state);if(!Ee&&ve.depth!=null){var ne=O.current();ne=="{"?ve.depth++:ne=="}"&&--ve.depth==0&&(ie.context=ie.context.prev)}return Ee}return{startState:function(){return{context:new n(e.startState(d),d)}},copyState:function(O){return{context:i(O.context)}},token:k,indent:function(O,ie,ve){return O.context.mode.indent(O.context.state,ie,ve)},innerMode:function(O){return O.context}}},"xml","javascript"),e.defineMIME("text/jsx","jsx"),e.defineMIME("text/typescript-jsx",{name:"jsx",base:{name:"javascript",typescript:!0}})})});var xw=yt((aE,ww)=>{ww.exports=[">",">>","#","%"]});var kw=yt((uE,_w)=>{function uC({trigger:e="",text:n}){let i=n.slice(e.length).match(/(^\S*\((.*?)\)|^\S*)/),u=n.slice(e.length+i[1].length+1),s=i[2],h=s?s.split(","):[],d=i[1].slice(0,i[1].length-(typeof s!="undefined"?s.length+2:0)),v=d.split(".");return{path:d,list:v,params:h,root:v[0],input:u}}_w.exports={parseCommand:uC}});var Nw=yt((yE,Ew)=>{var Mw=6e4;Ew.exports=function(n){var i=new Date(n.getTime()),u=i.getTimezoneOffset();i.setSeconds(0,0);var s=i.getTime()%Mw;return u*Mw+s}});var Ip=yt((wE,Pw)=>{function fC(e){return e instanceof Date}Pw.exports=fC});var xi=yt((xE,Ow)=>{var Rp=Nw(),cC=Ip(),Fp=36e5,zp=6e4,hC=2,dC=/[T ]/,pC=/:/,vC=/^(\d{2})$/,gC=[/^([+-]\d{2})$/,/^([+-]\d{3})$/,/^([+-]\d{4})$/],mC=/^(\d{4})/,yC=[/^([+-]\d{4})/,/^([+-]\d{5})/,/^([+-]\d{6})/],wC=/^-(\d{2})$/,xC=/^-?(\d{3})$/,_C=/^-?(\d{2})-?(\d{2})$/,kC=/^-?W(\d{2})$/,TC=/^-?W(\d{2})-?(\d{1})$/,SC=/^(\d{2}([.,]\d*)?)$/,bC=/^(\d{2}):?(\d{2}([.,]\d*)?)$/,CC=/^(\d{2}):?(\d{2}):?(\d{2}([.,]\d*)?)$/,MC=/([Z+-].*)$/,EC=/^(Z)$/,NC=/^([+-])(\d{2})$/,PC=/^([+-])(\d{2}):?(\d{2})$/;function LC(e,n){if(cC(e))return new Date(e.getTime());if(typeof e!="string")return new Date(e);var i=n||{},u=i.additionalDigits;u==null?u=hC:u=Number(u);var s=OC(e),h=DC(s.date,u),d=h.year,v=h.restDateString,k=AC(v,d);if(k){var S=k.getTime(),E=0,O;if(s.time&&(E=IC(s.time)),s.timezone)O=RC(s.timezone)*zp;else{var ie=S+E,ve=new Date(ie);O=Rp(ve);var Ee=new Date(ie);Ee.setDate(ve.getDate()+1);var ne=Rp(Ee)-Rp(ve);ne>0&&(O+=ne)}return new Date(S+E+O)}else return new Date(e)}function OC(e){var n={},i=e.split(dC),u;if(pC.test(i[0])?(n.date=null,u=i[0]):(n.date=i[0],u=i[1]),u){var s=MC.exec(u);s?(n.time=u.replace(s[1],""),n.timezone=s[1]):n.time=u}return n}function DC(e,n){var i=gC[n],u=yC[n],s;if(s=mC.exec(e)||u.exec(e),s){var h=s[1];return{year:parseInt(h,10),restDateString:e.slice(h.length)}}if(s=vC.exec(e)||i.exec(e),s){var d=s[1];return{year:parseInt(d,10)*100,restDateString:e.slice(d.length)}}return{year:null}}function AC(e,n){if(n===null)return null;var i,u,s,h;if(e.length===0)return u=new Date(0),u.setUTCFullYear(n),u;if(i=wC.exec(e),i)return u=new Date(0),s=parseInt(i[1],10)-1,u.setUTCFullYear(n,s),u;if(i=xC.exec(e),i){u=new Date(0);var d=parseInt(i[1],10);return u.setUTCFullYear(n,0,d),u}if(i=_C.exec(e),i){u=new Date(0),s=parseInt(i[1],10)-1;var v=parseInt(i[2],10);return u.setUTCFullYear(n,s,v),u}if(i=kC.exec(e),i)return h=parseInt(i[1],10)-1,Lw(n,h);if(i=TC.exec(e),i){h=parseInt(i[1],10)-1;var k=parseInt(i[2],10)-1;return Lw(n,h,k)}return null}function IC(e){var n,i,u;if(n=SC.exec(e),n)return i=parseFloat(n[1].replace(",",".")),i%24*Fp;if(n=bC.exec(e),n)return i=parseInt(n[1],10),u=parseFloat(n[2].replace(",",".")),i%24*Fp+u*zp;if(n=CC.exec(e),n){i=parseInt(n[1],10),u=parseInt(n[2],10);var s=parseFloat(n[3].replace(",","."));return i%24*Fp+u*zp+s*1e3}return null}function RC(e){var n,i;return n=EC.exec(e),n?0:(n=NC.exec(e),n?(i=parseInt(n[2],10)*60,n[1]==="+"?-i:i):(n=PC.exec(e),n?(i=parseInt(n[2],10)*60+parseInt(n[3],10),n[1]==="+"?-i:i):0))}function Lw(e,n,i){n=n||0,i=i||0;var u=new Date(0);u.setUTCFullYear(e,0,4);var s=u.getUTCDay()||7,h=n*7+i+1-s;return u.setUTCDate(u.getUTCDate()+h),u}Ow.exports=LC});var Aw=yt((_E,Dw)=>{var FC=xi();function zC(e){var n=FC(e),i=new Date(0);return i.setFullYear(n.getFullYear(),0,1),i.setHours(0,0,0,0),i}Dw.exports=zC});var Rw=yt((kE,Iw)=>{var HC=xi();function WC(e){var n=HC(e);return n.setHours(0,0,0,0),n}Iw.exports=WC});var Ww=yt((TE,Hw)=>{var Fw=Rw(),zw=6e4,UC=864e5;function BC(e,n){var i=Fw(e),u=Fw(n),s=i.getTime()-i.getTimezoneOffset()*zw,h=u.getTime()-u.getTimezoneOffset()*zw;return Math.round((s-h)/UC)}Hw.exports=BC});var Bw=yt((SE,Uw)=>{var jC=xi(),YC=Aw(),qC=Ww();function GC(e){var n=jC(e),i=qC(n,YC(n)),u=i+1;return u}Uw.exports=GC});var Yw=yt((bE,jw)=>{var $C=xi();function VC(e,n){var i=n&&Number(n.weekStartsOn)||0,u=$C(e),s=u.getDay(),h=(s{var XC=Yw();function KC(e){return XC(e,{weekStartsOn:1})}qw.exports=KC});var Hp=yt((ME,$w)=>{var QC=xi(),Gw=Lf();function ZC(e){var n=QC(e),i=n.getFullYear(),u=new Date(0);u.setFullYear(i+1,0,4),u.setHours(0,0,0,0);var s=Gw(u),h=new Date(0);h.setFullYear(i,0,4),h.setHours(0,0,0,0);var d=Gw(h);return n.getTime()>=s.getTime()?i+1:n.getTime()>=d.getTime()?i:i-1}$w.exports=ZC});var Xw=yt((EE,Vw)=>{var JC=Hp(),eM=Lf();function tM(e){var n=JC(e),i=new Date(0);i.setFullYear(n,0,4),i.setHours(0,0,0,0);var u=eM(i);return u}Vw.exports=tM});var Qw=yt((NE,Kw)=>{var nM=xi(),rM=Lf(),iM=Xw(),oM=6048e5;function aM(e){var n=nM(e),i=rM(n).getTime()-iM(n).getTime();return Math.round(i/oM)+1}Kw.exports=aM});var Jw=yt((PE,Zw)=>{var uM=Ip();function lM(e){if(uM(e))return!isNaN(e);throw new TypeError(toString.call(e)+" is not an instance of Date")}Zw.exports=lM});var tx=yt((LE,ex)=>{function sM(){var e={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}};function n(i,u,s){s=s||{};var h;return typeof e[i]=="string"?h=e[i]:u===1?h=e[i].one:h=e[i].other.replace("{{count}}",u),s.addSuffix?s.comparison>0?"in "+h:h+" ago":h}return{localize:n}}ex.exports=sM});var rx=yt((OE,nx)=>{var fM=["M","MM","Q","D","DD","DDD","DDDD","d","E","W","WW","YY","YYYY","GG","GGGG","H","HH","h","hh","m","mm","s","ss","S","SS","SSS","Z","ZZ","X","x"];function cM(e){var n=[];for(var i in e)e.hasOwnProperty(i)&&n.push(i);var u=fM.concat(n).sort().reverse(),s=new RegExp("(\\[[^\\[]*\\])|(\\\\)?("+u.join("|")+"|.)","g");return s}nx.exports=cM});var ox=yt((DE,ix)=>{var hM=rx();function dM(){var e=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],n=["January","February","March","April","May","June","July","August","September","October","November","December"],i=["Su","Mo","Tu","We","Th","Fr","Sa"],u=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],s=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],h=["AM","PM"],d=["am","pm"],v=["a.m.","p.m."],k={MMM:function(E){return e[E.getMonth()]},MMMM:function(E){return n[E.getMonth()]},dd:function(E){return i[E.getDay()]},ddd:function(E){return u[E.getDay()]},dddd:function(E){return s[E.getDay()]},A:function(E){return E.getHours()/12>=1?h[1]:h[0]},a:function(E){return E.getHours()/12>=1?d[1]:d[0]},aa:function(E){return E.getHours()/12>=1?v[1]:v[0]}},S=["M","D","DDD","d","Q","W"];return S.forEach(function(E){k[E+"o"]=function(O,ie){return pM(ie[E](O))}}),{formatters:k,formattingTokensRegExp:hM(k)}}function pM(e){var n=e%100;if(n>20||n<10)switch(n%10){case 1:return e+"st";case 2:return e+"nd";case 3:return e+"rd"}return e+"th"}ix.exports=dM});var ux=yt((AE,ax)=>{var vM=tx(),gM=ox();ax.exports={distanceInWords:vM(),format:gM()}});var px=yt((IE,dx)=>{var lx=Bw(),sx=Qw(),fx=Hp(),mM=xi(),yM=Jw(),cx=ux();function wM(e,n,i){var u=n?String(n):"YYYY-MM-DDTHH:mm:ss.SSSZ",s=i||{},h=s.locale,d=cx.format.formatters,v=cx.format.formattingTokensRegExp;h&&h.format&&h.format.formatters&&(d=h.format.formatters,h.format.formattingTokensRegExp&&(v=h.format.formattingTokensRegExp));var k=mM(e);if(!yM(k))return"Invalid Date";var S=xM(u,d,v);return S(k)}var Wp={M:function(e){return e.getMonth()+1},MM:function(e){return Dr(e.getMonth()+1,2)},Q:function(e){return Math.ceil((e.getMonth()+1)/3)},D:function(e){return e.getDate()},DD:function(e){return Dr(e.getDate(),2)},DDD:function(e){return lx(e)},DDDD:function(e){return Dr(lx(e),3)},d:function(e){return e.getDay()},E:function(e){return e.getDay()||7},W:function(e){return sx(e)},WW:function(e){return Dr(sx(e),2)},YY:function(e){return Dr(e.getFullYear(),4).substr(2)},YYYY:function(e){return Dr(e.getFullYear(),4)},GG:function(e){return String(fx(e)).substr(2)},GGGG:function(e){return fx(e)},H:function(e){return e.getHours()},HH:function(e){return Dr(e.getHours(),2)},h:function(e){var n=e.getHours();return n===0?12:n>12?n%12:n},hh:function(e){return Dr(Wp.h(e),2)},m:function(e){return e.getMinutes()},mm:function(e){return Dr(e.getMinutes(),2)},s:function(e){return e.getSeconds()},ss:function(e){return Dr(e.getSeconds(),2)},S:function(e){return Math.floor(e.getMilliseconds()/100)},SS:function(e){return Dr(Math.floor(e.getMilliseconds()/10),2)},SSS:function(e){return Dr(e.getMilliseconds(),3)},Z:function(e){return hx(e.getTimezoneOffset(),":")},ZZ:function(e){return hx(e.getTimezoneOffset())},X:function(e){return Math.floor(e.getTime()/1e3)},x:function(e){return e.getTime()}};function xM(e,n,i){var u=e.match(i),s=u.length,h,d;for(h=0;h0?"-":"+",u=Math.abs(e),s=Math.floor(u/60),h=u%60;return i+Dr(s,2)+n+Dr(h,2)}function Dr(e,n){for(var i=Math.abs(e).toString();i.length{var kM=xi();function TM(e){var n=kM(e),i=n.getFullYear(),u=n.getMonth(),s=new Date(0);return s.setFullYear(i,u+1,0),s.setHours(0,0,0,0),s.getDate()}vx.exports=TM});var yx=yt((FE,mx)=>{var SM=xi(),bM=gx();function CM(e,n){var i=SM(e),u=Number(n),s=i.getMonth()+u,h=new Date(0);h.setFullYear(i.getFullYear(),s,1),h.setHours(0,0,0,0);var d=bM(h);return i.setMonth(s,Math.min(d,i.getDate())),i}mx.exports=CM});var xx=yt((zE,wx)=>{var MM=yx();function EM(e,n){var i=Number(n);return MM(e,-i)}wx.exports=EM});var Jo=yt((Of,Tx)=>{(function(e,n){typeof Of=="object"&&typeof Tx!="undefined"?n(Of):typeof define=="function"&&define.amd?define(["exports"],n):(e=e||self,n(e.d3=e.d3||{}))})(Of,function(e){"use strict";var n="http://www.w3.org/1999/xhtml",i={svg:"http://www.w3.org/2000/svg",xhtml:n,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function u(G){var se=G+="",qe=se.indexOf(":");return qe>=0&&(se=G.slice(0,qe))!=="xmlns"&&(G=G.slice(qe+1)),i.hasOwnProperty(se)?{space:i[se],local:G}:G}function s(G){return function(){var se=this.ownerDocument,qe=this.namespaceURI;return qe===n&&se.documentElement.namespaceURI===n?se.createElement(G):se.createElementNS(qe,G)}}function h(G){return function(){return this.ownerDocument.createElementNS(G.space,G.local)}}function d(G){var se=u(G);return(se.local?h:s)(se)}function v(){}function k(G){return G==null?v:function(){return this.querySelector(G)}}function S(G){typeof G!="function"&&(G=k(G));for(var se=this._groups,qe=se.length,de=new Array(qe),_=0;_=z&&(z=w+1);!(ae=ki[z])&&++z=0;)(be=de[_])&&(H&&be.compareDocumentPosition(H)^4&&H.parentNode.insertBefore(be,H),H=be);return this}function b(G){G||(G=U);function se(Vt,sn){return Vt&&sn?G(Vt.__data__,sn.__data__):!Vt-!sn}for(var qe=this._groups,de=qe.length,_=new Array(de),H=0;Hse?1:G>=se?0:NaN}function y(){var G=arguments[0];return arguments[0]=this,G.apply(null,arguments),this}function D(){var G=new Array(this.size()),se=-1;return this.each(function(){G[++se]=this}),G}function q(){for(var G=this._groups,se=0,qe=G.length;se1?this.each((se==null?Je:typeof se=="function"?ge:te)(G,se,qe??"")):Q(this.node(),G)}function Q(G,se){return G.style.getPropertyValue(se)||He(G).getComputedStyle(G,null).getPropertyValue(se)}function ee(G){return function(){delete this[G]}}function fe(G,se){return function(){this[G]=se}}function De(G,se){return function(){var qe=se.apply(this,arguments);qe==null?delete this[G]:this[G]=qe}}function at(G,se){return arguments.length>1?this.each((se==null?ee:typeof se=="function"?De:fe)(G,se)):this.node()[G]}function dt(G){return G.trim().split(/^|\s+/)}function Yt(G){return G.classList||new Gt(G)}function Gt(G){this._node=G,this._names=dt(G.getAttribute("class")||"")}Gt.prototype={add:function(G){var se=this._names.indexOf(G);se<0&&(this._names.push(G),this._node.setAttribute("class",this._names.join(" ")))},remove:function(G){var se=this._names.indexOf(G);se>=0&&(this._names.splice(se,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(G){return this._names.indexOf(G)>=0}};function Lt(G,se){for(var qe=Yt(G),de=-1,_=se.length;++de<_;)qe.add(se[de])}function Et(G,se){for(var qe=Yt(G),de=-1,_=se.length;++de<_;)qe.remove(se[de])}function Bt(G){return function(){Lt(this,G)}}function zt(G){return function(){Et(this,G)}}function Zt(G,se){return function(){(se.apply(this,arguments)?Lt:Et)(this,G)}}function pn(G,se){var qe=dt(G+"");if(arguments.length<2){for(var de=Yt(this.node()),_=-1,H=qe.length;++_=0&&(qe=se.slice(de+1),se=se.slice(0,de)),{type:se,name:qe}})}function L(G){return function(){var se=this.__on;if(!!se){for(var qe=0,de=-1,_=se.length,H;qe<_;++qe)H=se[qe],(!G.type||H.type===G.type)&&H.name===G.name?this.removeEventListener(H.type,H.listener,H.capture):se[++de]=H;++de?se.length=de:delete this.__on}}}function V(G,se,qe){var de=K.hasOwnProperty(G.type)?F:$;return function(_,H,be){var Ne=this.__on,Ze,ft=de(se,H,be);if(Ne){for(var Qe=0,Vt=Ne.length;Qe{(function(e,n){typeof Df=="object"&&typeof Sx!="undefined"?n(Df):typeof define=="function"&&define.amd?define(["exports"],n):n(e.d3=e.d3||{})})(Df,function(e){"use strict";var n="$";function i(){}i.prototype=u.prototype={constructor:i,has:function(ne){return n+ne in this},get:function(ne){return this[n+ne]},set:function(ne,R){return this[n+ne]=R,this},remove:function(ne){var R=n+ne;return R in this&&delete this[R]},clear:function(){for(var ne in this)ne[0]===n&&delete this[ne]},keys:function(){var ne=[];for(var R in this)R[0]===n&&ne.push(R.slice(1));return ne},values:function(){var ne=[];for(var R in this)R[0]===n&&ne.push(this[R]);return ne},entries:function(){var ne=[];for(var R in this)R[0]===n&&ne.push({key:R.slice(1),value:this[R]});return ne},size:function(){var ne=0;for(var R in this)R[0]===n&&++ne;return ne},empty:function(){for(var ne in this)if(ne[0]===n)return!1;return!0},each:function(ne){for(var R in this)R[0]===n&&ne(this[R],R.slice(1),this)}};function u(ne,R){var I=new i;if(ne instanceof i)ne.each(function(B,c){I.set(c,B)});else if(Array.isArray(ne)){var Y=-1,le=ne.length,pe;if(R==null)for(;++Y=ne.length)return I!=null&&B.sort(I),Y!=null?Y(B):B;for(var P=-1,b=B.length,U=ne[c++],y,D,q=u(),oe,Le=g();++Pne.length)return B;var g,x=R[c-1];return Y!=null&&c>=ne.length?g=B.entries():(g=[],B.each(function(P,b){g.push({key:b,values:Re(P,c)})})),x!=null?g.sort(function(P,b){return x(P.key,b.key)}):g}return le={object:function(B){return pe(B,0,h,d)},map:function(B){return pe(B,0,v,k)},entries:function(B){return Re(pe(B,0,v,k),0)},key:function(B){return ne.push(B),le},sortKeys:function(B){return R[ne.length-1]=B,le},sortValues:function(B){return I=B,le},rollup:function(B){return Y=B,le}}}function h(){return{}}function d(ne,R,I){ne[R]=I}function v(){return u()}function k(ne,R,I){ne.set(R,I)}function S(){}var E=u.prototype;S.prototype=O.prototype={constructor:S,has:E.has,add:function(ne){return ne+="",this[n+ne]=ne,this},remove:E.remove,clear:E.clear,values:E.keys,size:E.size,empty:E.empty,each:E.each};function O(ne,R){var I=new S;if(ne instanceof S)ne.each(function(pe){I.add(pe)});else if(ne){var Y=-1,le=ne.length;if(R==null)for(;++Y{(function(e,n){typeof Af=="object"&&typeof bx!="undefined"?n(Af):typeof define=="function"&&define.amd?define(["exports"],n):n(e.d3=e.d3||{})})(Af,function(e){"use strict";function n(te,ge){return tege?1:te>=ge?0:NaN}function i(te){return te.length===1&&(te=u(te)),{left:function(ge,Oe,Q,ee){for(Q==null&&(Q=0),ee==null&&(ee=ge.length);Q>>1;te(ge[fe],Oe)<0?Q=fe+1:ee=fe}return Q},right:function(ge,Oe,Q,ee){for(Q==null&&(Q=0),ee==null&&(ee=ge.length);Q>>1;te(ge[fe],Oe)>0?ee=fe:Q=fe+1}return Q}}}function u(te){return function(ge,Oe){return n(te(ge),Oe)}}var s=i(n),h=s.right,d=s.left;function v(te,ge){ge==null&&(ge=k);for(var Oe=0,Q=te.length-1,ee=te[0],fe=new Array(Q<0?0:Q);Oete?1:ge>=te?0:NaN}function O(te){return te===null?NaN:+te}function ie(te,ge){var Oe=te.length,Q=0,ee=-1,fe=0,De,at,dt=0;if(ge==null)for(;++ee1)return dt/(Q-1)}function ve(te,ge){var Oe=ie(te,ge);return Oe&&Math.sqrt(Oe)}function Ee(te,ge){var Oe=te.length,Q=-1,ee,fe,De;if(ge==null){for(;++Q=ee)for(fe=De=ee;++Qee&&(fe=ee),De=ee)for(fe=De=ee;++Qee&&(fe=ee),De0)return[te];if((Q=ge0)for(te=Math.ceil(te/at),ge=Math.floor(ge/at),De=new Array(fe=Math.ceil(ge-te+1));++ee=0?(fe>=Re?10:fe>=B?5:fe>=c?2:1)*Math.pow(10,ee):-Math.pow(10,-ee)/(fe>=Re?10:fe>=B?5:fe>=c?2:1)}function P(te,ge,Oe){var Q=Math.abs(ge-te)/Math.max(0,Oe),ee=Math.pow(10,Math.floor(Math.log(Q)/Math.LN10)),fe=Q/ee;return fe>=Re?ee*=10:fe>=B?ee*=5:fe>=c&&(ee*=2),geLt;)Et.pop(),--Bt;var zt=new Array(Bt+1),Zt;for(fe=0;fe<=Bt;++fe)Zt=zt[fe]=[],Zt.x0=fe>0?Et[fe-1]:Gt,Zt.x1=fe=1)return+Oe(te[Q-1],Q-1,te);var Q,ee=(Q-1)*ge,fe=Math.floor(ee),De=+Oe(te[fe],fe,te),at=+Oe(te[fe+1],fe+1,te);return De+(at-De)*(ee-fe)}}function D(te,ge,Oe){return te=I.call(te,O).sort(n),Math.ceil((Oe-ge)/(2*(y(te,.75)-y(te,.25))*Math.pow(te.length,-1/3)))}function q(te,ge,Oe){return Math.ceil((Oe-ge)/(3.5*ve(te)*Math.pow(te.length,-1/3)))}function oe(te,ge){var Oe=te.length,Q=-1,ee,fe;if(ge==null){for(;++Q=ee)for(fe=ee;++Qfe&&(fe=ee)}else for(;++Q=ee)for(fe=ee;++Qfe&&(fe=ee);return fe}function Le(te,ge){var Oe=te.length,Q=Oe,ee=-1,fe,De=0;if(ge==null)for(;++ee=0;)for(De=te[ge],Oe=De.length;--Oe>=0;)fe[--ee]=De[Oe];return fe}function We(te,ge){var Oe=te.length,Q=-1,ee,fe;if(ge==null){for(;++Q=ee)for(fe=ee;++Qee&&(fe=ee)}else for(;++Q=ee)for(fe=ee;++Qee&&(fe=ee);return fe}function ce(te,ge){for(var Oe=ge.length,Q=new Array(Oe);Oe--;)Q[Oe]=te[ge[Oe]];return Q}function ke(te,ge){if(!!(Oe=te.length)){var Oe,Q=0,ee=0,fe,De=te[ee];for(ge==null&&(ge=n);++Q{(function(e,n){typeof If=="object"&&typeof Mx!="undefined"?n(If):typeof define=="function"&&define.amd?define(["exports"],n):(e=e||self,n(e.d3=e.d3||{}))})(If,function(e){"use strict";function n(M,J,Se){M.prototype=J.prototype=Se,Se.constructor=M}function i(M,J){var Se=Object.create(M.prototype);for(var ze in J)Se[ze]=J[ze];return Se}function u(){}var s=.7,h=1/s,d="\\s*([+-]?\\d+)\\s*",v="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",k="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",S=/^#([0-9a-f]{3,8})$/,E=new RegExp("^rgb\\("+[d,d,d]+"\\)$"),O=new RegExp("^rgb\\("+[k,k,k]+"\\)$"),ie=new RegExp("^rgba\\("+[d,d,d,v]+"\\)$"),ve=new RegExp("^rgba\\("+[k,k,k,v]+"\\)$"),Ee=new RegExp("^hsl\\("+[v,k,k]+"\\)$"),ne=new RegExp("^hsla\\("+[v,k,k,v]+"\\)$"),R={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};n(u,pe,{copy:function(M){return Object.assign(new this.constructor,this,M)},displayable:function(){return this.rgb().displayable()},hex:I,formatHex:I,formatHsl:Y,formatRgb:le,toString:le});function I(){return this.rgb().formatHex()}function Y(){return D(this).formatHsl()}function le(){return this.rgb().formatRgb()}function pe(M){var J,Se;return M=(M+"").trim().toLowerCase(),(J=S.exec(M))?(Se=J[1].length,J=parseInt(J[1],16),Se===6?Re(J):Se===3?new x(J>>8&15|J>>4&240,J>>4&15|J&240,(J&15)<<4|J&15,1):Se===8?B(J>>24&255,J>>16&255,J>>8&255,(J&255)/255):Se===4?B(J>>12&15|J>>8&240,J>>8&15|J>>4&240,J>>4&15|J&240,((J&15)<<4|J&15)/255):null):(J=E.exec(M))?new x(J[1],J[2],J[3],1):(J=O.exec(M))?new x(J[1]*255/100,J[2]*255/100,J[3]*255/100,1):(J=ie.exec(M))?B(J[1],J[2],J[3],J[4]):(J=ve.exec(M))?B(J[1]*255/100,J[2]*255/100,J[3]*255/100,J[4]):(J=Ee.exec(M))?y(J[1],J[2]/100,J[3]/100,1):(J=ne.exec(M))?y(J[1],J[2]/100,J[3]/100,J[4]):R.hasOwnProperty(M)?Re(R[M]):M==="transparent"?new x(NaN,NaN,NaN,0):null}function Re(M){return new x(M>>16&255,M>>8&255,M&255,1)}function B(M,J,Se,ze){return ze<=0&&(M=J=Se=NaN),new x(M,J,Se,ze)}function c(M){return M instanceof u||(M=pe(M)),M?(M=M.rgb(),new x(M.r,M.g,M.b,M.opacity)):new x}function g(M,J,Se,ze){return arguments.length===1?c(M):new x(M,J,Se,ze??1)}function x(M,J,Se,ze){this.r=+M,this.g=+J,this.b=+Se,this.opacity=+ze}n(x,g,i(u,{brighter:function(M){return M=M==null?h:Math.pow(h,M),new x(this.r*M,this.g*M,this.b*M,this.opacity)},darker:function(M){return M=M==null?s:Math.pow(s,M),new x(this.r*M,this.g*M,this.b*M,this.opacity)},rgb:function(){return this},displayable:function(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:P,formatHex:P,formatRgb:b,toString:b}));function P(){return"#"+U(this.r)+U(this.g)+U(this.b)}function b(){var M=this.opacity;return M=isNaN(M)?1:Math.max(0,Math.min(1,M)),(M===1?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(M===1?")":", "+M+")")}function U(M){return M=Math.max(0,Math.min(255,Math.round(M)||0)),(M<16?"0":"")+M.toString(16)}function y(M,J,Se,ze){return ze<=0?M=J=Se=NaN:Se<=0||Se>=1?M=J=NaN:J<=0&&(M=NaN),new oe(M,J,Se,ze)}function D(M){if(M instanceof oe)return new oe(M.h,M.s,M.l,M.opacity);if(M instanceof u||(M=pe(M)),!M)return new oe;if(M instanceof oe)return M;M=M.rgb();var J=M.r/255,Se=M.g/255,ze=M.b/255,tt=Math.min(J,Se,ze),ct=Math.max(J,Se,ze),ht=NaN,wt=ct-tt,bt=(ct+tt)/2;return wt?(J===ct?ht=(Se-ze)/wt+(Se0&&bt<1?0:ht,new oe(ht,wt,bt,M.opacity)}function q(M,J,Se,ze){return arguments.length===1?D(M):new oe(M,J,Se,ze??1)}function oe(M,J,Se,ze){this.h=+M,this.s=+J,this.l=+Se,this.opacity=+ze}n(oe,q,i(u,{brighter:function(M){return M=M==null?h:Math.pow(h,M),new oe(this.h,this.s,this.l*M,this.opacity)},darker:function(M){return M=M==null?s:Math.pow(s,M),new oe(this.h,this.s,this.l*M,this.opacity)},rgb:function(){var M=this.h%360+(this.h<0)*360,J=isNaN(M)||isNaN(this.s)?0:this.s,Se=this.l,ze=Se+(Se<.5?Se:1-Se)*J,tt=2*Se-ze;return new x(Le(M>=240?M-240:M+120,tt,ze),Le(M,tt,ze),Le(M<120?M+240:M-120,tt,ze),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl:function(){var M=this.opacity;return M=isNaN(M)?1:Math.max(0,Math.min(1,M)),(M===1?"hsl(":"hsla(")+(this.h||0)+", "+(this.s||0)*100+"%, "+(this.l||0)*100+"%"+(M===1?")":", "+M+")")}}));function Le(M,J,Se){return(M<60?J+(Se-J)*M/60:M<180?Se:M<240?J+(Se-J)*(240-M)/60:J)*255}var we=Math.PI/180,re=180/Math.PI,We=18,ce=.96422,ke=1,Ce=.82521,me=4/29,Ue=6/29,He=3*Ue*Ue,Je=Ue*Ue*Ue;function te(M){if(M instanceof Q)return new Q(M.l,M.a,M.b,M.opacity);if(M instanceof Lt)return Et(M);M instanceof x||(M=c(M));var J=at(M.r),Se=at(M.g),ze=at(M.b),tt=ee((.2225045*J+.7168786*Se+.0606169*ze)/ke),ct,ht;return J===Se&&Se===ze?ct=ht=tt:(ct=ee((.4360747*J+.3850649*Se+.1430804*ze)/ce),ht=ee((.0139322*J+.0971045*Se+.7141733*ze)/Ce)),new Q(116*tt-16,500*(ct-tt),200*(tt-ht),M.opacity)}function ge(M,J){return new Q(M,0,0,J??1)}function Oe(M,J,Se,ze){return arguments.length===1?te(M):new Q(M,J,Se,ze??1)}function Q(M,J,Se,ze){this.l=+M,this.a=+J,this.b=+Se,this.opacity=+ze}n(Q,Oe,i(u,{brighter:function(M){return new Q(this.l+We*(M??1),this.a,this.b,this.opacity)},darker:function(M){return new Q(this.l-We*(M??1),this.a,this.b,this.opacity)},rgb:function(){var M=(this.l+16)/116,J=isNaN(this.a)?M:M+this.a/500,Se=isNaN(this.b)?M:M-this.b/200;return J=ce*fe(J),M=ke*fe(M),Se=Ce*fe(Se),new x(De(3.1338561*J-1.6168667*M-.4906146*Se),De(-.9787684*J+1.9161415*M+.033454*Se),De(.0719453*J-.2289914*M+1.4052427*Se),this.opacity)}}));function ee(M){return M>Je?Math.pow(M,1/3):M/He+me}function fe(M){return M>Ue?M*M*M:He*(M-me)}function De(M){return 255*(M<=.0031308?12.92*M:1.055*Math.pow(M,1/2.4)-.055)}function at(M){return(M/=255)<=.04045?M/12.92:Math.pow((M+.055)/1.055,2.4)}function dt(M){if(M instanceof Lt)return new Lt(M.h,M.c,M.l,M.opacity);if(M instanceof Q||(M=te(M)),M.a===0&&M.b===0)return new Lt(NaN,0{(function(e,n){typeof Ff=="object"&&typeof Ex!="undefined"?n(Ff,Rf()):typeof define=="function"&&define.amd?define(["exports","d3-color"],n):(e=e||self,n(e.d3=e.d3||{},e.d3))})(Ff,function(e,n){"use strict";function i(A,j,Ae,Xe,je){var M=A*A,J=M*A;return((1-3*A+3*M-J)*j+(4-6*M+3*J)*Ae+(1+3*A+3*M-3*J)*Xe+J*je)/6}function u(A){var j=A.length-1;return function(Ae){var Xe=Ae<=0?Ae=0:Ae>=1?(Ae=1,j-1):Math.floor(Ae*j),je=A[Xe],M=A[Xe+1],J=Xe>0?A[Xe-1]:2*je-M,Se=Xe180||Ae<-180?Ae-360*Math.round(Ae/360):Ae):h(isNaN(A)?j:A)}function S(A){return(A=+A)==1?E:function(j,Ae){return Ae-j?v(j,Ae,A):h(isNaN(j)?Ae:j)}}function E(A,j){var Ae=j-A;return Ae?d(A,Ae):h(isNaN(A)?j:A)}var O=function A(j){var Ae=S(j);function Xe(je,M){var J=Ae((je=n.rgb(je)).r,(M=n.rgb(M)).r),Se=Ae(je.g,M.g),ze=Ae(je.b,M.b),tt=E(je.opacity,M.opacity);return function(ct){return je.r=J(ct),je.g=Se(ct),je.b=ze(ct),je.opacity=tt(ct),je+""}}return Xe.gamma=A,Xe}(1);function ie(A){return function(j){var Ae=j.length,Xe=new Array(Ae),je=new Array(Ae),M=new Array(Ae),J,Se;for(J=0;JAe&&(M=j.slice(Ae,M),Se[J]?Se[J]+=M:Se[++J]=M),(Xe=Xe[0])===(je=je[0])?Se[J]?Se[J]+=je:Se[++J]=je:(Se[++J]=null,ze.push({i:J,x:pe(Xe,je)})),Ae=c.lastIndex;return Ae180?ct+=360:ct-tt>180&&(tt+=360),wt.push({i:ht.push(je(ht)+"rotate(",null,Xe)-2,x:pe(tt,ct)})):ct&&ht.push(je(ht)+"rotate("+ct+Xe)}function Se(tt,ct,ht,wt){tt!==ct?wt.push({i:ht.push(je(ht)+"skewX(",null,Xe)-2,x:pe(tt,ct)}):ct&&ht.push(je(ht)+"skewX("+ct+Xe)}function ze(tt,ct,ht,wt,bt,Rt){if(tt!==ht||ct!==wt){var Wt=bt.push(je(bt)+"scale(",null,",",null,")");Rt.push({i:Wt-4,x:pe(tt,ht)},{i:Wt-2,x:pe(ct,wt)})}else(ht!==1||wt!==1)&&bt.push(je(bt)+"scale("+ht+","+wt+")")}return function(tt,ct){var ht=[],wt=[];return tt=A(tt),ct=A(ct),M(tt.translateX,tt.translateY,ct.translateX,ct.translateY,ht,wt),J(tt.rotate,ct.rotate,ht,wt),Se(tt.skewX,ct.skewX,ht,wt),ze(tt.scaleX,tt.scaleY,ct.scaleX,ct.scaleY,ht,wt),tt=ct=null,function(bt){for(var Rt=-1,Wt=wt.length,ln;++Rt{(function(e,n){typeof Hf=="object"&&typeof Nx!="undefined"?n(Hf):typeof define=="function"&&define.amd?define(["exports"],n):(e=typeof globalThis!="undefined"?globalThis:e||self,n(e.d3=e.d3||{}))})(Hf,function(e){"use strict";function n(c){return Math.abs(c=Math.round(c))>=1e21?c.toLocaleString("en").replace(/,/g,""):c.toString(10)}function i(c,g){if((x=(c=g?c.toExponential(g-1):c.toExponential()).indexOf("e"))<0)return null;var x,P=c.slice(0,x);return[P.length>1?P[0]+P.slice(2):P,+c.slice(x+1)]}function u(c){return c=i(Math.abs(c)),c?c[1]:NaN}function s(c,g){return function(x,P){for(var b=x.length,U=[],y=0,D=c[0],q=0;b>0&&D>0&&(q+D+1>P&&(D=Math.max(1,P-q)),U.push(x.substring(b-=D,b+D)),!((q+=D+1)>P));)D=c[y=(y+1)%c.length];return U.reverse().join(g)}}function h(c){return function(g){return g.replace(/[0-9]/g,function(x){return c[+x]})}}var d=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function v(c){if(!(g=d.exec(c)))throw new Error("invalid format: "+c);var g;return new k({fill:g[1],align:g[2],sign:g[3],symbol:g[4],zero:g[5],width:g[6],comma:g[7],precision:g[8]&&g[8].slice(1),trim:g[9],type:g[10]})}v.prototype=k.prototype;function k(c){this.fill=c.fill===void 0?" ":c.fill+"",this.align=c.align===void 0?">":c.align+"",this.sign=c.sign===void 0?"-":c.sign+"",this.symbol=c.symbol===void 0?"":c.symbol+"",this.zero=!!c.zero,this.width=c.width===void 0?void 0:+c.width,this.comma=!!c.comma,this.precision=c.precision===void 0?void 0:+c.precision,this.trim=!!c.trim,this.type=c.type===void 0?"":c.type+""}k.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function S(c){e:for(var g=c.length,x=1,P=-1,b;x0&&(P=0);break}return P>0?c.slice(0,P)+c.slice(b+1):c}var E;function O(c,g){var x=i(c,g);if(!x)return c+"";var P=x[0],b=x[1],U=b-(E=Math.max(-8,Math.min(8,Math.floor(b/3)))*3)+1,y=P.length;return U===y?P:U>y?P+new Array(U-y+1).join("0"):U>0?P.slice(0,U)+"."+P.slice(U):"0."+new Array(1-U).join("0")+i(c,Math.max(0,g+U-1))[0]}function ie(c,g){var x=i(c,g);if(!x)return c+"";var P=x[0],b=x[1];return b<0?"0."+new Array(-b).join("0")+P:P.length>b+1?P.slice(0,b+1)+"."+P.slice(b+1):P+new Array(b-P.length+2).join("0")}var ve={"%":function(c,g){return(c*100).toFixed(g)},b:function(c){return Math.round(c).toString(2)},c:function(c){return c+""},d:n,e:function(c,g){return c.toExponential(g)},f:function(c,g){return c.toFixed(g)},g:function(c,g){return c.toPrecision(g)},o:function(c){return Math.round(c).toString(8)},p:function(c,g){return ie(c*100,g)},r:ie,s:O,X:function(c){return Math.round(c).toString(16).toUpperCase()},x:function(c){return Math.round(c).toString(16)}};function Ee(c){return c}var ne=Array.prototype.map,R=["y","z","a","f","p","n","\xB5","m","","k","M","G","T","P","E","Z","Y"];function I(c){var g=c.grouping===void 0||c.thousands===void 0?Ee:s(ne.call(c.grouping,Number),c.thousands+""),x=c.currency===void 0?"":c.currency[0]+"",P=c.currency===void 0?"":c.currency[1]+"",b=c.decimal===void 0?".":c.decimal+"",U=c.numerals===void 0?Ee:h(ne.call(c.numerals,String)),y=c.percent===void 0?"%":c.percent+"",D=c.minus===void 0?"-":c.minus+"",q=c.nan===void 0?"NaN":c.nan+"";function oe(we){we=v(we);var re=we.fill,We=we.align,ce=we.sign,ke=we.symbol,Ce=we.zero,me=we.width,Ue=we.comma,He=we.precision,Je=we.trim,te=we.type;te==="n"?(Ue=!0,te="g"):ve[te]||(He===void 0&&(He=12),Je=!0,te="g"),(Ce||re==="0"&&We==="=")&&(Ce=!0,re="0",We="=");var ge=ke==="$"?x:ke==="#"&&/[boxX]/.test(te)?"0"+te.toLowerCase():"",Oe=ke==="$"?P:/[%p]/.test(te)?y:"",Q=ve[te],ee=/[defgprs%]/.test(te);He=He===void 0?6:/[gprs]/.test(te)?Math.max(1,Math.min(21,He)):Math.max(0,Math.min(20,He));function fe(De){var at=ge,dt=Oe,Yt,Gt,Lt;if(te==="c")dt=Q(De)+dt,De="";else{De=+De;var Et=De<0||1/De<0;if(De=isNaN(De)?q:Q(Math.abs(De),He),Je&&(De=S(De)),Et&&+De==0&&ce!=="+"&&(Et=!1),at=(Et?ce==="("?ce:D:ce==="-"||ce==="("?"":ce)+at,dt=(te==="s"?R[8+E/3]:"")+dt+(Et&&ce==="("?")":""),ee){for(Yt=-1,Gt=De.length;++YtLt||Lt>57){dt=(Lt===46?b+De.slice(Yt+1):De.slice(Yt))+dt,De=De.slice(0,Yt);break}}}Ue&&!Ce&&(De=g(De,1/0));var Bt=at.length+De.length+dt.length,zt=Bt>1)+at+De+dt+zt.slice(Bt);break;default:De=zt+at+De+dt;break}return U(De)}return fe.toString=function(){return we+""},fe}function Le(we,re){var We=oe((we=v(we),we.type="f",we)),ce=Math.max(-8,Math.min(8,Math.floor(u(re)/3)))*3,ke=Math.pow(10,-ce),Ce=R[8+ce/3];return function(me){return We(ke*me)+Ce}}return{format:oe,formatPrefix:Le}}var Y;le({decimal:".",thousands:",",grouping:[3],currency:["$",""],minus:"-"});function le(c){return Y=I(c),e.format=Y.format,e.formatPrefix=Y.formatPrefix,Y}function pe(c){return Math.max(0,-u(Math.abs(c)))}function Re(c,g){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(u(g)/3)))*3-u(Math.abs(c)))}function B(c,g){return c=Math.abs(c),g=Math.abs(g)-c,Math.max(0,u(g)-u(c))+1}e.FormatSpecifier=k,e.formatDefaultLocale=le,e.formatLocale=I,e.formatSpecifier=v,e.precisionFixed=pe,e.precisionPrefix=Re,e.precisionRound=B,Object.defineProperty(e,"__esModule",{value:!0})})});var jp=yt((Wf,Lx)=>{(function(e,n){typeof Wf=="object"&&typeof Lx!="undefined"?n(Wf):typeof define=="function"&&define.amd?define(["exports"],n):(e=e||self,n(e.d3=e.d3||{}))})(Wf,function(e){"use strict";var n=new Date,i=new Date;function u(A,j,Ae,Xe){function je(M){return A(M=arguments.length===0?new Date:new Date(+M)),M}return je.floor=function(M){return A(M=new Date(+M)),M},je.ceil=function(M){return A(M=new Date(M-1)),j(M,1),A(M),M},je.round=function(M){var J=je(M),Se=je.ceil(M);return M-J0))return ze;do ze.push(tt=new Date(+M)),j(M,Se),A(M);while(tt=J)for(;A(J),!M(J);)J.setTime(J-1)},function(J,Se){if(J>=J)if(Se<0)for(;++Se<=0;)for(;j(J,-1),!M(J););else for(;--Se>=0;)for(;j(J,1),!M(J););})},Ae&&(je.count=function(M,J){return n.setTime(+M),i.setTime(+J),A(n),A(i),Math.floor(Ae(n,i))},je.every=function(M){return M=Math.floor(M),!isFinite(M)||!(M>0)?null:M>1?je.filter(Xe?function(J){return Xe(J)%M==0}:function(J){return je.count(0,J)%M==0}):je}),je}var s=u(function(){},function(A,j){A.setTime(+A+j)},function(A,j){return j-A});s.every=function(A){return A=Math.floor(A),!isFinite(A)||!(A>0)?null:A>1?u(function(j){j.setTime(Math.floor(j/A)*A)},function(j,Ae){j.setTime(+j+Ae*A)},function(j,Ae){return(Ae-j)/A}):s};var h=s.range,d=1e3,v=6e4,k=36e5,S=864e5,E=6048e5,O=u(function(A){A.setTime(A-A.getMilliseconds())},function(A,j){A.setTime(+A+j*d)},function(A,j){return(j-A)/d},function(A){return A.getUTCSeconds()}),ie=O.range,ve=u(function(A){A.setTime(A-A.getMilliseconds()-A.getSeconds()*d)},function(A,j){A.setTime(+A+j*v)},function(A,j){return(j-A)/v},function(A){return A.getMinutes()}),Ee=ve.range,ne=u(function(A){A.setTime(A-A.getMilliseconds()-A.getSeconds()*d-A.getMinutes()*v)},function(A,j){A.setTime(+A+j*k)},function(A,j){return(j-A)/k},function(A){return A.getHours()}),R=ne.range,I=u(function(A){A.setHours(0,0,0,0)},function(A,j){A.setDate(A.getDate()+j)},function(A,j){return(j-A-(j.getTimezoneOffset()-A.getTimezoneOffset())*v)/S},function(A){return A.getDate()-1}),Y=I.range;function le(A){return u(function(j){j.setDate(j.getDate()-(j.getDay()+7-A)%7),j.setHours(0,0,0,0)},function(j,Ae){j.setDate(j.getDate()+Ae*7)},function(j,Ae){return(Ae-j-(Ae.getTimezoneOffset()-j.getTimezoneOffset())*v)/E})}var pe=le(0),Re=le(1),B=le(2),c=le(3),g=le(4),x=le(5),P=le(6),b=pe.range,U=Re.range,y=B.range,D=c.range,q=g.range,oe=x.range,Le=P.range,we=u(function(A){A.setDate(1),A.setHours(0,0,0,0)},function(A,j){A.setMonth(A.getMonth()+j)},function(A,j){return j.getMonth()-A.getMonth()+(j.getFullYear()-A.getFullYear())*12},function(A){return A.getMonth()}),re=we.range,We=u(function(A){A.setMonth(0,1),A.setHours(0,0,0,0)},function(A,j){A.setFullYear(A.getFullYear()+j)},function(A,j){return j.getFullYear()-A.getFullYear()},function(A){return A.getFullYear()});We.every=function(A){return!isFinite(A=Math.floor(A))||!(A>0)?null:u(function(j){j.setFullYear(Math.floor(j.getFullYear()/A)*A),j.setMonth(0,1),j.setHours(0,0,0,0)},function(j,Ae){j.setFullYear(j.getFullYear()+Ae*A)})};var ce=We.range,ke=u(function(A){A.setUTCSeconds(0,0)},function(A,j){A.setTime(+A+j*v)},function(A,j){return(j-A)/v},function(A){return A.getUTCMinutes()}),Ce=ke.range,me=u(function(A){A.setUTCMinutes(0,0,0)},function(A,j){A.setTime(+A+j*k)},function(A,j){return(j-A)/k},function(A){return A.getUTCHours()}),Ue=me.range,He=u(function(A){A.setUTCHours(0,0,0,0)},function(A,j){A.setUTCDate(A.getUTCDate()+j)},function(A,j){return(j-A)/S},function(A){return A.getUTCDate()-1}),Je=He.range;function te(A){return u(function(j){j.setUTCDate(j.getUTCDate()-(j.getUTCDay()+7-A)%7),j.setUTCHours(0,0,0,0)},function(j,Ae){j.setUTCDate(j.getUTCDate()+Ae*7)},function(j,Ae){return(Ae-j)/E})}var ge=te(0),Oe=te(1),Q=te(2),ee=te(3),fe=te(4),De=te(5),at=te(6),dt=ge.range,Yt=Oe.range,Gt=Q.range,Lt=ee.range,Et=fe.range,Bt=De.range,zt=at.range,Zt=u(function(A){A.setUTCDate(1),A.setUTCHours(0,0,0,0)},function(A,j){A.setUTCMonth(A.getUTCMonth()+j)},function(A,j){return j.getUTCMonth()-A.getUTCMonth()+(j.getUTCFullYear()-A.getUTCFullYear())*12},function(A){return A.getUTCMonth()}),pn=Zt.range,$t=u(function(A){A.setUTCMonth(0,1),A.setUTCHours(0,0,0,0)},function(A,j){A.setUTCFullYear(A.getUTCFullYear()+j)},function(A,j){return j.getUTCFullYear()-A.getUTCFullYear()},function(A){return A.getUTCFullYear()});$t.every=function(A){return!isFinite(A=Math.floor(A))||!(A>0)?null:u(function(j){j.setUTCFullYear(Math.floor(j.getUTCFullYear()/A)*A),j.setUTCMonth(0,1),j.setUTCHours(0,0,0,0)},function(j,Ae){j.setUTCFullYear(j.getUTCFullYear()+Ae*A)})};var kn=$t.range;e.timeDay=I,e.timeDays=Y,e.timeFriday=x,e.timeFridays=oe,e.timeHour=ne,e.timeHours=R,e.timeInterval=u,e.timeMillisecond=s,e.timeMilliseconds=h,e.timeMinute=ve,e.timeMinutes=Ee,e.timeMonday=Re,e.timeMondays=U,e.timeMonth=we,e.timeMonths=re,e.timeSaturday=P,e.timeSaturdays=Le,e.timeSecond=O,e.timeSeconds=ie,e.timeSunday=pe,e.timeSundays=b,e.timeThursday=g,e.timeThursdays=q,e.timeTuesday=B,e.timeTuesdays=y,e.timeWednesday=c,e.timeWednesdays=D,e.timeWeek=pe,e.timeWeeks=b,e.timeYear=We,e.timeYears=ce,e.utcDay=He,e.utcDays=Je,e.utcFriday=De,e.utcFridays=Bt,e.utcHour=me,e.utcHours=Ue,e.utcMillisecond=s,e.utcMilliseconds=h,e.utcMinute=ke,e.utcMinutes=Ce,e.utcMonday=Oe,e.utcMondays=Yt,e.utcMonth=Zt,e.utcMonths=pn,e.utcSaturday=at,e.utcSaturdays=zt,e.utcSecond=O,e.utcSeconds=ie,e.utcSunday=ge,e.utcSundays=dt,e.utcThursday=fe,e.utcThursdays=Et,e.utcTuesday=Q,e.utcTuesdays=Gt,e.utcWednesday=ee,e.utcWednesdays=Lt,e.utcWeek=ge,e.utcWeeks=dt,e.utcYear=$t,e.utcYears=kn,Object.defineProperty(e,"__esModule",{value:!0})})});var Dx=yt((Uf,Ox)=>{(function(e,n){typeof Uf=="object"&&typeof Ox!="undefined"?n(Uf,jp()):typeof define=="function"&&define.amd?define(["exports","d3-time"],n):(e=e||self,n(e.d3=e.d3||{},e.d3))})(Uf,function(e,n){"use strict";function i(F){if(0<=F.y&&F.y<100){var $=new Date(-1,F.m,F.d,F.H,F.M,F.S,F.L);return $.setFullYear(F.y),$}return new Date(F.y,F.m,F.d,F.H,F.M,F.S,F.L)}function u(F){if(0<=F.y&&F.y<100){var $=new Date(Date.UTC(-1,F.m,F.d,F.H,F.M,F.S,F.L));return $.setUTCFullYear(F.y),$}return new Date(Date.UTC(F.y,F.m,F.d,F.H,F.M,F.S,F.L))}function s(F,$,N){return{y:F,m:$,d:N,H:0,M:0,S:0,L:0}}function h(F){var $=F.dateTime,N=F.date,L=F.time,V=F.periods,he=F.days,_e=F.shortDays,Fe=F.months,Ie=F.shortMonths,$e=ie(V),Ke=ve(V),et=ie(he),vt=ve(he),Ot=ie(_e),Ct=ve(_e),Nt=ie(Fe),Jt=ve(Fe),An=ie(Ie),bn=ve(Ie),Ut={a:Ze,A:ft,b:Qe,B:Vt,c:null,d:we,e:we,f:Ce,g:De,G:dt,H:re,I:We,j:ce,L:ke,m:me,M:Ue,p:sn,q:on,Q:wt,s:bt,S:He,u:Je,U:te,V:Oe,w:Q,W:ee,x:null,X:null,y:fe,Y:at,Z:Yt,"%":ht},st={a:In,A:_i,b:ki,B:Qr,c:null,d:Gt,e:Gt,f:Zt,g:Se,G:tt,H:Lt,I:Et,j:Bt,L:zt,m:pn,M:$t,p:w,q:z,Q:wt,s:bt,S:kn,u:A,U:j,V:Xe,w:je,W:M,x:null,X:null,y:J,Y:ze,Z:ct,"%":ht},Tt={a:se,A:qe,b:de,B:_,c:H,d:g,e:g,f:D,g:pe,G:le,H:P,I:P,j:x,L:y,m:c,M:b,p:G,q:B,Q:oe,s:Le,S:U,u:ne,U:R,V:I,w:Ee,W:Y,x:be,X:Ne,y:pe,Y:le,Z:Re,"%":q};Ut.x=rn(N,Ut),Ut.X=rn(L,Ut),Ut.c=rn($,Ut),st.x=rn(N,st),st.X=rn(L,st),st.c=rn($,st);function rn(W,ae){return function(Me){var ue=[],Ye=-1,xe=0,Ge=W.length,ot,rt,mt;for(Me instanceof Date||(Me=new Date(+Me));++Ye53)return null;"w"in ue||(ue.w=1),"Z"in ue?(xe=u(s(ue.y,0,1)),Ge=xe.getUTCDay(),xe=Ge>4||Ge===0?n.utcMonday.ceil(xe):n.utcMonday(xe),xe=n.utcDay.offset(xe,(ue.V-1)*7),ue.y=xe.getUTCFullYear(),ue.m=xe.getUTCMonth(),ue.d=xe.getUTCDate()+(ue.w+6)%7):(xe=i(s(ue.y,0,1)),Ge=xe.getDay(),xe=Ge>4||Ge===0?n.timeMonday.ceil(xe):n.timeMonday(xe),xe=n.timeDay.offset(xe,(ue.V-1)*7),ue.y=xe.getFullYear(),ue.m=xe.getMonth(),ue.d=xe.getDate()+(ue.w+6)%7)}else("W"in ue||"U"in ue)&&("w"in ue||(ue.w="u"in ue?ue.u%7:"W"in ue?1:0),Ge="Z"in ue?u(s(ue.y,0,1)).getUTCDay():i(s(ue.y,0,1)).getDay(),ue.m=0,ue.d="W"in ue?(ue.w+6)%7+ue.W*7-(Ge+5)%7:ue.w+ue.U*7-(Ge+6)%7);return"Z"in ue?(ue.H+=ue.Z/100|0,ue.M+=ue.Z%100,u(ue)):i(ue)}}function St(W,ae,Me,ue){for(var Ye=0,xe=ae.length,Ge=Me.length,ot,rt;Ye=Ge)return-1;if(ot=ae.charCodeAt(Ye++),ot===37){if(ot=ae.charAt(Ye++),rt=Tt[ot in d?ae.charAt(Ye++):ot],!rt||(ue=rt(W,Me,ue))<0)return-1}else if(ot!=Me.charCodeAt(ue++))return-1}return ue}function G(W,ae,Me){var ue=$e.exec(ae.slice(Me));return ue?(W.p=Ke[ue[0].toLowerCase()],Me+ue[0].length):-1}function se(W,ae,Me){var ue=Ot.exec(ae.slice(Me));return ue?(W.w=Ct[ue[0].toLowerCase()],Me+ue[0].length):-1}function qe(W,ae,Me){var ue=et.exec(ae.slice(Me));return ue?(W.w=vt[ue[0].toLowerCase()],Me+ue[0].length):-1}function de(W,ae,Me){var ue=An.exec(ae.slice(Me));return ue?(W.m=bn[ue[0].toLowerCase()],Me+ue[0].length):-1}function _(W,ae,Me){var ue=Nt.exec(ae.slice(Me));return ue?(W.m=Jt[ue[0].toLowerCase()],Me+ue[0].length):-1}function H(W,ae,Me){return St(W,$,ae,Me)}function be(W,ae,Me){return St(W,N,ae,Me)}function Ne(W,ae,Me){return St(W,L,ae,Me)}function Ze(W){return _e[W.getDay()]}function ft(W){return he[W.getDay()]}function Qe(W){return Ie[W.getMonth()]}function Vt(W){return Fe[W.getMonth()]}function sn(W){return V[+(W.getHours()>=12)]}function on(W){return 1+~~(W.getMonth()/3)}function In(W){return _e[W.getUTCDay()]}function _i(W){return he[W.getUTCDay()]}function ki(W){return Ie[W.getUTCMonth()]}function Qr(W){return Fe[W.getUTCMonth()]}function w(W){return V[+(W.getUTCHours()>=12)]}function z(W){return 1+~~(W.getUTCMonth()/3)}return{format:function(W){var ae=rn(W+="",Ut);return ae.toString=function(){return W},ae},parse:function(W){var ae=Xt(W+="",!1);return ae.toString=function(){return W},ae},utcFormat:function(W){var ae=rn(W+="",st);return ae.toString=function(){return W},ae},utcParse:function(W){var ae=Xt(W+="",!0);return ae.toString=function(){return W},ae}}}var d={"-":"",_:" ","0":"0"},v=/^\s*\d+/,k=/^%/,S=/[\\^$*+?|[\]().{}]/g;function E(F,$,N){var L=F<0?"-":"",V=(L?-F:F)+"",he=V.length;return L+(he68?1900:2e3),N+L[0].length):-1}function Re(F,$,N){var L=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec($.slice(N,N+6));return L?(F.Z=L[1]?0:-(L[2]+(L[3]||"00")),N+L[0].length):-1}function B(F,$,N){var L=v.exec($.slice(N,N+1));return L?(F.q=L[0]*3-3,N+L[0].length):-1}function c(F,$,N){var L=v.exec($.slice(N,N+2));return L?(F.m=L[0]-1,N+L[0].length):-1}function g(F,$,N){var L=v.exec($.slice(N,N+2));return L?(F.d=+L[0],N+L[0].length):-1}function x(F,$,N){var L=v.exec($.slice(N,N+3));return L?(F.m=0,F.d=+L[0],N+L[0].length):-1}function P(F,$,N){var L=v.exec($.slice(N,N+2));return L?(F.H=+L[0],N+L[0].length):-1}function b(F,$,N){var L=v.exec($.slice(N,N+2));return L?(F.M=+L[0],N+L[0].length):-1}function U(F,$,N){var L=v.exec($.slice(N,N+2));return L?(F.S=+L[0],N+L[0].length):-1}function y(F,$,N){var L=v.exec($.slice(N,N+3));return L?(F.L=+L[0],N+L[0].length):-1}function D(F,$,N){var L=v.exec($.slice(N,N+6));return L?(F.L=Math.floor(L[0]/1e3),N+L[0].length):-1}function q(F,$,N){var L=k.exec($.slice(N,N+1));return L?N+L[0].length:-1}function oe(F,$,N){var L=v.exec($.slice(N));return L?(F.Q=+L[0],N+L[0].length):-1}function Le(F,$,N){var L=v.exec($.slice(N));return L?(F.s=+L[0],N+L[0].length):-1}function we(F,$){return E(F.getDate(),$,2)}function re(F,$){return E(F.getHours(),$,2)}function We(F,$){return E(F.getHours()%12||12,$,2)}function ce(F,$){return E(1+n.timeDay.count(n.timeYear(F),F),$,3)}function ke(F,$){return E(F.getMilliseconds(),$,3)}function Ce(F,$){return ke(F,$)+"000"}function me(F,$){return E(F.getMonth()+1,$,2)}function Ue(F,$){return E(F.getMinutes(),$,2)}function He(F,$){return E(F.getSeconds(),$,2)}function Je(F){var $=F.getDay();return $===0?7:$}function te(F,$){return E(n.timeSunday.count(n.timeYear(F)-1,F),$,2)}function ge(F){var $=F.getDay();return $>=4||$===0?n.timeThursday(F):n.timeThursday.ceil(F)}function Oe(F,$){return F=ge(F),E(n.timeThursday.count(n.timeYear(F),F)+(n.timeYear(F).getDay()===4),$,2)}function Q(F){return F.getDay()}function ee(F,$){return E(n.timeMonday.count(n.timeYear(F)-1,F),$,2)}function fe(F,$){return E(F.getFullYear()%100,$,2)}function De(F,$){return F=ge(F),E(F.getFullYear()%100,$,2)}function at(F,$){return E(F.getFullYear()%1e4,$,4)}function dt(F,$){var N=F.getDay();return F=N>=4||N===0?n.timeThursday(F):n.timeThursday.ceil(F),E(F.getFullYear()%1e4,$,4)}function Yt(F){var $=F.getTimezoneOffset();return($>0?"-":($*=-1,"+"))+E($/60|0,"0",2)+E($%60,"0",2)}function Gt(F,$){return E(F.getUTCDate(),$,2)}function Lt(F,$){return E(F.getUTCHours(),$,2)}function Et(F,$){return E(F.getUTCHours()%12||12,$,2)}function Bt(F,$){return E(1+n.utcDay.count(n.utcYear(F),F),$,3)}function zt(F,$){return E(F.getUTCMilliseconds(),$,3)}function Zt(F,$){return zt(F,$)+"000"}function pn(F,$){return E(F.getUTCMonth()+1,$,2)}function $t(F,$){return E(F.getUTCMinutes(),$,2)}function kn(F,$){return E(F.getUTCSeconds(),$,2)}function A(F){var $=F.getUTCDay();return $===0?7:$}function j(F,$){return E(n.utcSunday.count(n.utcYear(F)-1,F),$,2)}function Ae(F){var $=F.getUTCDay();return $>=4||$===0?n.utcThursday(F):n.utcThursday.ceil(F)}function Xe(F,$){return F=Ae(F),E(n.utcThursday.count(n.utcYear(F),F)+(n.utcYear(F).getUTCDay()===4),$,2)}function je(F){return F.getUTCDay()}function M(F,$){return E(n.utcMonday.count(n.utcYear(F)-1,F),$,2)}function J(F,$){return E(F.getUTCFullYear()%100,$,2)}function Se(F,$){return F=Ae(F),E(F.getUTCFullYear()%100,$,2)}function ze(F,$){return E(F.getUTCFullYear()%1e4,$,4)}function tt(F,$){var N=F.getUTCDay();return F=N>=4||N===0?n.utcThursday(F):n.utcThursday.ceil(F),E(F.getUTCFullYear()%1e4,$,4)}function ct(){return"+0000"}function ht(){return"%"}function wt(F){return+F}function bt(F){return Math.floor(+F/1e3)}var Rt;Wt({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function Wt(F){return Rt=h(F),e.timeFormat=Rt.format,e.timeParse=Rt.parse,e.utcFormat=Rt.utcFormat,e.utcParse=Rt.utcParse,Rt}var ln="%Y-%m-%dT%H:%M:%S.%LZ";function nn(F){return F.toISOString()}var gn=Date.prototype.toISOString?nn:e.utcFormat(ln);function K(F){var $=new Date(F);return isNaN($)?null:$}var Pe=+new Date("2000-01-01T00:00:00.000Z")?K:e.utcParse(ln);e.isoFormat=gn,e.isoParse=Pe,e.timeFormatDefaultLocale=Wt,e.timeFormatLocale=h,Object.defineProperty(e,"__esModule",{value:!0})})});var Yp=yt((Bf,Ax)=>{(function(e,n){typeof Bf=="object"&&typeof Ax!="undefined"?n(Bf,Bp(),Cx(),zf(),Px(),jp(),Dx()):typeof define=="function"&&define.amd?define(["exports","d3-collection","d3-array","d3-interpolate","d3-format","d3-time","d3-time-format"],n):n(e.d3=e.d3||{},e.d3,e.d3,e.d3,e.d3,e.d3,e.d3)})(Bf,function(e,n,i,u,s,h,d){"use strict";function v(K,Pe){switch(arguments.length){case 0:break;case 1:this.range(K);break;default:this.range(Pe).domain(K);break}return this}function k(K,Pe){switch(arguments.length){case 0:break;case 1:this.interpolator(K);break;default:this.interpolator(Pe).domain(K);break}return this}var S=Array.prototype,E=S.map,O=S.slice,ie={name:"implicit"};function ve(){var K=n.map(),Pe=[],F=[],$=ie;function N(L){var V=L+"",he=K.get(V);if(!he){if($!==ie)return $;K.set(V,he=Pe.push(L))}return F[(he-1)%F.length]}return N.domain=function(L){if(!arguments.length)return Pe.slice();Pe=[],K=n.map();for(var V=-1,he=L.length,_e,Fe;++VF&&($=Pe,Pe=F,F=$),function(N){return Math.max(Pe,Math.min(F,N))}}function c(K,Pe,F){var $=K[0],N=K[1],L=Pe[0],V=Pe[1];return N<$?($=Re(N,$),L=F(V,L)):($=Re($,N),L=F(L,V)),function(he){return L($(he))}}function g(K,Pe,F){var $=Math.min(K.length,Pe.length)-1,N=new Array($),L=new Array($),V=-1;for(K[$]2?g:c,_e=Fe=null,$e}function $e(Ke){return isNaN(Ke=+Ke)?L:(_e||(_e=he(K.map($),Pe,F)))($(V(Ke)))}return $e.invert=function(Ke){return V(N((Fe||(Fe=he(Pe,K.map($),u.interpolateNumber)))(Ke)))},$e.domain=function(Ke){return arguments.length?(K=E.call(Ke,Y),V===pe||(V=B(K)),Ie()):K.slice()},$e.range=function(Ke){return arguments.length?(Pe=O.call(Ke),Ie()):Pe.slice()},$e.rangeRound=function(Ke){return Pe=O.call(Ke),F=u.interpolateRound,Ie()},$e.clamp=function(Ke){return arguments.length?(V=Ke?B(K):pe,$e):V!==pe},$e.interpolate=function(Ke){return arguments.length?(F=Ke,Ie()):F},$e.unknown=function(Ke){return arguments.length?(L=Ke,$e):L},function(Ke,et){return $=Ke,N=et,Ie()}}function b(K,Pe){return P()(K,Pe)}function U(K,Pe,F,$){var N=i.tickStep(K,Pe,F),L;switch($=s.formatSpecifier($??",f"),$.type){case"s":{var V=Math.max(Math.abs(K),Math.abs(Pe));return $.precision==null&&!isNaN(L=s.precisionPrefix(N,V))&&($.precision=L),s.formatPrefix($,V)}case"":case"e":case"g":case"p":case"r":{$.precision==null&&!isNaN(L=s.precisionRound(N,Math.max(Math.abs(K),Math.abs(Pe))))&&($.precision=L-($.type==="e"));break}case"f":case"%":{$.precision==null&&!isNaN(L=s.precisionFixed(N))&&($.precision=L-($.type==="%")*2);break}}return s.format($)}function y(K){var Pe=K.domain;return K.ticks=function(F){var $=Pe();return i.ticks($[0],$[$.length-1],F??10)},K.tickFormat=function(F,$){var N=Pe();return U(N[0],N[N.length-1],F??10,$)},K.nice=function(F){F==null&&(F=10);var $=Pe(),N=0,L=$.length-1,V=$[N],he=$[L],_e;return he0?(V=Math.floor(V/_e)*_e,he=Math.ceil(he/_e)*_e,_e=i.tickIncrement(V,he,F)):_e<0&&(V=Math.ceil(V*_e)/_e,he=Math.floor(he*_e)/_e,_e=i.tickIncrement(V,he,F)),_e>0?($[N]=Math.floor(V/_e)*_e,$[L]=Math.ceil(he/_e)*_e,Pe($)):_e<0&&($[N]=Math.ceil(V*_e)/_e,$[L]=Math.floor(he*_e)/_e,Pe($)),K},K}function D(){var K=b(pe,pe);return K.copy=function(){return x(K,D())},v.apply(K,arguments),y(K)}function q(K){var Pe;function F($){return isNaN($=+$)?Pe:$}return F.invert=F,F.domain=F.range=function($){return arguments.length?(K=E.call($,Y),F):K.slice()},F.unknown=function($){return arguments.length?(Pe=$,F):Pe},F.copy=function(){return q(K).unknown(Pe)},K=arguments.length?E.call(K,Y):[0,1],y(F)}function oe(K,Pe){K=K.slice();var F=0,$=K.length-1,N=K[F],L=K[$],V;return L0){for(;KeIe)break;Jt.push(Ct)}}else for(;Ke=1;--Ot)if(Ct=vt*Ot,!(CtIe)break;Jt.push(Ct)}}else Jt=i.ticks(Ke,et,Math.min(et-Ke,Nt)).map(L);return $e?Jt.reverse():Jt},Pe.tickFormat=function(he,_e){if(_e==null&&(_e=$===10?".0e":","),typeof _e!="function"&&(_e=s.format(_e)),he===1/0)return _e;he==null&&(he=10);var Fe=Math.max(1,$*he/Pe.ticks().length);return function(Ie){var $e=Ie/L(Math.round(N(Ie)));return $e*$<$-.5&&($e*=$),$e<=Fe?_e(Ie):""}},Pe.nice=function(){return F(oe(F(),{floor:function(he){return L(Math.floor(N(he)))},ceil:function(he){return L(Math.ceil(N(he)))}}))},Pe}function He(){var K=Ue(P()).domain([1,10]);return K.copy=function(){return x(K,He()).base(K.base())},v.apply(K,arguments),K}function Je(K){return function(Pe){return Math.sign(Pe)*Math.log1p(Math.abs(Pe/K))}}function te(K){return function(Pe){return Math.sign(Pe)*Math.expm1(Math.abs(Pe))*K}}function ge(K){var Pe=1,F=K(Je(Pe),te(Pe));return F.constant=function($){return arguments.length?K(Je(Pe=+$),te(Pe)):Pe},y(F)}function Oe(){var K=ge(P());return K.copy=function(){return x(K,Oe()).constant(K.constant())},v.apply(K,arguments)}function Q(K){return function(Pe){return Pe<0?-Math.pow(-Pe,K):Math.pow(Pe,K)}}function ee(K){return K<0?-Math.sqrt(-K):Math.sqrt(K)}function fe(K){return K<0?-K*K:K*K}function De(K){var Pe=K(pe,pe),F=1;function $(){return F===1?K(pe,pe):F===.5?K(ee,fe):K(Q(F),Q(1/F))}return Pe.exponent=function(N){return arguments.length?(F=+N,$()):F},y(Pe)}function at(){var K=De(P());return K.copy=function(){return x(K,at()).exponent(K.exponent())},v.apply(K,arguments),K}function dt(){return at.apply(null,arguments).exponent(.5)}function Yt(){var K=[],Pe=[],F=[],$;function N(){var V=0,he=Math.max(1,Pe.length);for(F=new Array(he-1);++V0?F[he-1]:K[0],he=F?[$[F-1],Pe]:[$[Fe-1],$[Fe]]},V.unknown=function(_e){return arguments.length&&(L=_e),V},V.thresholds=function(){return $.slice()},V.copy=function(){return Gt().domain([K,Pe]).range(N).unknown(L)},v.apply(y(V),arguments)}function Lt(){var K=[.5],Pe=[0,1],F,$=1;function N(L){return L<=L?Pe[i.bisect(K,L,0,$)]:F}return N.domain=function(L){return arguments.length?(K=O.call(L),$=Math.min(K.length,Pe.length-1),N):K.slice()},N.range=function(L){return arguments.length?(Pe=O.call(L),$=Math.min(K.length,Pe.length-1),N):Pe.slice()},N.invertExtent=function(L){var V=Pe.indexOf(L);return[K[V-1],K[V]]},N.unknown=function(L){return arguments.length?(F=L,N):F},N.copy=function(){return Lt().domain(K).range(Pe).unknown(F)},v.apply(N,arguments)}var Et=1e3,Bt=Et*60,zt=Bt*60,Zt=zt*24,pn=Zt*7,$t=Zt*30,kn=Zt*365;function A(K){return new Date(K)}function j(K){return K instanceof Date?+K:+new Date(+K)}function Ae(K,Pe,F,$,N,L,V,he,_e){var Fe=b(pe,pe),Ie=Fe.invert,$e=Fe.domain,Ke=_e(".%L"),et=_e(":%S"),vt=_e("%I:%M"),Ot=_e("%I %p"),Ct=_e("%a %d"),Nt=_e("%b %d"),Jt=_e("%B"),An=_e("%Y"),bn=[[V,1,Et],[V,5,5*Et],[V,15,15*Et],[V,30,30*Et],[L,1,Bt],[L,5,5*Bt],[L,15,15*Bt],[L,30,30*Bt],[N,1,zt],[N,3,3*zt],[N,6,6*zt],[N,12,12*zt],[$,1,Zt],[$,2,2*Zt],[F,1,pn],[Pe,1,$t],[Pe,3,3*$t],[K,1,kn]];function Ut(Tt){return(V(Tt){(function(e,n){typeof jf=="object"&&typeof Ix!="undefined"?n(jf):typeof define=="function"&&define.amd?define(["exports"],n):n(e.d3=e.d3||{})})(jf,function(e){"use strict";var n=Array.prototype.slice;function i(Y){return Y}var u=1,s=2,h=3,d=4,v=1e-6;function k(Y){return"translate("+(Y+.5)+",0)"}function S(Y){return"translate(0,"+(Y+.5)+")"}function E(Y){return function(le){return+Y(le)}}function O(Y){var le=Math.max(0,Y.bandwidth()-1)/2;return Y.round()&&(le=Math.round(le)),function(pe){return+Y(pe)+le}}function ie(){return!this.__axis}function ve(Y,le){var pe=[],Re=null,B=null,c=6,g=6,x=3,P=Y===u||Y===d?-1:1,b=Y===d||Y===s?"x":"y",U=Y===u||Y===h?k:S;function y(D){var q=Re??(le.ticks?le.ticks.apply(le,pe):le.domain()),oe=B??(le.tickFormat?le.tickFormat.apply(le,pe):i),Le=Math.max(c,0)+x,we=le.range(),re=+we[0]+.5,We=+we[we.length-1]+.5,ce=(le.bandwidth?O:E)(le.copy()),ke=D.selection?D.selection():D,Ce=ke.selectAll(".domain").data([null]),me=ke.selectAll(".tick").data(q,le).order(),Ue=me.exit(),He=me.enter().append("g").attr("class","tick"),Je=me.select("line"),te=me.select("text");Ce=Ce.merge(Ce.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),me=me.merge(He),Je=Je.merge(He.append("line").attr("stroke","currentColor").attr(b+"2",P*c)),te=te.merge(He.append("text").attr("fill","currentColor").attr(b,P*Le).attr("dy",Y===u?"0em":Y===h?"0.71em":"0.32em")),D!==ke&&(Ce=Ce.transition(D),me=me.transition(D),Je=Je.transition(D),te=te.transition(D),Ue=Ue.transition(D).attr("opacity",v).attr("transform",function(ge){return isFinite(ge=ce(ge))?U(ge):this.getAttribute("transform")}),He.attr("opacity",v).attr("transform",function(ge){var Oe=this.parentNode.__axis;return U(Oe&&isFinite(Oe=Oe(ge))?Oe:ce(ge))})),Ue.remove(),Ce.attr("d",Y===d||Y==s?g?"M"+P*g+","+re+"H0.5V"+We+"H"+P*g:"M0.5,"+re+"V"+We:g?"M"+re+","+P*g+"V0.5H"+We+"V"+P*g:"M"+re+",0.5H"+We),me.attr("opacity",1).attr("transform",function(ge){return U(ce(ge))}),Je.attr(b+"2",P*c),te.attr(b,P*Le).text(oe),ke.filter(ie).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",Y===s?"start":Y===d?"end":"middle"),ke.each(function(){this.__axis=ce})}return y.scale=function(D){return arguments.length?(le=D,y):le},y.ticks=function(){return pe=n.call(arguments),y},y.tickArguments=function(D){return arguments.length?(pe=D==null?[]:n.call(D),y):pe.slice()},y.tickValues=function(D){return arguments.length?(Re=D==null?null:n.call(D),y):Re&&Re.slice()},y.tickFormat=function(D){return arguments.length?(B=D,y):B},y.tickSize=function(D){return arguments.length?(c=g=+D,y):c},y.tickSizeInner=function(D){return arguments.length?(c=+D,y):c},y.tickSizeOuter=function(D){return arguments.length?(g=+D,y):g},y.tickPadding=function(D){return arguments.length?(x=+D,y):x},y}function Ee(Y){return ve(u,Y)}function ne(Y){return ve(s,Y)}function R(Y){return ve(h,Y)}function I(Y){return ve(d,Y)}e.axisTop=Ee,e.axisRight=ne,e.axisBottom=R,e.axisLeft=I,Object.defineProperty(e,"__esModule",{value:!0})})});var qf=yt((Yf,Rx)=>{(function(e,n){typeof Yf=="object"&&typeof Rx!="undefined"?n(Yf):typeof define=="function"&&define.amd?define(["exports"],n):(e=e||self,n(e.d3=e.d3||{}))})(Yf,function(e){"use strict";var n={value:function(){}};function i(){for(var v=0,k=arguments.length,S={},E;v=0&&(E=S.slice(O+1),S=S.slice(0,O)),S&&!k.hasOwnProperty(S))throw new Error("unknown type: "+S);return{type:S,name:E}})}u.prototype=i.prototype={constructor:u,on:function(v,k){var S=this._,E=s(v+"",S),O,ie=-1,ve=E.length;if(arguments.length<2){for(;++ie0)for(var S=new Array(O),E=0,O,ie;E{(function(e,n){typeof Gf=="object"&&typeof Fx!="undefined"?n(Gf):typeof define=="function"&&define.amd?define(["exports"],n):(e=e||self,n(e.d3=e.d3||{}))})(Gf,function(e){"use strict";var n=0,i=0,u=0,s=1e3,h,d,v=0,k=0,S=0,E=typeof performance=="object"&&performance.now?performance:Date,O=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(c){setTimeout(c,17)};function ie(){return k||(O(ve),k=E.now()+S)}function ve(){k=0}function Ee(){this._call=this._time=this._next=null}Ee.prototype=ne.prototype={constructor:Ee,restart:function(c,g,x){if(typeof c!="function")throw new TypeError("callback is not a function");x=(x==null?ie():+x)+(g==null?0:+g),!this._next&&d!==this&&(d?d._next=this:h=this,d=this),this._call=c,this._time=x,pe()},stop:function(){this._call&&(this._call=null,this._time=1/0,pe())}};function ne(c,g,x){var P=new Ee;return P.restart(c,g,x),P}function R(){ie(),++n;for(var c=h,g;c;)(g=k-c._time)>=0&&c._call.call(null,g),c=c._next;--n}function I(){k=(v=E.now())+S,n=i=0;try{R()}finally{n=0,le(),k=0}}function Y(){var c=E.now(),g=c-v;g>s&&(S-=g,v=c)}function le(){for(var c,g=h,x,P=1/0;g;)g._call?(P>g._time&&(P=g._time),c=g,g=g._next):(x=g._next,g._next=null,g=c?c._next=x:h=x);d=c,pe(P)}function pe(c){if(!n){i&&(i=clearTimeout(i));var g=c-k;g>24?(c<1/0&&(i=setTimeout(I,c-E.now()-S)),u&&(u=clearInterval(u))):(u||(v=E.now(),u=setInterval(Y,s)),n=1,O(I))}}function Re(c,g,x){var P=new Ee;return g=g==null?0:+g,P.restart(function(b){P.stop(),c(b+g)},g,x),P}function B(c,g,x){var P=new Ee,b=g;return g==null?(P.restart(c,g,x),P):(g=+g,x=x==null?ie():+x,P.restart(function U(y){y+=b,P.restart(U,b+=g,x),c(y)},g,x),P)}e.interval=B,e.now=ie,e.timeout=Re,e.timer=ne,e.timerFlush=R,Object.defineProperty(e,"__esModule",{value:!0})})});var Hx=yt(($f,zx)=>{(function(e,n){typeof $f=="object"&&typeof zx!="undefined"?n($f):typeof define=="function"&&define.amd?define(["exports"],n):(e=e||self,n(e.d3=e.d3||{}))})($f,function(e){"use strict";function n(Q){return+Q}function i(Q){return Q*Q}function u(Q){return Q*(2-Q)}function s(Q){return((Q*=2)<=1?Q*Q:--Q*(2-Q)+1)/2}function h(Q){return Q*Q*Q}function d(Q){return--Q*Q*Q+1}function v(Q){return((Q*=2)<=1?Q*Q*Q:(Q-=2)*Q*Q+2)/2}var k=3,S=function Q(ee){ee=+ee;function fe(De){return Math.pow(De,ee)}return fe.exponent=Q,fe}(k),E=function Q(ee){ee=+ee;function fe(De){return 1-Math.pow(1-De,ee)}return fe.exponent=Q,fe}(k),O=function Q(ee){ee=+ee;function fe(De){return((De*=2)<=1?Math.pow(De,ee):2-Math.pow(2-De,ee))/2}return fe.exponent=Q,fe}(k),ie=Math.PI,ve=ie/2;function Ee(Q){return+Q==1?1:1-Math.cos(Q*ve)}function ne(Q){return Math.sin(Q*ve)}function R(Q){return(1-Math.cos(ie*Q))/2}function I(Q){return(Math.pow(2,-10*Q)-.0009765625)*1.0009775171065494}function Y(Q){return I(1-+Q)}function le(Q){return 1-I(Q)}function pe(Q){return((Q*=2)<=1?I(1-Q):2-I(Q-1))/2}function Re(Q){return 1-Math.sqrt(1-Q*Q)}function B(Q){return Math.sqrt(1- --Q*Q)}function c(Q){return((Q*=2)<=1?1-Math.sqrt(1-Q*Q):Math.sqrt(1-(Q-=2)*Q)+1)/2}var g=4/11,x=6/11,P=8/11,b=3/4,U=9/11,y=10/11,D=15/16,q=21/22,oe=63/64,Le=1/g/g;function we(Q){return 1-re(1-Q)}function re(Q){return(Q=+Q){(function(e,n){typeof Vf=="object"&&typeof Wx!="undefined"?n(Vf,Jo(),qf(),Gp(),zf(),Rf(),Hx()):typeof define=="function"&&define.amd?define(["exports","d3-selection","d3-dispatch","d3-timer","d3-interpolate","d3-color","d3-ease"],n):(e=e||self,n(e.d3=e.d3||{},e.d3,e.d3,e.d3,e.d3,e.d3,e.d3))})(Vf,function(e,n,i,u,s,h,d){"use strict";var v=i.dispatch("start","end","cancel","interrupt"),k=[],S=0,E=1,O=2,ie=3,ve=4,Ee=5,ne=6;function R(N,L,V,he,_e,Fe){var Ie=N.__transition;if(!Ie)N.__transition={};else if(V in Ie)return;pe(N,V,{name:L,index:he,group:_e,on:v,tween:k,time:Fe.time,delay:Fe.delay,duration:Fe.duration,ease:Fe.ease,timer:null,state:S})}function I(N,L){var V=le(N,L);if(V.state>S)throw new Error("too late; already scheduled");return V}function Y(N,L){var V=le(N,L);if(V.state>ie)throw new Error("too late; already running");return V}function le(N,L){var V=N.__transition;if(!V||!(V=V[L]))throw new Error("transition not found");return V}function pe(N,L,V){var he=N.__transition,_e;he[L]=V,V.timer=u.timer(Fe,0,V.time);function Fe(et){V.state=E,V.timer.restart(Ie,V.delay,V.time),V.delay<=et&&Ie(et-V.delay)}function Ie(et){var vt,Ot,Ct,Nt;if(V.state!==E)return Ke();for(vt in he)if(Nt=he[vt],Nt.name===V.name){if(Nt.state===ie)return u.timeout(Ie);Nt.state===ve?(Nt.state=ne,Nt.timer.stop(),Nt.on.call("interrupt",N,N.__data__,Nt.index,Nt.group),delete he[vt]):+vtO&&he.state=0&&(L=L.slice(0,V)),!L||L==="start"})}function at(N,L,V){var he,_e,Fe=De(L)?I:Y;return function(){var Ie=Fe(this,N),$e=Ie.on;$e!==he&&(_e=(he=$e).copy()).on(L,V),Ie.on=_e}}function dt(N,L){var V=this._id;return arguments.length<2?le(this.node(),V).on.on(N):this.each(at(V,N,L))}function Yt(N){return function(){var L=this.parentNode;for(var V in this.__transition)if(+V!==N)return;L&&L.removeChild(this)}}function Gt(){return this.on("end.remove",Yt(this._id))}function Lt(N){var L=this._name,V=this._id;typeof N!="function"&&(N=n.selector(N));for(var he=this._groups,_e=he.length,Fe=new Array(_e),Ie=0;Ie<_e;++Ie)for(var $e=he[Ie],Ke=$e.length,et=Fe[Ie]=new Array(Ke),vt,Ot,Ct=0;CtE&&he.name===L)return new Rt([[N]],F,L,+_e)}return null}e.active=$,e.interrupt=Re,e.transition=Wt,Object.defineProperty(e,"__esModule",{value:!0})})});var jx=yt((Xf,Bx)=>{(function(e,n){typeof Xf=="object"&&typeof Bx!="undefined"?n(Xf):typeof define=="function"&&define.amd?define(["exports"],n):(e=e||self,n(e.d3=e.d3||{}))})(Xf,function(e){"use strict";var n=Math.PI,i=2*n,u=1e-6,s=i-u;function h(){this._x0=this._y0=this._x1=this._y1=null,this._=""}function d(){return new h}h.prototype=d.prototype={constructor:h,moveTo:function(v,k){this._+="M"+(this._x0=this._x1=+v)+","+(this._y0=this._y1=+k)},closePath:function(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},lineTo:function(v,k){this._+="L"+(this._x1=+v)+","+(this._y1=+k)},quadraticCurveTo:function(v,k,S,E){this._+="Q"+ +v+","+ +k+","+(this._x1=+S)+","+(this._y1=+E)},bezierCurveTo:function(v,k,S,E,O,ie){this._+="C"+ +v+","+ +k+","+ +S+","+ +E+","+(this._x1=+O)+","+(this._y1=+ie)},arcTo:function(v,k,S,E,O){v=+v,k=+k,S=+S,E=+E,O=+O;var ie=this._x1,ve=this._y1,Ee=S-v,ne=E-k,R=ie-v,I=ve-k,Y=R*R+I*I;if(O<0)throw new Error("negative radius: "+O);if(this._x1===null)this._+="M"+(this._x1=v)+","+(this._y1=k);else if(Y>u)if(!(Math.abs(I*Ee-ne*R)>u)||!O)this._+="L"+(this._x1=v)+","+(this._y1=k);else{var le=S-ie,pe=E-ve,Re=Ee*Ee+ne*ne,B=le*le+pe*pe,c=Math.sqrt(Re),g=Math.sqrt(Y),x=O*Math.tan((n-Math.acos((Re+Y-B)/(2*c*g)))/2),P=x/g,b=x/c;Math.abs(P-1)>u&&(this._+="L"+(v+P*R)+","+(k+P*I)),this._+="A"+O+","+O+",0,0,"+ +(I*le>R*pe)+","+(this._x1=v+b*Ee)+","+(this._y1=k+b*ne)}},arc:function(v,k,S,E,O,ie){v=+v,k=+k,S=+S,ie=!!ie;var ve=S*Math.cos(E),Ee=S*Math.sin(E),ne=v+ve,R=k+Ee,I=1^ie,Y=ie?E-O:O-E;if(S<0)throw new Error("negative radius: "+S);this._x1===null?this._+="M"+ne+","+R:(Math.abs(this._x1-ne)>u||Math.abs(this._y1-R)>u)&&(this._+="L"+ne+","+R),!!S&&(Y<0&&(Y=Y%i+i),Y>s?this._+="A"+S+","+S+",0,1,"+I+","+(v-ve)+","+(k-Ee)+"A"+S+","+S+",0,1,"+I+","+(this._x1=ne)+","+(this._y1=R):Y>u&&(this._+="A"+S+","+S+",0,"+ +(Y>=n)+","+I+","+(this._x1=v+S*Math.cos(O))+","+(this._y1=k+S*Math.sin(O))))},rect:function(v,k,S,E){this._+="M"+(this._x0=this._x1=+v)+","+(this._y0=this._y1=+k)+"h"+ +S+"v"+ +E+"h"+-S+"Z"},toString:function(){return this._}},e.path=d,Object.defineProperty(e,"__esModule",{value:!0})})});var qx=yt((Kf,Yx)=>{(function(e,n){typeof Kf=="object"&&typeof Yx!="undefined"?n(Kf,jx()):typeof define=="function"&&define.amd?define(["exports","d3-path"],n):(e=e||self,n(e.d3=e.d3||{},e.d3))})(Kf,function(e,n){"use strict";function i(w){return function(){return w}}var u=Math.abs,s=Math.atan2,h=Math.cos,d=Math.max,v=Math.min,k=Math.sin,S=Math.sqrt,E=1e-12,O=Math.PI,ie=O/2,ve=2*O;function Ee(w){return w>1?0:w<-1?O:Math.acos(w)}function ne(w){return w>=1?ie:w<=-1?-ie:Math.asin(w)}function R(w){return w.innerRadius}function I(w){return w.outerRadius}function Y(w){return w.startAngle}function le(w){return w.endAngle}function pe(w){return w&&w.padAngle}function Re(w,z,W,ae,Me,ue,Ye,xe){var Ge=W-w,ot=ae-z,rt=Ye-Me,mt=xe-ue,Pt=mt*Ge-rt*ot;if(!(Pt*PtTi*Ti+li*li&&(Ar=cr,Zn=Sr),{cx:Ar,cy:Zn,x01:-rt,y01:-mt,x11:Ar*(Me/Tr-1),y11:Zn*(Me/Tr-1)}}function c(){var w=R,z=I,W=i(0),ae=null,Me=Y,ue=le,Ye=pe,xe=null;function Ge(){var ot,rt,mt=+w.apply(this,arguments),Pt=+z.apply(this,arguments),qt=Me.apply(this,arguments)-ie,It=ue.apply(this,arguments)-ie,dn=u(It-qt),Kt=It>qt;if(xe||(xe=ot=n.path()),PtE))xe.moveTo(0,0);else if(dn>ve-E)xe.moveTo(Pt*h(qt),Pt*k(qt)),xe.arc(0,0,Pt,qt,It,!Kt),mt>E&&(xe.moveTo(mt*h(It),mt*k(It)),xe.arc(0,0,mt,It,qt,Kt));else{var Rn=qt,Nn=It,mn=qt,Pn=It,Tr=dn,Qn=dn,Zr=Ye.apply(this,arguments)/2,Ar=Zr>E&&(ae?+ae.apply(this,arguments):S(mt*mt+Pt*Pt)),Zn=v(u(Pt-mt)/2,+W.apply(this,arguments)),cr=Zn,Sr=Zn,At,Qt;if(Ar>E){var Ti=ne(Ar/mt*k(Zr)),li=ne(Ar/Pt*k(Zr));(Tr-=Ti*2)>E?(Ti*=Kt?1:-1,mn+=Ti,Pn-=Ti):(Tr=0,mn=Pn=(qt+It)/2),(Qn-=li*2)>E?(li*=Kt?1:-1,Rn+=li,Nn-=li):(Qn=0,Rn=Nn=(qt+It)/2)}var Gn=Pt*h(Rn),Hi=Pt*k(Rn),ea=mt*h(Pn),Wi=mt*k(Pn);if(Zn>E){var xo=Pt*h(Nn),Ir=Pt*k(Nn),_o=mt*h(mn),Rr=mt*k(mn),br;if(dnE?Sr>E?(At=B(_o,Rr,Gn,Hi,Pt,Sr,Kt),Qt=B(xo,Ir,ea,Wi,Pt,Sr,Kt),xe.moveTo(At.cx+At.x01,At.cy+At.y01),SrE)||!(Tr>E)?xe.lineTo(ea,Wi):cr>E?(At=B(ea,Wi,xo,Ir,mt,-cr,Kt),Qt=B(Gn,Hi,_o,Rr,mt,-cr,Kt),xe.lineTo(At.cx+At.x01,At.cy+At.y01),cr=Pt;--qt)xe.point(Nn[qt],mn[qt]);xe.lineEnd(),xe.areaEnd()}Kt&&(Nn[mt]=+w(dn,mt,rt),mn[mt]=+W(dn,mt,rt),xe.point(z?+z(dn,mt,rt):Nn[mt],ae?+ae(dn,mt,rt):mn[mt]))}if(Rn)return xe=null,Rn+""||null}function ot(){return U().defined(Me).curve(Ye).context(ue)}return Ge.x=function(rt){return arguments.length?(w=typeof rt=="function"?rt:i(+rt),z=null,Ge):w},Ge.x0=function(rt){return arguments.length?(w=typeof rt=="function"?rt:i(+rt),Ge):w},Ge.x1=function(rt){return arguments.length?(z=rt==null?null:typeof rt=="function"?rt:i(+rt),Ge):z},Ge.y=function(rt){return arguments.length?(W=typeof rt=="function"?rt:i(+rt),ae=null,Ge):W},Ge.y0=function(rt){return arguments.length?(W=typeof rt=="function"?rt:i(+rt),Ge):W},Ge.y1=function(rt){return arguments.length?(ae=rt==null?null:typeof rt=="function"?rt:i(+rt),Ge):ae},Ge.lineX0=Ge.lineY0=function(){return ot().x(w).y(W)},Ge.lineY1=function(){return ot().x(w).y(ae)},Ge.lineX1=function(){return ot().x(z).y(W)},Ge.defined=function(rt){return arguments.length?(Me=typeof rt=="function"?rt:i(!!rt),Ge):Me},Ge.curve=function(rt){return arguments.length?(Ye=rt,ue!=null&&(xe=Ye(ue)),Ge):Ye},Ge.context=function(rt){return arguments.length?(rt==null?ue=xe=null:xe=Ye(ue=rt),Ge):ue},Ge}function D(w,z){return zw?1:z>=w?0:NaN}function q(w){return w}function oe(){var w=q,z=D,W=null,ae=i(0),Me=i(ve),ue=i(0);function Ye(xe){var Ge,ot=xe.length,rt,mt,Pt=0,qt=new Array(ot),It=new Array(ot),dn=+ae.apply(this,arguments),Kt=Math.min(ve,Math.max(-ve,Me.apply(this,arguments)-dn)),Rn,Nn=Math.min(Math.abs(Kt)/ot,ue.apply(this,arguments)),mn=Nn*(Kt<0?-1:1),Pn;for(Ge=0;Ge0&&(Pt+=Pn);for(z!=null?qt.sort(function(Tr,Qn){return z(It[Tr],It[Qn])}):W!=null&&qt.sort(function(Tr,Qn){return W(xe[Tr],xe[Qn])}),Ge=0,mt=Pt?(Kt-ot*mn)/Pt:0;Ge0?Pn*mt:0)+mn,It[rt]={data:xe[rt],index:Ge,value:Pn,startAngle:dn,endAngle:Rn,padAngle:Nn};return It}return Ye.value=function(xe){return arguments.length?(w=typeof xe=="function"?xe:i(+xe),Ye):w},Ye.sortValues=function(xe){return arguments.length?(z=xe,W=null,Ye):z},Ye.sort=function(xe){return arguments.length?(W=xe,z=null,Ye):W},Ye.startAngle=function(xe){return arguments.length?(ae=typeof xe=="function"?xe:i(+xe),Ye):ae},Ye.endAngle=function(xe){return arguments.length?(Me=typeof xe=="function"?xe:i(+xe),Ye):Me},Ye.padAngle=function(xe){return arguments.length?(ue=typeof xe=="function"?xe:i(+xe),Ye):ue},Ye}var Le=re(x);function we(w){this._curve=w}we.prototype={areaStart:function(){this._curve.areaStart()},areaEnd:function(){this._curve.areaEnd()},lineStart:function(){this._curve.lineStart()},lineEnd:function(){this._curve.lineEnd()},point:function(w,z){this._curve.point(z*Math.sin(w),z*-Math.cos(w))}};function re(w){function z(W){return new we(w(W))}return z._curve=w,z}function We(w){var z=w.curve;return w.angle=w.x,delete w.x,w.radius=w.y,delete w.y,w.curve=function(W){return arguments.length?z(re(W)):z()._curve},w}function ce(){return We(U().curve(Le))}function ke(){var w=y().curve(Le),z=w.curve,W=w.lineX0,ae=w.lineX1,Me=w.lineY0,ue=w.lineY1;return w.angle=w.x,delete w.x,w.startAngle=w.x0,delete w.x0,w.endAngle=w.x1,delete w.x1,w.radius=w.y,delete w.y,w.innerRadius=w.y0,delete w.y0,w.outerRadius=w.y1,delete w.y1,w.lineStartAngle=function(){return We(W())},delete w.lineX0,w.lineEndAngle=function(){return We(ae())},delete w.lineX1,w.lineInnerRadius=function(){return We(Me())},delete w.lineY0,w.lineOuterRadius=function(){return We(ue())},delete w.lineY1,w.curve=function(Ye){return arguments.length?z(re(Ye)):z()._curve},w}function Ce(w,z){return[(z=+z)*Math.cos(w-=Math.PI/2),z*Math.sin(w)]}var me=Array.prototype.slice;function Ue(w){return w.source}function He(w){return w.target}function Je(w){var z=Ue,W=He,ae=P,Me=b,ue=null;function Ye(){var xe,Ge=me.call(arguments),ot=z.apply(this,Ge),rt=W.apply(this,Ge);if(ue||(ue=xe=n.path()),w(ue,+ae.apply(this,(Ge[0]=ot,Ge)),+Me.apply(this,Ge),+ae.apply(this,(Ge[0]=rt,Ge)),+Me.apply(this,Ge)),xe)return ue=null,xe+""||null}return Ye.source=function(xe){return arguments.length?(z=xe,Ye):z},Ye.target=function(xe){return arguments.length?(W=xe,Ye):W},Ye.x=function(xe){return arguments.length?(ae=typeof xe=="function"?xe:i(+xe),Ye):ae},Ye.y=function(xe){return arguments.length?(Me=typeof xe=="function"?xe:i(+xe),Ye):Me},Ye.context=function(xe){return arguments.length?(ue=xe??null,Ye):ue},Ye}function te(w,z,W,ae,Me){w.moveTo(z,W),w.bezierCurveTo(z=(z+ae)/2,W,z,Me,ae,Me)}function ge(w,z,W,ae,Me){w.moveTo(z,W),w.bezierCurveTo(z,W=(W+Me)/2,ae,W,ae,Me)}function Oe(w,z,W,ae,Me){var ue=Ce(z,W),Ye=Ce(z,W=(W+Me)/2),xe=Ce(ae,W),Ge=Ce(ae,Me);w.moveTo(ue[0],ue[1]),w.bezierCurveTo(Ye[0],Ye[1],xe[0],xe[1],Ge[0],Ge[1])}function Q(){return Je(te)}function ee(){return Je(ge)}function fe(){var w=Je(Oe);return w.angle=w.x,delete w.x,w.radius=w.y,delete w.y,w}var De={draw:function(w,z){var W=Math.sqrt(z/O);w.moveTo(W,0),w.arc(0,0,W,0,ve)}},at={draw:function(w,z){var W=Math.sqrt(z/5)/2;w.moveTo(-3*W,-W),w.lineTo(-W,-W),w.lineTo(-W,-3*W),w.lineTo(W,-3*W),w.lineTo(W,-W),w.lineTo(3*W,-W),w.lineTo(3*W,W),w.lineTo(W,W),w.lineTo(W,3*W),w.lineTo(-W,3*W),w.lineTo(-W,W),w.lineTo(-3*W,W),w.closePath()}},dt=Math.sqrt(1/3),Yt=dt*2,Gt={draw:function(w,z){var W=Math.sqrt(z/Yt),ae=W*dt;w.moveTo(0,-W),w.lineTo(ae,0),w.lineTo(0,W),w.lineTo(-ae,0),w.closePath()}},Lt=.8908130915292852,Et=Math.sin(O/10)/Math.sin(7*O/10),Bt=Math.sin(ve/10)*Et,zt=-Math.cos(ve/10)*Et,Zt={draw:function(w,z){var W=Math.sqrt(z*Lt),ae=Bt*W,Me=zt*W;w.moveTo(0,-W),w.lineTo(ae,Me);for(var ue=1;ue<5;++ue){var Ye=ve*ue/5,xe=Math.cos(Ye),Ge=Math.sin(Ye);w.lineTo(Ge*W,-xe*W),w.lineTo(xe*ae-Ge*Me,Ge*ae+xe*Me)}w.closePath()}},pn={draw:function(w,z){var W=Math.sqrt(z),ae=-W/2;w.rect(ae,ae,W,W)}},$t=Math.sqrt(3),kn={draw:function(w,z){var W=-Math.sqrt(z/($t*3));w.moveTo(0,W*2),w.lineTo(-$t*W,-W),w.lineTo($t*W,-W),w.closePath()}},A=-.5,j=Math.sqrt(3)/2,Ae=1/Math.sqrt(12),Xe=(Ae/2+1)*3,je={draw:function(w,z){var W=Math.sqrt(z/Xe),ae=W/2,Me=W*Ae,ue=ae,Ye=W*Ae+W,xe=-ue,Ge=Ye;w.moveTo(ae,Me),w.lineTo(ue,Ye),w.lineTo(xe,Ge),w.lineTo(A*ae-j*Me,j*ae+A*Me),w.lineTo(A*ue-j*Ye,j*ue+A*Ye),w.lineTo(A*xe-j*Ge,j*xe+A*Ge),w.lineTo(A*ae+j*Me,A*Me-j*ae),w.lineTo(A*ue+j*Ye,A*Ye-j*ue),w.lineTo(A*xe+j*Ge,A*Ge-j*xe),w.closePath()}},M=[De,at,Gt,pn,Zt,kn,je];function J(){var w=i(De),z=i(64),W=null;function ae(){var Me;if(W||(W=Me=n.path()),w.apply(this,arguments).draw(W,+z.apply(this,arguments)),Me)return W=null,Me+""||null}return ae.type=function(Me){return arguments.length?(w=typeof Me=="function"?Me:i(Me),ae):w},ae.size=function(Me){return arguments.length?(z=typeof Me=="function"?Me:i(+Me),ae):z},ae.context=function(Me){return arguments.length?(W=Me??null,ae):W},ae}function Se(){}function ze(w,z,W){w._context.bezierCurveTo((2*w._x0+w._x1)/3,(2*w._y0+w._y1)/3,(w._x0+2*w._x1)/3,(w._y0+2*w._y1)/3,(w._x0+4*w._x1+z)/6,(w._y0+4*w._y1+W)/6)}function tt(w){this._context=w}tt.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:ze(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(w,z){switch(w=+w,z=+z,this._point){case 0:this._point=1,this._line?this._context.lineTo(w,z):this._context.moveTo(w,z);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:ze(this,w,z);break}this._x0=this._x1,this._x1=w,this._y0=this._y1,this._y1=z}};function ct(w){return new tt(w)}function ht(w){this._context=w}ht.prototype={areaStart:Se,areaEnd:Se,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(w,z){switch(w=+w,z=+z,this._point){case 0:this._point=1,this._x2=w,this._y2=z;break;case 1:this._point=2,this._x3=w,this._y3=z;break;case 2:this._point=3,this._x4=w,this._y4=z,this._context.moveTo((this._x0+4*this._x1+w)/6,(this._y0+4*this._y1+z)/6);break;default:ze(this,w,z);break}this._x0=this._x1,this._x1=w,this._y0=this._y1,this._y1=z}};function wt(w){return new ht(w)}function bt(w){this._context=w}bt.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(w,z){switch(w=+w,z=+z,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var W=(this._x0+4*this._x1+w)/6,ae=(this._y0+4*this._y1+z)/6;this._line?this._context.lineTo(W,ae):this._context.moveTo(W,ae);break;case 3:this._point=4;default:ze(this,w,z);break}this._x0=this._x1,this._x1=w,this._y0=this._y1,this._y1=z}};function Rt(w){return new bt(w)}function Wt(w,z){this._basis=new tt(w),this._beta=z}Wt.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var w=this._x,z=this._y,W=w.length-1;if(W>0)for(var ae=w[0],Me=z[0],ue=w[W]-ae,Ye=z[W]-Me,xe=-1,Ge;++xe<=W;)Ge=xe/W,this._basis.point(this._beta*w[xe]+(1-this._beta)*(ae+Ge*ue),this._beta*z[xe]+(1-this._beta)*(Me+Ge*Ye));this._x=this._y=null,this._basis.lineEnd()},point:function(w,z){this._x.push(+w),this._y.push(+z)}};var ln=function w(z){function W(ae){return z===1?new tt(ae):new Wt(ae,z)}return W.beta=function(ae){return w(+ae)},W}(.85);function nn(w,z,W){w._context.bezierCurveTo(w._x1+w._k*(w._x2-w._x0),w._y1+w._k*(w._y2-w._y0),w._x2+w._k*(w._x1-z),w._y2+w._k*(w._y1-W),w._x2,w._y2)}function gn(w,z){this._context=w,this._k=(1-z)/6}gn.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:nn(this,this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(w,z){switch(w=+w,z=+z,this._point){case 0:this._point=1,this._line?this._context.lineTo(w,z):this._context.moveTo(w,z);break;case 1:this._point=2,this._x1=w,this._y1=z;break;case 2:this._point=3;default:nn(this,w,z);break}this._x0=this._x1,this._x1=this._x2,this._x2=w,this._y0=this._y1,this._y1=this._y2,this._y2=z}};var K=function w(z){function W(ae){return new gn(ae,z)}return W.tension=function(ae){return w(+ae)},W}(0);function Pe(w,z){this._context=w,this._k=(1-z)/6}Pe.prototype={areaStart:Se,areaEnd:Se,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},point:function(w,z){switch(w=+w,z=+z,this._point){case 0:this._point=1,this._x3=w,this._y3=z;break;case 1:this._point=2,this._context.moveTo(this._x4=w,this._y4=z);break;case 2:this._point=3,this._x5=w,this._y5=z;break;default:nn(this,w,z);break}this._x0=this._x1,this._x1=this._x2,this._x2=w,this._y0=this._y1,this._y1=this._y2,this._y2=z}};var F=function w(z){function W(ae){return new Pe(ae,z)}return W.tension=function(ae){return w(+ae)},W}(0);function $(w,z){this._context=w,this._k=(1-z)/6}$.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(w,z){switch(w=+w,z=+z,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:nn(this,w,z);break}this._x0=this._x1,this._x1=this._x2,this._x2=w,this._y0=this._y1,this._y1=this._y2,this._y2=z}};var N=function w(z){function W(ae){return new $(ae,z)}return W.tension=function(ae){return w(+ae)},W}(0);function L(w,z,W){var ae=w._x1,Me=w._y1,ue=w._x2,Ye=w._y2;if(w._l01_a>E){var xe=2*w._l01_2a+3*w._l01_a*w._l12_a+w._l12_2a,Ge=3*w._l01_a*(w._l01_a+w._l12_a);ae=(ae*xe-w._x0*w._l12_2a+w._x2*w._l01_2a)/Ge,Me=(Me*xe-w._y0*w._l12_2a+w._y2*w._l01_2a)/Ge}if(w._l23_a>E){var ot=2*w._l23_2a+3*w._l23_a*w._l12_a+w._l12_2a,rt=3*w._l23_a*(w._l23_a+w._l12_a);ue=(ue*ot+w._x1*w._l23_2a-z*w._l12_2a)/rt,Ye=(Ye*ot+w._y1*w._l23_2a-W*w._l12_2a)/rt}w._context.bezierCurveTo(ae,Me,ue,Ye,w._x2,w._y2)}function V(w,z){this._context=w,this._alpha=z}V.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(w,z){if(w=+w,z=+z,this._point){var W=this._x2-w,ae=this._y2-z;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(W*W+ae*ae,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(w,z):this._context.moveTo(w,z);break;case 1:this._point=2;break;case 2:this._point=3;default:L(this,w,z);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=w,this._y0=this._y1,this._y1=this._y2,this._y2=z}};var he=function w(z){function W(ae){return z?new V(ae,z):new gn(ae,0)}return W.alpha=function(ae){return w(+ae)},W}(.5);function _e(w,z){this._context=w,this._alpha=z}_e.prototype={areaStart:Se,areaEnd:Se,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},point:function(w,z){if(w=+w,z=+z,this._point){var W=this._x2-w,ae=this._y2-z;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(W*W+ae*ae,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=w,this._y3=z;break;case 1:this._point=2,this._context.moveTo(this._x4=w,this._y4=z);break;case 2:this._point=3,this._x5=w,this._y5=z;break;default:L(this,w,z);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=w,this._y0=this._y1,this._y1=this._y2,this._y2=z}};var Fe=function w(z){function W(ae){return z?new _e(ae,z):new Pe(ae,0)}return W.alpha=function(ae){return w(+ae)},W}(.5);function Ie(w,z){this._context=w,this._alpha=z}Ie.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(w,z){if(w=+w,z=+z,this._point){var W=this._x2-w,ae=this._y2-z;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(W*W+ae*ae,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:L(this,w,z);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=w,this._y0=this._y1,this._y1=this._y2,this._y2=z}};var $e=function w(z){function W(ae){return z?new Ie(ae,z):new $(ae,0)}return W.alpha=function(ae){return w(+ae)},W}(.5);function Ke(w){this._context=w}Ke.prototype={areaStart:Se,areaEnd:Se,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(w,z){w=+w,z=+z,this._point?this._context.lineTo(w,z):(this._point=1,this._context.moveTo(w,z))}};function et(w){return new Ke(w)}function vt(w){return w<0?-1:1}function Ot(w,z,W){var ae=w._x1-w._x0,Me=z-w._x1,ue=(w._y1-w._y0)/(ae||Me<0&&-0),Ye=(W-w._y1)/(Me||ae<0&&-0),xe=(ue*Me+Ye*ae)/(ae+Me);return(vt(ue)+vt(Ye))*Math.min(Math.abs(ue),Math.abs(Ye),.5*Math.abs(xe))||0}function Ct(w,z){var W=w._x1-w._x0;return W?(3*(w._y1-w._y0)/W-z)/2:z}function Nt(w,z,W){var ae=w._x0,Me=w._y0,ue=w._x1,Ye=w._y1,xe=(ue-ae)/3;w._context.bezierCurveTo(ae+xe,Me+xe*z,ue-xe,Ye-xe*W,ue,Ye)}function Jt(w){this._context=w}Jt.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:Nt(this,this._t0,Ct(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(w,z){var W=NaN;if(w=+w,z=+z,!(w===this._x1&&z===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(w,z):this._context.moveTo(w,z);break;case 1:this._point=2;break;case 2:this._point=3,Nt(this,Ct(this,W=Ot(this,w,z)),W);break;default:Nt(this,this._t0,W=Ot(this,w,z));break}this._x0=this._x1,this._x1=w,this._y0=this._y1,this._y1=z,this._t0=W}}};function An(w){this._context=new bn(w)}(An.prototype=Object.create(Jt.prototype)).point=function(w,z){Jt.prototype.point.call(this,z,w)};function bn(w){this._context=w}bn.prototype={moveTo:function(w,z){this._context.moveTo(z,w)},closePath:function(){this._context.closePath()},lineTo:function(w,z){this._context.lineTo(z,w)},bezierCurveTo:function(w,z,W,ae,Me,ue){this._context.bezierCurveTo(z,w,ae,W,ue,Me)}};function Ut(w){return new Jt(w)}function st(w){return new An(w)}function Tt(w){this._context=w}Tt.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var w=this._x,z=this._y,W=w.length;if(W)if(this._line?this._context.lineTo(w[0],z[0]):this._context.moveTo(w[0],z[0]),W===2)this._context.lineTo(w[1],z[1]);else for(var ae=rn(w),Me=rn(z),ue=0,Ye=1;Ye=0;--z)Me[z]=(Ye[z]-Me[z+1])/ue[z];for(ue[W-1]=(w[W]+Me[W-1])/2,z=0;z=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(w,z){switch(w=+w,z=+z,this._point){case 0:this._point=1,this._line?this._context.lineTo(w,z):this._context.moveTo(w,z);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,z),this._context.lineTo(w,z);else{var W=this._x*(1-this._t)+w*this._t;this._context.lineTo(W,this._y),this._context.lineTo(W,z)}break}}this._x=w,this._y=z}};function G(w){return new St(w,.5)}function se(w){return new St(w,0)}function qe(w){return new St(w,1)}function de(w,z){if((Ye=w.length)>1)for(var W=1,ae,Me,ue=w[z[0]],Ye,xe=ue.length;W=0;)W[z]=z;return W}function H(w,z){return w[z]}function be(){var w=i([]),z=_,W=de,ae=H;function Me(ue){var Ye=w.apply(this,arguments),xe,Ge=ue.length,ot=Ye.length,rt=new Array(ot),mt;for(xe=0;xe0){for(var W,ae,Me=0,ue=w[0].length,Ye;Me0)for(var W,ae=0,Me,ue,Ye,xe,Ge,ot=w[z[0]].length;ae0?(Me[0]=Ye,Me[1]=Ye+=ue):ue<0?(Me[1]=xe,Me[0]=xe+=ue):(Me[0]=0,Me[1]=ue)}function ft(w,z){if((Me=w.length)>0){for(var W=0,ae=w[z[0]],Me,ue=ae.length;W0)||!((ue=(Me=w[z[0]]).length)>0))){for(var W=0,ae=1,Me,ue,Ye;aeue&&(ue=Me,W=z);return W}function on(w){var z=w.map(In);return _(w).sort(function(W,ae){return z[W]-z[ae]})}function In(w){for(var z=0,W=-1,ae=w.length,Me;++W{(function(e,n){typeof Qf=="object"&&typeof Gx!="undefined"?n(Qf):typeof define=="function"&&define.amd?define(["exports"],n):(e=typeof globalThis!="undefined"?globalThis:e||self,n(e.d3=e.d3||{}))})(Qf,function(e){"use strict";function n(B,c){var g=Object.keys(B);if(Object.getOwnPropertySymbols){var x=Object.getOwnPropertySymbols(B);c&&(x=x.filter(function(P){return Object.getOwnPropertyDescriptor(B,P).enumerable})),g.push.apply(g,x)}return g}function i(B){for(var c=1;cB.length)&&(c=B.length);for(var g=0,x=new Array(c);g=B.length?{done:!0}:{done:!1,value:B[x++]}},e:function(D){throw D},f:P}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var b=!0,U=!1,y;return{s:function(){g=g.call(B)},n:function(){var D=g.next();return b=D.done,D},e:function(D){U=!0,y=D},f:function(){try{!b&&g.return!=null&&g.return()}finally{if(U)throw y}}}}function k(B,c){var g=[],x=[];function P(b,U){if(b.length===1)g.push(b[0]),x.push(b[0]);else{for(var y=Array(b.length-1),D=0;D=3&&(c.x1=B[1][0],c.y1=B[1][1]),c.x=B[B.length-1][0],c.y=B[B.length-1][1],B.length===4?c.type="C":B.length===3?c.type="Q":c.type="L",c}function E(B,c){c=c||2;for(var g=[],x=B,P=1/c,b=0;b0?Le-=1:Le0&&(Le-=1))}return D[Le]=(D[Le]||0)+1,D},[]),y=U.reduce(function(D,q,oe){if(oe===B.length-1){var Le=Ee(q,s({},B[B.length-1]));return Le[0].type==="M"&&Le.forEach(function(we){we.type="L"}),D.concat(Le)}return D.concat(I(B[oe],B[oe+1],q))},[]);return y.unshift(B[0]),y}function le(B){for(var c=(B||"").match(ie)||[],g=[],x,P,b=0;b0&&x[x.length-1].type==="Z"&&x.pop(),P.length>0&&P[P.length-1].type==="Z"&&P.pop(),x.length?P.length||P.push(x[0]):x.push(P[0]);var U=Math.abs(P.length-x.length);U!==0&&(P.length>x.length?x=Y(x,P,g):P.length{(function(e,n){typeof ec=="object"&&typeof Xx!="undefined"?n(ec):typeof define=="function"&&define.amd?define(["exports"],n):(e=e||self,n(e.d3=e.d3||{}))})(ec,function(e){"use strict";function n(c){var g=+this._x.call(null,c),x=+this._y.call(null,c);return i(this.cover(g,x),g,x,c)}function i(c,g,x,P){if(isNaN(g)||isNaN(x))return c;var b,U=c._root,y={data:P},D=c._x0,q=c._y0,oe=c._x1,Le=c._y1,we,re,We,ce,ke,Ce,me,Ue;if(!U)return c._root=y,c;for(;U.length;)if((ke=g>=(we=(D+oe)/2))?D=we:oe=we,(Ce=x>=(re=(q+Le)/2))?q=re:Le=re,b=U,!(U=U[me=Ce<<1|ke]))return b[me]=y,c;if(We=+c._x.call(null,U.data),ce=+c._y.call(null,U.data),g===We&&x===ce)return y.next=U,b?b[me]=y:c._root=y,c;do b=b?b[me]=new Array(4):c._root=new Array(4),(ke=g>=(we=(D+oe)/2))?D=we:oe=we,(Ce=x>=(re=(q+Le)/2))?q=re:Le=re;while((me=Ce<<1|ke)==(Ue=(ce>=re)<<1|We>=we));return b[Ue]=U,b[me]=y,c}function u(c){var g,x,P=c.length,b,U,y=new Array(P),D=new Array(P),q=1/0,oe=1/0,Le=-1/0,we=-1/0;for(x=0;xLe&&(Le=b),Uwe&&(we=U));if(q>Le||oe>we)return this;for(this.cover(q,oe).cover(Le,we),x=0;xc||c>=b||P>g||g>=U;)switch(oe=(gLe||(D=ce.y0)>we||(q=ce.x1)=me)<<1|c>=Ce)&&(ce=re[re.length-1],re[re.length-1]=re[re.length-1-ke],re[re.length-1-ke]=ce)}else{var Ue=c-+this._x.call(null,We.data),He=g-+this._y.call(null,We.data),Je=Ue*Ue+He*He;if(Je=(re=(y+q)/2))?y=re:q=re,(ke=we>=(We=(D+oe)/2))?D=We:oe=We,g=x,!(x=x[Ce=ke<<1|ce]))return this;if(!x.length)break;(g[Ce+1&3]||g[Ce+2&3]||g[Ce+3&3])&&(P=g,me=Ce)}for(;x.data!==c;)if(b=x,!(x=x.next))return this;return(U=x.next)&&delete x.next,b?(U?b.next=U:delete b.next,this):g?(U?g[Ce]=U:delete g[Ce],(x=g[0]||g[1]||g[2]||g[3])&&x===(g[3]||g[2]||g[1]||g[0])&&!x.length&&(P?P[me]=x:this._root=x),this):(this._root=U,this)}function E(c){for(var g=0,x=c.length;g{(function(e,n){typeof tc=="object"&&typeof Qx!="undefined"?n(tc,Kx(),Bp(),qf(),Gp()):typeof define=="function"&&define.amd?define(["exports","d3-quadtree","d3-collection","d3-dispatch","d3-timer"],n):n(e.d3=e.d3||{},e.d3,e.d3,e.d3,e.d3)})(tc,function(e,n,i,u,s){"use strict";function h(c,g){var x;c==null&&(c=0),g==null&&(g=0);function P(){var b,U=x.length,y,D=0,q=0;for(b=0;bwe.index){var fe=re-Oe.x-Oe.vx,De=We-Oe.y-Oe.vy,at=fe*fe+De*De;atre+ee||teWe+ee||geq.r&&(q.r=q[oe].r)}function D(){if(!!g){var q,oe=g.length,Le;for(x=new Array(oe),q=0;q1?(ke==null?D.remove(ce):D.set(ce,We(ke)),g):D.get(ce)},find:function(ce,ke,Ce){var me=0,Ue=c.length,He,Je,te,ge,Oe;for(Ce==null?Ce=1/0:Ce*=Ce,me=0;me1?(oe.on(ce,ke),g):oe.on(ce)}}}function le(){var c,g,x,P=d(-30),b,U=1,y=1/0,D=.81;function q(re){var We,ce=c.length,ke=n.quadtree(c,Ee,ne).visitAfter(Le);for(x=re,We=0;We=y)return;(re.data!==g||re.next)&&(Ce===0&&(Ce=v(),He+=Ce*Ce),me===0&&(me=v(),He+=me*me),He{(function(e,n){typeof nc=="object"&&typeof Jx!="undefined"?n(nc,qf(),Jo()):typeof define=="function"&&define.amd?define(["exports","d3-dispatch","d3-selection"],n):(e=e||self,n(e.d3=e.d3||{},e.d3,e.d3))})(nc,function(e,n,i){"use strict";function u(){i.event.stopImmediatePropagation()}function s(){i.event.preventDefault(),i.event.stopImmediatePropagation()}function h(Ee){var ne=Ee.document.documentElement,R=i.select(Ee).on("dragstart.drag",s,!0);"onselectstart"in ne?R.on("selectstart.drag",s,!0):(ne.__noselect=ne.style.MozUserSelect,ne.style.MozUserSelect="none")}function d(Ee,ne){var R=Ee.document.documentElement,I=i.select(Ee).on("dragstart.drag",null);ne&&(I.on("click.drag",s,!0),setTimeout(function(){I.on("click.drag",null)},0)),"onselectstart"in R?I.on("selectstart.drag",null):(R.style.MozUserSelect=R.__noselect,delete R.__noselect)}function v(Ee){return function(){return Ee}}function k(Ee,ne,R,I,Y,le,pe,Re,B,c){this.target=Ee,this.type=ne,this.subject=R,this.identifier=I,this.active=Y,this.x=le,this.y=pe,this.dx=Re,this.dy=B,this._=c}k.prototype.on=function(){var Ee=this._.on.apply(this._,arguments);return Ee===this._?this:Ee};function S(){return!i.event.ctrlKey&&!i.event.button}function E(){return this.parentNode}function O(Ee){return Ee??{x:i.event.x,y:i.event.y}}function ie(){return navigator.maxTouchPoints||"ontouchstart"in this}function ve(){var Ee=S,ne=E,R=O,I=ie,Y={},le=n.dispatch("start","drag","end"),pe=0,Re,B,c,g,x=0;function P(we){we.on("mousedown.drag",b).filter(I).on("touchstart.drag",D).on("touchmove.drag",q).on("touchend.drag touchcancel.drag",oe).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function b(){if(!(g||!Ee.apply(this,arguments))){var we=Le("mouse",ne.apply(this,arguments),i.mouse,this,arguments);!we||(i.select(i.event.view).on("mousemove.drag",U,!0).on("mouseup.drag",y,!0),h(i.event.view),u(),c=!1,Re=i.event.clientX,B=i.event.clientY,we("start"))}}function U(){if(s(),!c){var we=i.event.clientX-Re,re=i.event.clientY-B;c=we*we+re*re>x}Y.mouse("drag")}function y(){i.select(i.event.view).on("mousemove.drag mouseup.drag",null),d(i.event.view,c),s(),Y.mouse("end")}function D(){if(!!Ee.apply(this,arguments)){var we=i.event.changedTouches,re=ne.apply(this,arguments),We=we.length,ce,ke;for(ce=0;ce=0;E--){var O=u[E];O==="."?ip(u,E):O===".."?(ip(u,E),S++):S&&(ip(u,E),S--)}if(!d)for(;S--;S)u.unshift("..");d&&u[0]!==""&&(!u[0]||!vf(u[0]))&&u.unshift("");var ie=u.join("/");return v&&ie.substr(-1)!=="/"&&(ie+="/"),ie}var g1=sb;var fb=!0,op="Invariant failed";function ui(e,n){if(!e){if(fb)throw new Error(op);var i=typeof n=="function"?n():n,u=i?op+": "+i:op;throw new Error(u)}}function dl(e){return e.charAt(0)==="/"?e:"/"+e}function m1(e){return e.charAt(0)==="/"?e.substr(1):e}function cb(e,n){return e.toLowerCase().indexOf(n.toLowerCase())===0&&"/?#".indexOf(e.charAt(n.length))!==-1}function y1(e,n){return cb(e,n)?e.substr(n.length):e}function w1(e){return e.charAt(e.length-1)==="/"?e.slice(0,-1):e}function hb(e){var n=e||"/",i="",u="",s=n.indexOf("#");s!==-1&&(u=n.substr(s),n=n.substr(0,s));var h=n.indexOf("?");return h!==-1&&(i=n.substr(h),n=n.substr(0,h)),{pathname:n,search:i==="?"?"":i,hash:u==="#"?"":u}}function sr(e){var n=e.pathname,i=e.search,u=e.hash,s=n||"/";return i&&i!=="?"&&(s+=i.charAt(0)==="?"?i:"?"+i),u&&u!=="#"&&(s+=u.charAt(0)==="#"?u:"#"+u),s}function xr(e,n,i,u){var s;typeof e=="string"?(s=hb(e),s.state=n):(s=zn({},e),s.pathname===void 0&&(s.pathname=""),s.search?s.search.charAt(0)!=="?"&&(s.search="?"+s.search):s.search="",s.hash?s.hash.charAt(0)!=="#"&&(s.hash="#"+s.hash):s.hash="",n!==void 0&&s.state===void 0&&(s.state=n));try{s.pathname=decodeURI(s.pathname)}catch(h){throw h instanceof URIError?new URIError('Pathname "'+s.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):h}return i&&(s.key=i),u?s.pathname?s.pathname.charAt(0)!=="/"&&(s.pathname=g1(s.pathname,u.pathname)):s.pathname=u.pathname:s.pathname||(s.pathname="/"),s}function ap(){var e=null;function n(d){return e=d,function(){e===d&&(e=null)}}function i(d,v,k,S){if(e!=null){var E=typeof e=="function"?e(d,v):e;typeof E=="string"?typeof k=="function"?k(E,S):S(!0):S(E!==!1)}else S(!0)}var u=[];function s(d){var v=!0;function k(){v&&d.apply(void 0,arguments)}return u.push(k),function(){v=!1,u=u.filter(function(S){return S!==k})}}function h(){for(var d=arguments.length,v=new Array(d),k=0;kD?q.splice(D,q.length-D,b):q.push(b),E({action:P,location:b,index:D,entries:q})}})}function R(g,x){var P="REPLACE",b=xr(g,x,O(),c.location);S.confirmTransitionTo(b,P,i,function(U){!U||(c.entries[c.index]=b,E({action:P,location:b}))})}function I(g){var x=N1(c.index+g,0,c.entries.length-1),P="POP",b=c.entries[x];S.confirmTransitionTo(b,P,i,function(U){U?E({action:P,location:b,index:x}):E()})}function Y(){I(-1)}function le(){I(1)}function pe(g){var x=c.index+g;return x>=0&&x=0)&&(i[s]=e[s]);return i}var K1=jt(V1()),Q1=function(n){var i=O1();return i.displayName=n,i},qb=Q1("Router-History"),vo=Q1("Router"),Ya=function(e){Or(n,e),n.computeRootMatch=function(s){return{path:"/",url:"/",params:{},isExact:s==="/"}};function n(u){var s;return s=e.call(this,u)||this,s.state={location:u.history.location},s._isMounted=!1,s._pendingLocation=null,u.staticContext||(s.unlisten=u.history.listen(function(h){s._pendingLocation=h})),s}var i=n.prototype;return i.componentDidMount=function(){var s=this;this._isMounted=!0,this.unlisten&&this.unlisten(),this.props.staticContext||(this.unlisten=this.props.history.listen(function(h){s._isMounted&&s.setState({location:h})})),this._pendingLocation&&this.setState({location:this._pendingLocation})},i.componentWillUnmount=function(){this.unlisten&&(this.unlisten(),this._isMounted=!1,this._pendingLocation=null)},i.render=function(){return En.default.createElement(vo.Provider,{value:{history:this.props.history,location:this.state.location,match:n.computeRootMatch(this.state.location.pathname),staticContext:this.props.staticContext}},En.default.createElement(qb.Provider,{children:this.props.children||null,value:this.props.history}))},n}(En.default.Component),Gb=function(e){Or(n,e);function n(){for(var u,s=arguments.length,h=new Array(s),d=0;d{fetch("https://github.com/api/readme").then(u=>u.text()).then(u=>{n((0,iw.default)(u.replace(/\[\/\/\](.*?)\(__repo__\)[\S\s]*/,"")))}).catch(console.error)},[]),(0,zi.useEffect)(()=>{[...i.current.querySelectorAll("a")].forEach(u=>u.setAttribute("target","_blank"))},[e]),zi.default.createElement("div",{ref:i,className:"document",dangerouslySetInnerHTML:{__html:e}})}var ow=rC;var Mt=jt(wn());var yl=jt(wn());function Ga({checked:e,onChange:n}){return yl.default.createElement("div",{className:"checkbox",onClick:n},yl.default.createElement("svg",{width:9,height:9,viewBox:"0 0 80 80"},e&&yl.default.createElement("path",{d:"M14 30L0 44 37 76 80 11 65 0 34 50z"})),yl.default.createElement("input",{hidden:!0,"aria-hidden":"false",type:"checkbox",checked:e,onChange:n}))}var Nf=jt(wn());function iC(){return Nf.default.createElement("span",{title:"locked"},Nf.default.createElement("svg",{className:"lock",width:"10",height:"10",viewBox:"0 0 20 20"},Nf.default.createElement("path",{fill:"#07A",d:"m3,9h1V6a5,5 0 0,1 12,0V9h1v11H3M14,9V6a4,4 0 1,0-8,0v3"})))}var Ep=iC;var aw=jt(wn());function oC(){return aw.default.createElement("span",{className:"star",title:"starred"},"\u2605")}var Np=oC;var Kr=jt(wn()),gw=jt(wl()),Z2=jt(vw());function Op({value:e="",onChange:n,onSave:i,children:u,readOnly:s}){let h=(0,Kr.useRef)(),d=(0,Kr.useRef)(),v=(0,Kr.useRef)();return(0,Kr.useEffect)(()=>{let k=(0,gw.default)(h.current,{value:e,mode:"jsx",theme:"mdn-like",autofocus:!0,lineWrapping:!0,inputStyle:"contenteditable",lineNumbers:!0,gutters:["CodeMirror-linenumbers","breakpoints"]});d.current=e,v.current=k},[]),(0,Kr.useEffect)(()=>{function k(S,[{origin:E}]){let O=v.current.getValue();E!=="setValue"&&n(O),d.current=O}return v.current.on("changes",k),()=>{v.current.off("changes",k)}},[n]),(0,Kr.useEffect)(()=>{v.current.setOption("extraKeys",{"Ctrl-S":i})},[i]),(0,Kr.useEffect)(()=>{v.current.setOption("readOnly",s)},[s]),(0,Kr.useEffect)(()=>{d.current!==e&&v.current.setValue(e)},[e]),Kr.default.createElement("div",{ref:h,className:"cmd-editor"},u)}var $a=jt(wn());var Qo=jt(wn());function aC({commands:e}){let n=(0,Qo.useRef)(),[{height:i},u]=(0,Qo.useState)({}),[s,h]=(0,Qo.useState)(0),{length:d}=e,v=20,k=d*v;return(0,Qo.useEffect)(()=>{let S=()=>u(n.current.getBoundingClientRect());S(),window.addEventListener("resize",S);let E=O=>h(O.target.scrollTop);return n.current.addEventListener("scroll",E),()=>{window.removeEventListener("resize",S),n.current.removeEventListener("scroll",E)}},[]),$a.default.createElement("div",{className:"cmd-list",ref:n},$a.default.createElement("div",{style:{height:k}},e.map((S,E)=>{let O=E*v,ie=O+v>s,ve=O-v{let s=localStorage.getItem(e);return s?JSON.parse(s):n});return(0,Pf.useEffect)(()=>{localStorage.setItem(e,JSON.stringify(i))},[i]),[i,u]}function Zo(){let[e,n]=yw("password",""),[i,u]=yw("admin",!1);return{fetchAPI:(h,d={})=>new Promise((v,k)=>{let S={...d,headers:{"X-Authorization":`Basic ${btoa(`web:${e}`)}`,"Content-Type":"application/json"},body:d.body&&JSON.stringify(d.body)};fetch(`/api/${h}`,S).then(E=>E.json()).then(v).catch(k)}),password:e,setPassword:n,admin:i,setAdmin:u}}function Ap(){let{fetchAPI:e,password:n,setPassword:i,admin:u,setAdmin:s}=Zo();return(0,go.useEffect)(()=>{e("is-admin").then(s).catch(console.error)},[n]),go.default.createElement("div",{className:"cmd-default"},go.default.createElement("input",{type:"password",placeholder:"admin pwd",value:n,className:u?"admin":"error",onChange:h=>i(h.target.value)}),go.default.createElement("p",null,"an interface for manipulating commands"),go.default.createElement("p",null,"alternatively, try the"," ",go.default.createElement("a",{href:"https://www.github.com/kirjavascript/nibblrjr.vim",target:"_blank"},"vim plugin")))}var Tw=jt(xw()),Sw=jt(kw());function Dp({command:e}){return Mt.default.createElement(Mt.default.Fragment,null,e.name," ",e.starred&&Mt.default.createElement(Np,null)," ",e.locked&&Mt.default.createElement(Ep,null),e.event&&Mt.default.createElement("span",{className:"event"}," (event)"))}function lC({history:e}){let[n,i]=(0,Mt.useState)([]),[u,s]=(0,Mt.useState)(""),[h,d]=(0,Mt.useState)(!1),[v,k]=(0,Mt.useState)(!1),[S,E]=(0,Mt.useState)(""),{fetchAPI:O,admin:ie}=Zo(),ve=(0,Mt.useCallback)(()=>{O("command/list").then(i).catch(console.error)},[]);(0,Mt.useEffect)(ve,[]);let Ee;try{Ee=new RegExp(u)}catch{}let ne=n.filter(g=>(g.starred&&h||!h)&&(g.locked&&v||!v)),R=ne.filter(g=>!u||g.name.match(Ee)),I=n.some(g=>g.name===S),{root:Y}=(0,Sw.parseCommand)({text:S}),le=n.find(g=>g.name===Y),pe=le&&le.locked,B=!Tw.default.includes(S)&&!I&&(!pe||ie),c=(0,Mt.useCallback)(g=>{if(g.keyCode===13&&B){let x=encodeURIComponent(S);O(`command/new/${x}`,{method:"POST"}).then(()=>{E(""),ve(),e.push(`/cmds/${x}`)}).catch(console.error)}},[S]);return Mt.default.createElement(Mt.default.Fragment,null,Mt.default.createElement("div",{className:"cmd-menu"},Mt.default.createElement("div",null,Mt.default.createElement("input",{type:"text",placeholder:"new command",className:!B&&S?"invalid":"",value:S,onChange:g=>E(g.target.value.replace(/\s+/g,"")),onKeyDown:c}),Mt.default.createElement("input",{type:"text",placeholder:"search commands (regex)",value:u,onChange:g=>{s(g.target.value)}}),Mt.default.createElement("div",{className:"cmd-filter"},Mt.default.createElement("span",null," ",R.length," / ",ne.length," "),Mt.default.createElement("div",{className:"cmd-toggle"},Mt.default.createElement(Np,null),Mt.default.createElement(Ga,{checked:h,onChange:()=>d(!h)}),Mt.default.createElement(Ep,null),Mt.default.createElement(Ga,{checked:v,onChange:()=>k(!v)})))),Mt.default.createElement(mw,{commands:R})),Mt.default.createElement(Fi,{exact:!0,path:"/cmds/:name",render:g=>Mt.default.createElement(sC,{updateList:ve,...g})}),Mt.default.createElement(Fi,{exact:!0,path:"/cmds",component:Ap}))}var bw="/* loading ... */";function sC({updateList:e,history:n,match:{params:i}}){let{fetchAPI:u,admin:s}=Zo(),[h,d]=(0,Mt.useState)({command:bw}),[v,k]=(0,Mt.useState)(bw),[S,E]=(0,Mt.useState)(!1),[O,ie]=(0,Mt.useState)("delete");function ve(){u("command/get/"+i.name).then(g=>{d(g),k(g.command)}).catch(console.error),ie("delete")}(0,Mt.useEffect)(ve,[i.name]);let Ee=g=>{let x={method:"POST",body:{[g]:!h[g]}};u("command/set-config/"+i.name,x).then(P=>{P.error||(ve(),e())}).catch(console.error)},ne=()=>{E(!0);let g={method:"POST",body:{command:h.command}};u("command/set/"+i.name,g).then(x=>{x.error?alert(x.error):k(h.command),E(!1)}).catch(console.error)},R=()=>{O!=="confirm?"?ie("confirm?"):u("command/delete/"+i.name,{method:"POST"}).then(g=>{g.error?ie(g.error):(e(),n.push("/cmds"))}).catch(console.error)},I=h.error?`/* error: ${h.error} */`:h.command,{locked:Y,starred:le,event:pe}=h,Re=S?"saving":h.command===v?"saved":"save",B=s,c=h.locked&&!B;return Mt.default.createElement(Op,{value:I,readOnly:c,onSave:ne,onChange:g=>{d({...h,command:g})}},Mt.default.createElement("div",{className:"cmd-options"},Mt.default.createElement("span",{className:"cmd-name"},Mt.default.createElement(Dp,{command:h})),!!h.name&&Mt.default.createElement("div",null,!c&&Mt.default.createElement(Mt.default.Fragment,null,Mt.default.createElement("button",{type:"button",onClick:ne},Re),B&&Mt.default.createElement(Mt.default.Fragment,null,Mt.default.createElement("button",{type:"button",onClick:()=>{Ee("locked")}},Y?"unlock":"lock"),Mt.default.createElement("button",{type:"button",onClick:()=>{Ee("starred")}},le?"unstar":"star"),Mt.default.createElement("button",{type:"button",onClick:()=>{Ee("event")}},pe?"unevent":"as event")),Mt.default.createElement("button",{type:"button",onClick:R},O)))))}var Cw=lC;var tn=jt(wn());var _r=jt(wn());var Va=jt(wn());function xl({items:e,...n}){return Va.default.createElement("div",{className:"select"},Va.default.createElement("select",{...n},e.map(({label:i,value:u})=>Va.default.createElement("option",{value:u,key:u},i))),Va.default.createElement("svg",{className:"arrow",width:"12",height:"12",viewBox:"0 0 100 50"},Va.default.createElement("path",{d:"M0,0H100L50,50z"})))}var Up=jt(px()),_x=jt(xx());function NM({onMonth:e,onChange:n,base:i,history:u,location:s}){let h=(0,_r.useMemo)(()=>s.pathname.split("/"),[]),[d,v]=(0,_r.useState)(h[2]||""),[k,S]=(0,_r.useState)(decodeURIComponent(h[3]||"")),[E,O]=(0,_r.useState)(h[4]||"");(0,_r.useEffect)(()=>{u.replace(["/stats",d||k||E?"/":"",d,k||E?"/":"",encodeURIComponent(k),E?"/":"",E].join("")),n({server:d,channel:k,month:E})},[d,k,E]),(0,_r.useEffect)(()=>{e({server:d,channel:k,month:E})},[E]);let ie=i.servers.map(({server:ne})=>({label:ne,value:ne})),ve=i.servers.reduce((ne,R)=>((d===""||R.server===d)&&ne.push(...R.channels.map(I=>({label:I,value:I}))),ne),[]).filter((ne,R,I)=>I.findIndex(Y=>Y.value==ne.value)===R),Ee=Array.from({length:12},(ne,R)=>{let I=(0,_x.default)(new Date,R+1);return{label:(0,Up.default)(I,"MMMM YYYY").toLowerCase(),value:(0,Up.default)(I,"YYYY-MM")}});return(0,_r.useEffect)(()=>{(d||k||E)&&s.pathname==="/stats"&&(v(""),S(""),O(""))},[s.pathname]),_r.default.createElement("div",{className:"stats-filter"},_r.default.createElement(xl,{value:d,items:[{label:"servers",value:""},...ie],onChange:ne=>{v(ne.target.value),ne.target.value&&S("")}}),_r.default.createElement(xl,{value:k,items:[{label:"channels",value:""},...ve],onChange:ne=>S(ne.target.value)}),_r.default.createElement(xl,{value:E,items:[{label:"this month",value:""},...Ee],onChange:ne=>O(ne.target.value)}))}var kx=NM;var mo=jt(wn()),_l=Object.assign({},Jo(),Yp(),qp(),$p());function Vp({x:e,y:n,width:i,height:u,radius:s=3}){return s>u&&(s=u),i=3&&(c.x1=B[1][0],c.y1=B[1][1]),c.x=B[B.length-1][0],c.y=B[B.length-1][1],B.length===4?c.type="C":B.length===3?c.type="Q":c.type="L",c}function E(B,c){c=c||2;for(var g=[],x=B,P=1/c,b=0;b0?Le-=1:Le0&&(Le-=1))}return D[Le]=(D[Le]||0)+1,D},[]),y=U.reduce(function(D,q,oe){if(oe===B.length-1){var Le=Ee(q,s({},B[B.length-1]));return Le[0].type==="M"&&Le.forEach(function(we){we.type="L"}),D.concat(Le)}return D.concat(I(B[oe],B[oe+1],q))},[]);return y.unshift(B[0]),y}function le(B){for(var c=(B||"").match(ie)||[],g=[],x,P,b=0;b0&&x[x.length-1].type==="Z"&&x.pop(),P.length>0&&P[P.length-1].type==="Z"&&P.pop(),x.length?P.length||P.push(x[0]):x.push(P[0]);var U=Math.abs(P.length-x.length);U!==0&&(P.length>x.length?x=Y(x,P,g):P.length{(function(e,n){typeof ec=="object"&&typeof Xx!="undefined"?n(ec):typeof define=="function"&&define.amd?define(["exports"],n):(e=e||self,n(e.d3=e.d3||{}))})(ec,function(e){"use strict";function n(c){var g=+this._x.call(null,c),x=+this._y.call(null,c);return i(this.cover(g,x),g,x,c)}function i(c,g,x,P){if(isNaN(g)||isNaN(x))return c;var b,U=c._root,y={data:P},D=c._x0,q=c._y0,oe=c._x1,Le=c._y1,we,re,We,ce,ke,Ce,me,Ue;if(!U)return c._root=y,c;for(;U.length;)if((ke=g>=(we=(D+oe)/2))?D=we:oe=we,(Ce=x>=(re=(q+Le)/2))?q=re:Le=re,b=U,!(U=U[me=Ce<<1|ke]))return b[me]=y,c;if(We=+c._x.call(null,U.data),ce=+c._y.call(null,U.data),g===We&&x===ce)return y.next=U,b?b[me]=y:c._root=y,c;do b=b?b[me]=new Array(4):c._root=new Array(4),(ke=g>=(we=(D+oe)/2))?D=we:oe=we,(Ce=x>=(re=(q+Le)/2))?q=re:Le=re;while((me=Ce<<1|ke)==(Ue=(ce>=re)<<1|We>=we));return b[Ue]=U,b[me]=y,c}function u(c){var g,x,P=c.length,b,U,y=new Array(P),D=new Array(P),q=1/0,oe=1/0,Le=-1/0,we=-1/0;for(x=0;xLe&&(Le=b),Uwe&&(we=U));if(q>Le||oe>we)return this;for(this.cover(q,oe).cover(Le,we),x=0;xc||c>=b||P>g||g>=U;)switch(oe=(gLe||(D=ce.y0)>we||(q=ce.x1)=me)<<1|c>=Ce)&&(ce=re[re.length-1],re[re.length-1]=re[re.length-1-ke],re[re.length-1-ke]=ce)}else{var Ue=c-+this._x.call(null,We.data),He=g-+this._y.call(null,We.data),Je=Ue*Ue+He*He;if(Je=(re=(y+q)/2))?y=re:q=re,(ke=we>=(We=(D+oe)/2))?D=We:oe=We,g=x,!(x=x[Ce=ke<<1|ce]))return this;if(!x.length)break;(g[Ce+1&3]||g[Ce+2&3]||g[Ce+3&3])&&(P=g,me=Ce)}for(;x.data!==c;)if(b=x,!(x=x.next))return this;return(U=x.next)&&delete x.next,b?(U?b.next=U:delete b.next,this):g?(U?g[Ce]=U:delete g[Ce],(x=g[0]||g[1]||g[2]||g[3])&&x===(g[3]||g[2]||g[1]||g[0])&&!x.length&&(P?P[me]=x:this._root=x),this):(this._root=U,this)}function E(c){for(var g=0,x=c.length;g{(function(e,n){typeof tc=="object"&&typeof Qx!="undefined"?n(tc,Kx(),Bp(),qf(),Gp()):typeof define=="function"&&define.amd?define(["exports","d3-quadtree","d3-collection","d3-dispatch","d3-timer"],n):n(e.d3=e.d3||{},e.d3,e.d3,e.d3,e.d3)})(tc,function(e,n,i,u,s){"use strict";function h(c,g){var x;c==null&&(c=0),g==null&&(g=0);function P(){var b,U=x.length,y,D=0,q=0;for(b=0;bwe.index){var fe=re-Oe.x-Oe.vx,De=We-Oe.y-Oe.vy,at=fe*fe+De*De;atre+ee||teWe+ee||geq.r&&(q.r=q[oe].r)}function D(){if(!!g){var q,oe=g.length,Le;for(x=new Array(oe),q=0;q1?(ke==null?D.remove(ce):D.set(ce,We(ke)),g):D.get(ce)},find:function(ce,ke,Ce){var me=0,Ue=c.length,He,Je,te,ge,Oe;for(Ce==null?Ce=1/0:Ce*=Ce,me=0;me1?(oe.on(ce,ke),g):oe.on(ce)}}}function le(){var c,g,x,P=d(-30),b,U=1,y=1/0,D=.81;function q(re){var We,ce=c.length,ke=n.quadtree(c,Ee,ne).visitAfter(Le);for(x=re,We=0;We=y)return;(re.data!==g||re.next)&&(Ce===0&&(Ce=v(),He+=Ce*Ce),me===0&&(me=v(),He+=me*me),He{(function(e,n){typeof nc=="object"&&typeof Jx!="undefined"?n(nc,qf(),Jo()):typeof define=="function"&&define.amd?define(["exports","d3-dispatch","d3-selection"],n):(e=e||self,n(e.d3=e.d3||{},e.d3,e.d3))})(nc,function(e,n,i){"use strict";function u(){i.event.stopImmediatePropagation()}function s(){i.event.preventDefault(),i.event.stopImmediatePropagation()}function h(Ee){var ne=Ee.document.documentElement,R=i.select(Ee).on("dragstart.drag",s,!0);"onselectstart"in ne?R.on("selectstart.drag",s,!0):(ne.__noselect=ne.style.MozUserSelect,ne.style.MozUserSelect="none")}function d(Ee,ne){var R=Ee.document.documentElement,I=i.select(Ee).on("dragstart.drag",null);ne&&(I.on("click.drag",s,!0),setTimeout(function(){I.on("click.drag",null)},0)),"onselectstart"in R?I.on("selectstart.drag",null):(R.style.MozUserSelect=R.__noselect,delete R.__noselect)}function v(Ee){return function(){return Ee}}function k(Ee,ne,R,I,Y,le,pe,Re,B,c){this.target=Ee,this.type=ne,this.subject=R,this.identifier=I,this.active=Y,this.x=le,this.y=pe,this.dx=Re,this.dy=B,this._=c}k.prototype.on=function(){var Ee=this._.on.apply(this._,arguments);return Ee===this._?this:Ee};function S(){return!i.event.ctrlKey&&!i.event.button}function E(){return this.parentNode}function O(Ee){return Ee??{x:i.event.x,y:i.event.y}}function ie(){return navigator.maxTouchPoints||"ontouchstart"in this}function ve(){var Ee=S,ne=E,R=O,I=ie,Y={},le=n.dispatch("start","drag","end"),pe=0,Re,B,c,g,x=0;function P(we){we.on("mousedown.drag",b).filter(I).on("touchstart.drag",D).on("touchmove.drag",q).on("touchend.drag touchcancel.drag",oe).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function b(){if(!(g||!Ee.apply(this,arguments))){var we=Le("mouse",ne.apply(this,arguments),i.mouse,this,arguments);!we||(i.select(i.event.view).on("mousemove.drag",U,!0).on("mouseup.drag",y,!0),h(i.event.view),u(),c=!1,Re=i.event.clientX,B=i.event.clientY,we("start"))}}function U(){if(s(),!c){var we=i.event.clientX-Re,re=i.event.clientY-B;c=we*we+re*re>x}Y.mouse("drag")}function y(){i.select(i.event.view).on("mousemove.drag mouseup.drag",null),d(i.event.view,c),s(),Y.mouse("end")}function D(){if(!!Ee.apply(this,arguments)){var we=i.event.changedTouches,re=ne.apply(this,arguments),We=we.length,ce,ke;for(ce=0;ce=0;E--){var O=u[E];O==="."?ip(u,E):O===".."?(ip(u,E),S++):S&&(ip(u,E),S--)}if(!d)for(;S--;S)u.unshift("..");d&&u[0]!==""&&(!u[0]||!vf(u[0]))&&u.unshift("");var ie=u.join("/");return v&&ie.substr(-1)!=="/"&&(ie+="/"),ie}var g1=sb;var fb=!0,op="Invariant failed";function ui(e,n){if(!e){if(fb)throw new Error(op);var i=typeof n=="function"?n():n,u=i?op+": "+i:op;throw new Error(u)}}function dl(e){return e.charAt(0)==="/"?e:"/"+e}function m1(e){return e.charAt(0)==="/"?e.substr(1):e}function cb(e,n){return e.toLowerCase().indexOf(n.toLowerCase())===0&&"/?#".indexOf(e.charAt(n.length))!==-1}function y1(e,n){return cb(e,n)?e.substr(n.length):e}function w1(e){return e.charAt(e.length-1)==="/"?e.slice(0,-1):e}function hb(e){var n=e||"/",i="",u="",s=n.indexOf("#");s!==-1&&(u=n.substr(s),n=n.substr(0,s));var h=n.indexOf("?");return h!==-1&&(i=n.substr(h),n=n.substr(0,h)),{pathname:n,search:i==="?"?"":i,hash:u==="#"?"":u}}function sr(e){var n=e.pathname,i=e.search,u=e.hash,s=n||"/";return i&&i!=="?"&&(s+=i.charAt(0)==="?"?i:"?"+i),u&&u!=="#"&&(s+=u.charAt(0)==="#"?u:"#"+u),s}function xr(e,n,i,u){var s;typeof e=="string"?(s=hb(e),s.state=n):(s=zn({},e),s.pathname===void 0&&(s.pathname=""),s.search?s.search.charAt(0)!=="?"&&(s.search="?"+s.search):s.search="",s.hash?s.hash.charAt(0)!=="#"&&(s.hash="#"+s.hash):s.hash="",n!==void 0&&s.state===void 0&&(s.state=n));try{s.pathname=decodeURI(s.pathname)}catch(h){throw h instanceof URIError?new URIError('Pathname "'+s.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):h}return i&&(s.key=i),u?s.pathname?s.pathname.charAt(0)!=="/"&&(s.pathname=g1(s.pathname,u.pathname)):s.pathname=u.pathname:s.pathname||(s.pathname="/"),s}function ap(){var e=null;function n(d){return e=d,function(){e===d&&(e=null)}}function i(d,v,k,S){if(e!=null){var E=typeof e=="function"?e(d,v):e;typeof E=="string"?typeof k=="function"?k(E,S):S(!0):S(E!==!1)}else S(!0)}var u=[];function s(d){var v=!0;function k(){v&&d.apply(void 0,arguments)}return u.push(k),function(){v=!1,u=u.filter(function(S){return S!==k})}}function h(){for(var d=arguments.length,v=new Array(d),k=0;kD?q.splice(D,q.length-D,b):q.push(b),E({action:P,location:b,index:D,entries:q})}})}function R(g,x){var P="REPLACE",b=xr(g,x,O(),c.location);S.confirmTransitionTo(b,P,i,function(U){!U||(c.entries[c.index]=b,E({action:P,location:b}))})}function I(g){var x=N1(c.index+g,0,c.entries.length-1),P="POP",b=c.entries[x];S.confirmTransitionTo(b,P,i,function(U){U?E({action:P,location:b,index:x}):E()})}function Y(){I(-1)}function le(){I(1)}function pe(g){var x=c.index+g;return x>=0&&x=0)&&(i[s]=e[s]);return i}var K1=jt(V1()),Q1=function(n){var i=O1();return i.displayName=n,i},qb=Q1("Router-History"),vo=Q1("Router"),Ya=function(e){Or(n,e),n.computeRootMatch=function(s){return{path:"/",url:"/",params:{},isExact:s==="/"}};function n(u){var s;return s=e.call(this,u)||this,s.state={location:u.history.location},s._isMounted=!1,s._pendingLocation=null,u.staticContext||(s.unlisten=u.history.listen(function(h){s._pendingLocation=h})),s}var i=n.prototype;return i.componentDidMount=function(){var s=this;this._isMounted=!0,this.unlisten&&this.unlisten(),this.props.staticContext||(this.unlisten=this.props.history.listen(function(h){s._isMounted&&s.setState({location:h})})),this._pendingLocation&&this.setState({location:this._pendingLocation})},i.componentWillUnmount=function(){this.unlisten&&(this.unlisten(),this._isMounted=!1,this._pendingLocation=null)},i.render=function(){return En.default.createElement(vo.Provider,{value:{history:this.props.history,location:this.state.location,match:n.computeRootMatch(this.state.location.pathname),staticContext:this.props.staticContext}},En.default.createElement(qb.Provider,{children:this.props.children||null,value:this.props.history}))},n}(En.default.Component),Gb=function(e){Or(n,e);function n(){for(var u,s=arguments.length,h=new Array(s),d=0;d{fetch("https://github.com/api/readme").then(u=>u.text()).then(u=>{n((0,iw.default)(u.replace(/\[\/\/\](.*?)\(__repo__\)[\S\s]*/,"")))}).catch(console.error)},[]),(0,zi.useEffect)(()=>{[...i.current.querySelectorAll("a")].forEach(u=>u.setAttribute("target","_blank"))},[e]),zi.default.createElement("div",{ref:i,className:"document",dangerouslySetInnerHTML:{__html:e}})}var ow=rC;var Mt=jt(wn());var yl=jt(wn());function Ga({checked:e,onChange:n}){return yl.default.createElement("div",{className:"checkbox",onClick:n},yl.default.createElement("svg",{width:9,height:9,viewBox:"0 0 80 80"},e&&yl.default.createElement("path",{d:"M14 30L0 44 37 76 80 11 65 0 34 50z"})),yl.default.createElement("input",{hidden:!0,"aria-hidden":"false",type:"checkbox",checked:e,onChange:n}))}var Nf=jt(wn());function iC(){return Nf.default.createElement("span",{className:"lock",title:"locked"},Nf.default.createElement("svg",{width:"10",height:"10",viewBox:"0 0 20 20"},Nf.default.createElement("path",{fill:"#07A",d:"m3,9h1V6a5,5 0 0,1 12,0V9h1v11H3M14,9V6a4,4 0 1,0-8,0v3"})))}var Ep=iC;var aw=jt(wn());function oC(){return aw.default.createElement("span",{className:"star",title:"starred"},"\u2605")}var Np=oC;var Kr=jt(wn()),gw=jt(wl()),Z2=jt(vw());function Op({value:e="",onChange:n,onSave:i,children:u,readOnly:s}){let h=(0,Kr.useRef)(),d=(0,Kr.useRef)(),v=(0,Kr.useRef)();return(0,Kr.useEffect)(()=>{let k=(0,gw.default)(h.current,{value:e,mode:"jsx",theme:"mdn-like",autofocus:!0,lineWrapping:!0,inputStyle:"contenteditable",lineNumbers:!0,gutters:["CodeMirror-linenumbers","breakpoints"]});d.current=e,v.current=k},[]),(0,Kr.useEffect)(()=>{function k(S,[{origin:E}]){let O=v.current.getValue();E!=="setValue"&&n(O),d.current=O}return v.current.on("changes",k),()=>{v.current.off("changes",k)}},[n]),(0,Kr.useEffect)(()=>{v.current.setOption("extraKeys",{"Ctrl-S":i})},[i]),(0,Kr.useEffect)(()=>{v.current.setOption("readOnly",s)},[s]),(0,Kr.useEffect)(()=>{d.current!==e&&v.current.setValue(e)},[e]),Kr.default.createElement("div",{ref:h,className:"cmd-editor"},u)}var $a=jt(wn());var Qo=jt(wn());function aC({commands:e}){let n=(0,Qo.useRef)(),[{height:i},u]=(0,Qo.useState)({}),[s,h]=(0,Qo.useState)(0),{length:d}=e,v=20,k=d*v;return(0,Qo.useEffect)(()=>{let S=()=>u(n.current.getBoundingClientRect());S(),window.addEventListener("resize",S);let E=O=>h(O.target.scrollTop);return n.current.addEventListener("scroll",E),()=>{window.removeEventListener("resize",S),n.current.removeEventListener("scroll",E)}},[]),$a.default.createElement("div",{className:"cmd-list",ref:n},$a.default.createElement("div",{style:{height:k}},e.map((S,E)=>{let O=E*v,ie=O+v>s,ve=O-v{let s=localStorage.getItem(e);return s?JSON.parse(s):n});return(0,Pf.useEffect)(()=>{localStorage.setItem(e,JSON.stringify(i))},[i]),[i,u]}function Zo(){let[e,n]=yw("password",""),[i,u]=yw("admin",!1);return{fetchAPI:(h,d={})=>new Promise((v,k)=>{let S={...d,headers:{"X-Authorization":`Basic ${btoa(`web:${e}`)}`,"Content-Type":"application/json"},body:d.body&&JSON.stringify(d.body)};fetch(`/api/${h}`,S).then(E=>E.json()).then(v).catch(k)}),password:e,setPassword:n,admin:i,setAdmin:u}}function Ap(){let{fetchAPI:e,password:n,setPassword:i,admin:u,setAdmin:s}=Zo();return(0,go.useEffect)(()=>{e("is-admin").then(s).catch(console.error)},[n]),go.default.createElement("div",{className:"cmd-default"},go.default.createElement("input",{type:"password",placeholder:"admin pwd",value:n,className:u?"admin":"error",onChange:h=>i(h.target.value)}),go.default.createElement("p",null,"an interface for manipulating commands"),go.default.createElement("p",null,"alternatively, try the"," ",go.default.createElement("a",{href:"https://www.github.com/kirjavascript/nibblrjr.vim",target:"_blank"},"vim plugin")))}var Tw=jt(xw()),Sw=jt(kw());function Dp({command:e}){return Mt.default.createElement(Mt.default.Fragment,null,e.name," ",e.starred&&Mt.default.createElement(Np,null)," ",e.locked&&Mt.default.createElement(Ep,null),e.event&&Mt.default.createElement("span",{className:"event"}," (event)"))}function lC({history:e}){let[n,i]=(0,Mt.useState)([]),[u,s]=(0,Mt.useState)(""),[h,d]=(0,Mt.useState)(!1),[v,k]=(0,Mt.useState)(!1),[S,E]=(0,Mt.useState)(""),{fetchAPI:O,admin:ie}=Zo(),ve=(0,Mt.useCallback)(()=>{O("command/list").then(i).catch(console.error)},[]);(0,Mt.useEffect)(ve,[]);let Ee;try{Ee=new RegExp(u)}catch{}let ne=n.filter(g=>(g.starred&&h||!h)&&(g.locked&&v||!v)),R=ne.filter(g=>!u||g.name.match(Ee)),I=n.some(g=>g.name===S),{root:Y}=(0,Sw.parseCommand)({text:S}),le=n.find(g=>g.name===Y),pe=le&&le.locked,B=!Tw.default.includes(S)&&!I&&(!pe||ie),c=(0,Mt.useCallback)(g=>{if(g.keyCode===13&&B){let x=encodeURIComponent(S);O(`command/new/${x}`,{method:"POST"}).then(()=>{E(""),ve(),e.push(`/cmds/${x}`)}).catch(console.error)}},[S]);return Mt.default.createElement(Mt.default.Fragment,null,Mt.default.createElement("div",{className:"cmd-menu"},Mt.default.createElement("div",null,Mt.default.createElement("input",{type:"text",placeholder:"new command",className:!B&&S?"invalid":"",value:S,onChange:g=>E(g.target.value.replace(/\s+/g,"")),onKeyDown:c}),Mt.default.createElement("input",{type:"text",placeholder:"search commands (regex)",value:u,onChange:g=>{s(g.target.value)}}),Mt.default.createElement("div",{className:"cmd-filter"},Mt.default.createElement("span",null," ",R.length," / ",ne.length," "),Mt.default.createElement("div",{className:"cmd-toggle"},Mt.default.createElement(Np,null),Mt.default.createElement(Ga,{checked:h,onChange:()=>d(!h)}),Mt.default.createElement(Ep,null),Mt.default.createElement(Ga,{checked:v,onChange:()=>k(!v)})))),Mt.default.createElement(mw,{commands:R})),Mt.default.createElement(Fi,{exact:!0,path:"/cmds/:name",render:g=>Mt.default.createElement(sC,{updateList:ve,...g})}),Mt.default.createElement(Fi,{exact:!0,path:"/cmds",component:Ap}))}var bw="/* loading ... */";function sC({updateList:e,history:n,match:{params:i}}){let{fetchAPI:u,admin:s}=Zo(),[h,d]=(0,Mt.useState)({command:bw}),[v,k]=(0,Mt.useState)(bw),[S,E]=(0,Mt.useState)(!1),[O,ie]=(0,Mt.useState)("delete");function ve(){u("command/get/"+i.name).then(g=>{d(g),k(g.command)}).catch(console.error),ie("delete")}(0,Mt.useEffect)(ve,[i.name]);let Ee=g=>{let x={method:"POST",body:{[g]:!h[g]}};u("command/set-config/"+i.name,x).then(P=>{P.error||(ve(),e())}).catch(console.error)},ne=()=>{E(!0);let g={method:"POST",body:{command:h.command}};u("command/set/"+i.name,g).then(x=>{x.error?alert(x.error):k(h.command),E(!1)}).catch(console.error)},R=()=>{O!=="confirm?"?ie("confirm?"):u("command/delete/"+i.name,{method:"POST"}).then(g=>{g.error?ie(g.error):(e(),n.push("/cmds"))}).catch(console.error)},I=h.error?`/* error: ${h.error} */`:h.command,{locked:Y,starred:le,event:pe}=h,Re=S?"saving":h.command===v?"saved":"save",B=s,c=h.locked&&!B;return Mt.default.createElement(Op,{value:I,readOnly:c,onSave:ne,onChange:g=>{d({...h,command:g})}},Mt.default.createElement("div",{className:"cmd-options"},Mt.default.createElement("span",{className:"cmd-name"},Mt.default.createElement(Dp,{command:h})),!!h.name&&Mt.default.createElement("div",null,!c&&Mt.default.createElement(Mt.default.Fragment,null,Mt.default.createElement("button",{type:"button",onClick:ne},Re),B&&Mt.default.createElement(Mt.default.Fragment,null,Mt.default.createElement("button",{type:"button",onClick:()=>{Ee("locked")}},Y?"unlock":"lock"),Mt.default.createElement("button",{type:"button",onClick:()=>{Ee("starred")}},le?"unstar":"star"),Mt.default.createElement("button",{type:"button",onClick:()=>{Ee("event")}},pe?"unevent":"as event")),Mt.default.createElement("button",{type:"button",onClick:R},O)))))}var Cw=lC;var tn=jt(wn());var _r=jt(wn());var Va=jt(wn());function xl({items:e,...n}){return Va.default.createElement("div",{className:"select"},Va.default.createElement("select",{...n},e.map(({label:i,value:u})=>Va.default.createElement("option",{value:u,key:u},i))),Va.default.createElement("svg",{className:"arrow",width:"12",height:"12",viewBox:"0 0 100 50"},Va.default.createElement("path",{d:"M0,0H100L50,50z"})))}var Up=jt(px()),_x=jt(xx());function NM({onMonth:e,onChange:n,base:i,history:u,location:s}){let h=(0,_r.useMemo)(()=>s.pathname.split("/"),[]),[d,v]=(0,_r.useState)(h[2]||""),[k,S]=(0,_r.useState)(decodeURIComponent(h[3]||"")),[E,O]=(0,_r.useState)(h[4]||"");(0,_r.useEffect)(()=>{u.replace(["/stats",d||k||E?"/":"",d,k||E?"/":"",encodeURIComponent(k),E?"/":"",E].join("")),n({server:d,channel:k,month:E})},[d,k,E]),(0,_r.useEffect)(()=>{e({server:d,channel:k,month:E})},[E]);let ie=i.servers.map(({server:ne})=>({label:ne,value:ne})),ve=i.servers.reduce((ne,R)=>((d===""||R.server===d)&&ne.push(...R.channels.map(I=>({label:I,value:I}))),ne),[]).filter((ne,R,I)=>I.findIndex(Y=>Y.value==ne.value)===R),Ee=Array.from({length:12},(ne,R)=>{let I=(0,_x.default)(new Date,R+1);return{label:(0,Up.default)(I,"MMMM YYYY").toLowerCase(),value:(0,Up.default)(I,"YYYY-MM")}});return(0,_r.useEffect)(()=>{(d||k||E)&&s.pathname==="/stats"&&(v(""),S(""),O(""))},[s.pathname]),_r.default.createElement("div",{className:"stats-filter"},_r.default.createElement(xl,{value:d,items:[{label:"servers",value:""},...ie],onChange:ne=>{v(ne.target.value),ne.target.value&&S("")}}),_r.default.createElement(xl,{value:k,items:[{label:"channels",value:""},...ve],onChange:ne=>S(ne.target.value)}),_r.default.createElement(xl,{value:E,items:[{label:"this month",value:""},...Ee],onChange:ne=>O(ne.target.value)}))}var kx=NM;var mo=jt(wn()),_l=Object.assign({},Jo(),Yp(),qp(),$p());function Vp({x:e,y:n,width:i,height:u,radius:s=3}){return s>u&&(s=u),i Date: Thu, 16 Jun 2022 19:18:12 +0200 Subject: [PATCH 38/94] some AI stuff --- commands/-17ec727d0b2c.json | 2 +- commands/-5543cccada3a.json | 2 +- commands/-60a45414d51f.json | 2 +- commands/-61e5a9292e6c.json | 2 +- commands/-73df838fbf9e.json | 2 +- commands/-80816f81e75b.json | 2 +- commands/-81e75013b7f5.json | 2 +- commands/-9ed4e727a8d8.json | 2 +- commands/-a3f781506cec.json | 2 +- commands/-a8d4171e4fa7.json | 2 +- commands/-b1da0530db76.json | 2 +- commands/-b5e3e197cbd6.json | 2 +- commands/-c55a6d9dc549.json | 2 +- commands/-d5d668d5e47a.json | 2 +- commands/-d7b115d4bf46.json | 2 +- commands/-dcc605bd7f9e.json | 2 +- commands/-fbdcbe735a57.json | 2 +- commands/03-9ca88dc6b73a.json | 2 +- commands/1-c8b1a58e7d13.json | 2 +- commands/barf-64fc0cfb0aeb.json | 2 +- commands/boris-7e61b2ef6dfd.json | 2 +- commands/butts-a98b92d062e7.json | 2 +- commands/bytes-e7609d4f99c0.json | 2 +- commands/dayssincegithubruinedtheui-1d21c2374d84.json | 2 +- commands/decide-f82fcf21b13e.json | 2 +- commands/define-323b916b0a5b.json | 2 +- commands/dinobutts-bed9bfa9c331.json | 7 +++++++ commands/dollar-599465b6046e.json | 6 ------ commands/event-b306be3528b0.json | 2 +- commands/eventconvertUnits-de650149a73c.json | 7 +++++++ commands/eventfetchURL-798176d44de4.json | 2 +- commands/gone2-bbdfbca3e786.json | 7 +++++++ commands/gpt3-ab803cc17718.json | 7 +++++++ commands/log-7b1ebf618a31.json | 2 +- commands/morbcheck-7d49334c2f18.json | 7 +++++++ commands/obamna-980d204b7aa1.json | 7 +++++++ commands/paypal-0bc4bb2449e1.json | 2 +- commands/purple-4dfd59728441.json | 2 +- commands/quitest-57945d35868f.json | 2 +- commands/speak-6effd709b830.json | 4 ++-- commands/tsp-8913f33a8e3a.json | 2 +- commands/varhi-b81ee2070343.json | 7 +++++++ commands/webmd-191f00f35b19.json | 7 +++++++ 43 files changed, 91 insertions(+), 41 deletions(-) create mode 100644 commands/dinobutts-bed9bfa9c331.json delete mode 100644 commands/dollar-599465b6046e.json create mode 100644 commands/eventconvertUnits-de650149a73c.json create mode 100644 commands/gone2-bbdfbca3e786.json create mode 100644 commands/gpt3-ab803cc17718.json create mode 100644 commands/morbcheck-7d49334c2f18.json create mode 100644 commands/obamna-980d204b7aa1.json create mode 100644 commands/varhi-b81ee2070343.json create mode 100644 commands/webmd-191f00f35b19.json diff --git a/commands/-17ec727d0b2c.json b/commands/-17ec727d0b2c.json index a79cb79..55783d0 100644 --- a/commands/-17ec727d0b2c.json +++ b/commands/-17ec727d0b2c.json @@ -1,6 +1,6 @@ { "name": "~", - "command": "print(\"lol tilded\");", + "command": "", "locked": false, "starred": false } \ No newline at end of file diff --git a/commands/-5543cccada3a.json b/commands/-5543cccada3a.json index 284772a..eabf333 100644 --- a/commands/-5543cccada3a.json +++ b/commands/-5543cccada3a.json @@ -1,6 +1,6 @@ { "name": "?", - "command": "print(\"�\");", + "command": "", "locked": false, "starred": false } \ No newline at end of file diff --git a/commands/-60a45414d51f.json b/commands/-60a45414d51f.json index 18123a2..c7624ab 100644 --- a/commands/-60a45414d51f.json +++ b/commands/-60a45414d51f.json @@ -1,6 +1,6 @@ { "name": "⁷", - "command": "print(\"*psst, seven*\");", + "command": "", "locked": false, "starred": false } \ No newline at end of file diff --git a/commands/-61e5a9292e6c.json b/commands/-61e5a9292e6c.json index ebee3f9..88d2459 100644 --- a/commands/-61e5a9292e6c.json +++ b/commands/-61e5a9292e6c.json @@ -1,6 +1,6 @@ { "name": "£", - "command": "print.raw(\"FUCK ALL MATE\");", + "command": "", "locked": false, "starred": false } \ No newline at end of file diff --git a/commands/-73df838fbf9e.json b/commands/-73df838fbf9e.json index d453ced..9f6a195 100644 --- a/commands/-73df838fbf9e.json +++ b/commands/-73df838fbf9e.json @@ -1,6 +1,6 @@ { "name": "!!!", - "command": "print(\"https://www.youtube.com/watch?v=MHr3ag7B410\");drfgdfg", + "command": "", "locked": false, "starred": false } \ No newline at end of file diff --git a/commands/-80816f81e75b.json b/commands/-80816f81e75b.json index 1669a16..5c3f635 100644 --- a/commands/-80816f81e75b.json +++ b/commands/-80816f81e75b.json @@ -2,5 +2,5 @@ "locked": false, "starred": false, "name": "·", - "command": "print(\"·_·\");" + "command": "" } \ No newline at end of file diff --git a/commands/-81e75013b7f5.json b/commands/-81e75013b7f5.json index a5d0444..c82571d 100644 --- a/commands/-81e75013b7f5.json +++ b/commands/-81e75013b7f5.json @@ -2,5 +2,5 @@ "locked": false, "starred": false, "name": "🍎👖", - "command": "print(`https://youtu.be/${['wrSj1kdplhU','wNdhUo8jsS4','74uQ4Rvvk5g','xANZ4Qy37q4','tVNZ3Nk8hyU','VQk_zn030bM','PdtU-kWAarM','Pz5YwfE1kC0','RSEenbHzMFQ','xDaBUmlJoRU','-jR2Eo8yGMc','-30T2GKsRFg','l6QFiRBnPeA','kQnDCaXnJmQ','NcNlp3xn0Wc','dDZraqq9nTw','8ldMkkqDg9U'][(Math.random()*17)|0]}`);" + "command": "" } \ No newline at end of file diff --git a/commands/-9ed4e727a8d8.json b/commands/-9ed4e727a8d8.json index 3fa6b92..f619aea 100644 --- a/commands/-9ed4e727a8d8.json +++ b/commands/-9ed4e727a8d8.json @@ -2,5 +2,5 @@ "locked": false, "starred": false, "name": "🤡", - "command": "print.raw(\"https://www.youtube.com/watch?v=AhK4nt5we_8\");" + "command": "" } \ No newline at end of file diff --git a/commands/-a3f781506cec.json b/commands/-a3f781506cec.json index 190acd3..2568422 100644 --- a/commands/-a3f781506cec.json +++ b/commands/-a3f781506cec.json @@ -1,6 +1,6 @@ { "name": ":>", - "command": "print(`<:`)", + "command": "", "locked": false, "starred": false } \ No newline at end of file diff --git a/commands/-a8d4171e4fa7.json b/commands/-a8d4171e4fa7.json index a8c397a..3f9fe23 100644 --- a/commands/-a8d4171e4fa7.json +++ b/commands/-a8d4171e4fa7.json @@ -1,6 +1,6 @@ { "name": "", - "command": "print('{r}❤')", + "command": "", "locked": false, "starred": false } \ No newline at end of file diff --git a/commands/-b1da0530db76.json b/commands/-b1da0530db76.json index d228628..1eeb09c 100644 --- a/commands/-b1da0530db76.json +++ b/commands/-b1da0530db76.json @@ -1,6 +1,6 @@ { "name": "!!!!!", - "command": "print(`momed l ol `)", + "command": "", "locked": false, "starred": false } \ No newline at end of file diff --git a/commands/-b5e3e197cbd6.json b/commands/-b5e3e197cbd6.json index 1f5994e..49eaddd 100644 --- a/commands/-b5e3e197cbd6.json +++ b/commands/-b5e3e197cbd6.json @@ -1,6 +1,6 @@ { "name": "!", - "command": "print(\"https://www.youtube.com/watch?v=2P5qbcRAXVk\");", + "command": "", "locked": false, "starred": false } \ No newline at end of file diff --git a/commands/-c55a6d9dc549.json b/commands/-c55a6d9dc549.json index 8d52b22..2804b2f 100644 --- a/commands/-c55a6d9dc549.json +++ b/commands/-c55a6d9dc549.json @@ -1,6 +1,6 @@ { "name": "ゴ", - "command": "print.raw(`ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ`);", + "command": "", "locked": false, "starred": false } \ No newline at end of file diff --git a/commands/-d5d668d5e47a.json b/commands/-d5d668d5e47a.json index f7c8324..34e92d2 100644 --- a/commands/-d5d668d5e47a.json +++ b/commands/-d5d668d5e47a.json @@ -1,6 +1,6 @@ { "name": "💯", - "command": "print.raw( \"💯 👌 💯 👌 💯 👌 💯 👌 💯 👌 💯 👌 💯 👌 💯 👌 💯 👌 💯 👌 \");", + "command": "", "locked": false, "starred": false } \ No newline at end of file diff --git a/commands/-d7b115d4bf46.json b/commands/-d7b115d4bf46.json index ebdea39..48c3301 100644 --- a/commands/-d7b115d4bf46.json +++ b/commands/-d7b115d4bf46.json @@ -1,6 +1,6 @@ { "name": ":<", - "command": "print(`>:~`)", + "command": "", "locked": false, "starred": false } \ No newline at end of file diff --git a/commands/-dcc605bd7f9e.json b/commands/-dcc605bd7f9e.json index 7c8c49b..7eba559 100644 --- a/commands/-dcc605bd7f9e.json +++ b/commands/-dcc605bd7f9e.json @@ -2,5 +2,5 @@ "locked": false, "starred": false, "name": ":(", - "command": "print(':< :\\'( 😢😂😭😪😥😰😩 :-( https://imgur.com/gallery/oz7if8u')" + "command": "" } \ No newline at end of file diff --git a/commands/-fbdcbe735a57.json b/commands/-fbdcbe735a57.json index 18a25ab..b8646d2 100644 --- a/commands/-fbdcbe735a57.json +++ b/commands/-fbdcbe735a57.json @@ -3,5 +3,5 @@ "locked": false, "starred": false, "name": "===", - "command": "const cool = 7\n\nif (! 'cr0sis' === cool) {\n print('{r}cr0sis gay lelmao')\n} else {\n print('{r}cr0sis gay lelmAo')\n}" + "command": "" } \ No newline at end of file diff --git a/commands/03-9ca88dc6b73a.json b/commands/03-9ca88dc6b73a.json index c30f7bc..57d5112 100644 --- a/commands/03-9ca88dc6b73a.json +++ b/commands/03-9ca88dc6b73a.json @@ -1,6 +1,6 @@ { "name": "03", - "command": "print(\"https://i.imgur.com/OaDpI8N.jpg/");", + "command": "", "locked": false, "starred": false } \ No newline at end of file diff --git a/commands/1-c8b1a58e7d13.json b/commands/1-c8b1a58e7d13.json index 06228ed..e9a051e 100644 --- a/commands/1-c8b1a58e7d13.json +++ b/commands/1-c8b1a58e7d13.json @@ -1,6 +1,6 @@ { "name": "1", - "command": "IRC.require('!')", + "command": "", "locked": false, "starred": false } \ No newline at end of file diff --git a/commands/barf-64fc0cfb0aeb.json b/commands/barf-64fc0cfb0aeb.json index 1f3eddd..0e11fc2 100644 --- a/commands/barf-64fc0cfb0aeb.json +++ b/commands/barf-64fc0cfb0aeb.json @@ -1,6 +1,6 @@ { "name": "barf", - "command": "print.raw(\"https://imgur.com/XdnbTRW/");", + "command": "print(`https://imgur.com/XdnbTRW\nhttps://i.redd.it/izwj51xy2n291.jpg`);", "locked": false, "starred": false } \ No newline at end of file diff --git a/commands/boris-7e61b2ef6dfd.json b/commands/boris-7e61b2ef6dfd.json index 4cf51be..b188755 100644 --- a/commands/boris-7e61b2ef6dfd.json +++ b/commands/boris-7e61b2ef6dfd.json @@ -3,5 +3,5 @@ "locked": false, "starred": false, "name": "boris", - "command": "const imgs = [\n 'https://i.imgur.com/K59P85p.jpeg',\n 'https://i.imgur.com/M7P2I1q.jpeg',\n 'https://i.imgur.com/r3cso8k.jpeg',\n 'https://i.imgur.com/EndbZsH.jpeg',\n 'https://i.imgur.com/igCN6lE.png',\n 'https://i.imgur.com/bizSYPD.jpeg',\n 'https://i.imgur.com/zzDxHVf.jpeg',\n 'https://i.imgur.com/0Gky5w5.jpeg',\n 'https://i.imgur.com/qHKVTWw.jpeg',\n 'https://i.imgur.com/cbuTvjV.jpeg',\n 'https://i.imgur.com/1wTbWwP.jpeg',\n 'https://i.imgur.com/eg9Gmav.jpeg',\n 'https://i.imgur.com/3zFoeTZ.jpeg',\n 'https://i.imgur.com/H7e8AS6.jpeg',\n 'https://i.imgur.com/4lNBJxQ.jpeg',\n 'https://i.imgur.com/ztNj1ww.jpeg',\n 'https://i.imgur.com/ZrtPo71.jpeg',\n 'https://i.imgur.com/aHHXiyj.jpeg',\n 'https://i.imgur.com/SVkcFQS.jpeg',\n 'https://i.imgur.com/ulvuJnn.jpeg',\n 'https://i.imgur.com/DHq7IRZ.jpeg',\n 'https://i.imgur.com/FFVBpgA.jpeg',\n 'https://i.imgur.com/ANa70o7.png',\n 'https://i.imgur.com/QEBWT09.jpeg',\n 'https://i.imgur.com/xWDUvRw.png',\n 'https://i.imgur.com/gGzQjva.jpeg',\n 'https://i.imgur.com/sJdnRBV.jpeg',\n 'https://i.imgur.com/WBRa8oo.jpeg',\n 'https://i.imgur.com/guGCRVc.jpeg',\n 'https://i.imgur.com/4N15bFL.jpeg',\n 'https://i.imgur.com/z8avoY3.png',\n 'https://i.imgur.com/9WrrFsC.jpg',\n 'https://i.imgur.com/tvp9X7Q.jpeg',\n 'https://i.imgur.com/hNt8Yk9.jpeg',\n 'https://i.imgur.com/FZNzUf9.jpeg',\n 'https://i.imgur.com/s0aDlki.jpeg'\n]\n\nconst quotes = [\n 'Ping-pong was invented on the dining tables of England in the 19th century, and it was called Wiff-waff! And there, I think, you have the difference between us and the rest of the world. Other nations, the French, looked at a dining table and saw an opportunity to have dinner; we looked at it an saw an opportunity to play Wiff-waff.',\n 'We cannot turn our backs on Europe. We are part of Europe.',\n 'If we vote to Leave and take back control, all sorts of opportunities open up. Including doing new free trade deals around the world, restoring Britain\\'s seat on all sorts of international bodies, restoring health to our democracy and belief to our democracy.',\n 'As I write these words there are semi-naked women playing beach volleyball in the middle of the Horse Guards Parade immortalised by Canaletto. They are glistening like wet otters and the water is splashing off the brims of the spectators’ sou’westers',\n 'The Geiger counter of Olympo-mania is going to go zoink! off the scale! People are coming from around the world, and they\\'re seeing us, and they\\'re seeing the greatest country on Earth, aren\\'t they? There are some people who are coming from around the world who don\\'t yet know about all the preparations we\\'ve done to get London ready in the last seven years. I hear there\\'s a guy called Mitt Romney who wants to know whether we\\'re ready. Are we ready?',\n 'We seek cities because there are a greater range of girls at the bar, of reproductive choice. But above all, talented people seek cities for fame. They can’t get famous in the f***ing village.',\n 'It\\'s chicken feed. I don\\'t see why I shouldn\\'t knock off an article... if someone wants to pay me, then that\\'s their lookout.',\n 'Here we are in one of the most depressed downs in southern England, a place that is arguably too full of drugs, obesity, underachievement and Labour MPs.',\n 'I can hardly condemn UKIP as a bunch of boss-eyed, foam-flecked Euro hysterics, when I have been sometimes not far short of boss-eyed, foam-flecked hysteria myself.',\n 'I\\'m a rugby player, really, and I knew I was going to get to him, and when he was about two yards away I just put my head down. There was no malice. I was going for the ball with my head, which I understand is a legitimate move in soccer. ',\n 'It is said that the Queen has come to love the Commonwealth, partly because it supplies her with regular cheering crowds of flag-waving picaninnies; and one can imagine that Blair, twice victor abroad but enmired at home, is similarly seduced by foreign politeness. They say he is shortly off to the Congo. No doubt the AK47s will fall silent, and the pangas will stop their hacking of human flesh, and the tribal warriors will all break out in Watermelon smiles to see the big white chief touch down in his big white British taxpayer-funded bird.',\n 'For 10 years we in the Tory Party have become used to Papua New Guinea-style orgies of cannibalism and chief-killing.',\n 'I think I was once given cocaine but I sneezed so it didn\\'t go up my nose. In fact, it may have been icing sugar.',\n 'Voting Tory will cause your wife to have bigger breasts and increase your chances of owning a BMW M3.',\n 'My realistic chances of becoming Prime Minister are only slightly better than my chances of being decapitated by a frisbee, blinded by a champagne cork, locked in a disused fridge or reincarnated as a olive.',\n 'The President is a cross-eyed Texan warmonger, unelected, inarticulate, who epitomises the arrogance of American foreign policy.',\n 'Unlike the current occupant of the White House, he has no difficulty in orally extemporising a series of grammatical English sentences, each containing a main verb.',\n 'This is going to be a fantastic year for Great Britain',\n 'It is absolutely ridiculous that people should choose to go around looking like letter boxes. I feel fully entitled to expect Muslim women to remove the head covering, especially if they turn up looking like a bank robber',\n 'The best fate for Africa would be if the old colonial powers, or their citizens, scrambled once again in her direction; on the understanding that this time they will not be asked to feel guilty..the problem is not that we were once in charge, but that we are not in charge any more.',\n 'The idea that freedom of movement is a fundamental right of the EU is just bollocks.',\n 'My speaking style was criticised by no less an authority than Arnold Schwarzenegger. It was a low moment, my friends, to have my rhetorical skills denounced by a monosyllabic Austrian cyborg.',\n 'If gay marriage was OK ... then I saw no reason in principle why a union should not be consecrated between three men, as well as two men; or indeed three men and a dog.',\n 'I dont see why people are so snooty about Channel Five. It has some respectable documentaries about the Second World War. It also devotes considerable airtime to investigations into lap-dancing, and other related and vital subjects',\n 'My policy on cake is pro having it and pro eating it.',\n 'London is a fantastic creator of jobs - but many of these jobs are going to people who don\\'t originate in this country.',\n 'He is like some sherry-crazed old dowager who has lost the family silver at roulette, and who now decides to double up by betting the house as well.'\n]\n\nprint(`${imgs[Math.floor(Math.random()*imgs.length)]}`)\nprint(`{i}“${quotes[Math.floor(Math.random()*quotes.length)]}”`)" + "command": "const imgs = [\n 'https://i.imgur.com/K59P85p.jpeg',\n 'https://i.imgur.com/M7P2I1q.jpeg',\n 'https://i.imgur.com/r3cso8k.jpeg',\n 'https://i.imgur.com/EndbZsH.jpeg',\n 'https://i.imgur.com/igCN6lE.png',\n 'https://i.imgur.com/bizSYPD.jpeg',\n 'https://i.imgur.com/zzDxHVf.jpeg',\n 'https://i.imgur.com/0Gky5w5.jpeg',\n 'https://i.imgur.com/qHKVTWw.jpeg',\n 'https://i.imgur.com/cbuTvjV.jpeg',\n 'https://i.imgur.com/1wTbWwP.jpeg',\n 'https://i.imgur.com/eg9Gmav.jpeg',\n 'https://i.imgur.com/3zFoeTZ.jpeg',\n 'https://i.imgur.com/H7e8AS6.jpeg',\n 'https://i.imgur.com/4lNBJxQ.jpeg',\n 'https://i.imgur.com/ztNj1ww.jpeg',\n 'https://i.imgur.com/ZrtPo71.jpeg',\n 'https://i.imgur.com/3qEsg2h.png',\n 'https://i.imgur.com/aHHXiyj.jpeg',\n 'https://i.imgur.com/SVkcFQS.jpeg',\n 'https://i.imgur.com/ulvuJnn.jpeg',\n 'https://i.imgur.com/DHq7IRZ.jpeg',\n 'https://i.imgur.com/FFVBpgA.jpeg',\n 'https://i.imgur.com/ANa70o7.png',\n 'https://i.imgur.com/QEBWT09.jpeg',\n 'https://i.imgur.com/xWDUvRw.png',\n 'https://i.imgur.com/gGzQjva.jpeg',\n 'https://i.imgur.com/sJdnRBV.jpeg',\n 'https://i.imgur.com/WBRa8oo.jpeg',\n 'https://i.imgur.com/guGCRVc.jpeg',\n 'https://i.imgur.com/4N15bFL.jpeg',\n 'https://i.imgur.com/z8avoY3.png',\n 'https://i.imgur.com/9WrrFsC.jpg',\n 'https://i.imgur.com/tvp9X7Q.jpeg',\n 'https://i.imgur.com/hNt8Yk9.jpeg',\n 'https://i.imgur.com/FZNzUf9.jpeg',\n 'https://i.imgur.com/s0aDlki.jpeg'\n]\n\nconst quotes = [\n 'Ping-pong was invented on the dining tables of England in the 19th century, and it was called Wiff-waff! And there, I think, you have the difference between us and the rest of the world. Other nations, the French, looked at a dining table and saw an opportunity to have dinner; we looked at it an saw an opportunity to play Wiff-waff.',\n 'We cannot turn our backs on Europe. We are part of Europe.',\n 'If we vote to Leave and take back control, all sorts of opportunities open up. Including doing new free trade deals around the world, restoring Britain\\'s seat on all sorts of international bodies, restoring health to our democracy and belief to our democracy.',\n 'As I write these words there are semi-naked women playing beach volleyball in the middle of the Horse Guards Parade immortalised by Canaletto. They are glistening like wet otters and the water is splashing off the brims of the spectators’ sou’westers',\n 'The Geiger counter of Olympo-mania is going to go zoink! off the scale! People are coming from around the world, and they\\'re seeing us, and they\\'re seeing the greatest country on Earth, aren\\'t they? There are some people who are coming from around the world who don\\'t yet know about all the preparations we\\'ve done to get London ready in the last seven years. I hear there\\'s a guy called Mitt Romney who wants to know whether we\\'re ready. Are we ready?',\n 'We seek cities because there are a greater range of girls at the bar, of reproductive choice. But above all, talented people seek cities for fame. They can’t get famous in the f***ing village.',\n 'It\\'s chicken feed. I don\\'t see why I shouldn\\'t knock off an article... if someone wants to pay me, then that\\'s their lookout.',\n 'Here we are in one of the most depressed downs in southern England, a place that is arguably too full of drugs, obesity, underachievement and Labour MPs.',\n 'I can hardly condemn UKIP as a bunch of boss-eyed, foam-flecked Euro hysterics, when I have been sometimes not far short of boss-eyed, foam-flecked hysteria myself.',\n 'I\\'m a rugby player, really, and I knew I was going to get to him, and when he was about two yards away I just put my head down. There was no malice. I was going for the ball with my head, which I understand is a legitimate move in soccer. ',\n 'It is said that the Queen has come to love the Commonwealth, partly because it supplies her with regular cheering crowds of flag-waving picaninnies; and one can imagine that Blair, twice victor abroad but enmired at home, is similarly seduced by foreign politeness. They say he is shortly off to the Congo. No doubt the AK47s will fall silent, and the pangas will stop their hacking of human flesh, and the tribal warriors will all break out in Watermelon smiles to see the big white chief touch down in his big white British taxpayer-funded bird.',\n 'For 10 years we in the Tory Party have become used to Papua New Guinea-style orgies of cannibalism and chief-killing.',\n 'I think I was once given cocaine but I sneezed so it didn\\'t go up my nose. In fact, it may have been icing sugar.',\n 'Voting Tory will cause your wife to have bigger breasts and increase your chances of owning a BMW M3.',\n 'My realistic chances of becoming Prime Minister are only slightly better than my chances of being decapitated by a frisbee, blinded by a champagne cork, locked in a disused fridge or reincarnated as a olive.',\n 'The President is a cross-eyed Texan warmonger, unelected, inarticulate, who epitomises the arrogance of American foreign policy.',\n 'Unlike the current occupant of the White House, he has no difficulty in orally extemporising a series of grammatical English sentences, each containing a main verb.',\n 'This is going to be a fantastic year for Great Britain',\n 'It is absolutely ridiculous that people should choose to go around looking like letter boxes. I feel fully entitled to expect Muslim women to remove the head covering, especially if they turn up looking like a bank robber',\n 'The best fate for Africa would be if the old colonial powers, or their citizens, scrambled once again in her direction; on the understanding that this time they will not be asked to feel guilty..the problem is not that we were once in charge, but that we are not in charge any more.',\n 'The idea that freedom of movement is a fundamental right of the EU is just bollocks.',\n 'My speaking style was criticised by no less an authority than Arnold Schwarzenegger. It was a low moment, my friends, to have my rhetorical skills denounced by a monosyllabic Austrian cyborg.',\n 'If gay marriage was OK ... then I saw no reason in principle why a union should not be consecrated between three men, as well as two men; or indeed three men and a dog.',\n 'I dont see why people are so snooty about Channel Five. It has some respectable documentaries about the Second World War. It also devotes considerable airtime to investigations into lap-dancing, and other related and vital subjects',\n 'My policy on cake is pro having it and pro eating it.',\n 'London is a fantastic creator of jobs - but many of these jobs are going to people who don\\'t originate in this country.',\n 'He is like some sherry-crazed old dowager who has lost the family silver at roulette, and who now decides to double up by betting the house as well.'\n]\n\nprint(`${imgs[Math.floor(Math.random()*imgs.length)]}`)\nprint(`{i}“${quotes[Math.floor(Math.random()*quotes.length)]}”`)" } \ No newline at end of file diff --git a/commands/butts-a98b92d062e7.json b/commands/butts-a98b92d062e7.json index bdcfdc6..9767ba1 100644 --- a/commands/butts-a98b92d062e7.json +++ b/commands/butts-a98b92d062e7.json @@ -1,6 +1,6 @@ { "name": "butts", - "command": "print.raw(` / \\`. .' \\\\\n .---. < > < > .---.\n | \\\\ \\\\ - ~ ~ - / / |\n ~-..-~ ~-..-~\n \\\\~~~\\\\.' \\`./~~~/\n \\\\__/ \\\\__/\n / .- . \\\\\n _._ _.- .-~ ~-. / } \\\\/~~~/\n _.-'q }~ / } { ; \\\\__/\n butts --- {'__, / ( / { / \\`. ,~~| . .\n \\`''''='~~-.__( /_ | /- _ \\`..-' \\\\\\\\ //\n / \\\\ =/ ~~--~~{ ./| ~-. \\`-..__\\\\\\\\_//_.-'\n { \\\\ +\\\\ \\\\ =\\\\ ( ~ - . _ _ _..---~\n | | { } \\\\ \\\\_\\\\\n '---.o___,' .o___,`);", + "command": "print(IRC.log.get('cloud',20)[0|Math.random()*20]\n .message.replace(/cloud/ig, 'butt'))", "locked": true, "starred": false } \ No newline at end of file diff --git a/commands/bytes-e7609d4f99c0.json b/commands/bytes-e7609d4f99c0.json index be8b187..80c3374 100644 --- a/commands/bytes-e7609d4f99c0.json +++ b/commands/bytes-e7609d4f99c0.json @@ -1,6 +1,6 @@ { "name": "bytes", - "command": "function bytes(input, places = 2) {\n const sizes = ['', 'K', 'M', 'G', 'T', 'P', 'E', 'Z', 'Y'];\n const LEN = sizes.length;\n let index = Math.floor(Math.log(input) / Math.log(1024));\n let val = input / (1024 ** index);\n let suffix = index < LEN ? sizes[index] : '?';\n return (`${index > 0 ? val.toFixed(places) : val}${suffix}B`);\n}\nmodule.exports = bytes; \nif (!module.required) {\n\tprint(bytes(eval(input)));\n}", + "command": "function bytes(input, places = 2) {\n input |= 0\n if (!input) return '0 bytes';\n const sizesShort = ['', 'K', 'M', 'G', 'T', 'P', 'E', 'Z', 'Y'];\n const sizesWrong = ['', 'kilo', 'mega', 'giga', 'tera', 'peta', 'exa', 'zeta', 'yotta'];\n const sizes = ['', 'blabloo', 'borko', 'fooey', 'delta', 'charizard', 'poop', 'hello', 'kek'];\n const LEN = sizes.length;\n let index = Math.floor(Math.log(input) / Math.log(1024));\n let val = input / (1024 ** index);\n let suffix = index < LEN ? sizes[index] : '?';\n return (`${index > 0 ? val.toFixed(places) : val} ${suffix}bytes (where \"${suffix}\" = 1024^${index})`);\n} \nmodule.exports = bytes; \nif (!module.required) {\n\tprint(bytes(eval(input)));\n}", "locked": true, "starred": false } \ No newline at end of file diff --git a/commands/dayssincegithubruinedtheui-1d21c2374d84.json b/commands/dayssincegithubruinedtheui-1d21c2374d84.json index 2d19c9d..045e233 100644 --- a/commands/dayssincegithubruinedtheui-1d21c2374d84.json +++ b/commands/dayssincegithubruinedtheui-1d21c2374d84.json @@ -2,5 +2,5 @@ "locked": false, "starred": false, "name": "dayssincegithubruinedtheui", - "command": "const dateFns = require('date-fns@1.30.1');n=dateFns.differenceInDays(new Date(), new Date('2020-06-23T19:04:15.522Z'));\nn=`${n} day${n==1?'':'s'}`\nm=dateFns.differenceInDays(new Date(), new Date('2022-04-23T16:43:15.522Z')); \nm=`${m} day${m==1?'':'s'}`\n\nprint(`initially: ${n}, most recently: ${m}`)" + "command": "const dateFns = require('date-fns@1.30.1')\nn=dateFns.differenceInDays(new Date(), new Date('2020-06-23T19:04:15.522Z'));\nn=`${n} day${n==1?'':'s'}`\nm=dateFns.differenceInDays(new Date(), new Date('2022-06-10T21:38:45.522Z')); \nm=`${m} day${m==1?'':'s'}`\n\nprint(`initially: ${n}, most recently: ${m}`)" } \ No newline at end of file diff --git a/commands/decide-f82fcf21b13e.json b/commands/decide-f82fcf21b13e.json index 1df5256..ee996a1 100644 --- a/commands/decide-f82fcf21b13e.json +++ b/commands/decide-f82fcf21b13e.json @@ -1,6 +1,6 @@ { "name": "decide", - "command": "const choices = input.split(/(?:, ?)?\\s+or\\s+|, ?|or ?/)\nprint(choices[Math.floor(Math.random() * choices.length)])", + "command": "const choices = input.split(/,?\\s+or\\s+|, /g)\nprint(choices[Math.floor(Math.random() * choices.length)])", "locked": false, "starred": false } \ No newline at end of file diff --git a/commands/define-323b916b0a5b.json b/commands/define-323b916b0a5b.json index 803e29a..ee076b1 100644 --- a/commands/define-323b916b0a5b.json +++ b/commands/define-323b916b0a5b.json @@ -1,6 +1,6 @@ { "name": "define", - "command": "try {\n const obj = fetchSync('http://api.urbandictionary.com/v0/define?term=' + encodeURIComponent(input), {type: 'json'});\n print('{bo}' + obj.list[IRC.command.params[0] || 0].definition.trim().replace(/[\\[\\]]/g, ''));\n} catch(e) {\n print('{r}no data for '+input)\n}", + "command": "try {\n const obj = fetchSync('http://api.urbandictionary.com/v0/define?term=' + encodeURIComponent(input), {type: 'json'});\n const definition = obj.list[IRC.command.params[0] || 0].definition.trim().replace(/[\\[\\]]/g, '');\n print('{bo}' + definition.replace(/\\s+/g, '\\u2800'));\n} catch(e) {\n print('{r}no data for '+input)\n}", "locked": true, "starred": true } \ No newline at end of file diff --git a/commands/dinobutts-bed9bfa9c331.json b/commands/dinobutts-bed9bfa9c331.json new file mode 100644 index 0000000..d12418d --- /dev/null +++ b/commands/dinobutts-bed9bfa9c331.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "dinobutts", + "command": "print.raw(` / \\`. .' \\\\\n .---. < > < > .---.\n | \\\\ \\\\ - ~ ~ - / / |\n ~-..-~ ~-..-~\n \\\\~~~\\\\.' \\`./~~~/\n \\\\__/ \\\\__/\n / .- . \\\\\n _._ _.- .-~ ~-. / } \\\\/~~~/\n _.-'q }~ / } { ; \\\\__/\n butts --- {'__, / ( / { / \\`. ,~~| . .\n \\`''''='~~-.__( /_ | /- _ \\`..-' \\\\\\\\ //\n / \\\\ =/ ~~--~~{ ./| ~-. \\`-..__\\\\\\\\_//_.-'\n { \\\\ +\\\\ \\\\ =\\\\ ( ~ - . _ _ _..---~\n | | { } \\\\ \\\\_\\\\\n '---.o___,' .o___,`);" +} \ No newline at end of file diff --git a/commands/dollar-599465b6046e.json b/commands/dollar-599465b6046e.json deleted file mode 100644 index 3364a55..0000000 --- a/commands/dollar-599465b6046e.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "locked": false, - "starred": false, - "name": "dollar", - "command": "print(`{g}[̲̅{y}$̲̅{/}{g}(̲̅${(input && eval(input)) || 5})̲̅{y}$̲̅{/}{g}]`);" -} \ No newline at end of file diff --git a/commands/event-b306be3528b0.json b/commands/event-b306be3528b0.json index b2383e6..8043b32 100644 --- a/commands/event-b306be3528b0.json +++ b/commands/event-b306be3528b0.json @@ -3,5 +3,5 @@ "locked": true, "starred": true, "name": "event", - "command": "// Auth example;\n//\n// curl -X POST --data-binary '{\"passcode\":\"demo\"}' -H \"Content-Type: application/json\" http://localhost:8888/api/webhook/test\n\n// const tripcode = require('tripcode');\n\n// IRC.listen('webhook.test', event => {\n// const authed = tripcode(event.body.passcode) === IRC.queryConfig('testCode');\n// print(authed ? 'pass' : 'fail');\n// });\n\nIRC.listen('message', event => {\n if (event.message.text.includes(IRC.nick + ':') && event.message.text.endsWith('?')) {\n print('{g}' + IRC.require('r8ball')());\n }\n});\n\nIRC.listen('tick', () => (\n (new Date).toISOString().slice(5,19)\n \t=== '01-01T00:00:00'\n \t&& print('(*⌒∇⌒*) //// 🎉 {rb}happy new year')\n));\n\nconst faces = [ '(◕ᴗ◕✿)', '(◕◡◕✿)', '(◔◡◔✿)', '(。◕‿◕。✿)', '(◡‿◡✿)', '(◠‿◠✿)', '(◕ܫ◕✿)', '(◕▿◕✿)', '(◕ ワ ◕✿)' ];\nIRC.listen('message', ({ message: { from, text } }) => {\n if (text.includes('❤')) {\n print(' '.repeat(text.indexOf('❤')) + ' ⟍' +faces[0|Math.random()*faces.length]);\n }\n});\n\n\nIRC.listen('message', (event) => {\n if (event.target === '#8bitvape'){\n \tif (event.message.text.includes('donk')) print('donk'); \n \telse if (event.message.text.includes('dongers')) print(\"{p}ヽ༼ຈل͜ຈ༽ノ {r}raise your dongers {p}ヽ༼ຈل͜ຈ༽ノ\") \n else if (/\\bi\\b/i.test(event.message.text) && (0|Math.random()*100)===0) (input='',IRC.require('command.random'));\n } \n});\n\nIRC.listen('message', (event) => {\n if (event.message.from.toLowerCase() === 'lambdacomplex' && /\\begg\\b/.test(event.message.text))\n IRC.require('evilegg');\n});\n\n\nconst daily = () => 25200 === (0|new Date/1000)%86400;\n\nconst hourly = () => 420 === (0|new Date/1000)%3600;\n\nIRC.listen('tick', ({ target }) => {\n if (target === '#rubik' && daily()) {\n IRC.require('comps.new');\n }\n});\n\nIRC.listen('tick', ({ target }) => {\n if (target === '#8bitvape') {\n \tif (daily()) IRC.require('7');\n else if (hourly()) print((s=[...'⁷₇⅐⅞⑦⑺⒎㋆㍟㏦7𝟕𝟟𝟩𝟳𝟽🄈🯷'],s[0|Math.random()*s.length]));\n }\n});\n\nIRC.listen('tick', ({ target }) => {\n if (target === '#eggchan' && daily()) {\n print('egg');\n }\n});" + "command": "// Auth example;\n//\n// curl -X POST --data-binary '{\"passcode\":\"demo\"}' -H \"Content-Type: application/json\" http://localhost:8888/api/webhook/test\n\n// const tripcode = require('tripcode');\n\n// IRC.listen('webhook.test', event => {\n// const authed = tripcode(event.body.passcode) === IRC.queryConfig('testCode');\n// print(authed ? 'pass' : 'fail');\n// });\n\nIRC.listen('message', event => {\n if (event.message.text.includes(IRC.nick + ':') && event.message.text.endsWith('?')) {\n print('{g}' + IRC.require('r8ball')());\n }\n});\n\nIRC.listen('tick', () => (\n (new Date).toISOString().slice(5,19)\n \t=== '01-01T00:00:00'\n \t&& print('(*⌒∇⌒*) //// 🎉 {rb}happy new year')\n));\n\nconst faces = [ '(◕ᴗ◕✿)', '(◕◡◕✿)', '(◔◡◔✿)', '(。◕‿◕。✿)', '(◡‿◡✿)', '(◠‿◠✿)', '(◕ܫ◕✿)', '(◕▿◕✿)', '(◕ ワ ◕✿)' ];\nIRC.listen('message', ({ message: { from, text } }) => {\n if (text.includes('❤')) {\n print(' '.repeat(text.indexOf('❤')) + ' ⟍' +faces[0|Math.random()*faces.length]);\n }\n});\n\n\nIRC.listen('message', (event) => {\n if (event.target === '#8bitvape'){\n \tif (event.message.text.includes('donk')) print('donk'); \n \telse if (event.message.text.includes('dongers')) print(\"{p}ヽ༼ຈل͜ຈ༽ノ {r}raise your dongers {p}ヽ༼ຈل͜ຈ༽ノ\") \n } \n});\n\nIRC.listen('message', (event) => {\n if (event.message.from.toLowerCase() === 'lambdacomplex' && /\\begg\\b/.test(event.message.text))\n IRC.require('evilegg');\n});\n\n\nconst daily = () => 25200 === (0|new Date/1000)%86400;\n\nconst hourly = () => 420 === (0|new Date/1000)%3600;\n\nIRC.listen('tick', ({ target }) => {\n if (target === '#rubik' && daily()) {\n IRC.require('comps.new');\n }\n});\n\nIRC.listen('tick', ({ target }) => {\n if (target === '#8bitvape') {\n \tif (daily()) IRC.require('7');\n else if (hourly()) print((s=[...'⁷₇⅐⅞⑦⑺⒎㋆㍟㏦7𝟕𝟟𝟩𝟳𝟽🄈🯷'],s[0|Math.random()*s.length]));\n }\n});\n\nIRC.listen('tick', ({ target }) => {\n if (target === '#eggchan' && hourly()) {\n print('egg');\n }\n});" } \ No newline at end of file diff --git a/commands/eventconvertUnits-de650149a73c.json b/commands/eventconvertUnits-de650149a73c.json new file mode 100644 index 0000000..9c10d3d --- /dev/null +++ b/commands/eventconvertUnits-de650149a73c.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "event.convertUnits", + "command": "const miles = /\\b(\\d+\\.?\\d*|\\.\\d+) ?mi(les)?\\b/;\nconst feet = /\\b(\\d+\\.?\\d*|\\.\\d+) ?(feet|ft)\\b/;\nconst inch = /\\b(\\d+\\.?\\d*|\\.\\d+) ?inch(es)?\\b/;\nconst yards = /\\b(\\d+\\.?\\d*|\\.\\d+) ?(yards|yd)\\b/;\n\nconst km = /\\b(\\d+\\.?\\d*|\\.\\d+) ?(kilomet(re|er)s|km)\\b/;\nconst cm = /\\b(\\d+\\.?\\d*|\\.\\d+) ?(centimet(re|er)s|cm)\\b/;\nconst { wordsToNumbers } = require('words-to-numbers');\n\nIRC.listen('message', (event) => {\n let { text } = event.message;\n text = wordsToNumbers(text);\n if (miles.test(text)) {\n const value = text.match(miles)[1];\n print(`${+(+value * 1.60934).toFixed(2)}km`);\n } else if (feet.test(text)) {\n const value = text.match(feet)[1];\n print(`${+(+value * 0.3048).toFixed(2)}m`);\n } else if (yards.test(text)) {\n const value = text.match(yards)[1];\n print(`${+(+value * 0.9144).toFixed(2)}m`);\n } else if (km.test(text)) {\n const value = text.match(km)[1];\n print(`${+(+value * 0.621371).toFixed(2)} miles`);\n } else if (cm.test(text)) {\n const value = text.match(cm)[1];\n print(`${+(+value * 0.393701).toFixed(2)} inches`);\n } else if (inch.test(text)) {\n const value = text.match(inch)[1];\n print(`${+(+value * 2.54).toFixed(2)}cm`);\n }\n});" +} \ No newline at end of file diff --git a/commands/eventfetchURL-798176d44de4.json b/commands/eventfetchURL-798176d44de4.json index 8012ab0..1612d72 100644 --- a/commands/eventfetchURL-798176d44de4.json +++ b/commands/eventfetchURL-798176d44de4.json @@ -3,5 +3,5 @@ "locked": true, "starred": true, "name": "event.fetchURL", - "command": "const { document, window } = new (jsdom().JSDOM)('');\nconst anchor = document.createElement('a');\nconst bytes = IRC.require('bytes');\n\nfunction setDOM(page) {\n document.open();\n document.write(page);\n document.close();\n};\n\nfunction domTitle() {\n const metaTitle = document.head.querySelector('meta[name=\"title\"]');\n return metaTitle ? metaTitle.content : document.title;\n}\n\nconst filterWords = /something went wrong|cloudflare|forbidden|not found|access restricted|access denied|your browser|rick roll|never gonna give you up|log in/i;\n\nfunction hasInfo(url, _title) {\n const title = _title.replace(/\\s+/g, ' ').trim();\n const isFresh = title.split(' ')\n .filter(word => (\n !(new RegExp(word.replace(/[^.a-zA-Z0-9\\u00c0-\\u017e]+/g, ''), 'i')).test(url)\n )).length >= 1;\n return isFresh;\n}\n\nIRC.listen('message', event => {\n if (!IRC.queryConfig('fetchURL', true)) return;\n const { text, from } = event.message;\n const urls = text.match(/(\\b(https?):\\/\\/[-A-Z0-9+&@#\\/%?=~_|!:,.;()]*[-A-Z0-9+&@#\\/%=~_|()])/ig);\n const fromSelf = from === IRC.nick;\n if (!urls || fromSelf || text.startsWith(IRC.trigger) || text.includes('##')) return;\n\n urls.slice(0, 3).forEach(url => {\n handleURL(url, global.print)\n // .catch(print.error);\n });\n});\n\nasync function handleURL(url, print) {\n anchor.setAttribute('href', url);\n if (await customURL(url, print)) return;\n\n const res = await fetch(url, {\n headers: {\n 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',\n 'Accept-Language': 'en-GB,en;q=0.5',\n 'Content-Language': 'en-GB,en;q=0.5',\n 'User-Agent': /youtu\\.?be|google|reddit/.test(url) ? '' : 'Googlebot',\n },\n });\n\n const length = res.headers.get('content-length');\n\n if (length > 5.243e6) {\n const filename = anchor.pathname.split('/').pop();\n print.info(`{dc}${filename}{/} ${bytes(length)} {dgr}${res.headers.get('content-type')}{/}`);\n return;\n }\n\n const page = await res.text();\n setDOM(page);\n\n const title = domTitle();\n\n if (\n title.length \n && title.length < 400 \n && !filterWords.test(title)\n && (IRC.queryConfig('fetchURLAll', false) || hasInfo(url, title))) {\n print.info(title);\n }\n\n}\n\nasync function customURL(url, print) {\n // https://github.com/mendel5/alternative-front-ends\n const { hostname, pathname } = anchor;\n if (hostname.includes('reddit.')) {\n const jsonURL = url.replace(/(\\/?)(\\?.*)?(#.*)?$/, '/.json');\n const json = await(await fetch(jsonURL)).json();\n const data = json?.[0]?.data?.children?.[0]?.data;\n if (data) {\n const info = `{c}${data.subreddit_name_prefixed}{/} {o}▲${data.score}{/} ${data.title}`;\n const url = data?.secure_media?.reddit_video?.fallback_url?.replace('?source=fallback', '') || data.url;\n if (data.selftext) {\n print(`${info} ${String(data.selftext).replace(/\\s+/g, ' ').slice(0, 300)}`);\n return true;\n } else if (url) {\n print(`${info} ${IRC.colors.link(url)}`);\n return true;\n }\n }\n return true; \n }\n if (hostname.includes('youtube.') || hostname === 'youtu.be') {\n try {\n const json = await (await fetch(`https://www.youtube.com/oembed?url=${encodeURI(url)}&format=json`)).json();\n const {\n title, author_name,\n } = json;\n print(`{r}YouTube{/} {c}${author_name}{/} ${title}`);\n return true;\n } catch (e) { }\n // url.match(/(?!v=|v\\/|\\.be\\/|watch\\/)([0-9a-z\\-_]{11})/i);\n }\n if (hostname.includes('github.com')) {\n if (pathname.split('/').length === 3) {\n // it's a repo url\n const {\n description,\n html_url,\n name,\n stargazers_count,\n language,\n license, // { name }\n } = await (\n await fetch(`https://api.github.com/repos${pathname}`)\n ).json();\n\n print(`{gr}${description || name}{/} ${IRC.colors.nick(language, false)} {y}★{/} {bo}${stargazers_count}{/} {dgr}${license ? license.name : ''}{/}`);\n return true;\n }\n }\n \tif (hostname.includes('worldcubeassociation.org')) {\n if (pathname.includes('/persons/')){\n const {\n personal_records,\n person,\n medals\n }\n = await(await fetch(`https://www.worldcubeassociation.org/api/v0/persons/${pathname.split(\"/\")[2]}`)).json();\n // calculate best rank\n\t\t\tlet best_rank = Infinity\n let best_event = \"\"\n // RIP Feet\n delete personal_records[\"mmagic\"]\n delete personal_records[\"magic\"]\n \tdelete personal_records[\"333wf\"]\n \t\tdelete personal_records[\"333mbo\"]\n for (const event in personal_records) {\n if(+personal_records[event][\"single\"][\"world_rank\"] < best_rank){\n best_rank = personal_records[event][\"single\"][\"world_rank\"]\n best_event = event + \" Single\"\n }\n if(personal_records[event][\"average\"] != undefined && +personal_records[event][\"average\"][\"world_rank\"] < best_rank){\n best_rank = personal_records[event][\"average\"][\"world_rank\"]\n best_event = event + \" Average\"\n }\n }\n\n \t\n let output = `{bo}${person[\"name\"]}{/}, Medals: {y}${medals[\"gold\"]}{/} {gr}${medals[\"silver\"]}{/} {o}${medals[\"bronze\"]}{/}, Best Rank {c}${best_rank}{/} in {y}${best_event}`;\n print(output);\n \treturn true;\n }\n if (pathname.includes('/competitions/')){\n const {\n name,\n competitor_limit,\n registration_open,\n registration_close \n } = await (\n await fetch(`https://www.worldcubeassociation.org/api/v0/competitions/${pathname.split('/')[2]}`)\n ).json();\n // Add checks for comps in the past. \n let output = `{bo}${name}{/} (Limit: ${competitor_limit}), Registration: {c}${registration_open.split(\"T\")[0]}{/} - {c}${registration_close.split(\"T\")[0]}{/}`;\n print(output);\n \treturn true;\n }\n return false;\n }\n if (hostname.includes('instagram.')) {\n // https://git.sr.ht/~cadence/bibliogram-docs/tree/master/docs/Instances.md\n const id = pathname.match(/\\/([A-Za-z-0-9]{11})/);\n if (id) {\n const page = await (await fetch(`https://bibliogram.1d4.us/p/${id[1]}`)).text();\n setDOM(page);\n const text = document.querySelector('.structured-text').textContent;\n const name = document.querySelector('.name').textContent;\n const image = document.querySelector('.sized-image');\n\n let output = `{bo}Instagram{/} {c}${name}{/} ${text.replace(/\\s+/g, ' ')}`;\n print(output);\n }\n return true;\n }\n if (hostname.includes('twitter.')) {\n const id = pathname.match(/status\\/(\\d+)/);\n if (id) {\n const page = await (await fetch(`https://nitter.net/_/status/${id[1]}#m`)).text();\n setDOM(page);\n const maintweet = document.querySelector('.main-tweet');\n const name = maintweet.querySelector('.fullname').textContent;\n const user = maintweet.querySelector('.username').textContent;\n const image = maintweet.querySelector('.still-image img');\n //const card = maintweet.querySelector('.card-image img');\n const tweet = maintweet.querySelector('.tweet-content').textContent.replace(/\\s+/g, ' ');\n let output = `{bo}${name}{/} {c}${user}{/} ${tweet}`;\n if (image) {\n output += ' ' + IRC.colors.link(`https://nitter.net${image.getAttribute('src').replace(/%3Fname.+/, '')}`);\n }\n //if (card) {\n //output += ' ' + IRC.colors.link(`https://nitter.net${card.getAttribute('src')}`);\n //}\n print(output);\n return true;\n }\n }\n // image detection AI\n if (['jpg', 'gif', 'jpeg', 'png'].some(d => url.includes(`.${d}`))) {\n const reqUrl = 'https://api.imagga.com/v2/tags?image_url='+encodeURI(url);\n const json = await (await fetch(reqUrl, {\n headers: { Authorization: 'Basic YWNjX2ZjOWJkMjE5ZGQ1NTVjZTpiYmE4MTU1MTUwM2M4N2IxMmJlZTg4YzY1ZmI2YmM0OA== ' }\n })).json();\n if (json.type === 'error') {\n \tjson.status.text;\n } else {\n const tags = json.result.tags.filter(tag => tag.confidence >= 70);\n \tif (tags.length) {\n \tprint('🖼️ 👀 '+tags.map(tag=>`{g}${tag.tag.en}{/}`).join(', '));\n \t} else if (json.result.tags.length) {\n \t\t//const [tag] = json.result.tags;\n //print(`Image may contain: {o}${tag.tag.en}{/} (${0|tag.confidence}% confidence)`);\n \t}\n }\n\n \treturn true;\n }\n // repaste pastebin\n if (hostname.includes('pastebin.com')) {\n const id = pathname.match(/\\/(\\w+)\\/?$/);\n if (id) {\n const page = await (await fetch(`https://pastebin.com/raw/${id[1]}`)).text();\n print.info(`repasted to ${await IRC.require('module.paste').async(page)}`)\n return true;\n }\n }\n}" + "command": "const { document, window } = new (jsdom().JSDOM)('');\nconst anchor = document.createElement('a');\nconst bytes = IRC.require('bytes');\n\nfunction setDOM(page) {\n document.open();\n document.write(page);\n document.close();\n};\n\nfunction domTitle() {\n const metaTitle = document.head.querySelector('meta[name=\"title\"]');\n return metaTitle ? metaTitle.content : document.title;\n}\n\nconst filterWords = /something went wrong|cloudflare|forbidden|not found|access restricted|access denied|your browser|rick roll|never gonna give you up|log in|blocked/i;\n\nfunction hasInfo(url, _title) {\n const title = _title.replace(/\\s+/g, ' ').trim();\n const isFresh = title.split(' ')\n .filter(word => (\n !(new RegExp(word.replace(/[^.a-zA-Z0-9\\u00c0-\\u017e]+/g, ''), 'i')).test(url)\n )).length >= 1;\n return isFresh;\n}\n\nIRC.listen('message', event => {\n if (!IRC.queryConfig('fetchURL', true)) return;\n const { text, from } = event.message;\n const urls = text.match(/(\\b(https?):\\/\\/[-A-Z0-9+&@#\\/%?=~_|!:,.;()]*[-A-Z0-9+&@#\\/%=~_|()])/ig);\n const fromSelf = from === IRC.nick;\n if (!urls || fromSelf || text.startsWith(IRC.trigger) || text.includes('##')) return;\n\n urls.slice(0, 3).forEach(url => {\n handleURL(url, global.print)\n // .catch(print.error);\n });\n});\n\nasync function handleURL(url, print) {\n anchor.setAttribute('href', url);\n if (await customURL(url, print)) return;\n\n const res = await fetch(url, {\n headers: {\n 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',\n 'Accept-Language': 'en-GB,en;q=0.5',\n 'Content-Language': 'en-GB,en;q=0.5',\n 'User-Agent': /youtu\\.?be|google|reddit/.test(url) ? '' : 'Googlebot',\n },\n });\n\n const length = res.headers.get('content-length');\n\n if (length > 5.243e6) {\n const filename = anchor.pathname.split('/').pop();\n print.info(`{dc}${filename}{/} ${bytes(length)} {dgr}${res.headers.get('content-type')}{/}`);\n return;\n }\n\n const page = await res.text();\n setDOM(page);\n\n const title = domTitle();\n\n if (\n title.length \n && title.length < 400 \n && !filterWords.test(title)\n && (IRC.queryConfig('fetchURLAll', false) || hasInfo(url, title))) {\n print.info(title);\n }\n\n}\n\nasync function customURL(url, print) {\n // https://github.com/mendel5/alternative-front-ends\n const { hostname, pathname } = anchor;\n if (hostname.includes('reddit.')) {\n const jsonURL = url.replace(/(\\/?)(\\?.*)?(#.*)?$/, '/.json');\n const json = await(await fetch(jsonURL)).json();\n const data = json?.[0]?.data?.children?.[0]?.data;\n if (data) {\n const info = `{c}${data.subreddit_name_prefixed}{/} {o}▲${data.score}{/} ${data.title}`;\n const url = data?.secure_media?.reddit_video?.fallback_url?.replace('?source=fallback', '') || data.url;\n if (data.selftext) {\n print(`${info} ${String(data.selftext).replace(/\\s+/g, ' ').slice(0, 300)}`);\n return true;\n } else if (url) {\n print(`${info} ${IRC.colors.link(url)}`);\n return true;\n }\n }\n return true; \n }\n if (hostname.includes('youtube.') || hostname === 'youtu.be') {\n try {\n const json = await (await fetch(`https://www.youtube.com/oembed?url=${encodeURI(url)}&format=json`)).json();\n const {\n title, author_name,\n } = json;\n print(`{r}YouTube{/} {c}${author_name}{/} ${title}`);\n return true;\n } catch (e) { }\n // url.match(/(?!v=|v\\/|\\.be\\/|watch\\/)([0-9a-z\\-_]{11})/i);\n }\n if (hostname.includes('github.com')) {\n if (pathname.split('/').length === 3) {\n // it's a repo url\n const {\n description,\n html_url,\n name,\n stargazers_count,\n language,\n license, // { name }\n } = await (\n await fetch(`https://api.github.com/repos${pathname}`)\n ).json();\n\n print(`{gr}${description || name}{/} ${IRC.colors.nick(language, false)} {y}★{/} {bo}${stargazers_count}{/} {dgr}${license ? license.name : ''}{/}`);\n return true;\n }\n }\n \tif (hostname.includes('worldcubeassociation.org')) {\n if (pathname.includes('/persons/')){\n const {\n personal_records,\n person,\n medals\n }\n = await(await fetch(`https://www.worldcubeassociation.org/api/v0/persons/${pathname.split(\"/\")[2]}`)).json();\n // calculate best rank\n\t\t\tlet best_rank = Infinity\n let best_event = \"\"\n // RIP Feet\n delete personal_records[\"mmagic\"]\n delete personal_records[\"magic\"]\n \tdelete personal_records[\"333wf\"]\n \t\tdelete personal_records[\"333mbo\"]\n for (const event in personal_records) {\n if(+personal_records[event][\"single\"][\"world_rank\"] < best_rank){\n best_rank = personal_records[event][\"single\"][\"world_rank\"]\n best_event = event + \" Single\"\n }\n if(personal_records[event][\"average\"] != undefined && +personal_records[event][\"average\"][\"world_rank\"] < best_rank){\n best_rank = personal_records[event][\"average\"][\"world_rank\"]\n best_event = event + \" Average\"\n }\n }\n\n \t\n let output = `{bo}${person[\"name\"]}{/}, Medals: {y}${medals[\"gold\"]}{/} {gr}${medals[\"silver\"]}{/} {o}${medals[\"bronze\"]}{/}, Best Rank {c}${best_rank}{/} in {y}${best_event}`;\n print(output);\n \treturn true;\n }\n if (pathname.includes('/competitions/')){\n const {\n name,\n competitor_limit,\n registration_open,\n registration_close \n } = await (\n await fetch(`https://www.worldcubeassociation.org/api/v0/competitions/${pathname.split('/')[2]}`)\n ).json();\n // Add checks for comps in the past. \n let output = `{bo}${name}{/} (Limit: ${competitor_limit}), Registration: {c}${registration_open.split(\"T\")[0]}{/} - {c}${registration_close.split(\"T\")[0]}{/}`;\n print(output);\n \treturn true;\n }\n return false;\n }\n if (hostname.includes('instagram.')) {\n // https://git.sr.ht/~cadence/bibliogram-docs/tree/master/docs/Instances.md\n const id = pathname.match(/\\/([A-Za-z-0-9]{11})/);\n if (id) {\n const page = await (await fetch(`https://bibliogram.1d4.us/p/${id[1]}`)).text();\n setDOM(page);\n const text = document.querySelector('.structured-text').textContent;\n const name = document.querySelector('.name').textContent;\n const image = document.querySelector('.sized-image');\n\n let output = `{bo}Instagram{/} {c}${name}{/} ${text.replace(/\\s+/g, ' ')}`;\n print(output);\n }\n return true;\n }\n if (hostname.includes('twitter.')) {\n const id = pathname.match(/status\\/(\\d+)/);\n if (id) {\n const page = await (await fetch(`https://nitter.net/_/status/${id[1]}#m`)).text();\n setDOM(page);\n const maintweet = document.querySelector('.main-tweet');\n const name = maintweet.querySelector('.fullname').textContent;\n const user = maintweet.querySelector('.username').textContent;\n const image = maintweet.querySelector('.still-image img');\n //const card = maintweet.querySelector('.card-image img');\n const tweet = maintweet.querySelector('.tweet-content').textContent.replace(/\\s+/g, ' ');\n let output = `{bo}${name}{/} {c}${user}{/} ${tweet}`;\n if (image) {\n output += ' ' + IRC.colors.link(`https://nitter.net${image.getAttribute('src').replace(/%3Fname.+/, '')}`);\n }\n //if (card) {\n //output += ' ' + IRC.colors.link(`https://nitter.net${card.getAttribute('src')}`);\n //}\n print(output);\n return true;\n }\n }\n // image detection AI\n if (['jpg', 'gif', 'jpeg', 'png'].some(d => url.includes(`.${d}`))) {\n const reqUrl = 'https://api.imagga.com/v2/tags?image_url='+encodeURI(url);\n const json = await (await fetch(reqUrl, {\n headers: { Authorization: `Basic ${IRC.queryConfig('imaggaKey')} ` }\n })).json();\n if (json.type === 'error') {\n \tjson.status.text;\n } else {\n const tags = json.result.tags.filter(tag => tag.confidence >= 70);\n \tif (tags.length) {\n \tprint('🖼️ 👀 '+tags.map(tag=>`{g}${tag.tag.en}{/}`).join(', '));\n \t} else if (json.result.tags.length) {\n \t\t//const [tag] = json.result.tags;\n //print(`Image may contain: {o}${tag.tag.en}{/} (${0|tag.confidence}% confidence)`);\n \t}\n }\n\n \treturn true;\n }\n // repaste pastebin\n if (hostname.includes('pastebin.com')) {\n const id = pathname.match(/\\/(\\w+)\\/?$/);\n if (id) {\n const page = await (await fetch(`https://pastebin.com/raw/${id[1]}`)).text();\n print.info(`repasted to ${await IRC.require('module.paste').async(page)}`)\n return true;\n }\n }\n}" } \ No newline at end of file diff --git a/commands/gone2-bbdfbca3e786.json b/commands/gone2-bbdfbca3e786.json new file mode 100644 index 0000000..081ad2c --- /dev/null +++ b/commands/gone2-bbdfbca3e786.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "gone2", + "command": "print(`https://i.redd.it/31b1lv3gnc191.jpg`)" +} \ No newline at end of file diff --git a/commands/gpt3-ab803cc17718.json b/commands/gpt3-ab803cc17718.json new file mode 100644 index 0000000..53237fc --- /dev/null +++ b/commands/gpt3-ab803cc17718.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": true, + "starred": false, + "name": "gpt3", + "command": "const out = fetchSync.json('https://api.openai.com/v1/completions', {\n method: 'POST',\n headers: {\n \"Content-Type\": \"application/json\",\n \"Authorization\": `Bearer ${IRC.secret}`,\n },\n body: JSON.stringify({\n model: 'text-davinci-002',\n prompt: input,\n temperature: 0.7,\n max_tokens: 256,\n top_p: 1,\n frequency_penalty: 0,\n presence_penalty: 0\n }),\n});\n\nprint(out.choices.map(d=>d.text).join` `.replace(/\\s+/g, ' ').trim().slice(0,400))" +} \ No newline at end of file diff --git a/commands/log-7b1ebf618a31.json b/commands/log-7b1ebf618a31.json index 4d1b68b..0cff3ff 100644 --- a/commands/log-7b1ebf618a31.json +++ b/commands/log-7b1ebf618a31.json @@ -1,6 +1,6 @@ { "name": "log", - "command": "const data = IRC.log.get(input, IRC.command.params[0] || 3, IRC.command.params[1] || 0);\n\n(data.map(({time, user, command, target, message}) => (\n IRC.colors(`({dc}{u}${time}{/}) {bo}<{/}${IRC.colors.hash(user)}${IRC.breakHighlight(user)}${command=='PRIVMSG'?'':':' + command.toLowerCase()}{/}{bo}>{/}`)\n + ` ${message.replace(/\\n/g, ' ')}`\n)).forEach(d => print.raw(d, {log: false})));", + "command": "const data = IRC.log.get(input, IRC.command.params[0] || 3, IRC.command.params[1] || 0);\n\n(data.map(({time, user, command, target, message}) => (\n IRC.colors(`({dc}{u}${time}{/}) {bo}<{/}${IRC.colors.hash(user)}${IRC.breakHighlight(user)}${command=='PRIVMSG'?'':':' + command.toLowerCase()}{/}{bo}>{/}`)\n + '\\u2800' + `${message.replace(/\\n/g, ' ')}`\n)).forEach(d => print.raw(d, {log: false})));", "locked": true, "starred": true } \ No newline at end of file diff --git a/commands/morbcheck-7d49334c2f18.json b/commands/morbcheck-7d49334c2f18.json new file mode 100644 index 0000000..44a3095 --- /dev/null +++ b/commands/morbcheck-7d49334c2f18.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "morbcheck", + "command": "/*__TEXTCMD__*/print(`https://i.redd.it/h5w1s2qlrd291.jpg`);" +} \ No newline at end of file diff --git a/commands/obamna-980d204b7aa1.json b/commands/obamna-980d204b7aa1.json new file mode 100644 index 0000000..4907699 --- /dev/null +++ b/commands/obamna-980d204b7aa1.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "obamna", + "command": "/*__TEXTCMD__*/print(`https://www.youtube.com/watch?v=80BwqQQY31w`);" +} \ No newline at end of file diff --git a/commands/paypal-0bc4bb2449e1.json b/commands/paypal-0bc4bb2449e1.json index 4b0d763..a094392 100644 --- a/commands/paypal-0bc4bb2449e1.json +++ b/commands/paypal-0bc4bb2449e1.json @@ -1,6 +1,6 @@ { "name": "paypal", - "command": "if(!input){\n print('~paypal ')\n}else{\nprint('Thank you. Your money is on its way.')\n}", + "command": "if(!input){\n throw `usage: ${IRC.colors.cmd('paypal', ['email', 'password'])}`\n}else{\n print('Thank you. Your money is on its way.')\n}", "locked": false, "starred": false } \ No newline at end of file diff --git a/commands/purple-4dfd59728441.json b/commands/purple-4dfd59728441.json index 7620d0b..f6ff121 100644 --- a/commands/purple-4dfd59728441.json +++ b/commands/purple-4dfd59728441.json @@ -1,6 +1,6 @@ { "name": "purple", - "command": "print(\"2 parts {b}Blueberry Bonbon{/}, 1 part {r}sweet cherry{/}, 1 part {p}ribena{/} (all Big Juice)\\n<~barf> thx for flying 8bv\");", + "command": "print(\"{g}13.33%{/} (2 part) {b}Blueberry Candy{/} {o}BigJuice{/} https://u.ddxt.cc/ongw\")\nprint(\"{g} 6.66%{/} (1 part) {r}Cherry Sweet{/} {o}BigJuice{/} https://u.ddxt.cc/OA08\")\nprint(\"{g} 6.66%{/} (1 part) {p}Black Squash{/} {o}BigJuice{/} https://u.ddxt.cc/oj93\")\nprint(\"{rb}thx 4 flying 8bv{/}\")", "locked": false, "starred": false } \ No newline at end of file diff --git a/commands/quitest-57945d35868f.json b/commands/quitest-57945d35868f.json index bab3623..ff4bd61 100644 --- a/commands/quitest-57945d35868f.json +++ b/commands/quitest-57945d35868f.json @@ -3,5 +3,5 @@ "locked": false, "starred": false, "name": "quitest", - "command": "print(`!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n`);" + "command": "print(`!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n!talklike Shreddy FUCK\n`);" } \ No newline at end of file diff --git a/commands/speak-6effd709b830.json b/commands/speak-6effd709b830.json index a3fb037..3c441a9 100644 --- a/commands/speak-6effd709b830.json +++ b/commands/speak-6effd709b830.json @@ -1,6 +1,6 @@ { "name": "speak", - "command": "const _ = require('lodash');print(_.shuffle(IRC.log.random(1+(new Date%2)).map(d => d.message).join` `.split` `).join` `)", + "command": "const text = IRC.log.random(1+(new Date%2)).map(d => d.message).join` `.split` `;\n\nconst out = fetchSync.json('https://api.openai.com/v1/completions', {\n method: 'POST',\n headers: {\n \"Content-Type\": \"application/json\",\n \"Authorization\": `Bearer ${IRC.secret}`,\n },\n body: JSON.stringify({\n model: 'text-davinci-002',\n prompt: input || text,\n temperature: 0.7,\n max_tokens: 256,\n top_p: 1,\n frequency_penalty: 0,\n presence_penalty: 0\n }),\n});\n\nprint(out.choices.map(d=>d.text).join` `.replace(/\\s+/g, ' ').trim().slice(0,400))", "locked": true, "starred": false -} +} \ No newline at end of file diff --git a/commands/tsp-8913f33a8e3a.json b/commands/tsp-8913f33a8e3a.json index 99ab0a5..f95643d 100644 --- a/commands/tsp-8913f33a8e3a.json +++ b/commands/tsp-8913f33a8e3a.json @@ -1,6 +1,6 @@ { "name": "tsp", - "command": "print(' cupcake world, lime 1, pineapple 1, passion fruit 2');", + "command": "print(\"{g}13.33%{/} (2 part) {dr}Passion Fruit{/} {o}Cupcake World{/} https://u.ddxt.cc/DiTg\")\nprint(\"{g} 6.66%{/} (1 part) {y}Pineapple{/} {o}Cupcake World{/} https://u.ddxt.cc/dGwx\")\nprint(\"{g} 6.66%{/} (1 part) {g}Lime{/} {o}Cupcake World{/} https://u.ddxt.cc/1laF\")\nprint(\"Available direct at https://u.ddxt.cc/ZNv5\")", "locked": false, "starred": false } \ No newline at end of file diff --git a/commands/varhi-b81ee2070343.json b/commands/varhi-b81ee2070343.json new file mode 100644 index 0000000..14d8a84 --- /dev/null +++ b/commands/varhi-b81ee2070343.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "varhi", + "command": "print(`this is variable width font`)" +} \ No newline at end of file diff --git a/commands/webmd-191f00f35b19.json b/commands/webmd-191f00f35b19.json new file mode 100644 index 0000000..bc5de09 --- /dev/null +++ b/commands/webmd-191f00f35b19.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "webmd", + "command": "print(`it's cancer`)" +} \ No newline at end of file From f642703a134eb38d8d0b6adf5d52830db4927a85 Mon Sep 17 00:00:00 2001 From: kirjavascript Date: Thu, 16 Jun 2022 19:28:21 +0200 Subject: [PATCH 39/94] reverted trinary lol --- commands/-17ec727d0b2c.json | 2 +- commands/-5543cccada3a.json | 2 +- commands/-60a45414d51f.json | 2 +- commands/-61e5a9292e6c.json | 2 +- commands/-73df838fbf9e.json | 2 +- commands/-80816f81e75b.json | 2 +- commands/-81e75013b7f5.json | 2 +- commands/-9ed4e727a8d8.json | 2 +- commands/-a3f781506cec.json | 2 +- commands/-a8d4171e4fa7.json | 2 +- commands/-b1da0530db76.json | 2 +- commands/-b5e3e197cbd6.json | 2 +- commands/-c55a6d9dc549.json | 2 +- commands/-d5d668d5e47a.json | 2 +- commands/-d7b115d4bf46.json | 2 +- commands/-dcc605bd7f9e.json | 2 +- commands/-fbdcbe735a57.json | 2 +- commands/03-9ca88dc6b73a.json | 2 +- commands/1-c8b1a58e7d13.json | 2 +- commands/debug-cf221a1b4444.json | 2 +- 20 files changed, 20 insertions(+), 20 deletions(-) diff --git a/commands/-17ec727d0b2c.json b/commands/-17ec727d0b2c.json index 55783d0..a79cb79 100644 --- a/commands/-17ec727d0b2c.json +++ b/commands/-17ec727d0b2c.json @@ -1,6 +1,6 @@ { "name": "~", - "command": "", + "command": "print(\"lol tilded\");", "locked": false, "starred": false } \ No newline at end of file diff --git a/commands/-5543cccada3a.json b/commands/-5543cccada3a.json index eabf333..284772a 100644 --- a/commands/-5543cccada3a.json +++ b/commands/-5543cccada3a.json @@ -1,6 +1,6 @@ { "name": "?", - "command": "", + "command": "print(\"�\");", "locked": false, "starred": false } \ No newline at end of file diff --git a/commands/-60a45414d51f.json b/commands/-60a45414d51f.json index c7624ab..18123a2 100644 --- a/commands/-60a45414d51f.json +++ b/commands/-60a45414d51f.json @@ -1,6 +1,6 @@ { "name": "⁷", - "command": "", + "command": "print(\"*psst, seven*\");", "locked": false, "starred": false } \ No newline at end of file diff --git a/commands/-61e5a9292e6c.json b/commands/-61e5a9292e6c.json index 88d2459..ebee3f9 100644 --- a/commands/-61e5a9292e6c.json +++ b/commands/-61e5a9292e6c.json @@ -1,6 +1,6 @@ { "name": "£", - "command": "", + "command": "print.raw(\"FUCK ALL MATE\");", "locked": false, "starred": false } \ No newline at end of file diff --git a/commands/-73df838fbf9e.json b/commands/-73df838fbf9e.json index 9f6a195..d453ced 100644 --- a/commands/-73df838fbf9e.json +++ b/commands/-73df838fbf9e.json @@ -1,6 +1,6 @@ { "name": "!!!", - "command": "", + "command": "print(\"https://www.youtube.com/watch?v=MHr3ag7B410\");drfgdfg", "locked": false, "starred": false } \ No newline at end of file diff --git a/commands/-80816f81e75b.json b/commands/-80816f81e75b.json index 5c3f635..1669a16 100644 --- a/commands/-80816f81e75b.json +++ b/commands/-80816f81e75b.json @@ -2,5 +2,5 @@ "locked": false, "starred": false, "name": "·", - "command": "" + "command": "print(\"·_·\");" } \ No newline at end of file diff --git a/commands/-81e75013b7f5.json b/commands/-81e75013b7f5.json index c82571d..a5d0444 100644 --- a/commands/-81e75013b7f5.json +++ b/commands/-81e75013b7f5.json @@ -2,5 +2,5 @@ "locked": false, "starred": false, "name": "🍎👖", - "command": "" + "command": "print(`https://youtu.be/${['wrSj1kdplhU','wNdhUo8jsS4','74uQ4Rvvk5g','xANZ4Qy37q4','tVNZ3Nk8hyU','VQk_zn030bM','PdtU-kWAarM','Pz5YwfE1kC0','RSEenbHzMFQ','xDaBUmlJoRU','-jR2Eo8yGMc','-30T2GKsRFg','l6QFiRBnPeA','kQnDCaXnJmQ','NcNlp3xn0Wc','dDZraqq9nTw','8ldMkkqDg9U'][(Math.random()*17)|0]}`);" } \ No newline at end of file diff --git a/commands/-9ed4e727a8d8.json b/commands/-9ed4e727a8d8.json index f619aea..3fa6b92 100644 --- a/commands/-9ed4e727a8d8.json +++ b/commands/-9ed4e727a8d8.json @@ -2,5 +2,5 @@ "locked": false, "starred": false, "name": "🤡", - "command": "" + "command": "print.raw(\"https://www.youtube.com/watch?v=AhK4nt5we_8\");" } \ No newline at end of file diff --git a/commands/-a3f781506cec.json b/commands/-a3f781506cec.json index 2568422..190acd3 100644 --- a/commands/-a3f781506cec.json +++ b/commands/-a3f781506cec.json @@ -1,6 +1,6 @@ { "name": ":>", - "command": "", + "command": "print(`<:`)", "locked": false, "starred": false } \ No newline at end of file diff --git a/commands/-a8d4171e4fa7.json b/commands/-a8d4171e4fa7.json index 3f9fe23..a8c397a 100644 --- a/commands/-a8d4171e4fa7.json +++ b/commands/-a8d4171e4fa7.json @@ -1,6 +1,6 @@ { "name": "", - "command": "", + "command": "print('{r}❤')", "locked": false, "starred": false } \ No newline at end of file diff --git a/commands/-b1da0530db76.json b/commands/-b1da0530db76.json index 1eeb09c..d228628 100644 --- a/commands/-b1da0530db76.json +++ b/commands/-b1da0530db76.json @@ -1,6 +1,6 @@ { "name": "!!!!!", - "command": "", + "command": "print(`momed l ol `)", "locked": false, "starred": false } \ No newline at end of file diff --git a/commands/-b5e3e197cbd6.json b/commands/-b5e3e197cbd6.json index 49eaddd..1f5994e 100644 --- a/commands/-b5e3e197cbd6.json +++ b/commands/-b5e3e197cbd6.json @@ -1,6 +1,6 @@ { "name": "!", - "command": "", + "command": "print(\"https://www.youtube.com/watch?v=2P5qbcRAXVk\");", "locked": false, "starred": false } \ No newline at end of file diff --git a/commands/-c55a6d9dc549.json b/commands/-c55a6d9dc549.json index 2804b2f..8d52b22 100644 --- a/commands/-c55a6d9dc549.json +++ b/commands/-c55a6d9dc549.json @@ -1,6 +1,6 @@ { "name": "ゴ", - "command": "", + "command": "print.raw(`ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ`);", "locked": false, "starred": false } \ No newline at end of file diff --git a/commands/-d5d668d5e47a.json b/commands/-d5d668d5e47a.json index 34e92d2..f7c8324 100644 --- a/commands/-d5d668d5e47a.json +++ b/commands/-d5d668d5e47a.json @@ -1,6 +1,6 @@ { "name": "💯", - "command": "", + "command": "print.raw( \"💯 👌 💯 👌 💯 👌 💯 👌 💯 👌 💯 👌 💯 👌 💯 👌 💯 👌 💯 👌 \");", "locked": false, "starred": false } \ No newline at end of file diff --git a/commands/-d7b115d4bf46.json b/commands/-d7b115d4bf46.json index 48c3301..ebdea39 100644 --- a/commands/-d7b115d4bf46.json +++ b/commands/-d7b115d4bf46.json @@ -1,6 +1,6 @@ { "name": ":<", - "command": "", + "command": "print(`>:~`)", "locked": false, "starred": false } \ No newline at end of file diff --git a/commands/-dcc605bd7f9e.json b/commands/-dcc605bd7f9e.json index 7eba559..7c8c49b 100644 --- a/commands/-dcc605bd7f9e.json +++ b/commands/-dcc605bd7f9e.json @@ -2,5 +2,5 @@ "locked": false, "starred": false, "name": ":(", - "command": "" + "command": "print(':< :\\'( 😢😂😭😪😥😰😩 :-( https://imgur.com/gallery/oz7if8u')" } \ No newline at end of file diff --git a/commands/-fbdcbe735a57.json b/commands/-fbdcbe735a57.json index b8646d2..18a25ab 100644 --- a/commands/-fbdcbe735a57.json +++ b/commands/-fbdcbe735a57.json @@ -3,5 +3,5 @@ "locked": false, "starred": false, "name": "===", - "command": "" + "command": "const cool = 7\n\nif (! 'cr0sis' === cool) {\n print('{r}cr0sis gay lelmao')\n} else {\n print('{r}cr0sis gay lelmAo')\n}" } \ No newline at end of file diff --git a/commands/03-9ca88dc6b73a.json b/commands/03-9ca88dc6b73a.json index 57d5112..c30f7bc 100644 --- a/commands/03-9ca88dc6b73a.json +++ b/commands/03-9ca88dc6b73a.json @@ -1,6 +1,6 @@ { "name": "03", - "command": "", + "command": "print(\"https://i.imgur.com/OaDpI8N.jpg/");", "locked": false, "starred": false } \ No newline at end of file diff --git a/commands/1-c8b1a58e7d13.json b/commands/1-c8b1a58e7d13.json index e9a051e..06228ed 100644 --- a/commands/1-c8b1a58e7d13.json +++ b/commands/1-c8b1a58e7d13.json @@ -1,6 +1,6 @@ { "name": "1", - "command": "", + "command": "IRC.require('!')", "locked": false, "starred": false } \ No newline at end of file diff --git a/commands/debug-cf221a1b4444.json b/commands/debug-cf221a1b4444.json index 19fd0e7..909ffeb 100644 --- a/commands/debug-cf221a1b4444.json +++ b/commands/debug-cf221a1b4444.json @@ -1,6 +1,6 @@ { "event": false, - "locked": false, + "locked": true, "starred": false, "name": "debug", "command": "const { node } = IRC.sudo();\n\nif (input.includes('dev')) {\n node.parent.dev.set(!node.parent.dev.get())\n print.success(`dev: ${node.parent.dev.get()}`)\n} else {\n node.debug.set(!node.debug.get());\n print.success(`debug: ${node.debug.get()}`)\n}" From c30659b61265e1e84764170e3c21417e1815ce58 Mon Sep 17 00:00:00 2001 From: kirjavascript Date: Thu, 7 Jul 2022 21:57:53 +0200 Subject: [PATCH 40/94] async fetch timeout --- commands/boris-7e61b2ef6dfd.json | 2 +- commands/cagematch-8f002dd93273.json | 2 +- commands/clutch-1e8e364fe6d4.json | 7 +++++++ commands/event-b306be3528b0.json | 2 +- commands/eventspeak-ad768be3c7ae.json | 7 +++++++ commands/gpt3-ab803cc17718.json | 2 +- commands/horo-6b966318f8ce.json | 7 +++++++ commands/sec-94bb779a2433.json | 7 +++++++ commands/speak-6effd709b830.json | 2 +- commands/uuid-8743ec557761.json | 2 +- .../willmegasconedsucceedwiththistask-d800508d4fa7.json | 7 +++++++ commands/ww-6e1caf7103e0.json | 7 +++++++ irc/evaluate/async-fetch.js | 2 +- 13 files changed, 49 insertions(+), 7 deletions(-) create mode 100644 commands/clutch-1e8e364fe6d4.json create mode 100644 commands/eventspeak-ad768be3c7ae.json create mode 100644 commands/horo-6b966318f8ce.json create mode 100644 commands/sec-94bb779a2433.json create mode 100644 commands/willmegasconedsucceedwiththistask-d800508d4fa7.json create mode 100644 commands/ww-6e1caf7103e0.json diff --git a/commands/boris-7e61b2ef6dfd.json b/commands/boris-7e61b2ef6dfd.json index b188755..396a465 100644 --- a/commands/boris-7e61b2ef6dfd.json +++ b/commands/boris-7e61b2ef6dfd.json @@ -3,5 +3,5 @@ "locked": false, "starred": false, "name": "boris", - "command": "const imgs = [\n 'https://i.imgur.com/K59P85p.jpeg',\n 'https://i.imgur.com/M7P2I1q.jpeg',\n 'https://i.imgur.com/r3cso8k.jpeg',\n 'https://i.imgur.com/EndbZsH.jpeg',\n 'https://i.imgur.com/igCN6lE.png',\n 'https://i.imgur.com/bizSYPD.jpeg',\n 'https://i.imgur.com/zzDxHVf.jpeg',\n 'https://i.imgur.com/0Gky5w5.jpeg',\n 'https://i.imgur.com/qHKVTWw.jpeg',\n 'https://i.imgur.com/cbuTvjV.jpeg',\n 'https://i.imgur.com/1wTbWwP.jpeg',\n 'https://i.imgur.com/eg9Gmav.jpeg',\n 'https://i.imgur.com/3zFoeTZ.jpeg',\n 'https://i.imgur.com/H7e8AS6.jpeg',\n 'https://i.imgur.com/4lNBJxQ.jpeg',\n 'https://i.imgur.com/ztNj1ww.jpeg',\n 'https://i.imgur.com/ZrtPo71.jpeg',\n 'https://i.imgur.com/3qEsg2h.png',\n 'https://i.imgur.com/aHHXiyj.jpeg',\n 'https://i.imgur.com/SVkcFQS.jpeg',\n 'https://i.imgur.com/ulvuJnn.jpeg',\n 'https://i.imgur.com/DHq7IRZ.jpeg',\n 'https://i.imgur.com/FFVBpgA.jpeg',\n 'https://i.imgur.com/ANa70o7.png',\n 'https://i.imgur.com/QEBWT09.jpeg',\n 'https://i.imgur.com/xWDUvRw.png',\n 'https://i.imgur.com/gGzQjva.jpeg',\n 'https://i.imgur.com/sJdnRBV.jpeg',\n 'https://i.imgur.com/WBRa8oo.jpeg',\n 'https://i.imgur.com/guGCRVc.jpeg',\n 'https://i.imgur.com/4N15bFL.jpeg',\n 'https://i.imgur.com/z8avoY3.png',\n 'https://i.imgur.com/9WrrFsC.jpg',\n 'https://i.imgur.com/tvp9X7Q.jpeg',\n 'https://i.imgur.com/hNt8Yk9.jpeg',\n 'https://i.imgur.com/FZNzUf9.jpeg',\n 'https://i.imgur.com/s0aDlki.jpeg'\n]\n\nconst quotes = [\n 'Ping-pong was invented on the dining tables of England in the 19th century, and it was called Wiff-waff! And there, I think, you have the difference between us and the rest of the world. Other nations, the French, looked at a dining table and saw an opportunity to have dinner; we looked at it an saw an opportunity to play Wiff-waff.',\n 'We cannot turn our backs on Europe. We are part of Europe.',\n 'If we vote to Leave and take back control, all sorts of opportunities open up. Including doing new free trade deals around the world, restoring Britain\\'s seat on all sorts of international bodies, restoring health to our democracy and belief to our democracy.',\n 'As I write these words there are semi-naked women playing beach volleyball in the middle of the Horse Guards Parade immortalised by Canaletto. They are glistening like wet otters and the water is splashing off the brims of the spectators’ sou’westers',\n 'The Geiger counter of Olympo-mania is going to go zoink! off the scale! People are coming from around the world, and they\\'re seeing us, and they\\'re seeing the greatest country on Earth, aren\\'t they? There are some people who are coming from around the world who don\\'t yet know about all the preparations we\\'ve done to get London ready in the last seven years. I hear there\\'s a guy called Mitt Romney who wants to know whether we\\'re ready. Are we ready?',\n 'We seek cities because there are a greater range of girls at the bar, of reproductive choice. But above all, talented people seek cities for fame. They can’t get famous in the f***ing village.',\n 'It\\'s chicken feed. I don\\'t see why I shouldn\\'t knock off an article... if someone wants to pay me, then that\\'s their lookout.',\n 'Here we are in one of the most depressed downs in southern England, a place that is arguably too full of drugs, obesity, underachievement and Labour MPs.',\n 'I can hardly condemn UKIP as a bunch of boss-eyed, foam-flecked Euro hysterics, when I have been sometimes not far short of boss-eyed, foam-flecked hysteria myself.',\n 'I\\'m a rugby player, really, and I knew I was going to get to him, and when he was about two yards away I just put my head down. There was no malice. I was going for the ball with my head, which I understand is a legitimate move in soccer. ',\n 'It is said that the Queen has come to love the Commonwealth, partly because it supplies her with regular cheering crowds of flag-waving picaninnies; and one can imagine that Blair, twice victor abroad but enmired at home, is similarly seduced by foreign politeness. They say he is shortly off to the Congo. No doubt the AK47s will fall silent, and the pangas will stop their hacking of human flesh, and the tribal warriors will all break out in Watermelon smiles to see the big white chief touch down in his big white British taxpayer-funded bird.',\n 'For 10 years we in the Tory Party have become used to Papua New Guinea-style orgies of cannibalism and chief-killing.',\n 'I think I was once given cocaine but I sneezed so it didn\\'t go up my nose. In fact, it may have been icing sugar.',\n 'Voting Tory will cause your wife to have bigger breasts and increase your chances of owning a BMW M3.',\n 'My realistic chances of becoming Prime Minister are only slightly better than my chances of being decapitated by a frisbee, blinded by a champagne cork, locked in a disused fridge or reincarnated as a olive.',\n 'The President is a cross-eyed Texan warmonger, unelected, inarticulate, who epitomises the arrogance of American foreign policy.',\n 'Unlike the current occupant of the White House, he has no difficulty in orally extemporising a series of grammatical English sentences, each containing a main verb.',\n 'This is going to be a fantastic year for Great Britain',\n 'It is absolutely ridiculous that people should choose to go around looking like letter boxes. I feel fully entitled to expect Muslim women to remove the head covering, especially if they turn up looking like a bank robber',\n 'The best fate for Africa would be if the old colonial powers, or their citizens, scrambled once again in her direction; on the understanding that this time they will not be asked to feel guilty..the problem is not that we were once in charge, but that we are not in charge any more.',\n 'The idea that freedom of movement is a fundamental right of the EU is just bollocks.',\n 'My speaking style was criticised by no less an authority than Arnold Schwarzenegger. It was a low moment, my friends, to have my rhetorical skills denounced by a monosyllabic Austrian cyborg.',\n 'If gay marriage was OK ... then I saw no reason in principle why a union should not be consecrated between three men, as well as two men; or indeed three men and a dog.',\n 'I dont see why people are so snooty about Channel Five. It has some respectable documentaries about the Second World War. It also devotes considerable airtime to investigations into lap-dancing, and other related and vital subjects',\n 'My policy on cake is pro having it and pro eating it.',\n 'London is a fantastic creator of jobs - but many of these jobs are going to people who don\\'t originate in this country.',\n 'He is like some sherry-crazed old dowager who has lost the family silver at roulette, and who now decides to double up by betting the house as well.'\n]\n\nprint(`${imgs[Math.floor(Math.random()*imgs.length)]}`)\nprint(`{i}“${quotes[Math.floor(Math.random()*quotes.length)]}”`)" + "command": "const imgs = [\n 'https://i.imgur.com/K59P85p.jpeg',\n 'https://i.imgur.com/M7P2I1q.jpeg',\n 'https://i.imgur.com/r3cso8k.jpeg',\n 'https://i.imgur.com/EndbZsH.jpeg',\n 'https://i.imgur.com/igCN6lE.png',\n 'https://i.imgur.com/bizSYPD.jpeg',\n 'https://i.imgur.com/zzDxHVf.jpeg',\n 'https://i.imgur.com/0Gky5w5.jpeg',\n 'https://i.imgur.com/qHKVTWw.jpeg',\n 'https://i.imgur.com/cbuTvjV.jpeg',\n 'https://i.imgur.com/1wTbWwP.jpeg',\n 'https://i.imgur.com/eg9Gmav.jpeg',\n 'https://i.imgur.com/3zFoeTZ.jpeg',\n 'https://i.imgur.com/H7e8AS6.jpeg',\n 'https://i.imgur.com/4lNBJxQ.jpeg',\n 'https://i.imgur.com/ztNj1ww.jpeg',\n 'https://i.imgur.com/ZrtPo71.jpeg',\n 'https://i.imgur.com/3qEsg2h.png',\n 'https://i.imgur.com/aHHXiyj.jpeg',\n 'https://i.imgur.com/SVkcFQS.jpeg',\n 'https://i.imgur.com/ulvuJnn.jpeg',\n 'https://i.imgur.com/DHq7IRZ.jpeg',\n 'https://i.imgur.com/FFVBpgA.jpeg',\n 'https://i.imgur.com/ANa70o7.png',\n 'https://i.imgur.com/QEBWT09.jpeg',\n 'https://i.imgur.com/xWDUvRw.png',\n 'https://i.imgur.com/gGzQjva.jpeg',\n 'https://i.imgur.com/sJdnRBV.jpeg',\n 'https://i.imgur.com/WBRa8oo.jpeg',\n 'https://i.imgur.com/guGCRVc.jpeg',\n 'https://i.imgur.com/4N15bFL.jpeg',\n 'https://i.imgur.com/z8avoY3.png',\n 'https://i.imgur.com/9WrrFsC.jpg',\n 'https://i.imgur.com/tvp9X7Q.jpeg',\n 'https://i.imgur.com/hNt8Yk9.jpeg',\n 'https://i.imgur.com/FZNzUf9.jpeg',\n 'https://i.imgur.com/s0aDlki.jpeg',\n 'https://i.imgur.com/2uCFsYK.jpeg',\n 'https://i.imgur.com/cEbnahY.jpeg',\n 'https://i.imgur.com/7BMdc9z.jpeg',\n 'https://i.imgur.com/lJfy65z.jpeg',\n 'https://i.imgur.com/V5SmkSE.jpeg',\n 'https://i.imgur.com/SuNYFtH.jpeg'\n]\n\nconst quotes = [\n 'Ping-pong was invented on the dining tables of England in the 19th century, and it was called Wiff-waff! And there, I think, you have the difference between us and the rest of the world. Other nations, the French, looked at a dining table and saw an opportunity to have dinner; we looked at it an saw an opportunity to play Wiff-waff.',\n 'We cannot turn our backs on Europe. We are part of Europe.',\n 'If we vote to Leave and take back control, all sorts of opportunities open up. Including doing new free trade deals around the world, restoring Britain\\'s seat on all sorts of international bodies, restoring health to our democracy and belief to our democracy.',\n 'As I write these words there are semi-naked women playing beach volleyball in the middle of the Horse Guards Parade immortalised by Canaletto. They are glistening like wet otters and the water is splashing off the brims of the spectators’ sou’westers',\n 'The Geiger counter of Olympo-mania is going to go zoink! off the scale! People are coming from around the world, and they\\'re seeing us, and they\\'re seeing the greatest country on Earth, aren\\'t they? There are some people who are coming from around the world who don\\'t yet know about all the preparations we\\'ve done to get London ready in the last seven years. I hear there\\'s a guy called Mitt Romney who wants to know whether we\\'re ready. Are we ready?',\n 'We seek cities because there are a greater range of girls at the bar, of reproductive choice. But above all, talented people seek cities for fame. They can’t get famous in the f***ing village.',\n 'It\\'s chicken feed. I don\\'t see why I shouldn\\'t knock off an article... if someone wants to pay me, then that\\'s their lookout.',\n 'Here we are in one of the most depressed downs in southern England, a place that is arguably too full of drugs, obesity, underachievement and Labour MPs.',\n 'I can hardly condemn UKIP as a bunch of boss-eyed, foam-flecked Euro hysterics, when I have been sometimes not far short of boss-eyed, foam-flecked hysteria myself.',\n 'I\\'m a rugby player, really, and I knew I was going to get to him, and when he was about two yards away I just put my head down. There was no malice. I was going for the ball with my head, which I understand is a legitimate move in soccer. ',\n 'It is said that the Queen has come to love the Commonwealth, partly because it supplies her with regular cheering crowds of flag-waving picaninnies; and one can imagine that Blair, twice victor abroad but enmired at home, is similarly seduced by foreign politeness. They say he is shortly off to the Congo. No doubt the AK47s will fall silent, and the pangas will stop their hacking of human flesh, and the tribal warriors will all break out in Watermelon smiles to see the big white chief touch down in his big white British taxpayer-funded bird.',\n 'For 10 years we in the Tory Party have become used to Papua New Guinea-style orgies of cannibalism and chief-killing.',\n 'I think I was once given cocaine but I sneezed so it didn\\'t go up my nose. In fact, it may have been icing sugar.',\n 'Voting Tory will cause your wife to have bigger breasts and increase your chances of owning a BMW M3.',\n 'My realistic chances of becoming Prime Minister are only slightly better than my chances of being decapitated by a frisbee, blinded by a champagne cork, locked in a disused fridge or reincarnated as a olive.',\n 'The President is a cross-eyed Texan warmonger, unelected, inarticulate, who epitomises the arrogance of American foreign policy.',\n 'Unlike the current occupant of the White House, he has no difficulty in orally extemporising a series of grammatical English sentences, each containing a main verb.',\n 'This is going to be a fantastic year for Great Britain',\n 'It is absolutely ridiculous that people should choose to go around looking like letter boxes. I feel fully entitled to expect Muslim women to remove the head covering, especially if they turn up looking like a bank robber',\n 'The best fate for Africa would be if the old colonial powers, or their citizens, scrambled once again in her direction; on the understanding that this time they will not be asked to feel guilty..the problem is not that we were once in charge, but that we are not in charge any more.',\n 'The idea that freedom of movement is a fundamental right of the EU is just bollocks.',\n 'My speaking style was criticised by no less an authority than Arnold Schwarzenegger. It was a low moment, my friends, to have my rhetorical skills denounced by a monosyllabic Austrian cyborg.',\n 'If gay marriage was OK ... then I saw no reason in principle why a union should not be consecrated between three men, as well as two men; or indeed three men and a dog.',\n 'I dont see why people are so snooty about Channel Five. It has some respectable documentaries about the Second World War. It also devotes considerable airtime to investigations into lap-dancing, and other related and vital subjects',\n 'My policy on cake is pro having it and pro eating it.',\n 'London is a fantastic creator of jobs - but many of these jobs are going to people who don\\'t originate in this country.',\n 'He is like some sherry-crazed old dowager who has lost the family silver at roulette, and who now decides to double up by betting the house as well.'\n]\n\nprint(`${imgs[Math.floor(Math.random()*imgs.length)]}`)\nprint(`{i}“${quotes[Math.floor(Math.random()*quotes.length)]}”`)" } \ No newline at end of file diff --git a/commands/cagematch-8f002dd93273.json b/commands/cagematch-8f002dd93273.json index 0fba83f..93ac666 100644 --- a/commands/cagematch-8f002dd93273.json +++ b/commands/cagematch-8f002dd93273.json @@ -2,5 +2,5 @@ "locked": false, "starred": false, "name": "cagematch", - "command": "const scores = {\n a: 1, e: 1, i: 1, o: 1, u: 1, l: 1, n: 1, r: 1, s: 1, t: 1,\n d: 2, g: 2,\n b: 3, c: 3, m: 3, p: 3,\n f: 4, h: 4, v: 4, w: 4, y: 4,\n k: 5,\n j: 8, x: 8,\n q: 10, z: 10\n}\n\nfunction getScore (word) {\n const filtered = word\n \t.toLowerCase()\n\t.replace(/[^a-z]/g, '')\n\n if (filtered === 'seven' || word === '7') {\n \treturn 1000 \n }\n \n const scoreMap = filtered\n \t.repeat(10)\n .substring(0,10)\n .split('')\n .map(letter => scores[letter])\n \n if (scoreMap.length > 0) {\n return scoreMap.reduce((a, b) => a + b)\n } else {\n return 0 \n } \n}\n\nfunction getDescription (percent) {\n if (percent > 100 && percent < 121) {\n return '{bo}{y}Close one{/}'\n }\n \n if (percent > 121 && percent < 151) {\n return '{bo}{o}Wasted{/}'\n }\n \n if (percent > 151 && percent < 175) {\n return '{bo}{r}Dominated{/}'\n }\n \n if (percent > 175) {\n return '{bo}{dr}Murdered{/}'\n }\n}\n\nconst players = input.split(' vs ', 2)\n\nif (players.length < 2) {\n throw Error('~cagematch *thing* vs *thing*')\n}\n\nconst p1score = getScore(players[0])\nconst p2score = getScore(players[1])\n\nif (p1score === p2score) {\n if (p1score === 1000) {\n print(`{rb}draw - both sevens are 7{/}`)\n } else {\n print(`{y}draw{/} - both fighters sucked`)\n }\n}\n\nif (p1score > p2score) {\n const percent = ((100 * p1score) / p2score).toFixed(2)\n print(`{p}${players[0]}{/} wins, {r}${players[1]}{/} sucked and lost {g}(${percent}%){/} ${getDescription(percent)}`)\n}\n\nif (p1score < p2score) {\n const percent = ((100 * p2score) / p1score).toFixed(2)\n print(`{p}${players[1]}{/} wins, {r}${players[0]}{/} sucked and lost {g}(${percent}%){/} ${getDescription(percent)}`)\n}" + "command": "const scores = {\n a: 1, e: 1, i: 1, o: 1, u: 1, l: 1, n: 1, r: 8, s: 1, t: 1,\n d: 2, g: 2,\n b: 3, c: 3, m: 3, p: 3,\n f: 4, h: 4, v: 4, w: 4, y: 4,\n k: 5,\n j: 8, x: 8,\n q: 10, z: 10\n}\n\nfunction getScore (word) {\n const filtered = word\n \t.toLowerCase()\n\t.replace(/[^a-z]/g, '')\n\n if (filtered === 'seven' || word === '7') {\n \treturn 1000 \n }\n \n const scoreMap = filtered\n \t.repeat(10)\n .substring(0,10)\n .split('')\n .map(letter => scores[letter])\n \n if (scoreMap.length > 0) {\n return scoreMap.reduce((a, b) => a + b)\n } else {\n return 0 \n } \n}\n\nfunction getDescription (percent) {\n if (percent > 100 && percent < 121) {\n return '{bo}{y}Close one{/}'\n }\n \n if (percent > 121 && percent < 151) {\n return '{bo}{o}Wasted{/}'\n }\n \n if (percent > 151 && percent < 175) {\n return '{bo}{r}Dominated{/}'\n }\n \n if (percent > 175) {\n return '{bo}{dr}Murdered{/}'\n }\n}\n\nconst players = input.split(' vs ', 2)\n\nif (players.length < 2) {\n throw Error('~cagematch *thing* vs *thing*')\n}\n\nconst p1score = getScore(players[0])\nconst p2score = getScore(players[1])\n\nif (p1score === p2score) {\n if (p1score === 1000) {\n print(`{rb}draw - both sevens are 7{/}`)\n } else {\n print(`{y}draw{/} - both fighters sucked`)\n }\n}\n\nif (p1score > p2score) {\n const percent = ((100 * p1score) / p2score).toFixed(2)\n print(`{p}${players[0]}{/} wins, {r}${players[1]}{/} sucked and lost {g}(${percent}%){/} ${getDescription(percent)}`)\n}\n\nif (p1score < p2score) {\n const percent = ((100 * p2score) / p1score).toFixed(2)\n print(`{p}${players[1]}{/} wins, {r}${players[0]}{/} sucked and lost {g}(${percent}%){/} ${getDescription(percent)}`)\n}" } \ No newline at end of file diff --git a/commands/clutch-1e8e364fe6d4.json b/commands/clutch-1e8e364fe6d4.json new file mode 100644 index 0000000..60b2905 --- /dev/null +++ b/commands/clutch-1e8e364fe6d4.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "clutch", + "command": "//print(\"An MR-RL time. Me and Marc Rutzou. Me and fucking Marc Rutzou. That's fucking right. I skipped 1:13. I am a fucking legend. I've never SEEN a 1:13 and I never fucking will. 1:12 baby Till the day I fucking die. YES!!! 'Bout time I get a fucking lucky break in this fucking game motherFUCKERS and I CLUTCHED the goddamn grenade launcher. That's FUCKING right. Yea it's this one. Right here IT's THIS ONE. My insane pace. Right here! THIS is the 1:12 Right here! YES!! It's fucking it. I'mma have to jus-I'mm have to find the actual whole vid off of it and I'mma have to get it. DUUUUUUUDE WHAT A RUSH! WHAT A RUUUUUUSH! Watch this. Watch when I get the grenade launcher. (sorry) Look at that. See how fast my pace is? Right in the FUCKING HEAD!!! YEEEAAAHH! Got a FUCKING 1:12 baby. That's RIGHT! You see that CLUTCHNESS I AM FUCKING CCC-LUTCH! Look at this fucking line I take. I'm like, \\\"YEAH baby. Let's fucking DO this. I wait I wait Right when he starts firing to try to back boost me. The double. Body armor. Two quick ones. I already know I'm gettin' there on the perfect line. LOOK AT THE FUCKING PACE Fifty Fourty-nine! mmph- FOURTY-SEVEN BABY! That's FUCKING right. That's FUCKING IT. Fucking PUMPED watching this one again I waited the cinema too 'cause I said \\\"oh my god it might be 1:12. And it FUCKING IS!!! IT FUUCKING IS baby. YEAH!!! Look at me typing you guys. You guys didn't believe me. I am typing a storm. Dude I FUCKING just got Streets 1:12! It's not fucking comin' off YES!!! I FUCKING DID IT THAT'S RIGHT! I SKIPPED 1:13 I'M A LEGEND. I AM A FUCKING L E G E N D I'm a FUCKING legend (YES!) I am a fucking legend\");\n\nprint(\"That's RIGHT! You see that CLUTCHNESS I AM FUCKING CCC-LUTCH! Look at this fucking line I take. I'm like, \\\"YEAH baby. Let's fucking DO this. I wait I wait Right when he starts firing to try to back boost me. The double. Body armor. Two quick ones. I already know I'm gettin' there on the perfect line. LOOK AT THE FUCKING PACE Fifty Fourty-nine! mmph- FOURTY-SEVEN BABY!\");\n" +} \ No newline at end of file diff --git a/commands/event-b306be3528b0.json b/commands/event-b306be3528b0.json index 8043b32..e3d4951 100644 --- a/commands/event-b306be3528b0.json +++ b/commands/event-b306be3528b0.json @@ -3,5 +3,5 @@ "locked": true, "starred": true, "name": "event", - "command": "// Auth example;\n//\n// curl -X POST --data-binary '{\"passcode\":\"demo\"}' -H \"Content-Type: application/json\" http://localhost:8888/api/webhook/test\n\n// const tripcode = require('tripcode');\n\n// IRC.listen('webhook.test', event => {\n// const authed = tripcode(event.body.passcode) === IRC.queryConfig('testCode');\n// print(authed ? 'pass' : 'fail');\n// });\n\nIRC.listen('message', event => {\n if (event.message.text.includes(IRC.nick + ':') && event.message.text.endsWith('?')) {\n print('{g}' + IRC.require('r8ball')());\n }\n});\n\nIRC.listen('tick', () => (\n (new Date).toISOString().slice(5,19)\n \t=== '01-01T00:00:00'\n \t&& print('(*⌒∇⌒*) //// 🎉 {rb}happy new year')\n));\n\nconst faces = [ '(◕ᴗ◕✿)', '(◕◡◕✿)', '(◔◡◔✿)', '(。◕‿◕。✿)', '(◡‿◡✿)', '(◠‿◠✿)', '(◕ܫ◕✿)', '(◕▿◕✿)', '(◕ ワ ◕✿)' ];\nIRC.listen('message', ({ message: { from, text } }) => {\n if (text.includes('❤')) {\n print(' '.repeat(text.indexOf('❤')) + ' ⟍' +faces[0|Math.random()*faces.length]);\n }\n});\n\n\nIRC.listen('message', (event) => {\n if (event.target === '#8bitvape'){\n \tif (event.message.text.includes('donk')) print('donk'); \n \telse if (event.message.text.includes('dongers')) print(\"{p}ヽ༼ຈل͜ຈ༽ノ {r}raise your dongers {p}ヽ༼ຈل͜ຈ༽ノ\") \n } \n});\n\nIRC.listen('message', (event) => {\n if (event.message.from.toLowerCase() === 'lambdacomplex' && /\\begg\\b/.test(event.message.text))\n IRC.require('evilegg');\n});\n\n\nconst daily = () => 25200 === (0|new Date/1000)%86400;\n\nconst hourly = () => 420 === (0|new Date/1000)%3600;\n\nIRC.listen('tick', ({ target }) => {\n if (target === '#rubik' && daily()) {\n IRC.require('comps.new');\n }\n});\n\nIRC.listen('tick', ({ target }) => {\n if (target === '#8bitvape') {\n \tif (daily()) IRC.require('7');\n else if (hourly()) print((s=[...'⁷₇⅐⅞⑦⑺⒎㋆㍟㏦7𝟕𝟟𝟩𝟳𝟽🄈🯷'],s[0|Math.random()*s.length]));\n }\n});\n\nIRC.listen('tick', ({ target }) => {\n if (target === '#eggchan' && hourly()) {\n print('egg');\n }\n});" + "command": "// Auth example;\n//\n// curl -X POST --data-binary '{\"passcode\":\"demo\"}' -H \"Content-Type: application/json\" http://localhost:8888/api/webhook/test\n\n// const tripcode = require('tripcode');\n\n// IRC.listen('webhook.test', event => {\n// const authed = tripcode(event.body.passcode) === IRC.queryConfig('testCode');\n// print(authed ? 'pass' : 'fail');\n// });\n\nIRC.listen('tick', () => (\n (new Date).toISOString().slice(5,19)\n \t=== '01-01T00:00:00'\n \t&& print('(*⌒∇⌒*) //// 🎉 {rb}happy new year')\n));\n\nconst faces = [ '(◕ᴗ◕✿)', '(◕◡◕✿)', '(◔◡◔✿)', '(。◕‿◕。✿)', '(◡‿◡✿)', '(◠‿◠✿)', '(◕ܫ◕✿)', '(◕▿◕✿)', '(◕ ワ ◕✿)' ];\nIRC.listen('message', ({ message: { from, text } }) => {\n if (text.includes('❤')) {\n print(' '.repeat(text.indexOf('❤')) + ' ⟍' +faces[0|Math.random()*faces.length]);\n }\n});\n\n\nIRC.listen('message', (event) => {\n if (event.target === '#8bitvape'){\n \tif (event.message.text.includes('donk')) print('donk'); \n \telse if (event.message.text.includes('dongers')) print(\"{p}ヽ༼ຈل͜ຈ༽ノ {r}raise your dongers {p}ヽ༼ຈل͜ຈ༽ノ\") \n } \n});\n\nIRC.listen('message', (event) => {\n if (event.message.from.toLowerCase() === 'lambdacomplex' && /\\begg\\b/.test(event.message.text))\n IRC.require('evilegg');\n});\n\n\nconst daily = () => 25200 === (0|new Date/1000)%86400;\n\nconst hourly = () => 420 === (0|new Date/1000)%3600;\n\nIRC.listen('tick', ({ target }) => {\n if (target === '#rubik' && daily()) {\n IRC.require('comps.new');\n }\n});\n\nIRC.listen('tick', ({ target }) => {\n if (target === '#8bitvape') {\n \tif (daily()) IRC.require('7');\n else if (hourly()) print((s=[...'⁷₇⅐⅞⑦⑺⒎㋆㍟㏦7𝟕𝟟𝟩𝟳𝟽🄈🯷'],s[0|Math.random()*s.length]));\n }\n});\n\nIRC.listen('tick', ({ target }) => {\n if (target === '#eggchan' && 0 === (0|new Date/1000)%3600) {\n print('egg');\n }\n});" } \ No newline at end of file diff --git a/commands/eventspeak-ad768be3c7ae.json b/commands/eventspeak-ad768be3c7ae.json new file mode 100644 index 0000000..41ac06d --- /dev/null +++ b/commands/eventspeak-ad768be3c7ae.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "event.speak", + "command": "IRC.listen('message', event => {\n if (event.message.text.includes(IRC.nick + ':')) {\n const print = globalThis.print;\n\n fetch('https://github.com/service/https://api.openai.com/v1/completions', {\n method: 'POST',\n headers: {\n \"Content-Type\": \"application/json\",\n \"Authorization\": `Bearer ${IRC.queryConfig('openaiKey')}`,\n },\n body: JSON.stringify({\n model: 'text-davinci-002',\n prompt: event.message.text.replace(`${IRC.nick}:`,''),\n temperature: 0.7,\n max_tokens: 256,\n top_p: 1,\n frequency_penalty: 0,\n presence_penalty: 0\n }),\n }).then(res => res.json())\n .then(out => {\n print(out.choices.map(d=>d.text).join` `.replace(/\\s+/g, ' ').trim().slice(0,400))\n })\n .catch(_err => {print('derp')});\n }\n});\n\n" +} \ No newline at end of file diff --git a/commands/gpt3-ab803cc17718.json b/commands/gpt3-ab803cc17718.json index 53237fc..17093b0 100644 --- a/commands/gpt3-ab803cc17718.json +++ b/commands/gpt3-ab803cc17718.json @@ -3,5 +3,5 @@ "locked": true, "starred": false, "name": "gpt3", - "command": "const out = fetchSync.json('https://api.openai.com/v1/completions', {\n method: 'POST',\n headers: {\n \"Content-Type\": \"application/json\",\n \"Authorization\": `Bearer ${IRC.secret}`,\n },\n body: JSON.stringify({\n model: 'text-davinci-002',\n prompt: input,\n temperature: 0.7,\n max_tokens: 256,\n top_p: 1,\n frequency_penalty: 0,\n presence_penalty: 0\n }),\n});\n\nprint(out.choices.map(d=>d.text).join` `.replace(/\\s+/g, ' ').trim().slice(0,400))" + "command": "const out = fetchSync.json('https://api.openai.com/v1/completions', {\n method: 'POST',\n headers: {\n \"Content-Type\": \"application/json\",\n \"Authorization\": `Bearer ${IRC.secret}`,\n },\n body: JSON.stringify({\n model: 'text-davinci-002',\n prompt: input,\n temperature: 0.7,\n max_tokens: 256,\n top_p: 1,\n frequency_penalty: 0,\n presence_penalty: 0\n }),\n});\n\n//print(IRC.require('module.paste')(JSON.stringify(out,0,4)))\nprint(out.choices.map(d=>d.text).join` _ `.replace(/\\s+/g, ' ').trim().slice(0,400))" } \ No newline at end of file diff --git a/commands/horo-6b966318f8ce.json b/commands/horo-6b966318f8ce.json new file mode 100644 index 0000000..55be2da --- /dev/null +++ b/commands/horo-6b966318f8ce.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "~horo", + "command": "var map = {\n 'aries': 1,\n 'taurus': 2,\n 'gemini': 3,\n 'cancer': 4,\n 'leo': 5,\n 'virgo': 6,\n 'libra': 7,\n 'scorpio': 8,\n 'scorpion': 8,\n 'sagittarius': 9,\n 'capricorn': 10,\n 'aquarius': 11,\n 'pices': 12,\n 'pisces': 12\n}\nvar bols = '♈️♉️♊️♋️♌️♍️♎️♏️♐️♑️♒️';\nvar query = map[input]\nvar res = fetchSync.dom(\"https://www.horoscope.com/us/horoscopes/general/horoscope-general-daily-today.aspx?sign=\" + query).document.querySelector('.main-horoscope > p')\nif(res){\n res=res.textContent;\n\tprint.raw(bols[query-1] + ' ' + res);\n}\nelse {\n print.raw(input + '?');\n}\n" +} \ No newline at end of file diff --git a/commands/sec-94bb779a2433.json b/commands/sec-94bb779a2433.json new file mode 100644 index 0000000..9094ccf --- /dev/null +++ b/commands/sec-94bb779a2433.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "sec", + "command": "print(IRC.secret)" +} \ No newline at end of file diff --git a/commands/speak-6effd709b830.json b/commands/speak-6effd709b830.json index 3c441a9..b3cbd70 100644 --- a/commands/speak-6effd709b830.json +++ b/commands/speak-6effd709b830.json @@ -1,6 +1,6 @@ { "name": "speak", - "command": "const text = IRC.log.random(1+(new Date%2)).map(d => d.message).join` `.split` `;\n\nconst out = fetchSync.json('https://api.openai.com/v1/completions', {\n method: 'POST',\n headers: {\n \"Content-Type\": \"application/json\",\n \"Authorization\": `Bearer ${IRC.secret}`,\n },\n body: JSON.stringify({\n model: 'text-davinci-002',\n prompt: input || text,\n temperature: 0.7,\n max_tokens: 256,\n top_p: 1,\n frequency_penalty: 0,\n presence_penalty: 0\n }),\n});\n\nprint(out.choices.map(d=>d.text).join` `.replace(/\\s+/g, ' ').trim().slice(0,400))", + "command": "const text = IRC.log.get('', 5).filter(d=>d.command=='PRIVMSG').map(d=>d.message).reverse().join` `;\n\nconst out = fetchSync.json('https://api.openai.com/v1/completions', {\n method: 'POST',\n headers: {\n \"Content-Type\": \"application/json\",\n \"Authorization\": `Bearer ${IRC.secret}`,\n },\n body: JSON.stringify({\n model: 'text-davinci-002',\n prompt: text + (input ? ' ' + input : ''),\n temperature: 0.7,\n max_tokens: 256,\n top_p: 1,\n frequency_penalty: 0,\n presence_penalty: 0\n }),\n});\n\nprint(out.choices.map(d=>d.text).join` `.replace(/\\s+/g, ' ').trim().slice(0,400))", "locked": true, "starred": false } \ No newline at end of file diff --git a/commands/uuid-8743ec557761.json b/commands/uuid-8743ec557761.json index 96316ca..6401c39 100644 --- a/commands/uuid-8743ec557761.json +++ b/commands/uuid-8743ec557761.json @@ -1,5 +1,5 @@ { - "locked": false, + "locked": true, "starred": false, "name": "uuid", "command": "this.crypto = {getRandomValues:()=>Uint8Array.from(Array.from({length: 100}, () => 0| Math.random() * 65535))}\n\nconst { v4, v5 } = require('uuid');\n\nprint(input ? v5(input, '1b671a64-40d5-491e-99b0-da01ff1f3341') : v4())" diff --git a/commands/willmegasconedsucceedwiththistask-d800508d4fa7.json b/commands/willmegasconedsucceedwiththistask-d800508d4fa7.json new file mode 100644 index 0000000..01b8ccd --- /dev/null +++ b/commands/willmegasconedsucceedwiththistask-d800508d4fa7.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "willmegasconedsucceedwiththistask", + "command": "print('no')" +} \ No newline at end of file diff --git a/commands/ww-6e1caf7103e0.json b/commands/ww-6e1caf7103e0.json new file mode 100644 index 0000000..973b52c --- /dev/null +++ b/commands/ww-6e1caf7103e0.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "ww?", + "command": "print.raw(\"https://youtu.be/4393v-QDgV4/");" +} \ No newline at end of file diff --git a/irc/evaluate/async-fetch.js b/irc/evaluate/async-fetch.js index 2225c36..1f03fce 100644 --- a/irc/evaluate/async-fetch.js +++ b/irc/evaluate/async-fetch.js @@ -52,7 +52,7 @@ module.exports = function({ context }) { const controller = new AbortController(); const timeout = setTimeout(() => { controller.abort(); - }, 5000); + }, 20000); config.signal = controller.signal; fetch(url, config) From 152943da635af405c180b6b9cd08015a8f6d0d6a Mon Sep 17 00:00:00 2001 From: kirjavascript Date: Wed, 20 Jul 2022 22:40:33 +0200 Subject: [PATCH 41/94] adler32 --- commands/adler32-a023c979cb47.json | 2 +- commands/boris-7e61b2ef6dfd.json | 2 +- commands/horoscope-55d97f599b19.json | 7 +++++++ commands/ww-6e1caf7103e0.json | 2 +- 4 files changed, 10 insertions(+), 3 deletions(-) create mode 100644 commands/horoscope-55d97f599b19.json diff --git a/commands/adler32-a023c979cb47.json b/commands/adler32-a023c979cb47.json index 4622e0a..8cd2935 100644 --- a/commands/adler32-a023c979cb47.json +++ b/commands/adler32-a023c979cb47.json @@ -2,5 +2,5 @@ "locked": false, "starred": false, "name": "adler32", - "command": "log((r=>{var n=1,o=0;for(i=0;i{var n=1,o=0;for(i=0;i c.toUpperCase())\n\nprint(`💫 ${capitalizedSign} for ${o.current_date}: ${o.description}`)" +} \ No newline at end of file diff --git a/commands/ww-6e1caf7103e0.json b/commands/ww-6e1caf7103e0.json index 973b52c..18b8736 100644 --- a/commands/ww-6e1caf7103e0.json +++ b/commands/ww-6e1caf7103e0.json @@ -3,5 +3,5 @@ "locked": false, "starred": false, "name": "ww?", - "command": "print.raw(\"https://youtu.be/4393v-QDgV4/");" + "command": "print.raw(\"Holy Shit! It's Walter Wednesday: https://youtu.be/4393v-QDgV4\");" } \ No newline at end of file From 5dd20fbd52a7f1ad171b9d66569df517bf09f2a1 Mon Sep 17 00:00:00 2001 From: kirjavascript Date: Fri, 22 Jul 2022 22:33:13 +0200 Subject: [PATCH 42/94] fixed charLimit, 4.0.3 --- commands/bytes-e7609d4f99c0.json | 2 +- commands/emoji-073b14e3ed88.json | 2 +- commands/horoscope-55d97f599b19.json | 2 +- irc/evaluate/scripts/print.js | 2 +- package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/commands/bytes-e7609d4f99c0.json b/commands/bytes-e7609d4f99c0.json index 80c3374..528df73 100644 --- a/commands/bytes-e7609d4f99c0.json +++ b/commands/bytes-e7609d4f99c0.json @@ -1,6 +1,6 @@ { "name": "bytes", - "command": "function bytes(input, places = 2) {\n input |= 0\n if (!input) return '0 bytes';\n const sizesShort = ['', 'K', 'M', 'G', 'T', 'P', 'E', 'Z', 'Y'];\n const sizesWrong = ['', 'kilo', 'mega', 'giga', 'tera', 'peta', 'exa', 'zeta', 'yotta'];\n const sizes = ['', 'blabloo', 'borko', 'fooey', 'delta', 'charizard', 'poop', 'hello', 'kek'];\n const LEN = sizes.length;\n let index = Math.floor(Math.log(input) / Math.log(1024));\n let val = input / (1024 ** index);\n let suffix = index < LEN ? sizes[index] : '?';\n return (`${index > 0 ? val.toFixed(places) : val} ${suffix}bytes (where \"${suffix}\" = 1024^${index})`);\n} \nmodule.exports = bytes; \nif (!module.required) {\n\tprint(bytes(eval(input)));\n}", + "command": "function bytes(input, places = 2) {\n input |= 0\n if (!input) return '0 bytes';\n const sizesShort = ['', 'K', 'M', 'G', 'T', 'P', 'E', 'Z', 'Y'];\n const sizesWrong = ['', 'kilo', 'mega', 'giga', 'tera', 'peta', 'exa', 'zeta', 'yotta'];\n const sizes = ['', 'blabloo', 'borko', 'fooey', 'delta', 'charizard', 'poop', 'hello', 'kek'];\n const LEN = sizes.length;\n let index = Math.floor(Math.log(input) / Math.log(1024));\n let val = input / (1024 ** index);\n let suffix = index < LEN ? sizesWrong[index] : '?';\n return (`${index > 0 ? val.toFixed(places) : val} ${suffix}bytes (where \"${suffix}\" = 1024^${index})`);\n} \nmodule.exports = bytes; \nif (!module.required) {\n\tprint(bytes(eval(input)));\n}", "locked": true, "starred": false } \ No newline at end of file diff --git a/commands/emoji-073b14e3ed88.json b/commands/emoji-073b14e3ed88.json index 1d1238b..ebcb5f2 100644 --- a/commands/emoji-073b14e3ed88.json +++ b/commands/emoji-073b14e3ed88.json @@ -1,6 +1,6 @@ { "name": "emoji", - "command": "acquire('node-emoji').then((emoji) => print(emoji.emojify(input))).catch(print.error);", + "command": "print(require('node-emoji').emojify(input))", "locked": true, "starred": true } \ No newline at end of file diff --git a/commands/horoscope-55d97f599b19.json b/commands/horoscope-55d97f599b19.json index 8e1d7dd..c06cb5b 100644 --- a/commands/horoscope-55d97f599b19.json +++ b/commands/horoscope-55d97f599b19.json @@ -3,5 +3,5 @@ "locked": false, "starred": false, "name": "horoscope", - "command": "const signs = `aries, taurus, gemini, cancer, leo, virgo, libra, scorpio, sagittarius, capricorn, aquarius, pisces`.split(/[ ,]+/)\n\nconst arg = IRC.command.input.toLowerCase().trim()\n\nif (!signs.includes(arg)) {\n print(`Valid signs: ${signs.join(' ')}`)\n}\n\nconst o = fetchSync.json(`https://aztro.sameerkumar.website?sign=${arg}`,\n {method: 'POST'})\n\nconst capitalizedSign = arg.replace(/^\\w/, (c) => c.toUpperCase())\n\nprint(`💫 ${capitalizedSign} for ${o.current_date}: ${o.description}`)" + "command": "const { emojify } = require('node-emoji');\n\nconst signs = `aries, taurus, gemini, cancer, leo, virgo, libra, scorpio, sagittarius, capricorn, aquarius, pisces`.split(/[ ,]+/)\n\nconst arg = IRC.command.input.toLowerCase().trim()\n\nif (!signs.includes(arg)) {\n print(`Valid signs: ${signs.join(' ')}`)\n return\n}\n\nconst o = fetchSync.json(`https://aztro.sameerkumar.website?sign=${arg}`,\n {method: 'POST'})\n\nconst capitalizedSign = arg.replace(/^\\w/, (c) => c.toUpperCase())\nconst emojiSign = emojify(`:${arg}:`)\n\nprint(`{c}💫 ${capitalizedSign} ${emojiSign} ${o.current_date}:{/} ${o.description}`)" } \ No newline at end of file diff --git a/irc/evaluate/scripts/print.js b/irc/evaluate/scripts/print.js index cb4bd31..d41b7ec 100644 --- a/irc/evaluate/scripts/print.js +++ b/irc/evaluate/scripts/print.js @@ -65,7 +65,7 @@ function createSend({ } if (charLimit) { - const remaining = lineLimit - charCount; + const remaining = charLimit - charCount; const chars = lines.join('\n').slice(0, remaining); lines = chars.split('\n'); charCount += chars.length; diff --git a/package.json b/package.json index b075a14..ef88a6e 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "version": "4.0.2", + "version": "4.0.3", "engines": { "node": ">=14", "npm": ">=7" From 4dc77abec1628e4ccdd29f79a9a45e5d664fc7c4 Mon Sep 17 00:00:00 2001 From: kirjavascript Date: Thu, 28 Jul 2022 18:31:53 +0200 Subject: [PATCH 43/94] crc32 --- commands/-ae2bbf11f5f6.json | 7 +++++++ commands/crc32-5b51a64e15c8.json | 7 +++++++ commands/j-3afa05593996.json | 2 +- 3 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 commands/-ae2bbf11f5f6.json create mode 100644 commands/crc32-5b51a64e15c8.json diff --git a/commands/-ae2bbf11f5f6.json b/commands/-ae2bbf11f5f6.json new file mode 100644 index 0000000..eaa8f3e --- /dev/null +++ b/commands/-ae2bbf11f5f6.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "🗿", + "command": "print('🗿')" +} \ No newline at end of file diff --git a/commands/crc32-5b51a64e15c8.json b/commands/crc32-5b51a64e15c8.json new file mode 100644 index 0000000..aa5cdae --- /dev/null +++ b/commands/crc32-5b51a64e15c8.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "crc32", + "command": "print(require('crc32')(input))" +} \ No newline at end of file diff --git a/commands/j-3afa05593996.json b/commands/j-3afa05593996.json index 81e0fbc..ad05dec 100644 --- a/commands/j-3afa05593996.json +++ b/commands/j-3afa05593996.json @@ -1,6 +1,6 @@ { "name": "j", - "command": "print(\"j\");", + "command": "print(`{y} +:+\n +#+ \n +#+ \n #+# \n:+: :+: \n:::::::::::`);", "locked": false, "starred": false } \ No newline at end of file From 236b3d447f52b2f0e09c5414cce1087834513740 Mon Sep 17 00:00:00 2001 From: kirjavascript Date: Tue, 23 Aug 2022 20:31:52 +0200 Subject: [PATCH 44/94] command stuff --- commands/burgur-0bbac6a6f7f3.json | 7 +++++++ commands/cbd-1fcd4a10ae83.json | 7 +++++++ commands/cursed-ac683d45a447.json | 7 +++++++ commands/dooF-f83576b800de.json | 7 +++++++ commands/eventfetchURL-798176d44de4.json | 2 +- commands/faggotcat-96a7ae0f7e81.json | 7 +++++++ commands/gpt3-ab803cc17718.json | 2 +- commands/horoscope-55d97f599b19.json | 2 +- commands/loogi-fb56b06af049.json | 7 +++++++ commands/man2-67b0836b00b6.json | 7 +++++++ commands/mario2-db61a8cb5d35.json | 7 +++++++ commands/megasconed-306f26d94ffb.json | 7 +++++++ database/server/worker.js | 6 +++--- 13 files changed, 69 insertions(+), 6 deletions(-) create mode 100644 commands/burgur-0bbac6a6f7f3.json create mode 100644 commands/cbd-1fcd4a10ae83.json create mode 100644 commands/cursed-ac683d45a447.json create mode 100644 commands/dooF-f83576b800de.json create mode 100644 commands/faggotcat-96a7ae0f7e81.json create mode 100644 commands/loogi-fb56b06af049.json create mode 100644 commands/man2-67b0836b00b6.json create mode 100644 commands/mario2-db61a8cb5d35.json create mode 100644 commands/megasconed-306f26d94ffb.json diff --git a/commands/burgur-0bbac6a6f7f3.json b/commands/burgur-0bbac6a6f7f3.json new file mode 100644 index 0000000..0f6a4a0 --- /dev/null +++ b/commands/burgur-0bbac6a6f7f3.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "burgur", + "command": "/*__TEXTCMD__*/print(`https://i.imgur.com/gQGchuc.jpeg`);" +} \ No newline at end of file diff --git a/commands/cbd-1fcd4a10ae83.json b/commands/cbd-1fcd4a10ae83.json new file mode 100644 index 0000000..a8110dd --- /dev/null +++ b/commands/cbd-1fcd4a10ae83.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "cbd", + "command": "/*__TEXTCMD__*/print(`https://pbs.twimg.com/media/Dw0lam1X0AEiQVB?format=jpg&name=large`);" +} \ No newline at end of file diff --git a/commands/cursed-ac683d45a447.json b/commands/cursed-ac683d45a447.json new file mode 100644 index 0000000..92351e2 --- /dev/null +++ b/commands/cursed-ac683d45a447.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "cursed", + "command": "/*__TEXTCMD__*/print(`https://i.imgur.com/pu1N9OC.jpeg`);" +} \ No newline at end of file diff --git a/commands/dooF-f83576b800de.json b/commands/dooF-f83576b800de.json new file mode 100644 index 0000000..654c9a0 --- /dev/null +++ b/commands/dooF-f83576b800de.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "dooF", + "command": "/*__TEXTCMD__*/print(`https://i.imgur.com/9ddoVl4.jpeg`);" +} \ No newline at end of file diff --git a/commands/eventfetchURL-798176d44de4.json b/commands/eventfetchURL-798176d44de4.json index 1612d72..0dda6bf 100644 --- a/commands/eventfetchURL-798176d44de4.json +++ b/commands/eventfetchURL-798176d44de4.json @@ -3,5 +3,5 @@ "locked": true, "starred": true, "name": "event.fetchURL", - "command": "const { document, window } = new (jsdom().JSDOM)('');\nconst anchor = document.createElement('a');\nconst bytes = IRC.require('bytes');\n\nfunction setDOM(page) {\n document.open();\n document.write(page);\n document.close();\n};\n\nfunction domTitle() {\n const metaTitle = document.head.querySelector('meta[name=\"title\"]');\n return metaTitle ? metaTitle.content : document.title;\n}\n\nconst filterWords = /something went wrong|cloudflare|forbidden|not found|access restricted|access denied|your browser|rick roll|never gonna give you up|log in|blocked/i;\n\nfunction hasInfo(url, _title) {\n const title = _title.replace(/\\s+/g, ' ').trim();\n const isFresh = title.split(' ')\n .filter(word => (\n !(new RegExp(word.replace(/[^.a-zA-Z0-9\\u00c0-\\u017e]+/g, ''), 'i')).test(url)\n )).length >= 1;\n return isFresh;\n}\n\nIRC.listen('message', event => {\n if (!IRC.queryConfig('fetchURL', true)) return;\n const { text, from } = event.message;\n const urls = text.match(/(\\b(https?):\\/\\/[-A-Z0-9+&@#\\/%?=~_|!:,.;()]*[-A-Z0-9+&@#\\/%=~_|()])/ig);\n const fromSelf = from === IRC.nick;\n if (!urls || fromSelf || text.startsWith(IRC.trigger) || text.includes('##')) return;\n\n urls.slice(0, 3).forEach(url => {\n handleURL(url, global.print)\n // .catch(print.error);\n });\n});\n\nasync function handleURL(url, print) {\n anchor.setAttribute('href', url);\n if (await customURL(url, print)) return;\n\n const res = await fetch(url, {\n headers: {\n 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',\n 'Accept-Language': 'en-GB,en;q=0.5',\n 'Content-Language': 'en-GB,en;q=0.5',\n 'User-Agent': /youtu\\.?be|google|reddit/.test(url) ? '' : 'Googlebot',\n },\n });\n\n const length = res.headers.get('content-length');\n\n if (length > 5.243e6) {\n const filename = anchor.pathname.split('/').pop();\n print.info(`{dc}${filename}{/} ${bytes(length)} {dgr}${res.headers.get('content-type')}{/}`);\n return;\n }\n\n const page = await res.text();\n setDOM(page);\n\n const title = domTitle();\n\n if (\n title.length \n && title.length < 400 \n && !filterWords.test(title)\n && (IRC.queryConfig('fetchURLAll', false) || hasInfo(url, title))) {\n print.info(title);\n }\n\n}\n\nasync function customURL(url, print) {\n // https://github.com/mendel5/alternative-front-ends\n const { hostname, pathname } = anchor;\n if (hostname.includes('reddit.')) {\n const jsonURL = url.replace(/(\\/?)(\\?.*)?(#.*)?$/, '/.json');\n const json = await(await fetch(jsonURL)).json();\n const data = json?.[0]?.data?.children?.[0]?.data;\n if (data) {\n const info = `{c}${data.subreddit_name_prefixed}{/} {o}▲${data.score}{/} ${data.title}`;\n const url = data?.secure_media?.reddit_video?.fallback_url?.replace('?source=fallback', '') || data.url;\n if (data.selftext) {\n print(`${info} ${String(data.selftext).replace(/\\s+/g, ' ').slice(0, 300)}`);\n return true;\n } else if (url) {\n print(`${info} ${IRC.colors.link(url)}`);\n return true;\n }\n }\n return true; \n }\n if (hostname.includes('youtube.') || hostname === 'youtu.be') {\n try {\n const json = await (await fetch(`https://www.youtube.com/oembed?url=${encodeURI(url)}&format=json`)).json();\n const {\n title, author_name,\n } = json;\n print(`{r}YouTube{/} {c}${author_name}{/} ${title}`);\n return true;\n } catch (e) { }\n // url.match(/(?!v=|v\\/|\\.be\\/|watch\\/)([0-9a-z\\-_]{11})/i);\n }\n if (hostname.includes('github.com')) {\n if (pathname.split('/').length === 3) {\n // it's a repo url\n const {\n description,\n html_url,\n name,\n stargazers_count,\n language,\n license, // { name }\n } = await (\n await fetch(`https://api.github.com/repos${pathname}`)\n ).json();\n\n print(`{gr}${description || name}{/} ${IRC.colors.nick(language, false)} {y}★{/} {bo}${stargazers_count}{/} {dgr}${license ? license.name : ''}{/}`);\n return true;\n }\n }\n \tif (hostname.includes('worldcubeassociation.org')) {\n if (pathname.includes('/persons/')){\n const {\n personal_records,\n person,\n medals\n }\n = await(await fetch(`https://www.worldcubeassociation.org/api/v0/persons/${pathname.split(\"/\")[2]}`)).json();\n // calculate best rank\n\t\t\tlet best_rank = Infinity\n let best_event = \"\"\n // RIP Feet\n delete personal_records[\"mmagic\"]\n delete personal_records[\"magic\"]\n \tdelete personal_records[\"333wf\"]\n \t\tdelete personal_records[\"333mbo\"]\n for (const event in personal_records) {\n if(+personal_records[event][\"single\"][\"world_rank\"] < best_rank){\n best_rank = personal_records[event][\"single\"][\"world_rank\"]\n best_event = event + \" Single\"\n }\n if(personal_records[event][\"average\"] != undefined && +personal_records[event][\"average\"][\"world_rank\"] < best_rank){\n best_rank = personal_records[event][\"average\"][\"world_rank\"]\n best_event = event + \" Average\"\n }\n }\n\n \t\n let output = `{bo}${person[\"name\"]}{/}, Medals: {y}${medals[\"gold\"]}{/} {gr}${medals[\"silver\"]}{/} {o}${medals[\"bronze\"]}{/}, Best Rank {c}${best_rank}{/} in {y}${best_event}`;\n print(output);\n \treturn true;\n }\n if (pathname.includes('/competitions/')){\n const {\n name,\n competitor_limit,\n registration_open,\n registration_close \n } = await (\n await fetch(`https://www.worldcubeassociation.org/api/v0/competitions/${pathname.split('/')[2]}`)\n ).json();\n // Add checks for comps in the past. \n let output = `{bo}${name}{/} (Limit: ${competitor_limit}), Registration: {c}${registration_open.split(\"T\")[0]}{/} - {c}${registration_close.split(\"T\")[0]}{/}`;\n print(output);\n \treturn true;\n }\n return false;\n }\n if (hostname.includes('instagram.')) {\n // https://git.sr.ht/~cadence/bibliogram-docs/tree/master/docs/Instances.md\n const id = pathname.match(/\\/([A-Za-z-0-9]{11})/);\n if (id) {\n const page = await (await fetch(`https://bibliogram.1d4.us/p/${id[1]}`)).text();\n setDOM(page);\n const text = document.querySelector('.structured-text').textContent;\n const name = document.querySelector('.name').textContent;\n const image = document.querySelector('.sized-image');\n\n let output = `{bo}Instagram{/} {c}${name}{/} ${text.replace(/\\s+/g, ' ')}`;\n print(output);\n }\n return true;\n }\n if (hostname.includes('twitter.')) {\n const id = pathname.match(/status\\/(\\d+)/);\n if (id) {\n const page = await (await fetch(`https://nitter.net/_/status/${id[1]}#m`)).text();\n setDOM(page);\n const maintweet = document.querySelector('.main-tweet');\n const name = maintweet.querySelector('.fullname').textContent;\n const user = maintweet.querySelector('.username').textContent;\n const image = maintweet.querySelector('.still-image img');\n //const card = maintweet.querySelector('.card-image img');\n const tweet = maintweet.querySelector('.tweet-content').textContent.replace(/\\s+/g, ' ');\n let output = `{bo}${name}{/} {c}${user}{/} ${tweet}`;\n if (image) {\n output += ' ' + IRC.colors.link(`https://nitter.net${image.getAttribute('src').replace(/%3Fname.+/, '')}`);\n }\n //if (card) {\n //output += ' ' + IRC.colors.link(`https://nitter.net${card.getAttribute('src')}`);\n //}\n print(output);\n return true;\n }\n }\n // image detection AI\n if (['jpg', 'gif', 'jpeg', 'png'].some(d => url.includes(`.${d}`))) {\n const reqUrl = 'https://api.imagga.com/v2/tags?image_url='+encodeURI(url);\n const json = await (await fetch(reqUrl, {\n headers: { Authorization: `Basic ${IRC.queryConfig('imaggaKey')} ` }\n })).json();\n if (json.type === 'error') {\n \tjson.status.text;\n } else {\n const tags = json.result.tags.filter(tag => tag.confidence >= 70);\n \tif (tags.length) {\n \tprint('🖼️ 👀 '+tags.map(tag=>`{g}${tag.tag.en}{/}`).join(', '));\n \t} else if (json.result.tags.length) {\n \t\t//const [tag] = json.result.tags;\n //print(`Image may contain: {o}${tag.tag.en}{/} (${0|tag.confidence}% confidence)`);\n \t}\n }\n\n \treturn true;\n }\n // repaste pastebin\n if (hostname.includes('pastebin.com')) {\n const id = pathname.match(/\\/(\\w+)\\/?$/);\n if (id) {\n const page = await (await fetch(`https://pastebin.com/raw/${id[1]}`)).text();\n print.info(`repasted to ${await IRC.require('module.paste').async(page)}`)\n return true;\n }\n }\n}" + "command": "const { document, window } = new (jsdom().JSDOM)('');\nconst anchor = document.createElement('a');\nconst bytes = IRC.require('bytes');\n\nfunction setDOM(page) {\n document.open();\n document.write(page);\n document.close();\n};\n\nfunction domTitle() {\n const metaTitle = document.head.querySelector('meta[name=\"title\"]');\n return metaTitle ? metaTitle.content : document.title;\n}\n\nconst filterWords = /something went wrong|cloudflare|forbidden|not found|access restricted|access denied|your browser|rick roll|never gonna give you up|log in|blocked|just a moment/i;\n\nfunction hasInfo(url, _title) {\n const title = _title.replace(/\\s+/g, ' ').trim();\n const isFresh = title.split(' ')\n .filter(word => (\n !(new RegExp(word.replace(/[^.a-zA-Z0-9\\u00c0-\\u017e]+/g, ''), 'i')).test(url)\n )).length >= 1;\n return isFresh;\n}\n\nIRC.listen('message', event => {\n if (!IRC.queryConfig('fetchURL', true)) return;\n const { text, from } = event.message;\n const urls = text.match(/(\\b(https?):\\/\\/[-A-Z0-9+&@#\\/%?=~_|!:,.;()]*[-A-Z0-9+&@#\\/%=~_|()])/ig);\n const fromSelf = from === IRC.nick;\n if (!urls || fromSelf || text.startsWith(IRC.trigger) || text.includes('##')) return;\n\n urls.slice(0, 3).forEach(url => {\n handleURL(url, global.print)\n // .catch(print.error);\n });\n});\n\nasync function handleURL(url, print) {\n anchor.setAttribute('href', url);\n if (await customURL(url, print)) return;\n\n const res = await fetch(url, {\n headers: {\n 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',\n 'Accept-Language': 'en-GB,en;q=0.5',\n 'Content-Language': 'en-GB,en;q=0.5',\n 'User-Agent': /youtu\\.?be|google|reddit/.test(url) ? '' : 'Googlebot',\n },\n });\n\n const length = res.headers.get('content-length');\n\n if (length > 5.243e6) {\n const filename = anchor.pathname.split('/').pop();\n print.info(`{dc}${filename}{/} ${bytes(length)} {dgr}${res.headers.get('content-type')}{/}`);\n return;\n }\n\n const page = await res.text();\n setDOM(page);\n\n const title = domTitle();\n\n if (\n title.length \n && title.length < 400 \n && !filterWords.test(title)\n && (IRC.queryConfig('fetchURLAll', false) || hasInfo(url, title))) {\n print.info(title);\n }\n\n}\n\nasync function customURL(url, print) {\n // https://github.com/mendel5/alternative-front-ends\n const { hostname, pathname } = anchor;\n if (hostname.includes('reddit.')) {\n const jsonURL = url.replace(/(\\/?)(\\?.*)?(#.*)?$/, '/.json');\n const json = await(await fetch(jsonURL)).json();\n const data = json?.[0]?.data?.children?.[0]?.data;\n if (data) {\n const info = `{c}${data.subreddit_name_prefixed}{/} {o}▲${data.score}{/} ${data.title}`;\n const url = data?.secure_media?.reddit_video?.fallback_url?.replace('?source=fallback', '') || data.url;\n if (data.selftext) {\n print(`${info} ${String(data.selftext).replace(/\\s+/g, ' ').slice(0, 300)}`);\n return true;\n } else if (url) {\n print(`${info} ${IRC.colors.link(url)}`);\n return true;\n }\n }\n return true; \n }\n if (hostname.includes('youtube.') || hostname === 'youtu.be') {\n try {\n const json = await (await fetch(`https://www.youtube.com/oembed?url=${encodeURI(url)}&format=json`)).json();\n const {\n title, author_name,\n } = json;\n print(`{r}YouTube{/} {c}${author_name}{/} ${title}`);\n return true;\n } catch (e) { }\n // url.match(/(?!v=|v\\/|\\.be\\/|watch\\/)([0-9a-z\\-_]{11})/i);\n }\n if (hostname.includes('github.com')) {\n if (pathname.split('/').length === 3) {\n // it's a repo url\n const {\n description,\n html_url,\n name,\n stargazers_count,\n language,\n license, // { name }\n } = await (\n await fetch(`https://api.github.com/repos${pathname}`)\n ).json();\n\n print(`{gr}${description || name}{/} ${IRC.colors.nick(language, false)} {y}★{/} {bo}${stargazers_count}{/} {dgr}${license ? license.name : ''}{/}`);\n return true;\n }\n }\n \tif (hostname.includes('worldcubeassociation.org')) {\n if (pathname.includes('/persons/')){\n const {\n personal_records,\n person,\n medals\n }\n = await(await fetch(`https://www.worldcubeassociation.org/api/v0/persons/${pathname.split(\"/\")[2]}`)).json();\n // calculate best rank\n\t\t\tlet best_rank = Infinity\n let best_event = \"\"\n // RIP Feet\n delete personal_records[\"mmagic\"]\n delete personal_records[\"magic\"]\n \tdelete personal_records[\"333wf\"]\n \t\tdelete personal_records[\"333mbo\"]\n for (const event in personal_records) {\n if(+personal_records[event][\"single\"][\"world_rank\"] < best_rank){\n best_rank = personal_records[event][\"single\"][\"world_rank\"]\n best_event = event + \" Single\"\n }\n if(personal_records[event][\"average\"] != undefined && +personal_records[event][\"average\"][\"world_rank\"] < best_rank){\n best_rank = personal_records[event][\"average\"][\"world_rank\"]\n best_event = event + \" Average\"\n }\n }\n\n \t\n let output = `{bo}${person[\"name\"]}{/}, Medals: {y}${medals[\"gold\"]}{/} {gr}${medals[\"silver\"]}{/} {o}${medals[\"bronze\"]}{/}, Best Rank {c}${best_rank}{/} in {y}${best_event}`;\n print(output);\n \treturn true;\n }\n if (pathname.includes('/competitions/')){\n const {\n name,\n competitor_limit,\n registration_open,\n registration_close \n } = await (\n await fetch(`https://www.worldcubeassociation.org/api/v0/competitions/${pathname.split('/')[2]}`)\n ).json();\n // Add checks for comps in the past. \n let output = `{bo}${name}{/} (Limit: ${competitor_limit}), Registration: {c}${registration_open.split(\"T\")[0]}{/} - {c}${registration_close.split(\"T\")[0]}{/}`;\n print(output);\n \treturn true;\n }\n return false;\n }\n if (hostname.includes('instagram.')) {\n // https://git.sr.ht/~cadence/bibliogram-docs/tree/master/docs/Instances.md\n const id = pathname.match(/\\/([A-Za-z-0-9]{11})/);\n if (id) {\n const page = await (await fetch(`https://bibliogram.1d4.us/p/${id[1]}`)).text();\n setDOM(page);\n const text = document.querySelector('.structured-text').textContent;\n const name = document.querySelector('.name').textContent;\n const image = document.querySelector('.sized-image');\n\n let output = `{bo}Instagram{/} {c}${name}{/} ${text.replace(/\\s+/g, ' ')}`;\n print(output);\n }\n return true;\n }\n if (hostname.includes('twitter.')) {\n const id = pathname.match(/status\\/(\\d+)/);\n if (id) {\n const page = await (await fetch(`https://nitter.net/_/status/${id[1]}#m`)).text();\n setDOM(page);\n const maintweet = document.querySelector('.main-tweet');\n const name = maintweet.querySelector('.fullname').textContent;\n const user = maintweet.querySelector('.username').textContent;\n const image = maintweet.querySelector('.still-image img');\n //const card = maintweet.querySelector('.card-image img');\n const tweet = maintweet.querySelector('.tweet-content').textContent.replace(/\\s+/g, ' ');\n let output = `{bo}${name}{/} {c}${user}{/} ${tweet}`;\n if (image) {\n output += ' ' + IRC.colors.link(`https://nitter.net${image.getAttribute('src').replace(/%3Fname.+/, '')}`);\n }\n //if (card) {\n //output += ' ' + IRC.colors.link(`https://nitter.net${card.getAttribute('src')}`);\n //}\n print(output);\n return true;\n }\n }\n // image detection AI\n if (['jpg', 'gif', 'jpeg', 'png'].some(d => url.includes(`.${d}`))) {\n const reqUrl = 'https://api.imagga.com/v2/tags?image_url='+encodeURI(url);\n const json = await (await fetch(reqUrl, {\n headers: { Authorization: `Basic ${IRC.queryConfig('imaggaKey')} ` }\n })).json();\n if (json.type === 'error') {\n \tjson.status.text;\n } else {\n const tags = json.result.tags.filter(tag => tag.confidence >= 70);\n \tif (tags.length) {\n \tprint('🖼️ 👀 '+tags.map(tag=>`{g}${tag.tag.en}{/}`).join(', '));\n \t} else if (json.result.tags.length) {\n \t\t//const [tag] = json.result.tags;\n //print(`Image may contain: {o}${tag.tag.en}{/} (${0|tag.confidence}% confidence)`);\n \t}\n }\n\n \treturn true;\n }\n // repaste pastebin\n if (hostname.includes('pastebin.com')) {\n const id = pathname.match(/\\/(\\w+)\\/?$/);\n if (id) {\n const page = await (await fetch(`https://pastebin.com/raw/${id[1]}`)).text();\n print.info(`repasted to ${await IRC.require('module.paste').async(page)}`)\n return true;\n }\n }\n}" } \ No newline at end of file diff --git a/commands/faggotcat-96a7ae0f7e81.json b/commands/faggotcat-96a7ae0f7e81.json new file mode 100644 index 0000000..bbc9765 --- /dev/null +++ b/commands/faggotcat-96a7ae0f7e81.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "faggotcat", + "command": "/*__TEXTCMD__*/print(`https://wompampsupport.azureedge.net/fetchimage?siteId=7575&v=2&jpgQuality=100&width=700&url=https%3A%2F%2Fi.kym-cdn.com%2Fphotos%2Fimages%2Fnewsfeed%2F000%2F282%2F885%2Fe97.jpg`);" +} \ No newline at end of file diff --git a/commands/gpt3-ab803cc17718.json b/commands/gpt3-ab803cc17718.json index 17093b0..73bed2d 100644 --- a/commands/gpt3-ab803cc17718.json +++ b/commands/gpt3-ab803cc17718.json @@ -3,5 +3,5 @@ "locked": true, "starred": false, "name": "gpt3", - "command": "const out = fetchSync.json('https://api.openai.com/v1/completions', {\n method: 'POST',\n headers: {\n \"Content-Type\": \"application/json\",\n \"Authorization\": `Bearer ${IRC.secret}`,\n },\n body: JSON.stringify({\n model: 'text-davinci-002',\n prompt: input,\n temperature: 0.7,\n max_tokens: 256,\n top_p: 1,\n frequency_penalty: 0,\n presence_penalty: 0\n }),\n});\n\n//print(IRC.require('module.paste')(JSON.stringify(out,0,4)))\nprint(out.choices.map(d=>d.text).join` _ `.replace(/\\s+/g, ' ').trim().slice(0,400))" + "command": "const out = fetchSync.json('https://api.openai.com/v1/completions', {\n method: 'POST',\n headers: {\n \"Content-Type\": \"application/json\",\n \"Authorization\": `Bearer ${IRC.secret}`,\n },\n body: JSON.stringify({\n model: 'text-davinci-002',\n prompt: input,\n temperature: 0.7,\n max_tokens: 256,\n top_p: 1,\n frequency_penalty: 0,\n presence_penalty: 0\n }),\n});\n\n//print(IRC.require('module.paste')(JSON.stringify(out,0,4)))\nif (out.error) {\n \tthrow out.error.message + ` (looks like free tier renews in october D:)`; \n}\nprint(out.choices.map(d=>d.text).join` _ `.replace(/\\s+/g, ' ').trim().slice(0,400))" } \ No newline at end of file diff --git a/commands/horoscope-55d97f599b19.json b/commands/horoscope-55d97f599b19.json index c06cb5b..7fa6991 100644 --- a/commands/horoscope-55d97f599b19.json +++ b/commands/horoscope-55d97f599b19.json @@ -3,5 +3,5 @@ "locked": false, "starred": false, "name": "horoscope", - "command": "const { emojify } = require('node-emoji');\n\nconst signs = `aries, taurus, gemini, cancer, leo, virgo, libra, scorpio, sagittarius, capricorn, aquarius, pisces`.split(/[ ,]+/)\n\nconst arg = IRC.command.input.toLowerCase().trim()\n\nif (!signs.includes(arg)) {\n print(`Valid signs: ${signs.join(' ')}`)\n return\n}\n\nconst o = fetchSync.json(`https://aztro.sameerkumar.website?sign=${arg}`,\n {method: 'POST'})\n\nconst capitalizedSign = arg.replace(/^\\w/, (c) => c.toUpperCase())\nconst emojiSign = emojify(`:${arg}:`)\n\nprint(`{c}💫 ${capitalizedSign} ${emojiSign} ${o.current_date}:{/} ${o.description}`)" + "command": "const { emojify } = require('node-emoji');\n\nconst signs = `aries, taurus, gemini, cancer, leo, virgo, libra, scorpio, sagittarius, capricorn, aquarius, pisces`.split(/[ ,]+/)\n\nconst check_arg = IRC.command.input.toLowerCase().trim()\n\nif (!signs.includes(check_arg)) {\n print(`Valid signs: ${signs.join(' ')}`)\n return\n}\n\n// my work here is done\nconst arg = signs[Math.floor(signs.length * Math.random())]\nconst o = fetchSync.json(`https://aztro.sameerkumar.website?sign=${arg}`,\n {method: 'POST'})\n\nconst capitalizedSign = check_arg.replace(/^\\w/, (c) => c.toUpperCase())\nconst emojiSign = emojify(`:${check_arg}:`)\n\nprint(`{c}💫 ${capitalizedSign} ${emojiSign} ${o.current_date}:{/} ${o.description}`)" } \ No newline at end of file diff --git a/commands/loogi-fb56b06af049.json b/commands/loogi-fb56b06af049.json new file mode 100644 index 0000000..b342f4a --- /dev/null +++ b/commands/loogi-fb56b06af049.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "loogi", + "command": "/*__TEXTCMD__*/print(`https://i.imgur.com/AspIPRR.jpg`);" +} \ No newline at end of file diff --git a/commands/man2-67b0836b00b6.json b/commands/man2-67b0836b00b6.json new file mode 100644 index 0000000..fe6b9a3 --- /dev/null +++ b/commands/man2-67b0836b00b6.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "man2", + "command": "/*__TEXTCMD__*/print(`https://pbs.twimg.com/media/FaCW0qwXkAAOq9q?format=jpg&name=large`);" +} \ No newline at end of file diff --git a/commands/mario2-db61a8cb5d35.json b/commands/mario2-db61a8cb5d35.json new file mode 100644 index 0000000..10727a1 --- /dev/null +++ b/commands/mario2-db61a8cb5d35.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "mario2", + "command": "/*__TEXTCMD__*/print(`https://i.imgur.com/fgRwSus.jpg`);" +} \ No newline at end of file diff --git a/commands/megasconed-306f26d94ffb.json b/commands/megasconed-306f26d94ffb.json new file mode 100644 index 0000000..dde4376 --- /dev/null +++ b/commands/megasconed-306f26d94ffb.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "megasconed", + "command": "/*__TEXTCMD__*/print(`https://i.imgur.com/K4gaZkY.jpeg`);" +} \ No newline at end of file diff --git a/database/server/worker.js b/database/server/worker.js index 78657f9..338b4f9 100644 --- a/database/server/worker.js +++ b/database/server/worker.js @@ -125,7 +125,7 @@ const logMessage = (currentNick, message) => { const logFns = (() => { const randomQuery = db.prepare(` SELECT * FROM log - WHERE command = 'PRIVMSG' AND target = ? + WHERE command = 'PRIVMSG' AND lower(target) = lower(?) ORDER BY RANDOM() LIMIT ? `); const random = (target, qty = 1) => { @@ -133,7 +133,7 @@ const logFns = (() => { }; const getQuery = db.prepare(` SELECT * FROM log - WHERE message LIKE ? AND target = ? + WHERE message LIKE ? AND lower(target) = lower(?) ORDER BY idx DESC LIMIT ? OFFSET ? `); const get = (target, text, limit = 1, offset = 0) => { @@ -156,7 +156,7 @@ const logFns = (() => { }; const regexQuery = db.prepare(` SELECT * FROM log - WHERE message REGEXP ? AND target = ? + WHERE message REGEXP ? AND lower(target) = lower(?) ORDER BY idx DESC LIMIT ? OFFSET ? `); const regex = (target, rgx, limit = 1, offset = 0) => { From f8f256851c78c621f9131dca824e324b88fa151b Mon Sep 17 00:00:00 2001 From: kirjavascript Date: Tue, 6 Sep 2022 17:44:45 +0200 Subject: [PATCH 45/94] image ocr tweak --- commands/eventfetchURL-798176d44de4.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/commands/eventfetchURL-798176d44de4.json b/commands/eventfetchURL-798176d44de4.json index 0dda6bf..d5f7387 100644 --- a/commands/eventfetchURL-798176d44de4.json +++ b/commands/eventfetchURL-798176d44de4.json @@ -3,5 +3,5 @@ "locked": true, "starred": true, "name": "event.fetchURL", - "command": "const { document, window } = new (jsdom().JSDOM)('');\nconst anchor = document.createElement('a');\nconst bytes = IRC.require('bytes');\n\nfunction setDOM(page) {\n document.open();\n document.write(page);\n document.close();\n};\n\nfunction domTitle() {\n const metaTitle = document.head.querySelector('meta[name=\"title\"]');\n return metaTitle ? metaTitle.content : document.title;\n}\n\nconst filterWords = /something went wrong|cloudflare|forbidden|not found|access restricted|access denied|your browser|rick roll|never gonna give you up|log in|blocked|just a moment/i;\n\nfunction hasInfo(url, _title) {\n const title = _title.replace(/\\s+/g, ' ').trim();\n const isFresh = title.split(' ')\n .filter(word => (\n !(new RegExp(word.replace(/[^.a-zA-Z0-9\\u00c0-\\u017e]+/g, ''), 'i')).test(url)\n )).length >= 1;\n return isFresh;\n}\n\nIRC.listen('message', event => {\n if (!IRC.queryConfig('fetchURL', true)) return;\n const { text, from } = event.message;\n const urls = text.match(/(\\b(https?):\\/\\/[-A-Z0-9+&@#\\/%?=~_|!:,.;()]*[-A-Z0-9+&@#\\/%=~_|()])/ig);\n const fromSelf = from === IRC.nick;\n if (!urls || fromSelf || text.startsWith(IRC.trigger) || text.includes('##')) return;\n\n urls.slice(0, 3).forEach(url => {\n handleURL(url, global.print)\n // .catch(print.error);\n });\n});\n\nasync function handleURL(url, print) {\n anchor.setAttribute('href', url);\n if (await customURL(url, print)) return;\n\n const res = await fetch(url, {\n headers: {\n 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',\n 'Accept-Language': 'en-GB,en;q=0.5',\n 'Content-Language': 'en-GB,en;q=0.5',\n 'User-Agent': /youtu\\.?be|google|reddit/.test(url) ? '' : 'Googlebot',\n },\n });\n\n const length = res.headers.get('content-length');\n\n if (length > 5.243e6) {\n const filename = anchor.pathname.split('/').pop();\n print.info(`{dc}${filename}{/} ${bytes(length)} {dgr}${res.headers.get('content-type')}{/}`);\n return;\n }\n\n const page = await res.text();\n setDOM(page);\n\n const title = domTitle();\n\n if (\n title.length \n && title.length < 400 \n && !filterWords.test(title)\n && (IRC.queryConfig('fetchURLAll', false) || hasInfo(url, title))) {\n print.info(title);\n }\n\n}\n\nasync function customURL(url, print) {\n // https://github.com/mendel5/alternative-front-ends\n const { hostname, pathname } = anchor;\n if (hostname.includes('reddit.')) {\n const jsonURL = url.replace(/(\\/?)(\\?.*)?(#.*)?$/, '/.json');\n const json = await(await fetch(jsonURL)).json();\n const data = json?.[0]?.data?.children?.[0]?.data;\n if (data) {\n const info = `{c}${data.subreddit_name_prefixed}{/} {o}▲${data.score}{/} ${data.title}`;\n const url = data?.secure_media?.reddit_video?.fallback_url?.replace('?source=fallback', '') || data.url;\n if (data.selftext) {\n print(`${info} ${String(data.selftext).replace(/\\s+/g, ' ').slice(0, 300)}`);\n return true;\n } else if (url) {\n print(`${info} ${IRC.colors.link(url)}`);\n return true;\n }\n }\n return true; \n }\n if (hostname.includes('youtube.') || hostname === 'youtu.be') {\n try {\n const json = await (await fetch(`https://www.youtube.com/oembed?url=${encodeURI(url)}&format=json`)).json();\n const {\n title, author_name,\n } = json;\n print(`{r}YouTube{/} {c}${author_name}{/} ${title}`);\n return true;\n } catch (e) { }\n // url.match(/(?!v=|v\\/|\\.be\\/|watch\\/)([0-9a-z\\-_]{11})/i);\n }\n if (hostname.includes('github.com')) {\n if (pathname.split('/').length === 3) {\n // it's a repo url\n const {\n description,\n html_url,\n name,\n stargazers_count,\n language,\n license, // { name }\n } = await (\n await fetch(`https://api.github.com/repos${pathname}`)\n ).json();\n\n print(`{gr}${description || name}{/} ${IRC.colors.nick(language, false)} {y}★{/} {bo}${stargazers_count}{/} {dgr}${license ? license.name : ''}{/}`);\n return true;\n }\n }\n \tif (hostname.includes('worldcubeassociation.org')) {\n if (pathname.includes('/persons/')){\n const {\n personal_records,\n person,\n medals\n }\n = await(await fetch(`https://www.worldcubeassociation.org/api/v0/persons/${pathname.split(\"/\")[2]}`)).json();\n // calculate best rank\n\t\t\tlet best_rank = Infinity\n let best_event = \"\"\n // RIP Feet\n delete personal_records[\"mmagic\"]\n delete personal_records[\"magic\"]\n \tdelete personal_records[\"333wf\"]\n \t\tdelete personal_records[\"333mbo\"]\n for (const event in personal_records) {\n if(+personal_records[event][\"single\"][\"world_rank\"] < best_rank){\n best_rank = personal_records[event][\"single\"][\"world_rank\"]\n best_event = event + \" Single\"\n }\n if(personal_records[event][\"average\"] != undefined && +personal_records[event][\"average\"][\"world_rank\"] < best_rank){\n best_rank = personal_records[event][\"average\"][\"world_rank\"]\n best_event = event + \" Average\"\n }\n }\n\n \t\n let output = `{bo}${person[\"name\"]}{/}, Medals: {y}${medals[\"gold\"]}{/} {gr}${medals[\"silver\"]}{/} {o}${medals[\"bronze\"]}{/}, Best Rank {c}${best_rank}{/} in {y}${best_event}`;\n print(output);\n \treturn true;\n }\n if (pathname.includes('/competitions/')){\n const {\n name,\n competitor_limit,\n registration_open,\n registration_close \n } = await (\n await fetch(`https://www.worldcubeassociation.org/api/v0/competitions/${pathname.split('/')[2]}`)\n ).json();\n // Add checks for comps in the past. \n let output = `{bo}${name}{/} (Limit: ${competitor_limit}), Registration: {c}${registration_open.split(\"T\")[0]}{/} - {c}${registration_close.split(\"T\")[0]}{/}`;\n print(output);\n \treturn true;\n }\n return false;\n }\n if (hostname.includes('instagram.')) {\n // https://git.sr.ht/~cadence/bibliogram-docs/tree/master/docs/Instances.md\n const id = pathname.match(/\\/([A-Za-z-0-9]{11})/);\n if (id) {\n const page = await (await fetch(`https://bibliogram.1d4.us/p/${id[1]}`)).text();\n setDOM(page);\n const text = document.querySelector('.structured-text').textContent;\n const name = document.querySelector('.name').textContent;\n const image = document.querySelector('.sized-image');\n\n let output = `{bo}Instagram{/} {c}${name}{/} ${text.replace(/\\s+/g, ' ')}`;\n print(output);\n }\n return true;\n }\n if (hostname.includes('twitter.')) {\n const id = pathname.match(/status\\/(\\d+)/);\n if (id) {\n const page = await (await fetch(`https://nitter.net/_/status/${id[1]}#m`)).text();\n setDOM(page);\n const maintweet = document.querySelector('.main-tweet');\n const name = maintweet.querySelector('.fullname').textContent;\n const user = maintweet.querySelector('.username').textContent;\n const image = maintweet.querySelector('.still-image img');\n //const card = maintweet.querySelector('.card-image img');\n const tweet = maintweet.querySelector('.tweet-content').textContent.replace(/\\s+/g, ' ');\n let output = `{bo}${name}{/} {c}${user}{/} ${tweet}`;\n if (image) {\n output += ' ' + IRC.colors.link(`https://nitter.net${image.getAttribute('src').replace(/%3Fname.+/, '')}`);\n }\n //if (card) {\n //output += ' ' + IRC.colors.link(`https://nitter.net${card.getAttribute('src')}`);\n //}\n print(output);\n return true;\n }\n }\n // image detection AI\n if (['jpg', 'gif', 'jpeg', 'png'].some(d => url.includes(`.${d}`))) {\n const reqUrl = 'https://api.imagga.com/v2/tags?image_url='+encodeURI(url);\n const json = await (await fetch(reqUrl, {\n headers: { Authorization: `Basic ${IRC.queryConfig('imaggaKey')} ` }\n })).json();\n if (json.type === 'error') {\n \tjson.status.text;\n } else {\n const tags = json.result.tags.filter(tag => tag.confidence >= 70);\n \tif (tags.length) {\n \tprint('🖼️ 👀 '+tags.map(tag=>`{g}${tag.tag.en}{/}`).join(', '));\n \t} else if (json.result.tags.length) {\n \t\t//const [tag] = json.result.tags;\n //print(`Image may contain: {o}${tag.tag.en}{/} (${0|tag.confidence}% confidence)`);\n \t}\n }\n\n \treturn true;\n }\n // repaste pastebin\n if (hostname.includes('pastebin.com')) {\n const id = pathname.match(/\\/(\\w+)\\/?$/);\n if (id) {\n const page = await (await fetch(`https://pastebin.com/raw/${id[1]}`)).text();\n print.info(`repasted to ${await IRC.require('module.paste').async(page)}`)\n return true;\n }\n }\n}" + "command": "const { document, window } = new (jsdom().JSDOM)('');\nconst anchor = document.createElement('a');\nconst bytes = IRC.require('bytes');\n\nfunction setDOM(page) {\n document.open();\n document.write(page);\n document.close();\n};\n\nfunction domTitle() {\n const metaTitle = document.head.querySelector('meta[name=\"title\"]');\n return metaTitle ? metaTitle.content : document.title;\n}\n\nconst filterWords = /something went wrong|cloudflare|forbidden|not found|access restricted|access denied|your browser|rick roll|never gonna give you up|log in|blocked|just a moment/i;\n\nfunction hasInfo(url, _title) {\n const title = _title.replace(/\\s+/g, ' ').trim();\n const isFresh = title.split(' ')\n .filter(word => (\n !(new RegExp(word.replace(/[^.a-zA-Z0-9\\u00c0-\\u017e]+/g, ''), 'i')).test(url)\n )).length >= 1;\n return isFresh;\n}\n\nIRC.listen('message', event => {\n if (!IRC.queryConfig('fetchURL', true)) return;\n const { text, from } = event.message;\n const urls = text.match(/(\\b(https?):\\/\\/[-A-Z0-9+&@#\\/%?=~_|!:,.;()]*[-A-Z0-9+&@#\\/%=~_|()])/ig);\n const fromSelf = from === IRC.nick;\n if (!urls || fromSelf || text.startsWith(IRC.trigger) || text.includes('##')) return;\n\n urls.slice(0, 3).forEach(url => {\n handleURL(url, global.print)\n .catch(print.error);\n });\n});\n\nasync function handleURL(url, print) {\n anchor.setAttribute('href', url);\n if (await customURL(url, print)) return;\n\n const res = await fetch(url, {\n headers: {\n 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',\n 'Accept-Language': 'en-GB,en;q=0.5',\n 'Content-Language': 'en-GB,en;q=0.5',\n 'User-Agent': /youtu\\.?be|google|reddit/.test(url) ? '' : 'Googlebot',\n },\n });\n\n const length = res.headers.get('content-length');\n\n if (length > 5.243e6) {\n const filename = anchor.pathname.split('/').pop();\n print.info(`{dc}${filename}{/} ${bytes(length)} {dgr}${res.headers.get('content-type')}{/}`);\n return;\n }\n\n const page = await res.text();\n setDOM(page);\n\n const title = domTitle();\n\n if (\n title.length \n && title.length < 400 \n && !filterWords.test(title)\n && (IRC.queryConfig('fetchURLAll', false) || hasInfo(url, title))) {\n print.info(title);\n }\n\n}\n\nasync function customURL(url, print) {\n // https://github.com/mendel5/alternative-front-ends\n const { hostname, pathname } = anchor;\n if (hostname.includes('reddit.')) {\n const jsonURL = url.replace(/(\\/?)(\\?.*)?(#.*)?$/, '/.json');\n const json = await(await fetch(jsonURL)).json();\n const data = json?.[0]?.data?.children?.[0]?.data;\n if (data) {\n const info = `{c}${data.subreddit_name_prefixed}{/} {o}▲${data.score}{/} ${data.title}`;\n const url = data?.secure_media?.reddit_video?.fallback_url?.replace('?source=fallback', '') || data.url;\n if (data.selftext) {\n print(`${info} ${String(data.selftext).replace(/\\s+/g, ' ').slice(0, 300)}`);\n return true;\n } else if (url) {\n print(`${info} ${IRC.colors.link(url)}`);\n return true;\n }\n }\n return true; \n }\n if (hostname.includes('youtube.') || hostname === 'youtu.be') {\n try {\n const json = await (await fetch(`https://www.youtube.com/oembed?url=${encodeURI(url)}&format=json`)).json();\n const {\n title, author_name,\n } = json;\n print(`{r}YouTube{/} {c}${author_name}{/} ${title}`);\n return true;\n } catch (e) { }\n // url.match(/(?!v=|v\\/|\\.be\\/|watch\\/)([0-9a-z\\-_]{11})/i);\n }\n if (hostname.includes('github.com')) {\n if (pathname.split('/').length === 3) {\n // it's a repo url\n const {\n description,\n html_url,\n name,\n stargazers_count,\n language,\n license, // { name }\n } = await (\n await fetch(`https://api.github.com/repos${pathname}`)\n ).json();\n\n print(`{gr}${description || name}{/} ${language ? IRC.colors.nick(language, false) : ''} {y}★{/} {bo}${stargazers_count}{/} {dgr}${license ? license.name : ''}{/}`);\n return true;\n }\n }\n \tif (hostname.includes('worldcubeassociation.org')) {\n if (pathname.includes('/persons/')){\n const {\n personal_records,\n person,\n medals\n }\n = await(await fetch(`https://www.worldcubeassociation.org/api/v0/persons/${pathname.split(\"/\")[2]}`)).json();\n // calculate best rank\n\t\t\tlet best_rank = Infinity\n let best_event = \"\"\n // RIP Feet\n delete personal_records[\"mmagic\"]\n delete personal_records[\"magic\"]\n \tdelete personal_records[\"333wf\"]\n \t\tdelete personal_records[\"333mbo\"]\n for (const event in personal_records) {\n if(+personal_records[event][\"single\"][\"world_rank\"] < best_rank){\n best_rank = personal_records[event][\"single\"][\"world_rank\"]\n best_event = event + \" Single\"\n }\n if(personal_records[event][\"average\"] != undefined && +personal_records[event][\"average\"][\"world_rank\"] < best_rank){\n best_rank = personal_records[event][\"average\"][\"world_rank\"]\n best_event = event + \" Average\"\n }\n }\n\n \t\n let output = `{bo}${person[\"name\"]}{/}, Medals: {y}${medals[\"gold\"]}{/} {gr}${medals[\"silver\"]}{/} {o}${medals[\"bronze\"]}{/}, Best Rank {c}${best_rank}{/} in {y}${best_event}`;\n print(output);\n \treturn true;\n }\n if (pathname.includes('/competitions/')){\n const {\n name,\n competitor_limit,\n registration_open,\n registration_close \n } = await (\n await fetch(`https://www.worldcubeassociation.org/api/v0/competitions/${pathname.split('/')[2]}`)\n ).json();\n // Add checks for comps in the past. \n let output = `{bo}${name}{/} (Limit: ${competitor_limit}), Registration: {c}${registration_open.split(\"T\")[0]}{/} - {c}${registration_close.split(\"T\")[0]}{/}`;\n print(output);\n \treturn true;\n }\n return false;\n }\n if (hostname.includes('instagram.')) {\n // https://git.sr.ht/~cadence/bibliogram-docs/tree/master/docs/Instances.md\n const id = pathname.match(/\\/([A-Za-z-0-9]{11})/);\n if (id) {\n const page = await (await fetch(`https://bibliogram.1d4.us/p/${id[1]}`)).text();\n setDOM(page);\n const text = document.querySelector('.structured-text').textContent;\n const name = document.querySelector('.name').textContent;\n const image = document.querySelector('.sized-image');\n\n let output = `{bo}Instagram{/} {c}${name}{/} ${text.replace(/\\s+/g, ' ')}`;\n print(output);\n }\n return true;\n }\n if (hostname.includes('twitter.')) {\n const id = pathname.match(/status\\/(\\d+)/);\n if (id) {\n const page = await (await fetch(`https://nitter.net/_/status/${id[1]}#m`)).text();\n setDOM(page);\n const maintweet = document.querySelector('.main-tweet');\n const name = maintweet.querySelector('.fullname').textContent;\n const user = maintweet.querySelector('.username').textContent;\n const image = maintweet.querySelector('.still-image img');\n //const card = maintweet.querySelector('.card-image img');\n const tweet = maintweet.querySelector('.tweet-content').textContent.replace(/\\s+/g, ' ');\n let output = `{bo}${name}{/} {c}${user}{/} ${tweet}`;\n if (image) {\n output += ' ' + IRC.colors.link(`https://nitter.net${image.getAttribute('src').replace(/%3Fname.+/, '')}`);\n }\n //if (card) {\n //output += ' ' + IRC.colors.link(`https://nitter.net${card.getAttribute('src')}`);\n //}\n print(output);\n return true;\n }\n }\n // image detection AI\n if (['jpg', 'gif', 'jpeg', 'png'].some(d => url.includes(`.${d}`))) {\n const reqUrl = 'https://api.imagga.com/v2/tags?image_url='+encodeURI(url);\n const json = await (await fetch(reqUrl, {\n headers: { Authorization: `Basic ${IRC.queryConfig('imaggaKey')} ` }\n })).json();\n if (json.type === 'error') {\n \tjson.status.text;\n } else if (json.result.tags) {\n const tags = json.result.tags.filter(tag => tag.confidence >= 70);\n \tif (tags.length) {\n \tprint('🖼️ 👀 '+tags.map(tag=>`{g}${tag.tag.en}{/}`).join(', '));\n \t} else if (json.result.tags.length) {\n \t\t//const [tag] = json.result.tags;\n //print(`Image may contain: {o}${tag.tag.en}{/} (${0|tag.confidence}% confidence)`);\n \t}\n }\n\n \treturn true;\n }\n // repaste pastebin\n if (hostname.includes('pastebin.com')) {\n const id = pathname.match(/\\/(\\w+)\\/?$/);\n if (id) {\n const page = await (await fetch(`https://pastebin.com/raw/${id[1]}`)).text();\n print.info(`repasted to ${await IRC.require('module.paste').async(page)}`)\n return true;\n }\n }\n}" } \ No newline at end of file From f474e9a68d0199da37ba3bb835530f520df29c11 Mon Sep 17 00:00:00 2001 From: kirjavascript Date: Wed, 28 Sep 2022 00:21:27 +0200 Subject: [PATCH 46/94] ~lastcommit --- commands/aisa-f23d95694ae7.json | 7 +++++++ commands/baldly-5f4a7ed8880a.json | 7 +++++++ commands/barfsucks-913cbed6ac55.json | 7 +++++++ commands/boris-7e61b2ef6dfd.json | 2 +- commands/dayssincengatedied-3b68aec11651.json | 7 +++++++ commands/drug-8e550253454a.json | 2 +- commands/dweet-236fd3a138c5.json | 7 +++++++ commands/election-a3216c5cfa06.json | 7 +++++++ commands/eventfetchURL-798176d44de4.json | 2 +- commands/lastcommit-596ea122a414.json | 7 +++++++ commands/nisa-8b16d0a32869.json | 7 +++++++ commands/nisn-3a8d3734f52a.json | 7 +++++++ commands/plop-918d60fc4213.json | 7 +++++++ commands/shutfuck-fe8574ee5e37.json | 7 +++++++ commands/truss-5c65bc937a47.json | 7 +++++++ commands/womanmoment-1155bec6268b.json | 7 +++++++ 16 files changed, 94 insertions(+), 3 deletions(-) create mode 100644 commands/aisa-f23d95694ae7.json create mode 100644 commands/baldly-5f4a7ed8880a.json create mode 100644 commands/barfsucks-913cbed6ac55.json create mode 100644 commands/dayssincengatedied-3b68aec11651.json create mode 100644 commands/dweet-236fd3a138c5.json create mode 100644 commands/election-a3216c5cfa06.json create mode 100644 commands/lastcommit-596ea122a414.json create mode 100644 commands/nisa-8b16d0a32869.json create mode 100644 commands/nisn-3a8d3734f52a.json create mode 100644 commands/plop-918d60fc4213.json create mode 100644 commands/shutfuck-fe8574ee5e37.json create mode 100644 commands/truss-5c65bc937a47.json create mode 100644 commands/womanmoment-1155bec6268b.json diff --git a/commands/aisa-f23d95694ae7.json b/commands/aisa-f23d95694ae7.json new file mode 100644 index 0000000..a648b1c --- /dev/null +++ b/commands/aisa-f23d95694ae7.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "aisa", + "command": "print(fetchSync.json(\"https://random-word-form.herokuapp.com/random/adjective/")[0]+\" is \"+fetchSync.json(\"https://random-word-form.herokuapp.com/random/adjective/")[0])" +} \ No newline at end of file diff --git a/commands/baldly-5f4a7ed8880a.json b/commands/baldly-5f4a7ed8880a.json new file mode 100644 index 0000000..7f94d30 --- /dev/null +++ b/commands/baldly-5f4a7ed8880a.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "baldly", + "command": "print(\"https://i.imgur.com/OUNb8n7.png/")" +} \ No newline at end of file diff --git a/commands/barfsucks-913cbed6ac55.json b/commands/barfsucks-913cbed6ac55.json new file mode 100644 index 0000000..77eca11 --- /dev/null +++ b/commands/barfsucks-913cbed6ac55.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "barfsucks", + "command": "let sucks = 'SPIDERS TICKLING YOUR LEGS WHILE IN BED '\nlet ye = true\nwhile (true) {\n if (ye) {\n sucks += 'barf sucks '\n } else {\n sucks += 'CAMERA AHEAD '\n }\n \n print(sucks) \n}" +} \ No newline at end of file diff --git a/commands/boris-7e61b2ef6dfd.json b/commands/boris-7e61b2ef6dfd.json index 4fe47b4..39327be 100644 --- a/commands/boris-7e61b2ef6dfd.json +++ b/commands/boris-7e61b2ef6dfd.json @@ -3,5 +3,5 @@ "locked": false, "starred": false, "name": "boris", - "command": "const imgs = [\n 'https://i.imgur.com/K59P85p.jpeg',\n 'https://i.imgur.com/M7P2I1q.jpeg',\n 'https://i.imgur.com/r3cso8k.jpeg',\n 'https://i.imgur.com/EndbZsH.jpeg',\n 'https://i.imgur.com/igCN6lE.png',\n 'https://i.imgur.com/bizSYPD.jpeg',\n 'https://i.imgur.com/zzDxHVf.jpeg',\n 'https://i.imgur.com/0Gky5w5.jpeg',\n 'https://i.imgur.com/qHKVTWw.jpeg',\n 'https://i.imgur.com/cbuTvjV.jpeg',\n 'https://i.imgur.com/1wTbWwP.jpeg',\n 'https://i.imgur.com/eg9Gmav.jpeg',\n 'https://i.imgur.com/3zFoeTZ.jpeg',\n 'https://i.imgur.com/H7e8AS6.jpeg',\n 'https://i.imgur.com/4lNBJxQ.jpeg',\n 'https://i.imgur.com/ztNj1ww.jpeg',\n 'https://i.imgur.com/ZrtPo71.jpeg',\n 'https://i.imgur.com/3qEsg2h.png',\n 'https://i.imgur.com/aHHXiyj.jpeg',\n 'https://i.imgur.com/SVkcFQS.jpeg',\n 'https://i.imgur.com/ulvuJnn.jpeg',\n 'https://i.imgur.com/DHq7IRZ.jpeg',\n 'https://i.imgur.com/FFVBpgA.jpeg',\n 'https://i.imgur.com/ANa70o7.png',\n 'https://i.imgur.com/QEBWT09.jpeg',\n 'https://i.imgur.com/xWDUvRw.png',\n 'https://i.imgur.com/gGzQjva.jpeg',\n 'https://i.imgur.com/sJdnRBV.jpeg',\n 'https://i.imgur.com/WBRa8oo.jpeg',\n 'https://i.imgur.com/guGCRVc.jpeg',\n 'https://i.imgur.com/4N15bFL.jpeg',\n 'https://i.imgur.com/z8avoY3.png',\n 'https://i.imgur.com/9WrrFsC.jpg',\n 'https://i.imgur.com/tvp9X7Q.jpeg',\n 'https://i.imgur.com/hNt8Yk9.jpeg',\n 'https://i.imgur.com/FZNzUf9.jpeg',\n 'https://i.imgur.com/s0aDlki.jpeg',\n 'https://i.imgur.com/2uCFsYK.jpeg',\n 'https://i.imgur.com/cEbnahY.jpeg',\n 'https://i.imgur.com/7BMdc9z.jpeg',\n 'https://i.imgur.com/lJfy65z.jpeg',\n 'https://i.imgur.com/V5SmkSE.jpeg',\n 'https://i.imgur.com/SuNYFtH.jpeg',\n 'https://i.imgur.com/ExrOhGD.jpeg'\n]\n\nconst quotes = [\n 'Ping-pong was invented on the dining tables of England in the 19th century, and it was called Wiff-waff! And there, I think, you have the difference between us and the rest of the world. Other nations, the French, looked at a dining table and saw an opportunity to have dinner; we looked at it an saw an opportunity to play Wiff-waff.',\n 'We cannot turn our backs on Europe. We are part of Europe.',\n 'If we vote to Leave and take back control, all sorts of opportunities open up. Including doing new free trade deals around the world, restoring Britain\\'s seat on all sorts of international bodies, restoring health to our democracy and belief to our democracy.',\n 'As I write these words there are semi-naked women playing beach volleyball in the middle of the Horse Guards Parade immortalised by Canaletto. They are glistening like wet otters and the water is splashing off the brims of the spectators’ sou’westers',\n 'The Geiger counter of Olympo-mania is going to go zoink! off the scale! People are coming from around the world, and they\\'re seeing us, and they\\'re seeing the greatest country on Earth, aren\\'t they? There are some people who are coming from around the world who don\\'t yet know about all the preparations we\\'ve done to get London ready in the last seven years. I hear there\\'s a guy called Mitt Romney who wants to know whether we\\'re ready. Are we ready?',\n 'We seek cities because there are a greater range of girls at the bar, of reproductive choice. But above all, talented people seek cities for fame. They can’t get famous in the f***ing village.',\n 'It\\'s chicken feed. I don\\'t see why I shouldn\\'t knock off an article... if someone wants to pay me, then that\\'s their lookout.',\n 'Here we are in one of the most depressed downs in southern England, a place that is arguably too full of drugs, obesity, underachievement and Labour MPs.',\n 'I can hardly condemn UKIP as a bunch of boss-eyed, foam-flecked Euro hysterics, when I have been sometimes not far short of boss-eyed, foam-flecked hysteria myself.',\n 'I\\'m a rugby player, really, and I knew I was going to get to him, and when he was about two yards away I just put my head down. There was no malice. I was going for the ball with my head, which I understand is a legitimate move in soccer. ',\n 'It is said that the Queen has come to love the Commonwealth, partly because it supplies her with regular cheering crowds of flag-waving picaninnies; and one can imagine that Blair, twice victor abroad but enmired at home, is similarly seduced by foreign politeness. They say he is shortly off to the Congo. No doubt the AK47s will fall silent, and the pangas will stop their hacking of human flesh, and the tribal warriors will all break out in Watermelon smiles to see the big white chief touch down in his big white British taxpayer-funded bird.',\n 'For 10 years we in the Tory Party have become used to Papua New Guinea-style orgies of cannibalism and chief-killing.',\n 'I think I was once given cocaine but I sneezed so it didn\\'t go up my nose. In fact, it may have been icing sugar.',\n 'Voting Tory will cause your wife to have bigger breasts and increase your chances of owning a BMW M3.',\n 'My realistic chances of becoming Prime Minister are only slightly better than my chances of being decapitated by a frisbee, blinded by a champagne cork, locked in a disused fridge or reincarnated as a olive.',\n 'The President is a cross-eyed Texan warmonger, unelected, inarticulate, who epitomises the arrogance of American foreign policy.',\n 'Unlike the current occupant of the White House, he has no difficulty in orally extemporising a series of grammatical English sentences, each containing a main verb.',\n 'This is going to be a fantastic year for Great Britain',\n 'It is absolutely ridiculous that people should choose to go around looking like letter boxes. I feel fully entitled to expect Muslim women to remove the head covering, especially if they turn up looking like a bank robber',\n 'The best fate for Africa would be if the old colonial powers, or their citizens, scrambled once again in her direction; on the understanding that this time they will not be asked to feel guilty..the problem is not that we were once in charge, but that we are not in charge any more.',\n 'The idea that freedom of movement is a fundamental right of the EU is just bollocks.',\n 'My speaking style was criticised by no less an authority than Arnold Schwarzenegger. It was a low moment, my friends, to have my rhetorical skills denounced by a monosyllabic Austrian cyborg.',\n 'If gay marriage was OK ... then I saw no reason in principle why a union should not be consecrated between three men, as well as two men; or indeed three men and a dog.',\n 'I dont see why people are so snooty about Channel Five. It has some respectable documentaries about the Second World War. It also devotes considerable airtime to investigations into lap-dancing, and other related and vital subjects',\n 'My policy on cake is pro having it and pro eating it.',\n 'London is a fantastic creator of jobs - but many of these jobs are going to people who don\\'t originate in this country.',\n 'He is like some sherry-crazed old dowager who has lost the family silver at roulette, and who now decides to double up by betting the house as well.'\n]\n\nprint(`${imgs[Math.floor(Math.random()*imgs.length)]}`)\nprint(`{i}“${quotes[Math.floor(Math.random()*quotes.length)]}”`)" + "command": "const imgs = [\n 'https://i.imgur.com/K59P85p.jpeg',\n 'https://i.imgur.com/M7P2I1q.jpeg',\n 'https://i.imgur.com/r3cso8k.jpeg',\n 'https://i.imgur.com/EndbZsH.jpeg',\n 'https://i.imgur.com/igCN6lE.png',\n 'https://i.imgur.com/bizSYPD.jpeg',\n 'https://i.imgur.com/zzDxHVf.jpeg',\n 'https://i.imgur.com/0Gky5w5.jpeg',\n 'https://i.imgur.com/qHKVTWw.jpeg',\n 'https://i.imgur.com/cbuTvjV.jpeg',\n 'https://i.imgur.com/1wTbWwP.jpeg',\n 'https://i.imgur.com/eg9Gmav.jpeg',\n 'https://i.imgur.com/3zFoeTZ.jpeg',\n 'https://i.imgur.com/H7e8AS6.jpeg',\n 'https://i.imgur.com/4lNBJxQ.jpeg',\n 'https://i.imgur.com/ztNj1ww.jpeg',\n 'https://i.imgur.com/ZrtPo71.jpeg',\n 'https://i.imgur.com/3qEsg2h.png',\n 'https://i.imgur.com/aHHXiyj.jpeg',\n 'https://i.imgur.com/SVkcFQS.jpeg',\n 'https://i.imgur.com/ulvuJnn.jpeg',\n 'https://i.imgur.com/DHq7IRZ.jpeg',\n 'https://i.imgur.com/FFVBpgA.jpeg',\n 'https://i.imgur.com/ANa70o7.png',\n 'https://i.imgur.com/QEBWT09.jpeg',\n 'https://i.imgur.com/xWDUvRw.png',\n 'https://i.imgur.com/gGzQjva.jpeg',\n 'https://i.imgur.com/sJdnRBV.jpeg',\n 'https://i.imgur.com/WBRa8oo.jpeg',\n 'https://i.imgur.com/guGCRVc.jpeg',\n 'https://i.imgur.com/4N15bFL.jpeg',\n 'https://i.imgur.com/z8avoY3.png',\n 'https://i.imgur.com/9WrrFsC.jpg',\n 'https://i.imgur.com/tvp9X7Q.jpeg',\n 'https://i.imgur.com/hNt8Yk9.jpeg',\n 'https://i.imgur.com/FZNzUf9.jpeg',\n 'https://i.imgur.com/s0aDlki.jpeg',\n 'https://i.imgur.com/2uCFsYK.jpeg',\n 'https://i.imgur.com/cEbnahY.jpeg',\n 'https://i.imgur.com/7BMdc9z.jpeg',\n 'https://i.imgur.com/lJfy65z.jpeg',\n 'https://i.imgur.com/V5SmkSE.jpeg',\n 'https://i.imgur.com/SuNYFtH.jpeg',\n 'https://i.imgur.com/ExrOhGD.jpeg',\n 'https://i.imgur.com/VMwkl5n.png',\n 'https://i.imgur.com/a6xTDc3.png',\n 'https://i.imgur.com/UQZmu33.png'\n]\n\nconst quotes = [\n 'Ping-pong was invented on the dining tables of England in the 19th century, and it was called Wiff-waff! And there, I think, you have the difference between us and the rest of the world. Other nations, the French, looked at a dining table and saw an opportunity to have dinner; we looked at it an saw an opportunity to play Wiff-waff.',\n 'We cannot turn our backs on Europe. We are part of Europe.',\n 'If we vote to Leave and take back control, all sorts of opportunities open up. Including doing new free trade deals around the world, restoring Britain\\'s seat on all sorts of international bodies, restoring health to our democracy and belief to our democracy.',\n 'As I write these words there are semi-naked women playing beach volleyball in the middle of the Horse Guards Parade immortalised by Canaletto. They are glistening like wet otters and the water is splashing off the brims of the spectators’ sou’westers',\n 'The Geiger counter of Olympo-mania is going to go zoink! off the scale! People are coming from around the world, and they\\'re seeing us, and they\\'re seeing the greatest country on Earth, aren\\'t they? There are some people who are coming from around the world who don\\'t yet know about all the preparations we\\'ve done to get London ready in the last seven years. I hear there\\'s a guy called Mitt Romney who wants to know whether we\\'re ready. Are we ready?',\n 'We seek cities because there are a greater range of girls at the bar, of reproductive choice. But above all, talented people seek cities for fame. They can’t get famous in the f***ing village.',\n 'It\\'s chicken feed. I don\\'t see why I shouldn\\'t knock off an article... if someone wants to pay me, then that\\'s their lookout.',\n 'Here we are in one of the most depressed downs in southern England, a place that is arguably too full of drugs, obesity, underachievement and Labour MPs.',\n 'I can hardly condemn UKIP as a bunch of boss-eyed, foam-flecked Euro hysterics, when I have been sometimes not far short of boss-eyed, foam-flecked hysteria myself.',\n 'I\\'m a rugby player, really, and I knew I was going to get to him, and when he was about two yards away I just put my head down. There was no malice. I was going for the ball with my head, which I understand is a legitimate move in soccer. ',\n 'It is said that the Queen has come to love the Commonwealth, partly because it supplies her with regular cheering crowds of flag-waving picaninnies; and one can imagine that Blair, twice victor abroad but enmired at home, is similarly seduced by foreign politeness. They say he is shortly off to the Congo. No doubt the AK47s will fall silent, and the pangas will stop their hacking of human flesh, and the tribal warriors will all break out in Watermelon smiles to see the big white chief touch down in his big white British taxpayer-funded bird.',\n 'For 10 years we in the Tory Party have become used to Papua New Guinea-style orgies of cannibalism and chief-killing.',\n 'I think I was once given cocaine but I sneezed so it didn\\'t go up my nose. In fact, it may have been icing sugar.',\n 'Voting Tory will cause your wife to have bigger breasts and increase your chances of owning a BMW M3.',\n 'My realistic chances of becoming Prime Minister are only slightly better than my chances of being decapitated by a frisbee, blinded by a champagne cork, locked in a disused fridge or reincarnated as a olive.',\n 'The President is a cross-eyed Texan warmonger, unelected, inarticulate, who epitomises the arrogance of American foreign policy.',\n 'Unlike the current occupant of the White House, he has no difficulty in orally extemporising a series of grammatical English sentences, each containing a main verb.',\n 'This is going to be a fantastic year for Great Britain',\n 'It is absolutely ridiculous that people should choose to go around looking like letter boxes. I feel fully entitled to expect Muslim women to remove the head covering, especially if they turn up looking like a bank robber',\n 'The best fate for Africa would be if the old colonial powers, or their citizens, scrambled once again in her direction; on the understanding that this time they will not be asked to feel guilty..the problem is not that we were once in charge, but that we are not in charge any more.',\n 'The idea that freedom of movement is a fundamental right of the EU is just bollocks.',\n 'My speaking style was criticised by no less an authority than Arnold Schwarzenegger. It was a low moment, my friends, to have my rhetorical skills denounced by a monosyllabic Austrian cyborg.',\n 'If gay marriage was OK ... then I saw no reason in principle why a union should not be consecrated between three men, as well as two men; or indeed three men and a dog.',\n 'I dont see why people are so snooty about Channel Five. It has some respectable documentaries about the Second World War. It also devotes considerable airtime to investigations into lap-dancing, and other related and vital subjects',\n 'My policy on cake is pro having it and pro eating it.',\n 'London is a fantastic creator of jobs - but many of these jobs are going to people who don\\'t originate in this country.',\n 'He is like some sherry-crazed old dowager who has lost the family silver at roulette, and who now decides to double up by betting the house as well.'\n]\n\nprint(`${imgs[Math.floor(Math.random()*imgs.length)]}`)\nprint(`{i}“${quotes[Math.floor(Math.random()*quotes.length)]}”`)" } \ No newline at end of file diff --git a/commands/dayssincengatedied-3b68aec11651.json b/commands/dayssincengatedied-3b68aec11651.json new file mode 100644 index 0000000..dc5c31f --- /dev/null +++ b/commands/dayssincengatedied-3b68aec11651.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "dayssincengatedied", + "command": "const dateFns = require('date-fns@1.30.1')\nn=dateFns.differenceInDays(new Date(), new Date('2021-08-14T12:00Z'));\nn=`${n} day${n==1?'':'s'}`\n\nprint(`${n}`)" +} \ No newline at end of file diff --git a/commands/drug-8e550253454a.json b/commands/drug-8e550253454a.json index 9023b28..de05bf1 100644 --- a/commands/drug-8e550253454a.json +++ b/commands/drug-8e550253454a.json @@ -1,6 +1,6 @@ { "name": "drug", - "command": "throw `todo: fixme`\n\ngetJSON(\"http://tripbot.tripsit.me/api/tripsit/getDrug?name=\" + encodeURIComponent(input))\n .then(obj => {\n if (obj.err == null && obj.data) {\n \n var data = obj.data[0];\n \n var resp = '{p}' + data.pretty_name + '{/}';\n \n data.aliases && \" - (\" + data.aliases.map(d => `{dc}${d}{/}`).join(\", \") + \")\";\n \n data.properties.categories && (resp += \" - {o}\" + data.properties.categories.join(\"{/}, {o}\") + \"{/}\")\n \n resp += \"\\n\";\n \n data.properties.dose && (resp += data.properties.dose + \"\\n\");\n \n if (data.properties.onset && data.properties.duration && data.properties[\"after-effects\"]) {\n resp += \"onset: \" + data.properties.onset +\n \"\\nduration: \" + data.properties.duration +\n \" after effects: \" + data.properties[\"after-effects\"] + \"\\n\";\n }\n \n data.properties.summary && (resp += data.properties.summary);\n \n print(resp.trim());\n }\n else {\n print('{r}' + obj.data[0].msg)\n }\n\n })\n .catch(d => print('{r} no data for'+input))", + "command": "//throw `todo: fixme`\n\ngetJSON(\"http://tripbot.tripsit.me/api/tripsit/getDrug?name=\" + encodeURIComponent(input))\n .then(obj => {\n if (obj.err == null && obj.data) {\n \n var data = obj.data[0];\n \n var resp = '{p}' + data.pretty_name + '{/}';\n \n data.aliases && \" - (\" + data.aliases.map(d => `{dc}${d}{/}`).join(\", \") + \")\";\n \n data.properties.categories && (resp += \" - {o}\" + data.properties.categories.join(\"{/}, {o}\") + \"{/}\")\n \n resp += \"\\n\";\n \n data.properties.dose && (resp += data.properties.dose + \"\\n\");\n \n if (data.properties.onset && data.properties.duration && data.properties[\"after-effects\"]) {\n resp += \"onset: \" + data.properties.onset +\n \"\\nduration: \" + data.properties.duration +\n \" after effects: \" + data.properties[\"after-effects\"] + \"\\n\";\n }\n \n data.properties.summary && (resp += data.properties.summary);\n \n print(resp.trim());\n }\n else {\n print('{r}' + obj.data[0].msg)\n }\n\n })\n .catch(d => print('{r} no data for'+input))", "locked": true, "starred": true } \ No newline at end of file diff --git a/commands/dweet-236fd3a138c5.json b/commands/dweet-236fd3a138c5.json new file mode 100644 index 0000000..d647970 --- /dev/null +++ b/commands/dweet-236fd3a138c5.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "dweet", + "command": "const link = fetchSync('https://dweet.net/dweet.php', {method: 'POST', body: JSON.stringify({ link: input })}); print(`https://dweet.net/${link.trim()}`)" +} \ No newline at end of file diff --git a/commands/election-a3216c5cfa06.json b/commands/election-a3216c5cfa06.json new file mode 100644 index 0000000..b4c189c --- /dev/null +++ b/commands/election-a3216c5cfa06.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "election", + "command": "/*__TEXTCMD__*/print(`see ~truss`);" +} \ No newline at end of file diff --git a/commands/eventfetchURL-798176d44de4.json b/commands/eventfetchURL-798176d44de4.json index d5f7387..c49c5a8 100644 --- a/commands/eventfetchURL-798176d44de4.json +++ b/commands/eventfetchURL-798176d44de4.json @@ -3,5 +3,5 @@ "locked": true, "starred": true, "name": "event.fetchURL", - "command": "const { document, window } = new (jsdom().JSDOM)('');\nconst anchor = document.createElement('a');\nconst bytes = IRC.require('bytes');\n\nfunction setDOM(page) {\n document.open();\n document.write(page);\n document.close();\n};\n\nfunction domTitle() {\n const metaTitle = document.head.querySelector('meta[name=\"title\"]');\n return metaTitle ? metaTitle.content : document.title;\n}\n\nconst filterWords = /something went wrong|cloudflare|forbidden|not found|access restricted|access denied|your browser|rick roll|never gonna give you up|log in|blocked|just a moment/i;\n\nfunction hasInfo(url, _title) {\n const title = _title.replace(/\\s+/g, ' ').trim();\n const isFresh = title.split(' ')\n .filter(word => (\n !(new RegExp(word.replace(/[^.a-zA-Z0-9\\u00c0-\\u017e]+/g, ''), 'i')).test(url)\n )).length >= 1;\n return isFresh;\n}\n\nIRC.listen('message', event => {\n if (!IRC.queryConfig('fetchURL', true)) return;\n const { text, from } = event.message;\n const urls = text.match(/(\\b(https?):\\/\\/[-A-Z0-9+&@#\\/%?=~_|!:,.;()]*[-A-Z0-9+&@#\\/%=~_|()])/ig);\n const fromSelf = from === IRC.nick;\n if (!urls || fromSelf || text.startsWith(IRC.trigger) || text.includes('##')) return;\n\n urls.slice(0, 3).forEach(url => {\n handleURL(url, global.print)\n .catch(print.error);\n });\n});\n\nasync function handleURL(url, print) {\n anchor.setAttribute('href', url);\n if (await customURL(url, print)) return;\n\n const res = await fetch(url, {\n headers: {\n 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',\n 'Accept-Language': 'en-GB,en;q=0.5',\n 'Content-Language': 'en-GB,en;q=0.5',\n 'User-Agent': /youtu\\.?be|google|reddit/.test(url) ? '' : 'Googlebot',\n },\n });\n\n const length = res.headers.get('content-length');\n\n if (length > 5.243e6) {\n const filename = anchor.pathname.split('/').pop();\n print.info(`{dc}${filename}{/} ${bytes(length)} {dgr}${res.headers.get('content-type')}{/}`);\n return;\n }\n\n const page = await res.text();\n setDOM(page);\n\n const title = domTitle();\n\n if (\n title.length \n && title.length < 400 \n && !filterWords.test(title)\n && (IRC.queryConfig('fetchURLAll', false) || hasInfo(url, title))) {\n print.info(title);\n }\n\n}\n\nasync function customURL(url, print) {\n // https://github.com/mendel5/alternative-front-ends\n const { hostname, pathname } = anchor;\n if (hostname.includes('reddit.')) {\n const jsonURL = url.replace(/(\\/?)(\\?.*)?(#.*)?$/, '/.json');\n const json = await(await fetch(jsonURL)).json();\n const data = json?.[0]?.data?.children?.[0]?.data;\n if (data) {\n const info = `{c}${data.subreddit_name_prefixed}{/} {o}▲${data.score}{/} ${data.title}`;\n const url = data?.secure_media?.reddit_video?.fallback_url?.replace('?source=fallback', '') || data.url;\n if (data.selftext) {\n print(`${info} ${String(data.selftext).replace(/\\s+/g, ' ').slice(0, 300)}`);\n return true;\n } else if (url) {\n print(`${info} ${IRC.colors.link(url)}`);\n return true;\n }\n }\n return true; \n }\n if (hostname.includes('youtube.') || hostname === 'youtu.be') {\n try {\n const json = await (await fetch(`https://www.youtube.com/oembed?url=${encodeURI(url)}&format=json`)).json();\n const {\n title, author_name,\n } = json;\n print(`{r}YouTube{/} {c}${author_name}{/} ${title}`);\n return true;\n } catch (e) { }\n // url.match(/(?!v=|v\\/|\\.be\\/|watch\\/)([0-9a-z\\-_]{11})/i);\n }\n if (hostname.includes('github.com')) {\n if (pathname.split('/').length === 3) {\n // it's a repo url\n const {\n description,\n html_url,\n name,\n stargazers_count,\n language,\n license, // { name }\n } = await (\n await fetch(`https://api.github.com/repos${pathname}`)\n ).json();\n\n print(`{gr}${description || name}{/} ${language ? IRC.colors.nick(language, false) : ''} {y}★{/} {bo}${stargazers_count}{/} {dgr}${license ? license.name : ''}{/}`);\n return true;\n }\n }\n \tif (hostname.includes('worldcubeassociation.org')) {\n if (pathname.includes('/persons/')){\n const {\n personal_records,\n person,\n medals\n }\n = await(await fetch(`https://www.worldcubeassociation.org/api/v0/persons/${pathname.split(\"/\")[2]}`)).json();\n // calculate best rank\n\t\t\tlet best_rank = Infinity\n let best_event = \"\"\n // RIP Feet\n delete personal_records[\"mmagic\"]\n delete personal_records[\"magic\"]\n \tdelete personal_records[\"333wf\"]\n \t\tdelete personal_records[\"333mbo\"]\n for (const event in personal_records) {\n if(+personal_records[event][\"single\"][\"world_rank\"] < best_rank){\n best_rank = personal_records[event][\"single\"][\"world_rank\"]\n best_event = event + \" Single\"\n }\n if(personal_records[event][\"average\"] != undefined && +personal_records[event][\"average\"][\"world_rank\"] < best_rank){\n best_rank = personal_records[event][\"average\"][\"world_rank\"]\n best_event = event + \" Average\"\n }\n }\n\n \t\n let output = `{bo}${person[\"name\"]}{/}, Medals: {y}${medals[\"gold\"]}{/} {gr}${medals[\"silver\"]}{/} {o}${medals[\"bronze\"]}{/}, Best Rank {c}${best_rank}{/} in {y}${best_event}`;\n print(output);\n \treturn true;\n }\n if (pathname.includes('/competitions/')){\n const {\n name,\n competitor_limit,\n registration_open,\n registration_close \n } = await (\n await fetch(`https://www.worldcubeassociation.org/api/v0/competitions/${pathname.split('/')[2]}`)\n ).json();\n // Add checks for comps in the past. \n let output = `{bo}${name}{/} (Limit: ${competitor_limit}), Registration: {c}${registration_open.split(\"T\")[0]}{/} - {c}${registration_close.split(\"T\")[0]}{/}`;\n print(output);\n \treturn true;\n }\n return false;\n }\n if (hostname.includes('instagram.')) {\n // https://git.sr.ht/~cadence/bibliogram-docs/tree/master/docs/Instances.md\n const id = pathname.match(/\\/([A-Za-z-0-9]{11})/);\n if (id) {\n const page = await (await fetch(`https://bibliogram.1d4.us/p/${id[1]}`)).text();\n setDOM(page);\n const text = document.querySelector('.structured-text').textContent;\n const name = document.querySelector('.name').textContent;\n const image = document.querySelector('.sized-image');\n\n let output = `{bo}Instagram{/} {c}${name}{/} ${text.replace(/\\s+/g, ' ')}`;\n print(output);\n }\n return true;\n }\n if (hostname.includes('twitter.')) {\n const id = pathname.match(/status\\/(\\d+)/);\n if (id) {\n const page = await (await fetch(`https://nitter.net/_/status/${id[1]}#m`)).text();\n setDOM(page);\n const maintweet = document.querySelector('.main-tweet');\n const name = maintweet.querySelector('.fullname').textContent;\n const user = maintweet.querySelector('.username').textContent;\n const image = maintweet.querySelector('.still-image img');\n //const card = maintweet.querySelector('.card-image img');\n const tweet = maintweet.querySelector('.tweet-content').textContent.replace(/\\s+/g, ' ');\n let output = `{bo}${name}{/} {c}${user}{/} ${tweet}`;\n if (image) {\n output += ' ' + IRC.colors.link(`https://nitter.net${image.getAttribute('src').replace(/%3Fname.+/, '')}`);\n }\n //if (card) {\n //output += ' ' + IRC.colors.link(`https://nitter.net${card.getAttribute('src')}`);\n //}\n print(output);\n return true;\n }\n }\n // image detection AI\n if (['jpg', 'gif', 'jpeg', 'png'].some(d => url.includes(`.${d}`))) {\n const reqUrl = 'https://api.imagga.com/v2/tags?image_url='+encodeURI(url);\n const json = await (await fetch(reqUrl, {\n headers: { Authorization: `Basic ${IRC.queryConfig('imaggaKey')} ` }\n })).json();\n if (json.type === 'error') {\n \tjson.status.text;\n } else if (json.result.tags) {\n const tags = json.result.tags.filter(tag => tag.confidence >= 70);\n \tif (tags.length) {\n \tprint('🖼️ 👀 '+tags.map(tag=>`{g}${tag.tag.en}{/}`).join(', '));\n \t} else if (json.result.tags.length) {\n \t\t//const [tag] = json.result.tags;\n //print(`Image may contain: {o}${tag.tag.en}{/} (${0|tag.confidence}% confidence)`);\n \t}\n }\n\n \treturn true;\n }\n // repaste pastebin\n if (hostname.includes('pastebin.com')) {\n const id = pathname.match(/\\/(\\w+)\\/?$/);\n if (id) {\n const page = await (await fetch(`https://pastebin.com/raw/${id[1]}`)).text();\n print.info(`repasted to ${await IRC.require('module.paste').async(page)}`)\n return true;\n }\n }\n}" + "command": "const { document, window } = new (jsdom().JSDOM)('');\nconst anchor = document.createElement('a');\nconst bytes = IRC.require('bytes');\n\nfunction setDOM(page) {\n document.open();\n document.write(page);\n document.close();\n};\n\nfunction domTitle() {\n const metaTitle = document.head.querySelector('meta[name=\"title\"]');\n return metaTitle ? metaTitle.content : document.title;\n}\n\nconst filterWords = /something went wrong|cloudflare|forbidden|not found|access restricted|access denied|your browser|rick roll|never gonna give you up|log in|blocked|just a moment/i;\n\nfunction hasInfo(url, _title) {\n const title = _title.replace(/\\s+/g, ' ').trim();\n const isFresh = title.split(' ')\n .filter(word => (\n !(new RegExp(word.replace(/[^.a-zA-Z0-9\\u00c0-\\u017e]+/g, ''), 'i')).test(url)\n )).length >= 1;\n return isFresh;\n}\n\nIRC.listen('message', event => {\n if (!IRC.queryConfig('fetchURL', true)) return;\n const { text, from } = event.message;\n const urls = text.match(/(\\b(https?):\\/\\/[-A-Z0-9+&@#\\/%?=~_|!:,.;()]*[-A-Z0-9+&@#\\/%=~_|()])/ig);\n const fromSelf = from === IRC.nick;\n if (!urls || fromSelf || text.startsWith(IRC.trigger) || text.includes('##')) return;\n\n urls.slice(0, 3).forEach(url => {\n handleURL(url, global.print)\n .catch(print.error);\n });\n});\n\nasync function handleURL(url, print) {\n anchor.setAttribute('href', url);\n if (await customURL(url, print)) return;\n\n const res = await fetch(url, {\n headers: {\n 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',\n 'Accept-Language': 'en-GB,en;q=0.5',\n 'Content-Language': 'en-GB,en;q=0.5',\n 'User-Agent': /youtu\\.?be|google|reddit/.test(url) ? '' : 'Googlebot',\n },\n });\n\n const length = res.headers.get('content-length');\n\n if (length > 5.243e6) {\n const filename = anchor.pathname.split('/').pop();\n print.info(`{dc}${filename}{/} ${bytes(length)} {dgr}${res.headers.get('content-type')}{/}`);\n return;\n }\n\n const page = await res.text();\n setDOM(page);\n\n const title = domTitle();\n\n if (\n title.length \n && title.length < 400 \n && !filterWords.test(title)\n && (IRC.queryConfig('fetchURLAll', false) || hasInfo(url, title))) {\n print.info(title);\n }\n\n}\n\nasync function customURL(url, print) {\n // https://github.com/mendel5/alternative-front-ends\n const { hostname, pathname } = anchor;\n if (hostname.includes('reddit.')) {\n const jsonURL = url.replace(/(\\/?)(\\?.*)?(#.*)?$/, '/.json');\n const json = await(await fetch(jsonURL)).json();\n const data = json?.[0]?.data?.children?.[0]?.data;\n if (data) {\n const info = `{c}${data.subreddit_name_prefixed}{/} {o}▲${data.score}{/} ${data.title}`;\n const url = data?.secure_media?.reddit_video?.fallback_url?.replace('?source=fallback', '') || data.url;\n if (data.selftext) {\n print(`${info} ${String(data.selftext).replace(/\\s+/g, ' ').slice(0, 300)}`);\n return true;\n } else if (url) {\n print(`${info} ${IRC.colors.link(url)}`);\n return true;\n }\n }\n return true; \n }\n if (hostname.includes('youtube.') || hostname === 'youtu.be') {\n try {\n const json = await (await fetch(`https://www.youtube.com/oembed?url=${encodeURI(url)}&format=json`)).json();\n const {\n title, author_name,\n } = json;\n print(`{r}YouTube{/} {c}${author_name}{/} ${title}`);\n return true;\n } catch (e) { }\n // url.match(/(?!v=|v\\/|\\.be\\/|watch\\/)([0-9a-z\\-_]{11})/i);\n }\n if (hostname.includes('github.com')) {\n if (pathname.split('/').length === 3) {\n // it's a repo url\n const {\n description,\n html_url,\n name,\n stargazers_count,\n language,\n license, // { name }\n } = await (\n await fetch(`https://api.github.com/repos${pathname}`)\n ).json();\n\n print(`{gr}${description || name}{/} ${language ? IRC.colors.nick(language, false) : ''} {y}★{/} {bo}${stargazers_count}{/} {dgr}${license ? license.name : ''}{/}`);\n return true;\n }\n }\n \tif (hostname.includes('worldcubeassociation.org')) {\n if (pathname.includes('/persons/')){\n const {\n personal_records,\n person,\n medals\n }\n = await(await fetch(`https://www.worldcubeassociation.org/api/v0/persons/${pathname.split(\"/\")[2]}`)).json();\n // calculate best rank\n\t\t\tlet best_rank = Infinity\n let best_event = \"\"\n // RIP Feet\n delete personal_records[\"mmagic\"]\n delete personal_records[\"magic\"]\n \tdelete personal_records[\"333wf\"]\n \t\tdelete personal_records[\"333mbo\"]\n for (const event in personal_records) {\n if(+personal_records[event][\"single\"][\"world_rank\"] < best_rank){\n best_rank = personal_records[event][\"single\"][\"world_rank\"]\n best_event = event + \" Single\"\n }\n if(personal_records[event][\"average\"] != undefined && +personal_records[event][\"average\"][\"world_rank\"] < best_rank){\n best_rank = personal_records[event][\"average\"][\"world_rank\"]\n best_event = event + \" Average\"\n }\n }\n\n \t\n let output = `{bo}${person[\"name\"]}{/}, Medals: {y}${medals[\"gold\"]}{/} {gr}${medals[\"silver\"]}{/} {o}${medals[\"bronze\"]}{/}, Best Rank {c}${best_rank}{/} in {y}${best_event}`;\n print(output);\n \treturn true;\n }\n if (pathname.includes('/competitions/')){\n const {\n name,\n competitor_limit,\n registration_open,\n registration_close \n } = await (\n await fetch(`https://www.worldcubeassociation.org/api/v0/competitions/${pathname.split('/')[2]}`)\n ).json();\n // Add checks for comps in the past. \n let output = `{bo}${name}{/} (Limit: ${competitor_limit}), Registration: {c}${registration_open.split(\"T\")[0]}{/} - {c}${registration_close.split(\"T\")[0]}{/}`;\n print(output);\n \treturn true;\n }\n return false;\n }\n if (false && hostname.includes('instagram.')) {\n // https://git.sr.ht/~cadence/bibliogram-docs/tree/master/docs/Instances.md\n const id = pathname.match(/\\/([A-Za-z-0-9]{11})/);\n if (id) {\n const page = await (await fetch(`https://bibliogram.1d4.us/p/${id[1]}`)).text();\n setDOM(page);\n const text = document.querySelector('.structured-text').textContent;\n const name = document.querySelector('.name').textContent;\n const image = document.querySelector('.sized-image');\n\n let output = `{bo}Instagram{/} {c}${name}{/} ${text.replace(/\\s+/g, ' ')}`;\n print(output);\n }\n return true;\n }\n if (hostname.includes('twitter.')) {\n const id = pathname.match(/status\\/(\\d+)/);\n if (id) {\n const page = await (await fetch(`https://nitter.net/_/status/${id[1]}#m`)).text();\n setDOM(page);\n const maintweet = document.querySelector('.main-tweet');\n const name = maintweet.querySelector('.fullname').textContent;\n const user = maintweet.querySelector('.username').textContent;\n const image = maintweet.querySelector('.still-image img');\n //const card = maintweet.querySelector('.card-image img');\n const tweet = maintweet.querySelector('.tweet-content').textContent.replace(/\\s+/g, ' ');\n let output = `{bo}${name}{/} {c}${user}{/} ${tweet}`;\n if (image) {\n output += ' ' + IRC.colors.link(`https://nitter.net${image.getAttribute('src').replace(/%3Fname.+/, '')}`);\n }\n //if (card) {\n //output += ' ' + IRC.colors.link(`https://nitter.net${card.getAttribute('src')}`);\n //}\n print(output);\n return true;\n }\n }\n // image detection AI\n if (['jpg', 'gif', 'jpeg', 'png'].some(d => url.includes(`.${d}`))) {\n const reqUrl = 'https://api.imagga.com/v2/tags?image_url='+encodeURI(url);\n const json = await (await fetch(reqUrl, {\n headers: { Authorization: `Basic ${IRC.queryConfig('imaggaKey')} ` }\n })).json();\n if (json.status.type === 'error') {\n \tjson.status.text;\n } else if (json.result.tags) {\n const tags = json.result.tags.filter(tag => tag.confidence >= 70);\n \tif (tags.length) {\n \tprint('🖼️ 👀 '+tags.map(tag=>`{g}${tag.tag.en}{/}`).join(', '));\n \t} else if (json.result.tags.length) {\n \t\t//const [tag] = json.result.tags;\n //print(`Image may contain: {o}${tag.tag.en}{/} (${0|tag.confidence}% confidence)`);\n \t}\n }\n\n \treturn true;\n }\n // repaste pastebin\n if (hostname.includes('pastebin.com')) {\n const id = pathname.match(/\\/(\\w+)\\/?$/);\n if (id) {\n const page = await (await fetch(`https://pastebin.com/raw/${id[1]}`)).text();\n print.info(`repasted to ${await IRC.require('module.paste').async(page)}`)\n return true;\n }\n }\n}" } \ No newline at end of file diff --git a/commands/lastcommit-596ea122a414.json b/commands/lastcommit-596ea122a414.json new file mode 100644 index 0000000..28a5a43 --- /dev/null +++ b/commands/lastcommit-596ea122a414.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": true, + "starred": false, + "name": "lastcommit", + "command": "const repo = input.trim() || 'sector-f/eggchan';\ntry{\nconst branch = fetchSync.json(`https://api.github.com/repos/${repo}`).default_branch\nconst { sha, commit} = fetchSync.json(`https://api.github.com/repos/${repo}/commits/${branch}`);\nconst diff = require('date-fns@1.30.1').distanceInWordsStrict(commit.committer.date, new Date());\nprint(`{r}{bo}${sha.slice(0,6)}{/} - ${commit.message.replace(/\\s+/g,' ')} {dg}(${diff} ago){/} ${IRC.colors.nick(commit.author.name)}{/}`);\n}catch{ throw 'oh no' };\n" +} \ No newline at end of file diff --git a/commands/nisa-8b16d0a32869.json b/commands/nisa-8b16d0a32869.json new file mode 100644 index 0000000..0bee421 --- /dev/null +++ b/commands/nisa-8b16d0a32869.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "nisa", + "command": "print(fetchSync.json(\"https://random-word-form.herokuapp.com/random/noun/")[0]+\" is \"+fetchSync.json(\"https://random-word-form.herokuapp.com/random/adjective/")[0])" +} \ No newline at end of file diff --git a/commands/nisn-3a8d3734f52a.json b/commands/nisn-3a8d3734f52a.json new file mode 100644 index 0000000..5fe9a6e --- /dev/null +++ b/commands/nisn-3a8d3734f52a.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "nisn", + "command": "print(fetchSync.json(\"https://random-word-form.herokuapp.com/random/noun/")[0]+\" is \"+fetchSync.json(\"https://random-word-form.herokuapp.com/random/noun/")[0])" +} \ No newline at end of file diff --git a/commands/plop-918d60fc4213.json b/commands/plop-918d60fc4213.json new file mode 100644 index 0000000..f61a9dd --- /dev/null +++ b/commands/plop-918d60fc4213.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "plop", + "command": "/*__TEXTCMD__*/print(`https://youtu.be/I-KDiWrmgfk`);" +} \ No newline at end of file diff --git a/commands/shutfuck-fe8574ee5e37.json b/commands/shutfuck-fe8574ee5e37.json new file mode 100644 index 0000000..455dc4f --- /dev/null +++ b/commands/shutfuck-fe8574ee5e37.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "shutfuck", + "command": "print(`https://shutfuck.com/`)" +} \ No newline at end of file diff --git a/commands/truss-5c65bc937a47.json b/commands/truss-5c65bc937a47.json new file mode 100644 index 0000000..91e493d --- /dev/null +++ b/commands/truss-5c65bc937a47.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "truss", + "command": "/*__TEXTCMD__*/print(`On becoming Conservative Leader in September 2022, Liz Truss said she will deliver “a great victory for the Conservative Party in 2024.`);" +} \ No newline at end of file diff --git a/commands/womanmoment-1155bec6268b.json b/commands/womanmoment-1155bec6268b.json new file mode 100644 index 0000000..1d3ec7c --- /dev/null +++ b/commands/womanmoment-1155bec6268b.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "womanmoment", + "command": "/*__TEXTCMD__*/print(`https://www.reddit.com/r/relationship_advice/comments/mqgn40/boyfriend_wont_stop_saying_woman_moment/`);" +} \ No newline at end of file From 34816918f00bd419a0e1bb877237ecd7e21c0462 Mon Sep 17 00:00:00 2001 From: kirjavascript Date: Wed, 12 Oct 2022 23:24:34 +0100 Subject: [PATCH 47/94] update todo --- TODO | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/TODO b/TODO index 7fa2d9a..b1cd382 100644 --- a/TODO +++ b/TODO @@ -1,9 +1,33 @@ sudo: debug|reboot|reload|update|join|part|mode|topic|kick|nick|msg|redirect|ignore repl: rs|clojure|vlang|cj|scheme|jsx|html +https://modern.ircdocs.horse/ +https://libredirect.github.io/ +poker3 https://en.wikipedia.org/wiki/Playing_cards_in_Unicode + +cache image recog results + +~log tap + +walmartian not appearing in logs + +17:09 <@Budrick> cake^: bug report, pls do the needful. Web interface apparently can't deal with commands that have / in them +17:09 <~barf> how big the jow.moe +17:09 <@Budrick> see 5/7, 7/10 commands +17:09 <@Budrick> won't load em +const SQL = IRC.getNamespace(); (so you only have to do it once...) + +02:24 <+KLARSTRUP> ~> global.Buffer={isBuffer:()=>true},(m=>(m.seed("gnu, for 2FA there's google authenticator, twillio authy or duo mobile that works great, and most password managers supports 2FA too"),m.respond("for")))(require('markov')()) +02:24 <+CuteServ> [ 'too', 'supports 2FA', 'password managers', 'gnu, for', 'and most', '2FA there\'s', 'works great,', 'google authenticator,', 'mobile that', 'twillio authy', 'or duo' ] + +use sql databases as html pasta -> simple api extension /api/text|html/namespace/key +// have shortlinks /api/t/hash +dont let people steal localstorage data +namespacestore aliases/groups in config remind pms not working remind.pending +delayed memos dont resolve URLs from selfbcz apis redditvideourl From 9dbc1c560b3bb1ca69c3293ba8012fbb47645bde Mon Sep 17 00:00:00 2001 From: kirjavascript Date: Wed, 12 Oct 2022 23:41:00 +0100 Subject: [PATCH 48/94] remove global-npm, just use npm 7 --- irc/evaluate/acquire.js | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/irc/evaluate/acquire.js b/irc/evaluate/acquire.js index e650856..1295fcf 100644 --- a/irc/evaluate/acquire.js +++ b/irc/evaluate/acquire.js @@ -1,6 +1,6 @@ // this probably looks dangerous, but since we only ever end up passing a string to be evaluated, it is as safe as allowing any other arbitrary code to run -const npm = require('global-npm'); +const npm = require('npm'); const path = require('path'); const esbuild = require('esbuild'); const pkgname = require('parse-package-name'); diff --git a/package.json b/package.json index ef88a6e..3523c3c 100644 --- a/package.json +++ b/package.json @@ -19,11 +19,11 @@ "esbuild": "^0.13.12", "express": "^4.16.2", "form-data": "^3.0.0", - "global-npm": "^0.3.0", "irc-upd": "^0.11.0", "isolated-vm": "^4.3.5", "marked": "^0.7.0", "node-fetch": "^2.2.0", + "npm": "7.24.2", "parse-package-name": "^0.1.0", "react": "^16.13.1", "react-dom": "^16.13.1", From c8c0c88742762c13d8ac5e0cf87188e8805bbc35 Mon Sep 17 00:00:00 2001 From: kirjavascript Date: Thu, 13 Oct 2022 21:52:25 +0100 Subject: [PATCH 49/94] upgrade deps --- package.json | 2 +- web/static/main.js | 86 +- yarn.lock | 2075 ++++++++++++++++++++++++++++++++++++-------- 3 files changed, 1771 insertions(+), 392 deletions(-) diff --git a/package.json b/package.json index 3523c3c..adf80ff 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "express": "^4.16.2", "form-data": "^3.0.0", "irc-upd": "^0.11.0", - "isolated-vm": "^4.3.5", + "isolated-vm": "^4.4.1", "marked": "^0.7.0", "node-fetch": "^2.2.0", "npm": "7.24.2", diff --git a/web/static/main.js b/web/static/main.js index d525f1d..f15fe50 100644 --- a/web/static/main.js +++ b/web/static/main.js @@ -1,26 +1,26 @@ -var Yk=Object.create;var Bc=Object.defineProperty;var qk=Object.getOwnPropertyDescriptor;var Gk=Object.getOwnPropertyNames;var $k=Object.getPrototypeOf,Vk=Object.prototype.hasOwnProperty;var Xk=e=>Bc(e,"__esModule",{value:!0});var yt=(e,n)=>()=>(n||e((n={exports:{}}).exports,n),n.exports);var Kk=(e,n,i)=>{if(n&&typeof n=="object"||typeof n=="function")for(let u of Gk(n))!Vk.call(e,u)&&u!=="default"&&Bc(e,u,{get:()=>n[u],enumerable:!(i=qk(n,u))||i.enumerable});return e},jt=e=>Kk(Xk(Bc(e!=null?Yk($k(e)):{},"default",e&&e.__esModule&&"default"in e?{get:()=>e.default,enumerable:!0}:{value:e,enumerable:!0})),e);var jc=yt((HM,zg)=>{"use strict";var Fg=Object.getOwnPropertySymbols,Qk=Object.prototype.hasOwnProperty,Zk=Object.prototype.propertyIsEnumerable;function Jk(e){if(e==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}function eT(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de",Object.getOwnPropertyNames(e)[0]==="5")return!1;for(var n={},i=0;i<10;i++)n["_"+String.fromCharCode(i)]=i;var u=Object.getOwnPropertyNames(n).map(function(h){return n[h]});if(u.join("")!=="0123456789")return!1;var s={};return"abcdefghijklmnopqrst".split("").forEach(function(h){s[h]=h}),Object.keys(Object.assign({},s)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}zg.exports=eT()?Object.assign:function(e,n){for(var i,u=Jk(e),s,h=1;h{"use strict";var Yc=jc(),ni=typeof Symbol=="function"&&Symbol.for,bu=ni?Symbol.for("react.element"):60103,tT=ni?Symbol.for("react.portal"):60106,nT=ni?Symbol.for("react.fragment"):60107,rT=ni?Symbol.for("react.strict_mode"):60108,iT=ni?Symbol.for("react.profiler"):60114,oT=ni?Symbol.for("react.provider"):60109,aT=ni?Symbol.for("react.context"):60110,uT=ni?Symbol.for("react.forward_ref"):60112,lT=ni?Symbol.for("react.suspense"):60113,sT=ni?Symbol.for("react.memo"):60115,fT=ni?Symbol.for("react.lazy"):60116,Hg=typeof Symbol=="function"&&Symbol.iterator;function Cu(e){for(var n="https://reactjs.org/docs/error-decoder.html?invariant="+e,i=1;iVl.length&&Vl.push(e)}function Xc(e,n,i,u){var s=typeof e;(s==="undefined"||s==="boolean")&&(e=null);var h=!1;if(e===null)h=!0;else switch(s){case"string":case"number":h=!0;break;case"object":switch(e.$$typeof){case bu:case tT:h=!0}}if(h)return i(u,e,n===""?"."+Qc(e,0):n),1;if(h=0,n=n===""?".":n+":",Array.isArray(e))for(var d=0;d{"use strict";Qg.exports=Kg()});var im=yt(un=>{"use strict";var xa,Mu,Xl,Kl,Jc;typeof window=="undefined"||typeof MessageChannel!="function"?(_a=null,eh=null,th=function(){if(_a!==null)try{var e=un.unstable_now();_a(!0,e),_a=null}catch(n){throw setTimeout(th,0),n}},Zg=Date.now(),un.unstable_now=function(){return Date.now()-Zg},xa=function(e){_a!==null?setTimeout(xa,0,e):(_a=e,setTimeout(th,0))},Mu=function(e,n){eh=setTimeout(e,n)},Xl=function(){clearTimeout(eh)},Kl=function(){return!1},Jc=un.unstable_forceFrameRate=function(){}):(Ql=window.performance,nh=window.Date,Jg=window.setTimeout,em=window.clearTimeout,typeof console!="undefined"&&(tm=window.cancelAnimationFrame,typeof window.requestAnimationFrame!="function"&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills"),typeof tm!="function"&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills")),typeof Ql=="object"&&typeof Ql.now=="function"?un.unstable_now=function(){return Ql.now()}:(nm=nh.now(),un.unstable_now=function(){return nh.now()-nm}),Eu=!1,Nu=null,Zl=-1,rh=5,ih=0,Kl=function(){return un.unstable_now()>=ih},Jc=function(){},un.unstable_forceFrameRate=function(e){0>e||125>>1,s=e[u];if(s!==void 0&&0ts(d,i))k!==void 0&&0>ts(k,d)?(e[u]=k,e[v]=i,u=v):(e[u]=d,e[h]=i,u=h);else if(k!==void 0&&0>ts(k,i))e[u]=k,e[v]=i,u=v;else break e}}return n}return null}function ts(e,n){var i=e.sortIndex-n.sortIndex;return i!==0?i:e.id-n.id}var ri=[],Xi=[],gT=1,mr=null,or=3,ns=!1,Do=!1,Pu=!1;function rs(e){for(var n=Yr(Xi);n!==null;){if(n.callback===null)es(Xi);else if(n.startTime<=e)es(Xi),n.sortIndex=n.expirationTime,ah(ri,n);else break;n=Yr(Xi)}}function uh(e){if(Pu=!1,rs(e),!Do)if(Yr(ri)!==null)Do=!0,xa(lh);else{var n=Yr(Xi);n!==null&&Mu(uh,n.startTime-e)}}function lh(e,n){Do=!1,Pu&&(Pu=!1,Xl()),ns=!0;var i=or;try{for(rs(n),mr=Yr(ri);mr!==null&&(!(mr.expirationTime>n)||e&&!Kl());){var u=mr.callback;if(u!==null){mr.callback=null,or=mr.priorityLevel;var s=u(mr.expirationTime<=n);n=un.unstable_now(),typeof s=="function"?mr.callback=s:mr===Yr(ri)&&es(ri),rs(n)}else es(ri);mr=Yr(ri)}if(mr!==null)var h=!0;else{var d=Yr(Xi);d!==null&&Mu(uh,d.startTime-n),h=!1}return h}finally{mr=null,or=i,ns=!1}}function rm(e){switch(e){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1e4;default:return 5e3}}var mT=Jc;un.unstable_IdlePriority=5;un.unstable_ImmediatePriority=1;un.unstable_LowPriority=4;un.unstable_NormalPriority=3;un.unstable_Profiling=null;un.unstable_UserBlockingPriority=2;un.unstable_cancelCallback=function(e){e.callback=null};un.unstable_continueExecution=function(){Do||ns||(Do=!0,xa(lh))};un.unstable_getCurrentPriorityLevel=function(){return or};un.unstable_getFirstCallbackNode=function(){return Yr(ri)};un.unstable_next=function(e){switch(or){case 1:case 2:case 3:var n=3;break;default:n=or}var i=or;or=n;try{return e()}finally{or=i}};un.unstable_pauseExecution=function(){};un.unstable_requestPaint=mT;un.unstable_runWithPriority=function(e,n){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var i=or;or=e;try{return n()}finally{or=i}};un.unstable_scheduleCallback=function(e,n,i){var u=un.unstable_now();if(typeof i=="object"&&i!==null){var s=i.delay;s=typeof s=="number"&&0u?(e.sortIndex=s,ah(Xi,e),Yr(ri)===null&&e===Yr(Xi)&&(Pu?Xl():Pu=!0,Mu(uh,s-u))):(e.sortIndex=i,ah(ri,e),Do||ns||(Do=!0,xa(lh))),e};un.unstable_shouldYield=function(){var e=un.unstable_now();rs(e);var n=Yr(ri);return n!==mr&&mr!==null&&n!==null&&n.callback!==null&&n.startTime<=e&&n.expirationTime{"use strict";om.exports=im()});var i1=yt(Vr=>{"use strict";var is=wn(),yr=jc(),tr=am();function it(e){for(var n="https://reactjs.org/docs/error-decoder.html?invariant="+e,i=1;in}return!1}function wr(e,n,i,u,s,h){this.acceptsBooleans=n===2||n===3||n===4,this.attributeName=u,this.attributeNamespace=s,this.mustUseProperty=i,this.propertyName=e,this.type=n,this.sanitizeURL=h}var nr={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){nr[e]=new wr(e,0,!1,e,null,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var n=e[0];nr[n]=new wr(n,1,!1,e[1],null,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){nr[e]=new wr(e,2,!1,e.toLowerCase(),null,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){nr[e]=new wr(e,2,!1,e,null,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){nr[e]=new wr(e,3,!1,e.toLowerCase(),null,!1)});["checked","multiple","muted","selected"].forEach(function(e){nr[e]=new wr(e,3,!0,e,null,!1)});["capture","download"].forEach(function(e){nr[e]=new wr(e,4,!1,e,null,!1)});["cols","rows","size","span"].forEach(function(e){nr[e]=new wr(e,6,!1,e,null,!1)});["rowSpan","start"].forEach(function(e){nr[e]=new wr(e,5,!1,e.toLowerCase(),null,!1)});var yh=/[\-:]([a-z])/g;function wh(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var n=e.replace(yh,wh);nr[n]=new wr(n,1,!1,e,null,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var n=e.replace(yh,wh);nr[n]=new wr(n,1,!1,e,"http://www.w3.org/1999/xlink",!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var n=e.replace(yh,wh);nr[n]=new wr(n,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1)});["tabIndex","crossOrigin"].forEach(function(e){nr[e]=new wr(e,1,!1,e.toLowerCase(),null,!1)});nr.xlinkHref=new wr("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0);["src","href","action","formAction"].forEach(function(e){nr[e]=new wr(e,1,!1,e.toLowerCase(),null,!0)});var ii=is.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;ii.hasOwnProperty("ReactCurrentDispatcher")||(ii.ReactCurrentDispatcher={current:null});ii.hasOwnProperty("ReactCurrentBatchConfig")||(ii.ReactCurrentBatchConfig={suspense:null});function xh(e,n,i,u){var s=nr.hasOwnProperty(n)?nr[n]:null,h=s!==null?s.type===0:u?!1:!(!(2=i.length))throw Error(it(93));i=i[0]}n=i}n==null&&(n=""),i=n}e._wrapperState={initialValue:Qi(i)}}function Am(e,n){var i=Qi(n.value),u=Qi(n.defaultValue);i!=null&&(i=""+i,i!==e.value&&(e.value=i),n.defaultValue==null&&e.defaultValue!==i&&(e.defaultValue=i)),u!=null&&(e.defaultValue=""+u)}function Im(e){var n=e.textContent;n===e._wrapperState.initialValue&&n!==""&&n!==null&&(e.value=n)}var Rm={html:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg"};function Fm(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function Ph(e,n){return e==null||e==="http://www.w3.org/1999/xhtml"?Fm(n):e==="http://www.w3.org/2000/svg"&&n==="foreignObject"?"http://www.w3.org/1999/xhtml":e}var ds,zm=function(e){return typeof MSApp!="undefined"&&MSApp.execUnsafeLocalFunction?function(n,i,u,s){MSApp.execUnsafeLocalFunction(function(){return e(n,i,u,s)})}:e}(function(e,n){if(e.namespaceURI!==Rm.svg||"innerHTML"in e)e.innerHTML=n;else{for(ds=ds||document.createElement("div"),ds.innerHTML=""+n.valueOf().toString()+"",n=ds.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;n.firstChild;)e.appendChild(n.firstChild)}});function Du(e,n){if(n){var i=e.firstChild;if(i&&i===e.lastChild&&i.nodeType===3){i.nodeValue=n;return}}e.textContent=n}function ps(e,n){var i={};return i[e.toLowerCase()]=n.toLowerCase(),i["Webkit"+e]="webkit"+n,i["Moz"+e]="moz"+n,i}var Ea={animationend:ps("Animation","AnimationEnd"),animationiteration:ps("Animation","AnimationIteration"),animationstart:ps("Animation","AnimationStart"),transitionend:ps("Transition","TransitionEnd")},Lh={},Hm={};Ki&&(Hm=document.createElement("div").style,"AnimationEvent"in window||(delete Ea.animationend.animation,delete Ea.animationiteration.animation,delete Ea.animationstart.animation),"TransitionEvent"in window||delete Ea.transitionend.transition);function vs(e){if(Lh[e])return Lh[e];if(!Ea[e])return e;var n=Ea[e],i;for(i in n)if(n.hasOwnProperty(i)&&i in Hm)return Lh[e]=n[i];return e}var Wm=vs("animationend"),Um=vs("animationiteration"),Bm=vs("animationstart"),jm=vs("transitionend"),Au="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Ym=new(typeof WeakMap=="function"?WeakMap:Map);function Oh(e){var n=Ym.get(e);return n===void 0&&(n=new Map,Ym.set(e,n)),n}function Ro(e){var n=e,i=e;if(e.alternate)for(;n.return;)n=n.return;else{e=n;do n=e,(n.effectTag&1026)!=0&&(i=n.return),e=n.return;while(e)}return n.tag===3?i:null}function qm(e){if(e.tag===13){var n=e.memoizedState;if(n===null&&(e=e.alternate,e!==null&&(n=e.memoizedState)),n!==null)return n.dehydrated}return null}function Gm(e){if(Ro(e)!==e)throw Error(it(188))}function LT(e){var n=e.alternate;if(!n){if(n=Ro(e),n===null)throw Error(it(188));return n!==e?null:e}for(var i=e,u=n;;){var s=i.return;if(s===null)break;var h=s.alternate;if(h===null){if(u=s.return,u!==null){i=u;continue}break}if(s.child===h.child){for(h=s.child;h;){if(h===i)return Gm(s),e;if(h===u)return Gm(s),n;h=h.sibling}throw Error(it(188))}if(i.return!==u.return)i=s,u=h;else{for(var d=!1,v=s.child;v;){if(v===i){d=!0,i=s,u=h;break}if(v===u){d=!0,u=s,i=h;break}v=v.sibling}if(!d){for(v=h.child;v;){if(v===i){d=!0,i=h,u=s;break}if(v===u){d=!0,u=h,i=s;break}v=v.sibling}if(!d)throw Error(it(189))}}if(i.alternate!==u)throw Error(it(190))}if(i.tag!==3)throw Error(it(188));return i.stateNode.current===i?e:n}function $m(e){if(e=LT(e),!e)return null;for(var n=e;;){if(n.tag===5||n.tag===6)return n;if(n.child)n.child.return=n,n=n.child;else{if(n===e)break;for(;!n.sibling;){if(!n.return||n.return===e)return null;n=n.return}n.sibling.return=n.return,n=n.sibling}}return null}function Na(e,n){if(n==null)throw Error(it(30));return e==null?n:Array.isArray(e)?Array.isArray(n)?(e.push.apply(e,n),e):(e.push(n),e):Array.isArray(n)?[e].concat(n):[e,n]}function Dh(e,n,i){Array.isArray(e)?e.forEach(n,i):e&&n.call(i,e)}var Iu=null;function OT(e){if(e){var n=e._dispatchListeners,i=e._dispatchInstances;if(Array.isArray(n))for(var u=0;ums.length&&ms.push(e)}function Km(e,n,i,u){if(ms.length){var s=ms.pop();return s.topLevelType=e,s.eventSystemFlags=u,s.nativeEvent=n,s.targetInst=i,s}return{topLevelType:e,eventSystemFlags:u,nativeEvent:n,targetInst:i,ancestors:[]}}function Qm(e){var n=e.targetInst,i=n;do{if(!i){e.ancestors.push(i);break}var u=i;if(u.tag===3)u=u.stateNode.containerInfo;else{for(;u.return;)u=u.return;u=u.tag!==3?null:u.stateNode.containerInfo}if(!u)break;n=i.tag,n!==5&&n!==6||e.ancestors.push(i),i=Yu(u)}while(i);for(i=0;i=n)return{node:i,offset:n-e};e=u}e:{for(;i;){if(i.nextSibling){i=i.nextSibling;break e}i=i.parentNode}i=void 0}i=l0(i)}}function f0(e,n){return e&&n?e===n?!0:e&&e.nodeType===3?!1:n&&n.nodeType===3?f0(e,n.parentNode):"contains"in e?e.contains(n):e.compareDocumentPosition?!!(e.compareDocumentPosition(n)&16):!1:!1}function c0(){for(var e=window,n=Gh();n instanceof e.HTMLIFrameElement;){try{var i=typeof n.contentWindow.location.href=="string"}catch{i=!1}if(i)e=n.contentWindow;else break;n=Gh(e.document)}return n}function $h(e){var n=e&&e.nodeName&&e.nodeName.toLowerCase();return n&&(n==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||n==="textarea"||e.contentEditable==="true")}var h0="$",d0="/$",Vh="$?",Xh="$!",Kh=null,Qh=null;function p0(e,n){switch(e){case"button":case"input":case"select":case"textarea":return!!n.autoFocus}return!1}function Zh(e,n){return e==="textarea"||e==="option"||e==="noscript"||typeof n.children=="string"||typeof n.children=="number"||typeof n.dangerouslySetInnerHTML=="object"&&n.dangerouslySetInnerHTML!==null&&n.dangerouslySetInnerHTML.__html!=null}var Jh=typeof setTimeout=="function"?setTimeout:void 0,qT=typeof clearTimeout=="function"?clearTimeout:void 0;function Pa(e){for(;e!=null;e=e.nextSibling){var n=e.nodeType;if(n===1||n===3)break}return e}function v0(e){e=e.previousSibling;for(var n=0;e;){if(e.nodeType===8){var i=e.data;if(i===h0||i===Xh||i===Vh){if(n===0)return e;n--}else i===d0&&n++}e=e.previousSibling}return null}var ed=Math.random().toString(36).slice(2),to="__reactInternalInstance$"+ed,Ts="__reactEventHandlers$"+ed,ju="__reactContainere$"+ed;function Yu(e){var n=e[to];if(n)return n;for(var i=e.parentNode;i;){if(n=i[ju]||i[to]){if(i=n.alternate,n.child!==null||i!==null&&i.child!==null)for(e=v0(e);e!==null;){if(i=e[to])return i;e=v0(e)}return n}e=i,i=e.parentNode}return null}function qu(e){return e=e[to]||e[ju],!e||e.tag!==5&&e.tag!==6&&e.tag!==13&&e.tag!==3?null:e}function Fo(e){if(e.tag===5||e.tag===6)return e.stateNode;throw Error(it(33))}function td(e){return e[Ts]||null}function Li(e){do e=e.return;while(e&&e.tag!==5);return e||null}function g0(e,n){var i=e.stateNode;if(!i)return null;var u=fh(i);if(!u)return null;i=u[n];e:switch(n){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(u=!u.disabled)||(e=e.type,u=!(e==="button"||e==="input"||e==="select"||e==="textarea")),e=!u;break e;default:e=!1}if(e)return null;if(i&&typeof i!="function")throw Error(it(231,n,typeof i));return i}function m0(e,n,i){(n=g0(e,i.dispatchConfig.phasedRegistrationNames[n]))&&(i._dispatchListeners=Na(i._dispatchListeners,n),i._dispatchInstances=Na(i._dispatchInstances,e))}function GT(e){if(e&&e.dispatchConfig.phasedRegistrationNames){for(var n=e._targetInst,i=[];n;)i.push(n),n=Li(n);for(n=i.length;0this.eventPool.length&&this.eventPool.push(e)}function w0(e){e.eventPool=[],e.getPooled=VT,e.release=XT}var KT=zr.extend({data:null}),QT=zr.extend({data:null}),ZT=[9,13,27,32],id=Ki&&"CompositionEvent"in window,Gu=null;Ki&&"documentMode"in document&&(Gu=document.documentMode);var JT=Ki&&"TextEvent"in window&&!Gu,x0=Ki&&(!id||Gu&&8=Gu),_0=String.fromCharCode(32),Oi={beforeInput:{phasedRegistrationNames:{bubbled:"onBeforeInput",captured:"onBeforeInputCapture"},dependencies:["compositionend","keypress","textInput","paste"]},compositionEnd:{phasedRegistrationNames:{bubbled:"onCompositionEnd",captured:"onCompositionEndCapture"},dependencies:"blur compositionend keydown keypress keyup mousedown".split(" ")},compositionStart:{phasedRegistrationNames:{bubbled:"onCompositionStart",captured:"onCompositionStartCapture"},dependencies:"blur compositionstart keydown keypress keyup mousedown".split(" ")},compositionUpdate:{phasedRegistrationNames:{bubbled:"onCompositionUpdate",captured:"onCompositionUpdateCapture"},dependencies:"blur compositionupdate keydown keypress keyup mousedown".split(" ")}},k0=!1;function T0(e,n){switch(e){case"keyup":return ZT.indexOf(n.keyCode)!==-1;case"keydown":return n.keyCode!==229;case"keypress":case"mousedown":case"blur":return!0;default:return!1}}function S0(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Oa=!1;function eS(e,n){switch(e){case"compositionend":return S0(n);case"keypress":return n.which!==32?null:(k0=!0,_0);case"textInput":return e=n.data,e===_0&&k0?null:e;default:return null}}function tS(e,n){if(Oa)return e==="compositionend"||!id&&T0(e,n)?(e=y0(),Ss=rd=no=null,Oa=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(n.ctrlKey||n.altKey||n.metaKey)||n.ctrlKey&&n.altKey){if(n.char&&1=document.documentMode,I0={select:{phasedRegistrationNames:{bubbled:"onSelect",captured:"onSelectCapture"},dependencies:"blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange".split(" ")}},Da=null,ud=null,Ju=null,ld=!1;function R0(e,n){var i=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;return ld||Da==null||Da!==Gh(i)?null:(i=Da,"selectionStart"in i&&$h(i)?i={start:i.selectionStart,end:i.selectionEnd}:(i=(i.ownerDocument&&i.ownerDocument.defaultView||window).getSelection(),i={anchorNode:i.anchorNode,anchorOffset:i.anchorOffset,focusNode:i.focusNode,focusOffset:i.focusOffset}),Ju&&Zu(Ju,i)?null:(Ju=i,e=zr.getPooled(I0.select,ud,e,n),e.type="select",e.target=Da,La(e),e))}var mS={eventTypes:I0,extractEvents:function(e,n,i,u,s,h){if(s=h||(u.window===u?u.document:u.nodeType===9?u:u.ownerDocument),!(h=!s)){e:{s=Oh(s),h=hh.onSelect;for(var d=0;dAa||(e.current=sd[Aa],sd[Aa]=null,Aa--)}function Dn(e,n){Aa++,sd[Aa]=e.current,e.current=n}var ro={},ar={current:ro},Nr={current:!1},Ho=ro;function Ia(e,n){var i=e.type.contextTypes;if(!i)return ro;var u=e.stateNode;if(u&&u.__reactInternalMemoizedUnmaskedChildContext===n)return u.__reactInternalMemoizedMaskedChildContext;var s={},h;for(h in i)s[h]=n[h];return u&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=n,e.__reactInternalMemoizedMaskedChildContext=s),s}function Pr(e){return e=e.childContextTypes,e!=null}function Ns(){xn(Nr),xn(ar)}function F0(e,n,i){if(ar.current!==ro)throw Error(it(168));Dn(ar,n),Dn(Nr,i)}function z0(e,n,i){var u=e.stateNode;if(e=n.childContextTypes,typeof u.getChildContext!="function")return i;u=u.getChildContext();for(var s in u)if(!(s in e))throw Error(it(108,Ni(n)||"Unknown",s));return yr({},i,{},u)}function Ps(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||ro,Ho=ar.current,Dn(ar,e),Dn(Nr,Nr.current),!0}function H0(e,n,i){var u=e.stateNode;if(!u)throw Error(it(169));i?(e=z0(e,n,Ho),u.__reactInternalMemoizedMergedChildContext=e,xn(Nr),xn(ar),Dn(ar,e)):xn(Nr),Dn(Nr,i)}var PS=tr.unstable_runWithPriority,fd=tr.unstable_scheduleCallback,W0=tr.unstable_cancelCallback,U0=tr.unstable_requestPaint,cd=tr.unstable_now,LS=tr.unstable_getCurrentPriorityLevel,Ls=tr.unstable_ImmediatePriority,B0=tr.unstable_UserBlockingPriority,j0=tr.unstable_NormalPriority,Y0=tr.unstable_LowPriority,q0=tr.unstable_IdlePriority,G0={},OS=tr.unstable_shouldYield,DS=U0!==void 0?U0:function(){},Di=null,Os=null,hd=!1,$0=cd(),qr=1e4>$0?cd:function(){return cd()-$0};function Ds(){switch(LS()){case Ls:return 99;case B0:return 98;case j0:return 97;case Y0:return 96;case q0:return 95;default:throw Error(it(332))}}function V0(e){switch(e){case 99:return Ls;case 98:return B0;case 97:return j0;case 96:return Y0;case 95:return q0;default:throw Error(it(332))}}function io(e,n){return e=V0(e),PS(e,n)}function X0(e,n,i){return e=V0(e),fd(e,n,i)}function K0(e){return Di===null?(Di=[e],Os=fd(Ls,Q0)):Di.push(e),G0}function pi(){if(Os!==null){var e=Os;Os=null,W0(e)}Q0()}function Q0(){if(!hd&&Di!==null){hd=!0;var e=0;try{var n=Di;io(99,function(){for(;e=n&&(gi=!0),e.firstContext=null)}function Gr(e,n){if(Fs!==e&&n!==!1&&n!==0)if((typeof n!="number"||n===1073741823)&&(Fs=e,n=1073741823),n={context:e,observedBits:n,next:null},Ra===null){if(Rs===null)throw Error(it(308));Ra=n,Rs.dependencies={expirationTime:0,firstContext:n,responders:null}}else Ra=Ra.next=n;return e._currentValue}var oo=!1;function vd(e){e.updateQueue={baseState:e.memoizedState,baseQueue:null,shared:{pending:null},effects:null}}function gd(e,n){e=e.updateQueue,n.updateQueue===e&&(n.updateQueue={baseState:e.baseState,baseQueue:e.baseQueue,shared:e.shared,effects:e.effects})}function ao(e,n){return e={expirationTime:e,suspenseConfig:n,tag:0,payload:null,callback:null,next:null},e.next=e}function uo(e,n){if(e=e.updateQueue,e!==null){e=e.shared;var i=e.pending;i===null?n.next=n:(n.next=i.next,i.next=n),e.pending=n}}function J0(e,n){var i=e.alternate;i!==null&&gd(i,e),e=e.updateQueue,i=e.baseQueue,i===null?(e.baseQueue=n.next=n,n.next=n):(n.next=i.next,i.next=n)}function el(e,n,i,u){var s=e.updateQueue;oo=!1;var h=s.baseQueue,d=s.shared.pending;if(d!==null){if(h!==null){var v=h.next;h.next=d.next,d.next=v}h=d,s.shared.pending=null,v=e.alternate,v!==null&&(v=v.updateQueue,v!==null&&(v.baseQueue=d))}if(h!==null){v=h.next;var k=s.baseState,S=0,E=null,O=null,ie=null;if(v!==null){var ve=v;do{if(d=ve.expirationTime,dS&&(S=d)}else{ie!==null&&(ie=ie.next={expirationTime:1073741823,suspenseConfig:ve.suspenseConfig,tag:ve.tag,payload:ve.payload,callback:ve.callback,next:null}),Xy(d,ve.suspenseConfig);e:{var ne=e,R=ve;switch(d=n,Ee=i,R.tag){case 1:if(ne=R.payload,typeof ne=="function"){k=ne.call(Ee,k,d);break e}k=ne;break e;case 3:ne.effectTag=ne.effectTag&-4097|64;case 0:if(ne=R.payload,d=typeof ne=="function"?ne.call(Ee,k,d):ne,d==null)break e;k=yr({},k,d);break e;case 2:oo=!0}}ve.callback!==null&&(e.effectTag|=32,d=s.effects,d===null?s.effects=[ve]:d.push(ve))}if(ve=ve.next,ve===null||ve===v){if(d=s.shared.pending,d===null)break;ve=h.next=d.next,d.next=v,s.baseQueue=h=d,s.shared.pending=null}}while(1)}ie===null?E=k:ie.next=O,s.baseState=E,s.baseQueue=ie,cf(S),e.expirationTime=S,e.memoizedState=k}}function ey(e,n,i){if(e=n.effects,n.effects=null,e!==null)for(n=0;nc?(g=B,B=null):g=B.sibling;var x=ie(R,B,Y[c],le);if(x===null){B===null&&(B=g);break}e&&B&&x.alternate===null&&n(R,B),I=h(x,I,c),Re===null?pe=x:Re.sibling=x,Re=x,B=g}if(c===Y.length)return i(R,B),pe;if(B===null){for(;cc?(g=B,B=null):g=B.sibling;var P=ie(R,B,x.value,le);if(P===null){B===null&&(B=g);break}e&&B&&P.alternate===null&&n(R,B),I=h(P,I,c),Re===null?pe=P:Re.sibling=P,Re=P,B=g}if(x.done)return i(R,B),pe;if(B===null){for(;!x.done;c++,x=Y.next())x=O(R,x.value,le),x!==null&&(I=h(x,I,c),Re===null?pe=x:Re.sibling=x,Re=x);return pe}for(B=u(R,B);!x.done;c++,x=Y.next())x=ve(B,R,c,x.value,le),x!==null&&(e&&x.alternate!==null&&B.delete(x.key===null?c:x.key),I=h(x,I,c),Re===null?pe=x:Re.sibling=x,Re=x);return e&&B.forEach(function(b){return n(R,b)}),pe}return function(R,I,Y,le){var pe=typeof Y=="object"&&Y!==null&&Y.type===Io&&Y.key===null;pe&&(Y=Y.props.children);var Re=typeof Y=="object"&&Y!==null;if(Re)switch(Y.$$typeof){case ss:e:{for(Re=Y.key,pe=I;pe!==null;){if(pe.key===Re){switch(pe.tag){case 7:if(Y.type===Io){i(R,pe.sibling),I=s(pe,Y.props.children),I.return=R,R=I;break e}break;default:if(pe.elementType===Y.type){i(R,pe.sibling),I=s(pe,Y.props),I.ref=nl(R,pe,Y),I.return=R,R=I;break e}}i(R,pe);break}else n(R,pe);pe=pe.sibling}Y.type===Io?(I=ho(Y.props.children,R.mode,le,Y.key),I.return=R,R=I):(le=hf(Y.type,Y.key,Y.props,null,R.mode,le),le.ref=nl(R,I,Y),le.return=R,R=le)}return d(R);case Ca:e:{for(pe=Y.key;I!==null;){if(I.key===pe)if(I.tag===4&&I.stateNode.containerInfo===Y.containerInfo&&I.stateNode.implementation===Y.implementation){i(R,I.sibling),I=s(I,Y.children||[]),I.return=R,R=I;break e}else{i(R,I);break}else n(R,I);I=I.sibling}I=Jd(Y,R.mode,le),I.return=R,R=I}return d(R)}if(typeof Y=="string"||typeof Y=="number")return Y=""+Y,I!==null&&I.tag===6?(i(R,I.sibling),I=s(I,Y),I.return=R,R=I):(i(R,I),I=Zd(Y,R.mode,le),I.return=R,R=I),d(R);if(Ws(Y))return Ee(R,I,Y,le);if(Ou(Y))return ne(R,I,Y,le);if(Re&&Us(R,Y),typeof Y=="undefined"&&!pe)switch(R.tag){case 1:case 0:throw R=R.type,Error(it(152,R.displayName||R.name||"Component"))}return i(R,I)}}var za=oy(!0),yd=oy(!1),rl={},vi={current:rl},il={current:rl},ol={current:rl};function Wo(e){if(e===rl)throw Error(it(174));return e}function wd(e,n){switch(Dn(ol,n),Dn(il,e),Dn(vi,rl),e=n.nodeType,e){case 9:case 11:n=(n=n.documentElement)?n.namespaceURI:Ph(null,"");break;default:e=e===8?n.parentNode:n,n=e.namespaceURI||null,e=e.tagName,n=Ph(n,e)}xn(vi),Dn(vi,n)}function Ha(){xn(vi),xn(il),xn(ol)}function ay(e){Wo(ol.current);var n=Wo(vi.current),i=Ph(n,e.type);n!==i&&(Dn(il,e),Dn(vi,i))}function xd(e){il.current===e&&(xn(vi),xn(il))}var Mn={current:0};function Bs(e){for(var n=e;n!==null;){if(n.tag===13){var i=n.memoizedState;if(i!==null&&(i=i.dehydrated,i===null||i.data===Vh||i.data===Xh))return n}else if(n.tag===19&&n.memoizedProps.revealOrder!==void 0){if((n.effectTag&64)!=0)return n}else if(n.child!==null){n.child.return=n,n=n.child;continue}if(n===e)break;for(;n.sibling===null;){if(n.return===null||n.return===e)return null;n=n.return}n.sibling.return=n.return,n=n.sibling}return null}function _d(e,n){return{responder:e,props:n}}var js=ii.ReactCurrentDispatcher,$r=ii.ReactCurrentBatchConfig,lo=0,Yn=null,ur=null,lr=null,Ys=!1;function Hr(){throw Error(it(321))}function kd(e,n){if(n===null)return!1;for(var i=0;ih))throw Error(it(301));h+=1,lr=ur=null,n.updateQueue=null,js.current=RS,e=i(u,s)}while(n.expirationTime===lo)}if(js.current=Xs,n=ur!==null&&ur.next!==null,lo=0,lr=ur=Yn=null,Ys=!1,n)throw Error(it(300));return e}function Wa(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return lr===null?Yn.memoizedState=lr=e:lr=lr.next=e,lr}function Ua(){if(ur===null){var e=Yn.alternate;e=e!==null?e.memoizedState:null}else e=ur.next;var n=lr===null?Yn.memoizedState:lr.next;if(n!==null)lr=n,ur=e;else{if(e===null)throw Error(it(310));ur=e,e={memoizedState:ur.memoizedState,baseState:ur.baseState,baseQueue:ur.baseQueue,queue:ur.queue,next:null},lr===null?Yn.memoizedState=lr=e:lr=lr.next=e}return lr}function Uo(e,n){return typeof n=="function"?n(e):n}function qs(e){var n=Ua(),i=n.queue;if(i===null)throw Error(it(311));i.lastRenderedReducer=e;var u=ur,s=u.baseQueue,h=i.pending;if(h!==null){if(s!==null){var d=s.next;s.next=h.next,h.next=d}u.baseQueue=s=h,i.pending=null}if(s!==null){s=s.next,u=u.baseState;var v=d=h=null,k=s;do{var S=k.expirationTime;if(SYn.expirationTime&&(Yn.expirationTime=S,cf(S))}else v!==null&&(v=v.next={expirationTime:1073741823,suspenseConfig:k.suspenseConfig,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),Xy(S,k.suspenseConfig),u=k.eagerReducer===e?k.eagerState:e(u,k.action);k=k.next}while(k!==null&&k!==s);v===null?h=u:v.next=d,zo(u,n.memoizedState)||(gi=!0),n.memoizedState=u,n.baseState=h,n.baseQueue=v,i.lastRenderedState=u}return[n.memoizedState,i.dispatch]}function Gs(e){var n=Ua(),i=n.queue;if(i===null)throw Error(it(311));i.lastRenderedReducer=e;var u=i.dispatch,s=i.pending,h=n.memoizedState;if(s!==null){i.pending=null;var d=s=s.next;do h=e(h,d.action),d=d.next;while(d!==s);zo(h,n.memoizedState)||(gi=!0),n.memoizedState=h,n.baseQueue===null&&(n.baseState=h),i.lastRenderedState=h}return[h,u]}function Sd(e){var n=Wa();return typeof e=="function"&&(e=e()),n.memoizedState=n.baseState=e,e=n.queue={pending:null,dispatch:null,lastRenderedReducer:Uo,lastRenderedState:e},e=e.dispatch=py.bind(null,Yn,e),[n.memoizedState,e]}function bd(e,n,i,u){return e={tag:e,create:n,destroy:i,deps:u,next:null},n=Yn.updateQueue,n===null?(n={lastEffect:null},Yn.updateQueue=n,n.lastEffect=e.next=e):(i=n.lastEffect,i===null?n.lastEffect=e.next=e:(u=i.next,i.next=e,e.next=u,n.lastEffect=e)),e}function uy(){return Ua().memoizedState}function Cd(e,n,i,u){var s=Wa();Yn.effectTag|=e,s.memoizedState=bd(1|n,i,void 0,u===void 0?null:u)}function Md(e,n,i,u){var s=Ua();u=u===void 0?null:u;var h=void 0;if(ur!==null){var d=ur.memoizedState;if(h=d.destroy,u!==null&&kd(u,d.deps)){bd(n,i,h,u);return}}Yn.effectTag|=e,s.memoizedState=bd(1|n,i,h,u)}function ly(e,n){return Cd(516,4,e,n)}function $s(e,n){return Md(516,4,e,n)}function sy(e,n){return Md(4,2,e,n)}function fy(e,n){if(typeof n=="function")return e=e(),n(e),function(){n(null)};if(n!=null)return e=e(),n.current=e,function(){n.current=null}}function cy(e,n,i){return i=i!=null?i.concat([e]):null,Md(4,2,fy.bind(null,n,e),i)}function Ed(){}function hy(e,n){return Wa().memoizedState=[e,n===void 0?null:n],e}function Vs(e,n){var i=Ua();n=n===void 0?null:n;var u=i.memoizedState;return u!==null&&n!==null&&kd(n,u[1])?u[0]:(i.memoizedState=[e,n],e)}function dy(e,n){var i=Ua();n=n===void 0?null:n;var u=i.memoizedState;return u!==null&&n!==null&&kd(n,u[1])?u[0]:(e=e(),i.memoizedState=[e,n],e)}function Nd(e,n,i){var u=Ds();io(98>u?98:u,function(){e(!0)}),io(97<\/script>",e=e.removeChild(e.firstChild)):typeof u.is=="string"?e=d.createElement(s,{is:u.is}):(e=d.createElement(s),s==="select"&&(d=e,u.multiple?d.multiple=!0:u.size&&(d.size=u.size))):e=d.createElementNS(e,s),e[to]=n,e[Ts]=u,My(e,n,!1,!1),n.stateNode=e,d=qh(s,u),s){case"iframe":case"object":case"embed":Sn("load",e),v=u;break;case"video":case"audio":for(v=0;vu.tailExpiration&&1n)&&Yo.set(e,n)))}}function sf(e,n){e.expirationTimee?i:e,2>=e&&n!==e?0:e}function Br(e){if(e.lastExpiredTime!==0)e.callbackExpirationTime=1073741823,e.callbackPriority=99,e.callbackNode=K0($d.bind(null,e));else{var n=ff(e),i=e.callbackNode;if(n===0)i!==null&&(e.callbackNode=null,e.callbackExpirationTime=0,e.callbackPriority=90);else{var u=yi();if(n===1073741823?u=99:n===1||n===2?u=95:(u=10*(1073741821-n)-10*(1073741821-u),u=0>=u?99:250>=u?98:5250>=u?97:95),i!==null){var s=e.callbackPriority;if(e.callbackExpirationTime===n&&s>=u)return;i!==G0&&W0(i)}e.callbackExpirationTime=n,e.callbackPriority=u,n=n===1073741823?K0($d.bind(null,e)):X0(u,Yy.bind(null,e),{timeout:10*(1073741821-n)-qr()}),e.callbackNode=n}}}function Yy(e,n){if(lf=0,n)return n=yi(),ep(e,n),Br(e),null;var i=ff(e);if(i!==0){if(n=e.callbackNode,(Dt&(ai|mi))!==Vn)throw Error(it(327));if(Ba(),e===Ur&&i===Lr||Go(e,i),Ht!==null){var u=Dt;Dt|=ai;var s=Vy();do try{VS();break}catch(v){$y(e,v)}while(1);if(dd(),Dt=u,Zs.current=s,Xn===Js)throw n=nf,Go(e,i),Ko(e,i),Br(e),n;if(Ht===null)switch(s=e.finishedWork=e.current.alternate,e.finishedExpirationTime=i,u=Xn,Ur=null,u){case jo:case Js:throw Error(it(345));case By:ep(e,2=i){e.lastPingedTime=i,Go(e,i);break}}if(h=ff(e),h!==0&&h!==i)break;if(u!==0&&u!==i){e.lastPingedTime=u;break}e.timeoutHandle=Jh($o.bind(null,e),s);break}$o(e);break;case tf:if(Ko(e,i),u=e.lastSuspendedTime,i===u&&(e.nextKnownPendingLevel=Vd(s)),of&&(s=e.lastPingedTime,s===0||s>=i)){e.lastPingedTime=i,Go(e,i);break}if(s=ff(e),s!==0&&s!==i)break;if(u!==0&&u!==i){e.lastPingedTime=u;break}if(al!==1073741823?u=10*(1073741821-al)-qr():Ri===1073741823?u=0:(u=10*(1073741821-Ri)-5e3,s=qr(),i=10*(1073741821-i)-s,u=s-u,0>u&&(u=0),u=(120>u?120:480>u?480:1080>u?1080:1920>u?1920:3e3>u?3e3:4320>u?4320:1960*qS(u/1960))-u,i=u?u=0:(s=d.busyDelayMs|0,h=qr()-(10*(1073741821-h)-(d.timeoutMs|0||5e3)),u=h<=s?0:s+u-h),10Uc(e,"__esModule",{value:!0});var xt=(e,n)=>()=>(n||e((n={exports:{}}).exports,n),n.exports);var Qk=(e,n,i)=>{if(n&&typeof n=="object"||typeof n=="function")for(let u of Vk(n))!Xk.call(e,u)&&u!=="default"&&Uc(e,u,{get:()=>n[u],enumerable:!(i=Gk(n,u))||i.enumerable});return e},$t=e=>Qk(Kk(Uc(e!=null?qk($k(e)):{},"default",e&&e.__esModule&&"default"in e?{get:()=>e.default,enumerable:!0}:{value:e,enumerable:!0})),e);var Bc=xt((WM,Fg)=>{"use strict";var Rg=Object.getOwnPropertySymbols,Zk=Object.prototype.hasOwnProperty,Jk=Object.prototype.propertyIsEnumerable;function eT(e){if(e==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}function tT(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de",Object.getOwnPropertyNames(e)[0]==="5")return!1;for(var n={},i=0;i<10;i++)n["_"+String.fromCharCode(i)]=i;var u=Object.getOwnPropertyNames(n).map(function(h){return n[h]});if(u.join("")!=="0123456789")return!1;var s={};return"abcdefghijklmnopqrst".split("").forEach(function(h){s[h]=h}),Object.keys(Object.assign({},s)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}Fg.exports=tT()?Object.assign:function(e,n){for(var i,u=eT(e),s,h=1;h{"use strict";var jc=Bc(),ni=typeof Symbol=="function"&&Symbol.for,Cu=ni?Symbol.for("react.element"):60103,nT=ni?Symbol.for("react.portal"):60106,rT=ni?Symbol.for("react.fragment"):60107,iT=ni?Symbol.for("react.strict_mode"):60108,oT=ni?Symbol.for("react.profiler"):60114,aT=ni?Symbol.for("react.provider"):60109,uT=ni?Symbol.for("react.context"):60110,lT=ni?Symbol.for("react.forward_ref"):60112,sT=ni?Symbol.for("react.suspense"):60113,fT=ni?Symbol.for("react.memo"):60115,cT=ni?Symbol.for("react.lazy"):60116,zg=typeof Symbol=="function"&&Symbol.iterator;function Mu(e){for(var n="https://reactjs.org/docs/error-decoder.html?invariant="+e,i=1;iVl.length&&Vl.push(e)}function $c(e,n,i,u){var s=typeof e;(s==="undefined"||s==="boolean")&&(e=null);var h=!1;if(e===null)h=!0;else switch(s){case"string":case"number":h=!0;break;case"object":switch(e.$$typeof){case Cu:case nT:h=!0}}if(h)return i(u,e,n===""?"."+Kc(e,0):n),1;if(h=0,n=n===""?".":n+":",Array.isArray(e))for(var d=0;d{"use strict";Kg.exports=Xg()});var rm=xt(rn=>{"use strict";var Ta,Eu,$l,Xl,Zc;typeof window=="undefined"||typeof MessageChannel!="function"?(Sa=null,Jc=null,eh=function(){if(Sa!==null)try{var e=rn.unstable_now();Sa(!0,e),Sa=null}catch(n){throw setTimeout(eh,0),n}},Qg=Date.now(),rn.unstable_now=function(){return Date.now()-Qg},Ta=function(e){Sa!==null?setTimeout(Ta,0,e):(Sa=e,setTimeout(eh,0))},Eu=function(e,n){Jc=setTimeout(e,n)},$l=function(){clearTimeout(Jc)},Xl=function(){return!1},Zc=rn.unstable_forceFrameRate=function(){}):(Kl=window.performance,th=window.Date,Zg=window.setTimeout,Jg=window.clearTimeout,typeof console!="undefined"&&(em=window.cancelAnimationFrame,typeof window.requestAnimationFrame!="function"&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills"),typeof em!="function"&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills")),typeof Kl=="object"&&typeof Kl.now=="function"?rn.unstable_now=function(){return Kl.now()}:(tm=th.now(),rn.unstable_now=function(){return th.now()-tm}),Nu=!1,Pu=null,Ql=-1,nh=5,rh=0,Xl=function(){return rn.unstable_now()>=rh},Zc=function(){},rn.unstable_forceFrameRate=function(e){0>e||125>>1,s=e[u];if(s!==void 0&&0es(d,i))x!==void 0&&0>es(x,d)?(e[u]=x,e[v]=i,u=v):(e[u]=d,e[h]=i,u=h);else if(x!==void 0&&0>es(x,i))e[u]=x,e[v]=i,u=v;else break e}}return n}return null}function es(e,n){var i=e.sortIndex-n.sortIndex;return i!==0?i:e.id-n.id}var ri=[],Xi=[],mT=1,yr=null,ar=3,ts=!1,Ao=!1,Lu=!1;function ns(e){for(var n=Br(Xi);n!==null;){if(n.callback===null)Jl(Xi);else if(n.startTime<=e)Jl(Xi),n.sortIndex=n.expirationTime,oh(ri,n);else break;n=Br(Xi)}}function ah(e){if(Lu=!1,ns(e),!Ao)if(Br(ri)!==null)Ao=!0,Ta(uh);else{var n=Br(Xi);n!==null&&Eu(ah,n.startTime-e)}}function uh(e,n){Ao=!1,Lu&&(Lu=!1,$l()),ts=!0;var i=ar;try{for(ns(n),yr=Br(ri);yr!==null&&(!(yr.expirationTime>n)||e&&!Xl());){var u=yr.callback;if(u!==null){yr.callback=null,ar=yr.priorityLevel;var s=u(yr.expirationTime<=n);n=rn.unstable_now(),typeof s=="function"?yr.callback=s:yr===Br(ri)&&Jl(ri),ns(n)}else Jl(ri);yr=Br(ri)}if(yr!==null)var h=!0;else{var d=Br(Xi);d!==null&&Eu(ah,d.startTime-n),h=!1}return h}finally{yr=null,ar=i,ts=!1}}function nm(e){switch(e){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1e4;default:return 5e3}}var yT=Zc;rn.unstable_IdlePriority=5;rn.unstable_ImmediatePriority=1;rn.unstable_LowPriority=4;rn.unstable_NormalPriority=3;rn.unstable_Profiling=null;rn.unstable_UserBlockingPriority=2;rn.unstable_cancelCallback=function(e){e.callback=null};rn.unstable_continueExecution=function(){Ao||ts||(Ao=!0,Ta(uh))};rn.unstable_getCurrentPriorityLevel=function(){return ar};rn.unstable_getFirstCallbackNode=function(){return Br(ri)};rn.unstable_next=function(e){switch(ar){case 1:case 2:case 3:var n=3;break;default:n=ar}var i=ar;ar=n;try{return e()}finally{ar=i}};rn.unstable_pauseExecution=function(){};rn.unstable_requestPaint=yT;rn.unstable_runWithPriority=function(e,n){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var i=ar;ar=e;try{return n()}finally{ar=i}};rn.unstable_scheduleCallback=function(e,n,i){var u=rn.unstable_now();if(typeof i=="object"&&i!==null){var s=i.delay;s=typeof s=="number"&&0u?(e.sortIndex=s,oh(Xi,e),Br(ri)===null&&e===Br(Xi)&&(Lu?$l():Lu=!0,Eu(ah,s-u))):(e.sortIndex=i,oh(ri,e),Ao||ts||(Ao=!0,Ta(uh))),e};rn.unstable_shouldYield=function(){var e=rn.unstable_now();ns(e);var n=Br(ri);return n!==yr&&yr!==null&&n!==null&&n.callback!==null&&n.startTime<=e&&n.expirationTime{"use strict";im.exports=rm()});var r1=xt(Gr=>{"use strict";var rs=bn(),wr=Bc(),Jn=om();function rt(e){for(var n="https://reactjs.org/docs/error-decoder.html?invariant="+e,i=1;in}return!1}function xr(e,n,i,u,s,h){this.acceptsBooleans=n===2||n===3||n===4,this.attributeName=u,this.attributeNamespace=s,this.mustUseProperty=i,this.propertyName=e,this.type=n,this.sanitizeURL=h}var er={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){er[e]=new xr(e,0,!1,e,null,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var n=e[0];er[n]=new xr(n,1,!1,e[1],null,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){er[e]=new xr(e,2,!1,e.toLowerCase(),null,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){er[e]=new xr(e,2,!1,e,null,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){er[e]=new xr(e,3,!1,e.toLowerCase(),null,!1)});["checked","multiple","muted","selected"].forEach(function(e){er[e]=new xr(e,3,!0,e,null,!1)});["capture","download"].forEach(function(e){er[e]=new xr(e,4,!1,e,null,!1)});["cols","rows","size","span"].forEach(function(e){er[e]=new xr(e,6,!1,e,null,!1)});["rowSpan","start"].forEach(function(e){er[e]=new xr(e,5,!1,e.toLowerCase(),null,!1)});var mh=/[\-:]([a-z])/g;function yh(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var n=e.replace(mh,yh);er[n]=new xr(n,1,!1,e,null,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var n=e.replace(mh,yh);er[n]=new xr(n,1,!1,e,"http://www.w3.org/1999/xlink",!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var n=e.replace(mh,yh);er[n]=new xr(n,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1)});["tabIndex","crossOrigin"].forEach(function(e){er[e]=new xr(e,1,!1,e.toLowerCase(),null,!1)});er.xlinkHref=new xr("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0);["src","href","action","formAction"].forEach(function(e){er[e]=new xr(e,1,!1,e.toLowerCase(),null,!0)});var ii=rs.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;ii.hasOwnProperty("ReactCurrentDispatcher")||(ii.ReactCurrentDispatcher={current:null});ii.hasOwnProperty("ReactCurrentBatchConfig")||(ii.ReactCurrentBatchConfig={suspense:null});function wh(e,n,i,u){var s=er.hasOwnProperty(n)?er[n]:null,h=s!==null?s.type===0:u?!1:!(!(2=i.length))throw Error(rt(93));i=i[0]}n=i}n==null&&(n=""),i=n}e._wrapperState={initialValue:Qi(i)}}function Dm(e,n){var i=Qi(n.value),u=Qi(n.defaultValue);i!=null&&(i=""+i,i!==e.value&&(e.value=i),n.defaultValue==null&&e.defaultValue!==i&&(e.defaultValue=i)),u!=null&&(e.defaultValue=""+u)}function Am(e){var n=e.textContent;n===e._wrapperState.initialValue&&n!==""&&n!==null&&(e.value=n)}var Im={html:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg"};function Rm(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function Nh(e,n){return e==null||e==="http://www.w3.org/1999/xhtml"?Rm(n):e==="http://www.w3.org/2000/svg"&&n==="foreignObject"?"http://www.w3.org/1999/xhtml":e}var hs,Fm=function(e){return typeof MSApp!="undefined"&&MSApp.execUnsafeLocalFunction?function(n,i,u,s){MSApp.execUnsafeLocalFunction(function(){return e(n,i,u,s)})}:e}(function(e,n){if(e.namespaceURI!==Im.svg||"innerHTML"in e)e.innerHTML=n;else{for(hs=hs||document.createElement("div"),hs.innerHTML=""+n.valueOf().toString()+"",n=hs.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;n.firstChild;)e.appendChild(n.firstChild)}});function Au(e,n){if(n){var i=e.firstChild;if(i&&i===e.lastChild&&i.nodeType===3){i.nodeValue=n;return}}e.textContent=n}function ds(e,n){var i={};return i[e.toLowerCase()]=n.toLowerCase(),i["Webkit"+e]="webkit"+n,i["Moz"+e]="moz"+n,i}var La={animationend:ds("Animation","AnimationEnd"),animationiteration:ds("Animation","AnimationIteration"),animationstart:ds("Animation","AnimationStart"),transitionend:ds("Transition","TransitionEnd")},Ph={},zm={};Ki&&(zm=document.createElement("div").style,"AnimationEvent"in window||(delete La.animationend.animation,delete La.animationiteration.animation,delete La.animationstart.animation),"TransitionEvent"in window||delete La.transitionend.transition);function ps(e){if(Ph[e])return Ph[e];if(!La[e])return e;var n=La[e],i;for(i in n)if(n.hasOwnProperty(i)&&i in zm)return Ph[e]=n[i];return e}var Hm=ps("animationend"),Wm=ps("animationiteration"),Um=ps("animationstart"),Bm=ps("transitionend"),Iu="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),jm=new(typeof WeakMap=="function"?WeakMap:Map);function Lh(e){var n=jm.get(e);return n===void 0&&(n=new Map,jm.set(e,n)),n}function Fo(e){var n=e,i=e;if(e.alternate)for(;n.return;)n=n.return;else{e=n;do n=e,(n.effectTag&1026)!=0&&(i=n.return),e=n.return;while(e)}return n.tag===3?i:null}function Ym(e){if(e.tag===13){var n=e.memoizedState;if(n===null&&(e=e.alternate,e!==null&&(n=e.memoizedState)),n!==null)return n.dehydrated}return null}function qm(e){if(Fo(e)!==e)throw Error(rt(188))}function OT(e){var n=e.alternate;if(!n){if(n=Fo(e),n===null)throw Error(rt(188));return n!==e?null:e}for(var i=e,u=n;;){var s=i.return;if(s===null)break;var h=s.alternate;if(h===null){if(u=s.return,u!==null){i=u;continue}break}if(s.child===h.child){for(h=s.child;h;){if(h===i)return qm(s),e;if(h===u)return qm(s),n;h=h.sibling}throw Error(rt(188))}if(i.return!==u.return)i=s,u=h;else{for(var d=!1,v=s.child;v;){if(v===i){d=!0,i=s,u=h;break}if(v===u){d=!0,u=s,i=h;break}v=v.sibling}if(!d){for(v=h.child;v;){if(v===i){d=!0,i=h,u=s;break}if(v===u){d=!0,u=h,i=s;break}v=v.sibling}if(!d)throw Error(rt(189))}}if(i.alternate!==u)throw Error(rt(190))}if(i.tag!==3)throw Error(rt(188));return i.stateNode.current===i?e:n}function Gm(e){if(e=OT(e),!e)return null;for(var n=e;;){if(n.tag===5||n.tag===6)return n;if(n.child)n.child.return=n,n=n.child;else{if(n===e)break;for(;!n.sibling;){if(!n.return||n.return===e)return null;n=n.return}n.sibling.return=n.return,n=n.sibling}}return null}function Oa(e,n){if(n==null)throw Error(rt(30));return e==null?n:Array.isArray(e)?Array.isArray(n)?(e.push.apply(e,n),e):(e.push(n),e):Array.isArray(n)?[e].concat(n):[e,n]}function Oh(e,n,i){Array.isArray(e)?e.forEach(n,i):e&&n.call(i,e)}var Ru=null;function DT(e){if(e){var n=e._dispatchListeners,i=e._dispatchInstances;if(Array.isArray(n))for(var u=0;ugs.length&&gs.push(e)}function Xm(e,n,i,u){if(gs.length){var s=gs.pop();return s.topLevelType=e,s.eventSystemFlags=u,s.nativeEvent=n,s.targetInst=i,s}return{topLevelType:e,eventSystemFlags:u,nativeEvent:n,targetInst:i,ancestors:[]}}function Km(e){var n=e.targetInst,i=n;do{if(!i){e.ancestors.push(i);break}var u=i;if(u.tag===3)u=u.stateNode.containerInfo;else{for(;u.return;)u=u.return;u=u.tag!==3?null:u.stateNode.containerInfo}if(!u)break;n=i.tag,n!==5&&n!==6||e.ancestors.push(i),i=qu(u)}while(i);for(i=0;i=n)return{node:i,offset:n-e};e=u}e:{for(;i;){if(i.nextSibling){i=i.nextSibling;break e}i=i.parentNode}i=void 0}i=u0(i)}}function s0(e,n){return e&&n?e===n?!0:e&&e.nodeType===3?!1:n&&n.nodeType===3?s0(e,n.parentNode):"contains"in e?e.contains(n):e.compareDocumentPosition?!!(e.compareDocumentPosition(n)&16):!1:!1}function f0(){for(var e=window,n=qh();n instanceof e.HTMLIFrameElement;){try{var i=typeof n.contentWindow.location.href=="string"}catch{i=!1}if(i)e=n.contentWindow;else break;n=qh(e.document)}return n}function Gh(e){var n=e&&e.nodeName&&e.nodeName.toLowerCase();return n&&(n==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||n==="textarea"||e.contentEditable==="true")}var c0="$",h0="/$",Vh="$?",$h="$!",Xh=null,Kh=null;function d0(e,n){switch(e){case"button":case"input":case"select":case"textarea":return!!n.autoFocus}return!1}function Qh(e,n){return e==="textarea"||e==="option"||e==="noscript"||typeof n.children=="string"||typeof n.children=="number"||typeof n.dangerouslySetInnerHTML=="object"&&n.dangerouslySetInnerHTML!==null&&n.dangerouslySetInnerHTML.__html!=null}var Zh=typeof setTimeout=="function"?setTimeout:void 0,GT=typeof clearTimeout=="function"?clearTimeout:void 0;function Da(e){for(;e!=null;e=e.nextSibling){var n=e.nodeType;if(n===1||n===3)break}return e}function p0(e){e=e.previousSibling;for(var n=0;e;){if(e.nodeType===8){var i=e.data;if(i===c0||i===$h||i===Vh){if(n===0)return e;n--}else i===h0&&n++}e=e.previousSibling}return null}var Jh=Math.random().toString(36).slice(2),to="__reactInternalInstance$"+Jh,ks="__reactEventHandlers$"+Jh,Yu="__reactContainere$"+Jh;function qu(e){var n=e[to];if(n)return n;for(var i=e.parentNode;i;){if(n=i[Yu]||i[to]){if(i=n.alternate,n.child!==null||i!==null&&i.child!==null)for(e=p0(e);e!==null;){if(i=e[to])return i;e=p0(e)}return n}e=i,i=e.parentNode}return null}function Gu(e){return e=e[to]||e[Yu],!e||e.tag!==5&&e.tag!==6&&e.tag!==13&&e.tag!==3?null:e}function zo(e){if(e.tag===5||e.tag===6)return e.stateNode;throw Error(rt(33))}function ed(e){return e[ks]||null}function Li(e){do e=e.return;while(e&&e.tag!==5);return e||null}function v0(e,n){var i=e.stateNode;if(!i)return null;var u=sh(i);if(!u)return null;i=u[n];e:switch(n){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(u=!u.disabled)||(e=e.type,u=!(e==="button"||e==="input"||e==="select"||e==="textarea")),e=!u;break e;default:e=!1}if(e)return null;if(i&&typeof i!="function")throw Error(rt(231,n,typeof i));return i}function g0(e,n,i){(n=v0(e,i.dispatchConfig.phasedRegistrationNames[n]))&&(i._dispatchListeners=Oa(i._dispatchListeners,n),i._dispatchInstances=Oa(i._dispatchInstances,e))}function VT(e){if(e&&e.dispatchConfig.phasedRegistrationNames){for(var n=e._targetInst,i=[];n;)i.push(n),n=Li(n);for(n=i.length;0this.eventPool.length&&this.eventPool.push(e)}function y0(e){e.eventPool=[],e.getPooled=XT,e.release=KT}var QT=Ir.extend({data:null}),ZT=Ir.extend({data:null}),JT=[9,13,27,32],rd=Ki&&"CompositionEvent"in window,Vu=null;Ki&&"documentMode"in document&&(Vu=document.documentMode);var eS=Ki&&"TextEvent"in window&&!Vu,w0=Ki&&(!rd||Vu&&8=Vu),x0=String.fromCharCode(32),Oi={beforeInput:{phasedRegistrationNames:{bubbled:"onBeforeInput",captured:"onBeforeInputCapture"},dependencies:["compositionend","keypress","textInput","paste"]},compositionEnd:{phasedRegistrationNames:{bubbled:"onCompositionEnd",captured:"onCompositionEndCapture"},dependencies:"blur compositionend keydown keypress keyup mousedown".split(" ")},compositionStart:{phasedRegistrationNames:{bubbled:"onCompositionStart",captured:"onCompositionStartCapture"},dependencies:"blur compositionstart keydown keypress keyup mousedown".split(" ")},compositionUpdate:{phasedRegistrationNames:{bubbled:"onCompositionUpdate",captured:"onCompositionUpdateCapture"},dependencies:"blur compositionupdate keydown keypress keyup mousedown".split(" ")}},_0=!1;function k0(e,n){switch(e){case"keyup":return JT.indexOf(n.keyCode)!==-1;case"keydown":return n.keyCode!==229;case"keypress":case"mousedown":case"blur":return!0;default:return!1}}function T0(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Ia=!1;function tS(e,n){switch(e){case"compositionend":return T0(n);case"keypress":return n.which!==32?null:(_0=!0,x0);case"textInput":return e=n.data,e===x0&&_0?null:e;default:return null}}function nS(e,n){if(Ia)return e==="compositionend"||!rd&&k0(e,n)?(e=m0(),Ts=nd=no=null,Ia=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(n.ctrlKey||n.altKey||n.metaKey)||n.ctrlKey&&n.altKey){if(n.char&&1=document.documentMode,A0={select:{phasedRegistrationNames:{bubbled:"onSelect",captured:"onSelectCapture"},dependencies:"blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange".split(" ")}},Ra=null,ad=null,el=null,ud=!1;function I0(e,n){var i=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;return ud||Ra==null||Ra!==qh(i)?null:(i=Ra,"selectionStart"in i&&Gh(i)?i={start:i.selectionStart,end:i.selectionEnd}:(i=(i.ownerDocument&&i.ownerDocument.defaultView||window).getSelection(),i={anchorNode:i.anchorNode,anchorOffset:i.anchorOffset,focusNode:i.focusNode,focusOffset:i.focusOffset}),el&&Ju(el,i)?null:(el=i,e=Ir.getPooled(A0.select,ad,e,n),e.type="select",e.target=Ra,Aa(e),e))}var yS={eventTypes:A0,extractEvents:function(e,n,i,u,s,h){if(s=h||(u.window===u?u.document:u.nodeType===9?u:u.ownerDocument),!(h=!s)){e:{s=Lh(s),h=ch.onSelect;for(var d=0;dFa||(e.current=ld[Fa],ld[Fa]=null,Fa--)}function An(e,n){Fa++,ld[Fa]=e.current,e.current=n}var ro={},ur={current:ro},Nr={current:!1},Wo=ro;function za(e,n){var i=e.type.contextTypes;if(!i)return ro;var u=e.stateNode;if(u&&u.__reactInternalMemoizedUnmaskedChildContext===n)return u.__reactInternalMemoizedMaskedChildContext;var s={},h;for(h in i)s[h]=n[h];return u&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=n,e.__reactInternalMemoizedMaskedChildContext=s),s}function Pr(e){return e=e.childContextTypes,e!=null}function Es(){_n(Nr),_n(ur)}function R0(e,n,i){if(ur.current!==ro)throw Error(rt(168));An(ur,n),An(Nr,i)}function F0(e,n,i){var u=e.stateNode;if(e=n.childContextTypes,typeof u.getChildContext!="function")return i;u=u.getChildContext();for(var s in u)if(!(s in e))throw Error(rt(108,Ni(n)||"Unknown",s));return wr({},i,{},u)}function Ns(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||ro,Wo=ur.current,An(ur,e),An(Nr,Nr.current),!0}function z0(e,n,i){var u=e.stateNode;if(!u)throw Error(rt(169));i?(e=F0(e,n,Wo),u.__reactInternalMemoizedMergedChildContext=e,_n(Nr),_n(ur),An(ur,e)):_n(Nr),An(Nr,i)}var LS=Jn.unstable_runWithPriority,sd=Jn.unstable_scheduleCallback,H0=Jn.unstable_cancelCallback,W0=Jn.unstable_requestPaint,fd=Jn.unstable_now,OS=Jn.unstable_getCurrentPriorityLevel,Ps=Jn.unstable_ImmediatePriority,U0=Jn.unstable_UserBlockingPriority,B0=Jn.unstable_NormalPriority,j0=Jn.unstable_LowPriority,Y0=Jn.unstable_IdlePriority,q0={},DS=Jn.unstable_shouldYield,AS=W0!==void 0?W0:function(){},Di=null,Ls=null,cd=!1,G0=fd(),jr=1e4>G0?fd:function(){return fd()-G0};function Os(){switch(OS()){case Ps:return 99;case U0:return 98;case B0:return 97;case j0:return 96;case Y0:return 95;default:throw Error(rt(332))}}function V0(e){switch(e){case 99:return Ps;case 98:return U0;case 97:return B0;case 96:return j0;case 95:return Y0;default:throw Error(rt(332))}}function io(e,n){return e=V0(e),LS(e,n)}function $0(e,n,i){return e=V0(e),sd(e,n,i)}function X0(e){return Di===null?(Di=[e],Ls=sd(Ps,K0)):Di.push(e),q0}function vi(){if(Ls!==null){var e=Ls;Ls=null,H0(e)}K0()}function K0(){if(!cd&&Di!==null){cd=!0;var e=0;try{var n=Di;io(99,function(){for(;e=n&&(mi=!0),e.firstContext=null)}function Yr(e,n){if(Rs!==e&&n!==!1&&n!==0)if((typeof n!="number"||n===1073741823)&&(Rs=e,n=1073741823),n={context:e,observedBits:n,next:null},Ha===null){if(Is===null)throw Error(rt(308));Ha=n,Is.dependencies={expirationTime:0,firstContext:n,responders:null}}else Ha=Ha.next=n;return e._currentValue}var oo=!1;function pd(e){e.updateQueue={baseState:e.memoizedState,baseQueue:null,shared:{pending:null},effects:null}}function vd(e,n){e=e.updateQueue,n.updateQueue===e&&(n.updateQueue={baseState:e.baseState,baseQueue:e.baseQueue,shared:e.shared,effects:e.effects})}function ao(e,n){return e={expirationTime:e,suspenseConfig:n,tag:0,payload:null,callback:null,next:null},e.next=e}function uo(e,n){if(e=e.updateQueue,e!==null){e=e.shared;var i=e.pending;i===null?n.next=n:(n.next=i.next,i.next=n),e.pending=n}}function Z0(e,n){var i=e.alternate;i!==null&&vd(i,e),e=e.updateQueue,i=e.baseQueue,i===null?(e.baseQueue=n.next=n,n.next=n):(n.next=i.next,i.next=n)}function tl(e,n,i,u){var s=e.updateQueue;oo=!1;var h=s.baseQueue,d=s.shared.pending;if(d!==null){if(h!==null){var v=h.next;h.next=d.next,d.next=v}h=d,s.shared.pending=null,v=e.alternate,v!==null&&(v=v.updateQueue,v!==null&&(v.baseQueue=d))}if(h!==null){v=h.next;var x=s.baseState,T=0,M=null,O=null,te=null;if(v!==null){var ve=v;do{if(d=ve.expirationTime,dT&&(T=d)}else{te!==null&&(te=te.next={expirationTime:1073741823,suspenseConfig:ve.suspenseConfig,tag:ve.tag,payload:ve.payload,callback:ve.callback,next:null}),$y(d,ve.suspenseConfig);e:{var ie=e,I=ve;switch(d=n,Ee=i,I.tag){case 1:if(ie=I.payload,typeof ie=="function"){x=ie.call(Ee,x,d);break e}x=ie;break e;case 3:ie.effectTag=ie.effectTag&-4097|64;case 0:if(ie=I.payload,d=typeof ie=="function"?ie.call(Ee,x,d):ie,d==null)break e;x=wr({},x,d);break e;case 2:oo=!0}}ve.callback!==null&&(e.effectTag|=32,d=s.effects,d===null?s.effects=[ve]:d.push(ve))}if(ve=ve.next,ve===null||ve===v){if(d=s.shared.pending,d===null)break;ve=h.next=d.next,d.next=v,s.baseQueue=h=d,s.shared.pending=null}}while(1)}te===null?M=x:te.next=O,s.baseState=M,s.baseQueue=te,ff(T),e.expirationTime=T,e.memoizedState=x}}function J0(e,n,i){if(e=n.effects,n.effects=null,e!==null)for(n=0;nc?(g=de,de=null):g=de.sibling;var k=te(I,de,q[c],oe);if(k===null){de===null&&(de=g);break}e&&de&&k.alternate===null&&n(I,de),D=h(k,D,c),Ue===null?ge=k:Ue.sibling=k,Ue=k,de=g}if(c===q.length)return i(I,de),ge;if(de===null){for(;cc?(g=de,de=null):g=de.sibling;var E=te(I,de,k.value,oe);if(E===null){de===null&&(de=g);break}e&&de&&E.alternate===null&&n(I,de),D=h(E,D,c),Ue===null?ge=E:Ue.sibling=E,Ue=E,de=g}if(k.done)return i(I,de),ge;if(de===null){for(;!k.done;c++,k=q.next())k=O(I,k.value,oe),k!==null&&(D=h(k,D,c),Ue===null?ge=k:Ue.sibling=k,Ue=k);return ge}for(de=u(I,de);!k.done;c++,k=q.next())k=ve(de,I,c,k.value,oe),k!==null&&(e&&k.alternate!==null&&de.delete(k.key===null?c:k.key),D=h(k,D,c),Ue===null?ge=k:Ue.sibling=k,Ue=k);return e&&de.forEach(function(S){return n(I,S)}),ge}return function(I,D,q,oe){var ge=typeof q=="object"&&q!==null&&q.type===Ro&&q.key===null;ge&&(q=q.props.children);var Ue=typeof q=="object"&&q!==null;if(Ue)switch(q.$$typeof){case ls:e:{for(Ue=q.key,ge=D;ge!==null;){if(ge.key===Ue){switch(ge.tag){case 7:if(q.type===Ro){i(I,ge.sibling),D=s(ge,q.props.children),D.return=I,I=D;break e}break;default:if(ge.elementType===q.type){i(I,ge.sibling),D=s(ge,q.props),D.ref=rl(I,ge,q),D.return=I,I=D;break e}}i(I,ge);break}else n(I,ge);ge=ge.sibling}q.type===Ro?(D=ho(q.props.children,I.mode,oe,q.key),D.return=I,I=D):(oe=cf(q.type,q.key,q.props,null,I.mode,oe),oe.ref=rl(I,D,q),oe.return=I,I=oe)}return d(I);case Na:e:{for(ge=q.key;D!==null;){if(D.key===ge)if(D.tag===4&&D.stateNode.containerInfo===q.containerInfo&&D.stateNode.implementation===q.implementation){i(I,D.sibling),D=s(D,q.children||[]),D.return=I,I=D;break e}else{i(I,D);break}else n(I,D);D=D.sibling}D=Zd(q,I.mode,oe),D.return=I,I=D}return d(I)}if(typeof q=="string"||typeof q=="number")return q=""+q,D!==null&&D.tag===6?(i(I,D.sibling),D=s(D,q),D.return=I,I=D):(i(I,D),D=Qd(q,I.mode,oe),D.return=I,I=D),d(I);if(Hs(q))return Ee(I,D,q,oe);if(Du(q))return ie(I,D,q,oe);if(Ue&&Ws(I,q),typeof q=="undefined"&&!ge)switch(I.tag){case 1:case 0:throw I=I.type,Error(rt(152,I.displayName||I.name||"Component"))}return i(I,D)}}var Ua=iy(!0),md=iy(!1),il={},gi={current:il},ol={current:il},al={current:il};function Uo(e){if(e===il)throw Error(rt(174));return e}function yd(e,n){switch(An(al,n),An(ol,e),An(gi,il),e=n.nodeType,e){case 9:case 11:n=(n=n.documentElement)?n.namespaceURI:Nh(null,"");break;default:e=e===8?n.parentNode:n,n=e.namespaceURI||null,e=e.tagName,n=Nh(n,e)}_n(gi),An(gi,n)}function Ba(){_n(gi),_n(ol),_n(al)}function oy(e){Uo(al.current);var n=Uo(gi.current),i=Nh(n,e.type);n!==i&&(An(ol,e),An(gi,i))}function wd(e){ol.current===e&&(_n(gi),_n(ol))}var Nn={current:0};function Us(e){for(var n=e;n!==null;){if(n.tag===13){var i=n.memoizedState;if(i!==null&&(i=i.dehydrated,i===null||i.data===Vh||i.data===$h))return n}else if(n.tag===19&&n.memoizedProps.revealOrder!==void 0){if((n.effectTag&64)!=0)return n}else if(n.child!==null){n.child.return=n,n=n.child;continue}if(n===e)break;for(;n.sibling===null;){if(n.return===null||n.return===e)return null;n=n.return}n.sibling.return=n.return,n=n.sibling}return null}function xd(e,n){return{responder:e,props:n}}var Bs=ii.ReactCurrentDispatcher,qr=ii.ReactCurrentBatchConfig,lo=0,jn=null,lr=null,sr=null,js=!1;function Rr(){throw Error(rt(321))}function _d(e,n){if(n===null)return!1;for(var i=0;ih))throw Error(rt(301));h+=1,sr=lr=null,n.updateQueue=null,Bs.current=FS,e=i(u,s)}while(n.expirationTime===lo)}if(Bs.current=$s,n=lr!==null&&lr.next!==null,lo=0,sr=lr=jn=null,js=!1,n)throw Error(rt(300));return e}function ja(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return sr===null?jn.memoizedState=sr=e:sr=sr.next=e,sr}function Ya(){if(lr===null){var e=jn.alternate;e=e!==null?e.memoizedState:null}else e=lr.next;var n=sr===null?jn.memoizedState:sr.next;if(n!==null)sr=n,lr=e;else{if(e===null)throw Error(rt(310));lr=e,e={memoizedState:lr.memoizedState,baseState:lr.baseState,baseQueue:lr.baseQueue,queue:lr.queue,next:null},sr===null?jn.memoizedState=sr=e:sr=sr.next=e}return sr}function Bo(e,n){return typeof n=="function"?n(e):n}function Ys(e){var n=Ya(),i=n.queue;if(i===null)throw Error(rt(311));i.lastRenderedReducer=e;var u=lr,s=u.baseQueue,h=i.pending;if(h!==null){if(s!==null){var d=s.next;s.next=h.next,h.next=d}u.baseQueue=s=h,i.pending=null}if(s!==null){s=s.next,u=u.baseState;var v=d=h=null,x=s;do{var T=x.expirationTime;if(Tjn.expirationTime&&(jn.expirationTime=T,ff(T))}else v!==null&&(v=v.next={expirationTime:1073741823,suspenseConfig:x.suspenseConfig,action:x.action,eagerReducer:x.eagerReducer,eagerState:x.eagerState,next:null}),$y(T,x.suspenseConfig),u=x.eagerReducer===e?x.eagerState:e(u,x.action);x=x.next}while(x!==null&&x!==s);v===null?h=u:v.next=d,Ho(u,n.memoizedState)||(mi=!0),n.memoizedState=u,n.baseState=h,n.baseQueue=v,i.lastRenderedState=u}return[n.memoizedState,i.dispatch]}function qs(e){var n=Ya(),i=n.queue;if(i===null)throw Error(rt(311));i.lastRenderedReducer=e;var u=i.dispatch,s=i.pending,h=n.memoizedState;if(s!==null){i.pending=null;var d=s=s.next;do h=e(h,d.action),d=d.next;while(d!==s);Ho(h,n.memoizedState)||(mi=!0),n.memoizedState=h,n.baseQueue===null&&(n.baseState=h),i.lastRenderedState=h}return[h,u]}function Td(e){var n=ja();return typeof e=="function"&&(e=e()),n.memoizedState=n.baseState=e,e=n.queue={pending:null,dispatch:null,lastRenderedReducer:Bo,lastRenderedState:e},e=e.dispatch=dy.bind(null,jn,e),[n.memoizedState,e]}function Sd(e,n,i,u){return e={tag:e,create:n,destroy:i,deps:u,next:null},n=jn.updateQueue,n===null?(n={lastEffect:null},jn.updateQueue=n,n.lastEffect=e.next=e):(i=n.lastEffect,i===null?n.lastEffect=e.next=e:(u=i.next,i.next=e,e.next=u,n.lastEffect=e)),e}function ay(){return Ya().memoizedState}function bd(e,n,i,u){var s=ja();jn.effectTag|=e,s.memoizedState=Sd(1|n,i,void 0,u===void 0?null:u)}function Cd(e,n,i,u){var s=Ya();u=u===void 0?null:u;var h=void 0;if(lr!==null){var d=lr.memoizedState;if(h=d.destroy,u!==null&&_d(u,d.deps)){Sd(n,i,h,u);return}}jn.effectTag|=e,s.memoizedState=Sd(1|n,i,h,u)}function uy(e,n){return bd(516,4,e,n)}function Gs(e,n){return Cd(516,4,e,n)}function ly(e,n){return Cd(4,2,e,n)}function sy(e,n){if(typeof n=="function")return e=e(),n(e),function(){n(null)};if(n!=null)return e=e(),n.current=e,function(){n.current=null}}function fy(e,n,i){return i=i!=null?i.concat([e]):null,Cd(4,2,sy.bind(null,n,e),i)}function Md(){}function cy(e,n){return ja().memoizedState=[e,n===void 0?null:n],e}function Vs(e,n){var i=Ya();n=n===void 0?null:n;var u=i.memoizedState;return u!==null&&n!==null&&_d(n,u[1])?u[0]:(i.memoizedState=[e,n],e)}function hy(e,n){var i=Ya();n=n===void 0?null:n;var u=i.memoizedState;return u!==null&&n!==null&&_d(n,u[1])?u[0]:(e=e(),i.memoizedState=[e,n],e)}function Ed(e,n,i){var u=Os();io(98>u?98:u,function(){e(!0)}),io(97<\/script>",e=e.removeChild(e.firstChild)):typeof u.is=="string"?e=d.createElement(s,{is:u.is}):(e=d.createElement(s),s==="select"&&(d=e,u.multiple?d.multiple=!0:u.size&&(d.size=u.size))):e=d.createElementNS(e,s),e[to]=n,e[ks]=u,Cy(e,n,!1,!1),n.stateNode=e,d=Yh(s,u),s){case"iframe":case"object":case"embed":Cn("load",e),v=u;break;case"video":case"audio":for(v=0;vu.tailExpiration&&1n)&&qo.set(e,n)))}}function lf(e,n){e.expirationTimee?i:e,2>=e&&n!==e?0:e}function Hr(e){if(e.lastExpiredTime!==0)e.callbackExpirationTime=1073741823,e.callbackPriority=99,e.callbackNode=X0(Gd.bind(null,e));else{var n=sf(e),i=e.callbackNode;if(n===0)i!==null&&(e.callbackNode=null,e.callbackExpirationTime=0,e.callbackPriority=90);else{var u=wi();if(n===1073741823?u=99:n===1||n===2?u=95:(u=10*(1073741821-n)-10*(1073741821-u),u=0>=u?99:250>=u?98:5250>=u?97:95),i!==null){var s=e.callbackPriority;if(e.callbackExpirationTime===n&&s>=u)return;i!==q0&&H0(i)}e.callbackExpirationTime=n,e.callbackPriority=u,n=n===1073741823?X0(Gd.bind(null,e)):$0(u,jy.bind(null,e),{timeout:10*(1073741821-n)-jr()}),e.callbackNode=n}}}function jy(e,n){if(uf=0,n)return n=wi(),Jd(e,n),Hr(e),null;var i=sf(e);if(i!==0){if(n=e.callbackNode,(At&(ai|yi))!==$n)throw Error(rt(327));if(qa(),e===zr&&i===Lr||Vo(e,i),Ut!==null){var u=At;At|=ai;var s=Vy();do try{XS();break}catch(v){Gy(e,v)}while(1);if(hd(),At=u,Qs.current=s,Xn===Zs)throw n=tf,Vo(e,i),Qo(e,i),Hr(e),n;if(Ut===null)switch(s=e.finishedWork=e.current.alternate,e.finishedExpirationTime=i,u=Xn,zr=null,u){case Yo:case Zs:throw Error(rt(345));case Uy:Jd(e,2=i){e.lastPingedTime=i,Vo(e,i);break}}if(h=sf(e),h!==0&&h!==i)break;if(u!==0&&u!==i){e.lastPingedTime=u;break}e.timeoutHandle=Zh($o.bind(null,e),s);break}$o(e);break;case ef:if(Qo(e,i),u=e.lastSuspendedTime,i===u&&(e.nextKnownPendingLevel=Vd(s)),rf&&(s=e.lastPingedTime,s===0||s>=i)){e.lastPingedTime=i,Vo(e,i);break}if(s=sf(e),s!==0&&s!==i)break;if(u!==0&&u!==i){e.lastPingedTime=u;break}if(ul!==1073741823?u=10*(1073741821-ul)-jr():Ri===1073741823?u=0:(u=10*(1073741821-Ri)-5e3,s=jr(),i=10*(1073741821-i)-s,u=s-u,0>u&&(u=0),u=(120>u?120:480>u?480:1080>u?1080:1920>u?1920:3e3>u?3e3:4320>u?4320:1960*GS(u/1960))-u,i=u?u=0:(s=d.busyDelayMs|0,h=jr()-(10*(1073741821-h)-(d.timeoutMs|0||5e3)),u=h<=s?0:s+u-h),10 component higher in the tree to provide a loading indicator or placeholder to display.`+Sh(d))}Xn!==jd&&(Xn=By),v=Fd(v,d),O=h;do{switch(O.tag){case 3:k=v,O.effectTag|=4096,O.expirationTime=n;var pe=Hy(O,k,n);J0(O,pe);break e;case 1:k=v;var Re=O.type,B=O.stateNode;if((O.effectTag&64)==0&&(typeof Re.getDerivedStateFromError=="function"||B!==null&&typeof B.componentDidCatch=="function"&&(fo===null||!fo.has(B)))){O.effectTag|=4096,O.expirationTime=n;var c=Wy(O,k,n);J0(O,c);break e}}O=O.return}while(O!==null)}Ht=Qy(Ht)}catch(g){n=g;continue}break}while(1)}function Vy(){var e=Zs.current;return Zs.current=Xs,e===null?Xs:e}function Xy(e,n){eul&&(ul=e)}function $S(){for(;Ht!==null;)Ht=Ky(Ht)}function VS(){for(;Ht!==null&&!OS();)Ht=Ky(Ht)}function Ky(e){var n=Jy(e.alternate,e,Lr);return e.memoizedProps=e.pendingProps,n===null&&(n=Qy(e)),Uy.current=null,n}function Qy(e){Ht=e;do{var n=Ht.alternate;if(e=Ht.return,(Ht.effectTag&2048)==0){if(n=zS(n,Ht,Lr),Lr===1||Ht.childExpirationTime!==1){for(var i=0,u=Ht.child;u!==null;){var s=u.expirationTime,h=u.childExpirationTime;s>i&&(i=s),h>i&&(i=h),u=u.sibling}Ht.childExpirationTime=i}if(n!==null)return n;e!==null&&(e.effectTag&2048)==0&&(e.firstEffect===null&&(e.firstEffect=Ht.firstEffect),Ht.lastEffect!==null&&(e.lastEffect!==null&&(e.lastEffect.nextEffect=Ht.firstEffect),e.lastEffect=Ht.lastEffect),1e?n:e}function $o(e){var n=Ds();return io(99,XS.bind(null,e,n)),null}function XS(e,n){do Ba();while(ll!==null);if((Dt&(ai|mi))!==Vn)throw Error(it(327));var i=e.finishedWork,u=e.finishedExpirationTime;if(i===null)return null;if(e.finishedWork=null,e.finishedExpirationTime=0,i===e.current)throw Error(it(177));e.callbackNode=null,e.callbackExpirationTime=0,e.callbackPriority=90,e.nextKnownPendingLevel=0;var s=Vd(i);if(e.firstPendingTime=s,u<=e.lastSuspendedTime?e.firstSuspendedTime=e.lastSuspendedTime=e.nextKnownPendingLevel=0:u<=e.firstSuspendedTime&&(e.firstSuspendedTime=u-1),u<=e.lastPingedTime&&(e.lastPingedTime=0),u<=e.lastExpiredTime&&(e.lastExpiredTime=0),e===Ur&&(Ht=Ur=null,Lr=0),1v&&(S=v,v=d,d=S),S=s0(le,d),E=s0(le,v),S&&E&&(Re.rangeCount!==1||Re.anchorNode!==S.node||Re.anchorOffset!==S.offset||Re.focusNode!==E.node||Re.focusOffset!==E.offset)&&(pe=pe.createRange(),pe.setStart(S.node,S.offset),Re.removeAllRanges(),d>v?(Re.addRange(pe),Re.extend(E.node,E.offset)):(pe.setEnd(E.node,E.offset),Re.addRange(pe)))))),pe=[],Re=le;Re=Re.parentNode;)Re.nodeType===1&&pe.push({element:Re,left:Re.scrollLeft,top:Re.scrollTop});for(typeof le.focus=="function"&&le.focus(),le=0;le=i?Sy(e,n,i):(Dn(Mn,Mn.current&1),n=Ii(e,n,i),n!==null?n.sibling:null);Dn(Mn,Mn.current&1);break;case 19:if(u=n.childExpirationTime>=i,(e.effectTag&64)!=0){if(u)return Cy(e,n,i);n.effectTag|=64}if(s=n.memoizedState,s!==null&&(s.rendering=null,s.tail=null),Dn(Mn,Mn.current),!u)return null}return Ii(e,n,i)}gi=!1}}else gi=!1;switch(n.expirationTime=0,n.tag){case 2:if(u=n.type,e!==null&&(e.alternate=null,n.alternate=null,n.effectTag|=2),e=n.pendingProps,s=Ia(n,ar.current),Fa(n,i),s=Td(null,n,u,e,s,i),n.effectTag|=1,typeof s=="object"&&s!==null&&typeof s.render=="function"&&s.$$typeof===void 0){if(n.tag=1,n.memoizedState=null,n.updateQueue=null,Pr(u)){var h=!0;Ps(n)}else h=!1;n.memoizedState=s.state!==null&&s.state!==void 0?s.state:null,vd(n);var d=u.getDerivedStateFromProps;typeof d=="function"&&zs(n,u,d,e),s.updater=Hs,n.stateNode=s,s._reactInternalFiber=n,md(n,u,e,i),n=Dd(null,n,u,!0,h,i)}else n.tag=0,Wr(null,n,s,i),n=n.child;return n;case 16:e:{if(s=n.elementType,e!==null&&(e.alternate=null,n.alternate=null,n.effectTag|=2),e=n.pendingProps,ET(s),s._status!==1)throw s._result;switch(s=s._result,n.type=s,h=n.tag=nb(s),e=oi(s,e),h){case 0:n=Od(null,n,s,e,i);break e;case 1:n=ky(null,n,s,e,i);break e;case 11:n=yy(null,n,s,e,i);break e;case 14:n=wy(null,n,s,oi(s.type,e),u,i);break e}throw Error(it(306,s,""))}return n;case 0:return u=n.type,s=n.pendingProps,s=n.elementType===u?s:oi(u,s),Od(e,n,u,s,i);case 1:return u=n.type,s=n.pendingProps,s=n.elementType===u?s:oi(u,s),ky(e,n,u,s,i);case 3:if(Ty(n),u=n.updateQueue,e===null||u===null)throw Error(it(282));if(u=n.pendingProps,s=n.memoizedState,s=s!==null?s.element:null,gd(e,n),el(n,u,null,i),u=n.memoizedState.element,u===s)Ld(),n=Ii(e,n,i);else{if((s=n.stateNode.hydrate)&&(so=Pa(n.stateNode.containerInfo.firstChild),Ai=n,s=Bo=!0),s)for(i=yd(n,null,u,i),n.child=i;i;)i.effectTag=i.effectTag&-3|1024,i=i.sibling;else Wr(e,n,u,i),Ld();n=n.child}return n;case 5:return ay(n),e===null&&Pd(n),u=n.type,s=n.pendingProps,h=e!==null?e.memoizedProps:null,d=s.children,Zh(u,s)?d=null:h!==null&&Zh(u,h)&&(n.effectTag|=16),_y(e,n),n.mode&4&&i!==1&&s.hidden?(n.expirationTime=n.childExpirationTime=1,n=null):(Wr(e,n,d,i),n=n.child),n;case 6:return e===null&&Pd(n),null;case 13:return Sy(e,n,i);case 4:return wd(n,n.stateNode.containerInfo),u=n.pendingProps,e===null?n.child=za(n,null,u,i):Wr(e,n,u,i),n.child;case 11:return u=n.type,s=n.pendingProps,s=n.elementType===u?s:oi(u,s),yy(e,n,u,s,i);case 7:return Wr(e,n,n.pendingProps,i),n.child;case 8:return Wr(e,n,n.pendingProps.children,i),n.child;case 12:return Wr(e,n,n.pendingProps.children,i),n.child;case 10:e:{u=n.type._context,s=n.pendingProps,d=n.memoizedProps,h=s.value;var v=n.type._context;if(Dn(Is,v._currentValue),v._currentValue=h,d!==null)if(v=d.value,h=zo(v,h)?0:(typeof u._calculateChangedBits=="function"?u._calculateChangedBits(v,h):1073741823)|0,h===0){if(d.children===s.children&&!Nr.current){n=Ii(e,n,i);break e}}else for(v=n.child,v!==null&&(v.return=n);v!==null;){var k=v.dependencies;if(k!==null){d=v.child;for(var S=k.firstContext;S!==null;){if(S.context===u&&(S.observedBits&h)!=0){v.tag===1&&(S=ao(i,null),S.tag=2,uo(v,S)),v.expirationTime=n&&e<=n}function Ko(e,n){var i=e.firstSuspendedTime,u=e.lastSuspendedTime;in||i===0)&&(e.lastSuspendedTime=n),n<=e.lastPingedTime&&(e.lastPingedTime=0),n<=e.lastExpiredTime&&(e.lastExpiredTime=0)}function t1(e,n){n>e.firstPendingTime&&(e.firstPendingTime=n);var i=e.firstSuspendedTime;i!==0&&(n>=i?e.firstSuspendedTime=e.lastSuspendedTime=e.nextKnownPendingLevel=0:n>=e.lastSuspendedTime&&(e.lastSuspendedTime=n+1),n>e.nextKnownPendingLevel&&(e.nextKnownPendingLevel=n))}function ep(e,n){var i=e.lastExpiredTime;(i===0||i>n)&&(e.lastExpiredTime=n)}function df(e,n,i,u){var s=n.current,h=yi(),d=tl.suspense;h=qo(h,s,d);e:if(i){i=i._reactInternalFiber;t:{if(Ro(i)!==i||i.tag!==1)throw Error(it(170));var v=i;do{switch(v.tag){case 3:v=v.stateNode.context;break t;case 1:if(Pr(v.type)){v=v.stateNode.__reactInternalMemoizedMergedChildContext;break t}}v=v.return}while(v!==null);throw Error(it(171))}if(i.tag===1){var k=i.type;if(Pr(k)){i=z0(i,k,v);break e}}i=v}else i=ro;return n.context===null?n.context=i:n.pendingContext=i,n=ao(h,d),n.payload={element:e},u=u===void 0?null:u,u!==null&&(n.callback=u),uo(s,n),co(s,h),h}function tp(e){if(e=e.current,!e.child)return null;switch(e.child.tag){case 5:return e.child.stateNode;default:return e.child.stateNode}}function n1(e,n){e=e.memoizedState,e!==null&&e.dehydrated!==null&&e.retryTime{"use strict";function o1(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__=="undefined"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(o1)}catch(e){console.error(e)}}o1(),a1.exports=i1()});var s1=yt((XM,l1)=>{"use strict";var ub="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";l1.exports=ub});var d1=yt((KM,h1)=>{"use strict";var lb=s1();function f1(){}function c1(){}c1.resetWarningCache=f1;h1.exports=function(){function e(u,s,h,d,v,k){if(k!==lb){var S=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw S.name="Invariant Violation",S}}e.isRequired=e;function n(){return e}var i={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:n,element:e,elementType:e,instanceOf:n,node:e,objectOf:n,oneOf:n,oneOfType:n,shape:n,exact:n,checkPropTypes:c1,resetWarningCache:f1};return i.PropTypes=i,i}});var v1=yt((JM,p1)=>{p1.exports=d1()();var QM,ZM});var A1=yt((h2,D1)=>{D1.exports=Array.isArray||function(e){return Object.prototype.toString.call(e)=="[object Array]"}});var z1=yt((d2,ja)=>{var gf=A1();ja.exports=F1;ja.exports.parse=fp;ja.exports.compile=Cb;ja.exports.tokensToFunction=I1;ja.exports.tokensToRegExp=R1;var bb=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function fp(e,n){for(var i=[],u=0,s=0,h="",d=n&&n.delimiter||"/",v;(v=bb.exec(e))!=null;){var k=v[0],S=v[1],E=v.index;if(h+=e.slice(s,E),s=E+k.length,S){h+=S[1];continue}var O=e[s],ie=v[2],ve=v[3],Ee=v[4],ne=v[5],R=v[6],I=v[7];h&&(i.push(h),h="");var Y=ie!=null&&O!=null&&O!==ie,le=R==="+"||R==="*",pe=R==="?"||R==="*",Re=v[2]||d,B=Ee||ne;i.push({name:ve||u++,prefix:ie||"",delimiter:Re,optional:pe,repeat:le,partial:Y,asterisk:!!I,pattern:B?Nb(B):I?".*":"[^"+mf(Re)+"]+?"})}return s{"use strict";var Kn=typeof Symbol=="function"&&Symbol.for,dp=Kn?Symbol.for("react.element"):60103,pp=Kn?Symbol.for("react.portal"):60106,yf=Kn?Symbol.for("react.fragment"):60107,wf=Kn?Symbol.for("react.strict_mode"):60108,xf=Kn?Symbol.for("react.profiler"):60114,_f=Kn?Symbol.for("react.provider"):60109,kf=Kn?Symbol.for("react.context"):60110,vp=Kn?Symbol.for("react.async_mode"):60111,Tf=Kn?Symbol.for("react.concurrent_mode"):60111,Sf=Kn?Symbol.for("react.forward_ref"):60112,bf=Kn?Symbol.for("react.suspense"):60113,Db=Kn?Symbol.for("react.suspense_list"):60120,Cf=Kn?Symbol.for("react.memo"):60115,Mf=Kn?Symbol.for("react.lazy"):60116,Ab=Kn?Symbol.for("react.block"):60121,Ib=Kn?Symbol.for("react.fundamental"):60117,Rb=Kn?Symbol.for("react.responder"):60118,Fb=Kn?Symbol.for("react.scope"):60119;function jr(e){if(typeof e=="object"&&e!==null){var n=e.$$typeof;switch(n){case dp:switch(e=e.type,e){case vp:case Tf:case yf:case xf:case wf:case bf:return e;default:switch(e=e&&e.$$typeof,e){case kf:case Sf:case Mf:case Cf:case _f:return e;default:return n}}case pp:return n}}}function H1(e){return jr(e)===Tf}cn.AsyncMode=vp;cn.ConcurrentMode=Tf;cn.ContextConsumer=kf;cn.ContextProvider=_f;cn.Element=dp;cn.ForwardRef=Sf;cn.Fragment=yf;cn.Lazy=Mf;cn.Memo=Cf;cn.Portal=pp;cn.Profiler=xf;cn.StrictMode=wf;cn.Suspense=bf;cn.isAsyncMode=function(e){return H1(e)||jr(e)===vp};cn.isConcurrentMode=H1;cn.isContextConsumer=function(e){return jr(e)===kf};cn.isContextProvider=function(e){return jr(e)===_f};cn.isElement=function(e){return typeof e=="object"&&e!==null&&e.$$typeof===dp};cn.isForwardRef=function(e){return jr(e)===Sf};cn.isFragment=function(e){return jr(e)===yf};cn.isLazy=function(e){return jr(e)===Mf};cn.isMemo=function(e){return jr(e)===Cf};cn.isPortal=function(e){return jr(e)===pp};cn.isProfiler=function(e){return jr(e)===xf};cn.isStrictMode=function(e){return jr(e)===wf};cn.isSuspense=function(e){return jr(e)===bf};cn.isValidElementType=function(e){return typeof e=="string"||typeof e=="function"||e===yf||e===Tf||e===xf||e===wf||e===bf||e===Db||typeof e=="object"&&e!==null&&(e.$$typeof===Mf||e.$$typeof===Cf||e.$$typeof===_f||e.$$typeof===kf||e.$$typeof===Sf||e.$$typeof===Ib||e.$$typeof===Rb||e.$$typeof===Fb||e.$$typeof===Ab)};cn.typeOf=jr});var gp=yt((v2,U1)=>{"use strict";U1.exports=W1()});var V1=yt((m2,$1)=>{"use strict";var mp=gp(),zb={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},Hb={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},Wb={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},B1={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},yp={};yp[mp.ForwardRef]=Wb;yp[mp.Memo]=B1;function j1(e){return mp.isMemo(e)?B1:yp[e.$$typeof]||zb}var Ub=Object.defineProperty,Bb=Object.getOwnPropertyNames,Y1=Object.getOwnPropertySymbols,jb=Object.getOwnPropertyDescriptor,Yb=Object.getPrototypeOf,q1=Object.prototype;function G1(e,n,i){if(typeof n!="string"){if(q1){var u=Yb(n);u&&u!==q1&&G1(e,u,i)}var s=Bb(n);Y1&&(s=s.concat(Y1(n)));for(var h=j1(e),d=j1(n),v=0;v{(function(e){"use strict";var n={newline:/^\n+/,code:/^( {4}[^\n]+\n*)+/,fences:/^ {0,3}(`{3,}|~{3,})([^`~\n]*)\n(?:|([\s\S]*?)\n)(?: {0,3}\1[~`]* *(?:\n+|$)|$)/,hr:/^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\* *){3,})(?:\n+|$)/,heading:/^ {0,3}(#{1,6}) +([^\n]*?)(?: +#+)? *(?:\n+|$)/,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( {0,3})(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,html:"^ {0,3}(?:<(script|pre|style)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?\\?>\\n*|\\n*|\\n*|)[\\s\\S]*?(?:\\n{2,}|$)|<(?!script|pre|style)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:\\n{2,}|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:\\n{2,}|$))",def:/^ {0,3}\[(label)\]: *\n? *]+)>?(?:(?: +\n? *| *\n *)(title))? *(?:\n+|$)/,nptable:R,table:R,lheading:/^([^\n]+)\n {0,3}(=+|-+) *(?:\n+|$)/,_paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html)[^\n]+)*)/,text:/^[^\n]+/};n._label=/(?!\s*\])(?:\\[\[\]]|[^\[\]])+/,n._title=/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/,n.def=O(n.def).replace("label",n._label).replace("title",n._title).getRegex(),n.bullet=/(?:[*+-]|\d{1,9}\.)/,n.item=/^( *)(bull) ?[^\n]*(?:\n(?!\1bull ?)[^\n]*)*/,n.item=O(n.item,"gm").replace(/bull/g,n.bullet).getRegex(),n.list=O(n.list).replace(/bull/g,n.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+n.def.source+")").getRegex(),n._tag="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",n._comment=//,n.html=O(n.html,"i").replace("comment",n._comment).replace("tag",n._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),n.paragraph=O(n._paragraph).replace("hr",n.hr).replace("heading"," {0,3}#{1,6} +").replace("|lheading","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}|~{3,})[^`\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|!--)").replace("tag",n._tag).getRegex(),n.blockquote=O(n.blockquote).replace("paragraph",n.paragraph).getRegex(),n.normal=I({},n),n.gfm=I({},n.normal,{nptable:/^ *([^|\n ].*\|.*)\n *([-:]+ *\|[-| :]*)(?:\n((?:.*[^>\n ].*(?:\n|$))*)\n*|$)/,table:/^ *\|(.+)\n *\|?( *[-:]+[-| :]*)(?:\n((?: *[^>\n ].*(?:\n|$))*)\n*|$)/}),n.pedantic=I({},n.normal,{html:O(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",n._comment).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^ *(#{1,6}) *([^\n]+?) *(?:#+ *)?(?:\n+|$)/,fences:R,paragraph:O(n.normal._paragraph).replace("hr",n.hr).replace("heading",` *#{1,6} *[^ -]`).replace("lheading",n.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()});function i(c){this.tokens=[],this.tokens.links=Object.create(null),this.options=c||B.defaults,this.rules=n.normal,this.options.pedantic?this.rules=n.pedantic:this.options.gfm&&(this.rules=n.gfm)}i.rules=n,i.lex=function(c,g){var x=new i(g);return x.lex(c)},i.prototype.lex=function(c){return c=c.replace(/\r\n|\r/g,` +Add a component higher in the tree to provide a loading indicator or placeholder to display.`+Th(d))}Xn!==Bd&&(Xn=Uy),v=Rd(v,d),O=h;do{switch(O.tag){case 3:x=v,O.effectTag|=4096,O.expirationTime=n;var ge=zy(O,x,n);Z0(O,ge);break e;case 1:x=v;var Ue=O.type,de=O.stateNode;if((O.effectTag&64)==0&&(typeof Ue.getDerivedStateFromError=="function"||de!==null&&typeof de.componentDidCatch=="function"&&(fo===null||!fo.has(de)))){O.effectTag|=4096,O.expirationTime=n;var c=Hy(O,x,n);Z0(O,c);break e}}O=O.return}while(O!==null)}Ut=Ky(Ut)}catch(g){n=g;continue}break}while(1)}function Vy(){var e=Qs.current;return Qs.current=$s,e===null?$s:e}function $y(e,n){ell&&(ll=e)}function $S(){for(;Ut!==null;)Ut=Xy(Ut)}function XS(){for(;Ut!==null&&!DS();)Ut=Xy(Ut)}function Xy(e){var n=Zy(e.alternate,e,Lr);return e.memoizedProps=e.pendingProps,n===null&&(n=Ky(e)),Wy.current=null,n}function Ky(e){Ut=e;do{var n=Ut.alternate;if(e=Ut.return,(Ut.effectTag&2048)==0){if(n=HS(n,Ut,Lr),Lr===1||Ut.childExpirationTime!==1){for(var i=0,u=Ut.child;u!==null;){var s=u.expirationTime,h=u.childExpirationTime;s>i&&(i=s),h>i&&(i=h),u=u.sibling}Ut.childExpirationTime=i}if(n!==null)return n;e!==null&&(e.effectTag&2048)==0&&(e.firstEffect===null&&(e.firstEffect=Ut.firstEffect),Ut.lastEffect!==null&&(e.lastEffect!==null&&(e.lastEffect.nextEffect=Ut.firstEffect),e.lastEffect=Ut.lastEffect),1e?n:e}function $o(e){var n=Os();return io(99,KS.bind(null,e,n)),null}function KS(e,n){do qa();while(sl!==null);if((At&(ai|yi))!==$n)throw Error(rt(327));var i=e.finishedWork,u=e.finishedExpirationTime;if(i===null)return null;if(e.finishedWork=null,e.finishedExpirationTime=0,i===e.current)throw Error(rt(177));e.callbackNode=null,e.callbackExpirationTime=0,e.callbackPriority=90,e.nextKnownPendingLevel=0;var s=Vd(i);if(e.firstPendingTime=s,u<=e.lastSuspendedTime?e.firstSuspendedTime=e.lastSuspendedTime=e.nextKnownPendingLevel=0:u<=e.firstSuspendedTime&&(e.firstSuspendedTime=u-1),u<=e.lastPingedTime&&(e.lastPingedTime=0),u<=e.lastExpiredTime&&(e.lastExpiredTime=0),e===zr&&(Ut=zr=null,Lr=0),1v&&(T=v,v=d,d=T),T=l0(oe,d),M=l0(oe,v),T&&M&&(Ue.rangeCount!==1||Ue.anchorNode!==T.node||Ue.anchorOffset!==T.offset||Ue.focusNode!==M.node||Ue.focusOffset!==M.offset)&&(ge=ge.createRange(),ge.setStart(T.node,T.offset),Ue.removeAllRanges(),d>v?(Ue.addRange(ge),Ue.extend(M.node,M.offset)):(ge.setEnd(M.node,M.offset),Ue.addRange(ge)))))),ge=[],Ue=oe;Ue=Ue.parentNode;)Ue.nodeType===1&&ge.push({element:Ue,left:Ue.scrollLeft,top:Ue.scrollTop});for(typeof oe.focus=="function"&&oe.focus(),oe=0;oe=i?Ty(e,n,i):(An(Nn,Nn.current&1),n=Ii(e,n,i),n!==null?n.sibling:null);An(Nn,Nn.current&1);break;case 19:if(u=n.childExpirationTime>=i,(e.effectTag&64)!=0){if(u)return by(e,n,i);n.effectTag|=64}if(s=n.memoizedState,s!==null&&(s.rendering=null,s.tail=null),An(Nn,Nn.current),!u)return null}return Ii(e,n,i)}mi=!1}}else mi=!1;switch(n.expirationTime=0,n.tag){case 2:if(u=n.type,e!==null&&(e.alternate=null,n.alternate=null,n.effectTag|=2),e=n.pendingProps,s=za(n,ur.current),Wa(n,i),s=kd(null,n,u,e,s,i),n.effectTag|=1,typeof s=="object"&&s!==null&&typeof s.render=="function"&&s.$$typeof===void 0){if(n.tag=1,n.memoizedState=null,n.updateQueue=null,Pr(u)){var h=!0;Ns(n)}else h=!1;n.memoizedState=s.state!==null&&s.state!==void 0?s.state:null,pd(n);var d=u.getDerivedStateFromProps;typeof d=="function"&&Fs(n,u,d,e),s.updater=zs,n.stateNode=s,s._reactInternalFiber=n,gd(n,u,e,i),n=Od(null,n,u,!0,h,i)}else n.tag=0,Fr(null,n,s,i),n=n.child;return n;case 16:e:{if(s=n.elementType,e!==null&&(e.alternate=null,n.alternate=null,n.effectTag|=2),e=n.pendingProps,NT(s),s._status!==1)throw s._result;switch(s=s._result,n.type=s,h=n.tag=rb(s),e=oi(s,e),h){case 0:n=Ld(null,n,s,e,i);break e;case 1:n=_y(null,n,s,e,i);break e;case 11:n=my(null,n,s,e,i);break e;case 14:n=yy(null,n,s,oi(s.type,e),u,i);break e}throw Error(rt(306,s,""))}return n;case 0:return u=n.type,s=n.pendingProps,s=n.elementType===u?s:oi(u,s),Ld(e,n,u,s,i);case 1:return u=n.type,s=n.pendingProps,s=n.elementType===u?s:oi(u,s),_y(e,n,u,s,i);case 3:if(ky(n),u=n.updateQueue,e===null||u===null)throw Error(rt(282));if(u=n.pendingProps,s=n.memoizedState,s=s!==null?s.element:null,vd(e,n),tl(n,u,null,i),u=n.memoizedState.element,u===s)Pd(),n=Ii(e,n,i);else{if((s=n.stateNode.hydrate)&&(so=Da(n.stateNode.containerInfo.firstChild),Ai=n,s=jo=!0),s)for(i=md(n,null,u,i),n.child=i;i;)i.effectTag=i.effectTag&-3|1024,i=i.sibling;else Fr(e,n,u,i),Pd();n=n.child}return n;case 5:return oy(n),e===null&&Nd(n),u=n.type,s=n.pendingProps,h=e!==null?e.memoizedProps:null,d=s.children,Qh(u,s)?d=null:h!==null&&Qh(u,h)&&(n.effectTag|=16),xy(e,n),n.mode&4&&i!==1&&s.hidden?(n.expirationTime=n.childExpirationTime=1,n=null):(Fr(e,n,d,i),n=n.child),n;case 6:return e===null&&Nd(n),null;case 13:return Ty(e,n,i);case 4:return yd(n,n.stateNode.containerInfo),u=n.pendingProps,e===null?n.child=Ua(n,null,u,i):Fr(e,n,u,i),n.child;case 11:return u=n.type,s=n.pendingProps,s=n.elementType===u?s:oi(u,s),my(e,n,u,s,i);case 7:return Fr(e,n,n.pendingProps,i),n.child;case 8:return Fr(e,n,n.pendingProps.children,i),n.child;case 12:return Fr(e,n,n.pendingProps.children,i),n.child;case 10:e:{u=n.type._context,s=n.pendingProps,d=n.memoizedProps,h=s.value;var v=n.type._context;if(An(As,v._currentValue),v._currentValue=h,d!==null)if(v=d.value,h=Ho(v,h)?0:(typeof u._calculateChangedBits=="function"?u._calculateChangedBits(v,h):1073741823)|0,h===0){if(d.children===s.children&&!Nr.current){n=Ii(e,n,i);break e}}else for(v=n.child,v!==null&&(v.return=n);v!==null;){var x=v.dependencies;if(x!==null){d=v.child;for(var T=x.firstContext;T!==null;){if(T.context===u&&(T.observedBits&h)!=0){v.tag===1&&(T=ao(i,null),T.tag=2,uo(v,T)),v.expirationTime=n&&e<=n}function Qo(e,n){var i=e.firstSuspendedTime,u=e.lastSuspendedTime;in||i===0)&&(e.lastSuspendedTime=n),n<=e.lastPingedTime&&(e.lastPingedTime=0),n<=e.lastExpiredTime&&(e.lastExpiredTime=0)}function e1(e,n){n>e.firstPendingTime&&(e.firstPendingTime=n);var i=e.firstSuspendedTime;i!==0&&(n>=i?e.firstSuspendedTime=e.lastSuspendedTime=e.nextKnownPendingLevel=0:n>=e.lastSuspendedTime&&(e.lastSuspendedTime=n+1),n>e.nextKnownPendingLevel&&(e.nextKnownPendingLevel=n))}function Jd(e,n){var i=e.lastExpiredTime;(i===0||i>n)&&(e.lastExpiredTime=n)}function hf(e,n,i,u){var s=n.current,h=wi(),d=nl.suspense;h=Go(h,s,d);e:if(i){i=i._reactInternalFiber;t:{if(Fo(i)!==i||i.tag!==1)throw Error(rt(170));var v=i;do{switch(v.tag){case 3:v=v.stateNode.context;break t;case 1:if(Pr(v.type)){v=v.stateNode.__reactInternalMemoizedMergedChildContext;break t}}v=v.return}while(v!==null);throw Error(rt(171))}if(i.tag===1){var x=i.type;if(Pr(x)){i=F0(i,x,v);break e}}i=v}else i=ro;return n.context===null?n.context=i:n.pendingContext=i,n=ao(h,d),n.payload={element:e},u=u===void 0?null:u,u!==null&&(n.callback=u),uo(s,n),co(s,h),h}function ep(e){if(e=e.current,!e.child)return null;switch(e.child.tag){case 5:return e.child.stateNode;default:return e.child.stateNode}}function t1(e,n){e=e.memoizedState,e!==null&&e.dehydrated!==null&&e.retryTime{"use strict";function i1(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__=="undefined"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(i1)}catch(e){console.error(e)}}i1(),o1.exports=r1()});var l1=xt((KM,u1)=>{"use strict";var lb="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";u1.exports=lb});var h1=xt((QM,c1)=>{"use strict";var sb=l1();function s1(){}function f1(){}f1.resetWarningCache=s1;c1.exports=function(){function e(u,s,h,d,v,x){if(x!==sb){var T=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw T.name="Invariant Violation",T}}e.isRequired=e;function n(){return e}var i={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:n,element:e,elementType:e,instanceOf:n,node:e,objectOf:n,oneOf:n,oneOfType:n,shape:n,exact:n,checkPropTypes:f1,resetWarningCache:s1};return i.PropTypes=i,i}});var p1=xt((e2,d1)=>{d1.exports=h1()();var ZM,JM});var L1=xt((c2,P1)=>{P1.exports=Array.isArray||function(e){return Object.prototype.toString.call(e)=="[object Array]"}});var I1=xt((h2,Ga)=>{var vf=L1();Ga.exports=A1;Ga.exports.parse=up;Ga.exports.compile=_b;Ga.exports.tokensToFunction=O1;Ga.exports.tokensToRegExp=D1;var xb=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function up(e,n){for(var i=[],u=0,s=0,h="",d=n&&n.delimiter||"/",v;(v=xb.exec(e))!=null;){var x=v[0],T=v[1],M=v.index;if(h+=e.slice(s,M),s=M+x.length,T){h+=T[1];continue}var O=e[s],te=v[2],ve=v[3],Ee=v[4],ie=v[5],I=v[6],D=v[7];h&&(i.push(h),h="");var q=te!=null&&O!=null&&O!==te,oe=I==="+"||I==="*",ge=I==="?"||I==="*",Ue=v[2]||d,de=Ee||ie;i.push({name:ve||u++,prefix:te||"",delimiter:Ue,optional:ge,repeat:oe,partial:q,asterisk:!!D,pattern:de?Sb(de):D?".*":"[^"+gf(Ue)+"]+?"})}return s{"use strict";var Kn=typeof Symbol=="function"&&Symbol.for,fp=Kn?Symbol.for("react.element"):60103,cp=Kn?Symbol.for("react.portal"):60106,mf=Kn?Symbol.for("react.fragment"):60107,yf=Kn?Symbol.for("react.strict_mode"):60108,wf=Kn?Symbol.for("react.profiler"):60114,xf=Kn?Symbol.for("react.provider"):60109,_f=Kn?Symbol.for("react.context"):60110,hp=Kn?Symbol.for("react.async_mode"):60111,kf=Kn?Symbol.for("react.concurrent_mode"):60111,Tf=Kn?Symbol.for("react.forward_ref"):60112,Sf=Kn?Symbol.for("react.suspense"):60113,Eb=Kn?Symbol.for("react.suspense_list"):60120,bf=Kn?Symbol.for("react.memo"):60115,Cf=Kn?Symbol.for("react.lazy"):60116,Nb=Kn?Symbol.for("react.block"):60121,Pb=Kn?Symbol.for("react.fundamental"):60117,Lb=Kn?Symbol.for("react.responder"):60118,Ob=Kn?Symbol.for("react.scope"):60119;function Ur(e){if(typeof e=="object"&&e!==null){var n=e.$$typeof;switch(n){case fp:switch(e=e.type,e){case hp:case kf:case mf:case wf:case yf:case Sf:return e;default:switch(e=e&&e.$$typeof,e){case _f:case Tf:case Cf:case bf:case xf:return e;default:return n}}case cp:return n}}}function R1(e){return Ur(e)===kf}ln.AsyncMode=hp;ln.ConcurrentMode=kf;ln.ContextConsumer=_f;ln.ContextProvider=xf;ln.Element=fp;ln.ForwardRef=Tf;ln.Fragment=mf;ln.Lazy=Cf;ln.Memo=bf;ln.Portal=cp;ln.Profiler=wf;ln.StrictMode=yf;ln.Suspense=Sf;ln.isAsyncMode=function(e){return R1(e)||Ur(e)===hp};ln.isConcurrentMode=R1;ln.isContextConsumer=function(e){return Ur(e)===_f};ln.isContextProvider=function(e){return Ur(e)===xf};ln.isElement=function(e){return typeof e=="object"&&e!==null&&e.$$typeof===fp};ln.isForwardRef=function(e){return Ur(e)===Tf};ln.isFragment=function(e){return Ur(e)===mf};ln.isLazy=function(e){return Ur(e)===Cf};ln.isMemo=function(e){return Ur(e)===bf};ln.isPortal=function(e){return Ur(e)===cp};ln.isProfiler=function(e){return Ur(e)===wf};ln.isStrictMode=function(e){return Ur(e)===yf};ln.isSuspense=function(e){return Ur(e)===Sf};ln.isValidElementType=function(e){return typeof e=="string"||typeof e=="function"||e===mf||e===kf||e===wf||e===yf||e===Sf||e===Eb||typeof e=="object"&&e!==null&&(e.$$typeof===Cf||e.$$typeof===bf||e.$$typeof===xf||e.$$typeof===_f||e.$$typeof===Tf||e.$$typeof===Pb||e.$$typeof===Lb||e.$$typeof===Ob||e.$$typeof===Nb)};ln.typeOf=Ur});var dp=xt((p2,z1)=>{"use strict";z1.exports=F1()});var q1=xt((g2,Y1)=>{"use strict";var pp=dp(),Db={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},Ab={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},Ib={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},H1={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},vp={};vp[pp.ForwardRef]=Ib;vp[pp.Memo]=H1;function W1(e){return pp.isMemo(e)?H1:vp[e.$$typeof]||Db}var Rb=Object.defineProperty,Fb=Object.getOwnPropertyNames,U1=Object.getOwnPropertySymbols,zb=Object.getOwnPropertyDescriptor,Hb=Object.getPrototypeOf,B1=Object.prototype;function j1(e,n,i){if(typeof n!="string"){if(B1){var u=Hb(n);u&&u!==B1&&j1(e,u,i)}var s=Fb(n);U1&&(s=s.concat(U1(n)));for(var h=W1(e),d=W1(n),v=0;v{(function(e){"use strict";var n={newline:/^\n+/,code:/^( {4}[^\n]+\n*)+/,fences:/^ {0,3}(`{3,}|~{3,})([^`~\n]*)\n(?:|([\s\S]*?)\n)(?: {0,3}\1[~`]* *(?:\n+|$)|$)/,hr:/^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\* *){3,})(?:\n+|$)/,heading:/^ {0,3}(#{1,6}) +([^\n]*?)(?: +#+)? *(?:\n+|$)/,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( {0,3})(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,html:"^ {0,3}(?:<(script|pre|style)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?\\?>\\n*|\\n*|\\n*|)[\\s\\S]*?(?:\\n{2,}|$)|<(?!script|pre|style)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:\\n{2,}|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:\\n{2,}|$))",def:/^ {0,3}\[(label)\]: *\n? *]+)>?(?:(?: +\n? *| *\n *)(title))? *(?:\n+|$)/,nptable:I,table:I,lheading:/^([^\n]+)\n {0,3}(=+|-+) *(?:\n+|$)/,_paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html)[^\n]+)*)/,text:/^[^\n]+/};n._label=/(?!\s*\])(?:\\[\[\]]|[^\[\]])+/,n._title=/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/,n.def=O(n.def).replace("label",n._label).replace("title",n._title).getRegex(),n.bullet=/(?:[*+-]|\d{1,9}\.)/,n.item=/^( *)(bull) ?[^\n]*(?:\n(?!\1bull ?)[^\n]*)*/,n.item=O(n.item,"gm").replace(/bull/g,n.bullet).getRegex(),n.list=O(n.list).replace(/bull/g,n.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+n.def.source+")").getRegex(),n._tag="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",n._comment=//,n.html=O(n.html,"i").replace("comment",n._comment).replace("tag",n._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),n.paragraph=O(n._paragraph).replace("hr",n.hr).replace("heading"," {0,3}#{1,6} +").replace("|lheading","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}|~{3,})[^`\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|!--)").replace("tag",n._tag).getRegex(),n.blockquote=O(n.blockquote).replace("paragraph",n.paragraph).getRegex(),n.normal=D({},n),n.gfm=D({},n.normal,{nptable:/^ *([^|\n ].*\|.*)\n *([-:]+ *\|[-| :]*)(?:\n((?:.*[^>\n ].*(?:\n|$))*)\n*|$)/,table:/^ *\|(.+)\n *\|?( *[-:]+[-| :]*)(?:\n((?: *[^>\n ].*(?:\n|$))*)\n*|$)/}),n.pedantic=D({},n.normal,{html:O(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",n._comment).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^ *(#{1,6}) *([^\n]+?) *(?:#+ *)?(?:\n+|$)/,fences:I,paragraph:O(n.normal._paragraph).replace("hr",n.hr).replace("heading",` *#{1,6} *[^ +]`).replace("lheading",n.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()});function i(c){this.tokens=[],this.tokens.links=Object.create(null),this.options=c||de.defaults,this.rules=n.normal,this.options.pedantic?this.rules=n.pedantic:this.options.gfm&&(this.rules=n.gfm)}i.rules=n,i.lex=function(c,g){var k=new i(g);return k.lex(c)},i.prototype.lex=function(c){return c=c.replace(/\r\n|\r/g,` `).replace(/\t/g," ").replace(/\u00a0/g," ").replace(/\u2424/g,` -`),this.token(c,!0)},i.prototype.token=function(c,g){c=c.replace(/^ +$/gm,"");for(var x,P,b,U,y,D,q,oe,Le,we,re,We,ce,ke,Ce,me;c;){if((b=this.rules.newline.exec(c))&&(c=c.substring(b[0].length),b[0].length>1&&this.tokens.push({type:"space"})),b=this.rules.code.exec(c)){var Ue=this.tokens[this.tokens.length-1];c=c.substring(b[0].length),Ue&&Ue.type==="paragraph"?Ue.text+=` -`+b[0].trimRight():(b=b[0].replace(/^ {4}/gm,""),this.tokens.push({type:"code",codeBlockStyle:"indented",text:this.options.pedantic?b:le(b,` -`)}));continue}if(b=this.rules.fences.exec(c)){c=c.substring(b[0].length),this.tokens.push({type:"code",lang:b[2]?b[2].trim():b[2],text:b[3]||""});continue}if(b=this.rules.heading.exec(c)){c=c.substring(b[0].length),this.tokens.push({type:"heading",depth:b[1].length,text:b[2]});continue}if((b=this.rules.nptable.exec(c))&&(D={type:"table",header:Y(b[1].replace(/^ *| *\| *$/g,"")),align:b[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:b[3]?b[3].replace(/\n$/,"").split(` -`):[]},D.header.length===D.align.length)){for(c=c.substring(b[0].length),re=0;re ?/gm,""),this.token(b,g),this.tokens.push({type:"blockquote_end"});continue}if(b=this.rules.list.exec(c)){for(c=c.substring(b[0].length),U=b[2],ke=U.length>1,q={type:"list_start",ordered:ke,start:ke?+U:"",loose:!1},this.tokens.push(q),b=b[0].match(this.rules.item),oe=[],x=!1,ce=b.length,re=0;re1?y.length===1:y.length>1||this.options.smartLists&&y!==U)&&(c=b.slice(re+1).join(` -`)+c,re=ce-1)),P=x||/\n\n(?!\s*$)/.test(D),re!==ce-1&&(x=D.charAt(D.length-1)===` -`,P||(P=x)),P&&(q.loose=!0),Ce=/^\[[ xX]\] /.test(D),me=void 0,Ce&&(me=D[1]!==" ",D=D.replace(/^\[[ xX]\] +/,"")),Le={type:"list_item_start",task:Ce,checked:me,loose:P},oe.push(Le),this.tokens.push(Le),this.token(D,!1),this.tokens.push({type:"list_item_end"});if(q.loose)for(ce=oe.length,re=0;re?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:R,tag:"^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^",link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(?!\s*\])((?:\\[\[\]]?|[^\[\]\\])+)\]/,nolink:/^!?\[(?!\s*\])((?:\[[^\[\]]*\]|\\[\[\]]|[^\[\]])*)\](?:\[\])?/,strong:/^__([^\s_])__(?!_)|^\*\*([^\s*])\*\*(?!\*)|^__([^\s][\s\S]*?[^\s])__(?!_)|^\*\*([^\s][\s\S]*?[^\s])\*\*(?!\*)/,em:/^_([^\s_])_(?!_)|^\*([^\s*<\[])\*(?!\*)|^_([^\s<][\s\S]*?[^\s_])_(?!_|[^\spunctuation])|^_([^\s_<][\s\S]*?[^\s])_(?!_|[^\spunctuation])|^\*([^\s<"][\s\S]*?[^\s\*])\*(?!\*|[^\spunctuation])|^\*([^\s*"<\[][\s\S]*?[^\s])\*(?!\*)/,code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^( {2,}|\\)\n(?!\s*$)/,del:R,text:/^(`+|[^`])(?:[\s\S]*?(?:(?=[\\?@\\[^_{|}~`,u.em=O(u.em).replace(/punctuation/g,u._punctuation).getRegex(),u._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g,u._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,u._email=/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/,u.autolink=O(u.autolink).replace("scheme",u._scheme).replace("email",u._email).getRegex(),u._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/,u.tag=O(u.tag).replace("comment",n._comment).replace("attribute",u._attribute).getRegex(),u._label=/(?:\[[^\[\]]*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,u._href=/<(?:\\[<>]?|[^\s<>\\])*>|[^\s\x00-\x1f]*/,u._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/,u.link=O(u.link).replace("label",u._label).replace("href",u._href).replace("title",u._title).getRegex(),u.reflink=O(u.reflink).replace("label",u._label).getRegex(),u.normal=I({},u),u.pedantic=I({},u.normal,{strong:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,em:/^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/,link:O(/^!?\[(label)\]\((.*?)\)/).replace("label",u._label).getRegex(),reflink:O(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",u._label).getRegex()}),u.gfm=I({},u.normal,{escape:O(u.escape).replace("])","~|])").getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,del:/^~+(?=\S)([\s\S]*?\S)~+/,text:/^(`+|[^`])(?:[\s\S]*?(?:(?=[\\/i.test(y[0])&&(this.inLink=!1),!this.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(y[0])?this.inRawBlock=!0:this.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(y[0])&&(this.inRawBlock=!1),c=c.substring(y[0].length),g+=this.options.sanitize?this.options.sanitizer?this.options.sanitizer(y[0]):S(y[0]):y[0];continue}if(y=this.rules.link.exec(c)){var q=pe(y[2],"()");if(q>-1){var oe=4+y[1].length+q;y[2]=y[2].substring(0,q),y[0]=y[0].substring(0,oe).trim(),y[3]=""}c=c.substring(y[0].length),this.inLink=!0,b=y[2],this.options.pedantic?(x=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(b),x?(b=x[1],U=x[3]):U=""):U=y[3]?y[3].slice(1,-1):"",b=b.trim().replace(/^<([\s\S]*)>$/,"$1"),g+=this.outputLink(y,{href:s.escapes(b),title:s.escapes(U)}),this.inLink=!1;continue}if((y=this.rules.reflink.exec(c))||(y=this.rules.nolink.exec(c))){if(c=c.substring(y[0].length),x=(y[2]||y[1]).replace(/\s+/g," "),x=this.links[x.toLowerCase()],!x||!x.href){g+=y[0].charAt(0),c=y[0].substring(1)+c;continue}this.inLink=!0,g+=this.outputLink(y,x),this.inLink=!1;continue}if(y=this.rules.strong.exec(c)){c=c.substring(y[0].length),g+=this.renderer.strong(this.output(y[4]||y[3]||y[2]||y[1]));continue}if(y=this.rules.em.exec(c)){c=c.substring(y[0].length),g+=this.renderer.em(this.output(y[6]||y[5]||y[4]||y[3]||y[2]||y[1]));continue}if(y=this.rules.code.exec(c)){c=c.substring(y[0].length),g+=this.renderer.codespan(S(y[2].trim(),!0));continue}if(y=this.rules.br.exec(c)){c=c.substring(y[0].length),g+=this.renderer.br();continue}if(y=this.rules.del.exec(c)){c=c.substring(y[0].length),g+=this.renderer.del(this.output(y[1]));continue}if(y=this.rules.autolink.exec(c)){c=c.substring(y[0].length),y[2]==="@"?(P=S(this.mangle(y[1])),b="mailto:"+P):(P=S(y[1]),b=P),g+=this.renderer.link(b,null,P);continue}if(!this.inLink&&(y=this.rules.url.exec(c))){if(y[2]==="@")P=S(y[0]),b="mailto:"+P;else{do D=y[0],y[0]=this.rules._backpedal.exec(y[0])[0];while(D!==y[0]);P=S(y[0]),y[1]==="www."?b="http://"+P:b=P}c=c.substring(y[0].length),g+=this.renderer.link(b,null,P);continue}if(y=this.rules.text.exec(c)){c=c.substring(y[0].length),this.inRawBlock?g+=this.renderer.text(this.options.sanitize?this.options.sanitizer?this.options.sanitizer(y[0]):S(y[0]):y[0]):g+=this.renderer.text(S(this.smartypants(y[0])));continue}if(c)throw new Error("Infinite loop on byte: "+c.charCodeAt(0))}return g},s.escapes=function(c){return c&&c.replace(s.rules._escapes,"$1")},s.prototype.outputLink=function(c,g){var x=g.href,P=g.title?S(g.title):null;return c[0].charAt(0)!=="!"?this.renderer.link(x,P,this.output(c[1])):this.renderer.image(x,P,S(c[1]))},s.prototype.smartypants=function(c){return this.options.smartypants?c.replace(/---/g,"\u2014").replace(/--/g,"\u2013").replace(/(^|[-\u2014/(\[{"\s])'/g,"$1\u2018").replace(/'/g,"\u2019").replace(/(^|[-\u2014/(\[{\u2018\s])"/g,"$1\u201C").replace(/"/g,"\u201D").replace(/\.{3}/g,"\u2026"):c},s.prototype.mangle=function(c){if(!this.options.mangle)return c;for(var g="",x=c.length,P=0,b;P.5&&(b="x"+b.toString(16)),g+="&#"+b+";";return g};function h(c){this.options=c||B.defaults}h.prototype.code=function(c,g,x){var P=(g||"").match(/\S*/)[0];if(this.options.highlight){var b=this.options.highlight(c,P);b!=null&&b!==c&&(x=!0,c=b)}return P?'
'+(x?c:S(c,!0))+`
-`:"
"+(x?c:S(c,!0))+"
"},h.prototype.blockquote=function(c){return`
+`),this.token(c,!0)},i.prototype.token=function(c,g){c=c.replace(/^ +$/gm,"");for(var k,E,S,X,m,A,W,he,Oe,fe,ne,We,se,be,Ce,_e;c;){if((S=this.rules.newline.exec(c))&&(c=c.substring(S[0].length),S[0].length>1&&this.tokens.push({type:"space"})),S=this.rules.code.exec(c)){var Re=this.tokens[this.tokens.length-1];c=c.substring(S[0].length),Re&&Re.type==="paragraph"?Re.text+=` +`+S[0].trimRight():(S=S[0].replace(/^ {4}/gm,""),this.tokens.push({type:"code",codeBlockStyle:"indented",text:this.options.pedantic?S:oe(S,` +`)}));continue}if(S=this.rules.fences.exec(c)){c=c.substring(S[0].length),this.tokens.push({type:"code",lang:S[2]?S[2].trim():S[2],text:S[3]||""});continue}if(S=this.rules.heading.exec(c)){c=c.substring(S[0].length),this.tokens.push({type:"heading",depth:S[1].length,text:S[2]});continue}if((S=this.rules.nptable.exec(c))&&(A={type:"table",header:q(S[1].replace(/^ *| *\| *$/g,"")),align:S[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:S[3]?S[3].replace(/\n$/,"").split(` +`):[]},A.header.length===A.align.length)){for(c=c.substring(S[0].length),ne=0;ne ?/gm,""),this.token(S,g),this.tokens.push({type:"blockquote_end"});continue}if(S=this.rules.list.exec(c)){for(c=c.substring(S[0].length),X=S[2],be=X.length>1,W={type:"list_start",ordered:be,start:be?+X:"",loose:!1},this.tokens.push(W),S=S[0].match(this.rules.item),he=[],k=!1,se=S.length,ne=0;ne1?m.length===1:m.length>1||this.options.smartLists&&m!==X)&&(c=S.slice(ne+1).join(` +`)+c,ne=se-1)),E=k||/\n\n(?!\s*$)/.test(A),ne!==se-1&&(k=A.charAt(A.length-1)===` +`,E||(E=k)),E&&(W.loose=!0),Ce=/^\[[ xX]\] /.test(A),_e=void 0,Ce&&(_e=A[1]!==" ",A=A.replace(/^\[[ xX]\] +/,"")),Oe={type:"list_item_start",task:Ce,checked:_e,loose:E},he.push(Oe),this.tokens.push(Oe),this.token(A,!1),this.tokens.push({type:"list_item_end"});if(W.loose)for(se=he.length,ne=0;ne?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:I,tag:"^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^",link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(?!\s*\])((?:\\[\[\]]?|[^\[\]\\])+)\]/,nolink:/^!?\[(?!\s*\])((?:\[[^\[\]]*\]|\\[\[\]]|[^\[\]])*)\](?:\[\])?/,strong:/^__([^\s_])__(?!_)|^\*\*([^\s*])\*\*(?!\*)|^__([^\s][\s\S]*?[^\s])__(?!_)|^\*\*([^\s][\s\S]*?[^\s])\*\*(?!\*)/,em:/^_([^\s_])_(?!_)|^\*([^\s*<\[])\*(?!\*)|^_([^\s<][\s\S]*?[^\s_])_(?!_|[^\spunctuation])|^_([^\s_<][\s\S]*?[^\s])_(?!_|[^\spunctuation])|^\*([^\s<"][\s\S]*?[^\s\*])\*(?!\*|[^\spunctuation])|^\*([^\s*"<\[][\s\S]*?[^\s])\*(?!\*)/,code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^( {2,}|\\)\n(?!\s*$)/,del:I,text:/^(`+|[^`])(?:[\s\S]*?(?:(?=[\\?@\\[^_{|}~`,u.em=O(u.em).replace(/punctuation/g,u._punctuation).getRegex(),u._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g,u._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,u._email=/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/,u.autolink=O(u.autolink).replace("scheme",u._scheme).replace("email",u._email).getRegex(),u._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/,u.tag=O(u.tag).replace("comment",n._comment).replace("attribute",u._attribute).getRegex(),u._label=/(?:\[[^\[\]]*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,u._href=/<(?:\\[<>]?|[^\s<>\\])*>|[^\s\x00-\x1f]*/,u._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/,u.link=O(u.link).replace("label",u._label).replace("href",u._href).replace("title",u._title).getRegex(),u.reflink=O(u.reflink).replace("label",u._label).getRegex(),u.normal=D({},u),u.pedantic=D({},u.normal,{strong:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,em:/^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/,link:O(/^!?\[(label)\]\((.*?)\)/).replace("label",u._label).getRegex(),reflink:O(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",u._label).getRegex()}),u.gfm=D({},u.normal,{escape:O(u.escape).replace("])","~|])").getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,del:/^~+(?=\S)([\s\S]*?\S)~+/,text:/^(`+|[^`])(?:[\s\S]*?(?:(?=[\\/i.test(m[0])&&(this.inLink=!1),!this.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(m[0])?this.inRawBlock=!0:this.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(m[0])&&(this.inRawBlock=!1),c=c.substring(m[0].length),g+=this.options.sanitize?this.options.sanitizer?this.options.sanitizer(m[0]):T(m[0]):m[0];continue}if(m=this.rules.link.exec(c)){var W=ge(m[2],"()");if(W>-1){var he=4+m[1].length+W;m[2]=m[2].substring(0,W),m[0]=m[0].substring(0,he).trim(),m[3]=""}c=c.substring(m[0].length),this.inLink=!0,S=m[2],this.options.pedantic?(k=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(S),k?(S=k[1],X=k[3]):X=""):X=m[3]?m[3].slice(1,-1):"",S=S.trim().replace(/^<([\s\S]*)>$/,"$1"),g+=this.outputLink(m,{href:s.escapes(S),title:s.escapes(X)}),this.inLink=!1;continue}if((m=this.rules.reflink.exec(c))||(m=this.rules.nolink.exec(c))){if(c=c.substring(m[0].length),k=(m[2]||m[1]).replace(/\s+/g," "),k=this.links[k.toLowerCase()],!k||!k.href){g+=m[0].charAt(0),c=m[0].substring(1)+c;continue}this.inLink=!0,g+=this.outputLink(m,k),this.inLink=!1;continue}if(m=this.rules.strong.exec(c)){c=c.substring(m[0].length),g+=this.renderer.strong(this.output(m[4]||m[3]||m[2]||m[1]));continue}if(m=this.rules.em.exec(c)){c=c.substring(m[0].length),g+=this.renderer.em(this.output(m[6]||m[5]||m[4]||m[3]||m[2]||m[1]));continue}if(m=this.rules.code.exec(c)){c=c.substring(m[0].length),g+=this.renderer.codespan(T(m[2].trim(),!0));continue}if(m=this.rules.br.exec(c)){c=c.substring(m[0].length),g+=this.renderer.br();continue}if(m=this.rules.del.exec(c)){c=c.substring(m[0].length),g+=this.renderer.del(this.output(m[1]));continue}if(m=this.rules.autolink.exec(c)){c=c.substring(m[0].length),m[2]==="@"?(E=T(this.mangle(m[1])),S="mailto:"+E):(E=T(m[1]),S=E),g+=this.renderer.link(S,null,E);continue}if(!this.inLink&&(m=this.rules.url.exec(c))){if(m[2]==="@")E=T(m[0]),S="mailto:"+E;else{do A=m[0],m[0]=this.rules._backpedal.exec(m[0])[0];while(A!==m[0]);E=T(m[0]),m[1]==="www."?S="http://"+E:S=E}c=c.substring(m[0].length),g+=this.renderer.link(S,null,E);continue}if(m=this.rules.text.exec(c)){c=c.substring(m[0].length),this.inRawBlock?g+=this.renderer.text(this.options.sanitize?this.options.sanitizer?this.options.sanitizer(m[0]):T(m[0]):m[0]):g+=this.renderer.text(T(this.smartypants(m[0])));continue}if(c)throw new Error("Infinite loop on byte: "+c.charCodeAt(0))}return g},s.escapes=function(c){return c&&c.replace(s.rules._escapes,"$1")},s.prototype.outputLink=function(c,g){var k=g.href,E=g.title?T(g.title):null;return c[0].charAt(0)!=="!"?this.renderer.link(k,E,this.output(c[1])):this.renderer.image(k,E,T(c[1]))},s.prototype.smartypants=function(c){return this.options.smartypants?c.replace(/---/g,"\u2014").replace(/--/g,"\u2013").replace(/(^|[-\u2014/(\[{"\s])'/g,"$1\u2018").replace(/'/g,"\u2019").replace(/(^|[-\u2014/(\[{\u2018\s])"/g,"$1\u201C").replace(/"/g,"\u201D").replace(/\.{3}/g,"\u2026"):c},s.prototype.mangle=function(c){if(!this.options.mangle)return c;for(var g="",k=c.length,E=0,S;E.5&&(S="x"+S.toString(16)),g+="&#"+S+";";return g};function h(c){this.options=c||de.defaults}h.prototype.code=function(c,g,k){var E=(g||"").match(/\S*/)[0];if(this.options.highlight){var S=this.options.highlight(c,E);S!=null&&S!==c&&(k=!0,c=S)}return E?'
'+(k?c:T(c,!0))+`
+`:"
"+(k?c:T(c,!0))+"
"},h.prototype.blockquote=function(c){return`
`+c+`
-`},h.prototype.html=function(c){return c},h.prototype.heading=function(c,g,x,P){return this.options.headerIds?"'+c+" +`},h.prototype.html=function(c){return c},h.prototype.heading=function(c,g,k,E){return this.options.headerIds?"'+c+" `:""+c+" `},h.prototype.hr=function(){return this.options.xhtml?`
`:`
-`},h.prototype.list=function(c,g,x){var P=g?"ol":"ul",b=g&&x!==1?' start="'+x+'"':"";return"<"+P+b+`> -`+c+" +`},h.prototype.list=function(c,g,k){var E=g?"ol":"ul",S=g&&k!==1?' start="'+k+'"':"";return"<"+E+S+`> +`+c+" `},h.prototype.listitem=function(c){return"
  • "+c+`
  • `},h.prototype.checkbox=function(c){return" "},h.prototype.paragraph=function(c){return"

    "+c+`

    `},h.prototype.table=function(c,g){return g&&(g=""+g+""),` @@ -29,34 +29,34 @@ Add a component higher in the tree to provide a loading `+g+`
    `},h.prototype.tablerow=function(c){return` `+c+` -`},h.prototype.tablecell=function(c,g){var x=g.header?"th":"td",P=g.align?"<"+x+' align="'+g.align+'">':"<"+x+">";return P+c+" -`},h.prototype.strong=function(c){return""+c+""},h.prototype.em=function(c){return""+c+""},h.prototype.codespan=function(c){return""+c+""},h.prototype.br=function(){return this.options.xhtml?"
    ":"
    "},h.prototype.del=function(c){return""+c+""},h.prototype.link=function(c,g,x){if(c=ie(this.options.sanitize,this.options.baseUrl,c),c===null)return x;var P='
    ",P},h.prototype.image=function(c,g,x){if(c=ie(this.options.sanitize,this.options.baseUrl,c),c===null)return x;var P=''+x+'":">",P},h.prototype.text=function(c){return c};function d(){}d.prototype.strong=d.prototype.em=d.prototype.codespan=d.prototype.del=d.prototype.text=function(c){return c},d.prototype.link=d.prototype.image=function(c,g,x){return""+x},d.prototype.br=function(){return""};function v(c){this.tokens=[],this.token=null,this.options=c||B.defaults,this.options.renderer=this.options.renderer||new h,this.renderer=this.options.renderer,this.renderer.options=this.options,this.slugger=new k}v.parse=function(c,g){var x=new v(g);return x.parse(c)},v.prototype.parse=function(c){this.inline=new s(c.links,this.options),this.inlineText=new s(c.links,I({},this.options,{renderer:new d})),this.tokens=c.reverse();for(var g="";this.next();)g+=this.tok();return g},v.prototype.next=function(){return this.token=this.tokens.pop(),this.token},v.prototype.peek=function(){return this.tokens[this.tokens.length-1]||0},v.prototype.parseText=function(){for(var c=this.token.text;this.peek().type==="text";)c+=` -`+this.next().text;return this.inline.output(c)},v.prototype.tok=function(){switch(this.token.type){case"space":return"";case"hr":return this.renderer.hr();case"heading":return this.renderer.heading(this.inline.output(this.token.text),this.token.depth,E(this.inlineText.output(this.token.text)),this.slugger);case"code":return this.renderer.code(this.token.text,this.token.lang,this.token.escaped);case"table":{var c="",g="",x,P,b,U;for(b="",x=0;x?@[\]^`{|}~]/g,"").replace(/\s/g,"-");if(this.seen.hasOwnProperty(g)){var x=g;do this.seen[x]++,g=x+"-"+this.seen[x];while(this.seen.hasOwnProperty(g))}return this.seen[g]=0,g};function S(c,g){if(g){if(S.escapeTest.test(c))return c.replace(S.escapeReplace,function(x){return S.replacements[x]})}else if(S.escapeTestNoEncode.test(c))return c.replace(S.escapeReplaceNoEncode,function(x){return S.replacements[x]});return c}S.escapeTest=/[&<>"']/,S.escapeReplace=/[&<>"']/g,S.replacements={"&":"&","<":"<",">":">",'"':""","'":"'"},S.escapeTestNoEncode=/[<>"']|&(?!#?\w+;)/,S.escapeReplaceNoEncode=/[<>"']|&(?!#?\w+;)/g;function E(c){return c.replace(/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig,function(g,x){return x=x.toLowerCase(),x==="colon"?":":x.charAt(0)==="#"?x.charAt(1)==="x"?String.fromCharCode(parseInt(x.substring(2),16)):String.fromCharCode(+x.substring(1)):""})}function O(c,g){return c=c.source||c,g=g||"",{replace:function(x,P){return P=P.source||P,P=P.replace(/(^|[^\[])\^/g,"$1"),c=c.replace(x,P),this},getRegex:function(){return new RegExp(c,g)}}}function ie(c,g,x){if(c){try{var P=decodeURIComponent(E(x)).replace(/[^\w:]/g,"").toLowerCase()}catch{return null}if(P.indexOf("javascript:")===0||P.indexOf("vbscript:")===0||P.indexOf("data:")===0)return null}g&&!ne.test(x)&&(x=ve(g,x));try{x=encodeURI(x).replace(/%25/g,"%")}catch{return null}return x}function ve(c,g){return Ee[" "+c]||(/^[^:]+:\/*[^/]*$/.test(c)?Ee[" "+c]=c+"/":Ee[" "+c]=le(c,"/",!0)),c=Ee[" "+c],g.slice(0,2)==="//"?c.replace(/:[\s\S]*/,":")+g:g.charAt(0)==="/"?c.replace(/(:\/*[^/]*)[\s\S]*/,"$1")+g:c+g}var Ee={},ne=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;function R(){}R.exec=R;function I(c){for(var g=1,x,P;g=0&&D[oe]==="\\";)q=!q;return q?"|":" |"}),P=x.split(/ \|/),b=0;if(P.length>g)P.splice(g);else for(;P.lengthAn error occurred:

    "+S(q.message+"",!0)+"
    ";throw q}}B.options=B.setOptions=function(c){return I(B.defaults,c),B},B.getDefaults=function(){return{baseUrl:null,breaks:!1,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:new h,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,xhtml:!1}},B.defaults=B.getDefaults(),B.Parser=v,B.parser=v.parse,B.Renderer=h,B.TextRenderer=d,B.Lexer=i,B.lexer=i.lex,B.InlineLexer=s,B.inlineLexer=s.output,B.Slugger=k,B.parse=B,typeof Cp!="undefined"&&typeof bp=="object"?Cp.exports=B:typeof define=="function"&&define.amd?define(function(){return B}):e.marked=B})(bp||(typeof window!="undefined"?window:global))});var wl=yt((Pp,Lp)=>{(function(e,n){typeof Pp=="object"&&typeof Lp!="undefined"?Lp.exports=n():typeof define=="function"&&define.amd?define(n):(e=e||self,e.CodeMirror=n())})(Pp,function(){"use strict";var e=navigator.userAgent,n=navigator.platform,i=/gecko\/\d/i.test(e),u=/MSIE \d/.test(e),s=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(e),h=/Edge\/(\d+)/.exec(e),d=u||s||h,v=d&&(u?document.documentMode||6:+(h||s)[1]),k=!h&&/WebKit\//.test(e),S=k&&/Qt\/\d+\.\d+/.test(e),E=!h&&/Chrome\//.test(e),O=/Opera\//.test(e),ie=/Apple Computer/.test(navigator.vendor),ve=/Mac OS X 1\d\D([8-9]|\d\d)\D/.test(e),Ee=/PhantomJS/.test(e),ne=ie&&(/Mobile\/\w+/.test(e)||navigator.maxTouchPoints>2),R=/Android/.test(e),I=ne||R||/webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(e),Y=ne||/Mac/.test(n),le=/\bCrOS\b/.test(e),pe=/win/i.test(n),Re=O&&e.match(/Version\/(\d*\.\d*)/);Re&&(Re=Number(Re[1])),Re&&Re>=15&&(O=!1,k=!0);var B=Y&&(S||O&&(Re==null||Re<12.11)),c=i||d&&v>=9;function g(t){return new RegExp("(^|\\s)"+t+"(?:$|\\s)\\s*")}var x=function(t,r){var a=t.className,o=g(r).exec(a);if(o){var l=a.slice(o.index+o[0].length);t.className=a.slice(0,o.index)+(l?o[1]+l:"")}};function P(t){for(var r=t.childNodes.length;r>0;--r)t.removeChild(t.firstChild);return t}function b(t,r){return P(t).appendChild(r)}function U(t,r,a,o){var l=document.createElement(t);if(a&&(l.className=a),o&&(l.style.cssText=o),typeof r=="string")l.appendChild(document.createTextNode(r));else if(r)for(var f=0;f=r)return p+(r-f);p+=m-f,p+=a-p%a,f=m+1}}var Ce=function(){this.id=null,this.f=null,this.time=0,this.handler=We(this.onTimeout,this)};Ce.prototype.onTimeout=function(t){t.id=0,t.time<=+new Date?t.f():setTimeout(t.handler,t.time-+new Date)},Ce.prototype.set=function(t,r){this.f=r;var a=+new Date+t;(!this.id||a=r)return o+Math.min(p,r-l);if(l+=f-o,l+=a-l%a,o=f+1,l>=r)return o}}var Q=[""];function ee(t){for(;Q.length<=t;)Q.push(fe(Q)+" ");return Q[t]}function fe(t){return t[t.length-1]}function De(t,r){for(var a=[],o=0;o"\x80"&&(t.toUpperCase()!=t.toLowerCase()||Gt.test(t))}function Et(t,r){return r?r.source.indexOf("\\w")>-1&&Lt(t)?!0:r.test(t):Lt(t)}function Bt(t){for(var r in t)if(t.hasOwnProperty(r)&&t[r])return!1;return!0}var zt=/[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/;function Zt(t){return t.charCodeAt(0)>=768&&zt.test(t)}function pn(t,r,a){for(;(a<0?r>0:ra?-1:1;;){if(r==a)return r;var l=(r+a)/2,f=o<0?Math.ceil(l):Math.floor(l);if(f==r)return t(f)?r:a;t(f)?a=f:r=f+o}}function kn(t,r,a,o){if(!t)return o(r,a,"ltr",0);for(var l=!1,f=0;fr||r==a&&p.to==r)&&(o(Math.max(p.from,r),Math.min(p.to,a),p.level==1?"rtl":"ltr",f),l=!0)}l||o(r,a,"ltr")}var A=null;function j(t,r,a){var o;A=null;for(var l=0;lr)return l;f.to==r&&(f.from!=f.to&&a=="before"?o=l:A=l),f.from==r&&(f.from!=f.to&&a!="before"?o=l:A=l)}return o??A}var Ae=function(){var t="bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN",r="nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111";function a(C){return C<=247?t.charAt(C):1424<=C&&C<=1524?"R":1536<=C&&C<=1785?r.charAt(C-1536):1774<=C&&C<=2220?"r":8192<=C&&C<=8203?"w":C==8204?"b":"L"}var o=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,l=/[stwN]/,f=/[LRr]/,p=/[Lb1n]/,m=/[1n]/;function T(C,X,Z){this.level=C,this.from=X,this.to=Z}return function(C,X){var Z=X=="ltr"?"L":"R";if(C.length==0||X=="ltr"&&!o.test(C))return!1;for(var Te=C.length,ye=[],Be=0;Be-1&&(o[r]=l.slice(0,f).concat(l.slice(f+1)))}}}function ze(t,r){var a=J(t,r);if(!!a.length)for(var o=Array.prototype.slice.call(arguments,2),l=0;l0}function wt(t){t.prototype.on=function(r,a){M(this,r,a)},t.prototype.off=function(r,a){Se(this,r,a)}}function bt(t){t.preventDefault?t.preventDefault():t.returnValue=!1}function Rt(t){t.stopPropagation?t.stopPropagation():t.cancelBubble=!0}function Wt(t){return t.defaultPrevented!=null?t.defaultPrevented:t.returnValue==!1}function ln(t){bt(t),Rt(t)}function nn(t){return t.target||t.srcElement}function gn(t){var r=t.which;return r==null&&(t.button&1?r=1:t.button&2?r=3:t.button&4&&(r=2)),Y&&t.ctrlKey&&r==1&&(r=3),r}var K=function(){if(d&&v<9)return!1;var t=U("div");return"draggable"in t||"dragDrop"in t}(),Pe;function F(t){if(Pe==null){var r=U("span","\u200B");b(t,U("span",[r,document.createTextNode("x")])),t.firstChild.offsetHeight!=0&&(Pe=r.offsetWidth<=1&&r.offsetHeight>2&&!(d&&v<8))}var a=Pe?U("span","\u200B"):U("span","\xA0",null,"display: inline-block; width: 1px; margin-right: -1px");return a.setAttribute("cm-text",""),a}var $;function N(t){if($!=null)return $;var r=b(t,document.createTextNode("A\u062EA")),a=D(r,0,1).getBoundingClientRect(),o=D(r,1,2).getBoundingClientRect();return P(t),!a||a.left==a.right?!1:$=o.right-a.right<3}var L=` +`},h.prototype.tablecell=function(c,g){var k=g.header?"th":"td",E=g.align?"<"+k+' align="'+g.align+'">':"<"+k+">";return E+c+" +`},h.prototype.strong=function(c){return""+c+""},h.prototype.em=function(c){return""+c+""},h.prototype.codespan=function(c){return""+c+""},h.prototype.br=function(){return this.options.xhtml?"
    ":"
    "},h.prototype.del=function(c){return""+c+""},h.prototype.link=function(c,g,k){if(c=te(this.options.sanitize,this.options.baseUrl,c),c===null)return k;var E='
    ",E},h.prototype.image=function(c,g,k){if(c=te(this.options.sanitize,this.options.baseUrl,c),c===null)return k;var E=''+k+'":">",E},h.prototype.text=function(c){return c};function d(){}d.prototype.strong=d.prototype.em=d.prototype.codespan=d.prototype.del=d.prototype.text=function(c){return c},d.prototype.link=d.prototype.image=function(c,g,k){return""+k},d.prototype.br=function(){return""};function v(c){this.tokens=[],this.token=null,this.options=c||de.defaults,this.options.renderer=this.options.renderer||new h,this.renderer=this.options.renderer,this.renderer.options=this.options,this.slugger=new x}v.parse=function(c,g){var k=new v(g);return k.parse(c)},v.prototype.parse=function(c){this.inline=new s(c.links,this.options),this.inlineText=new s(c.links,D({},this.options,{renderer:new d})),this.tokens=c.reverse();for(var g="";this.next();)g+=this.tok();return g},v.prototype.next=function(){return this.token=this.tokens.pop(),this.token},v.prototype.peek=function(){return this.tokens[this.tokens.length-1]||0},v.prototype.parseText=function(){for(var c=this.token.text;this.peek().type==="text";)c+=` +`+this.next().text;return this.inline.output(c)},v.prototype.tok=function(){switch(this.token.type){case"space":return"";case"hr":return this.renderer.hr();case"heading":return this.renderer.heading(this.inline.output(this.token.text),this.token.depth,M(this.inlineText.output(this.token.text)),this.slugger);case"code":return this.renderer.code(this.token.text,this.token.lang,this.token.escaped);case"table":{var c="",g="",k,E,S,X;for(S="",k=0;k?@[\]^`{|}~]/g,"").replace(/\s/g,"-");if(this.seen.hasOwnProperty(g)){var k=g;do this.seen[k]++,g=k+"-"+this.seen[k];while(this.seen.hasOwnProperty(g))}return this.seen[g]=0,g};function T(c,g){if(g){if(T.escapeTest.test(c))return c.replace(T.escapeReplace,function(k){return T.replacements[k]})}else if(T.escapeTestNoEncode.test(c))return c.replace(T.escapeReplaceNoEncode,function(k){return T.replacements[k]});return c}T.escapeTest=/[&<>"']/,T.escapeReplace=/[&<>"']/g,T.replacements={"&":"&","<":"<",">":">",'"':""","'":"'"},T.escapeTestNoEncode=/[<>"']|&(?!#?\w+;)/,T.escapeReplaceNoEncode=/[<>"']|&(?!#?\w+;)/g;function M(c){return c.replace(/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig,function(g,k){return k=k.toLowerCase(),k==="colon"?":":k.charAt(0)==="#"?k.charAt(1)==="x"?String.fromCharCode(parseInt(k.substring(2),16)):String.fromCharCode(+k.substring(1)):""})}function O(c,g){return c=c.source||c,g=g||"",{replace:function(k,E){return E=E.source||E,E=E.replace(/(^|[^\[])\^/g,"$1"),c=c.replace(k,E),this},getRegex:function(){return new RegExp(c,g)}}}function te(c,g,k){if(c){try{var E=decodeURIComponent(M(k)).replace(/[^\w:]/g,"").toLowerCase()}catch{return null}if(E.indexOf("javascript:")===0||E.indexOf("vbscript:")===0||E.indexOf("data:")===0)return null}g&&!ie.test(k)&&(k=ve(g,k));try{k=encodeURI(k).replace(/%25/g,"%")}catch{return null}return k}function ve(c,g){return Ee[" "+c]||(/^[^:]+:\/*[^/]*$/.test(c)?Ee[" "+c]=c+"/":Ee[" "+c]=oe(c,"/",!0)),c=Ee[" "+c],g.slice(0,2)==="//"?c.replace(/:[\s\S]*/,":")+g:g.charAt(0)==="/"?c.replace(/(:\/*[^/]*)[\s\S]*/,"$1")+g:c+g}var Ee={},ie=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;function I(){}I.exec=I;function D(c){for(var g=1,k,E;g=0&&A[he]==="\\";)W=!W;return W?"|":" |"}),E=k.split(/ \|/),S=0;if(E.length>g)E.splice(g);else for(;E.lengthAn error occurred:

    "+T(W.message+"",!0)+"
    ";throw W}}de.options=de.setOptions=function(c){return D(de.defaults,c),de},de.getDefaults=function(){return{baseUrl:null,breaks:!1,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:new h,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,xhtml:!1}},de.defaults=de.getDefaults(),de.Parser=v,de.parser=v.parse,de.Renderer=h,de.TextRenderer=d,de.Lexer=i,de.lexer=i.lex,de.InlineLexer=s,de.inlineLexer=s.output,de.Slugger=x,de.parse=de,typeof bp!="undefined"&&typeof Sp=="object"?bp.exports=de:typeof define=="function"&&define.amd?define(function(){return de}):e.marked=de})(Sp||(typeof window!="undefined"?window:global))});var wl=xt((Np,Pp)=>{(function(e,n){typeof Np=="object"&&typeof Pp!="undefined"?Pp.exports=n():typeof define=="function"&&define.amd?define(n):(e=e||self,e.CodeMirror=n())})(Np,function(){"use strict";var e=navigator.userAgent,n=navigator.platform,i=/gecko\/\d/i.test(e),u=/MSIE \d/.test(e),s=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(e),h=/Edge\/(\d+)/.exec(e),d=u||s||h,v=d&&(u?document.documentMode||6:+(h||s)[1]),x=!h&&/WebKit\//.test(e),T=x&&/Qt\/\d+\.\d+/.test(e),M=!h&&/Chrome\/(\d+)/.exec(e),O=M&&+M[1],te=/Opera\//.test(e),ve=/Apple Computer/.test(navigator.vendor),Ee=/Mac OS X 1\d\D([8-9]|\d\d)\D/.test(e),ie=/PhantomJS/.test(e),I=ve&&(/Mobile\/\w+/.test(e)||navigator.maxTouchPoints>2),D=/Android/.test(e),q=I||D||/webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(e),oe=I||/Mac/.test(n),ge=/\bCrOS\b/.test(e),Ue=/win/i.test(n),de=te&&e.match(/Version\/(\d*\.\d*)/);de&&(de=Number(de[1])),de&&de>=15&&(te=!1,x=!0);var c=oe&&(T||te&&(de==null||de<12.11)),g=i||d&&v>=9;function k(t){return new RegExp("(^|\\s)"+t+"(?:$|\\s)\\s*")}var E=function(t,r){var a=t.className,o=k(r).exec(a);if(o){var l=a.slice(o.index+o[0].length);t.className=a.slice(0,o.index)+(l?o[1]+l:"")}};function S(t){for(var r=t.childNodes.length;r>0;--r)t.removeChild(t.firstChild);return t}function X(t,r){return S(t).appendChild(r)}function m(t,r,a,o){var l=document.createElement(t);if(a&&(l.className=a),o&&(l.style.cssText=o),typeof r=="string")l.appendChild(document.createTextNode(r));else if(r)for(var f=0;f=r)return p+(r-f);p+=y-f,p+=a-p%a,f=y+1}}var Ae=function(){this.id=null,this.f=null,this.time=0,this.handler=Ce(this.onTimeout,this)};Ae.prototype.onTimeout=function(t){t.id=0,t.time<=+new Date?t.f():setTimeout(t.handler,t.time-+new Date)},Ae.prototype.set=function(t,r){this.f=r;var a=+new Date+t;(!this.id||a=r)return o+Math.min(p,r-l);if(l+=f-o,l+=a-l%a,o=f+1,l>=r)return o}}var De=[""];function it(t){for(;De.length<=t;)De.push(Je(De)+" ");return De[t]}function Je(t){return t[t.length-1]}function Yt(t,r){for(var a=[],o=0;o"\x80"&&(t.toUpperCase()!=t.toLowerCase()||Gt.test(t))}function Kt(t,r){return r?r.source.indexOf("\\w")>-1&&Rt(t)?!0:r.test(t):Rt(t)}function dn(t){for(var r in t)if(t.hasOwnProperty(r)&&t[r])return!1;return!0}var tn=/[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/;function pn(t){return t.charCodeAt(0)>=768&&tn.test(t)}function R(t,r,a){for(;(a<0?r>0:ra?-1:1;;){if(r==a)return r;var l=(r+a)/2,f=o<0?Math.ceil(l):Math.floor(l);if(f==r)return t(f)?r:a;t(f)?a=f:r=f+o}}function Ie(t,r,a,o){if(!t)return o(r,a,"ltr",0);for(var l=!1,f=0;fr||r==a&&p.to==r)&&(o(Math.max(p.from,r),Math.min(p.to,a),p.level==1?"rtl":"ltr",f),l=!0)}l||o(r,a,"ltr")}var Ke=null;function Be(t,r,a){var o;Ke=null;for(var l=0;lr)return l;f.to==r&&(f.from!=f.to&&a=="before"?o=l:Ke=l),f.from==r&&(f.from!=f.to&&a!="before"?o=l:Ke=l)}return o??Ke}var P=function(){var t="bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN",r="nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111";function a(C){return C<=247?t.charAt(C):1424<=C&&C<=1524?"R":1536<=C&&C<=1785?r.charAt(C-1536):1774<=C&&C<=2220?"r":8192<=C&&C<=8203?"w":C==8204?"b":"L"}var o=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,l=/[stwN]/,f=/[LRr]/,p=/[Lb1n]/,y=/[1n]/;function _(C,$,J){this.level=C,this.from=$,this.to=J}return function(C,$){var J=$=="ltr"?"L":"R";if(C.length==0||$=="ltr"&&!o.test(C))return!1;for(var Se=C.length,we=[],je=0;je-1&&(o[r]=l.slice(0,f).concat(l.slice(f+1)))}}}function at(t,r){var a=ht(t,r);if(!!a.length)for(var o=Array.prototype.slice.call(arguments,2),l=0;l0}function zt(t){t.prototype.on=function(r,a){Te(this,r,a)},t.prototype.off=function(r,a){nt(this,r,a)}}function Bt(t){t.preventDefault?t.preventDefault():t.returnValue=!1}function on(t){t.stopPropagation?t.stopPropagation():t.cancelBubble=!0}function vn(t){return t.defaultPrevented!=null?t.defaultPrevented:t.returnValue==!1}function G(t){Bt(t),on(t)}function Le(t){return t.target||t.srcElement}function F(t){var r=t.which;return r==null&&(t.button&1?r=1:t.button&2?r=3:t.button&4&&(r=2)),oe&&t.ctrlKey&&r==1&&(r=3),r}var V=function(){if(d&&v<9)return!1;var t=m("div");return"draggable"in t||"dragDrop"in t}(),N;function L(t){if(N==null){var r=m("span","\u200B");X(t,m("span",[r,document.createTextNode("x")])),t.firstChild.offsetHeight!=0&&(N=r.offsetWidth<=1&&r.offsetHeight>2&&!(d&&v<8))}var a=N?m("span","\u200B"):m("span","\xA0",null,"display: inline-block; width: 1px; margin-right: -1px");return a.setAttribute("cm-text",""),a}var Y;function ce(t){if(Y!=null)return Y;var r=X(t,document.createTextNode("A\u062EA")),a=W(r,0,1).getBoundingClientRect(),o=W(r,1,2).getBoundingClientRect();return S(t),!a||a.left==a.right?!1:Y=o.right-a.right<3}var xe=` b`.split(/\n/).length!=3?function(t){for(var r=0,a=[],o=t.length;r<=o;){var l=t.indexOf(` -`,r);l==-1&&(l=t.length);var f=t.slice(r,t.charAt(l-1)=="\r"?l-1:l),p=f.indexOf("\r");p!=-1?(a.push(f.slice(0,p)),r+=p+1):(a.push(f),r=l+1)}return a}:function(t){return t.split(/\r\n?|\n/)},V=window.getSelection?function(t){try{return t.selectionStart!=t.selectionEnd}catch{return!1}}:function(t){var r;try{r=t.ownerDocument.selection.createRange()}catch{}return!r||r.parentElement()!=t?!1:r.compareEndPoints("StartToEnd",r)!=0},he=function(){var t=U("div");return"oncopy"in t?!0:(t.setAttribute("oncopy","return;"),typeof t.oncopy=="function")}(),_e=null;function Fe(t){if(_e!=null)return _e;var r=b(t,U("span","x")),a=r.getBoundingClientRect(),o=D(r,0,1).getBoundingClientRect();return _e=Math.abs(a.left-o.left)>1}var Ie={},$e={};function Ke(t,r){arguments.length>2&&(r.dependencies=Array.prototype.slice.call(arguments,2)),Ie[t]=r}function et(t,r){$e[t]=r}function vt(t){if(typeof t=="string"&&$e.hasOwnProperty(t))t=$e[t];else if(t&&typeof t.name=="string"&&$e.hasOwnProperty(t.name)){var r=$e[t.name];typeof r=="string"&&(r={name:r}),t=Yt(r,t),t.name=r.name}else{if(typeof t=="string"&&/^[\w\-]+\/[\w\-]+\+xml$/.test(t))return vt("application/xml");if(typeof t=="string"&&/^[\w\-]+\/[\w\-]+\+json$/.test(t))return vt("application/json")}return typeof t=="string"?{name:t}:t||{name:"null"}}function Ot(t,r){r=vt(r);var a=Ie[r.name];if(!a)return Ot(t,"text/plain");var o=a(t,r);if(Ct.hasOwnProperty(r.name)){var l=Ct[r.name];for(var f in l)!l.hasOwnProperty(f)||(o.hasOwnProperty(f)&&(o["_"+f]=o[f]),o[f]=l[f])}if(o.name=r.name,r.helperType&&(o.helperType=r.helperType),r.modeProps)for(var p in r.modeProps)o[p]=r.modeProps[p];return o}var Ct={};function Nt(t,r){var a=Ct.hasOwnProperty(t)?Ct[t]:Ct[t]={};ce(r,a)}function Jt(t,r){if(r===!0)return r;if(t.copyState)return t.copyState(r);var a={};for(var o in r){var l=r[o];l instanceof Array&&(l=l.concat([])),a[o]=l}return a}function An(t,r){for(var a;t.innerMode&&(a=t.innerMode(r),!(!a||a.mode==t));)r=a.state,t=a.mode;return a||{mode:t,state:r}}function bn(t,r,a){return t.startState?t.startState(r,a):!0}var Ut=function(t,r,a){this.pos=this.start=0,this.string=t,this.tabSize=r||8,this.lastColumnPos=this.lastColumnValue=0,this.lineStart=0,this.lineOracle=a};Ut.prototype.eol=function(){return this.pos>=this.string.length},Ut.prototype.sol=function(){return this.pos==this.lineStart},Ut.prototype.peek=function(){return this.string.charAt(this.pos)||void 0},Ut.prototype.next=function(){if(this.posr},Ut.prototype.eatSpace=function(){for(var t=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>t},Ut.prototype.skipToEnd=function(){this.pos=this.string.length},Ut.prototype.skipTo=function(t){var r=this.string.indexOf(t,this.pos);if(r>-1)return this.pos=r,!0},Ut.prototype.backUp=function(t){this.pos-=t},Ut.prototype.column=function(){return this.lastColumnPos0?null:(f&&r!==!1&&(this.pos+=f[0].length),f)}},Ut.prototype.current=function(){return this.string.slice(this.start,this.pos)},Ut.prototype.hideFirstChars=function(t,r){this.lineStart+=t;try{return r()}finally{this.lineStart-=t}},Ut.prototype.lookAhead=function(t){var r=this.lineOracle;return r&&r.lookAhead(t)},Ut.prototype.baseToken=function(){var t=this.lineOracle;return t&&t.baseToken(this.pos)};function st(t,r){if(r-=t.first,r<0||r>=t.size)throw new Error("There is no line "+(r+t.first)+" in the document.");for(var a=t;!a.lines;)for(var o=0;;++o){var l=a.children[o],f=l.chunkSize();if(r=t.first&&ra?de(a,st(t,a).text.length):Vt(r,st(t,r.line).text.length)}function Vt(t,r){var a=t.ch;return a==null||a>r?de(t.line,r):a<0?de(t.line,0):t}function sn(t,r){for(var a=[],o=0;othis.maxLookAhead&&(this.maxLookAhead=t),r},In.prototype.baseToken=function(t){if(!this.baseTokens)return null;for(;this.baseTokens[this.baseTokenPos]<=t;)this.baseTokenPos+=2;var r=this.baseTokens[this.baseTokenPos+1];return{type:r&&r.replace(/( |^)overlay .*/,""),size:this.baseTokens[this.baseTokenPos]-t}},In.prototype.nextLine=function(){this.line++,this.maxLookAhead>0&&this.maxLookAhead--},In.fromSaved=function(t,r,a){return r instanceof on?new In(t,Jt(t.mode,r.state),a,r.lookAhead):new In(t,Jt(t.mode,r),a)},In.prototype.save=function(t){var r=t!==!1?Jt(this.doc.mode,this.state):this.state;return this.maxLookAhead>0?new on(r,this.maxLookAhead):r};function _i(t,r,a,o){var l=[t.state.modeGen],f={};Ye(t,r.text,t.doc.mode,a,function(C,X){return l.push(C,X)},f,o);for(var p=a.state,m=function(C){a.baseTokens=l;var X=t.state.overlays[C],Z=1,Te=0;a.state=!0,Ye(t,r.text,X.mode,a,function(ye,Be){for(var Ve=Z;Teye&&l.splice(Z,1,ye,l[Z+1],nt),Z+=2,Te=Math.min(ye,nt)}if(!!Be)if(X.opaque)l.splice(Ve,Z-Ve,ye,"overlay "+Be),Z=Ve+2;else for(;Vet.options.maxHighlightLength&&Jt(t.doc.mode,o.state),f=_i(t,r,o);l&&(o.state=l),r.stateAfter=o.save(!l),r.styles=f.styles,f.classes?r.styleClasses=f.classes:r.styleClasses&&(r.styleClasses=null),a===t.doc.highlightFrontier&&(t.doc.modeFrontier=Math.max(t.doc.modeFrontier,++t.doc.highlightFrontier))}return r.styles}function Qr(t,r,a){var o=t.doc,l=t.display;if(!o.mode.startState)return new In(o,!0,r);var f=xe(t,r,a),p=f>o.first&&st(o,f-1).stateAfter,m=p?In.fromSaved(o,p,f):new In(o,bn(o.mode),f);return o.iter(f,r,function(T){w(t,T.text,m);var C=m.line;T.stateAfter=C==r-1||C%5==0||C>=l.viewFrom&&Cr.start)return f}throw new Error("Mode "+t.name+" failed to advance stream.")}var ae=function(t,r,a){this.start=t.start,this.end=t.pos,this.string=t.current(),this.type=r||null,this.state=a};function Me(t,r,a,o){var l=t.doc,f=l.mode,p;r=Qe(l,r);var m=st(l,r.line),T=Qr(t,r.line,a),C=new Ut(m.text,t.options.tabSize,T),X;for(o&&(X=[]);(o||C.post.options.maxHighlightLength?(m=!1,p&&w(t,r,o,X.pos),X.pos=r.length,Z=null):Z=ue(W(a,X,o.state,Te),f),Te){var ye=Te[0].name;ye&&(Z="m-"+(Z?ye+" "+Z:ye))}if(!m||C!=Z){for(;Tp;--m){if(m<=f.first)return f.first;var T=st(f,m-1),C=T.stateAfter;if(C&&(!a||m+(C instanceof on?C.lookAhead:0)<=f.modeFrontier))return m;var X=ke(T.text,null,t.options.tabSize);(l==null||o>X)&&(l=m-1,o=X)}return l}function Ge(t,r){if(t.modeFrontier=Math.min(t.modeFrontier,r),!(t.highlightFrontiera;o--){var l=st(t,o).stateAfter;if(l&&(!(l instanceof on)||o+l.lookAhead=r:f.to>r);(o||(o=[])).push(new qt(p,f.from,T?null:f.to))}}return o}function Nn(t,r,a){var o;if(t)for(var l=0;l=r:f.to>r);if(m||f.from==r&&p.type=="bookmark"&&(!a||f.marker.insertLeft)){var T=f.from==null||(p.inclusiveLeft?f.from<=r:f.from0&&m)for(var gt=0;gt0)){var X=[T,1],Z=_(C.from,m.from),Te=_(C.to,m.to);(Z<0||!p.inclusiveLeft&&!Z)&&X.push({from:C.from,to:m.from}),(Te>0||!p.inclusiveRight&&!Te)&&X.push({from:m.to,to:C.to}),l.splice.apply(l,X),T+=X.length-3}}return l}function Qn(t){var r=t.markedSpans;if(!!r){for(var a=0;ar)&&(!o||cr(o,f.marker)<0)&&(o=f.marker)}return o}function li(t,r,a,o,l){var f=st(t,r),p=rt&&f.markedSpans;if(p)for(var m=0;m=0&&Z<=0||X<=0&&Z>=0)&&(X<=0&&(T.marker.inclusiveRight&&l.inclusiveLeft?_(C.to,a)>=0:_(C.to,a)>0)||X>=0&&(T.marker.inclusiveRight&&l.inclusiveLeft?_(C.from,o)<=0:_(C.from,o)<0)))return!0}}}function Gn(t){for(var r;r=At(t);)t=r.find(-1,!0).line;return t}function Hi(t){for(var r;r=Qt(t);)t=r.find(1,!0).line;return t}function ea(t){for(var r,a;r=Qt(t);)t=r.find(1,!0).line,(a||(a=[])).push(t);return a}function Wi(t,r){var a=st(t,r),o=Gn(a);return a==o?r:St(o)}function xo(t,r){if(r>t.lastLine())return r;var a=st(t,r),o;if(!Ir(t,a))return r;for(;o=Qt(a);)a=o.find(1,!0).line;return St(a)+1}function Ir(t,r){var a=rt&&r.markedSpans;if(a){for(var o=void 0,l=0;lr.maxLineLength&&(r.maxLineLength=l,r.maxLine=o)})}var si=function(t,r,a){this.text=t,Zr(this,r),this.height=a?a(this):1};si.prototype.lineNo=function(){return St(this)},wt(si);function Za(t,r,a,o){t.text=r,t.stateAfter&&(t.stateAfter=null),t.styles&&(t.styles=null),t.order!=null&&(t.order=null),Qn(t),Zr(t,a);var l=o?o(t):1;l!=t.height&&Xt(t,l)}function Ja(t){t.parent=null,Qn(t)}var kl={},Tl={};function ev(t,r){if(!t||/^\s*$/.test(t))return null;var a=r.addModeClass?Tl:kl;return a[t]||(a[t]=t.replace(/\S+/g,"cm-$&"))}function tv(t,r){var a=y("span",null,null,k?"padding-right: .1px":null),o={pre:y("pre",[a],"CodeMirror-line"),content:a,col:0,pos:0,cm:t,trailingSpace:!1,splitSpaces:t.getOption("lineWrapping")};r.measure={};for(var l=0;l<=(r.rest?r.rest.length:0);l++){var f=l?r.rest[l-1]:r.line,p=void 0;o.pos=0,o.addToken=s_,N(t.display.measure)&&(p=Xe(f,t.doc.direction))&&(o.addToken=c_(o.addToken,p)),o.map=[];var m=r!=t.display.externalMeasured&&St(f);h_(f,o,ki(t,f,m)),f.styleClasses&&(f.styleClasses.bgClass&&(o.bgClass=we(f.styleClasses.bgClass,o.bgClass||"")),f.styleClasses.textClass&&(o.textClass=we(f.styleClasses.textClass,o.textClass||""))),o.map.length==0&&o.map.push(0,0,o.content.appendChild(F(t.display.measure))),l==0?(r.measure.map=o.map,r.measure.cache={}):((r.measure.maps||(r.measure.maps=[])).push(o.map),(r.measure.caches||(r.measure.caches=[])).push({}))}if(k){var T=o.content.lastChild;(/\bcm-tab\b/.test(T.className)||T.querySelector&&T.querySelector(".cm-tab"))&&(o.content.className="cm-tab-wrap-hack")}return ze(t,"renderLine",t,r.line,o.pre),o.pre.className&&(o.textClass=we(o.pre.className,o.textClass||"")),o}function l_(t){var r=U("span","\u2022","cm-invalidchar");return r.title="\\u"+t.charCodeAt(0).toString(16),r.setAttribute("aria-label",r.title),r}function s_(t,r,a,o,l,f,p){if(!!r){var m=t.splitSpaces?f_(r,t.trailingSpace):r,T=t.cm.state.specialChars,C=!1,X;if(!T.test(r))t.col+=r.length,X=document.createTextNode(m),t.map.push(t.pos,t.pos+r.length,X),d&&v<9&&(C=!0),t.pos+=r.length;else{X=document.createDocumentFragment();for(var Z=0;;){T.lastIndex=Z;var Te=T.exec(r),ye=Te?Te.index-Z:r.length-Z;if(ye){var Be=document.createTextNode(m.slice(Z,Z+ye));d&&v<9?X.appendChild(U("span",[Be])):X.appendChild(Be),t.map.push(t.pos,t.pos+ye,Be),t.col+=ye,t.pos+=ye}if(!Te)break;Z+=ye+1;var Ve=void 0;if(Te[0]==" "){var nt=t.cm.options.tabSize,ut=nt-t.col%nt;Ve=X.appendChild(U("span",ee(ut),"cm-tab")),Ve.setAttribute("role","presentation"),Ve.setAttribute("cm-text"," "),t.col+=ut}else Te[0]=="\r"||Te[0]==` -`?(Ve=X.appendChild(U("span",Te[0]=="\r"?"\u240D":"\u2424","cm-invalidchar")),Ve.setAttribute("cm-text",Te[0]),t.col+=1):(Ve=t.cm.options.specialCharPlaceholder(Te[0]),Ve.setAttribute("cm-text",Te[0]),d&&v<9?X.appendChild(U("span",[Ve])):X.appendChild(Ve),t.col+=1);t.map.push(t.pos,t.pos+1,Ve),t.pos++}}if(t.trailingSpace=m.charCodeAt(r.length-1)==32,a||o||l||C||f||p){var pt=a||"";o&&(pt+=o),l&&(pt+=l);var lt=U("span",[X],pt,f);if(p)for(var gt in p)p.hasOwnProperty(gt)&>!="style"&>!="class"&<.setAttribute(gt,p[gt]);return t.content.appendChild(lt)}t.content.appendChild(X)}}function f_(t,r){if(t.length>1&&!/ /.test(t))return t;for(var a=r,o="",l=0;lC&&Z.from<=C));Te++);if(Z.to>=X)return t(a,o,l,f,p,m,T);t(a,o.slice(0,Z.to-C),l,f,null,m,T),f=null,o=o.slice(Z.to-C),C=Z.to}}}function nv(t,r,a,o){var l=!o&&a.widgetNode;l&&t.map.push(t.pos,t.pos+r,l),!o&&t.cm.display.input.needsContentAttribute&&(l||(l=t.content.appendChild(document.createElement("span"))),l.setAttribute("cm-marker",a.id)),l&&(t.cm.display.input.setUneditable(l),t.content.appendChild(l)),t.pos+=r,t.trailingSpace=!1}function h_(t,r,a){var o=t.markedSpans,l=t.text,f=0;if(!o){for(var p=1;pT||Ft.collapsed&&xt.to==T&&xt.from==T)){if(xt.to!=null&&xt.to!=T&&ye>xt.to&&(ye=xt.to,Ve=""),Ft.className&&(Be+=" "+Ft.className),Ft.css&&(Te=(Te?Te+";":"")+Ft.css),Ft.startStyle&&xt.from==T&&(nt+=" "+Ft.startStyle),Ft.endStyle&&xt.to==ye&&(gt||(gt=[])).push(Ft.endStyle,xt.to),Ft.title&&((pt||(pt={})).title=Ft.title),Ft.attributes)for(var hn in Ft.attributes)(pt||(pt={}))[hn]=Ft.attributes[hn];Ft.collapsed&&(!ut||cr(ut.marker,Ft)<0)&&(ut=xt)}else xt.from>T&&ye>xt.from&&(ye=xt.from)}if(gt)for(var Bn=0;Bn=m)break;for(var Mr=Math.min(m,ye);;){if(X){var pr=T+X.length;if(!ut){var Ln=pr>Mr?X.slice(0,Mr-T):X;r.addToken(r,Ln,Z?Z+Be:Be,nt,T+Ln.length==ye?Ve:"",Te,pt)}if(pr>=Mr){X=X.slice(Mr-T),T=Mr;break}T=pr,nt=""}X=l.slice(f,f=a[C++]),Z=ev(a[C++],r.cm.options)}}}function rv(t,r,a){this.line=r,this.rest=ea(r),this.size=this.rest?St(fe(this.rest))-a+1:1,this.node=this.text=null,this.hidden=Ir(t,r)}function Sl(t,r,a){for(var o=[],l,f=r;f2&&f.push((T.bottom+C.top)/2-a.top)}}f.push(a.bottom-a.top)}}function fv(t,r,a){if(t.line==r)return{map:t.measure.map,cache:t.measure.cache};if(t.rest){for(var o=0;oa)return{map:t.measure.maps[l],cache:t.measure.caches[l],before:!0}}}function T_(t,r){r=Gn(r);var a=St(r),o=t.display.externalMeasured=new rv(t.doc,r,a);o.lineN=a;var l=o.built=tv(t,o);return o.text=l.pre,b(t.display.lineMeasure,l.pre),o}function cv(t,r,a,o){return ci(t,na(t,r),a,o)}function ac(t,r){if(r>=t.display.viewFrom&&r=a.lineN&&rr)&&(f=T-m,l=f-1,r>=T&&(p="right")),l!=null){if(o=t[C+2],m==T&&a==(o.insertLeft?"left":"right")&&(p=a),a=="left"&&l==0)for(;C&&t[C-2]==t[C-3]&&t[C-1].insertLeft;)o=t[(C-=3)+2],p="left";if(a=="right"&&l==T-m)for(;C=0&&(a=t[l]).left==a.right;l--);return a}function b_(t,r,a,o){var l=dv(r.map,a,o),f=l.node,p=l.start,m=l.end,T=l.collapse,C;if(f.nodeType==3){for(var X=0;X<4;X++){for(;p&&Zt(r.line.text.charAt(l.coverStart+p));)--p;for(;l.coverStart+m0&&(T=o="right");var Z;t.options.lineWrapping&&(Z=f.getClientRects()).length>1?C=Z[o=="right"?Z.length-1:0]:C=f.getBoundingClientRect()}if(d&&v<9&&!p&&(!C||!C.left&&!C.right)){var Te=f.parentNode.getClientRects()[0];Te?C={left:Te.left,right:Te.left+ia(t.display),top:Te.top,bottom:Te.bottom}:C=hv}for(var ye=C.top-r.rect.top,Be=C.bottom-r.rect.top,Ve=(ye+Be)/2,nt=r.view.measure.heights,ut=0;ut=o.text.length?(T=o.text.length,C="before"):T<=0&&(T=0,C="after"),!m)return p(C=="before"?T-1:T,C=="before");function X(Be,Ve,nt){var ut=m[Ve],pt=ut.level==1;return p(nt?Be-1:Be,pt!=nt)}var Z=j(m,T,C),Te=A,ye=X(T,Z,C=="before");return Te!=null&&(ye.other=X(T,Te,C!="before")),ye}function wv(t,r){var a=0;r=Qe(t.doc,r),t.options.lineWrapping||(a=ia(t.display)*r.ch);var o=st(t.doc,r.line),l=Rr(o)+bl(t.display);return{left:a,right:a,top:l,bottom:l+o.height}}function lc(t,r,a,o,l){var f=de(t,r,a);return f.xRel=l,o&&(f.outside=o),f}function sc(t,r,a){var o=t.doc;if(a+=t.display.viewOffset,a<0)return lc(o.first,0,null,-1,-1);var l=G(o,a),f=o.first+o.size-1;if(l>f)return lc(o.first+o.size-1,st(o,f).text.length,null,1,1);r<0&&(r=0);for(var p=st(o,l);;){var m=M_(t,p,l,r,a),T=Ti(p,m.ch+(m.xRel>0||m.outside>0?1:0));if(!T)return m;var C=T.find(1);if(C.line==l)return C;p=st(o,l=C.line)}}function xv(t,r,a,o){o-=uc(r);var l=r.text.length,f=$t(function(p){return ci(t,a,p-1).bottom<=o},l,0);return l=$t(function(p){return ci(t,a,p).top>o},f,l),{begin:f,end:l}}function _v(t,r,a,o){a||(a=na(t,r));var l=Cl(t,r,ci(t,a,o),"line").top;return xv(t,r,a,l)}function fc(t,r,a,o){return t.bottom<=a?!1:t.top>a?!0:(o?t.left:t.right)>r}function M_(t,r,a,o,l){l-=Rr(r);var f=na(t,r),p=uc(r),m=0,T=r.text.length,C=!0,X=Xe(r,t.doc.direction);if(X){var Z=(t.options.lineWrapping?N_:E_)(t,r,a,f,X,o,l);C=Z.level!=1,m=C?Z.from:Z.to-1,T=C?Z.to:Z.from-1}var Te=null,ye=null,Be=$t(function(kt){var xt=ci(t,f,kt);return xt.top+=p,xt.bottom+=p,fc(xt,o,l,!1)?(xt.top<=l&&xt.left<=o&&(Te=kt,ye=xt),!0):!1},m,T),Ve,nt,ut=!1;if(ye){var pt=o-ye.left=gt.bottom?1:0}return Be=pn(r.text,Be,1),lc(a,Be,nt,ut,o-Ve)}function E_(t,r,a,o,l,f,p){var m=$t(function(Z){var Te=l[Z],ye=Te.level!=1;return fc(Jr(t,de(a,ye?Te.to:Te.from,ye?"before":"after"),"line",r,o),f,p,!0)},0,l.length-1),T=l[m];if(m>0){var C=T.level!=1,X=Jr(t,de(a,C?T.from:T.to,C?"after":"before"),"line",r,o);fc(X,f,p,!0)&&X.top>p&&(T=l[m-1])}return T}function N_(t,r,a,o,l,f,p){var m=xv(t,r,o,p),T=m.begin,C=m.end;/\s/.test(r.text.charAt(C-1))&&C--;for(var X=null,Z=null,Te=0;Te=C||ye.to<=T)){var Be=ye.level!=1,Ve=ci(t,o,Be?Math.min(C,ye.to)-1:Math.max(T,ye.from)).right,nt=Vent)&&(X=ye,Z=nt)}}return X||(X=l[l.length-1]),X.fromC&&(X={from:X.from,to:C,level:X.level}),X}var So;function ra(t){if(t.cachedTextHeight!=null)return t.cachedTextHeight;if(So==null){So=U("pre",null,"CodeMirror-line-like");for(var r=0;r<49;++r)So.appendChild(document.createTextNode("x")),So.appendChild(U("br"));So.appendChild(document.createTextNode("x"))}b(t.measure,So);var a=So.offsetHeight/50;return a>3&&(t.cachedTextHeight=a),P(t.measure),a||1}function ia(t){if(t.cachedCharWidth!=null)return t.cachedCharWidth;var r=U("span","xxxxxxxxxx"),a=U("pre",[r],"CodeMirror-line-like");b(t.measure,a);var o=r.getBoundingClientRect(),l=(o.right-o.left)/10;return l>2&&(t.cachedCharWidth=l),l||10}function cc(t){for(var r=t.display,a={},o={},l=r.gutters.clientLeft,f=r.gutters.firstChild,p=0;f;f=f.nextSibling,++p){var m=t.display.gutterSpecs[p].className;a[m]=f.offsetLeft+f.clientLeft+l,o[m]=f.clientWidth}return{fixedPos:hc(r),gutterTotalWidth:r.gutters.offsetWidth,gutterLeft:a,gutterWidth:o,wrapperWidth:r.wrapper.clientWidth}}function hc(t){return t.scroller.getBoundingClientRect().left-t.sizer.getBoundingClientRect().left}function kv(t){var r=ra(t.display),a=t.options.lineWrapping,o=a&&Math.max(5,t.display.scroller.clientWidth/ia(t.display)-3);return function(l){if(Ir(t.doc,l))return 0;var f=0;if(l.widgets)for(var p=0;p0&&(C=st(t.doc,T.line).text).length==T.ch){var X=ke(C,C.length,t.options.tabSize)-C.length;T=de(T.line,Math.max(0,Math.round((f-sv(t.display).left)/ia(t.display))-X))}return T}function Co(t,r){if(r>=t.display.viewTo||(r-=t.display.viewFrom,r<0))return null;for(var a=t.display.view,o=0;or)&&(l.updateLineNumbers=r),t.curOp.viewChanged=!0,r>=l.viewTo)rt&&Wi(t.doc,r)l.viewFrom?Bi(t):(l.viewFrom+=o,l.viewTo+=o);else if(r<=l.viewFrom&&a>=l.viewTo)Bi(t);else if(r<=l.viewFrom){var f=El(t,a,a+o,1);f?(l.view=l.view.slice(f.index),l.viewFrom=f.lineN,l.viewTo+=o):Bi(t)}else if(a>=l.viewTo){var p=El(t,r,r,-1);p?(l.view=l.view.slice(0,p.index),l.viewTo=p.lineN):Bi(t)}else{var m=El(t,r,r,-1),T=El(t,a,a+o,1);m&&T?(l.view=l.view.slice(0,m.index).concat(Sl(t,m.lineN,T.lineN)).concat(l.view.slice(T.index)),l.viewTo+=o):Bi(t)}var C=l.externalMeasured;C&&(a=l.lineN&&r=o.viewTo)){var f=o.view[Co(t,r)];if(f.node!=null){var p=f.changes||(f.changes=[]);me(p,a)==-1&&p.push(a)}}}function Bi(t){t.display.viewFrom=t.display.viewTo=t.doc.first,t.display.view=[],t.display.viewOffset=0}function El(t,r,a,o){var l=Co(t,r),f,p=t.display.view;if(!rt||a==t.doc.first+t.doc.size)return{index:l,lineN:a};for(var m=t.display.viewFrom,T=0;T0){if(l==p.length-1)return null;f=m+p[l].size-r,l++}else f=m-r;r+=f,a+=f}for(;Wi(t.doc,a)!=a;){if(l==(o<0?0:p.length-1))return null;a+=o*p[l-(o<0?1:0)].size,l+=o}return{index:l,lineN:a}}function P_(t,r,a){var o=t.display,l=o.view;l.length==0||r>=o.viewTo||a<=o.viewFrom?(o.view=Sl(t,r,a),o.viewFrom=r):(o.viewFrom>r?o.view=Sl(t,r,o.viewFrom).concat(o.view):o.viewFroma&&(o.view=o.view.slice(0,Co(t,a)))),o.viewTo=a}function Tv(t){for(var r=t.display.view,a=0,o=0;o=t.display.viewTo||T.to().line0?p:t.defaultCharWidth())+"px"}if(o.other){var m=a.appendChild(U("div","\xA0","CodeMirror-cursor CodeMirror-secondarycursor"));m.style.display="",m.style.left=o.other.left+"px",m.style.top=o.other.top+"px",m.style.height=(o.other.bottom-o.other.top)*.85+"px"}}function Nl(t,r){return t.top-r.top||t.left-r.left}function L_(t,r,a){var o=t.display,l=t.doc,f=document.createDocumentFragment(),p=sv(t.display),m=p.left,T=Math.max(o.sizerWidth,To(t)-o.sizer.offsetLeft)-p.right,C=l.direction=="ltr";function X(lt,gt,kt,xt){gt<0&&(gt=0),gt=Math.round(gt),xt=Math.round(xt),f.appendChild(U("div",null,"CodeMirror-selected","position: absolute; left: "+lt+`px; - top: `+gt+"px; width: "+(kt??T-lt)+`px; - height: `+(xt-gt)+"px"))}function Z(lt,gt,kt){var xt=st(l,lt),Ft=xt.text.length,hn,Bn;function yn(Ln,vr){return Ml(t,de(lt,Ln),"div",xt,vr)}function Mr(Ln,vr,$n){var Fn=_v(t,xt,null,Ln),On=vr=="ltr"==($n=="after")?"left":"right",Tn=$n=="after"?Fn.begin:Fn.end-(/\s/.test(xt.text.charAt(Fn.end-1))?2:1);return yn(Tn,On)[On]}var pr=Xe(xt,l.direction);return kn(pr,gt||0,kt??Ft,function(Ln,vr,$n,Fn){var On=$n=="ltr",Tn=yn(Ln,On?"left":"right"),gr=yn(vr-1,On?"right":"left"),ma=gt==null&&Ln==0,Vi=kt==null&&vr==Ft,er=Fn==0,hi=!pr||Fn==pr.length-1;if(gr.top-Tn.top<=3){var jn=(C?ma:Vi)&&er,Wc=(C?Vi:ma)&&hi,Mi=jn?m:(On?Tn:gr).left,Lo=Wc?T:(On?gr:Tn).right;X(Mi,Tn.top,Lo-Mi,Tn.bottom)}else{var Oo,ir,ya,Uc;On?(Oo=C&&ma&&er?m:Tn.left,ir=C?T:Mr(Ln,$n,"before"),ya=C?m:Mr(vr,$n,"after"),Uc=C&&Vi&&hi?T:gr.right):(Oo=C?Mr(Ln,$n,"before"):m,ir=!C&&ma&&er?T:Tn.right,ya=!C&&Vi&&hi?m:gr.left,Uc=C?Mr(vr,$n,"after"):T),X(Oo,Tn.top,ir-Oo,Tn.bottom),Tn.bottom0?r.blinker=setInterval(function(){t.hasFocus()||oa(t),r.cursorDiv.style.visibility=(a=!a)?"":"hidden"},t.options.cursorBlinkRate):t.options.cursorBlinkRate<0&&(r.cursorDiv.style.visibility="hidden")}}function bv(t){t.hasFocus()||(t.display.input.focus(),t.state.focused||mc(t))}function gc(t){t.state.delayingBlurEvent=!0,setTimeout(function(){t.state.delayingBlurEvent&&(t.state.delayingBlurEvent=!1,t.state.focused&&oa(t))},100)}function mc(t,r){t.state.delayingBlurEvent&&!t.state.draggingText&&(t.state.delayingBlurEvent=!1),t.options.readOnly!="nocursor"&&(t.state.focused||(ze(t,"focus",t,r),t.state.focused=!0,Le(t.display.wrapper,"CodeMirror-focused"),!t.curOp&&t.display.selForContextMenu!=t.doc.sel&&(t.display.input.reset(),k&&setTimeout(function(){return t.display.input.reset(!0)},20)),t.display.input.receivedFocus()),vc(t))}function oa(t,r){t.state.delayingBlurEvent||(t.state.focused&&(ze(t,"blur",t,r),t.state.focused=!1,x(t.display.wrapper,"CodeMirror-focused")),clearInterval(t.display.blinker),setTimeout(function(){t.state.focused||(t.display.shift=!1)},150))}function Pl(t){for(var r=t.display,a=r.lineDiv.offsetTop,o=Math.max(0,r.scroller.getBoundingClientRect().top),l=r.lineDiv.getBoundingClientRect().top,f=0,p=0;p.005||ye<-.005)&&(lt.display.sizerWidth){var Ve=Math.ceil(X/ia(t.display));Ve>t.display.maxLineLength&&(t.display.maxLineLength=Ve,t.display.maxLine=m.line,t.display.maxLineChanged=!0)}}}Math.abs(f)>2&&(r.scroller.scrollTop+=f)}function Cv(t){if(t.widgets)for(var r=0;r=p&&(f=G(r,Rr(st(r,T))-t.wrapper.clientHeight),p=T)}return{from:f,to:Math.max(p,f+1)}}function O_(t,r){if(!tt(t,"scrollCursorIntoView")){var a=t.display,o=a.sizer.getBoundingClientRect(),l=null;if(r.top+o.top<0?l=!0:r.bottom+o.top>(window.innerHeight||document.documentElement.clientHeight)&&(l=!1),l!=null&&!Ee){var f=U("div","\u200B",null,`position: absolute; - top: `+(r.top-a.viewOffset-bl(t.display))+`px; - height: `+(r.bottom-r.top+fi(t)+a.barHeight)+`px; - left: `+r.left+"px; width: "+Math.max(2,r.right-r.left)+"px;");t.display.lineSpace.appendChild(f),f.scrollIntoView(l),t.display.lineSpace.removeChild(f)}}}function D_(t,r,a,o){o==null&&(o=0);var l;!t.options.lineWrapping&&r==a&&(a=r.sticky=="before"?de(r.line,r.ch+1,"before"):r,r=r.ch?de(r.line,r.sticky=="before"?r.ch-1:r.ch,"after"):r);for(var f=0;f<5;f++){var p=!1,m=Jr(t,r),T=!a||a==r?m:Jr(t,a);l={left:Math.min(m.left,T.left),top:Math.min(m.top,T.top)-o,right:Math.max(m.left,T.left),bottom:Math.max(m.bottom,T.bottom)+o};var C=yc(t,l),X=t.doc.scrollTop,Z=t.doc.scrollLeft;if(C.scrollTop!=null&&(au(t,C.scrollTop),Math.abs(t.doc.scrollTop-X)>1&&(p=!0)),C.scrollLeft!=null&&(Mo(t,C.scrollLeft),Math.abs(t.doc.scrollLeft-Z)>1&&(p=!0)),!p)break}return l}function A_(t,r){var a=yc(t,r);a.scrollTop!=null&&au(t,a.scrollTop),a.scrollLeft!=null&&Mo(t,a.scrollLeft)}function yc(t,r){var a=t.display,o=ra(t.display);r.top<0&&(r.top=0);var l=t.curOp&&t.curOp.scrollTop!=null?t.curOp.scrollTop:a.scroller.scrollTop,f=oc(t),p={};r.bottom-r.top>f&&(r.bottom=r.top+f);var m=t.doc.height+ic(a),T=r.topm-o;if(r.topl+f){var X=Math.min(r.top,(C?m:r.bottom)-f);X!=l&&(p.scrollTop=X)}var Z=t.options.fixedGutter?0:a.gutters.offsetWidth,Te=t.curOp&&t.curOp.scrollLeft!=null?t.curOp.scrollLeft:a.scroller.scrollLeft-Z,ye=To(t)-a.gutters.offsetWidth,Be=r.right-r.left>ye;return Be&&(r.right=r.left+ye),r.left<10?p.scrollLeft=0:r.leftye+Te-3&&(p.scrollLeft=r.right+(Be?0:10)-ye),p}function wc(t,r){r!=null&&(Ol(t),t.curOp.scrollTop=(t.curOp.scrollTop==null?t.doc.scrollTop:t.curOp.scrollTop)+r)}function aa(t){Ol(t);var r=t.getCursor();t.curOp.scrollToPos={from:r,to:r,margin:t.options.cursorScrollMargin}}function ou(t,r,a){(r!=null||a!=null)&&Ol(t),r!=null&&(t.curOp.scrollLeft=r),a!=null&&(t.curOp.scrollTop=a)}function I_(t,r){Ol(t),t.curOp.scrollToPos=r}function Ol(t){var r=t.curOp.scrollToPos;if(r){t.curOp.scrollToPos=null;var a=wv(t,r.from),o=wv(t,r.to);Mv(t,a,o,r.margin)}}function Mv(t,r,a,o){var l=yc(t,{left:Math.min(r.left,a.left),top:Math.min(r.top,a.top)-o,right:Math.max(r.right,a.right),bottom:Math.max(r.bottom,a.bottom)+o});ou(t,l.scrollLeft,l.scrollTop)}function au(t,r){Math.abs(t.doc.scrollTop-r)<2||(i||_c(t,{top:r}),Ev(t,r,!0),i&&_c(t),su(t,100))}function Ev(t,r,a){r=Math.max(0,Math.min(t.display.scroller.scrollHeight-t.display.scroller.clientHeight,r)),!(t.display.scroller.scrollTop==r&&!a)&&(t.doc.scrollTop=r,t.display.scrollbars.setScrollTop(r),t.display.scroller.scrollTop!=r&&(t.display.scroller.scrollTop=r))}function Mo(t,r,a,o){r=Math.max(0,Math.min(r,t.display.scroller.scrollWidth-t.display.scroller.clientWidth)),!((a?r==t.doc.scrollLeft:Math.abs(t.doc.scrollLeft-r)<2)&&!o)&&(t.doc.scrollLeft=r,Dv(t),t.display.scroller.scrollLeft!=r&&(t.display.scroller.scrollLeft=r),t.display.scrollbars.setScrollLeft(r))}function uu(t){var r=t.display,a=r.gutters.offsetWidth,o=Math.round(t.doc.height+ic(t.display));return{clientHeight:r.scroller.clientHeight,viewHeight:r.wrapper.clientHeight,scrollWidth:r.scroller.scrollWidth,clientWidth:r.scroller.clientWidth,viewWidth:r.wrapper.clientWidth,barLeft:t.options.fixedGutter?a:0,docHeight:o,scrollHeight:o+fi(t)+r.barHeight,nativeBarWidth:r.nativeBarWidth,gutterWidth:a}}var Eo=function(t,r,a){this.cm=a;var o=this.vert=U("div",[U("div",null,null,"min-width: 1px")],"CodeMirror-vscrollbar"),l=this.horiz=U("div",[U("div",null,null,"height: 100%; min-height: 1px")],"CodeMirror-hscrollbar");o.tabIndex=l.tabIndex=-1,t(o),t(l),M(o,"scroll",function(){o.clientHeight&&r(o.scrollTop,"vertical")}),M(l,"scroll",function(){l.clientWidth&&r(l.scrollLeft,"horizontal")}),this.checkedZeroWidth=!1,d&&v<8&&(this.horiz.style.minHeight=this.vert.style.minWidth="18px")};Eo.prototype.update=function(t){var r=t.scrollWidth>t.clientWidth+1,a=t.scrollHeight>t.clientHeight+1,o=t.nativeBarWidth;if(a){this.vert.style.display="block",this.vert.style.bottom=r?o+"px":"0";var l=t.viewHeight-(r?o:0);this.vert.firstChild.style.height=Math.max(0,t.scrollHeight-t.clientHeight+l)+"px"}else this.vert.scrollTop=0,this.vert.style.display="",this.vert.firstChild.style.height="0";if(r){this.horiz.style.display="block",this.horiz.style.right=a?o+"px":"0",this.horiz.style.left=t.barLeft+"px";var f=t.viewWidth-t.barLeft-(a?o:0);this.horiz.firstChild.style.width=Math.max(0,t.scrollWidth-t.clientWidth+f)+"px"}else this.horiz.style.display="",this.horiz.firstChild.style.width="0";return!this.checkedZeroWidth&&t.clientHeight>0&&(o==0&&this.zeroWidthHack(),this.checkedZeroWidth=!0),{right:a?o:0,bottom:r?o:0}},Eo.prototype.setScrollLeft=function(t){this.horiz.scrollLeft!=t&&(this.horiz.scrollLeft=t),this.disableHoriz&&this.enableZeroWidthBar(this.horiz,this.disableHoriz,"horiz")},Eo.prototype.setScrollTop=function(t){this.vert.scrollTop!=t&&(this.vert.scrollTop=t),this.disableVert&&this.enableZeroWidthBar(this.vert,this.disableVert,"vert")},Eo.prototype.zeroWidthHack=function(){var t=Y&&!ve?"12px":"18px";this.horiz.style.height=this.vert.style.width=t,this.horiz.style.pointerEvents=this.vert.style.pointerEvents="none",this.disableHoriz=new Ce,this.disableVert=new Ce},Eo.prototype.enableZeroWidthBar=function(t,r,a){t.style.pointerEvents="auto";function o(){var l=t.getBoundingClientRect(),f=a=="vert"?document.elementFromPoint(l.right-1,(l.top+l.bottom)/2):document.elementFromPoint((l.right+l.left)/2,l.bottom-1);f!=t?t.style.pointerEvents="none":r.set(1e3,o)}r.set(1e3,o)},Eo.prototype.clear=function(){var t=this.horiz.parentNode;t.removeChild(this.horiz),t.removeChild(this.vert)};var lu=function(){};lu.prototype.update=function(){return{bottom:0,right:0}},lu.prototype.setScrollLeft=function(){},lu.prototype.setScrollTop=function(){},lu.prototype.clear=function(){};function ua(t,r){r||(r=uu(t));var a=t.display.barWidth,o=t.display.barHeight;Nv(t,r);for(var l=0;l<4&&a!=t.display.barWidth||o!=t.display.barHeight;l++)a!=t.display.barWidth&&t.options.lineWrapping&&Pl(t),Nv(t,uu(t)),a=t.display.barWidth,o=t.display.barHeight}function Nv(t,r){var a=t.display,o=a.scrollbars.update(r);a.sizer.style.paddingRight=(a.barWidth=o.right)+"px",a.sizer.style.paddingBottom=(a.barHeight=o.bottom)+"px",a.heightForcer.style.borderBottom=o.bottom+"px solid transparent",o.right&&o.bottom?(a.scrollbarFiller.style.display="block",a.scrollbarFiller.style.height=o.bottom+"px",a.scrollbarFiller.style.width=o.right+"px"):a.scrollbarFiller.style.display="",o.bottom&&t.options.coverGutterNextToScrollbar&&t.options.fixedGutter?(a.gutterFiller.style.display="block",a.gutterFiller.style.height=o.bottom+"px",a.gutterFiller.style.width=r.gutterWidth+"px"):a.gutterFiller.style.display=""}var Pv={native:Eo,null:lu};function Lv(t){t.display.scrollbars&&(t.display.scrollbars.clear(),t.display.scrollbars.addClass&&x(t.display.wrapper,t.display.scrollbars.addClass)),t.display.scrollbars=new Pv[t.options.scrollbarStyle](function(r){t.display.wrapper.insertBefore(r,t.display.scrollbarFiller),M(r,"mousedown",function(){t.state.focused&&setTimeout(function(){return t.display.input.focus()},0)}),r.setAttribute("cm-not-content","true")},function(r,a){a=="horizontal"?Mo(t,r):au(t,r)},t),t.display.scrollbars.addClass&&Le(t.display.wrapper,t.display.scrollbars.addClass)}var R_=0;function No(t){t.curOp={cm:t,viewChanged:!1,startHeight:t.doc.height,forceUpdate:!1,updateInput:0,typing:!1,changeObjs:null,cursorActivityHandlers:null,cursorActivityCalled:0,selectionChanged:!1,updateMaxLine:!1,scrollLeft:null,scrollTop:null,scrollToPos:null,focus:!1,id:++R_,markArrays:null},d_(t.curOp)}function Po(t){var r=t.curOp;r&&v_(r,function(a){for(var o=0;o=a.viewTo)||a.maxLineChanged&&r.options.lineWrapping,t.update=t.mustUpdate&&new Dl(r,t.mustUpdate&&{top:t.scrollTop,ensure:t.scrollToPos},t.forceUpdate)}function H_(t){t.updatedDisplay=t.mustUpdate&&xc(t.cm,t.update)}function W_(t){var r=t.cm,a=r.display;t.updatedDisplay&&Pl(r),t.barMeasure=uu(r),a.maxLineChanged&&!r.options.lineWrapping&&(t.adjustWidthTo=cv(r,a.maxLine,a.maxLine.text.length).left+3,r.display.sizerWidth=t.adjustWidthTo,t.barMeasure.scrollWidth=Math.max(a.scroller.clientWidth,a.sizer.offsetLeft+t.adjustWidthTo+fi(r)+r.display.barWidth),t.maxScrollLeft=Math.max(0,a.sizer.offsetLeft+t.adjustWidthTo-To(r))),(t.updatedDisplay||t.selectionChanged)&&(t.preparedSelection=a.input.prepareSelection())}function U_(t){var r=t.cm;t.adjustWidthTo!=null&&(r.display.sizer.style.minWidth=t.adjustWidthTo+"px",t.maxScrollLeft=t.display.viewTo)){var a=+new Date+t.options.workTime,o=Qr(t,r.highlightFrontier),l=[];r.iter(o.line,Math.min(r.first+r.size,t.display.viewTo+500),function(f){if(o.line>=t.display.viewFrom){var p=f.styles,m=f.text.length>t.options.maxHighlightLength?Jt(r.mode,o.state):null,T=_i(t,f,o,!0);m&&(o.state=m),f.styles=T.styles;var C=f.styleClasses,X=T.classes;X?f.styleClasses=X:C&&(f.styleClasses=null);for(var Z=!p||p.length!=f.styles.length||C!=X&&(!C||!X||C.bgClass!=X.bgClass||C.textClass!=X.textClass),Te=0;!Z&&Tea)return su(t,t.options.workDelay),!0}),r.highlightFrontier=o.line,r.modeFrontier=Math.max(r.modeFrontier,o.line),l.length&&Cr(t,function(){for(var f=0;f=a.viewFrom&&r.visible.to<=a.viewTo&&(a.updateLineNumbers==null||a.updateLineNumbers>=a.viewTo)&&a.renderedView==a.view&&Tv(t)==0)return!1;Av(t)&&(Bi(t),r.dims=cc(t));var l=o.first+o.size,f=Math.max(r.visible.from-t.options.viewportMargin,o.first),p=Math.min(l,r.visible.to+t.options.viewportMargin);a.viewFromp&&a.viewTo-p<20&&(p=Math.min(l,a.viewTo)),rt&&(f=Wi(t.doc,f),p=xo(t.doc,p));var m=f!=a.viewFrom||p!=a.viewTo||a.lastWrapHeight!=r.wrapperHeight||a.lastWrapWidth!=r.wrapperWidth;P_(t,f,p),a.viewOffset=Rr(st(t.doc,a.viewFrom)),t.display.mover.style.top=a.viewOffset+"px";var T=Tv(t);if(!m&&T==0&&!r.force&&a.renderedView==a.view&&(a.updateLineNumbers==null||a.updateLineNumbers>=a.viewTo))return!1;var C=q_(t);return T>4&&(a.lineDiv.style.display="none"),$_(t,a.updateLineNumbers,r.dims),T>4&&(a.lineDiv.style.display=""),a.renderedView=a.view,G_(C),P(a.cursorDiv),P(a.selectionDiv),a.gutters.style.height=a.sizer.style.minHeight=0,m&&(a.lastWrapHeight=r.wrapperHeight,a.lastWrapWidth=r.wrapperWidth,su(t,400)),a.updateLineNumbers=null,!0}function Ov(t,r){for(var a=r.viewport,o=!0;;o=!1){if(!o||!t.options.lineWrapping||r.oldDisplayWidth==To(t)){if(a&&a.top!=null&&(a={top:Math.min(t.doc.height+ic(t.display)-oc(t),a.top)}),r.visible=Ll(t.display,t.doc,a),r.visible.from>=t.display.viewFrom&&r.visible.to<=t.display.viewTo)break}else o&&(r.visible=Ll(t.display,t.doc,a));if(!xc(t,r))break;Pl(t);var l=uu(t);iu(t),ua(t,l),Tc(t,l),r.force=!1}r.signal(t,"update",t),(t.display.viewFrom!=t.display.reportedViewFrom||t.display.viewTo!=t.display.reportedViewTo)&&(r.signal(t,"viewportChange",t,t.display.viewFrom,t.display.viewTo),t.display.reportedViewFrom=t.display.viewFrom,t.display.reportedViewTo=t.display.viewTo)}function _c(t,r){var a=new Dl(t,r);if(xc(t,a)){Pl(t),Ov(t,a);var o=uu(t);iu(t),ua(t,o),Tc(t,o),a.finish()}}function $_(t,r,a){var o=t.display,l=t.options.lineNumbers,f=o.lineDiv,p=f.firstChild;function m(Be){var Ve=Be.nextSibling;return k&&Y&&t.display.currentWheelTarget==Be?Be.style.display="none":Be.parentNode.removeChild(Be),Ve}for(var T=o.view,C=o.viewFrom,X=0;X-1&&(ye=!1),iv(t,Z,C,a)),ye&&(P(Z.lineNumber),Z.lineNumber.appendChild(document.createTextNode(qe(t.options,C)))),p=Z.node.nextSibling}C+=Z.size}for(;p;)p=m(p)}function kc(t){var r=t.gutters.offsetWidth;t.sizer.style.marginLeft=r+"px",Hn(t,"gutterChanged",t)}function Tc(t,r){t.display.sizer.style.minHeight=r.docHeight+"px",t.display.heightForcer.style.top=r.docHeight+"px",t.display.gutters.style.height=r.docHeight+t.display.barHeight+fi(t)+"px"}function Dv(t){var r=t.display,a=r.view;if(!(!r.alignWidgets&&(!r.gutters.firstChild||!t.options.fixedGutter))){for(var o=hc(r)-r.scroller.scrollLeft+t.doc.scrollLeft,l=r.gutters.offsetWidth,f=o+"px",p=0;pm.clientWidth,C=m.scrollHeight>m.clientHeight;if(!!(o&&T||l&&C)){if(l&&Y&&k){e:for(var X=r.target,Z=p.view;X!=m;X=X.parentNode)for(var Te=0;Te=0&&_(t,o.to())<=0)return a}return-1};var en=function(t,r){this.anchor=t,this.head=r};en.prototype.from=function(){return Ze(this.anchor,this.head)},en.prototype.to=function(){return Ne(this.anchor,this.head)},en.prototype.empty=function(){return this.head.line==this.anchor.line&&this.head.ch==this.anchor.ch};function ei(t,r,a){var o=t&&t.options.selectionsMayTouch,l=r[a];r.sort(function(Te,ye){return _(Te.from(),ye.from())}),a=me(r,l);for(var f=1;f0:T>=0){var C=Ze(m.from(),p.from()),X=Ne(m.to(),p.to()),Z=m.empty()?p.from()==p.head:m.from()==m.head;f<=a&&--a,r.splice(--f,2,new en(Z?X:C,Z?C:X))}}return new Fr(r,a)}function ji(t,r){return new Fr([new en(t,r||t)],0)}function Yi(t){return t.text?de(t.from.line+t.text.length-1,fe(t.text).length+(t.text.length==1?t.from.ch:0)):t.to}function zv(t,r){if(_(t,r.from)<0)return t;if(_(t,r.to)<=0)return Yi(r);var a=t.line+r.text.length-(r.to.line-r.from.line)-1,o=t.ch;return t.line==r.to.line&&(o+=Yi(r).ch-r.to.ch),de(a,o)}function bc(t,r){for(var a=[],o=0;o1&&t.remove(m.line+1,Be-1),t.insert(m.line+1,ut)}Hn(t,"change",t,r)}function qi(t,r,a){function o(l,f,p){if(l.linked)for(var m=0;m1&&!t.done[t.done.length-2].ranges)return t.done.pop(),fe(t.done)}function Yv(t,r,a,o){var l=t.history;l.undone.length=0;var f=+new Date,p,m;if((l.lastOp==o||l.lastOrigin==r.origin&&r.origin&&(r.origin.charAt(0)=="+"&&l.lastModTime>f-(t.cm?t.cm.options.historyEventDelay:500)||r.origin.charAt(0)=="*"))&&(p=Z_(l,l.lastOp==o)))m=fe(p.changes),_(r.from,r.to)==0&&_(r.from,m.to)==0?m.to=Yi(r):p.changes.push(Ec(t,r));else{var T=fe(l.done);for((!T||!T.ranges)&&Rl(t.sel,l.done),p={changes:[Ec(t,r)],generation:l.generation},l.done.push(p);l.done.length>l.undoDepth;)l.done.shift(),l.done[0].ranges||l.done.shift()}l.done.push(a),l.generation=++l.maxGeneration,l.lastModTime=l.lastSelTime=f,l.lastOp=l.lastSelOp=o,l.lastOrigin=l.lastSelOrigin=r.origin,m||ze(t,"historyAdded")}function J_(t,r,a,o){var l=r.charAt(0);return l=="*"||l=="+"&&a.ranges.length==o.ranges.length&&a.somethingSelected()==o.somethingSelected()&&new Date-t.history.lastSelTime<=(t.cm?t.cm.options.historyEventDelay:500)}function ek(t,r,a,o){var l=t.history,f=o&&o.origin;a==l.lastSelOp||f&&l.lastSelOrigin==f&&(l.lastModTime==l.lastSelTime&&l.lastOrigin==f||J_(t,f,fe(l.done),r))?l.done[l.done.length-1]=r:Rl(r,l.done),l.lastSelTime=+new Date,l.lastSelOrigin=f,l.lastSelOp=a,o&&o.clearRedo!==!1&&jv(l.undone)}function Rl(t,r){var a=fe(r);a&&a.ranges&&a.equals(t)||r.push(t)}function qv(t,r,a,o){var l=r["spans_"+t.id],f=0;t.iter(Math.max(t.first,a),Math.min(t.first+t.size,o),function(p){p.markedSpans&&((l||(l=r["spans_"+t.id]={}))[f]=p.markedSpans),++f})}function tk(t){if(!t)return null;for(var r,a=0;a-1&&(fe(m)[Z]=C[Z],delete C[Z])}}return o}function Nc(t,r,a,o){if(o){var l=t.anchor;if(a){var f=_(r,l)<0;f!=_(a,l)<0?(l=r,r=a):f!=_(r,a)<0&&(r=a)}return new en(l,r)}else return new en(a||r,r)}function Fl(t,r,a,o,l){l==null&&(l=t.cm&&(t.cm.display.shift||t.extend)),Jn(t,new Fr([Nc(t.sel.primary(),r,a,l)],0),o)}function $v(t,r,a){for(var o=[],l=t.cm&&(t.cm.display.shift||t.extend),f=0;f=r.ch:m.to>r.ch))){if(l&&(ze(T,"beforeCursorEnter"),T.explicitlyCleared))if(f.markedSpans){--p;continue}else break;if(!T.atomic)continue;if(a){var Z=T.find(o<0?1:-1),Te=void 0;if((o<0?X:C)&&(Z=Jv(t,Z,-o,Z&&Z.line==r.line?f:null)),Z&&Z.line==r.line&&(Te=_(Z,a))&&(o<0?Te<0:Te>0))return sa(t,Z,r,o,l)}var ye=T.find(o<0?-1:1);return(o<0?C:X)&&(ye=Jv(t,ye,o,ye.line==r.line?f:null)),ye?sa(t,ye,r,o,l):null}}return r}function Hl(t,r,a,o,l){var f=o||1,p=sa(t,r,a,f,l)||!l&&sa(t,r,a,f,!0)||sa(t,r,a,-f,l)||!l&&sa(t,r,a,-f,!0);return p||(t.cantEdit=!0,de(t.first,0))}function Jv(t,r,a,o){return a<0&&r.ch==0?r.line>t.first?Qe(t,de(r.line-1)):null:a>0&&r.ch==(o||st(t,r.line)).text.length?r.line=0;--l)ng(t,{from:o[l].from,to:o[l].to,text:l?[""]:r.text,origin:r.origin});else ng(t,r)}}function ng(t,r){if(!(r.text.length==1&&r.text[0]==""&&_(r.from,r.to)==0)){var a=bc(t,r);Yv(t,r,a,t.cm?t.cm.curOp.id:NaN),hu(t,r,a,mn(t,r));var o=[];qi(t,function(l,f){!f&&me(o,l.history)==-1&&(ag(l.history,r),o.push(l.history)),hu(l,r,null,mn(l,r))})}}function Wl(t,r,a){var o=t.cm&&t.cm.state.suppressEdits;if(!(o&&!a)){for(var l=t.history,f,p=t.sel,m=r=="undo"?l.done:l.undone,T=r=="undo"?l.undone:l.done,C=0;C=0;--ye){var Be=Te(ye);if(Be)return Be.v}}}}function rg(t,r){if(r!=0&&(t.first+=r,t.sel=new Fr(De(t.sel.ranges,function(l){return new en(de(l.anchor.line+r,l.anchor.ch),de(l.head.line+r,l.head.ch))}),t.sel.primIndex),t.cm)){hr(t.cm,t.first,t.first-r,r);for(var a=t.cm.display,o=a.viewFrom;ot.lastLine())){if(r.from.linef&&(r={from:r.from,to:de(f,st(t,f).text.length),text:[r.text[0]],origin:r.origin}),r.removed=Tt(t,r.from,r.to),a||(a=bc(t,r)),t.cm?ik(t.cm,r,o):Mc(t,r,o),zl(t,a,Je),t.cantEdit&&Hl(t,de(t.firstLine(),0))&&(t.cantEdit=!1)}}function ik(t,r,a){var o=t.doc,l=t.display,f=r.from,p=r.to,m=!1,T=f.line;t.options.lineWrapping||(T=St(Gn(st(o,f.line))),o.iter(T,p.line+1,function(ye){if(ye==l.maxLine)return m=!0,!0})),o.sel.contains(r.from,r.to)>-1&&ct(t),Mc(o,r,a,kv(t)),t.options.lineWrapping||(o.iter(T,f.line+r.text.length,function(ye){var Be=br(ye);Be>l.maxLineLength&&(l.maxLine=ye,l.maxLineLength=Be,l.maxLineChanged=!0,m=!1)}),m&&(t.curOp.updateMaxLine=!0)),Ge(o,f.line),su(t,400);var C=r.text.length-(p.line-f.line)-1;r.full?hr(t):f.line==p.line&&r.text.length==1&&!Wv(t.doc,r)?Ui(t,f.line,"text"):hr(t,f.line,p.line+1,C);var X=ht(t,"changes"),Z=ht(t,"change");if(Z||X){var Te={from:f,to:p,text:r.text,removed:r.removed,origin:r.origin};Z&&Hn(t,"change",t,Te),X&&(t.curOp.changeObjs||(t.curOp.changeObjs=[])).push(Te)}t.display.selForContextMenu=null}function ca(t,r,a,o,l){var f;o||(o=a),_(o,a)<0&&(f=[o,a],a=f[0],o=f[1]),typeof r=="string"&&(r=t.splitLines(r)),fa(t,{from:a,to:o,text:r,origin:l})}function ig(t,r,a,o){a1||!(this.children[0]instanceof pu))){var m=[];this.collapse(m),this.children=[new pu(m)],this.children[0].parent=this}},collapse:function(t){for(var r=0;r50){for(var p=l.lines.length%25+25,m=p;m10);t.parent.maybeSpill()}},iterN:function(t,r,a){for(var o=0;ot.display.maxLineLength&&(t.display.maxLine=C,t.display.maxLineLength=X,t.display.maxLineChanged=!0)}o!=null&&t&&this.collapsed&&hr(t,o,l+1),this.lines.length=0,this.explicitlyCleared=!0,this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,t&&Qv(t.doc)),t&&Hn(t,"markerCleared",t,this,o,l),r&&Po(t),this.parent&&this.parent.clear()}},Gi.prototype.find=function(t,r){t==null&&this.type=="bookmark"&&(t=1);for(var a,o,l=0;l0||p==0&&f.clearWhenEmpty!==!1)return f;if(f.replacedWith&&(f.collapsed=!0,f.widgetNode=y("span",[f.replacedWith],"CodeMirror-widget"),o.handleMouseEvents||f.widgetNode.setAttribute("cm-ignore-events","true"),o.insertLeft&&(f.widgetNode.insertLeft=!0)),f.collapsed){if(li(t,r.line,r,a,f)||r.line!=a.line&&li(t,a.line,r,a,f))throw new Error("Inserting collapsed marker partially overlapping an existing one");Pt()}f.addToHistory&&Yv(t,{from:r,to:a,origin:"markText"},t.sel,NaN);var m=r.line,T=t.cm,C;if(t.iter(m,a.line+1,function(Z){T&&f.collapsed&&!T.options.lineWrapping&&Gn(Z)==T.display.maxLine&&(C=!0),f.collapsed&&m!=r.line&&Xt(Z,0),Kt(Z,new qt(f,m==r.line?r.ch:null,m==a.line?a.ch:null),t.cm&&t.cm.curOp),++m}),f.collapsed&&t.iter(r.line,a.line+1,function(Z){Ir(t,Z)&&Xt(Z,0)}),f.clearOnEnter&&M(f,"beforeCursorEnter",function(){return f.clear()}),f.readOnly&&(mt(),(t.history.done.length||t.history.undone.length)&&t.clearHistory()),f.collapsed&&(f.id=++lg,f.atomic=!0),T){if(C&&(T.curOp.updateMaxLine=!0),f.collapsed)hr(T,r.line,a.line+1);else if(f.className||f.startStyle||f.endStyle||f.css||f.attributes||f.title)for(var X=r.line;X<=a.line;X++)Ui(T,X,"text");f.atomic&&Qv(T.doc),Hn(T,"markerAdded",T,f)}return f}var mu=function(t,r){this.markers=t,this.primary=r;for(var a=0;a=0;T--)fa(this,o[T]);m?Xv(this,m):this.cm&&aa(this.cm)}),undo:Un(function(){Wl(this,"undo")}),redo:Un(function(){Wl(this,"redo")}),undoSelection:Un(function(){Wl(this,"undo",!0)}),redoSelection:Un(function(){Wl(this,"redo",!0)}),setExtending:function(t){this.extend=t},getExtending:function(){return this.extend},historySize:function(){for(var t=this.history,r=0,a=0,o=0;o=t.ch)&&r.push(l.marker.parent||l.marker)}return r},findMarks:function(t,r,a){t=Qe(this,t),r=Qe(this,r);var o=[],l=t.line;return this.iter(t.line,r.line+1,function(f){var p=f.markedSpans;if(p)for(var m=0;m=T.to||T.from==null&&l!=t.line||T.from!=null&&l==r.line&&T.from>=r.ch)&&(!a||a(T.marker))&&o.push(T.marker.parent||T.marker)}++l}),o},getAllMarks:function(){var t=[];return this.iter(function(r){var a=r.markedSpans;if(a)for(var o=0;ot)return r=t,!0;t-=f,++a}),Qe(this,de(a,r))},indexFromPos:function(t){t=Qe(this,t);var r=t.ch;if(t.liner&&(r=t.from),t.to!=null&&t.to-1){r.state.draggingText(t),setTimeout(function(){return r.display.input.focus()},20);return}try{var X=t.dataTransfer.getData("Text");if(X){var Z;if(r.state.draggingText&&!r.state.draggingText.copy&&(Z=r.listSelections()),zl(r.doc,ji(a,a)),Z)for(var Te=0;Te=0;m--)ca(t.doc,"",o[m].from,o[m].to,"+delete");aa(t)})}function Lc(t,r,a){var o=pn(t.text,r+a,a);return o<0||o>t.text.length?null:o}function Oc(t,r,a){var o=Lc(t,r.ch,a);return o==null?null:new de(r.line,o,a<0?"after":"before")}function Dc(t,r,a,o,l){if(t){r.doc.direction=="rtl"&&(l=-l);var f=Xe(a,r.doc.direction);if(f){var p=l<0?fe(f):f[0],m=l<0==(p.level==1),T=m?"after":"before",C;if(p.level>0||r.doc.direction=="rtl"){var X=na(r,a);C=l<0?a.text.length-1:0;var Z=ci(r,X,C).top;C=$t(function(Te){return ci(r,X,Te).top==Z},l<0==(p.level==1)?p.from:p.to-1,C),T=="before"&&(C=Lc(a,C,1))}else C=l<0?p.to:p.from;return new de(o,C,T)}}return new de(o,l<0?a.text.length:0,l<0?"before":"after")}function yk(t,r,a,o){var l=Xe(r,t.doc.direction);if(!l)return Oc(r,a,o);a.ch>=r.text.length?(a.ch=r.text.length,a.sticky="before"):a.ch<=0&&(a.ch=0,a.sticky="after");var f=j(l,a.ch,a.sticky),p=l[f];if(t.doc.direction=="ltr"&&p.level%2==0&&(o>0?p.to>a.ch:p.from=p.from&&Te>=X.begin)){var ye=Z?"before":"after";return new de(a.line,Te,ye)}}var Be=function(ut,pt,lt){for(var gt=function(hn,Bn){return Bn?new de(a.line,m(hn,1),"before"):new de(a.line,hn,"after")};ut>=0&&ut0==(kt.level!=1),Ft=xt?lt.begin:m(lt.end,-1);if(kt.from<=Ft&&Ft0?X.end:m(X.begin,-1);return nt!=null&&!(o>0&&nt==r.text.length)&&(Ve=Be(o>0?0:l.length-1,o,C(nt)),Ve)?Ve:null}var xu={selectAll:eg,singleSelection:function(t){return t.setSelection(t.getCursor("anchor"),t.getCursor("head"),Je)},killLine:function(t){return pa(t,function(r){if(r.empty()){var a=st(t.doc,r.head.line).text.length;return r.head.ch==a&&r.head.line0)l=new de(l.line,l.ch+1),t.replaceRange(f.charAt(l.ch-1)+f.charAt(l.ch-2),de(l.line,l.ch-2),l,"+transpose");else if(l.line>t.doc.first){var p=st(t.doc,l.line-1).text;p&&(l=new de(l.line,1),t.replaceRange(f.charAt(0)+t.doc.lineSeparator()+p.charAt(p.length-1),de(l.line-1,p.length-1),l,"+transpose"))}}a.push(new en(l,l))}t.setSelections(a)})},newlineAndIndent:function(t){return Cr(t,function(){for(var r=t.listSelections(),a=r.length-1;a>=0;a--)t.replaceRange(t.doc.lineSeparator(),r[a].anchor,r[a].head,"+input");r=t.listSelections();for(var o=0;ot&&_(r,this.pos)==0&&a==this.button};var ku,Tu;function bk(t,r){var a=+new Date;return Tu&&Tu.compare(a,t,r)?(ku=Tu=null,"triple"):ku&&ku.compare(a,t,r)?(Tu=new Ic(a,t,r),ku=null,"double"):(ku=new Ic(a,t,r),Tu=null,"single")}function Sg(t){var r=this,a=r.display;if(!(tt(r,t)||a.activeTouch&&a.input.supportsTouch())){if(a.input.ensurePolled(),a.shift=t.shiftKey,Si(a,t)){k||(a.scroller.draggable=!1,setTimeout(function(){return a.scroller.draggable=!0},100));return}if(!Rc(r,t)){var o=bo(r,t),l=gn(t),f=o?bk(o,l):"single";window.focus(),l==1&&r.state.selectingText&&r.state.selectingText(t),!(o&&Ck(r,l,o,f,t))&&(l==1?o?Ek(r,o,f,t):nn(t)==a.scroller&&bt(t):l==2?(o&&Fl(r.doc,o),setTimeout(function(){return a.input.focus()},20)):l==3&&(c?r.display.input.onContextMenu(t):gc(r)))}}}function Ck(t,r,a,o,l){var f="Click";return o=="double"?f="Double"+f:o=="triple"&&(f="Triple"+f),f=(r==1?"Left":r==2?"Middle":"Right")+f,_u(t,vg(f,l),l,function(p){if(typeof p=="string"&&(p=xu[p]),!p)return!1;var m=!1;try{t.isReadOnly()&&(t.state.suppressEdits=!0),m=p(t,a)!=He}finally{t.state.suppressEdits=!1}return m})}function Mk(t,r,a){var o=t.getOption("configureMouse"),l=o?o(t,r,a):{};if(l.unit==null){var f=le?a.shiftKey&&a.metaKey:a.altKey;l.unit=f?"rectangle":r=="single"?"char":r=="double"?"word":"line"}return(l.extend==null||t.doc.extend)&&(l.extend=t.doc.extend||a.shiftKey),l.addNew==null&&(l.addNew=Y?a.metaKey:a.ctrlKey),l.moveOnDrag==null&&(l.moveOnDrag=!(Y?a.altKey:a.ctrlKey)),l}function Ek(t,r,a,o){d?setTimeout(We(bv,t),0):t.curOp.focus=oe();var l=Mk(t,a,o),f=t.doc.sel,p;t.options.dragDrop&&K&&!t.isReadOnly()&&a=="single"&&(p=f.contains(r))>-1&&(_((p=f.ranges[p]).from(),r)<0||r.xRel>0)&&(_(p.to(),r)>0||r.xRel<0)?Nk(t,o,r,l):Pk(t,o,r,l)}function Nk(t,r,a,o){var l=t.display,f=!1,p=Wn(t,function(C){k&&(l.scroller.draggable=!1),t.state.draggingText=!1,t.state.delayingBlurEvent&&(t.hasFocus()?t.state.delayingBlurEvent=!1:gc(t)),Se(l.wrapper.ownerDocument,"mouseup",p),Se(l.wrapper.ownerDocument,"mousemove",m),Se(l.scroller,"dragstart",T),Se(l.scroller,"drop",p),f||(bt(C),o.addNew||Fl(t.doc,a,null,null,o.extend),k&&!ie||d&&v==9?setTimeout(function(){l.wrapper.ownerDocument.body.focus({preventScroll:!0}),l.input.focus()},20):l.input.focus())}),m=function(C){f=f||Math.abs(r.clientX-C.clientX)+Math.abs(r.clientY-C.clientY)>=10},T=function(){return f=!0};k&&(l.scroller.draggable=!0),t.state.draggingText=p,p.copy=!o.moveOnDrag,M(l.wrapper.ownerDocument,"mouseup",p),M(l.wrapper.ownerDocument,"mousemove",m),M(l.scroller,"dragstart",T),M(l.scroller,"drop",p),t.state.delayingBlurEvent=!0,setTimeout(function(){return l.input.focus()},20),l.scroller.dragDrop&&l.scroller.dragDrop()}function bg(t,r,a){if(a=="char")return new en(r,r);if(a=="word")return t.findWordAt(r);if(a=="line")return new en(de(r.line,0),Qe(t.doc,de(r.line+1,0)));var o=a(t,r);return new en(o.from,o.to)}function Pk(t,r,a,o){d&&gc(t);var l=t.display,f=t.doc;bt(r);var p,m,T=f.sel,C=T.ranges;if(o.addNew&&!o.extend?(m=f.sel.contains(a),m>-1?p=C[m]:p=new en(a,a)):(p=f.sel.primary(),m=f.sel.primIndex),o.unit=="rectangle")o.addNew||(p=new en(a,a)),a=bo(t,r,!0,!0),m=-1;else{var X=bg(t,a,o.unit);o.extend?p=Nc(p,X.anchor,X.head,o.extend):p=X}o.addNew?m==-1?(m=C.length,Jn(f,ei(t,C.concat([p]),m),{scroll:!1,origin:"*mouse"})):C.length>1&&C[m].empty()&&o.unit=="char"&&!o.extend?(Jn(f,ei(t,C.slice(0,m).concat(C.slice(m+1)),0),{scroll:!1,origin:"*mouse"}),T=f.sel):Pc(f,m,p,te):(m=0,Jn(f,new Fr([p],0),te),T=f.sel);var Z=a;function Te(lt){if(_(Z,lt)!=0)if(Z=lt,o.unit=="rectangle"){for(var gt=[],kt=t.options.tabSize,xt=ke(st(f,a.line).text,a.ch,kt),Ft=ke(st(f,lt.line).text,lt.ch,kt),hn=Math.min(xt,Ft),Bn=Math.max(xt,Ft),yn=Math.min(a.line,lt.line),Mr=Math.min(t.lastLine(),Math.max(a.line,lt.line));yn<=Mr;yn++){var pr=st(f,yn).text,Ln=Oe(pr,hn,kt);hn==Bn?gt.push(new en(de(yn,Ln),de(yn,Ln))):pr.length>Ln&>.push(new en(de(yn,Ln),de(yn,Oe(pr,Bn,kt))))}gt.length||gt.push(new en(a,a)),Jn(f,ei(t,T.ranges.slice(0,m).concat(gt),m),{origin:"*mouse",scroll:!1}),t.scrollIntoView(lt)}else{var vr=p,$n=bg(t,lt,o.unit),Fn=vr.anchor,On;_($n.anchor,Fn)>0?(On=$n.head,Fn=Ze(vr.from(),$n.anchor)):(On=$n.anchor,Fn=Ne(vr.to(),$n.head));var Tn=T.ranges.slice(0);Tn[m]=Lk(t,new en(Qe(f,Fn),On)),Jn(f,ei(t,Tn,m),te)}}var ye=l.wrapper.getBoundingClientRect(),Be=0;function Ve(lt){var gt=++Be,kt=bo(t,lt,!0,o.unit=="rectangle");if(!!kt)if(_(kt,Z)!=0){t.curOp.focus=oe(),Te(kt);var xt=Ll(l,f);(kt.line>=xt.to||kt.lineye.bottom?20:0;Ft&&setTimeout(Wn(t,function(){Be==gt&&(l.scroller.scrollTop+=Ft,Ve(lt))}),50)}}function nt(lt){t.state.selectingText=!1,Be=1/0,lt&&(bt(lt),l.input.focus()),Se(l.wrapper.ownerDocument,"mousemove",ut),Se(l.wrapper.ownerDocument,"mouseup",pt),f.history.lastSelOrigin=null}var ut=Wn(t,function(lt){lt.buttons===0||!gn(lt)?nt(lt):Ve(lt)}),pt=Wn(t,nt);t.state.selectingText=pt,M(l.wrapper.ownerDocument,"mousemove",ut),M(l.wrapper.ownerDocument,"mouseup",pt)}function Lk(t,r){var a=r.anchor,o=r.head,l=st(t.doc,a.line);if(_(a,o)==0&&a.sticky==o.sticky)return r;var f=Xe(l);if(!f)return r;var p=j(f,a.ch,a.sticky),m=f[p];if(m.from!=a.ch&&m.to!=a.ch)return r;var T=p+(m.from==a.ch==(m.level!=1)?0:1);if(T==0||T==f.length)return r;var C;if(o.line!=a.line)C=(o.line-a.line)*(t.doc.direction=="ltr"?1:-1)>0;else{var X=j(f,o.ch,o.sticky),Z=X-p||(o.ch-a.ch)*(m.level==1?-1:1);X==T-1||X==T?C=Z<0:C=Z>0}var Te=f[T+(C?-1:0)],ye=C==(Te.level==1),Be=ye?Te.from:Te.to,Ve=ye?"after":"before";return a.ch==Be&&a.sticky==Ve?r:new en(new de(a.line,Be,Ve),o)}function Cg(t,r,a,o){var l,f;if(r.touches)l=r.touches[0].clientX,f=r.touches[0].clientY;else try{l=r.clientX,f=r.clientY}catch{return!1}if(l>=Math.floor(t.display.gutters.getBoundingClientRect().right))return!1;o&&bt(r);var p=t.display,m=p.lineDiv.getBoundingClientRect();if(f>m.bottom||!ht(t,a))return Wt(r);f-=m.top-p.viewOffset;for(var T=0;T=l){var X=G(t.doc,f),Z=t.display.gutterSpecs[T];return ze(t,a,t,X,Z.className,r),Wt(r)}}}function Rc(t,r){return Cg(t,r,"gutterClick",!0)}function Mg(t,r){Si(t.display,r)||Ok(t,r)||tt(t,r,"contextmenu")||c||t.display.input.onContextMenu(r)}function Ok(t,r){return ht(t,"gutterContextMenu")?Cg(t,r,"gutterContextMenu",!1):!1}function Eg(t){t.display.wrapper.className=t.display.wrapper.className.replace(/\s*cm-s-\S+/g,"")+t.options.theme.replace(/(^|\s)\s*/g," cm-s-"),ru(t)}var va={toString:function(){return"CodeMirror.Init"}},Ng={},Yl={};function Dk(t){var r=t.optionHandlers;function a(o,l,f,p){t.defaults[o]=l,f&&(r[o]=p?function(m,T,C){C!=va&&f(m,T,C)}:f)}t.defineOption=a,t.Init=va,a("value","",function(o,l){return o.setValue(l)},!0),a("mode",null,function(o,l){o.doc.modeOption=l,Cc(o)},!0),a("indentUnit",2,Cc,!0),a("indentWithTabs",!1),a("smartIndent",!0),a("tabSize",4,function(o){cu(o),ru(o),hr(o)},!0),a("lineSeparator",null,function(o,l){if(o.doc.lineSep=l,!!l){var f=[],p=o.doc.first;o.doc.iter(function(T){for(var C=0;;){var X=T.text.indexOf(l,C);if(X==-1)break;C=X+l.length,f.push(de(p,X))}p++});for(var m=f.length-1;m>=0;m--)ca(o.doc,l,f[m],de(f[m].line,f[m].ch+l.length))}}),a("specialChars",/[\u0000-\u001f\u007f-\u009f\u00ad\u061c\u200b\u200e\u200f\u2028\u2029\ufeff\ufff9-\ufffc]/g,function(o,l,f){o.state.specialChars=new RegExp(l.source+(l.test(" ")?"":"| "),"g"),f!=va&&o.refresh()}),a("specialCharPlaceholder",l_,function(o){return o.refresh()},!0),a("electricChars",!0),a("inputStyle",I?"contenteditable":"textarea",function(){throw new Error("inputStyle can not (yet) be changed in a running editor")},!0),a("spellcheck",!1,function(o,l){return o.getInputField().spellcheck=l},!0),a("autocorrect",!1,function(o,l){return o.getInputField().autocorrect=l},!0),a("autocapitalize",!1,function(o,l){return o.getInputField().autocapitalize=l},!0),a("rtlMoveVisually",!pe),a("wholeLineUpdateBefore",!0),a("theme","default",function(o){Eg(o),fu(o)},!0),a("keyMap","default",function(o,l,f){var p=Bl(l),m=f!=va&&Bl(f);m&&m.detach&&m.detach(o,p),p.attach&&p.attach(o,m||null)}),a("extraKeys",null),a("configureMouse",null),a("lineWrapping",!1,Ik,!0),a("gutters",[],function(o,l){o.display.gutterSpecs=Sc(l,o.options.lineNumbers),fu(o)},!0),a("fixedGutter",!0,function(o,l){o.display.gutters.style.left=l?hc(o.display)+"px":"0",o.refresh()},!0),a("coverGutterNextToScrollbar",!1,function(o){return ua(o)},!0),a("scrollbarStyle","native",function(o){Lv(o),ua(o),o.display.scrollbars.setScrollTop(o.doc.scrollTop),o.display.scrollbars.setScrollLeft(o.doc.scrollLeft)},!0),a("lineNumbers",!1,function(o,l){o.display.gutterSpecs=Sc(o.options.gutters,l),fu(o)},!0),a("firstLineNumber",1,fu,!0),a("lineNumberFormatter",function(o){return o},fu,!0),a("showCursorWhenSelecting",!1,iu,!0),a("resetSelectionOnContextMenu",!0),a("lineWiseCopyCut",!0),a("pasteLinesPerSelection",!0),a("selectionsMayTouch",!1),a("readOnly",!1,function(o,l){l=="nocursor"&&(oa(o),o.display.input.blur()),o.display.input.readOnlyChanged(l)}),a("screenReaderLabel",null,function(o,l){l=l===""?null:l,o.display.input.screenReaderLabelChanged(l)}),a("disableInput",!1,function(o,l){l||o.display.input.reset()},!0),a("dragDrop",!0,Ak),a("allowDropFileTypes",null),a("cursorBlinkRate",530),a("cursorScrollMargin",0),a("cursorHeight",1,iu,!0),a("singleCursorHeightPerLine",!0,iu,!0),a("workTime",100),a("workDelay",100),a("flattenSpans",!0,cu,!0),a("addModeClass",!1,cu,!0),a("pollInterval",100),a("undoDepth",200,function(o,l){return o.doc.history.undoDepth=l}),a("historyEventDelay",1250),a("viewportMargin",10,function(o){return o.refresh()},!0),a("maxHighlightLength",1e4,cu,!0),a("moveInputWithCursor",!0,function(o,l){l||o.display.input.resetPosition()}),a("tabindex",null,function(o,l){return o.display.input.getField().tabIndex=l||""}),a("autofocus",null),a("direction","ltr",function(o,l){return o.doc.setDirection(l)},!0),a("phrases",null)}function Ak(t,r,a){var o=a&&a!=va;if(!r!=!o){var l=t.display.dragFunctions,f=r?M:Se;f(t.display.scroller,"dragstart",l.start),f(t.display.scroller,"dragenter",l.enter),f(t.display.scroller,"dragover",l.over),f(t.display.scroller,"dragleave",l.leave),f(t.display.scroller,"drop",l.drop)}}function Ik(t){t.options.lineWrapping?(Le(t.display.wrapper,"CodeMirror-wrap"),t.display.sizer.style.minWidth="",t.display.sizerWidth=null):(x(t.display.wrapper,"CodeMirror-wrap"),ko(t)),dc(t),hr(t),ru(t),setTimeout(function(){return ua(t)},100)}function vn(t,r){var a=this;if(!(this instanceof vn))return new vn(t,r);this.options=r=r?ce(r):{},ce(Ng,r,!1);var o=r.value;typeof o=="string"?o=new dr(o,r.mode,null,r.lineSeparator,r.direction):r.mode&&(o.modeOption=r.mode),this.doc=o;var l=new vn.inputStyles[r.inputStyle](this),f=this.display=new V_(t,o,l,r);f.wrapper.CodeMirror=this,Eg(this),r.lineWrapping&&(this.display.wrapper.className+=" CodeMirror-wrap"),Lv(this),this.state={keyMaps:[],overlays:[],modeGen:0,overwrite:!1,delayingBlurEvent:!1,focused:!1,suppressEdits:!1,pasteIncoming:-1,cutIncoming:-1,selectingText:!1,draggingText:!1,highlight:new Ce,keySeq:null,specialChars:null},r.autofocus&&!I&&f.input.focus(),d&&v<11&&setTimeout(function(){return a.display.input.reset(!0)},20),Rk(this),dk(),No(this),this.curOp.forceUpdate=!0,Uv(this,o),r.autofocus&&!I||this.hasFocus()?setTimeout(function(){a.hasFocus()&&!a.state.focused&&mc(a)},20):oa(this);for(var p in Yl)Yl.hasOwnProperty(p)&&Yl[p](this,r[p],va);Av(this),r.finishInit&&r.finishInit(this);for(var m=0;m20*20}M(r.scroller,"touchstart",function(T){if(!tt(t,T)&&!f(T)&&!Rc(t,T)){r.input.ensurePolled(),clearTimeout(a);var C=+new Date;r.activeTouch={start:C,moved:!1,prev:C-o.end<=300?o:null},T.touches.length==1&&(r.activeTouch.left=T.touches[0].pageX,r.activeTouch.top=T.touches[0].pageY)}}),M(r.scroller,"touchmove",function(){r.activeTouch&&(r.activeTouch.moved=!0)}),M(r.scroller,"touchend",function(T){var C=r.activeTouch;if(C&&!Si(r,T)&&C.left!=null&&!C.moved&&new Date-C.start<300){var X=t.coordsChar(r.activeTouch,"page"),Z;!C.prev||p(C,C.prev)?Z=new en(X,X):!C.prev.prev||p(C,C.prev.prev)?Z=t.findWordAt(X):Z=new en(de(X.line,0),Qe(t.doc,de(X.line+1,0))),t.setSelection(Z.anchor,Z.head),t.focus(),bt(T)}l()}),M(r.scroller,"touchcancel",l),M(r.scroller,"scroll",function(){r.scroller.clientHeight&&(au(t,r.scroller.scrollTop),Mo(t,r.scroller.scrollLeft,!0),ze(t,"scroll",t))}),M(r.scroller,"mousewheel",function(T){return Fv(t,T)}),M(r.scroller,"DOMMouseScroll",function(T){return Fv(t,T)}),M(r.wrapper,"scroll",function(){return r.wrapper.scrollTop=r.wrapper.scrollLeft=0}),r.dragFunctions={enter:function(T){tt(t,T)||ln(T)},over:function(T){tt(t,T)||(hk(t,T),ln(T))},start:function(T){return ck(t,T)},drop:Wn(t,fk),leave:function(T){tt(t,T)||cg(t)}};var m=r.input.getField();M(m,"keyup",function(T){return kg.call(t,T)}),M(m,"keydown",Wn(t,_g)),M(m,"keypress",Wn(t,Tg)),M(m,"focus",function(T){return mc(t,T)}),M(m,"blur",function(T){return oa(t,T)})}var Fc=[];vn.defineInitHook=function(t){return Fc.push(t)};function Su(t,r,a,o){var l=t.doc,f;a==null&&(a="add"),a=="smart"&&(l.mode.indent?f=Qr(t,r).state:a="prev");var p=t.options.tabSize,m=st(l,r),T=ke(m.text,null,p);m.stateAfter&&(m.stateAfter=null);var C=m.text.match(/^\s*/)[0],X;if(!o&&!/\S/.test(m.text))X=0,a="not";else if(a=="smart"&&(X=l.mode.indent(f,m.text.slice(C.length),m.text),X==He||X>150)){if(!o)return;a="prev"}a=="prev"?r>l.first?X=ke(st(l,r-1).text,null,p):X=0:a=="add"?X=T+t.options.indentUnit:a=="subtract"?X=T-t.options.indentUnit:typeof a=="number"&&(X=T+a),X=Math.max(0,X);var Z="",Te=0;if(t.options.indentWithTabs)for(var ye=Math.floor(X/p);ye;--ye)Te+=p,Z+=" ";if(Tep,T=L(r),C=null;if(m&&o.ranges.length>1)if(ti&&ti.text.join(` -`)==r){if(o.ranges.length%ti.text.length==0){C=[];for(var X=0;X=0;Te--){var ye=o.ranges[Te],Be=ye.from(),Ve=ye.to();ye.empty()&&(a&&a>0?Be=de(Be.line,Be.ch-a):t.state.overwrite&&!m?Ve=de(Ve.line,Math.min(st(f,Ve.line).text.length,Ve.ch+fe(T).length)):m&&ti&&ti.lineWise&&ti.text.join(` -`)==T.join(` -`)&&(Be=Ve=de(Be.line,0)));var nt={from:Be,to:Ve,text:C?C[Te%C.length]:T,origin:l||(m?"paste":t.state.cutIncoming>p?"cut":"+input")};fa(t.doc,nt),Hn(t,"inputRead",t,nt)}r&&!m&&Lg(t,r),aa(t),t.curOp.updateInput<2&&(t.curOp.updateInput=Z),t.curOp.typing=!0,t.state.pasteIncoming=t.state.cutIncoming=-1}function Pg(t,r){var a=t.clipboardData&&t.clipboardData.getData("Text");if(a)return t.preventDefault(),!r.isReadOnly()&&!r.options.disableInput&&Cr(r,function(){return zc(r,a,0,null,"paste")}),!0}function Lg(t,r){if(!(!t.options.electricChars||!t.options.smartIndent))for(var a=t.doc.sel,o=a.ranges.length-1;o>=0;o--){var l=a.ranges[o];if(!(l.head.ch>100||o&&a.ranges[o-1].head.line==l.head.line)){var f=t.getModeAt(l.head),p=!1;if(f.electricChars){for(var m=0;m-1){p=Su(t,l.head.line,"smart");break}}else f.electricInput&&f.electricInput.test(st(t.doc,l.head.line).text.slice(0,l.head.ch))&&(p=Su(t,l.head.line,"smart"));p&&Hn(t,"electricInput",t,l.head.line)}}}function Og(t){for(var r=[],a=[],o=0;of&&(Su(this,m.head.line,o,!0),f=m.head.line,p==this.doc.sel.primIndex&&aa(this));else{var T=m.from(),C=m.to(),X=Math.max(f,T.line);f=Math.min(this.lastLine(),C.line-(C.ch?0:1))+1;for(var Z=X;Z0&&Pc(this.doc,p,new en(T,Te[p].to()),Je)}}}),getTokenAt:function(o,l){return Me(this,o,l)},getLineTokens:function(o,l){return Me(this,de(o),l,!0)},getTokenTypeAt:function(o){o=Qe(this.doc,o);var l=ki(this,st(this.doc,o.line)),f=0,p=(l.length-1)/2,m=o.ch,T;if(m==0)T=l[2];else for(;;){var C=f+p>>1;if((C?l[C*2-1]:0)>=m)p=C;else if(l[C*2+1]T&&(o=T,p=!0),m=st(this.doc,o)}else m=o;return Cl(this,m,{top:0,left:0},l||"page",f||p).top+(p?this.doc.height-Rr(m):0)},defaultTextHeight:function(){return ra(this.display)},defaultCharWidth:function(){return ia(this.display)},getViewport:function(){return{from:this.display.viewFrom,to:this.display.viewTo}},addWidget:function(o,l,f,p,m){var T=this.display;o=Jr(this,Qe(this.doc,o));var C=o.bottom,X=o.left;if(l.style.position="absolute",l.setAttribute("cm-ignore-events","true"),this.display.input.setUneditable(l),T.sizer.appendChild(l),p=="over")C=o.top;else if(p=="above"||p=="near"){var Z=Math.max(T.wrapper.clientHeight,this.doc.height),Te=Math.max(T.sizer.clientWidth,T.lineSpace.clientWidth);(p=="above"||o.bottom+l.offsetHeight>Z)&&o.top>l.offsetHeight?C=o.top-l.offsetHeight:o.bottom+l.offsetHeight<=Z&&(C=o.bottom),X+l.offsetWidth>Te&&(X=Te-l.offsetWidth)}l.style.top=C+"px",l.style.left=l.style.right="",m=="right"?(X=T.sizer.clientWidth-l.offsetWidth,l.style.right="0px"):(m=="left"?X=0:m=="middle"&&(X=(T.sizer.clientWidth-l.offsetWidth)/2),l.style.left=X+"px"),f&&A_(this,{left:X,top:C,right:X+l.offsetWidth,bottom:C+l.offsetHeight})},triggerOnKeyDown:rr(_g),triggerOnKeyPress:rr(Tg),triggerOnKeyUp:kg,triggerOnMouseDown:rr(Sg),execCommand:function(o){if(xu.hasOwnProperty(o))return xu[o].call(null,this)},triggerElectric:rr(function(o){Lg(this,o)}),findPosH:function(o,l,f,p){var m=1;l<0&&(m=-1,l=-l);for(var T=Qe(this.doc,o),C=0;C0&&X(f.charAt(p-1));)--p;for(;m.5||this.options.lineWrapping)&&dc(this),ze(this,"refresh",this)}),swapDoc:rr(function(o){var l=this.doc;return l.cm=null,this.state.selectingText&&this.state.selectingText(),Uv(this,o),ru(this),this.display.input.reset(),ou(this,o.scrollLeft,o.scrollTop),this.curOp.forceScroll=!0,Hn(this,"swapDoc",this,l),l}),phrase:function(o){var l=this.options.phrases;return l&&Object.prototype.hasOwnProperty.call(l,o)?l[o]:o},getInputField:function(){return this.display.input.getField()},getWrapperElement:function(){return this.display.wrapper},getScrollerElement:function(){return this.display.scroller},getGutterElement:function(){return this.display.gutters}},wt(t),t.registerHelper=function(o,l,f){a.hasOwnProperty(o)||(a[o]=t[o]={_global:[]}),a[o][l]=f},t.registerGlobalHelper=function(o,l,f,p){t.registerHelper(o,l,p),a[o]._global.push({pred:f,val:p})}}function Hc(t,r,a,o,l){var f=r,p=a,m=st(t,r.line),T=l&&t.direction=="rtl"?-a:a;function C(){var pt=r.line+T;return pt=t.first+t.size?!1:(r=new de(pt,r.ch,r.sticky),m=st(t,pt))}function X(pt){var lt;if(o=="codepoint"){var gt=m.text.charCodeAt(r.ch+(a>0?0:-1));if(isNaN(gt))lt=null;else{var kt=a>0?gt>=55296&><56320:gt>=56320&><57343;lt=new de(r.line,Math.max(0,Math.min(m.text.length,r.ch+a*(kt?2:1))),-a)}}else l?lt=yk(t.cm,m,r,a):lt=Oc(m,r,a);if(lt==null)if(!pt&&C())r=Dc(l,t.cm,m,r.line,T);else return!1;else r=lt;return!0}if(o=="char"||o=="codepoint")X();else if(o=="column")X(!0);else if(o=="word"||o=="group")for(var Z=null,Te=o=="group",ye=t.cm&&t.cm.getHelper(r,"wordChars"),Be=!0;!(a<0&&!X(!Be));Be=!1){var Ve=m.text.charAt(r.ch)||` -`,nt=Et(Ve,ye)?"w":Te&&Ve==` -`?"n":!Te||/\s/.test(Ve)?null:"p";if(Te&&!Be&&!nt&&(nt="s"),Z&&Z!=nt){a<0&&(a=1,X(),r.sticky="after");break}if(nt&&(Z=nt),a>0&&!X(!Be))break}var ut=Hl(t,r,f,p,!0);return H(f,ut)&&(ut.hitSide=!0),ut}function Ig(t,r,a,o){var l=t.doc,f=r.left,p;if(o=="page"){var m=Math.min(t.display.wrapper.clientHeight,window.innerHeight||document.documentElement.clientHeight),T=Math.max(m-.5*ra(t.display),3);p=(a>0?r.bottom:r.top)+a*T}else o=="line"&&(p=a>0?r.bottom+3:r.top-3);for(var C;C=sc(t,f,p),!!C.outside;){if(a<0?p<=0:p>=l.height){C.hitSide=!0;break}p+=a*5}return C}var an=function(t){this.cm=t,this.lastAnchorNode=this.lastAnchorOffset=this.lastFocusNode=this.lastFocusOffset=null,this.polling=new Ce,this.composing=null,this.gracePeriod=!1,this.readDOMTimeout=null};an.prototype.init=function(t){var r=this,a=this,o=a.cm,l=a.div=t.lineDiv;l.contentEditable=!0,Dg(l,o.options.spellcheck,o.options.autocorrect,o.options.autocapitalize);function f(m){for(var T=m.target;T;T=T.parentNode){if(T==l)return!0;if(/\bCodeMirror-(?:line)?widget\b/.test(T.className))break}return!1}M(l,"paste",function(m){!f(m)||tt(o,m)||Pg(m,o)||v<=11&&setTimeout(Wn(o,function(){return r.updateFromDOM()}),20)}),M(l,"compositionstart",function(m){r.composing={data:m.data,done:!1}}),M(l,"compositionupdate",function(m){r.composing||(r.composing={data:m.data,done:!1})}),M(l,"compositionend",function(m){r.composing&&(m.data!=r.composing.data&&r.readFromDOMSoon(),r.composing.done=!0)}),M(l,"touchstart",function(){return a.forceCompositionEnd()}),M(l,"input",function(){r.composing||r.readFromDOMSoon()});function p(m){if(!(!f(m)||tt(o,m))){if(o.somethingSelected())ql({lineWise:!1,text:o.getSelections()}),m.type=="cut"&&o.replaceSelection("",null,"cut");else if(o.options.lineWiseCopyCut){var T=Og(o);ql({lineWise:!0,text:T.text}),m.type=="cut"&&o.operation(function(){o.setSelections(T.ranges,0,Je),o.replaceSelection("",null,"cut")})}else return;if(m.clipboardData){m.clipboardData.clearData();var C=ti.text.join(` -`);if(m.clipboardData.setData("Text",C),m.clipboardData.getData("Text")==C){m.preventDefault();return}}var X=Ag(),Z=X.firstChild;o.display.lineSpace.insertBefore(X,o.display.lineSpace.firstChild),Z.value=ti.text.join(` -`);var Te=oe();re(Z),setTimeout(function(){o.display.lineSpace.removeChild(X),Te.focus(),Te==l&&a.showPrimarySelection()},50)}}M(l,"copy",p),M(l,"cut",p)},an.prototype.screenReaderLabelChanged=function(t){t?this.div.setAttribute("aria-label",t):this.div.removeAttribute("aria-label")},an.prototype.prepareSelection=function(){var t=Sv(this.cm,!1);return t.focus=oe()==this.div,t},an.prototype.showSelection=function(t,r){!t||!this.cm.display.view.length||((t.focus||r)&&this.showPrimarySelection(),this.showMultipleSelections(t))},an.prototype.getSelection=function(){return this.cm.display.wrapper.ownerDocument.getSelection()},an.prototype.showPrimarySelection=function(){var t=this.getSelection(),r=this.cm,a=r.doc.sel.primary(),o=a.from(),l=a.to();if(r.display.viewTo==r.display.viewFrom||o.line>=r.display.viewTo||l.line=r.display.viewFrom&&Rg(r,o)||{node:m[0].measure.map[2],offset:0},C=l.linet.firstLine()&&(o=de(o.line-1,st(t.doc,o.line-1).length)),l.ch==st(t.doc,l.line).text.length&&l.liner.viewTo-1)return!1;var f,p,m;o.line==r.viewFrom||(f=Co(t,o.line))==0?(p=St(r.view[0].line),m=r.view[0].node):(p=St(r.view[f].line),m=r.view[f-1].node.nextSibling);var T=Co(t,l.line),C,X;if(T==r.view.length-1?(C=r.viewTo-1,X=r.lineDiv.lastChild):(C=St(r.view[T+1].line)-1,X=r.view[T+1].node.previousSibling),!m)return!1;for(var Z=t.doc.splitLines(Hk(t,m,X,p,C)),Te=Tt(t.doc,de(p,0),de(C,st(t.doc,C).text.length));Z.length>1&&Te.length>1;)if(fe(Z)==fe(Te))Z.pop(),Te.pop(),C--;else if(Z[0]==Te[0])Z.shift(),Te.shift(),p++;else break;for(var ye=0,Be=0,Ve=Z[0],nt=Te[0],ut=Math.min(Ve.length,nt.length);yeo.ch&&pt.charCodeAt(pt.length-Be-1)==lt.charCodeAt(lt.length-Be-1);)ye--,Be++;Z[Z.length-1]=pt.slice(0,pt.length-Be).replace(/^\u200b+/,""),Z[0]=Z[0].slice(ye).replace(/\u200b+$/,"");var kt=de(p,ye),xt=de(C,Te.length?fe(Te).length-Be:0);if(Z.length>1||Z[0]||_(kt,xt))return ca(t.doc,Z,kt,xt,"+input"),!0},an.prototype.ensurePolled=function(){this.forceCompositionEnd()},an.prototype.reset=function(){this.forceCompositionEnd()},an.prototype.forceCompositionEnd=function(){!this.composing||(clearTimeout(this.readDOMTimeout),this.composing=null,this.updateFromDOM(),this.div.blur(),this.div.focus())},an.prototype.readFromDOMSoon=function(){var t=this;this.readDOMTimeout==null&&(this.readDOMTimeout=setTimeout(function(){if(t.readDOMTimeout=null,t.composing)if(t.composing.done)t.composing=null;else return;t.updateFromDOM()},80))},an.prototype.updateFromDOM=function(){var t=this;(this.cm.isReadOnly()||!this.pollContent())&&Cr(this.cm,function(){return hr(t.cm)})},an.prototype.setUneditable=function(t){t.contentEditable="false"},an.prototype.onKeyPress=function(t){t.charCode==0||this.composing||(t.preventDefault(),this.cm.isReadOnly()||Wn(this.cm,zc)(this.cm,String.fromCharCode(t.charCode==null?t.keyCode:t.charCode),0))},an.prototype.readOnlyChanged=function(t){this.div.contentEditable=String(t!="nocursor")},an.prototype.onContextMenu=function(){},an.prototype.resetPosition=function(){},an.prototype.needsContentAttribute=!0;function Rg(t,r){var a=ac(t,r.line);if(!a||a.hidden)return null;var o=st(t.doc,r.line),l=fv(a,o,r.line),f=Xe(o,t.doc.direction),p="left";if(f){var m=j(f,r.ch);p=m%2?"right":"left"}var T=dv(l.map,r.ch,p);return T.offset=T.collapse=="right"?T.end:T.start,T}function zk(t){for(var r=t;r;r=r.parentNode)if(/CodeMirror-gutter-wrapper/.test(r.className))return!0;return!1}function ga(t,r){return r&&(t.bad=!0),t}function Hk(t,r,a,o,l){var f="",p=!1,m=t.doc.lineSeparator(),T=!1;function C(ye){return function(Be){return Be.id==ye}}function X(){p&&(f+=m,T&&(f+=m),p=T=!1)}function Z(ye){ye&&(X(),f+=ye)}function Te(ye){if(ye.nodeType==1){var Be=ye.getAttribute("cm-text");if(Be){Z(Be);return}var Ve=ye.getAttribute("cm-marker"),nt;if(Ve){var ut=t.findMarks(de(o,0),de(l+1,0),C(+Ve));ut.length&&(nt=ut[0].find(0))&&Z(Tt(t.doc,nt.from,nt.to).join(m));return}if(ye.getAttribute("contenteditable")=="false")return;var pt=/^(pre|div|p|li|table|br)$/i.test(ye.nodeName);if(!/^br$/i.test(ye.nodeName)&&ye.textContent.length==0)return;pt&&X();for(var lt=0;lt=9&&r.hasSelection&&(r.hasSelection=null),a.poll()}),M(l,"paste",function(p){tt(o,p)||Pg(p,o)||(o.state.pasteIncoming=+new Date,a.fastPoll())});function f(p){if(!tt(o,p)){if(o.somethingSelected())ql({lineWise:!1,text:o.getSelections()});else if(o.options.lineWiseCopyCut){var m=Og(o);ql({lineWise:!0,text:m.text}),p.type=="cut"?o.setSelections(m.ranges,null,Je):(a.prevInput="",l.value=m.text.join(` -`),re(l))}else return;p.type=="cut"&&(o.state.cutIncoming=+new Date)}}M(l,"cut",f),M(l,"copy",f),M(t.scroller,"paste",function(p){if(!(Si(t,p)||tt(o,p))){if(!l.dispatchEvent){o.state.pasteIncoming=+new Date,a.focus();return}var m=new Event("paste");m.clipboardData=p.clipboardData,l.dispatchEvent(m)}}),M(t.lineSpace,"selectstart",function(p){Si(t,p)||bt(p)}),M(l,"compositionstart",function(){var p=o.getCursor("from");a.composing&&a.composing.range.clear(),a.composing={start:p,range:o.markText(p,o.getCursor("to"),{className:"CodeMirror-composing"})}}),M(l,"compositionend",function(){a.composing&&(a.poll(),a.composing.range.clear(),a.composing=null)})},Cn.prototype.createField=function(t){this.wrapper=Ag(),this.textarea=this.wrapper.firstChild},Cn.prototype.screenReaderLabelChanged=function(t){t?this.textarea.setAttribute("aria-label",t):this.textarea.removeAttribute("aria-label")},Cn.prototype.prepareSelection=function(){var t=this.cm,r=t.display,a=t.doc,o=Sv(t);if(t.options.moveInputWithCursor){var l=Jr(t,a.sel.primary().head,"div"),f=r.wrapper.getBoundingClientRect(),p=r.lineDiv.getBoundingClientRect();o.teTop=Math.max(0,Math.min(r.wrapper.clientHeight-10,l.top+p.top-f.top)),o.teLeft=Math.max(0,Math.min(r.wrapper.clientWidth-10,l.left+p.left-f.left))}return o},Cn.prototype.showSelection=function(t){var r=this.cm,a=r.display;b(a.cursorDiv,t.cursors),b(a.selectionDiv,t.selection),t.teTop!=null&&(this.wrapper.style.top=t.teTop+"px",this.wrapper.style.left=t.teLeft+"px")},Cn.prototype.reset=function(t){if(!(this.contextMenuPending||this.composing)){var r=this.cm;if(r.somethingSelected()){this.prevInput="";var a=r.getSelection();this.textarea.value=a,r.state.focused&&re(this.textarea),d&&v>=9&&(this.hasSelection=a)}else t||(this.prevInput=this.textarea.value="",d&&v>=9&&(this.hasSelection=null))}},Cn.prototype.getField=function(){return this.textarea},Cn.prototype.supportsTouch=function(){return!1},Cn.prototype.focus=function(){if(this.cm.options.readOnly!="nocursor"&&(!I||oe()!=this.textarea))try{this.textarea.focus()}catch{}},Cn.prototype.blur=function(){this.textarea.blur()},Cn.prototype.resetPosition=function(){this.wrapper.style.top=this.wrapper.style.left=0},Cn.prototype.receivedFocus=function(){this.slowPoll()},Cn.prototype.slowPoll=function(){var t=this;this.pollingFast||this.polling.set(this.cm.options.pollInterval,function(){t.poll(),t.cm.state.focused&&t.slowPoll()})},Cn.prototype.fastPoll=function(){var t=!1,r=this;r.pollingFast=!0;function a(){var o=r.poll();!o&&!t?(t=!0,r.polling.set(60,a)):(r.pollingFast=!1,r.slowPoll())}r.polling.set(20,a)},Cn.prototype.poll=function(){var t=this,r=this.cm,a=this.textarea,o=this.prevInput;if(this.contextMenuPending||!r.state.focused||V(a)&&!o&&!this.composing||r.isReadOnly()||r.options.disableInput||r.state.keySeq)return!1;var l=a.value;if(l==o&&!r.somethingSelected())return!1;if(d&&v>=9&&this.hasSelection===l||Y&&/[\uf700-\uf7ff]/.test(l))return r.display.input.reset(),!1;if(r.doc.sel==r.display.selForContextMenu){var f=l.charCodeAt(0);if(f==8203&&!o&&(o="\u200B"),f==8666)return this.reset(),this.cm.execCommand("undo")}for(var p=0,m=Math.min(o.length,l.length);p1e3||l.indexOf(` -`)>-1?a.value=t.prevInput="":t.prevInput=l,t.composing&&(t.composing.range.clear(),t.composing.range=r.markText(t.composing.start,r.getCursor("to"),{className:"CodeMirror-composing"}))}),!0},Cn.prototype.ensurePolled=function(){this.pollingFast&&this.poll()&&(this.pollingFast=!1)},Cn.prototype.onKeyPress=function(){d&&v>=9&&(this.hasSelection=null),this.fastPoll()},Cn.prototype.onContextMenu=function(t){var r=this,a=r.cm,o=a.display,l=r.textarea;r.contextMenuPending&&r.contextMenuPending();var f=bo(a,t),p=o.scroller.scrollTop;if(!f||O)return;var m=a.options.resetSelectionOnContextMenu;m&&a.doc.sel.contains(f)==-1&&Wn(a,Jn)(a.doc,ji(f),Je);var T=l.style.cssText,C=r.wrapper.style.cssText,X=r.wrapper.offsetParent.getBoundingClientRect();r.wrapper.style.cssText="position: static",l.style.cssText=`position: absolute; width: 30px; height: 30px; - top: `+(t.clientY-X.top-5)+"px; left: "+(t.clientX-X.left-5)+`px; +`,r);l==-1&&(l=t.length);var f=t.slice(r,t.charAt(l-1)=="\r"?l-1:l),p=f.indexOf("\r");p!=-1?(a.push(f.slice(0,p)),r+=p+1):(a.push(f),r=l+1)}return a}:function(t){return t.split(/\r\n?|\n/)},Fe=window.getSelection?function(t){try{return t.selectionStart!=t.selectionEnd}catch{return!1}}:function(t){var r;try{r=t.ownerDocument.selection.createRange()}catch{}return!r||r.parentElement()!=t?!1:r.compareEndPoints("StartToEnd",r)!=0},ze=function(){var t=m("div");return"oncopy"in t?!0:(t.setAttribute("oncopy","return;"),typeof t.oncopy=="function")}(),Ge=null;function $e(t){if(Ge!=null)return Ge;var r=X(t,m("span","x")),a=r.getBoundingClientRect(),o=W(r,0,1).getBoundingClientRect();return Ge=Math.abs(a.left-o.left)>1}var et={},dt={};function It(t,r){arguments.length>2&&(r.dependencies=Array.prototype.slice.call(arguments,2)),et[t]=r}function Pt(t,r){dt[t]=r}function St(t){if(typeof t=="string"&&dt.hasOwnProperty(t))t=dt[t];else if(t&&typeof t.name=="string"&&dt.hasOwnProperty(t.name)){var r=dt[t.name];typeof r=="string"&&(r={name:r}),t=Nt(r,t),t.name=r.name}else{if(typeof t=="string"&&/^[\w\-]+\/[\w\-]+\+xml$/.test(t))return St("application/xml");if(typeof t=="string"&&/^[\w\-]+\/[\w\-]+\+json$/.test(t))return St("application/json")}return typeof t=="string"?{name:t}:t||{name:"null"}}function sn(t,r){r=St(r);var a=et[r.name];if(!a)return sn(t,"text/plain");var o=a(t,r);if(Tn.hasOwnProperty(r.name)){var l=Tn[r.name];for(var f in l)!l.hasOwnProperty(f)||(o.hasOwnProperty(f)&&(o["_"+f]=o[f]),o[f]=l[f])}if(o.name=r.name,r.helperType&&(o.helperType=r.helperType),r.modeProps)for(var p in r.modeProps)o[p]=r.modeProps[p];return o}var Tn={};function Pn(t,r){var a=Tn.hasOwnProperty(t)?Tn[t]:Tn[t]={};_e(r,a)}function gn(t,r){if(r===!0)return r;if(t.copyState)return t.copyState(r);var a={};for(var o in r){var l=r[o];l instanceof Array&&(l=l.concat([])),a[o]=l}return a}function hn(t,r){for(var a;t.innerMode&&(a=t.innerMode(r),!(!a||a.mode==t));)r=a.state,t=a.mode;return a||{mode:t,state:r}}function Mt(t,r,a){return t.startState?t.startState(r,a):!0}var Lt=function(t,r,a){this.pos=this.start=0,this.string=t,this.tabSize=r||8,this.lastColumnPos=this.lastColumnValue=0,this.lineStart=0,this.lineOracle=a};Lt.prototype.eol=function(){return this.pos>=this.string.length},Lt.prototype.sol=function(){return this.pos==this.lineStart},Lt.prototype.peek=function(){return this.string.charAt(this.pos)||void 0},Lt.prototype.next=function(){if(this.posr},Lt.prototype.eatSpace=function(){for(var t=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>t},Lt.prototype.skipToEnd=function(){this.pos=this.string.length},Lt.prototype.skipTo=function(t){var r=this.string.indexOf(t,this.pos);if(r>-1)return this.pos=r,!0},Lt.prototype.backUp=function(t){this.pos-=t},Lt.prototype.column=function(){return this.lastColumnPos0?null:(f&&r!==!1&&(this.pos+=f[0].length),f)}},Lt.prototype.current=function(){return this.string.slice(this.start,this.pos)},Lt.prototype.hideFirstChars=function(t,r){this.lineStart+=t;try{return r()}finally{this.lineStart-=t}},Lt.prototype.lookAhead=function(t){var r=this.lineOracle;return r&&r.lookAhead(t)},Lt.prototype.baseToken=function(){var t=this.lineOracle;return t&&t.baseToken(this.pos)};function ft(t,r){if(r-=t.first,r<0||r>=t.size)throw new Error("There is no line "+(r+t.first)+" in the document.");for(var a=t;!a.lines;)for(var o=0;;++o){var l=a.children[o],f=l.chunkSize();if(r=t.first&&ra?K(a,ft(t,a).text.length):Xr(r,ft(t,r.line).text.length)}function Xr(t,r){var a=t.ch;return a==null||a>r?K(t.line,r):a<0?K(t.line,0):t}function ki(t,r){for(var a=[],o=0;othis.maxLookAhead&&(this.maxLookAhead=t),r},tr.prototype.baseToken=function(t){if(!this.baseTokens)return null;for(;this.baseTokens[this.baseTokenPos]<=t;)this.baseTokenPos+=2;var r=this.baseTokens[this.baseTokenPos+1];return{type:r&&r.replace(/( |^)overlay .*/,""),size:this.baseTokens[this.baseTokenPos]-t}},tr.prototype.nextLine=function(){this.line++,this.maxLookAhead>0&&this.maxLookAhead--},tr.fromSaved=function(t,r,a){return r instanceof Kr?new tr(t,gn(t.mode,r.state),a,r.lookAhead):new tr(t,gn(t.mode,r),a)},tr.prototype.save=function(t){var r=t!==!1?gn(this.doc.mode,this.state):this.state;return this.maxLookAhead>0?new Kr(r,this.maxLookAhead):r};function w(t,r,a,o){var l=[t.state.modeGen],f={};ot(t,r.text,t.doc.mode,a,function(C,$){return l.push(C,$)},f,o);for(var p=a.state,y=function(C){a.baseTokens=l;var $=t.state.overlays[C],J=1,Se=0;a.state=!0,ot(t,r.text,$.mode,a,function(we,je){for(var Ve=J;Sewe&&l.splice(J,1,we,l[J+1],tt),J+=2,Se=Math.min(we,tt)}if(!!je)if($.opaque)l.splice(Ve,J-Ve,we,"overlay "+je),J=Ve+2;else for(;Vet.options.maxHighlightLength&&gn(t.doc.mode,o.state),f=w(t,r,o);l&&(o.state=l),r.stateAfter=o.save(!l),r.styles=f.styles,f.classes?r.styleClasses=f.classes:r.styleClasses&&(r.styleClasses=null),a===t.doc.highlightFrontier&&(t.doc.modeFrontier=Math.max(t.doc.modeFrontier,++t.doc.highlightFrontier))}return r.styles}function U(t,r,a){var o=t.doc,l=t.display;if(!o.mode.startState)return new tr(o,!0,r);var f=ut(t,r,a),p=f>o.first&&ft(o,f-1).stateAfter,y=p?tr.fromSaved(o,p,f):new tr(o,Mt(o.mode),f);return o.iter(f,r,function(_){ae(t,_.text,y);var C=y.line;_.stateAfter=C==r-1||C%5==0||C>=l.viewFrom&&Cr.start)return f}throw new Error("Mode "+t.name+" failed to advance stream.")}var Ye=function(t,r,a){this.start=t.start,this.end=t.pos,this.string=t.current(),this.type=r||null,this.state=a};function ye(t,r,a,o){var l=t.doc,f=l.mode,p;r=gt(l,r);var y=ft(l,r.line),_=U(t,r.line,a),C=new Lt(y.text,t.options.tabSize,_),$;for(o&&($=[]);(o||C.post.options.maxHighlightLength?(y=!1,p&&ae(t,r,o,$.pos),$.pos=r.length,J=null):J=qe(ue(a,$,o.state,Se),f),Se){var we=Se[0].name;we&&(J="m-"+(J?we+" "+J:we))}if(!y||C!=J){for(;_<$.start;)_=Math.min($.start,_+5e3),l(_,C);C=J}$.start=$.pos}for(;_<$.pos;){var je=Math.min($.pos,_+5e3);l(je,C),_=je}}function ut(t,r,a){for(var o,l,f=t.doc,p=a?-1:r-(t.doc.mode.innerMode?1e3:100),y=r;y>p;--y){if(y<=f.first)return f.first;var _=ft(f,y-1),C=_.stateAfter;if(C&&(!a||y+(C instanceof Kr?C.lookAhead:0)<=f.modeFrontier))return y;var $=Re(_.text,null,t.options.tabSize);(l==null||o>$)&&(l=y-1,o=$)}return l}function wt(t,r){if(t.modeFrontier=Math.min(t.modeFrontier,r),!(t.highlightFrontiera;o--){var l=ft(t,o).stateAfter;if(l&&(!(l instanceof Kr)||o+l.lookAhead=r:f.to>r);(o||(o=[])).push(new Vt(p,f.from,_?null:f.to))}}return o}function Sr(t,r,a){var o;if(t)for(var l=0;l=r:f.to>r);if(y||f.from==r&&p.type=="bookmark"&&(!a||f.marker.insertLeft)){var _=f.from==null||(p.inclusiveLeft?f.from<=r:f.from0&&y)for(var mt=0;mt0)){var $=[_,1],J=pe(C.from,y.from),Se=pe(C.to,y.to);(J<0||!p.inclusiveLeft&&!J)&&$.push({from:C.from,to:y.from}),(Se>0||!p.inclusiveRight&&!Se)&&$.push({from:y.to,to:C.to}),l.splice.apply(l,$),_+=$.length-3}}return l}function hr(t){var r=t.markedSpans;if(!!r){for(var a=0;ar)&&(!o||Zt(o,f.marker)<0)&&(o=f.marker)}return o}function xo(t,r,a,o,l){var f=ft(t,r),p=Wt&&f.markedSpans;if(p)for(var y=0;y=0&&J<=0||$<=0&&J>=0)&&($<=0&&(_.marker.inclusiveRight&&l.inclusiveLeft?pe(C.to,a)>=0:pe(C.to,a)>0)||$>=0&&(_.marker.inclusiveRight&&l.inclusiveLeft?pe(C.from,o)<=0:pe(C.from,o)<0)))return!0}}}function rr(t){for(var r;r=fi(t);)t=r.find(-1,!0).line;return t}function ta(t){for(var r;r=Zr(t);)t=r.find(1,!0).line;return t}function na(t){for(var r,a;r=Zr(t);)t=r.find(1,!0).line,(a||(a=[])).push(t);return a}function _o(t,r){var a=ft(t,r),o=rr(a);return a==o?r:He(o)}function ra(t,r){if(r>t.lastLine())return r;var a=ft(t,r),o;if(!Gn(t,a))return r;for(;o=Zr(a);)a=o.find(1,!0).line;return He(a)+1}function Gn(t,r){var a=Wt&&r.markedSpans;if(a){for(var o=void 0,l=0;lr.maxLineLength&&(r.maxLineLength=l,r.maxLine=o)})}var Ti=function(t,r,a){this.text=t,br(this,r),this.height=a?a(this):1};Ti.prototype.lineNo=function(){return He(this)},zt(Ti);function kl(t,r,a,o){t.text=r,t.stateAfter&&(t.stateAfter=null),t.styles&&(t.styles=null),t.order!=null&&(t.order=null),hr(t),br(t,a);var l=o?o(t):1;l!=t.height&&le(t,l)}function a_(t){t.parent=null,hr(t)}var u_={},l_={};function Jp(t,r){if(!t||/^\s*$/.test(t))return null;var a=r.addModeClass?l_:u_;return a[t]||(a[t]=t.replace(/\S+/g,"cm-$&"))}function ev(t,r){var a=A("span",null,null,x?"padding-right: .1px":null),o={pre:A("pre",[a],"CodeMirror-line"),content:a,col:0,pos:0,cm:t,trailingSpace:!1,splitSpaces:t.getOption("lineWrapping")};r.measure={};for(var l=0;l<=(r.rest?r.rest.length:0);l++){var f=l?r.rest[l-1]:r.line,p=void 0;o.pos=0,o.addToken=f_,ce(t.display.measure)&&(p=Z(f,t.doc.direction))&&(o.addToken=h_(o.addToken,p)),o.map=[];var y=r!=t.display.externalMeasured&&He(f);d_(f,o,z(t,f,y)),f.styleClasses&&(f.styleClasses.bgClass&&(o.bgClass=ne(f.styleClasses.bgClass,o.bgClass||"")),f.styleClasses.textClass&&(o.textClass=ne(f.styleClasses.textClass,o.textClass||""))),o.map.length==0&&o.map.push(0,0,o.content.appendChild(L(t.display.measure))),l==0?(r.measure.map=o.map,r.measure.cache={}):((r.measure.maps||(r.measure.maps=[])).push(o.map),(r.measure.caches||(r.measure.caches=[])).push({}))}if(x){var _=o.content.lastChild;(/\bcm-tab\b/.test(_.className)||_.querySelector&&_.querySelector(".cm-tab"))&&(o.content.className="cm-tab-wrap-hack")}return at(t,"renderLine",t,r.line,o.pre),o.pre.className&&(o.textClass=ne(o.pre.className,o.textClass||"")),o}function s_(t){var r=m("span","\u2022","cm-invalidchar");return r.title="\\u"+t.charCodeAt(0).toString(16),r.setAttribute("aria-label",r.title),r}function f_(t,r,a,o,l,f,p){if(!!r){var y=t.splitSpaces?c_(r,t.trailingSpace):r,_=t.cm.state.specialChars,C=!1,$;if(!_.test(r))t.col+=r.length,$=document.createTextNode(y),t.map.push(t.pos,t.pos+r.length,$),d&&v<9&&(C=!0),t.pos+=r.length;else{$=document.createDocumentFragment();for(var J=0;;){_.lastIndex=J;var Se=_.exec(r),we=Se?Se.index-J:r.length-J;if(we){var je=document.createTextNode(y.slice(J,J+we));d&&v<9?$.appendChild(m("span",[je])):$.appendChild(je),t.map.push(t.pos,t.pos+we,je),t.col+=we,t.pos+=we}if(!Se)break;J+=we+1;var Ve=void 0;if(Se[0]==" "){var tt=t.cm.options.tabSize,lt=tt-t.col%tt;Ve=$.appendChild(m("span",it(lt),"cm-tab")),Ve.setAttribute("role","presentation"),Ve.setAttribute("cm-text"," "),t.col+=lt}else Se[0]=="\r"||Se[0]==` +`?(Ve=$.appendChild(m("span",Se[0]=="\r"?"\u240D":"\u2424","cm-invalidchar")),Ve.setAttribute("cm-text",Se[0]),t.col+=1):(Ve=t.cm.options.specialCharPlaceholder(Se[0]),Ve.setAttribute("cm-text",Se[0]),d&&v<9?$.appendChild(m("span",[Ve])):$.appendChild(Ve),t.col+=1);t.map.push(t.pos,t.pos+1,Ve),t.pos++}}if(t.trailingSpace=y.charCodeAt(r.length-1)==32,a||o||l||C||f||p){var pt=a||"";o&&(pt+=o),l&&(pt+=l);var st=m("span",[$],pt,f);if(p)for(var mt in p)p.hasOwnProperty(mt)&&mt!="style"&&mt!="class"&&st.setAttribute(mt,p[mt]);return t.content.appendChild(st)}t.content.appendChild($)}}function c_(t,r){if(t.length>1&&!/ /.test(t))return t;for(var a=r,o="",l=0;lC&&J.from<=C));Se++);if(J.to>=$)return t(a,o,l,f,p,y,_);t(a,o.slice(0,J.to-C),l,f,null,y,_),f=null,o=o.slice(J.to-C),C=J.to}}}function tv(t,r,a,o){var l=!o&&a.widgetNode;l&&t.map.push(t.pos,t.pos+r,l),!o&&t.cm.display.input.needsContentAttribute&&(l||(l=t.content.appendChild(document.createElement("span"))),l.setAttribute("cm-marker",a.id)),l&&(t.cm.display.input.setUneditable(l),t.content.appendChild(l)),t.pos+=r,t.trailingSpace=!1}function d_(t,r,a){var o=t.markedSpans,l=t.text,f=0;if(!o){for(var p=1;p_||Ht.collapsed&&_t.to==_&&_t.from==_)){if(_t.to!=null&&_t.to!=_&&we>_t.to&&(we=_t.to,Ve=""),Ht.className&&(je+=" "+Ht.className),Ht.css&&(Se=(Se?Se+";":"")+Ht.css),Ht.startStyle&&_t.from==_&&(tt+=" "+Ht.startStyle),Ht.endStyle&&_t.to==we&&(mt||(mt=[])).push(Ht.endStyle,_t.to),Ht.title&&((pt||(pt={})).title=Ht.title),Ht.attributes)for(var fn in Ht.attributes)(pt||(pt={}))[fn]=Ht.attributes[fn];Ht.collapsed&&(!lt||Zt(lt.marker,Ht)<0)&&(lt=_t)}else _t.from>_&&we>_t.from&&(we=_t.from)}if(mt)for(var Un=0;Un=y)break;for(var Mr=Math.min(y,we);;){if($){var vr=_+$.length;if(!lt){var On=vr>Mr?$.slice(0,Mr-_):$;r.addToken(r,On,J?J+je:je,tt,_+On.length==we?Ve:"",Se,pt)}if(vr>=Mr){$=$.slice(Mr-_),_=Mr;break}_=vr,tt=""}$=l.slice(f,f=a[C++]),J=Jp(a[C++],r.cm.options)}}}function nv(t,r,a){this.line=r,this.rest=na(r),this.size=this.rest?He(Je(this.rest))-a+1:1,this.node=this.text=null,this.hidden=Gn(t,r)}function Tl(t,r,a){for(var o=[],l,f=r;f2&&f.push((_.bottom+C.top)/2-a.top)}}f.push(a.bottom-a.top)}}function sv(t,r,a){if(t.line==r)return{map:t.measure.map,cache:t.measure.cache};if(t.rest){for(var o=0;oa)return{map:t.measure.maps[l],cache:t.measure.caches[l],before:!0}}}function S_(t,r){r=rr(r);var a=He(r),o=t.display.externalMeasured=new nv(t.doc,r,a);o.lineN=a;var l=o.built=ev(t,o);return o.text=l.pre,X(t.display.lineMeasure,l.pre),o}function fv(t,r,a,o){return hi(t,oa(t,r),a,o)}function oc(t,r){if(r>=t.display.viewFrom&&r=a.lineN&&rr)&&(f=_-y,l=f-1,r>=_&&(p="right")),l!=null){if(o=t[C+2],y==_&&a==(o.insertLeft?"left":"right")&&(p=a),a=="left"&&l==0)for(;C&&t[C-2]==t[C-3]&&t[C-1].insertLeft;)o=t[(C-=3)+2],p="left";if(a=="right"&&l==_-y)for(;C=0&&(a=t[l]).left==a.right;l--);return a}function C_(t,r,a,o){var l=hv(r.map,a,o),f=l.node,p=l.start,y=l.end,_=l.collapse,C;if(f.nodeType==3){for(var $=0;$<4;$++){for(;p&&pn(r.line.text.charAt(l.coverStart+p));)--p;for(;l.coverStart+y0&&(_=o="right");var J;t.options.lineWrapping&&(J=f.getClientRects()).length>1?C=J[o=="right"?J.length-1:0]:C=f.getBoundingClientRect()}if(d&&v<9&&!p&&(!C||!C.left&&!C.right)){var Se=f.parentNode.getClientRects()[0];Se?C={left:Se.left,right:Se.left+ua(t.display),top:Se.top,bottom:Se.bottom}:C=cv}for(var we=C.top-r.rect.top,je=C.bottom-r.rect.top,Ve=(we+je)/2,tt=r.view.measure.heights,lt=0;lt=o.text.length?(_=o.text.length,C="before"):_<=0&&(_=0,C="after"),!y)return p(C=="before"?_-1:_,C=="before");function $(je,Ve,tt){var lt=y[Ve],pt=lt.level==1;return p(tt?je-1:je,pt!=tt)}var J=Be(y,_,C),Se=Ke,we=$(_,J,C=="before");return Se!=null&&(we.other=$(_,Se,C!="before")),we}function yv(t,r){var a=0;r=gt(t.doc,r),t.options.lineWrapping||(a=ua(t.display)*r.ch);var o=ft(t.doc,r.line),l=Dr(o)+Sl(t.display);return{left:a,right:a,top:l,bottom:l+o.height}}function uc(t,r,a,o,l){var f=K(t,r,a);return f.xRel=l,o&&(f.outside=o),f}function lc(t,r,a){var o=t.doc;if(a+=t.display.viewOffset,a<0)return uc(o.first,0,null,-1,-1);var l=Qe(o,a),f=o.first+o.size-1;if(l>f)return uc(o.first+o.size-1,ft(o,f).text.length,null,1,1);r<0&&(r=0);for(var p=ft(o,l);;){var y=E_(t,p,l,r,a),_=Hi(p,y.ch+(y.xRel>0||y.outside>0?1:0));if(!_)return y;var C=_.find(1);if(C.line==l)return C;p=ft(o,l=C.line)}}function wv(t,r,a,o){o-=ac(r);var l=r.text.length,f=B(function(p){return hi(t,a,p-1).bottom<=o},l,0);return l=B(function(p){return hi(t,a,p).top>o},f,l),{begin:f,end:l}}function xv(t,r,a,o){a||(a=oa(t,r));var l=bl(t,r,hi(t,a,o),"line").top;return wv(t,r,a,l)}function sc(t,r,a,o){return t.bottom<=a?!1:t.top>a?!0:(o?t.left:t.right)>r}function E_(t,r,a,o,l){l-=Dr(r);var f=oa(t,r),p=ac(r),y=0,_=r.text.length,C=!0,$=Z(r,t.doc.direction);if($){var J=(t.options.lineWrapping?P_:N_)(t,r,a,f,$,o,l);C=J.level!=1,y=C?J.from:J.to-1,_=C?J.to:J.from-1}var Se=null,we=null,je=B(function(Tt){var _t=hi(t,f,Tt);return _t.top+=p,_t.bottom+=p,sc(_t,o,l,!1)?(_t.top<=l&&_t.left<=o&&(Se=Tt,we=_t),!0):!1},y,_),Ve,tt,lt=!1;if(we){var pt=o-we.left=mt.bottom?1:0}return je=R(r.text,je,1),uc(a,je,tt,lt,o-Ve)}function N_(t,r,a,o,l,f,p){var y=B(function(J){var Se=l[J],we=Se.level!=1;return sc(Jr(t,K(a,we?Se.to:Se.from,we?"before":"after"),"line",r,o),f,p,!0)},0,l.length-1),_=l[y];if(y>0){var C=_.level!=1,$=Jr(t,K(a,C?_.from:_.to,C?"after":"before"),"line",r,o);sc($,f,p,!0)&&$.top>p&&(_=l[y-1])}return _}function P_(t,r,a,o,l,f,p){var y=wv(t,r,o,p),_=y.begin,C=y.end;/\s/.test(r.text.charAt(C-1))&&C--;for(var $=null,J=null,Se=0;Se=C||we.to<=_)){var je=we.level!=1,Ve=hi(t,o,je?Math.min(C,we.to)-1:Math.max(_,we.from)).right,tt=Vett)&&($=we,J=tt)}}return $||($=l[l.length-1]),$.from<_&&($={from:_,to:$.to,level:$.level}),$.to>C&&($={from:$.from,to:C,level:$.level}),$}var bo;function aa(t){if(t.cachedTextHeight!=null)return t.cachedTextHeight;if(bo==null){bo=m("pre",null,"CodeMirror-line-like");for(var r=0;r<49;++r)bo.appendChild(document.createTextNode("x")),bo.appendChild(m("br"));bo.appendChild(document.createTextNode("x"))}X(t.measure,bo);var a=bo.offsetHeight/50;return a>3&&(t.cachedTextHeight=a),S(t.measure),a||1}function ua(t){if(t.cachedCharWidth!=null)return t.cachedCharWidth;var r=m("span","xxxxxxxxxx"),a=m("pre",[r],"CodeMirror-line-like");X(t.measure,a);var o=r.getBoundingClientRect(),l=(o.right-o.left)/10;return l>2&&(t.cachedCharWidth=l),l||10}function fc(t){for(var r=t.display,a={},o={},l=r.gutters.clientLeft,f=r.gutters.firstChild,p=0;f;f=f.nextSibling,++p){var y=t.display.gutterSpecs[p].className;a[y]=f.offsetLeft+f.clientLeft+l,o[y]=f.clientWidth}return{fixedPos:cc(r),gutterTotalWidth:r.gutters.offsetWidth,gutterLeft:a,gutterWidth:o,wrapperWidth:r.wrapper.clientWidth}}function cc(t){return t.scroller.getBoundingClientRect().left-t.sizer.getBoundingClientRect().left}function _v(t){var r=aa(t.display),a=t.options.lineWrapping,o=a&&Math.max(5,t.display.scroller.clientWidth/ua(t.display)-3);return function(l){if(Gn(t.doc,l))return 0;var f=0;if(l.widgets)for(var p=0;p0&&(C=ft(t.doc,_.line).text).length==_.ch){var $=Re(C,C.length,t.options.tabSize)-C.length;_=K(_.line,Math.max(0,Math.round((f-lv(t.display).left)/ua(t.display))-$))}return _}function Mo(t,r){if(r>=t.display.viewTo||(r-=t.display.viewFrom,r<0))return null;for(var a=t.display.view,o=0;or)&&(l.updateLineNumbers=r),t.curOp.viewChanged=!0,r>=l.viewTo)Wt&&_o(t.doc,r)l.viewFrom?Bi(t):(l.viewFrom+=o,l.viewTo+=o);else if(r<=l.viewFrom&&a>=l.viewTo)Bi(t);else if(r<=l.viewFrom){var f=Ml(t,a,a+o,1);f?(l.view=l.view.slice(f.index),l.viewFrom=f.lineN,l.viewTo+=o):Bi(t)}else if(a>=l.viewTo){var p=Ml(t,r,r,-1);p?(l.view=l.view.slice(0,p.index),l.viewTo=p.lineN):Bi(t)}else{var y=Ml(t,r,r,-1),_=Ml(t,a,a+o,1);y&&_?(l.view=l.view.slice(0,y.index).concat(Tl(t,y.lineN,_.lineN)).concat(l.view.slice(_.index)),l.viewTo+=o):Bi(t)}var C=l.externalMeasured;C&&(a=l.lineN&&r=o.viewTo)){var f=o.view[Mo(t,r)];if(f.node!=null){var p=f.changes||(f.changes=[]);Xe(p,a)==-1&&p.push(a)}}}function Bi(t){t.display.viewFrom=t.display.viewTo=t.doc.first,t.display.view=[],t.display.viewOffset=0}function Ml(t,r,a,o){var l=Mo(t,r),f,p=t.display.view;if(!Wt||a==t.doc.first+t.doc.size)return{index:l,lineN:a};for(var y=t.display.viewFrom,_=0;_0){if(l==p.length-1)return null;f=y+p[l].size-r,l++}else f=y-r;r+=f,a+=f}for(;_o(t.doc,a)!=a;){if(l==(o<0?0:p.length-1))return null;a+=o*p[l-(o<0?1:0)].size,l+=o}return{index:l,lineN:a}}function L_(t,r,a){var o=t.display,l=o.view;l.length==0||r>=o.viewTo||a<=o.viewFrom?(o.view=Tl(t,r,a),o.viewFrom=r):(o.viewFrom>r?o.view=Tl(t,r,o.viewFrom).concat(o.view):o.viewFroma&&(o.view=o.view.slice(0,Mo(t,a)))),o.viewTo=a}function kv(t){for(var r=t.display.view,a=0,o=0;o=t.display.viewTo||_.to().line0?p:t.defaultCharWidth())+"px"}if(o.other){var y=a.appendChild(m("div","\xA0","CodeMirror-cursor CodeMirror-secondarycursor"));y.style.display="",y.style.left=o.other.left+"px",y.style.top=o.other.top+"px",y.style.height=(o.other.bottom-o.other.top)*.85+"px"}}function El(t,r){return t.top-r.top||t.left-r.left}function O_(t,r,a){var o=t.display,l=t.doc,f=document.createDocumentFragment(),p=lv(t.display),y=p.left,_=Math.max(o.sizerWidth,So(t)-o.sizer.offsetLeft)-p.right,C=l.direction=="ltr";function $(st,mt,Tt,_t){mt<0&&(mt=0),mt=Math.round(mt),_t=Math.round(_t),f.appendChild(m("div",null,"CodeMirror-selected","position: absolute; left: "+st+`px; + top: `+mt+"px; width: "+(Tt??_-st)+`px; + height: `+(_t-mt)+"px"))}function J(st,mt,Tt){var _t=ft(l,st),Ht=_t.text.length,fn,Un;function xn(On,gr){return Cl(t,K(st,On),"div",_t,gr)}function Mr(On,gr,Vn){var Rn=xv(t,_t,null,On),Dn=gr=="ltr"==(Vn=="after")?"left":"right",Sn=Vn=="after"?Rn.begin:Rn.end-(/\s/.test(_t.text.charAt(Rn.end-1))?2:1);return xn(Sn,Dn)[Dn]}var vr=Z(_t,l.direction);return Ie(vr,mt||0,Tt??Ht,function(On,gr,Vn,Rn){var Dn=Vn=="ltr",Sn=xn(On,Dn?"left":"right"),mr=xn(gr-1,Dn?"right":"left"),xa=mt==null&&On==0,$i=Tt==null&&gr==Ht,Zn=Rn==0,di=!vr||Rn==vr.length-1;if(mr.top-Sn.top<=3){var Bn=(C?xa:$i)&&Zn,Hc=(C?$i:xa)&&di,Mi=Bn?y:(Dn?Sn:mr).left,Oo=Hc?_:(Dn?mr:Sn).right;$(Mi,Sn.top,Oo-Mi,Sn.bottom)}else{var Do,or,_a,Wc;Dn?(Do=C&&xa&&Zn?y:Sn.left,or=C?_:Mr(On,Vn,"before"),_a=C?y:Mr(gr,Vn,"after"),Wc=C&&$i&&di?_:mr.right):(Do=C?Mr(On,Vn,"before"):y,or=!C&&xa&&Zn?_:Sn.right,_a=!C&&$i&&di?y:mr.left,Wc=C?Mr(gr,Vn,"after"):_),$(Do,Sn.top,or-Do,Sn.bottom),Sn.bottom0?r.blinker=setInterval(function(){t.hasFocus()||la(t),r.cursorDiv.style.visibility=(a=!a)?"":"hidden"},t.options.cursorBlinkRate):t.options.cursorBlinkRate<0&&(r.cursorDiv.style.visibility="hidden")}}function Sv(t){t.hasFocus()||(t.display.input.focus(),t.state.focused||gc(t))}function vc(t){t.state.delayingBlurEvent=!0,setTimeout(function(){t.state.delayingBlurEvent&&(t.state.delayingBlurEvent=!1,t.state.focused&&la(t))},100)}function gc(t,r){t.state.delayingBlurEvent&&!t.state.draggingText&&(t.state.delayingBlurEvent=!1),t.options.readOnly!="nocursor"&&(t.state.focused||(at(t,"focus",t,r),t.state.focused=!0,fe(t.display.wrapper,"CodeMirror-focused"),!t.curOp&&t.display.selForContextMenu!=t.doc.sel&&(t.display.input.reset(),x&&setTimeout(function(){return t.display.input.reset(!0)},20)),t.display.input.receivedFocus()),pc(t))}function la(t,r){t.state.delayingBlurEvent||(t.state.focused&&(at(t,"blur",t,r),t.state.focused=!1,E(t.display.wrapper,"CodeMirror-focused")),clearInterval(t.display.blinker),setTimeout(function(){t.state.focused||(t.display.shift=!1)},150))}function Nl(t){for(var r=t.display,a=r.lineDiv.offsetTop,o=Math.max(0,r.scroller.getBoundingClientRect().top),l=r.lineDiv.getBoundingClientRect().top,f=0,p=0;p.005||we<-.005)&&(lt.display.sizerWidth){var Ve=Math.ceil($/ua(t.display));Ve>t.display.maxLineLength&&(t.display.maxLineLength=Ve,t.display.maxLine=y.line,t.display.maxLineChanged=!0)}}}Math.abs(f)>2&&(r.scroller.scrollTop+=f)}function bv(t){if(t.widgets)for(var r=0;r=p&&(f=Qe(r,Dr(ft(r,_))-t.wrapper.clientHeight),p=_)}return{from:f,to:Math.max(p,f+1)}}function D_(t,r){if(!vt(t,"scrollCursorIntoView")){var a=t.display,o=a.sizer.getBoundingClientRect(),l=null,f=a.wrapper.ownerDocument;if(r.top+o.top<0?l=!0:r.bottom+o.top>(f.defaultView.innerHeight||f.documentElement.clientHeight)&&(l=!1),l!=null&&!ie){var p=m("div","\u200B",null,`position: absolute; + top: `+(r.top-a.viewOffset-Sl(t.display))+`px; + height: `+(r.bottom-r.top+ci(t)+a.barHeight)+`px; + left: `+r.left+"px; width: "+Math.max(2,r.right-r.left)+"px;");t.display.lineSpace.appendChild(p),p.scrollIntoView(l),t.display.lineSpace.removeChild(p)}}}function A_(t,r,a,o){o==null&&(o=0);var l;!t.options.lineWrapping&&r==a&&(a=r.sticky=="before"?K(r.line,r.ch+1,"before"):r,r=r.ch?K(r.line,r.sticky=="before"?r.ch-1:r.ch,"after"):r);for(var f=0;f<5;f++){var p=!1,y=Jr(t,r),_=!a||a==r?y:Jr(t,a);l={left:Math.min(y.left,_.left),top:Math.min(y.top,_.top)-o,right:Math.max(y.left,_.left),bottom:Math.max(y.bottom,_.bottom)+o};var C=mc(t,l),$=t.doc.scrollTop,J=t.doc.scrollLeft;if(C.scrollTop!=null&&(uu(t,C.scrollTop),Math.abs(t.doc.scrollTop-$)>1&&(p=!0)),C.scrollLeft!=null&&(Eo(t,C.scrollLeft),Math.abs(t.doc.scrollLeft-J)>1&&(p=!0)),!p)break}return l}function I_(t,r){var a=mc(t,r);a.scrollTop!=null&&uu(t,a.scrollTop),a.scrollLeft!=null&&Eo(t,a.scrollLeft)}function mc(t,r){var a=t.display,o=aa(t.display);r.top<0&&(r.top=0);var l=t.curOp&&t.curOp.scrollTop!=null?t.curOp.scrollTop:a.scroller.scrollTop,f=ic(t),p={};r.bottom-r.top>f&&(r.bottom=r.top+f);var y=t.doc.height+rc(a),_=r.topy-o;if(r.topl+f){var $=Math.min(r.top,(C?y:r.bottom)-f);$!=l&&(p.scrollTop=$)}var J=t.options.fixedGutter?0:a.gutters.offsetWidth,Se=t.curOp&&t.curOp.scrollLeft!=null?t.curOp.scrollLeft:a.scroller.scrollLeft-J,we=So(t)-a.gutters.offsetWidth,je=r.right-r.left>we;return je&&(r.right=r.left+we),r.left<10?p.scrollLeft=0:r.leftwe+Se-3&&(p.scrollLeft=r.right+(je?0:10)-we),p}function yc(t,r){r!=null&&(Ll(t),t.curOp.scrollTop=(t.curOp.scrollTop==null?t.doc.scrollTop:t.curOp.scrollTop)+r)}function sa(t){Ll(t);var r=t.getCursor();t.curOp.scrollToPos={from:r,to:r,margin:t.options.cursorScrollMargin}}function au(t,r,a){(r!=null||a!=null)&&Ll(t),r!=null&&(t.curOp.scrollLeft=r),a!=null&&(t.curOp.scrollTop=a)}function R_(t,r){Ll(t),t.curOp.scrollToPos=r}function Ll(t){var r=t.curOp.scrollToPos;if(r){t.curOp.scrollToPos=null;var a=yv(t,r.from),o=yv(t,r.to);Cv(t,a,o,r.margin)}}function Cv(t,r,a,o){var l=mc(t,{left:Math.min(r.left,a.left),top:Math.min(r.top,a.top)-o,right:Math.max(r.right,a.right),bottom:Math.max(r.bottom,a.bottom)+o});au(t,l.scrollLeft,l.scrollTop)}function uu(t,r){Math.abs(t.doc.scrollTop-r)<2||(i||xc(t,{top:r}),Mv(t,r,!0),i&&xc(t),fu(t,100))}function Mv(t,r,a){r=Math.max(0,Math.min(t.display.scroller.scrollHeight-t.display.scroller.clientHeight,r)),!(t.display.scroller.scrollTop==r&&!a)&&(t.doc.scrollTop=r,t.display.scrollbars.setScrollTop(r),t.display.scroller.scrollTop!=r&&(t.display.scroller.scrollTop=r))}function Eo(t,r,a,o){r=Math.max(0,Math.min(r,t.display.scroller.scrollWidth-t.display.scroller.clientWidth)),!((a?r==t.doc.scrollLeft:Math.abs(t.doc.scrollLeft-r)<2)&&!o)&&(t.doc.scrollLeft=r,Ov(t),t.display.scroller.scrollLeft!=r&&(t.display.scroller.scrollLeft=r),t.display.scrollbars.setScrollLeft(r))}function lu(t){var r=t.display,a=r.gutters.offsetWidth,o=Math.round(t.doc.height+rc(t.display));return{clientHeight:r.scroller.clientHeight,viewHeight:r.wrapper.clientHeight,scrollWidth:r.scroller.scrollWidth,clientWidth:r.scroller.clientWidth,viewWidth:r.wrapper.clientWidth,barLeft:t.options.fixedGutter?a:0,docHeight:o,scrollHeight:o+ci(t)+r.barHeight,nativeBarWidth:r.nativeBarWidth,gutterWidth:a}}var No=function(t,r,a){this.cm=a;var o=this.vert=m("div",[m("div",null,null,"min-width: 1px")],"CodeMirror-vscrollbar"),l=this.horiz=m("div",[m("div",null,null,"height: 100%; min-height: 1px")],"CodeMirror-hscrollbar");o.tabIndex=l.tabIndex=-1,t(o),t(l),Te(o,"scroll",function(){o.clientHeight&&r(o.scrollTop,"vertical")}),Te(l,"scroll",function(){l.clientWidth&&r(l.scrollLeft,"horizontal")}),this.checkedZeroWidth=!1,d&&v<8&&(this.horiz.style.minHeight=this.vert.style.minWidth="18px")};No.prototype.update=function(t){var r=t.scrollWidth>t.clientWidth+1,a=t.scrollHeight>t.clientHeight+1,o=t.nativeBarWidth;if(a){this.vert.style.display="block",this.vert.style.bottom=r?o+"px":"0";var l=t.viewHeight-(r?o:0);this.vert.firstChild.style.height=Math.max(0,t.scrollHeight-t.clientHeight+l)+"px"}else this.vert.scrollTop=0,this.vert.style.display="",this.vert.firstChild.style.height="0";if(r){this.horiz.style.display="block",this.horiz.style.right=a?o+"px":"0",this.horiz.style.left=t.barLeft+"px";var f=t.viewWidth-t.barLeft-(a?o:0);this.horiz.firstChild.style.width=Math.max(0,t.scrollWidth-t.clientWidth+f)+"px"}else this.horiz.style.display="",this.horiz.firstChild.style.width="0";return!this.checkedZeroWidth&&t.clientHeight>0&&(o==0&&this.zeroWidthHack(),this.checkedZeroWidth=!0),{right:a?o:0,bottom:r?o:0}},No.prototype.setScrollLeft=function(t){this.horiz.scrollLeft!=t&&(this.horiz.scrollLeft=t),this.disableHoriz&&this.enableZeroWidthBar(this.horiz,this.disableHoriz,"horiz")},No.prototype.setScrollTop=function(t){this.vert.scrollTop!=t&&(this.vert.scrollTop=t),this.disableVert&&this.enableZeroWidthBar(this.vert,this.disableVert,"vert")},No.prototype.zeroWidthHack=function(){var t=oe&&!Ee?"12px":"18px";this.horiz.style.height=this.vert.style.width=t,this.horiz.style.visibility=this.vert.style.visibility="hidden",this.disableHoriz=new Ae,this.disableVert=new Ae},No.prototype.enableZeroWidthBar=function(t,r,a){t.style.visibility="";function o(){var l=t.getBoundingClientRect(),f=a=="vert"?document.elementFromPoint(l.right-1,(l.top+l.bottom)/2):document.elementFromPoint((l.right+l.left)/2,l.bottom-1);f!=t?t.style.visibility="hidden":r.set(1e3,o)}r.set(1e3,o)},No.prototype.clear=function(){var t=this.horiz.parentNode;t.removeChild(this.horiz),t.removeChild(this.vert)};var su=function(){};su.prototype.update=function(){return{bottom:0,right:0}},su.prototype.setScrollLeft=function(){},su.prototype.setScrollTop=function(){},su.prototype.clear=function(){};function fa(t,r){r||(r=lu(t));var a=t.display.barWidth,o=t.display.barHeight;Ev(t,r);for(var l=0;l<4&&a!=t.display.barWidth||o!=t.display.barHeight;l++)a!=t.display.barWidth&&t.options.lineWrapping&&Nl(t),Ev(t,lu(t)),a=t.display.barWidth,o=t.display.barHeight}function Ev(t,r){var a=t.display,o=a.scrollbars.update(r);a.sizer.style.paddingRight=(a.barWidth=o.right)+"px",a.sizer.style.paddingBottom=(a.barHeight=o.bottom)+"px",a.heightForcer.style.borderBottom=o.bottom+"px solid transparent",o.right&&o.bottom?(a.scrollbarFiller.style.display="block",a.scrollbarFiller.style.height=o.bottom+"px",a.scrollbarFiller.style.width=o.right+"px"):a.scrollbarFiller.style.display="",o.bottom&&t.options.coverGutterNextToScrollbar&&t.options.fixedGutter?(a.gutterFiller.style.display="block",a.gutterFiller.style.height=o.bottom+"px",a.gutterFiller.style.width=r.gutterWidth+"px"):a.gutterFiller.style.display=""}var Nv={native:No,null:su};function Pv(t){t.display.scrollbars&&(t.display.scrollbars.clear(),t.display.scrollbars.addClass&&E(t.display.wrapper,t.display.scrollbars.addClass)),t.display.scrollbars=new Nv[t.options.scrollbarStyle](function(r){t.display.wrapper.insertBefore(r,t.display.scrollbarFiller),Te(r,"mousedown",function(){t.state.focused&&setTimeout(function(){return t.display.input.focus()},0)}),r.setAttribute("cm-not-content","true")},function(r,a){a=="horizontal"?Eo(t,r):uu(t,r)},t),t.display.scrollbars.addClass&&fe(t.display.wrapper,t.display.scrollbars.addClass)}var F_=0;function Po(t){t.curOp={cm:t,viewChanged:!1,startHeight:t.doc.height,forceUpdate:!1,updateInput:0,typing:!1,changeObjs:null,cursorActivityHandlers:null,cursorActivityCalled:0,selectionChanged:!1,updateMaxLine:!1,scrollLeft:null,scrollTop:null,scrollToPos:null,focus:!1,id:++F_,markArrays:null},p_(t.curOp)}function Lo(t){var r=t.curOp;r&&g_(r,function(a){for(var o=0;o=a.viewTo)||a.maxLineChanged&&r.options.lineWrapping,t.update=t.mustUpdate&&new Ol(r,t.mustUpdate&&{top:t.scrollTop,ensure:t.scrollToPos},t.forceUpdate)}function W_(t){t.updatedDisplay=t.mustUpdate&&wc(t.cm,t.update)}function U_(t){var r=t.cm,a=r.display;t.updatedDisplay&&Nl(r),t.barMeasure=lu(r),a.maxLineChanged&&!r.options.lineWrapping&&(t.adjustWidthTo=fv(r,a.maxLine,a.maxLine.text.length).left+3,r.display.sizerWidth=t.adjustWidthTo,t.barMeasure.scrollWidth=Math.max(a.scroller.clientWidth,a.sizer.offsetLeft+t.adjustWidthTo+ci(r)+r.display.barWidth),t.maxScrollLeft=Math.max(0,a.sizer.offsetLeft+t.adjustWidthTo-So(r))),(t.updatedDisplay||t.selectionChanged)&&(t.preparedSelection=a.input.prepareSelection())}function B_(t){var r=t.cm;t.adjustWidthTo!=null&&(r.display.sizer.style.minWidth=t.adjustWidthTo+"px",t.maxScrollLeft=t.display.viewTo)){var a=+new Date+t.options.workTime,o=U(t,r.highlightFrontier),l=[];r.iter(o.line,Math.min(r.first+r.size,t.display.viewTo+500),function(f){if(o.line>=t.display.viewFrom){var p=f.styles,y=f.text.length>t.options.maxHighlightLength?gn(r.mode,o.state):null,_=w(t,f,o,!0);y&&(o.state=y),f.styles=_.styles;var C=f.styleClasses,$=_.classes;$?f.styleClasses=$:C&&(f.styleClasses=null);for(var J=!p||p.length!=f.styles.length||C!=$&&(!C||!$||C.bgClass!=$.bgClass||C.textClass!=$.textClass),Se=0;!J&&Sea)return fu(t,t.options.workDelay),!0}),r.highlightFrontier=o.line,r.modeFrontier=Math.max(r.modeFrontier,o.line),l.length&&Cr(t,function(){for(var f=0;f=a.viewFrom&&r.visible.to<=a.viewTo&&(a.updateLineNumbers==null||a.updateLineNumbers>=a.viewTo)&&a.renderedView==a.view&&kv(t)==0)return!1;Dv(t)&&(Bi(t),r.dims=fc(t));var l=o.first+o.size,f=Math.max(r.visible.from-t.options.viewportMargin,o.first),p=Math.min(l,r.visible.to+t.options.viewportMargin);a.viewFromp&&a.viewTo-p<20&&(p=Math.min(l,a.viewTo)),Wt&&(f=_o(t.doc,f),p=ra(t.doc,p));var y=f!=a.viewFrom||p!=a.viewTo||a.lastWrapHeight!=r.wrapperHeight||a.lastWrapWidth!=r.wrapperWidth;L_(t,f,p),a.viewOffset=Dr(ft(t.doc,a.viewFrom)),t.display.mover.style.top=a.viewOffset+"px";var _=kv(t);if(!y&&_==0&&!r.force&&a.renderedView==a.view&&(a.updateLineNumbers==null||a.updateLineNumbers>=a.viewTo))return!1;var C=G_(t);return _>4&&(a.lineDiv.style.display="none"),$_(t,a.updateLineNumbers,r.dims),_>4&&(a.lineDiv.style.display=""),a.renderedView=a.view,V_(C),S(a.cursorDiv),S(a.selectionDiv),a.gutters.style.height=a.sizer.style.minHeight=0,y&&(a.lastWrapHeight=r.wrapperHeight,a.lastWrapWidth=r.wrapperWidth,fu(t,400)),a.updateLineNumbers=null,!0}function Lv(t,r){for(var a=r.viewport,o=!0;;o=!1){if(!o||!t.options.lineWrapping||r.oldDisplayWidth==So(t)){if(a&&a.top!=null&&(a={top:Math.min(t.doc.height+rc(t.display)-ic(t),a.top)}),r.visible=Pl(t.display,t.doc,a),r.visible.from>=t.display.viewFrom&&r.visible.to<=t.display.viewTo)break}else o&&(r.visible=Pl(t.display,t.doc,a));if(!wc(t,r))break;Nl(t);var l=lu(t);ou(t),fa(t,l),kc(t,l),r.force=!1}r.signal(t,"update",t),(t.display.viewFrom!=t.display.reportedViewFrom||t.display.viewTo!=t.display.reportedViewTo)&&(r.signal(t,"viewportChange",t,t.display.viewFrom,t.display.viewTo),t.display.reportedViewFrom=t.display.viewFrom,t.display.reportedViewTo=t.display.viewTo)}function xc(t,r){var a=new Ol(t,r);if(wc(t,a)){Nl(t),Lv(t,a);var o=lu(t);ou(t),fa(t,o),kc(t,o),a.finish()}}function $_(t,r,a){var o=t.display,l=t.options.lineNumbers,f=o.lineDiv,p=f.firstChild;function y(je){var Ve=je.nextSibling;return x&&oe&&t.display.currentWheelTarget==je?je.style.display="none":je.parentNode.removeChild(je),Ve}for(var _=o.view,C=o.viewFrom,$=0;$<_.length;$++){var J=_[$];if(!J.hidden)if(!J.node||J.node.parentNode!=f){var Se=__(t,J,C,a);f.insertBefore(Se,p)}else{for(;p!=J.node;)p=y(p);var we=l&&r!=null&&r<=C&&J.lineNumber;J.changes&&(Xe(J.changes,"gutter")>-1&&(we=!1),rv(t,J,C,a)),we&&(S(J.lineNumber),J.lineNumber.appendChild(document.createTextNode(H(t.options,C)))),p=J.node.nextSibling}C+=J.size}for(;p;)p=y(p)}function _c(t){var r=t.gutters.offsetWidth;t.sizer.style.marginLeft=r+"px",zn(t,"gutterChanged",t)}function kc(t,r){t.display.sizer.style.minHeight=r.docHeight+"px",t.display.heightForcer.style.top=r.docHeight+"px",t.display.gutters.style.height=r.docHeight+t.display.barHeight+ci(t)+"px"}function Ov(t){var r=t.display,a=r.view;if(!(!r.alignWidgets&&(!r.gutters.firstChild||!t.options.fixedGutter))){for(var o=cc(r)-r.scroller.scrollLeft+t.doc.scrollLeft,l=r.gutters.offsetWidth,f=o+"px",p=0;p=105&&(l.wrapper.style.clipPath="inset(0px)"),l.wrapper.setAttribute("translate","no"),d&&v<8&&(l.gutters.style.zIndex=-1,l.scroller.style.paddingRight=0),!x&&!(i&&q)&&(l.scroller.draggable=!0),t&&(t.appendChild?t.appendChild(l.wrapper):t(l.wrapper)),l.viewFrom=l.viewTo=r.first,l.reportedViewFrom=l.reportedViewTo=r.first,l.view=[],l.renderedView=null,l.externalMeasured=null,l.viewOffset=0,l.lastWrapHeight=l.lastWrapWidth=0,l.updateLineNumbers=null,l.nativeBarWidth=l.barHeight=l.barWidth=0,l.scrollbarsClipped=!1,l.lineNumWidth=l.lineNumInnerWidth=l.lineNumChars=null,l.alignWidgets=!1,l.cachedCharWidth=l.cachedTextHeight=l.cachedPaddingH=null,l.maxLine=null,l.maxLineLength=0,l.maxLineChanged=!1,l.wheelDX=l.wheelDY=l.wheelStartX=l.wheelStartY=null,l.shift=!1,l.selForContextMenu=null,l.activeTouch=null,l.gutterSpecs=Tc(o.gutters,o.lineNumbers),Av(l),a.init(l)}var Dl=0,bi=null;d?bi=-.53:i?bi=15:M?bi=-.7:ve&&(bi=-1/3);function Iv(t){var r=t.wheelDeltaX,a=t.wheelDeltaY;return r==null&&t.detail&&t.axis==t.HORIZONTAL_AXIS&&(r=t.detail),a==null&&t.detail&&t.axis==t.VERTICAL_AXIS?a=t.detail:a==null&&(a=t.wheelDelta),{x:r,y:a}}function K_(t){var r=Iv(t);return r.x*=bi,r.y*=bi,r}function Rv(t,r){M&&O==102&&(t.display.chromeScrollHack==null?t.display.sizer.style.pointerEvents="none":clearTimeout(t.display.chromeScrollHack),t.display.chromeScrollHack=setTimeout(function(){t.display.chromeScrollHack=null,t.display.sizer.style.pointerEvents=""},100));var a=Iv(r),o=a.x,l=a.y,f=bi;r.deltaMode===0&&(o=r.deltaX,l=r.deltaY,f=1);var p=t.display,y=p.scroller,_=y.scrollWidth>y.clientWidth,C=y.scrollHeight>y.clientHeight;if(!!(o&&_||l&&C)){if(l&&oe&&x){e:for(var $=r.target,J=p.view;$!=y;$=$.parentNode)for(var Se=0;Se=0&&pe(t,o.to())<=0)return a}return-1};var Jt=function(t,r){this.anchor=t,this.head=r};Jt.prototype.from=function(){return qt(this.anchor,this.head)},Jt.prototype.to=function(){return yt(this.anchor,this.head)},Jt.prototype.empty=function(){return this.head.line==this.anchor.line&&this.head.ch==this.anchor.ch};function ei(t,r,a){var o=t&&t.options.selectionsMayTouch,l=r[a];r.sort(function(Se,we){return pe(Se.from(),we.from())}),a=Xe(r,l);for(var f=1;f0:_>=0){var C=qt(y.from(),p.from()),$=yt(y.to(),p.to()),J=y.empty()?p.from()==p.head:y.from()==y.head;f<=a&&--a,r.splice(--f,2,new Jt(J?$:C,J?C:$))}}return new Ar(r,a)}function ji(t,r){return new Ar([new Jt(t,r||t)],0)}function Yi(t){return t.text?K(t.from.line+t.text.length-1,Je(t.text).length+(t.text.length==1?t.from.ch:0)):t.to}function Fv(t,r){if(pe(t,r.from)<0)return t;if(pe(t,r.to)<=0)return Yi(r);var a=t.line+r.text.length-(r.to.line-r.from.line)-1,o=t.ch;return t.line==r.to.line&&(o+=Yi(r).ch-r.to.ch),K(a,o)}function Sc(t,r){for(var a=[],o=0;o1&&t.remove(y.line+1,je-1),t.insert(y.line+1,lt)}zn(t,"change",t,r)}function qi(t,r,a){function o(l,f,p){if(l.linked)for(var y=0;y1&&!t.done[t.done.length-2].ranges)return t.done.pop(),Je(t.done)}function jv(t,r,a,o){var l=t.history;l.undone.length=0;var f=+new Date,p,y;if((l.lastOp==o||l.lastOrigin==r.origin&&r.origin&&(r.origin.charAt(0)=="+"&&l.lastModTime>f-(t.cm?t.cm.options.historyEventDelay:500)||r.origin.charAt(0)=="*"))&&(p=J_(l,l.lastOp==o)))y=Je(p.changes),pe(r.from,r.to)==0&&pe(r.from,y.to)==0?y.to=Yi(r):p.changes.push(Mc(t,r));else{var _=Je(l.done);for((!_||!_.ranges)&&Il(t.sel,l.done),p={changes:[Mc(t,r)],generation:l.generation},l.done.push(p);l.done.length>l.undoDepth;)l.done.shift(),l.done[0].ranges||l.done.shift()}l.done.push(a),l.generation=++l.maxGeneration,l.lastModTime=l.lastSelTime=f,l.lastOp=l.lastSelOp=o,l.lastOrigin=l.lastSelOrigin=r.origin,y||at(t,"historyAdded")}function ek(t,r,a,o){var l=r.charAt(0);return l=="*"||l=="+"&&a.ranges.length==o.ranges.length&&a.somethingSelected()==o.somethingSelected()&&new Date-t.history.lastSelTime<=(t.cm?t.cm.options.historyEventDelay:500)}function tk(t,r,a,o){var l=t.history,f=o&&o.origin;a==l.lastSelOp||f&&l.lastSelOrigin==f&&(l.lastModTime==l.lastSelTime&&l.lastOrigin==f||ek(t,f,Je(l.done),r))?l.done[l.done.length-1]=r:Il(r,l.done),l.lastSelTime=+new Date,l.lastSelOrigin=f,l.lastSelOp=a,o&&o.clearRedo!==!1&&Bv(l.undone)}function Il(t,r){var a=Je(r);a&&a.ranges&&a.equals(t)||r.push(t)}function Yv(t,r,a,o){var l=r["spans_"+t.id],f=0;t.iter(Math.max(t.first,a),Math.min(t.first+t.size,o),function(p){p.markedSpans&&((l||(l=r["spans_"+t.id]={}))[f]=p.markedSpans),++f})}function nk(t){if(!t)return null;for(var r,a=0;a-1&&(Je(y)[J]=C[J],delete C[J])}}return o}function Ec(t,r,a,o){if(o){var l=t.anchor;if(a){var f=pe(r,l)<0;f!=pe(a,l)<0?(l=r,r=a):f!=pe(r,a)<0&&(r=a)}return new Jt(l,r)}else return new Jt(a||r,r)}function Rl(t,r,a,o,l){l==null&&(l=t.cm&&(t.cm.display.shift||t.extend)),Qn(t,new Ar([Ec(t.sel.primary(),r,a,l)],0),o)}function Gv(t,r,a){for(var o=[],l=t.cm&&(t.cm.display.shift||t.extend),f=0;f=r.ch:y.to>r.ch))){if(l&&(at(_,"beforeCursorEnter"),_.explicitlyCleared))if(f.markedSpans){--p;continue}else break;if(!_.atomic)continue;if(a){var J=_.find(o<0?1:-1),Se=void 0;if((o<0?$:C)&&(J=Zv(t,J,-o,J&&J.line==r.line?f:null)),J&&J.line==r.line&&(Se=pe(J,a))&&(o<0?Se<0:Se>0))return ha(t,J,r,o,l)}var we=_.find(o<0?-1:1);return(o<0?C:$)&&(we=Zv(t,we,o,we.line==r.line?f:null)),we?ha(t,we,r,o,l):null}}return r}function zl(t,r,a,o,l){var f=o||1,p=ha(t,r,a,f,l)||!l&&ha(t,r,a,f,!0)||ha(t,r,a,-f,l)||!l&&ha(t,r,a,-f,!0);return p||(t.cantEdit=!0,K(t.first,0))}function Zv(t,r,a,o){return a<0&&r.ch==0?r.line>t.first?gt(t,K(r.line-1)):null:a>0&&r.ch==(o||ft(t,r.line)).text.length?r.line=0;--l)tg(t,{from:o[l].from,to:o[l].to,text:l?[""]:r.text,origin:r.origin});else tg(t,r)}}function tg(t,r){if(!(r.text.length==1&&r.text[0]==""&&pe(r.from,r.to)==0)){var a=Sc(t,r);jv(t,r,a,t.cm?t.cm.curOp.id:NaN),du(t,r,a,qn(t,r));var o=[];qi(t,function(l,f){!f&&Xe(o,l.history)==-1&&(og(l.history,r),o.push(l.history)),du(l,r,null,qn(l,r))})}}function Hl(t,r,a){var o=t.cm&&t.cm.state.suppressEdits;if(!(o&&!a)){for(var l=t.history,f,p=t.sel,y=r=="undo"?l.done:l.undone,_=r=="undo"?l.undone:l.done,C=0;C=0;--we){var je=Se(we);if(je)return je.v}}}}function ng(t,r){if(r!=0&&(t.first+=r,t.sel=new Ar(Yt(t.sel.ranges,function(l){return new Jt(K(l.anchor.line+r,l.anchor.ch),K(l.head.line+r,l.head.ch))}),t.sel.primIndex),t.cm)){dr(t.cm,t.first,t.first-r,r);for(var a=t.cm.display,o=a.viewFrom;ot.lastLine())){if(r.from.linef&&(r={from:r.from,to:K(f,ft(t,f).text.length),text:[r.text[0]],origin:r.origin}),r.removed=Qt(t,r.from,r.to),a||(a=Sc(t,r)),t.cm?ok(t.cm,r,o):Cc(t,r,o),Fl(t,a,Pe),t.cantEdit&&zl(t,K(t.firstLine(),0))&&(t.cantEdit=!1)}}function ok(t,r,a){var o=t.doc,l=t.display,f=r.from,p=r.to,y=!1,_=f.line;t.options.lineWrapping||(_=He(rr(ft(o,f.line))),o.iter(_,p.line+1,function(we){if(we==l.maxLine)return y=!0,!0})),o.sel.contains(r.from,r.to)>-1&&Ft(t),Cc(o,r,a,_v(t)),t.options.lineWrapping||(o.iter(_,f.line+r.text.length,function(we){var je=Wi(we);je>l.maxLineLength&&(l.maxLine=we,l.maxLineLength=je,l.maxLineChanged=!0,y=!1)}),y&&(t.curOp.updateMaxLine=!0)),wt(o,f.line),fu(t,400);var C=r.text.length-(p.line-f.line)-1;r.full?dr(t):f.line==p.line&&r.text.length==1&&!Hv(t.doc,r)?Ui(t,f.line,"text"):dr(t,f.line,p.line+1,C);var $=Ct(t,"changes"),J=Ct(t,"change");if(J||$){var Se={from:f,to:p,text:r.text,removed:r.removed,origin:r.origin};J&&zn(t,"change",t,Se),$&&(t.curOp.changeObjs||(t.curOp.changeObjs=[])).push(Se)}t.display.selForContextMenu=null}function pa(t,r,a,o,l){var f;o||(o=a),pe(o,a)<0&&(f=[o,a],a=f[0],o=f[1]),typeof r=="string"&&(r=t.splitLines(r)),da(t,{from:a,to:o,text:r,origin:l})}function rg(t,r,a,o){a1||!(this.children[0]instanceof vu))){var y=[];this.collapse(y),this.children=[new vu(y)],this.children[0].parent=this}},collapse:function(t){for(var r=0;r50){for(var p=l.lines.length%25+25,y=p;y10);t.parent.maybeSpill()}},iterN:function(t,r,a){for(var o=0;ot.display.maxLineLength&&(t.display.maxLine=C,t.display.maxLineLength=$,t.display.maxLineChanged=!0)}o!=null&&t&&this.collapsed&&dr(t,o,l+1),this.lines.length=0,this.explicitlyCleared=!0,this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,t&&Kv(t.doc)),t&&zn(t,"markerCleared",t,this,o,l),r&&Lo(t),this.parent&&this.parent.clear()}},Gi.prototype.find=function(t,r){t==null&&this.type=="bookmark"&&(t=1);for(var a,o,l=0;l0||p==0&&f.clearWhenEmpty!==!1)return f;if(f.replacedWith&&(f.collapsed=!0,f.widgetNode=A("span",[f.replacedWith],"CodeMirror-widget"),o.handleMouseEvents||f.widgetNode.setAttribute("cm-ignore-events","true"),o.insertLeft&&(f.widgetNode.insertLeft=!0)),f.collapsed){if(xo(t,r.line,r,a,f)||r.line!=a.line&&xo(t,a.line,r,a,f))throw new Error("Inserting collapsed marker partially overlapping an existing one");cn()}f.addToHistory&&jv(t,{from:r,to:a,origin:"markText"},t.sel,NaN);var y=r.line,_=t.cm,C;if(t.iter(y,a.line+1,function(J){_&&f.collapsed&&!_.options.lineWrapping&&rr(J)==_.display.maxLine&&(C=!0),f.collapsed&&y!=r.line&&le(J,0),Mn(J,new Vt(f,y==r.line?r.ch:null,y==a.line?a.ch:null),t.cm&&t.cm.curOp),++y}),f.collapsed&&t.iter(r.line,a.line+1,function(J){Gn(t,J)&&le(J,0)}),f.clearOnEnter&&Te(f,"beforeCursorEnter",function(){return f.clear()}),f.readOnly&&(jt(),(t.history.done.length||t.history.undone.length)&&t.clearHistory()),f.collapsed&&(f.id=++ug,f.atomic=!0),_){if(C&&(_.curOp.updateMaxLine=!0),f.collapsed)dr(_,r.line,a.line+1);else if(f.className||f.startStyle||f.endStyle||f.css||f.attributes||f.title)for(var $=r.line;$<=a.line;$++)Ui(_,$,"text");f.atomic&&Kv(_.doc),zn(_,"markerAdded",_,f)}return f}var yu=function(t,r){this.markers=t,this.primary=r;for(var a=0;a=0;_--)da(this,o[_]);y?$v(this,y):this.cm&&sa(this.cm)}),undo:Wn(function(){Hl(this,"undo")}),redo:Wn(function(){Hl(this,"redo")}),undoSelection:Wn(function(){Hl(this,"undo",!0)}),redoSelection:Wn(function(){Hl(this,"redo",!0)}),setExtending:function(t){this.extend=t},getExtending:function(){return this.extend},historySize:function(){for(var t=this.history,r=0,a=0,o=0;o=t.ch)&&r.push(l.marker.parent||l.marker)}return r},findMarks:function(t,r,a){t=gt(this,t),r=gt(this,r);var o=[],l=t.line;return this.iter(t.line,r.line+1,function(f){var p=f.markedSpans;if(p)for(var y=0;y=_.to||_.from==null&&l!=t.line||_.from!=null&&l==r.line&&_.from>=r.ch)&&(!a||a(_.marker))&&o.push(_.marker.parent||_.marker)}++l}),o},getAllMarks:function(){var t=[];return this.iter(function(r){var a=r.markedSpans;if(a)for(var o=0;ot)return r=t,!0;t-=f,++a}),gt(this,K(a,r))},indexFromPos:function(t){t=gt(this,t);var r=t.ch;if(t.liner&&(r=t.from),t.to!=null&&t.to-1){r.state.draggingText(t),setTimeout(function(){return r.display.input.focus()},20);return}try{var $=t.dataTransfer.getData("Text");if($){var J;if(r.state.draggingText&&!r.state.draggingText.copy&&(J=r.listSelections()),Fl(r.doc,ji(a,a)),J)for(var Se=0;Se=0;y--)pa(t.doc,"",o[y].from,o[y].to,"+delete");sa(t)})}function Pc(t,r,a){var o=R(t.text,r+a,a);return o<0||o>t.text.length?null:o}function Lc(t,r,a){var o=Pc(t,r.ch,a);return o==null?null:new K(r.line,o,a<0?"after":"before")}function Oc(t,r,a,o,l){if(t){r.doc.direction=="rtl"&&(l=-l);var f=Z(a,r.doc.direction);if(f){var p=l<0?Je(f):f[0],y=l<0==(p.level==1),_=y?"after":"before",C;if(p.level>0||r.doc.direction=="rtl"){var $=oa(r,a);C=l<0?a.text.length-1:0;var J=hi(r,$,C).top;C=B(function(Se){return hi(r,$,Se).top==J},l<0==(p.level==1)?p.from:p.to-1,C),_=="before"&&(C=Pc(a,C,1))}else C=l<0?p.to:p.from;return new K(o,C,_)}}return new K(o,l<0?a.text.length:0,l<0?"before":"after")}function wk(t,r,a,o){var l=Z(r,t.doc.direction);if(!l)return Lc(r,a,o);a.ch>=r.text.length?(a.ch=r.text.length,a.sticky="before"):a.ch<=0&&(a.ch=0,a.sticky="after");var f=Be(l,a.ch,a.sticky),p=l[f];if(t.doc.direction=="ltr"&&p.level%2==0&&(o>0?p.to>a.ch:p.from=p.from&&Se>=$.begin)){var we=J?"before":"after";return new K(a.line,Se,we)}}var je=function(lt,pt,st){for(var mt=function(fn,Un){return Un?new K(a.line,y(fn,1),"before"):new K(a.line,fn,"after")};lt>=0&<0==(Tt.level!=1),Ht=_t?st.begin:y(st.end,-1);if(Tt.from<=Ht&&Ht0?$.end:y($.begin,-1);return tt!=null&&!(o>0&&tt==r.text.length)&&(Ve=je(o>0?0:l.length-1,o,C(tt)),Ve)?Ve:null}var _u={selectAll:Jv,singleSelection:function(t){return t.setSelection(t.getCursor("anchor"),t.getCursor("head"),Pe)},killLine:function(t){return ma(t,function(r){if(r.empty()){var a=ft(t.doc,r.head.line).text.length;return r.head.ch==a&&r.head.line0)l=new K(l.line,l.ch+1),t.replaceRange(f.charAt(l.ch-1)+f.charAt(l.ch-2),K(l.line,l.ch-2),l,"+transpose");else if(l.line>t.doc.first){var p=ft(t.doc,l.line-1).text;p&&(l=new K(l.line,1),t.replaceRange(f.charAt(0)+t.doc.lineSeparator()+p.charAt(p.length-1),K(l.line-1,p.length-1),l,"+transpose"))}}a.push(new Jt(l,l))}t.setSelections(a)})},newlineAndIndent:function(t){return Cr(t,function(){for(var r=t.listSelections(),a=r.length-1;a>=0;a--)t.replaceRange(t.doc.lineSeparator(),r[a].anchor,r[a].head,"+input");r=t.listSelections();for(var o=0;ot&&pe(r,this.pos)==0&&a==this.button};var Tu,Su;function Ck(t,r){var a=+new Date;return Su&&Su.compare(a,t,r)?(Tu=Su=null,"triple"):Tu&&Tu.compare(a,t,r)?(Su=new Ac(a,t,r),Tu=null,"double"):(Tu=new Ac(a,t,r),Su=null,"single")}function Tg(t){var r=this,a=r.display;if(!(vt(r,t)||a.activeTouch&&a.input.supportsTouch())){if(a.input.ensurePolled(),a.shift=t.shiftKey,Si(a,t)){x||(a.scroller.draggable=!1,setTimeout(function(){return a.scroller.draggable=!0},100));return}if(!Ic(r,t)){var o=Co(r,t),l=F(t),f=o?Ck(o,l):"single";be(r).focus(),l==1&&r.state.selectingText&&r.state.selectingText(t),!(o&&Mk(r,l,o,f,t))&&(l==1?o?Nk(r,o,f,t):Le(t)==a.scroller&&Bt(t):l==2?(o&&Rl(r.doc,o),setTimeout(function(){return a.input.focus()},20)):l==3&&(g?r.display.input.onContextMenu(t):vc(r)))}}}function Mk(t,r,a,o,l){var f="Click";return o=="double"?f="Double"+f:o=="triple"&&(f="Triple"+f),f=(r==1?"Left":r==2?"Middle":"Right")+f,ku(t,pg(f,l),l,function(p){if(typeof p=="string"&&(p=_u[p]),!p)return!1;var y=!1;try{t.isReadOnly()&&(t.state.suppressEdits=!0),y=p(t,a)!=me}finally{t.state.suppressEdits=!1}return y})}function Ek(t,r,a){var o=t.getOption("configureMouse"),l=o?o(t,r,a):{};if(l.unit==null){var f=ge?a.shiftKey&&a.metaKey:a.altKey;l.unit=f?"rectangle":r=="single"?"char":r=="double"?"word":"line"}return(l.extend==null||t.doc.extend)&&(l.extend=t.doc.extend||a.shiftKey),l.addNew==null&&(l.addNew=oe?a.metaKey:a.ctrlKey),l.moveOnDrag==null&&(l.moveOnDrag=!(oe?a.altKey:a.ctrlKey)),l}function Nk(t,r,a,o){d?setTimeout(Ce(Sv,t),0):t.curOp.focus=Oe(se(t));var l=Ek(t,a,o),f=t.doc.sel,p;t.options.dragDrop&&V&&!t.isReadOnly()&&a=="single"&&(p=f.contains(r))>-1&&(pe((p=f.ranges[p]).from(),r)<0||r.xRel>0)&&(pe(p.to(),r)>0||r.xRel<0)?Pk(t,o,r,l):Lk(t,o,r,l)}function Pk(t,r,a,o){var l=t.display,f=!1,p=Hn(t,function(C){x&&(l.scroller.draggable=!1),t.state.draggingText=!1,t.state.delayingBlurEvent&&(t.hasFocus()?t.state.delayingBlurEvent=!1:vc(t)),nt(l.wrapper.ownerDocument,"mouseup",p),nt(l.wrapper.ownerDocument,"mousemove",y),nt(l.scroller,"dragstart",_),nt(l.scroller,"drop",p),f||(Bt(C),o.addNew||Rl(t.doc,a,null,null,o.extend),x&&!ve||d&&v==9?setTimeout(function(){l.wrapper.ownerDocument.body.focus({preventScroll:!0}),l.input.focus()},20):l.input.focus())}),y=function(C){f=f||Math.abs(r.clientX-C.clientX)+Math.abs(r.clientY-C.clientY)>=10},_=function(){return f=!0};x&&(l.scroller.draggable=!0),t.state.draggingText=p,p.copy=!o.moveOnDrag,Te(l.wrapper.ownerDocument,"mouseup",p),Te(l.wrapper.ownerDocument,"mousemove",y),Te(l.scroller,"dragstart",_),Te(l.scroller,"drop",p),t.state.delayingBlurEvent=!0,setTimeout(function(){return l.input.focus()},20),l.scroller.dragDrop&&l.scroller.dragDrop()}function Sg(t,r,a){if(a=="char")return new Jt(r,r);if(a=="word")return t.findWordAt(r);if(a=="line")return new Jt(K(r.line,0),gt(t.doc,K(r.line+1,0)));var o=a(t,r);return new Jt(o.from,o.to)}function Lk(t,r,a,o){d&&vc(t);var l=t.display,f=t.doc;Bt(r);var p,y,_=f.sel,C=_.ranges;if(o.addNew&&!o.extend?(y=f.sel.contains(a),y>-1?p=C[y]:p=new Jt(a,a)):(p=f.sel.primary(),y=f.sel.primIndex),o.unit=="rectangle")o.addNew||(p=new Jt(a,a)),a=Co(t,r,!0,!0),y=-1;else{var $=Sg(t,a,o.unit);o.extend?p=Ec(p,$.anchor,$.head,o.extend):p=$}o.addNew?y==-1?(y=C.length,Qn(f,ei(t,C.concat([p]),y),{scroll:!1,origin:"*mouse"})):C.length>1&&C[y].empty()&&o.unit=="char"&&!o.extend?(Qn(f,ei(t,C.slice(0,y).concat(C.slice(y+1)),0),{scroll:!1,origin:"*mouse"}),_=f.sel):Nc(f,y,p,Q):(y=0,Qn(f,new Ar([p],0),Q),_=f.sel);var J=a;function Se(st){if(pe(J,st)!=0)if(J=st,o.unit=="rectangle"){for(var mt=[],Tt=t.options.tabSize,_t=Re(ft(f,a.line).text,a.ch,Tt),Ht=Re(ft(f,st.line).text,st.ch,Tt),fn=Math.min(_t,Ht),Un=Math.max(_t,Ht),xn=Math.min(a.line,st.line),Mr=Math.min(t.lastLine(),Math.max(a.line,st.line));xn<=Mr;xn++){var vr=ft(f,xn).text,On=ke(vr,fn,Tt);fn==Un?mt.push(new Jt(K(xn,On),K(xn,On))):vr.length>On&&mt.push(new Jt(K(xn,On),K(xn,ke(vr,Un,Tt))))}mt.length||mt.push(new Jt(a,a)),Qn(f,ei(t,_.ranges.slice(0,y).concat(mt),y),{origin:"*mouse",scroll:!1}),t.scrollIntoView(st)}else{var gr=p,Vn=Sg(t,st,o.unit),Rn=gr.anchor,Dn;pe(Vn.anchor,Rn)>0?(Dn=Vn.head,Rn=qt(gr.from(),Vn.anchor)):(Dn=Vn.anchor,Rn=yt(gr.to(),Vn.head));var Sn=_.ranges.slice(0);Sn[y]=Ok(t,new Jt(gt(f,Rn),Dn)),Qn(f,ei(t,Sn,y),Q)}}var we=l.wrapper.getBoundingClientRect(),je=0;function Ve(st){var mt=++je,Tt=Co(t,st,!0,o.unit=="rectangle");if(!!Tt)if(pe(Tt,J)!=0){t.curOp.focus=Oe(se(t)),Se(Tt);var _t=Pl(l,f);(Tt.line>=_t.to||Tt.line<_t.from)&&setTimeout(Hn(t,function(){je==mt&&Ve(st)}),150)}else{var Ht=st.clientYwe.bottom?20:0;Ht&&setTimeout(Hn(t,function(){je==mt&&(l.scroller.scrollTop+=Ht,Ve(st))}),50)}}function tt(st){t.state.selectingText=!1,je=1/0,st&&(Bt(st),l.input.focus()),nt(l.wrapper.ownerDocument,"mousemove",lt),nt(l.wrapper.ownerDocument,"mouseup",pt),f.history.lastSelOrigin=null}var lt=Hn(t,function(st){st.buttons===0||!F(st)?tt(st):Ve(st)}),pt=Hn(t,tt);t.state.selectingText=pt,Te(l.wrapper.ownerDocument,"mousemove",lt),Te(l.wrapper.ownerDocument,"mouseup",pt)}function Ok(t,r){var a=r.anchor,o=r.head,l=ft(t.doc,a.line);if(pe(a,o)==0&&a.sticky==o.sticky)return r;var f=Z(l);if(!f)return r;var p=Be(f,a.ch,a.sticky),y=f[p];if(y.from!=a.ch&&y.to!=a.ch)return r;var _=p+(y.from==a.ch==(y.level!=1)?0:1);if(_==0||_==f.length)return r;var C;if(o.line!=a.line)C=(o.line-a.line)*(t.doc.direction=="ltr"?1:-1)>0;else{var $=Be(f,o.ch,o.sticky),J=$-p||(o.ch-a.ch)*(y.level==1?-1:1);$==_-1||$==_?C=J<0:C=J>0}var Se=f[_+(C?-1:0)],we=C==(Se.level==1),je=we?Se.from:Se.to,Ve=we?"after":"before";return a.ch==je&&a.sticky==Ve?r:new Jt(new K(a.line,je,Ve),o)}function bg(t,r,a,o){var l,f;if(r.touches)l=r.touches[0].clientX,f=r.touches[0].clientY;else try{l=r.clientX,f=r.clientY}catch{return!1}if(l>=Math.floor(t.display.gutters.getBoundingClientRect().right))return!1;o&&Bt(r);var p=t.display,y=p.lineDiv.getBoundingClientRect();if(f>y.bottom||!Ct(t,a))return vn(r);f-=y.top-p.viewOffset;for(var _=0;_=l){var $=Qe(t.doc,f),J=t.display.gutterSpecs[_];return at(t,a,t,$,J.className,r),vn(r)}}}function Ic(t,r){return bg(t,r,"gutterClick",!0)}function Cg(t,r){Si(t.display,r)||Dk(t,r)||vt(t,r,"contextmenu")||g||t.display.input.onContextMenu(r)}function Dk(t,r){return Ct(t,"gutterContextMenu")?bg(t,r,"gutterContextMenu",!1):!1}function Mg(t){t.display.wrapper.className=t.display.wrapper.className.replace(/\s*cm-s-\S+/g,"")+t.options.theme.replace(/(^|\s)\s*/g," cm-s-"),iu(t)}var ya={toString:function(){return"CodeMirror.Init"}},Eg={},jl={};function Ak(t){var r=t.optionHandlers;function a(o,l,f,p){t.defaults[o]=l,f&&(r[o]=p?function(y,_,C){C!=ya&&f(y,_,C)}:f)}t.defineOption=a,t.Init=ya,a("value","",function(o,l){return o.setValue(l)},!0),a("mode",null,function(o,l){o.doc.modeOption=l,bc(o)},!0),a("indentUnit",2,bc,!0),a("indentWithTabs",!1),a("smartIndent",!0),a("tabSize",4,function(o){hu(o),iu(o),dr(o)},!0),a("lineSeparator",null,function(o,l){if(o.doc.lineSep=l,!!l){var f=[],p=o.doc.first;o.doc.iter(function(_){for(var C=0;;){var $=_.text.indexOf(l,C);if($==-1)break;C=$+l.length,f.push(K(p,$))}p++});for(var y=f.length-1;y>=0;y--)pa(o.doc,l,f[y],K(f[y].line,f[y].ch+l.length))}}),a("specialChars",/[\u0000-\u001f\u007f-\u009f\u00ad\u061c\u200b\u200e\u200f\u2028\u2029\u202d\u202e\u2066\u2067\u2069\ufeff\ufff9-\ufffc]/g,function(o,l,f){o.state.specialChars=new RegExp(l.source+(l.test(" ")?"":"| "),"g"),f!=ya&&o.refresh()}),a("specialCharPlaceholder",s_,function(o){return o.refresh()},!0),a("electricChars",!0),a("inputStyle",q?"contenteditable":"textarea",function(){throw new Error("inputStyle can not (yet) be changed in a running editor")},!0),a("spellcheck",!1,function(o,l){return o.getInputField().spellcheck=l},!0),a("autocorrect",!1,function(o,l){return o.getInputField().autocorrect=l},!0),a("autocapitalize",!1,function(o,l){return o.getInputField().autocapitalize=l},!0),a("rtlMoveVisually",!Ue),a("wholeLineUpdateBefore",!0),a("theme","default",function(o){Mg(o),cu(o)},!0),a("keyMap","default",function(o,l,f){var p=Ul(l),y=f!=ya&&Ul(f);y&&y.detach&&y.detach(o,p),p.attach&&p.attach(o,y||null)}),a("extraKeys",null),a("configureMouse",null),a("lineWrapping",!1,Rk,!0),a("gutters",[],function(o,l){o.display.gutterSpecs=Tc(l,o.options.lineNumbers),cu(o)},!0),a("fixedGutter",!0,function(o,l){o.display.gutters.style.left=l?cc(o.display)+"px":"0",o.refresh()},!0),a("coverGutterNextToScrollbar",!1,function(o){return fa(o)},!0),a("scrollbarStyle","native",function(o){Pv(o),fa(o),o.display.scrollbars.setScrollTop(o.doc.scrollTop),o.display.scrollbars.setScrollLeft(o.doc.scrollLeft)},!0),a("lineNumbers",!1,function(o,l){o.display.gutterSpecs=Tc(o.options.gutters,l),cu(o)},!0),a("firstLineNumber",1,cu,!0),a("lineNumberFormatter",function(o){return o},cu,!0),a("showCursorWhenSelecting",!1,ou,!0),a("resetSelectionOnContextMenu",!0),a("lineWiseCopyCut",!0),a("pasteLinesPerSelection",!0),a("selectionsMayTouch",!1),a("readOnly",!1,function(o,l){l=="nocursor"&&(la(o),o.display.input.blur()),o.display.input.readOnlyChanged(l)}),a("screenReaderLabel",null,function(o,l){l=l===""?null:l,o.display.input.screenReaderLabelChanged(l)}),a("disableInput",!1,function(o,l){l||o.display.input.reset()},!0),a("dragDrop",!0,Ik),a("allowDropFileTypes",null),a("cursorBlinkRate",530),a("cursorScrollMargin",0),a("cursorHeight",1,ou,!0),a("singleCursorHeightPerLine",!0,ou,!0),a("workTime",100),a("workDelay",100),a("flattenSpans",!0,hu,!0),a("addModeClass",!1,hu,!0),a("pollInterval",100),a("undoDepth",200,function(o,l){return o.doc.history.undoDepth=l}),a("historyEventDelay",1250),a("viewportMargin",10,function(o){return o.refresh()},!0),a("maxHighlightLength",1e4,hu,!0),a("moveInputWithCursor",!0,function(o,l){l||o.display.input.resetPosition()}),a("tabindex",null,function(o,l){return o.display.input.getField().tabIndex=l||""}),a("autofocus",null),a("direction","ltr",function(o,l){return o.doc.setDirection(l)},!0),a("phrases",null)}function Ik(t,r,a){var o=a&&a!=ya;if(!r!=!o){var l=t.display.dragFunctions,f=r?Te:nt;f(t.display.scroller,"dragstart",l.start),f(t.display.scroller,"dragenter",l.enter),f(t.display.scroller,"dragover",l.over),f(t.display.scroller,"dragleave",l.leave),f(t.display.scroller,"drop",l.drop)}}function Rk(t){t.options.lineWrapping?(fe(t.display.wrapper,"CodeMirror-wrap"),t.display.sizer.style.minWidth="",t.display.sizerWidth=null):(E(t.display.wrapper,"CodeMirror-wrap"),To(t)),hc(t),dr(t),iu(t),setTimeout(function(){return fa(t)},100)}function mn(t,r){var a=this;if(!(this instanceof mn))return new mn(t,r);this.options=r=r?_e(r):{},_e(Eg,r,!1);var o=r.value;typeof o=="string"?o=new pr(o,r.mode,null,r.lineSeparator,r.direction):r.mode&&(o.modeOption=r.mode),this.doc=o;var l=new mn.inputStyles[r.inputStyle](this),f=this.display=new X_(t,o,l,r);f.wrapper.CodeMirror=this,Mg(this),r.lineWrapping&&(this.display.wrapper.className+=" CodeMirror-wrap"),Pv(this),this.state={keyMaps:[],overlays:[],modeGen:0,overwrite:!1,delayingBlurEvent:!1,focused:!1,suppressEdits:!1,pasteIncoming:-1,cutIncoming:-1,selectingText:!1,draggingText:!1,highlight:new Ae,keySeq:null,specialChars:null},r.autofocus&&!q&&f.input.focus(),d&&v<11&&setTimeout(function(){return a.display.input.reset(!0)},20),Fk(this),pk(),Po(this),this.curOp.forceUpdate=!0,Wv(this,o),r.autofocus&&!q||this.hasFocus()?setTimeout(function(){a.hasFocus()&&!a.state.focused&&gc(a)},20):la(this);for(var p in jl)jl.hasOwnProperty(p)&&jl[p](this,r[p],ya);Dv(this),r.finishInit&&r.finishInit(this);for(var y=0;y20*20}Te(r.scroller,"touchstart",function(_){if(!vt(t,_)&&!f(_)&&!Ic(t,_)){r.input.ensurePolled(),clearTimeout(a);var C=+new Date;r.activeTouch={start:C,moved:!1,prev:C-o.end<=300?o:null},_.touches.length==1&&(r.activeTouch.left=_.touches[0].pageX,r.activeTouch.top=_.touches[0].pageY)}}),Te(r.scroller,"touchmove",function(){r.activeTouch&&(r.activeTouch.moved=!0)}),Te(r.scroller,"touchend",function(_){var C=r.activeTouch;if(C&&!Si(r,_)&&C.left!=null&&!C.moved&&new Date-C.start<300){var $=t.coordsChar(r.activeTouch,"page"),J;!C.prev||p(C,C.prev)?J=new Jt($,$):!C.prev.prev||p(C,C.prev.prev)?J=t.findWordAt($):J=new Jt(K($.line,0),gt(t.doc,K($.line+1,0))),t.setSelection(J.anchor,J.head),t.focus(),Bt(_)}l()}),Te(r.scroller,"touchcancel",l),Te(r.scroller,"scroll",function(){r.scroller.clientHeight&&(uu(t,r.scroller.scrollTop),Eo(t,r.scroller.scrollLeft,!0),at(t,"scroll",t))}),Te(r.scroller,"mousewheel",function(_){return Rv(t,_)}),Te(r.scroller,"DOMMouseScroll",function(_){return Rv(t,_)}),Te(r.wrapper,"scroll",function(){return r.wrapper.scrollTop=r.wrapper.scrollLeft=0}),r.dragFunctions={enter:function(_){vt(t,_)||G(_)},over:function(_){vt(t,_)||(dk(t,_),G(_))},start:function(_){return hk(t,_)},drop:Hn(t,ck),leave:function(_){vt(t,_)||fg(t)}};var y=r.input.getField();Te(y,"keyup",function(_){return _g.call(t,_)}),Te(y,"keydown",Hn(t,xg)),Te(y,"keypress",Hn(t,kg)),Te(y,"focus",function(_){return gc(t,_)}),Te(y,"blur",function(_){return la(t,_)})}var Rc=[];mn.defineInitHook=function(t){return Rc.push(t)};function bu(t,r,a,o){var l=t.doc,f;a==null&&(a="add"),a=="smart"&&(l.mode.indent?f=U(t,r).state:a="prev");var p=t.options.tabSize,y=ft(l,r),_=Re(y.text,null,p);y.stateAfter&&(y.stateAfter=null);var C=y.text.match(/^\s*/)[0],$;if(!o&&!/\S/.test(y.text))$=0,a="not";else if(a=="smart"&&($=l.mode.indent(f,y.text.slice(C.length),y.text),$==me||$>150)){if(!o)return;a="prev"}a=="prev"?r>l.first?$=Re(ft(l,r-1).text,null,p):$=0:a=="add"?$=_+t.options.indentUnit:a=="subtract"?$=_-t.options.indentUnit:typeof a=="number"&&($=_+a),$=Math.max(0,$);var J="",Se=0;if(t.options.indentWithTabs)for(var we=Math.floor($/p);we;--we)Se+=p,J+=" ";if(Se<$&&(J+=it($-Se)),J!=C)return pa(l,J,K(r,0),K(r,C.length),"+input"),y.stateAfter=null,!0;for(var je=0;jep,_=xe(r),C=null;if(y&&o.ranges.length>1)if(ti&&ti.text.join(` +`)==r){if(o.ranges.length%ti.text.length==0){C=[];for(var $=0;$=0;Se--){var we=o.ranges[Se],je=we.from(),Ve=we.to();we.empty()&&(a&&a>0?je=K(je.line,je.ch-a):t.state.overwrite&&!y?Ve=K(Ve.line,Math.min(ft(f,Ve.line).text.length,Ve.ch+Je(_).length)):y&&ti&&ti.lineWise&&ti.text.join(` +`)==_.join(` +`)&&(je=Ve=K(je.line,0)));var tt={from:je,to:Ve,text:C?C[Se%C.length]:_,origin:l||(y?"paste":t.state.cutIncoming>p?"cut":"+input")};da(t.doc,tt),zn(t,"inputRead",t,tt)}r&&!y&&Pg(t,r),sa(t),t.curOp.updateInput<2&&(t.curOp.updateInput=J),t.curOp.typing=!0,t.state.pasteIncoming=t.state.cutIncoming=-1}function Ng(t,r){var a=t.clipboardData&&t.clipboardData.getData("Text");if(a)return t.preventDefault(),!r.isReadOnly()&&!r.options.disableInput&&r.hasFocus()&&Cr(r,function(){return Fc(r,a,0,null,"paste")}),!0}function Pg(t,r){if(!(!t.options.electricChars||!t.options.smartIndent))for(var a=t.doc.sel,o=a.ranges.length-1;o>=0;o--){var l=a.ranges[o];if(!(l.head.ch>100||o&&a.ranges[o-1].head.line==l.head.line)){var f=t.getModeAt(l.head),p=!1;if(f.electricChars){for(var y=0;y-1){p=bu(t,l.head.line,"smart");break}}else f.electricInput&&f.electricInput.test(ft(t.doc,l.head.line).text.slice(0,l.head.ch))&&(p=bu(t,l.head.line,"smart"));p&&zn(t,"electricInput",t,l.head.line)}}}function Lg(t){for(var r=[],a=[],o=0;of&&(bu(this,y.head.line,o,!0),f=y.head.line,p==this.doc.sel.primIndex&&sa(this));else{var _=y.from(),C=y.to(),$=Math.max(f,_.line);f=Math.min(this.lastLine(),C.line-(C.ch?0:1))+1;for(var J=$;J0&&Nc(this.doc,p,new Jt(_,Se[p].to()),Pe)}}}),getTokenAt:function(o,l){return ye(this,o,l)},getLineTokens:function(o,l){return ye(this,K(o),l,!0)},getTokenTypeAt:function(o){o=gt(this.doc,o);var l=z(this,ft(this.doc,o.line)),f=0,p=(l.length-1)/2,y=o.ch,_;if(y==0)_=l[2];else for(;;){var C=f+p>>1;if((C?l[C*2-1]:0)>=y)p=C;else if(l[C*2+1]_&&(o=_,p=!0),y=ft(this.doc,o)}else y=o;return bl(this,y,{top:0,left:0},l||"page",f||p).top+(p?this.doc.height-Dr(y):0)},defaultTextHeight:function(){return aa(this.display)},defaultCharWidth:function(){return ua(this.display)},getViewport:function(){return{from:this.display.viewFrom,to:this.display.viewTo}},addWidget:function(o,l,f,p,y){var _=this.display;o=Jr(this,gt(this.doc,o));var C=o.bottom,$=o.left;if(l.style.position="absolute",l.setAttribute("cm-ignore-events","true"),this.display.input.setUneditable(l),_.sizer.appendChild(l),p=="over")C=o.top;else if(p=="above"||p=="near"){var J=Math.max(_.wrapper.clientHeight,this.doc.height),Se=Math.max(_.sizer.clientWidth,_.lineSpace.clientWidth);(p=="above"||o.bottom+l.offsetHeight>J)&&o.top>l.offsetHeight?C=o.top-l.offsetHeight:o.bottom+l.offsetHeight<=J&&(C=o.bottom),$+l.offsetWidth>Se&&($=Se-l.offsetWidth)}l.style.top=C+"px",l.style.left=l.style.right="",y=="right"?($=_.sizer.clientWidth-l.offsetWidth,l.style.right="0px"):(y=="left"?$=0:y=="middle"&&($=(_.sizer.clientWidth-l.offsetWidth)/2),l.style.left=$+"px"),f&&I_(this,{left:$,top:C,right:$+l.offsetWidth,bottom:C+l.offsetHeight})},triggerOnKeyDown:ir(xg),triggerOnKeyPress:ir(kg),triggerOnKeyUp:_g,triggerOnMouseDown:ir(Tg),execCommand:function(o){if(_u.hasOwnProperty(o))return _u[o].call(null,this)},triggerElectric:ir(function(o){Pg(this,o)}),findPosH:function(o,l,f,p){var y=1;l<0&&(y=-1,l=-l);for(var _=gt(this.doc,o),C=0;C0&&$(f.charAt(p-1));)--p;for(;y.5||this.options.lineWrapping)&&hc(this),at(this,"refresh",this)}),swapDoc:ir(function(o){var l=this.doc;return l.cm=null,this.state.selectingText&&this.state.selectingText(),Wv(this,o),iu(this),this.display.input.reset(),au(this,o.scrollLeft,o.scrollTop),this.curOp.forceScroll=!0,zn(this,"swapDoc",this,l),l}),phrase:function(o){var l=this.options.phrases;return l&&Object.prototype.hasOwnProperty.call(l,o)?l[o]:o},getInputField:function(){return this.display.input.getField()},getWrapperElement:function(){return this.display.wrapper},getScrollerElement:function(){return this.display.scroller},getGutterElement:function(){return this.display.gutters}},zt(t),t.registerHelper=function(o,l,f){a.hasOwnProperty(o)||(a[o]=t[o]={_global:[]}),a[o][l]=f},t.registerGlobalHelper=function(o,l,f,p){t.registerHelper(o,l,p),a[o]._global.push({pred:f,val:p})}}function zc(t,r,a,o,l){var f=r,p=a,y=ft(t,r.line),_=l&&t.direction=="rtl"?-a:a;function C(){var pt=r.line+_;return pt=t.first+t.size?!1:(r=new K(pt,r.ch,r.sticky),y=ft(t,pt))}function $(pt){var st;if(o=="codepoint"){var mt=y.text.charCodeAt(r.ch+(a>0?0:-1));if(isNaN(mt))st=null;else{var Tt=a>0?mt>=55296&&mt<56320:mt>=56320&&mt<57343;st=new K(r.line,Math.max(0,Math.min(y.text.length,r.ch+a*(Tt?2:1))),-a)}}else l?st=wk(t.cm,y,r,a):st=Lc(y,r,a);if(st==null)if(!pt&&C())r=Oc(l,t.cm,y,r.line,_);else return!1;else r=st;return!0}if(o=="char"||o=="codepoint")$();else if(o=="column")$(!0);else if(o=="word"||o=="group")for(var J=null,Se=o=="group",we=t.cm&&t.cm.getHelper(r,"wordChars"),je=!0;!(a<0&&!$(!je));je=!1){var Ve=y.text.charAt(r.ch)||` +`,tt=Kt(Ve,we)?"w":Se&&Ve==` +`?"n":!Se||/\s/.test(Ve)?null:"p";if(Se&&!je&&!tt&&(tt="s"),J&&J!=tt){a<0&&(a=1,$(),r.sticky="after");break}if(tt&&(J=tt),a>0&&!$(!je))break}var lt=zl(t,r,f,p,!0);return Ze(f,lt)&&(lt.hitSide=!0),lt}function Ag(t,r,a,o){var l=t.doc,f=r.left,p;if(o=="page"){var y=Math.min(t.display.wrapper.clientHeight,be(t).innerHeight||l(t).documentElement.clientHeight),_=Math.max(y-.5*aa(t.display),3);p=(a>0?r.bottom:r.top)+a*_}else o=="line"&&(p=a>0?r.bottom+3:r.top-3);for(var C;C=lc(t,f,p),!!C.outside;){if(a<0?p<=0:p>=l.height){C.hitSide=!0;break}p+=a*5}return C}var nn=function(t){this.cm=t,this.lastAnchorNode=this.lastAnchorOffset=this.lastFocusNode=this.lastFocusOffset=null,this.polling=new Ae,this.composing=null,this.gracePeriod=!1,this.readDOMTimeout=null};nn.prototype.init=function(t){var r=this,a=this,o=a.cm,l=a.div=t.lineDiv;l.contentEditable=!0,Og(l,o.options.spellcheck,o.options.autocorrect,o.options.autocapitalize);function f(y){for(var _=y.target;_;_=_.parentNode){if(_==l)return!0;if(/\bCodeMirror-(?:line)?widget\b/.test(_.className))break}return!1}Te(l,"paste",function(y){!f(y)||vt(o,y)||Ng(y,o)||v<=11&&setTimeout(Hn(o,function(){return r.updateFromDOM()}),20)}),Te(l,"compositionstart",function(y){r.composing={data:y.data,done:!1}}),Te(l,"compositionupdate",function(y){r.composing||(r.composing={data:y.data,done:!1})}),Te(l,"compositionend",function(y){r.composing&&(y.data!=r.composing.data&&r.readFromDOMSoon(),r.composing.done=!0)}),Te(l,"touchstart",function(){return a.forceCompositionEnd()}),Te(l,"input",function(){r.composing||r.readFromDOMSoon()});function p(y){if(!(!f(y)||vt(o,y))){if(o.somethingSelected())Yl({lineWise:!1,text:o.getSelections()}),y.type=="cut"&&o.replaceSelection("",null,"cut");else if(o.options.lineWiseCopyCut){var _=Lg(o);Yl({lineWise:!0,text:_.text}),y.type=="cut"&&o.operation(function(){o.setSelections(_.ranges,0,Pe),o.replaceSelection("",null,"cut")})}else return;if(y.clipboardData){y.clipboardData.clearData();var C=ti.text.join(` +`);if(y.clipboardData.setData("Text",C),y.clipboardData.getData("Text")==C){y.preventDefault();return}}var $=Dg(),J=$.firstChild;o.display.lineSpace.insertBefore($,o.display.lineSpace.firstChild),J.value=ti.text.join(` +`);var Se=Oe(l.ownerDocument);We(J),setTimeout(function(){o.display.lineSpace.removeChild($),Se.focus(),Se==l&&a.showPrimarySelection()},50)}}Te(l,"copy",p),Te(l,"cut",p)},nn.prototype.screenReaderLabelChanged=function(t){t?this.div.setAttribute("aria-label",t):this.div.removeAttribute("aria-label")},nn.prototype.prepareSelection=function(){var t=Tv(this.cm,!1);return t.focus=Oe(this.div.ownerDocument)==this.div,t},nn.prototype.showSelection=function(t,r){!t||!this.cm.display.view.length||((t.focus||r)&&this.showPrimarySelection(),this.showMultipleSelections(t))},nn.prototype.getSelection=function(){return this.cm.display.wrapper.ownerDocument.getSelection()},nn.prototype.showPrimarySelection=function(){var t=this.getSelection(),r=this.cm,a=r.doc.sel.primary(),o=a.from(),l=a.to();if(r.display.viewTo==r.display.viewFrom||o.line>=r.display.viewTo||l.line=r.display.viewFrom&&Ig(r,o)||{node:y[0].measure.map[2],offset:0},C=l.linet.firstLine()&&(o=K(o.line-1,ft(t.doc,o.line-1).length)),l.ch==ft(t.doc,l.line).text.length&&l.liner.viewTo-1)return!1;var f,p,y;o.line==r.viewFrom||(f=Mo(t,o.line))==0?(p=He(r.view[0].line),y=r.view[0].node):(p=He(r.view[f].line),y=r.view[f-1].node.nextSibling);var _=Mo(t,l.line),C,$;if(_==r.view.length-1?(C=r.viewTo-1,$=r.lineDiv.lastChild):(C=He(r.view[_+1].line)-1,$=r.view[_+1].node.previousSibling),!y)return!1;for(var J=t.doc.splitLines(Wk(t,y,$,p,C)),Se=Qt(t.doc,K(p,0),K(C,ft(t.doc,C).text.length));J.length>1&&Se.length>1;)if(Je(J)==Je(Se))J.pop(),Se.pop(),C--;else if(J[0]==Se[0])J.shift(),Se.shift(),p++;else break;for(var we=0,je=0,Ve=J[0],tt=Se[0],lt=Math.min(Ve.length,tt.length);weo.ch&&pt.charCodeAt(pt.length-je-1)==st.charCodeAt(st.length-je-1);)we--,je++;J[J.length-1]=pt.slice(0,pt.length-je).replace(/^\u200b+/,""),J[0]=J[0].slice(we).replace(/\u200b+$/,"");var Tt=K(p,we),_t=K(C,Se.length?Je(Se).length-je:0);if(J.length>1||J[0]||pe(Tt,_t))return pa(t.doc,J,Tt,_t,"+input"),!0},nn.prototype.ensurePolled=function(){this.forceCompositionEnd()},nn.prototype.reset=function(){this.forceCompositionEnd()},nn.prototype.forceCompositionEnd=function(){!this.composing||(clearTimeout(this.readDOMTimeout),this.composing=null,this.updateFromDOM(),this.div.blur(),this.div.focus())},nn.prototype.readFromDOMSoon=function(){var t=this;this.readDOMTimeout==null&&(this.readDOMTimeout=setTimeout(function(){if(t.readDOMTimeout=null,t.composing)if(t.composing.done)t.composing=null;else return;t.updateFromDOM()},80))},nn.prototype.updateFromDOM=function(){var t=this;(this.cm.isReadOnly()||!this.pollContent())&&Cr(this.cm,function(){return dr(t.cm)})},nn.prototype.setUneditable=function(t){t.contentEditable="false"},nn.prototype.onKeyPress=function(t){t.charCode==0||this.composing||(t.preventDefault(),this.cm.isReadOnly()||Hn(this.cm,Fc)(this.cm,String.fromCharCode(t.charCode==null?t.keyCode:t.charCode),0))},nn.prototype.readOnlyChanged=function(t){this.div.contentEditable=String(t!="nocursor")},nn.prototype.onContextMenu=function(){},nn.prototype.resetPosition=function(){},nn.prototype.needsContentAttribute=!0;function Ig(t,r){var a=oc(t,r.line);if(!a||a.hidden)return null;var o=ft(t.doc,r.line),l=sv(a,o,r.line),f=Z(o,t.doc.direction),p="left";if(f){var y=Be(f,r.ch);p=y%2?"right":"left"}var _=hv(l.map,r.ch,p);return _.offset=_.collapse=="right"?_.end:_.start,_}function Hk(t){for(var r=t;r;r=r.parentNode)if(/CodeMirror-gutter-wrapper/.test(r.className))return!0;return!1}function wa(t,r){return r&&(t.bad=!0),t}function Wk(t,r,a,o,l){var f="",p=!1,y=t.doc.lineSeparator(),_=!1;function C(we){return function(je){return je.id==we}}function $(){p&&(f+=y,_&&(f+=y),p=_=!1)}function J(we){we&&($(),f+=we)}function Se(we){if(we.nodeType==1){var je=we.getAttribute("cm-text");if(je){J(je);return}var Ve=we.getAttribute("cm-marker"),tt;if(Ve){var lt=t.findMarks(K(o,0),K(l+1,0),C(+Ve));lt.length&&(tt=lt[0].find(0))&&J(Qt(t.doc,tt.from,tt.to).join(y));return}if(we.getAttribute("contenteditable")=="false")return;var pt=/^(pre|div|p|li|table|br)$/i.test(we.nodeName);if(!/^br$/i.test(we.nodeName)&&we.textContent.length==0)return;pt&&$();for(var st=0;st=9&&r.hasSelection&&(r.hasSelection=null),a.poll()}),Te(l,"paste",function(p){vt(o,p)||Ng(p,o)||(o.state.pasteIncoming=+new Date,a.fastPoll())});function f(p){if(!vt(o,p)){if(o.somethingSelected())Yl({lineWise:!1,text:o.getSelections()});else if(o.options.lineWiseCopyCut){var y=Lg(o);Yl({lineWise:!0,text:y.text}),p.type=="cut"?o.setSelections(y.ranges,null,Pe):(a.prevInput="",l.value=y.text.join(` +`),We(l))}else return;p.type=="cut"&&(o.state.cutIncoming=+new Date)}}Te(l,"cut",f),Te(l,"copy",f),Te(t.scroller,"paste",function(p){if(!(Si(t,p)||vt(o,p))){if(!l.dispatchEvent){o.state.pasteIncoming=+new Date,a.focus();return}var y=new Event("paste");y.clipboardData=p.clipboardData,l.dispatchEvent(y)}}),Te(t.lineSpace,"selectstart",function(p){Si(t,p)||Bt(p)}),Te(l,"compositionstart",function(){var p=o.getCursor("from");a.composing&&a.composing.range.clear(),a.composing={start:p,range:o.markText(p,o.getCursor("to"),{className:"CodeMirror-composing"})}}),Te(l,"compositionend",function(){a.composing&&(a.poll(),a.composing.range.clear(),a.composing=null)})},En.prototype.createField=function(t){this.wrapper=Dg(),this.textarea=this.wrapper.firstChild},En.prototype.screenReaderLabelChanged=function(t){t?this.textarea.setAttribute("aria-label",t):this.textarea.removeAttribute("aria-label")},En.prototype.prepareSelection=function(){var t=this.cm,r=t.display,a=t.doc,o=Tv(t);if(t.options.moveInputWithCursor){var l=Jr(t,a.sel.primary().head,"div"),f=r.wrapper.getBoundingClientRect(),p=r.lineDiv.getBoundingClientRect();o.teTop=Math.max(0,Math.min(r.wrapper.clientHeight-10,l.top+p.top-f.top)),o.teLeft=Math.max(0,Math.min(r.wrapper.clientWidth-10,l.left+p.left-f.left))}return o},En.prototype.showSelection=function(t){var r=this.cm,a=r.display;X(a.cursorDiv,t.cursors),X(a.selectionDiv,t.selection),t.teTop!=null&&(this.wrapper.style.top=t.teTop+"px",this.wrapper.style.left=t.teLeft+"px")},En.prototype.reset=function(t){if(!(this.contextMenuPending||this.composing&&t)){var r=this.cm;if(this.resetting=!0,r.somethingSelected()){this.prevInput="";var a=r.getSelection();this.textarea.value=a,r.state.focused&&We(this.textarea),d&&v>=9&&(this.hasSelection=a)}else t||(this.prevInput=this.textarea.value="",d&&v>=9&&(this.hasSelection=null));this.resetting=!1}},En.prototype.getField=function(){return this.textarea},En.prototype.supportsTouch=function(){return!1},En.prototype.focus=function(){if(this.cm.options.readOnly!="nocursor"&&(!q||Oe(this.textarea.ownerDocument)!=this.textarea))try{this.textarea.focus()}catch{}},En.prototype.blur=function(){this.textarea.blur()},En.prototype.resetPosition=function(){this.wrapper.style.top=this.wrapper.style.left=0},En.prototype.receivedFocus=function(){this.slowPoll()},En.prototype.slowPoll=function(){var t=this;this.pollingFast||this.polling.set(this.cm.options.pollInterval,function(){t.poll(),t.cm.state.focused&&t.slowPoll()})},En.prototype.fastPoll=function(){var t=!1,r=this;r.pollingFast=!0;function a(){var o=r.poll();!o&&!t?(t=!0,r.polling.set(60,a)):(r.pollingFast=!1,r.slowPoll())}r.polling.set(20,a)},En.prototype.poll=function(){var t=this,r=this.cm,a=this.textarea,o=this.prevInput;if(this.contextMenuPending||this.resetting||!r.state.focused||Fe(a)&&!o&&!this.composing||r.isReadOnly()||r.options.disableInput||r.state.keySeq)return!1;var l=a.value;if(l==o&&!r.somethingSelected())return!1;if(d&&v>=9&&this.hasSelection===l||oe&&/[\uf700-\uf7ff]/.test(l))return r.display.input.reset(),!1;if(r.doc.sel==r.display.selForContextMenu){var f=l.charCodeAt(0);if(f==8203&&!o&&(o="\u200B"),f==8666)return this.reset(),this.cm.execCommand("undo")}for(var p=0,y=Math.min(o.length,l.length);p1e3||l.indexOf(` +`)>-1?a.value=t.prevInput="":t.prevInput=l,t.composing&&(t.composing.range.clear(),t.composing.range=r.markText(t.composing.start,r.getCursor("to"),{className:"CodeMirror-composing"}))}),!0},En.prototype.ensurePolled=function(){this.pollingFast&&this.poll()&&(this.pollingFast=!1)},En.prototype.onKeyPress=function(){d&&v>=9&&(this.hasSelection=null),this.fastPoll()},En.prototype.onContextMenu=function(t){var r=this,a=r.cm,o=a.display,l=r.textarea;r.contextMenuPending&&r.contextMenuPending();var f=Co(a,t),p=o.scroller.scrollTop;if(!f||te)return;var y=a.options.resetSelectionOnContextMenu;y&&a.doc.sel.contains(f)==-1&&Hn(a,Qn)(a.doc,ji(f),Pe);var _=l.style.cssText,C=r.wrapper.style.cssText,$=r.wrapper.offsetParent.getBoundingClientRect();r.wrapper.style.cssText="position: static",l.style.cssText=`position: absolute; width: 30px; height: 30px; + top: `+(t.clientY-$.top-5)+"px; left: "+(t.clientX-$.left-5)+`px; z-index: 1000; background: `+(d?"rgba(255, 255, 255, .05)":"transparent")+`; - outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);`;var Z;k&&(Z=window.scrollY),o.input.focus(),k&&window.scrollTo(null,Z),o.input.reset(),a.somethingSelected()||(l.value=r.prevInput=" "),r.contextMenuPending=ye,o.selForContextMenu=a.doc.sel,clearTimeout(o.detectingSelectAll);function Te(){if(l.selectionStart!=null){var Ve=a.somethingSelected(),nt="\u200B"+(Ve?l.value:"");l.value="\u21DA",l.value=nt,r.prevInput=Ve?"":"\u200B",l.selectionStart=1,l.selectionEnd=nt.length,o.selForContextMenu=a.doc.sel}}function ye(){if(r.contextMenuPending==ye&&(r.contextMenuPending=!1,r.wrapper.style.cssText=C,l.style.cssText=T,d&&v<9&&o.scrollbars.setScrollTop(o.scroller.scrollTop=p),l.selectionStart!=null)){(!d||d&&v<9)&&Te();var Ve=0,nt=function(){o.selForContextMenu==a.doc.sel&&l.selectionStart==0&&l.selectionEnd>0&&r.prevInput=="\u200B"?Wn(a,eg)(a):Ve++<10?o.detectingSelectAll=setTimeout(nt,500):(o.selForContextMenu=null,o.input.reset())};o.detectingSelectAll=setTimeout(nt,200)}}if(d&&v>=9&&Te(),c){ln(t);var Be=function(){Se(window,"mouseup",Be),setTimeout(ye,20)};M(window,"mouseup",Be)}else setTimeout(ye,50)},Cn.prototype.readOnlyChanged=function(t){t||this.reset(),this.textarea.disabled=t=="nocursor",this.textarea.readOnly=!!t},Cn.prototype.setUneditable=function(){},Cn.prototype.needsContentAttribute=!1;function Uk(t,r){if(r=r?ce(r):{},r.value=t.value,!r.tabindex&&t.tabIndex&&(r.tabindex=t.tabIndex),!r.placeholder&&t.placeholder&&(r.placeholder=t.placeholder),r.autofocus==null){var a=oe();r.autofocus=a==t||t.getAttribute("autofocus")!=null&&a==document.body}function o(){t.value=m.getValue()}var l;if(t.form&&(M(t.form,"submit",o),!r.leaveSubmitMethodAlone)){var f=t.form;l=f.submit;try{var p=f.submit=function(){o(),f.submit=l,f.submit(),f.submit=p}}catch{}}r.finishInit=function(T){T.save=o,T.getTextArea=function(){return t},T.toTextArea=function(){T.toTextArea=isNaN,o(),t.parentNode.removeChild(T.getWrapperElement()),t.style.display="",t.form&&(Se(t.form,"submit",o),!r.leaveSubmitMethodAlone&&typeof t.form.submit=="function"&&(t.form.submit=l))}},t.style.display="none";var m=vn(function(T){return t.parentNode.insertBefore(T,t.nextSibling)},r);return m}function Bk(t){t.off=Se,t.on=M,t.wheelEventPixels=X_,t.Doc=dr,t.splitLines=L,t.countColumn=ke,t.findColumn=Oe,t.isWordChar=Lt,t.Pass=He,t.signal=ze,t.Line=si,t.changeEnd=Yi,t.scrollbarModel=Pv,t.Pos=de,t.cmpPos=_,t.modes=Ie,t.mimeModes=$e,t.resolveMode=vt,t.getMode=Ot,t.modeExtensions=Ct,t.extendMode=Nt,t.copyState=Jt,t.startState=bn,t.innerMode=An,t.commands=xu,t.keyMap=Ci,t.keyName=gg,t.isModifierKey=pg,t.lookupKey=da,t.normalizeKeyMap=mk,t.StringStream=Ut,t.SharedTextMarker=mu,t.TextMarker=Gi,t.LineWidget=gu,t.e_preventDefault=bt,t.e_stopPropagation=Rt,t.e_stop=ln,t.addClass=Le,t.contains=q,t.rmClass=x,t.keyNames=$i}Dk(vn),Fk(vn);var jk="iter insert remove copy getEditor constructor".split(" ");for(var $l in dr.prototype)dr.prototype.hasOwnProperty($l)&&me(jk,$l)<0&&(vn.prototype[$l]=function(t){return function(){return t.apply(this.doc,arguments)}}(dr.prototype[$l]));return wt(dr),vn.inputStyles={textarea:Cn,contenteditable:an},vn.defineMode=function(t){!vn.defaults.mode&&t!="null"&&(vn.defaults.mode=t),Ke.apply(this,arguments)},vn.defineMIME=et,vn.defineMode("null",function(){return{token:function(t){return t.skipToEnd()}}}),vn.defineMIME("text/plain","null"),vn.defineExtension=function(t,r){vn.prototype[t]=r},vn.defineDocExtension=function(t,r){dr.prototype[t]=r},vn.fromTextArea=Uk,Bk(vn),vn.version="5.65.3",vn})});var sw=yt((uw,lw)=>{(function(e){typeof uw=="object"&&typeof lw=="object"?e(wl()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)})(function(e){"use strict";var n={autoSelfClosers:{area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0,menuitem:!0},implicitlyClosed:{dd:!0,li:!0,optgroup:!0,option:!0,p:!0,rp:!0,rt:!0,tbody:!0,td:!0,tfoot:!0,th:!0,tr:!0},contextGrabbers:{dd:{dd:!0,dt:!0},dt:{dd:!0,dt:!0},li:{li:!0},option:{option:!0,optgroup:!0},optgroup:{optgroup:!0},p:{address:!0,article:!0,aside:!0,blockquote:!0,dir:!0,div:!0,dl:!0,fieldset:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,menu:!0,nav:!0,ol:!0,p:!0,pre:!0,section:!0,table:!0,ul:!0},rp:{rp:!0,rt:!0},rt:{rp:!0,rt:!0},tbody:{tbody:!0,tfoot:!0},td:{td:!0,th:!0},tfoot:{tbody:!0},th:{td:!0,th:!0},thead:{tbody:!0,tfoot:!0},tr:{tr:!0}},doNotIndent:{pre:!0},allowUnquoted:!0,allowMissing:!0,caseFold:!0},i={autoSelfClosers:{},implicitlyClosed:{},contextGrabbers:{},doNotIndent:{},allowUnquoted:!1,allowMissing:!1,allowMissingTagName:!1,caseFold:!1};e.defineMode("xml",function(u,s){var h=u.indentUnit,d={},v=s.htmlMode?n:i;for(var k in v)d[k]=v[k];for(var k in s)d[k]=s[k];var S,E;function O(y,D){function q(we){return D.tokenize=we,we(y,D)}var oe=y.next();if(oe=="<")return y.eat("!")?y.eat("[")?y.match("CDATA[")?q(Ee("atom","]]>")):null:y.match("--")?q(Ee("comment","-->")):y.match("DOCTYPE",!0,!0)?(y.eatWhile(/[\w\._\-]/),q(ne(1))):null:y.eat("?")?(y.eatWhile(/[\w\._\-]/),D.tokenize=Ee("meta","?>"),"meta"):(S=y.eat("/")?"closeTag":"openTag",D.tokenize=ie,"tag bracket");if(oe=="&"){var Le;return y.eat("#")?y.eat("x")?Le=y.eatWhile(/[a-fA-F\d]/)&&y.eat(";"):Le=y.eatWhile(/[\d]/)&&y.eat(";"):Le=y.eatWhile(/[\w\.\-:]/)&&y.eat(";"),Le?"atom":"error"}else return y.eatWhile(/[^&<]/),null}O.isInText=!0;function ie(y,D){var q=y.next();if(q==">"||q=="/"&&y.eat(">"))return D.tokenize=O,S=q==">"?"endTag":"selfcloseTag","tag bracket";if(q=="=")return S="equals",null;if(q=="<"){D.tokenize=O,D.state=pe,D.tagName=D.tagStart=null;var oe=D.tokenize(y,D);return oe?oe+" tag error":"tag error"}else return/[\'\"]/.test(q)?(D.tokenize=ve(q),D.stringStartCol=y.column(),D.tokenize(y,D)):(y.match(/^[^\s\u00a0=<>\"\']*[^\s\u00a0=<>\"\'\/]/),"word")}function ve(y){var D=function(q,oe){for(;!q.eol();)if(q.next()==y){oe.tokenize=ie;break}return"string"};return D.isInAttribute=!0,D}function Ee(y,D){return function(q,oe){for(;!q.eol();){if(q.match(D)){oe.tokenize=O;break}q.next()}return y}}function ne(y){return function(D,q){for(var oe;(oe=D.next())!=null;){if(oe=="<")return q.tokenize=ne(y+1),q.tokenize(D,q);if(oe==">")if(y==1){q.tokenize=O;break}else return q.tokenize=ne(y-1),q.tokenize(D,q)}return"meta"}}function R(y){return y&&y.toLowerCase()}function I(y,D,q){this.prev=y.context,this.tagName=D||"",this.indent=y.indented,this.startOfLine=q,(d.doNotIndent.hasOwnProperty(D)||y.context&&y.context.noIndent)&&(this.noIndent=!0)}function Y(y){y.context&&(y.context=y.context.prev)}function le(y,D){for(var q;;){if(!y.context||(q=y.context.tagName,!d.contextGrabbers.hasOwnProperty(R(q))||!d.contextGrabbers[R(q)].hasOwnProperty(R(D))))return;Y(y)}}function pe(y,D,q){return y=="openTag"?(q.tagStart=D.column(),Re):y=="closeTag"?B:pe}function Re(y,D,q){return y=="word"?(q.tagName=D.current(),E="tag",x):d.allowMissingTagName&&y=="endTag"?(E="tag bracket",x(y,D,q)):(E="error",Re)}function B(y,D,q){if(y=="word"){var oe=D.current();return q.context&&q.context.tagName!=oe&&d.implicitlyClosed.hasOwnProperty(R(q.context.tagName))&&Y(q),q.context&&q.context.tagName==oe||d.matchClosing===!1?(E="tag",c):(E="tag error",g)}else return d.allowMissingTagName&&y=="endTag"?(E="tag bracket",c(y,D,q)):(E="error",g)}function c(y,D,q){return y!="endTag"?(E="error",c):(Y(q),pe)}function g(y,D,q){return E="error",c(y,D,q)}function x(y,D,q){if(y=="word")return E="attribute",P;if(y=="endTag"||y=="selfcloseTag"){var oe=q.tagName,Le=q.tagStart;return q.tagName=q.tagStart=null,y=="selfcloseTag"||d.autoSelfClosers.hasOwnProperty(R(oe))?le(q,oe):(le(q,oe),q.context=new I(q,oe,Le==q.indented)),pe}return E="error",x}function P(y,D,q){return y=="equals"?b:(d.allowMissing||(E="error"),x(y,D,q))}function b(y,D,q){return y=="string"?U:y=="word"&&d.allowUnquoted?(E="string",x):(E="error",x(y,D,q))}function U(y,D,q){return y=="string"?U:x(y,D,q)}return{startState:function(y){var D={tokenize:O,state:pe,indented:y||0,tagName:null,tagStart:null,context:null};return y!=null&&(D.baseIndent=y),D},token:function(y,D){if(!D.tagName&&y.sol()&&(D.indented=y.indentation()),y.eatSpace())return null;S=null;var q=D.tokenize(y,D);return(q||S)&&q!="comment"&&(E=null,D.state=D.state(S||q,y,D),E&&(q=E=="error"?q+" error":E)),q},indent:function(y,D,q){var oe=y.context;if(y.tokenize.isInAttribute)return y.tagStart==y.indented?y.stringStartCol+1:y.indented+h;if(oe&&oe.noIndent)return e.Pass;if(y.tokenize!=ie&&y.tokenize!=O)return q?q.match(/^(\s*)/)[0].length:0;if(y.tagName)return d.multilineTagIndentPastTag!==!1?y.tagStart+y.tagName.length+2:y.tagStart+h*(d.multilineTagIndentFactor||1);if(d.alignCDATA&&/$/,blockCommentStart:"",configuration:d.htmlMode?"html":"xml",helperType:d.htmlMode?"html":"xml",skipAttribute:function(y){y.state==b&&(y.state=x)},xmlCurrentTag:function(y){return y.tagName?{name:y.tagName,close:y.type=="closeTag"}:null},xmlCurrentContext:function(y){for(var D=[],q=y.context;q;q=q.prev)D.push(q.tagName);return D.reverse()}}}),e.defineMIME("text/xml","xml"),e.defineMIME("application/xml","xml"),e.mimeModes.hasOwnProperty("text/html")||e.defineMIME("text/html",{name:"xml",htmlMode:!0})})});var hw=yt((fw,cw)=>{(function(e){typeof fw=="object"&&typeof cw=="object"?e(wl()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)})(function(e){"use strict";e.defineMode("javascript",function(n,i){var u=n.indentUnit,s=i.statementIndent,h=i.jsonld,d=i.json||h,v=i.trackScope!==!1,k=i.typescript,S=i.wordCharacters||/[\w$\xa1-\uffff]/,E=function(){function _(Vt){return{type:Vt,style:"keyword"}}var H=_("keyword a"),be=_("keyword b"),Ne=_("keyword c"),Ze=_("keyword d"),ft=_("operator"),Qe={type:"atom",style:"atom"};return{if:_("if"),while:H,with:H,else:be,do:be,try:be,finally:be,return:Ze,break:Ze,continue:Ze,new:_("new"),delete:Ne,void:Ne,throw:Ne,debugger:_("debugger"),var:_("var"),const:_("var"),let:_("var"),function:_("function"),catch:_("catch"),for:_("for"),switch:_("switch"),case:_("case"),default:_("default"),in:ft,typeof:ft,instanceof:ft,true:Qe,false:Qe,null:Qe,undefined:Qe,NaN:Qe,Infinity:Qe,this:_("this"),class:_("class"),super:_("atom"),yield:Ne,export:_("export"),import:_("import"),extends:Ne,await:Ne}}(),O=/[+\-*&%=<>!?|~^@]/,ie=/^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/;function ve(_){for(var H=!1,be,Ne=!1;(be=_.next())!=null;){if(!H){if(be=="/"&&!Ne)return;be=="["?Ne=!0:Ne&&be=="]"&&(Ne=!1)}H=!H&&be=="\\"}}var Ee,ne;function R(_,H,be){return Ee=_,ne=be,H}function I(_,H){var be=_.next();if(be=='"'||be=="'")return H.tokenize=Y(be),H.tokenize(_,H);if(be=="."&&_.match(/^\d[\d_]*(?:[eE][+\-]?[\d_]+)?/))return R("number","number");if(be=="."&&_.match(".."))return R("spread","meta");if(/[\[\]{}\(\),;\:\.]/.test(be))return R(be);if(be=="="&&_.eat(">"))return R("=>","operator");if(be=="0"&&_.match(/^(?:x[\dA-Fa-f_]+|o[0-7_]+|b[01_]+)n?/))return R("number","number");if(/\d/.test(be))return _.match(/^[\d_]*(?:n|(?:\.[\d_]*)?(?:[eE][+\-]?[\d_]+)?)?/),R("number","number");if(be=="/")return _.eat("*")?(H.tokenize=le,le(_,H)):_.eat("/")?(_.skipToEnd(),R("comment","comment")):de(_,H,1)?(ve(_),_.match(/^\b(([gimyus])(?![gimyus]*\2))+\b/),R("regexp","string-2")):(_.eat("="),R("operator","operator",_.current()));if(be=="`")return H.tokenize=pe,pe(_,H);if(be=="#"&&_.peek()=="!")return _.skipToEnd(),R("meta","meta");if(be=="#"&&_.eatWhile(S))return R("variable","property");if(be=="<"&&_.match("!--")||be=="-"&&_.match("->")&&!/\S/.test(_.string.slice(0,_.start)))return _.skipToEnd(),R("comment","comment");if(O.test(be))return(be!=">"||!H.lexical||H.lexical.type!=">")&&(_.eat("=")?(be=="!"||be=="=")&&_.eat("="):/[<>*+\-|&?]/.test(be)&&(_.eat(be),be==">"&&_.eat(be))),be=="?"&&_.eat(".")?R("."):R("operator","operator",_.current());if(S.test(be)){_.eatWhile(S);var Ne=_.current();if(H.lastType!="."){if(E.propertyIsEnumerable(Ne)){var Ze=E[Ne];return R(Ze.type,Ze.style,Ne)}if(Ne=="async"&&_.match(/^(\s|\/\*([^*]|\*(?!\/))*?\*\/)*[\[\(\w]/,!1))return R("async","keyword",Ne)}return R("variable","variable",Ne)}}function Y(_){return function(H,be){var Ne=!1,Ze;if(h&&H.peek()=="@"&&H.match(ie))return be.tokenize=I,R("jsonld-keyword","meta");for(;(Ze=H.next())!=null&&!(Ze==_&&!Ne);)Ne=!Ne&&Ze=="\\";return Ne||(be.tokenize=I),R("string","string")}}function le(_,H){for(var be=!1,Ne;Ne=_.next();){if(Ne=="/"&&be){H.tokenize=I;break}be=Ne=="*"}return R("comment","comment")}function pe(_,H){for(var be=!1,Ne;(Ne=_.next())!=null;){if(!be&&(Ne=="`"||Ne=="$"&&_.eat("{"))){H.tokenize=I;break}be=!be&&Ne=="\\"}return R("quasi","string-2",_.current())}var Re="([{}])";function B(_,H){H.fatArrowAt&&(H.fatArrowAt=null);var be=_.string.indexOf("=>",_.start);if(!(be<0)){if(k){var Ne=/:\s*(?:\w+(?:<[^>]*>|\[\])?|\{[^}]*\})\s*$/.exec(_.string.slice(_.start,be));Ne&&(be=Ne.index)}for(var Ze=0,ft=!1,Qe=be-1;Qe>=0;--Qe){var Vt=_.string.charAt(Qe),sn=Re.indexOf(Vt);if(sn>=0&&sn<3){if(!Ze){++Qe;break}if(--Ze==0){Vt=="("&&(ft=!0);break}}else if(sn>=3&&sn<6)++Ze;else if(S.test(Vt))ft=!0;else if(/["'\/`]/.test(Vt))for(;;--Qe){if(Qe==0)return;var on=_.string.charAt(Qe-1);if(on==Vt&&_.string.charAt(Qe-2)!="\\"){Qe--;break}}else if(ft&&!Ze){++Qe;break}}ft&&!Ze&&(H.fatArrowAt=Qe)}}var c={atom:!0,number:!0,variable:!0,string:!0,regexp:!0,this:!0,import:!0,"jsonld-keyword":!0};function g(_,H,be,Ne,Ze,ft){this.indented=_,this.column=H,this.type=be,this.prev=Ze,this.info=ft,Ne!=null&&(this.align=Ne)}function x(_,H){if(!v)return!1;for(var be=_.localVars;be;be=be.next)if(be.name==H)return!0;for(var Ne=_.context;Ne;Ne=Ne.prev)for(var be=Ne.vars;be;be=be.next)if(be.name==H)return!0}function P(_,H,be,Ne,Ze){var ft=_.cc;for(b.state=_,b.stream=Ze,b.marked=null,b.cc=ft,b.style=H,_.lexical.hasOwnProperty("align")||(_.lexical.align=!0);;){var Qe=ft.length?ft.pop():d?ge:Je;if(Qe(be,Ne)){for(;ft.length&&ft[ft.length-1].lex;)ft.pop()();return b.marked?b.marked:be=="variable"&&x(_,Ne)?"variable-2":H}}}var b={state:null,column:null,marked:null,cc:null};function U(){for(var _=arguments.length-1;_>=0;_--)b.cc.push(arguments[_])}function y(){return U.apply(null,arguments),!0}function D(_,H){for(var be=H;be;be=be.next)if(be.name==_)return!0;return!1}function q(_){var H=b.state;if(b.marked="def",!!v){if(H.context){if(H.lexical.info=="var"&&H.context&&H.context.block){var be=oe(_,H.context);if(be!=null){H.context=be;return}}else if(!D(_,H.localVars)){H.localVars=new re(_,H.localVars);return}}i.globalVars&&!D(_,H.globalVars)&&(H.globalVars=new re(_,H.globalVars))}}function oe(_,H){if(H)if(H.block){var be=oe(_,H.prev);return be?be==H.prev?H:new we(be,H.vars,!0):null}else return D(_,H.vars)?H:new we(H.prev,new re(_,H.vars),!1);else return null}function Le(_){return _=="public"||_=="private"||_=="protected"||_=="abstract"||_=="readonly"}function we(_,H,be){this.prev=_,this.vars=H,this.block=be}function re(_,H){this.name=_,this.next=H}var We=new re("this",new re("arguments",null));function ce(){b.state.context=new we(b.state.context,b.state.localVars,!1),b.state.localVars=We}function ke(){b.state.context=new we(b.state.context,b.state.localVars,!0),b.state.localVars=null}ce.lex=ke.lex=!0;function Ce(){b.state.localVars=b.state.context.vars,b.state.context=b.state.context.prev}Ce.lex=!0;function me(_,H){var be=function(){var Ne=b.state,Ze=Ne.indented;if(Ne.lexical.type=="stat")Ze=Ne.lexical.indented;else for(var ft=Ne.lexical;ft&&ft.type==")"&&ft.align;ft=ft.prev)Ze=ft.indented;Ne.lexical=new g(Ze,b.stream.column(),_,null,Ne.lexical,H)};return be.lex=!0,be}function Ue(){var _=b.state;_.lexical.prev&&(_.lexical.type==")"&&(_.indented=_.lexical.indented),_.lexical=_.lexical.prev)}Ue.lex=!0;function He(_){function H(be){return be==_?y():_==";"||be=="}"||be==")"||be=="]"?U():y(H)}return H}function Je(_,H){return _=="var"?y(me("vardef",H),K,He(";"),Ue):_=="keyword a"?y(me("form"),Q,Je,Ue):_=="keyword b"?y(me("form"),Je,Ue):_=="keyword d"?b.stream.match(/^\s*$/,!1)?y():y(me("stat"),fe,He(";"),Ue):_=="debugger"?y(He(";")):_=="{"?y(me("}"),ke,Xe,Ue,Ce):_==";"?y():_=="if"?(b.state.lexical.info=="else"&&b.state.cc[b.state.cc.length-1]==Ue&&b.state.cc.pop()(),y(me("form"),Q,Je,Ue,V)):_=="function"?y(Ie):_=="for"?y(me("form"),ke,he,Je,Ce,Ue):_=="class"||k&&H=="interface"?(b.marked="keyword",y(me("form",_=="class"?_:H),Ot,Ue)):_=="variable"?k&&H=="declare"?(b.marked="keyword",y(Je)):k&&(H=="module"||H=="enum"||H=="type")&&b.stream.match(/^\s*\w/,!1)?(b.marked="keyword",H=="enum"?y(G):H=="type"?y(Ke,He("operator"),ze,He(";")):y(me("form"),Pe,He("{"),me("}"),Xe,Ue,Ue)):k&&H=="namespace"?(b.marked="keyword",y(me("form"),ge,Je,Ue)):k&&H=="abstract"?(b.marked="keyword",y(Je)):y(me("stat"),Zt):_=="switch"?y(me("form"),Q,He("{"),me("}","switch"),ke,Xe,Ue,Ue,Ce):_=="case"?y(ge,He(":")):_=="default"?y(He(":")):_=="catch"?y(me("form"),ce,te,Je,Ue,Ce):_=="export"?y(me("stat"),An,Ue):_=="import"?y(me("stat"),Ut,Ue):_=="async"?y(Je):H=="@"?y(ge,Je):U(me("stat"),ge,He(";"),Ue)}function te(_){if(_=="(")return y(et,He(")"))}function ge(_,H){return ee(_,H,!1)}function Oe(_,H){return ee(_,H,!0)}function Q(_){return _!="("?U():y(me(")"),fe,He(")"),Ue)}function ee(_,H,be){if(b.state.fatArrowAt==b.stream.start){var Ne=be?Lt:Gt;if(_=="(")return y(ce,me(")"),j(et,")"),Ue,He("=>"),Ne,Ce);if(_=="variable")return U(ce,Pe,He("=>"),Ne,Ce)}var Ze=be?at:De;return c.hasOwnProperty(_)?y(Ze):_=="function"?y(Ie,Ze):_=="class"||k&&H=="interface"?(b.marked="keyword",y(me("form"),vt,Ue)):_=="keyword c"||_=="async"?y(be?Oe:ge):_=="("?y(me(")"),fe,He(")"),Ue,Ze):_=="operator"||_=="spread"?y(be?Oe:ge):_=="["?y(me("]"),St,Ue,Ze):_=="{"?Ae($t,"}",null,Ze):_=="quasi"?U(dt,Ze):_=="new"?y(Et(be)):y()}function fe(_){return _.match(/[;\}\)\],]/)?U():U(ge)}function De(_,H){return _==","?y(fe):at(_,H,!1)}function at(_,H,be){var Ne=be==!1?De:at,Ze=be==!1?ge:Oe;if(_=="=>")return y(ce,be?Lt:Gt,Ce);if(_=="operator")return/\+\+|--/.test(H)||k&&H=="!"?y(Ne):k&&H=="<"&&b.stream.match(/^([^<>]|<[^<>]*>)*>\s*\(/,!1)?y(me(">"),j(ze,">"),Ue,Ne):H=="?"?y(ge,He(":"),Ze):y(Ze);if(_=="quasi")return U(dt,Ne);if(_!=";"){if(_=="(")return Ae(Oe,")","call",Ne);if(_==".")return y(pn,Ne);if(_=="[")return y(me("]"),fe,He("]"),Ue,Ne);if(k&&H=="as")return b.marked="keyword",y(ze,Ne);if(_=="regexp")return b.state.lastType=b.marked="operator",b.stream.backUp(b.stream.pos-b.stream.start-1),y(Ze)}}function dt(_,H){return _!="quasi"?U():H.slice(H.length-2)!="${"?y(dt):y(fe,Yt)}function Yt(_){if(_=="}")return b.marked="string-2",b.state.tokenize=pe,y(dt)}function Gt(_){return B(b.stream,b.state),U(_=="{"?Je:ge)}function Lt(_){return B(b.stream,b.state),U(_=="{"?Je:Oe)}function Et(_){return function(H){return H=="."?y(_?zt:Bt):H=="variable"&&k?y(ln,_?at:De):U(_?Oe:ge)}}function Bt(_,H){if(H=="target")return b.marked="keyword",y(De)}function zt(_,H){if(H=="target")return b.marked="keyword",y(at)}function Zt(_){return _==":"?y(Ue,Je):U(De,He(";"),Ue)}function pn(_){if(_=="variable")return b.marked="property",y()}function $t(_,H){if(_=="async")return b.marked="property",y($t);if(_=="variable"||b.style=="keyword"){if(b.marked="property",H=="get"||H=="set")return y(kn);var be;return k&&b.state.fatArrowAt==b.stream.start&&(be=b.stream.match(/^\s*:\s*/,!1))&&(b.state.fatArrowAt=b.stream.pos+be[0].length),y(A)}else{if(_=="number"||_=="string")return b.marked=h?"property":b.style+" property",y(A);if(_=="jsonld-keyword")return y(A);if(k&&Le(H))return b.marked="keyword",y($t);if(_=="[")return y(ge,je,He("]"),A);if(_=="spread")return y(Oe,A);if(H=="*")return b.marked="keyword",y($t);if(_==":")return U(A)}}function kn(_){return _!="variable"?U(A):(b.marked="property",y(Ie))}function A(_){if(_==":")return y(Oe);if(_=="(")return U(Ie)}function j(_,H,be){function Ne(Ze,ft){if(be?be.indexOf(Ze)>-1:Ze==","){var Qe=b.state.lexical;return Qe.info=="call"&&(Qe.pos=(Qe.pos||0)+1),y(function(Vt,sn){return Vt==H||sn==H?U():U(_)},Ne)}return Ze==H||ft==H?y():be&&be.indexOf(";")>-1?U(_):y(He(H))}return function(Ze,ft){return Ze==H||ft==H?y():U(_,Ne)}}function Ae(_,H,be){for(var Ne=3;Ne"),ze);if(_=="quasi")return U(wt,Wt)}function tt(_){if(_=="=>")return y(ze)}function ct(_){return _.match(/[\}\)\]]/)?y():_==","||_==";"?y(ct):U(ht,ct)}function ht(_,H){if(_=="variable"||b.style=="keyword")return b.marked="property",y(ht);if(H=="?"||_=="number"||_=="string")return y(ht);if(_==":")return y(ze);if(_=="[")return y(He("variable"),M,He("]"),ht);if(_=="(")return U($e,ht);if(!_.match(/[;\}\)\],]/))return y()}function wt(_,H){return _!="quasi"?U():H.slice(H.length-2)!="${"?y(wt):y(ze,bt)}function bt(_){if(_=="}")return b.marked="string-2",b.state.tokenize=pe,y(wt)}function Rt(_,H){return _=="variable"&&b.stream.match(/^\s*[?:]/,!1)||H=="?"?y(Rt):_==":"?y(ze):_=="spread"?y(Rt):U(ze)}function Wt(_,H){if(H=="<")return y(me(">"),j(ze,">"),Ue,Wt);if(H=="|"||_=="."||H=="&")return y(ze);if(_=="[")return y(ze,He("]"),Wt);if(H=="extends"||H=="implements")return b.marked="keyword",y(ze);if(H=="?")return y(ze,He(":"),ze)}function ln(_,H){if(H=="<")return y(me(">"),j(ze,">"),Ue,Wt)}function nn(){return U(ze,gn)}function gn(_,H){if(H=="=")return y(ze)}function K(_,H){return H=="enum"?(b.marked="keyword",y(G)):U(Pe,je,N,L)}function Pe(_,H){if(k&&Le(H))return b.marked="keyword",y(Pe);if(_=="variable")return q(H),y();if(_=="spread")return y(Pe);if(_=="[")return Ae($,"]");if(_=="{")return Ae(F,"}")}function F(_,H){return _=="variable"&&!b.stream.match(/^\s*:/,!1)?(q(H),y(N)):(_=="variable"&&(b.marked="property"),_=="spread"?y(Pe):_=="}"?U():_=="["?y(ge,He("]"),He(":"),F):y(He(":"),Pe,N))}function $(){return U(Pe,N)}function N(_,H){if(H=="=")return y(Oe)}function L(_){if(_==",")return y(K)}function V(_,H){if(_=="keyword b"&&H=="else")return y(me("form","else"),Je,Ue)}function he(_,H){if(H=="await")return y(he);if(_=="(")return y(me(")"),_e,Ue)}function _e(_){return _=="var"?y(K,Fe):_=="variable"?y(Fe):U(Fe)}function Fe(_,H){return _==")"?y():_==";"?y(Fe):H=="in"||H=="of"?(b.marked="keyword",y(ge,Fe)):U(ge,Fe)}function Ie(_,H){if(H=="*")return b.marked="keyword",y(Ie);if(_=="variable")return q(H),y(Ie);if(_=="(")return y(ce,me(")"),j(et,")"),Ue,J,Je,Ce);if(k&&H=="<")return y(me(">"),j(nn,">"),Ue,Ie)}function $e(_,H){if(H=="*")return b.marked="keyword",y($e);if(_=="variable")return q(H),y($e);if(_=="(")return y(ce,me(")"),j(et,")"),Ue,J,Ce);if(k&&H=="<")return y(me(">"),j(nn,">"),Ue,$e)}function Ke(_,H){if(_=="keyword"||_=="variable")return b.marked="type",y(Ke);if(H=="<")return y(me(">"),j(nn,">"),Ue)}function et(_,H){return H=="@"&&y(ge,et),_=="spread"?y(et):k&&Le(H)?(b.marked="keyword",y(et)):k&&_=="this"?y(je,N):U(Pe,je,N)}function vt(_,H){return _=="variable"?Ot(_,H):Ct(_,H)}function Ot(_,H){if(_=="variable")return q(H),y(Ct)}function Ct(_,H){if(H=="<")return y(me(">"),j(nn,">"),Ue,Ct);if(H=="extends"||H=="implements"||k&&_==",")return H=="implements"&&(b.marked="keyword"),y(k?ze:ge,Ct);if(_=="{")return y(me("}"),Nt,Ue)}function Nt(_,H){if(_=="async"||_=="variable"&&(H=="static"||H=="get"||H=="set"||k&&Le(H))&&b.stream.match(/^\s+[\w$\xa1-\uffff]/,!1))return b.marked="keyword",y(Nt);if(_=="variable"||b.style=="keyword")return b.marked="property",y(Jt,Nt);if(_=="number"||_=="string")return y(Jt,Nt);if(_=="[")return y(ge,je,He("]"),Jt,Nt);if(H=="*")return b.marked="keyword",y(Nt);if(k&&_=="(")return U($e,Nt);if(_==";"||_==",")return y(Nt);if(_=="}")return y();if(H=="@")return y(ge,Nt)}function Jt(_,H){if(H=="!"||H=="?")return y(Jt);if(_==":")return y(ze,N);if(H=="=")return y(Oe);var be=b.state.lexical.prev,Ne=be&&be.info=="interface";return U(Ne?$e:Ie)}function An(_,H){return H=="*"?(b.marked="keyword",y(Xt,He(";"))):H=="default"?(b.marked="keyword",y(ge,He(";"))):_=="{"?y(j(bn,"}"),Xt,He(";")):U(Je)}function bn(_,H){if(H=="as")return b.marked="keyword",y(He("variable"));if(_=="variable")return U(Oe,bn)}function Ut(_){return _=="string"?y():_=="("?U(ge):_=="."?U(De):U(st,Tt,Xt)}function st(_,H){return _=="{"?Ae(st,"}"):(_=="variable"&&q(H),H=="*"&&(b.marked="keyword"),y(rn))}function Tt(_){if(_==",")return y(st,Tt)}function rn(_,H){if(H=="as")return b.marked="keyword",y(st)}function Xt(_,H){if(H=="from")return b.marked="keyword",y(ge)}function St(_){return _=="]"?y():U(j(Oe,"]"))}function G(){return U(me("form"),Pe,He("{"),me("}"),j(se,"}"),Ue,Ue)}function se(){return U(Pe,N)}function qe(_,H){return _.lastType=="operator"||_.lastType==","||O.test(H.charAt(0))||/[,.]/.test(H.charAt(0))}function de(_,H,be){return H.tokenize==I&&/^(?:operator|sof|keyword [bcd]|case|new|export|default|spread|[\[{}\(,;:]|=>)$/.test(H.lastType)||H.lastType=="quasi"&&/\{\s*$/.test(_.string.slice(0,_.pos-(be||0)))}return{startState:function(_){var H={tokenize:I,lastType:"sof",cc:[],lexical:new g((_||0)-u,0,"block",!1),localVars:i.localVars,context:i.localVars&&new we(null,null,!1),indented:_||0};return i.globalVars&&typeof i.globalVars=="object"&&(H.globalVars=i.globalVars),H},token:function(_,H){if(_.sol()&&(H.lexical.hasOwnProperty("align")||(H.lexical.align=!1),H.indented=_.indentation(),B(_,H)),H.tokenize!=le&&_.eatSpace())return null;var be=H.tokenize(_,H);return Ee=="comment"?be:(H.lastType=Ee=="operator"&&(ne=="++"||ne=="--")?"incdec":Ee,P(H,be,Ee,ne,_))},indent:function(_,H){if(_.tokenize==le||_.tokenize==pe)return e.Pass;if(_.tokenize!=I)return 0;var be=H&&H.charAt(0),Ne=_.lexical,Ze;if(!/^\s*else\b/.test(H))for(var ft=_.cc.length-1;ft>=0;--ft){var Qe=_.cc[ft];if(Qe==Ue)Ne=Ne.prev;else if(Qe!=V&&Qe!=Ce)break}for(;(Ne.type=="stat"||Ne.type=="form")&&(be=="}"||(Ze=_.cc[_.cc.length-1])&&(Ze==De||Ze==at)&&!/^[,\.=+\-*:?[\(]/.test(H));)Ne=Ne.prev;s&&Ne.type==")"&&Ne.prev.type=="stat"&&(Ne=Ne.prev);var Vt=Ne.type,sn=be==Vt;return Vt=="vardef"?Ne.indented+(_.lastType=="operator"||_.lastType==","?Ne.info.length+1:0):Vt=="form"&&be=="{"?Ne.indented:Vt=="form"?Ne.indented+u:Vt=="stat"?Ne.indented+(qe(_,H)?s||u:0):Ne.info=="switch"&&!sn&&i.doubleIndentSwitch!=!1?Ne.indented+(/^(?:case|default)\b/.test(H)?u:2*u):Ne.align?Ne.column+(sn?0:1):Ne.indented+(sn?0:u)},electricInput:/^\s*(?:case .*?:|default:|\{|\})$/,blockCommentStart:d?null:"/*",blockCommentEnd:d?null:"*/",blockCommentContinue:d?null:" * ",lineComment:d?null:"//",fold:"brace",closeBrackets:"()[]{}''\"\"``",helperType:d?"json":"javascript",jsonldMode:h,jsonMode:d,expressionAllowed:de,skipExpression:function(_){P(_,"atom","atom","true",new e.StringStream("",2,null))}}}),e.registerHelper("wordChars","javascript",/[\w$]/),e.defineMIME("text/javascript","javascript"),e.defineMIME("text/ecmascript","javascript"),e.defineMIME("application/javascript","javascript"),e.defineMIME("application/x-javascript","javascript"),e.defineMIME("application/ecmascript","javascript"),e.defineMIME("application/json",{name:"javascript",json:!0}),e.defineMIME("application/x-json",{name:"javascript",json:!0}),e.defineMIME("application/manifest+json",{name:"javascript",json:!0}),e.defineMIME("application/ld+json",{name:"javascript",jsonld:!0}),e.defineMIME("text/typescript",{name:"javascript",typescript:!0}),e.defineMIME("application/typescript",{name:"javascript",typescript:!0})})});var vw=yt((dw,pw)=>{(function(e){typeof dw=="object"&&typeof pw=="object"?e(wl(),sw(),hw()):typeof define=="function"&&define.amd?define(["../../lib/codemirror","../xml/xml","../javascript/javascript"],e):e(CodeMirror)})(function(e){"use strict";function n(u,s,h,d){this.state=u,this.mode=s,this.depth=h,this.prev=d}function i(u){return new n(e.copyState(u.mode,u.state),u.mode,u.depth,u.prev&&i(u.prev))}e.defineMode("jsx",function(u,s){var h=e.getMode(u,{name:"xml",allowMissing:!0,multilineTagIndentPastTag:!1,allowMissingTagName:!0}),d=e.getMode(u,s&&s.base||"javascript");function v(O){var ie=O.tagName;O.tagName=null;var ve=h.indent(O,"","");return O.tagName=ie,ve}function k(O,ie){return ie.context.mode==h?S(O,ie,ie.context):E(O,ie,ie.context)}function S(O,ie,ve){if(ve.depth==2)return O.match(/^.*?\*\//)?ve.depth=1:O.skipToEnd(),"comment";if(O.peek()=="{"){h.skipAttribute(ve.state);var Ee=v(ve.state),ne=ve.state.context;if(ne&&O.match(/^[^>]*>\s*$/,!1)){for(;ne.prev&&!ne.startOfLine;)ne=ne.prev;ne.startOfLine?Ee-=u.indentUnit:ve.prev.state.lexical&&(Ee=ve.prev.state.lexical.indented)}else ve.depth==1&&(Ee+=u.indentUnit);return ie.context=new n(e.startState(d,Ee),d,0,ie.context),null}if(ve.depth==1){if(O.peek()=="<")return h.skipAttribute(ve.state),ie.context=new n(e.startState(h,v(ve.state)),h,0,ie.context),null;if(O.match("//"))return O.skipToEnd(),"comment";if(O.match("/*"))return ve.depth=2,k(O,ie)}var R=h.token(O,ve.state),I=O.current(),Y;return/\btag\b/.test(R)?/>$/.test(I)?ve.state.context?ve.depth=0:ie.context=ie.context.prev:/^-1&&O.backUp(I.length-Y),R}function E(O,ie,ve){if(O.peek()=="<"&&d.expressionAllowed(O,ve.state))return ie.context=new n(e.startState(h,d.indent(ve.state,"","")),h,0,ie.context),d.skipExpression(ve.state),null;var Ee=d.token(O,ve.state);if(!Ee&&ve.depth!=null){var ne=O.current();ne=="{"?ve.depth++:ne=="}"&&--ve.depth==0&&(ie.context=ie.context.prev)}return Ee}return{startState:function(){return{context:new n(e.startState(d),d)}},copyState:function(O){return{context:i(O.context)}},token:k,indent:function(O,ie,ve){return O.context.mode.indent(O.context.state,ie,ve)},innerMode:function(O){return O.context}}},"xml","javascript"),e.defineMIME("text/jsx","jsx"),e.defineMIME("text/typescript-jsx",{name:"jsx",base:{name:"javascript",typescript:!0}})})});var xw=yt((aE,ww)=>{ww.exports=[">",">>","#","%"]});var kw=yt((uE,_w)=>{function uC({trigger:e="",text:n}){let i=n.slice(e.length).match(/(^\S*\((.*?)\)|^\S*)/),u=n.slice(e.length+i[1].length+1),s=i[2],h=s?s.split(","):[],d=i[1].slice(0,i[1].length-(typeof s!="undefined"?s.length+2:0)),v=d.split(".");return{path:d,list:v,params:h,root:v[0],input:u}}_w.exports={parseCommand:uC}});var Nw=yt((yE,Ew)=>{var Mw=6e4;Ew.exports=function(n){var i=new Date(n.getTime()),u=i.getTimezoneOffset();i.setSeconds(0,0);var s=i.getTime()%Mw;return u*Mw+s}});var Ip=yt((wE,Pw)=>{function fC(e){return e instanceof Date}Pw.exports=fC});var xi=yt((xE,Ow)=>{var Rp=Nw(),cC=Ip(),Fp=36e5,zp=6e4,hC=2,dC=/[T ]/,pC=/:/,vC=/^(\d{2})$/,gC=[/^([+-]\d{2})$/,/^([+-]\d{3})$/,/^([+-]\d{4})$/],mC=/^(\d{4})/,yC=[/^([+-]\d{4})/,/^([+-]\d{5})/,/^([+-]\d{6})/],wC=/^-(\d{2})$/,xC=/^-?(\d{3})$/,_C=/^-?(\d{2})-?(\d{2})$/,kC=/^-?W(\d{2})$/,TC=/^-?W(\d{2})-?(\d{1})$/,SC=/^(\d{2}([.,]\d*)?)$/,bC=/^(\d{2}):?(\d{2}([.,]\d*)?)$/,CC=/^(\d{2}):?(\d{2}):?(\d{2}([.,]\d*)?)$/,MC=/([Z+-].*)$/,EC=/^(Z)$/,NC=/^([+-])(\d{2})$/,PC=/^([+-])(\d{2}):?(\d{2})$/;function LC(e,n){if(cC(e))return new Date(e.getTime());if(typeof e!="string")return new Date(e);var i=n||{},u=i.additionalDigits;u==null?u=hC:u=Number(u);var s=OC(e),h=DC(s.date,u),d=h.year,v=h.restDateString,k=AC(v,d);if(k){var S=k.getTime(),E=0,O;if(s.time&&(E=IC(s.time)),s.timezone)O=RC(s.timezone)*zp;else{var ie=S+E,ve=new Date(ie);O=Rp(ve);var Ee=new Date(ie);Ee.setDate(ve.getDate()+1);var ne=Rp(Ee)-Rp(ve);ne>0&&(O+=ne)}return new Date(S+E+O)}else return new Date(e)}function OC(e){var n={},i=e.split(dC),u;if(pC.test(i[0])?(n.date=null,u=i[0]):(n.date=i[0],u=i[1]),u){var s=MC.exec(u);s?(n.time=u.replace(s[1],""),n.timezone=s[1]):n.time=u}return n}function DC(e,n){var i=gC[n],u=yC[n],s;if(s=mC.exec(e)||u.exec(e),s){var h=s[1];return{year:parseInt(h,10),restDateString:e.slice(h.length)}}if(s=vC.exec(e)||i.exec(e),s){var d=s[1];return{year:parseInt(d,10)*100,restDateString:e.slice(d.length)}}return{year:null}}function AC(e,n){if(n===null)return null;var i,u,s,h;if(e.length===0)return u=new Date(0),u.setUTCFullYear(n),u;if(i=wC.exec(e),i)return u=new Date(0),s=parseInt(i[1],10)-1,u.setUTCFullYear(n,s),u;if(i=xC.exec(e),i){u=new Date(0);var d=parseInt(i[1],10);return u.setUTCFullYear(n,0,d),u}if(i=_C.exec(e),i){u=new Date(0),s=parseInt(i[1],10)-1;var v=parseInt(i[2],10);return u.setUTCFullYear(n,s,v),u}if(i=kC.exec(e),i)return h=parseInt(i[1],10)-1,Lw(n,h);if(i=TC.exec(e),i){h=parseInt(i[1],10)-1;var k=parseInt(i[2],10)-1;return Lw(n,h,k)}return null}function IC(e){var n,i,u;if(n=SC.exec(e),n)return i=parseFloat(n[1].replace(",",".")),i%24*Fp;if(n=bC.exec(e),n)return i=parseInt(n[1],10),u=parseFloat(n[2].replace(",",".")),i%24*Fp+u*zp;if(n=CC.exec(e),n){i=parseInt(n[1],10),u=parseInt(n[2],10);var s=parseFloat(n[3].replace(",","."));return i%24*Fp+u*zp+s*1e3}return null}function RC(e){var n,i;return n=EC.exec(e),n?0:(n=NC.exec(e),n?(i=parseInt(n[2],10)*60,n[1]==="+"?-i:i):(n=PC.exec(e),n?(i=parseInt(n[2],10)*60+parseInt(n[3],10),n[1]==="+"?-i:i):0))}function Lw(e,n,i){n=n||0,i=i||0;var u=new Date(0);u.setUTCFullYear(e,0,4);var s=u.getUTCDay()||7,h=n*7+i+1-s;return u.setUTCDate(u.getUTCDate()+h),u}Ow.exports=LC});var Aw=yt((_E,Dw)=>{var FC=xi();function zC(e){var n=FC(e),i=new Date(0);return i.setFullYear(n.getFullYear(),0,1),i.setHours(0,0,0,0),i}Dw.exports=zC});var Rw=yt((kE,Iw)=>{var HC=xi();function WC(e){var n=HC(e);return n.setHours(0,0,0,0),n}Iw.exports=WC});var Ww=yt((TE,Hw)=>{var Fw=Rw(),zw=6e4,UC=864e5;function BC(e,n){var i=Fw(e),u=Fw(n),s=i.getTime()-i.getTimezoneOffset()*zw,h=u.getTime()-u.getTimezoneOffset()*zw;return Math.round((s-h)/UC)}Hw.exports=BC});var Bw=yt((SE,Uw)=>{var jC=xi(),YC=Aw(),qC=Ww();function GC(e){var n=jC(e),i=qC(n,YC(n)),u=i+1;return u}Uw.exports=GC});var Yw=yt((bE,jw)=>{var $C=xi();function VC(e,n){var i=n&&Number(n.weekStartsOn)||0,u=$C(e),s=u.getDay(),h=(s{var XC=Yw();function KC(e){return XC(e,{weekStartsOn:1})}qw.exports=KC});var Hp=yt((ME,$w)=>{var QC=xi(),Gw=Lf();function ZC(e){var n=QC(e),i=n.getFullYear(),u=new Date(0);u.setFullYear(i+1,0,4),u.setHours(0,0,0,0);var s=Gw(u),h=new Date(0);h.setFullYear(i,0,4),h.setHours(0,0,0,0);var d=Gw(h);return n.getTime()>=s.getTime()?i+1:n.getTime()>=d.getTime()?i:i-1}$w.exports=ZC});var Xw=yt((EE,Vw)=>{var JC=Hp(),eM=Lf();function tM(e){var n=JC(e),i=new Date(0);i.setFullYear(n,0,4),i.setHours(0,0,0,0);var u=eM(i);return u}Vw.exports=tM});var Qw=yt((NE,Kw)=>{var nM=xi(),rM=Lf(),iM=Xw(),oM=6048e5;function aM(e){var n=nM(e),i=rM(n).getTime()-iM(n).getTime();return Math.round(i/oM)+1}Kw.exports=aM});var Jw=yt((PE,Zw)=>{var uM=Ip();function lM(e){if(uM(e))return!isNaN(e);throw new TypeError(toString.call(e)+" is not an instance of Date")}Zw.exports=lM});var tx=yt((LE,ex)=>{function sM(){var e={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}};function n(i,u,s){s=s||{};var h;return typeof e[i]=="string"?h=e[i]:u===1?h=e[i].one:h=e[i].other.replace("{{count}}",u),s.addSuffix?s.comparison>0?"in "+h:h+" ago":h}return{localize:n}}ex.exports=sM});var rx=yt((OE,nx)=>{var fM=["M","MM","Q","D","DD","DDD","DDDD","d","E","W","WW","YY","YYYY","GG","GGGG","H","HH","h","hh","m","mm","s","ss","S","SS","SSS","Z","ZZ","X","x"];function cM(e){var n=[];for(var i in e)e.hasOwnProperty(i)&&n.push(i);var u=fM.concat(n).sort().reverse(),s=new RegExp("(\\[[^\\[]*\\])|(\\\\)?("+u.join("|")+"|.)","g");return s}nx.exports=cM});var ox=yt((DE,ix)=>{var hM=rx();function dM(){var e=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],n=["January","February","March","April","May","June","July","August","September","October","November","December"],i=["Su","Mo","Tu","We","Th","Fr","Sa"],u=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],s=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],h=["AM","PM"],d=["am","pm"],v=["a.m.","p.m."],k={MMM:function(E){return e[E.getMonth()]},MMMM:function(E){return n[E.getMonth()]},dd:function(E){return i[E.getDay()]},ddd:function(E){return u[E.getDay()]},dddd:function(E){return s[E.getDay()]},A:function(E){return E.getHours()/12>=1?h[1]:h[0]},a:function(E){return E.getHours()/12>=1?d[1]:d[0]},aa:function(E){return E.getHours()/12>=1?v[1]:v[0]}},S=["M","D","DDD","d","Q","W"];return S.forEach(function(E){k[E+"o"]=function(O,ie){return pM(ie[E](O))}}),{formatters:k,formattingTokensRegExp:hM(k)}}function pM(e){var n=e%100;if(n>20||n<10)switch(n%10){case 1:return e+"st";case 2:return e+"nd";case 3:return e+"rd"}return e+"th"}ix.exports=dM});var ux=yt((AE,ax)=>{var vM=tx(),gM=ox();ax.exports={distanceInWords:vM(),format:gM()}});var px=yt((IE,dx)=>{var lx=Bw(),sx=Qw(),fx=Hp(),mM=xi(),yM=Jw(),cx=ux();function wM(e,n,i){var u=n?String(n):"YYYY-MM-DDTHH:mm:ss.SSSZ",s=i||{},h=s.locale,d=cx.format.formatters,v=cx.format.formattingTokensRegExp;h&&h.format&&h.format.formatters&&(d=h.format.formatters,h.format.formattingTokensRegExp&&(v=h.format.formattingTokensRegExp));var k=mM(e);if(!yM(k))return"Invalid Date";var S=xM(u,d,v);return S(k)}var Wp={M:function(e){return e.getMonth()+1},MM:function(e){return Dr(e.getMonth()+1,2)},Q:function(e){return Math.ceil((e.getMonth()+1)/3)},D:function(e){return e.getDate()},DD:function(e){return Dr(e.getDate(),2)},DDD:function(e){return lx(e)},DDDD:function(e){return Dr(lx(e),3)},d:function(e){return e.getDay()},E:function(e){return e.getDay()||7},W:function(e){return sx(e)},WW:function(e){return Dr(sx(e),2)},YY:function(e){return Dr(e.getFullYear(),4).substr(2)},YYYY:function(e){return Dr(e.getFullYear(),4)},GG:function(e){return String(fx(e)).substr(2)},GGGG:function(e){return fx(e)},H:function(e){return e.getHours()},HH:function(e){return Dr(e.getHours(),2)},h:function(e){var n=e.getHours();return n===0?12:n>12?n%12:n},hh:function(e){return Dr(Wp.h(e),2)},m:function(e){return e.getMinutes()},mm:function(e){return Dr(e.getMinutes(),2)},s:function(e){return e.getSeconds()},ss:function(e){return Dr(e.getSeconds(),2)},S:function(e){return Math.floor(e.getMilliseconds()/100)},SS:function(e){return Dr(Math.floor(e.getMilliseconds()/10),2)},SSS:function(e){return Dr(e.getMilliseconds(),3)},Z:function(e){return hx(e.getTimezoneOffset(),":")},ZZ:function(e){return hx(e.getTimezoneOffset())},X:function(e){return Math.floor(e.getTime()/1e3)},x:function(e){return e.getTime()}};function xM(e,n,i){var u=e.match(i),s=u.length,h,d;for(h=0;h0?"-":"+",u=Math.abs(e),s=Math.floor(u/60),h=u%60;return i+Dr(s,2)+n+Dr(h,2)}function Dr(e,n){for(var i=Math.abs(e).toString();i.length{var kM=xi();function TM(e){var n=kM(e),i=n.getFullYear(),u=n.getMonth(),s=new Date(0);return s.setFullYear(i,u+1,0),s.setHours(0,0,0,0),s.getDate()}vx.exports=TM});var yx=yt((FE,mx)=>{var SM=xi(),bM=gx();function CM(e,n){var i=SM(e),u=Number(n),s=i.getMonth()+u,h=new Date(0);h.setFullYear(i.getFullYear(),s,1),h.setHours(0,0,0,0);var d=bM(h);return i.setMonth(s,Math.min(d,i.getDate())),i}mx.exports=CM});var xx=yt((zE,wx)=>{var MM=yx();function EM(e,n){var i=Number(n);return MM(e,-i)}wx.exports=EM});var Jo=yt((Of,Tx)=>{(function(e,n){typeof Of=="object"&&typeof Tx!="undefined"?n(Of):typeof define=="function"&&define.amd?define(["exports"],n):(e=e||self,n(e.d3=e.d3||{}))})(Of,function(e){"use strict";var n="http://www.w3.org/1999/xhtml",i={svg:"http://www.w3.org/2000/svg",xhtml:n,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function u(G){var se=G+="",qe=se.indexOf(":");return qe>=0&&(se=G.slice(0,qe))!=="xmlns"&&(G=G.slice(qe+1)),i.hasOwnProperty(se)?{space:i[se],local:G}:G}function s(G){return function(){var se=this.ownerDocument,qe=this.namespaceURI;return qe===n&&se.documentElement.namespaceURI===n?se.createElement(G):se.createElementNS(qe,G)}}function h(G){return function(){return this.ownerDocument.createElementNS(G.space,G.local)}}function d(G){var se=u(G);return(se.local?h:s)(se)}function v(){}function k(G){return G==null?v:function(){return this.querySelector(G)}}function S(G){typeof G!="function"&&(G=k(G));for(var se=this._groups,qe=se.length,de=new Array(qe),_=0;_=z&&(z=w+1);!(ae=ki[z])&&++z=0;)(be=de[_])&&(H&&be.compareDocumentPosition(H)^4&&H.parentNode.insertBefore(be,H),H=be);return this}function b(G){G||(G=U);function se(Vt,sn){return Vt&&sn?G(Vt.__data__,sn.__data__):!Vt-!sn}for(var qe=this._groups,de=qe.length,_=new Array(de),H=0;Hse?1:G>=se?0:NaN}function y(){var G=arguments[0];return arguments[0]=this,G.apply(null,arguments),this}function D(){var G=new Array(this.size()),se=-1;return this.each(function(){G[++se]=this}),G}function q(){for(var G=this._groups,se=0,qe=G.length;se1?this.each((se==null?Je:typeof se=="function"?ge:te)(G,se,qe??"")):Q(this.node(),G)}function Q(G,se){return G.style.getPropertyValue(se)||He(G).getComputedStyle(G,null).getPropertyValue(se)}function ee(G){return function(){delete this[G]}}function fe(G,se){return function(){this[G]=se}}function De(G,se){return function(){var qe=se.apply(this,arguments);qe==null?delete this[G]:this[G]=qe}}function at(G,se){return arguments.length>1?this.each((se==null?ee:typeof se=="function"?De:fe)(G,se)):this.node()[G]}function dt(G){return G.trim().split(/^|\s+/)}function Yt(G){return G.classList||new Gt(G)}function Gt(G){this._node=G,this._names=dt(G.getAttribute("class")||"")}Gt.prototype={add:function(G){var se=this._names.indexOf(G);se<0&&(this._names.push(G),this._node.setAttribute("class",this._names.join(" ")))},remove:function(G){var se=this._names.indexOf(G);se>=0&&(this._names.splice(se,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(G){return this._names.indexOf(G)>=0}};function Lt(G,se){for(var qe=Yt(G),de=-1,_=se.length;++de<_;)qe.add(se[de])}function Et(G,se){for(var qe=Yt(G),de=-1,_=se.length;++de<_;)qe.remove(se[de])}function Bt(G){return function(){Lt(this,G)}}function zt(G){return function(){Et(this,G)}}function Zt(G,se){return function(){(se.apply(this,arguments)?Lt:Et)(this,G)}}function pn(G,se){var qe=dt(G+"");if(arguments.length<2){for(var de=Yt(this.node()),_=-1,H=qe.length;++_=0&&(qe=se.slice(de+1),se=se.slice(0,de)),{type:se,name:qe}})}function L(G){return function(){var se=this.__on;if(!!se){for(var qe=0,de=-1,_=se.length,H;qe<_;++qe)H=se[qe],(!G.type||H.type===G.type)&&H.name===G.name?this.removeEventListener(H.type,H.listener,H.capture):se[++de]=H;++de?se.length=de:delete this.__on}}}function V(G,se,qe){var de=K.hasOwnProperty(G.type)?F:$;return function(_,H,be){var Ne=this.__on,Ze,ft=de(se,H,be);if(Ne){for(var Qe=0,Vt=Ne.length;Qe{(function(e,n){typeof Df=="object"&&typeof Sx!="undefined"?n(Df):typeof define=="function"&&define.amd?define(["exports"],n):n(e.d3=e.d3||{})})(Df,function(e){"use strict";var n="$";function i(){}i.prototype=u.prototype={constructor:i,has:function(ne){return n+ne in this},get:function(ne){return this[n+ne]},set:function(ne,R){return this[n+ne]=R,this},remove:function(ne){var R=n+ne;return R in this&&delete this[R]},clear:function(){for(var ne in this)ne[0]===n&&delete this[ne]},keys:function(){var ne=[];for(var R in this)R[0]===n&&ne.push(R.slice(1));return ne},values:function(){var ne=[];for(var R in this)R[0]===n&&ne.push(this[R]);return ne},entries:function(){var ne=[];for(var R in this)R[0]===n&&ne.push({key:R.slice(1),value:this[R]});return ne},size:function(){var ne=0;for(var R in this)R[0]===n&&++ne;return ne},empty:function(){for(var ne in this)if(ne[0]===n)return!1;return!0},each:function(ne){for(var R in this)R[0]===n&&ne(this[R],R.slice(1),this)}};function u(ne,R){var I=new i;if(ne instanceof i)ne.each(function(B,c){I.set(c,B)});else if(Array.isArray(ne)){var Y=-1,le=ne.length,pe;if(R==null)for(;++Y=ne.length)return I!=null&&B.sort(I),Y!=null?Y(B):B;for(var P=-1,b=B.length,U=ne[c++],y,D,q=u(),oe,Le=g();++Pne.length)return B;var g,x=R[c-1];return Y!=null&&c>=ne.length?g=B.entries():(g=[],B.each(function(P,b){g.push({key:b,values:Re(P,c)})})),x!=null?g.sort(function(P,b){return x(P.key,b.key)}):g}return le={object:function(B){return pe(B,0,h,d)},map:function(B){return pe(B,0,v,k)},entries:function(B){return Re(pe(B,0,v,k),0)},key:function(B){return ne.push(B),le},sortKeys:function(B){return R[ne.length-1]=B,le},sortValues:function(B){return I=B,le},rollup:function(B){return Y=B,le}}}function h(){return{}}function d(ne,R,I){ne[R]=I}function v(){return u()}function k(ne,R,I){ne.set(R,I)}function S(){}var E=u.prototype;S.prototype=O.prototype={constructor:S,has:E.has,add:function(ne){return ne+="",this[n+ne]=ne,this},remove:E.remove,clear:E.clear,values:E.keys,size:E.size,empty:E.empty,each:E.each};function O(ne,R){var I=new S;if(ne instanceof S)ne.each(function(pe){I.add(pe)});else if(ne){var Y=-1,le=ne.length;if(R==null)for(;++Y{(function(e,n){typeof Af=="object"&&typeof bx!="undefined"?n(Af):typeof define=="function"&&define.amd?define(["exports"],n):n(e.d3=e.d3||{})})(Af,function(e){"use strict";function n(te,ge){return tege?1:te>=ge?0:NaN}function i(te){return te.length===1&&(te=u(te)),{left:function(ge,Oe,Q,ee){for(Q==null&&(Q=0),ee==null&&(ee=ge.length);Q>>1;te(ge[fe],Oe)<0?Q=fe+1:ee=fe}return Q},right:function(ge,Oe,Q,ee){for(Q==null&&(Q=0),ee==null&&(ee=ge.length);Q>>1;te(ge[fe],Oe)>0?ee=fe:Q=fe+1}return Q}}}function u(te){return function(ge,Oe){return n(te(ge),Oe)}}var s=i(n),h=s.right,d=s.left;function v(te,ge){ge==null&&(ge=k);for(var Oe=0,Q=te.length-1,ee=te[0],fe=new Array(Q<0?0:Q);Oete?1:ge>=te?0:NaN}function O(te){return te===null?NaN:+te}function ie(te,ge){var Oe=te.length,Q=0,ee=-1,fe=0,De,at,dt=0;if(ge==null)for(;++ee1)return dt/(Q-1)}function ve(te,ge){var Oe=ie(te,ge);return Oe&&Math.sqrt(Oe)}function Ee(te,ge){var Oe=te.length,Q=-1,ee,fe,De;if(ge==null){for(;++Q=ee)for(fe=De=ee;++Qee&&(fe=ee),De=ee)for(fe=De=ee;++Qee&&(fe=ee),De0)return[te];if((Q=ge0)for(te=Math.ceil(te/at),ge=Math.floor(ge/at),De=new Array(fe=Math.ceil(ge-te+1));++ee=0?(fe>=Re?10:fe>=B?5:fe>=c?2:1)*Math.pow(10,ee):-Math.pow(10,-ee)/(fe>=Re?10:fe>=B?5:fe>=c?2:1)}function P(te,ge,Oe){var Q=Math.abs(ge-te)/Math.max(0,Oe),ee=Math.pow(10,Math.floor(Math.log(Q)/Math.LN10)),fe=Q/ee;return fe>=Re?ee*=10:fe>=B?ee*=5:fe>=c&&(ee*=2),geLt;)Et.pop(),--Bt;var zt=new Array(Bt+1),Zt;for(fe=0;fe<=Bt;++fe)Zt=zt[fe]=[],Zt.x0=fe>0?Et[fe-1]:Gt,Zt.x1=fe=1)return+Oe(te[Q-1],Q-1,te);var Q,ee=(Q-1)*ge,fe=Math.floor(ee),De=+Oe(te[fe],fe,te),at=+Oe(te[fe+1],fe+1,te);return De+(at-De)*(ee-fe)}}function D(te,ge,Oe){return te=I.call(te,O).sort(n),Math.ceil((Oe-ge)/(2*(y(te,.75)-y(te,.25))*Math.pow(te.length,-1/3)))}function q(te,ge,Oe){return Math.ceil((Oe-ge)/(3.5*ve(te)*Math.pow(te.length,-1/3)))}function oe(te,ge){var Oe=te.length,Q=-1,ee,fe;if(ge==null){for(;++Q=ee)for(fe=ee;++Qfe&&(fe=ee)}else for(;++Q=ee)for(fe=ee;++Qfe&&(fe=ee);return fe}function Le(te,ge){var Oe=te.length,Q=Oe,ee=-1,fe,De=0;if(ge==null)for(;++ee=0;)for(De=te[ge],Oe=De.length;--Oe>=0;)fe[--ee]=De[Oe];return fe}function We(te,ge){var Oe=te.length,Q=-1,ee,fe;if(ge==null){for(;++Q=ee)for(fe=ee;++Qee&&(fe=ee)}else for(;++Q=ee)for(fe=ee;++Qee&&(fe=ee);return fe}function ce(te,ge){for(var Oe=ge.length,Q=new Array(Oe);Oe--;)Q[Oe]=te[ge[Oe]];return Q}function ke(te,ge){if(!!(Oe=te.length)){var Oe,Q=0,ee=0,fe,De=te[ee];for(ge==null&&(ge=n);++Q{(function(e,n){typeof If=="object"&&typeof Mx!="undefined"?n(If):typeof define=="function"&&define.amd?define(["exports"],n):(e=e||self,n(e.d3=e.d3||{}))})(If,function(e){"use strict";function n(M,J,Se){M.prototype=J.prototype=Se,Se.constructor=M}function i(M,J){var Se=Object.create(M.prototype);for(var ze in J)Se[ze]=J[ze];return Se}function u(){}var s=.7,h=1/s,d="\\s*([+-]?\\d+)\\s*",v="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",k="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",S=/^#([0-9a-f]{3,8})$/,E=new RegExp("^rgb\\("+[d,d,d]+"\\)$"),O=new RegExp("^rgb\\("+[k,k,k]+"\\)$"),ie=new RegExp("^rgba\\("+[d,d,d,v]+"\\)$"),ve=new RegExp("^rgba\\("+[k,k,k,v]+"\\)$"),Ee=new RegExp("^hsl\\("+[v,k,k]+"\\)$"),ne=new RegExp("^hsla\\("+[v,k,k,v]+"\\)$"),R={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};n(u,pe,{copy:function(M){return Object.assign(new this.constructor,this,M)},displayable:function(){return this.rgb().displayable()},hex:I,formatHex:I,formatHsl:Y,formatRgb:le,toString:le});function I(){return this.rgb().formatHex()}function Y(){return D(this).formatHsl()}function le(){return this.rgb().formatRgb()}function pe(M){var J,Se;return M=(M+"").trim().toLowerCase(),(J=S.exec(M))?(Se=J[1].length,J=parseInt(J[1],16),Se===6?Re(J):Se===3?new x(J>>8&15|J>>4&240,J>>4&15|J&240,(J&15)<<4|J&15,1):Se===8?B(J>>24&255,J>>16&255,J>>8&255,(J&255)/255):Se===4?B(J>>12&15|J>>8&240,J>>8&15|J>>4&240,J>>4&15|J&240,((J&15)<<4|J&15)/255):null):(J=E.exec(M))?new x(J[1],J[2],J[3],1):(J=O.exec(M))?new x(J[1]*255/100,J[2]*255/100,J[3]*255/100,1):(J=ie.exec(M))?B(J[1],J[2],J[3],J[4]):(J=ve.exec(M))?B(J[1]*255/100,J[2]*255/100,J[3]*255/100,J[4]):(J=Ee.exec(M))?y(J[1],J[2]/100,J[3]/100,1):(J=ne.exec(M))?y(J[1],J[2]/100,J[3]/100,J[4]):R.hasOwnProperty(M)?Re(R[M]):M==="transparent"?new x(NaN,NaN,NaN,0):null}function Re(M){return new x(M>>16&255,M>>8&255,M&255,1)}function B(M,J,Se,ze){return ze<=0&&(M=J=Se=NaN),new x(M,J,Se,ze)}function c(M){return M instanceof u||(M=pe(M)),M?(M=M.rgb(),new x(M.r,M.g,M.b,M.opacity)):new x}function g(M,J,Se,ze){return arguments.length===1?c(M):new x(M,J,Se,ze??1)}function x(M,J,Se,ze){this.r=+M,this.g=+J,this.b=+Se,this.opacity=+ze}n(x,g,i(u,{brighter:function(M){return M=M==null?h:Math.pow(h,M),new x(this.r*M,this.g*M,this.b*M,this.opacity)},darker:function(M){return M=M==null?s:Math.pow(s,M),new x(this.r*M,this.g*M,this.b*M,this.opacity)},rgb:function(){return this},displayable:function(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:P,formatHex:P,formatRgb:b,toString:b}));function P(){return"#"+U(this.r)+U(this.g)+U(this.b)}function b(){var M=this.opacity;return M=isNaN(M)?1:Math.max(0,Math.min(1,M)),(M===1?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(M===1?")":", "+M+")")}function U(M){return M=Math.max(0,Math.min(255,Math.round(M)||0)),(M<16?"0":"")+M.toString(16)}function y(M,J,Se,ze){return ze<=0?M=J=Se=NaN:Se<=0||Se>=1?M=J=NaN:J<=0&&(M=NaN),new oe(M,J,Se,ze)}function D(M){if(M instanceof oe)return new oe(M.h,M.s,M.l,M.opacity);if(M instanceof u||(M=pe(M)),!M)return new oe;if(M instanceof oe)return M;M=M.rgb();var J=M.r/255,Se=M.g/255,ze=M.b/255,tt=Math.min(J,Se,ze),ct=Math.max(J,Se,ze),ht=NaN,wt=ct-tt,bt=(ct+tt)/2;return wt?(J===ct?ht=(Se-ze)/wt+(Se0&&bt<1?0:ht,new oe(ht,wt,bt,M.opacity)}function q(M,J,Se,ze){return arguments.length===1?D(M):new oe(M,J,Se,ze??1)}function oe(M,J,Se,ze){this.h=+M,this.s=+J,this.l=+Se,this.opacity=+ze}n(oe,q,i(u,{brighter:function(M){return M=M==null?h:Math.pow(h,M),new oe(this.h,this.s,this.l*M,this.opacity)},darker:function(M){return M=M==null?s:Math.pow(s,M),new oe(this.h,this.s,this.l*M,this.opacity)},rgb:function(){var M=this.h%360+(this.h<0)*360,J=isNaN(M)||isNaN(this.s)?0:this.s,Se=this.l,ze=Se+(Se<.5?Se:1-Se)*J,tt=2*Se-ze;return new x(Le(M>=240?M-240:M+120,tt,ze),Le(M,tt,ze),Le(M<120?M+240:M-120,tt,ze),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl:function(){var M=this.opacity;return M=isNaN(M)?1:Math.max(0,Math.min(1,M)),(M===1?"hsl(":"hsla(")+(this.h||0)+", "+(this.s||0)*100+"%, "+(this.l||0)*100+"%"+(M===1?")":", "+M+")")}}));function Le(M,J,Se){return(M<60?J+(Se-J)*M/60:M<180?Se:M<240?J+(Se-J)*(240-M)/60:J)*255}var we=Math.PI/180,re=180/Math.PI,We=18,ce=.96422,ke=1,Ce=.82521,me=4/29,Ue=6/29,He=3*Ue*Ue,Je=Ue*Ue*Ue;function te(M){if(M instanceof Q)return new Q(M.l,M.a,M.b,M.opacity);if(M instanceof Lt)return Et(M);M instanceof x||(M=c(M));var J=at(M.r),Se=at(M.g),ze=at(M.b),tt=ee((.2225045*J+.7168786*Se+.0606169*ze)/ke),ct,ht;return J===Se&&Se===ze?ct=ht=tt:(ct=ee((.4360747*J+.3850649*Se+.1430804*ze)/ce),ht=ee((.0139322*J+.0971045*Se+.7141733*ze)/Ce)),new Q(116*tt-16,500*(ct-tt),200*(tt-ht),M.opacity)}function ge(M,J){return new Q(M,0,0,J??1)}function Oe(M,J,Se,ze){return arguments.length===1?te(M):new Q(M,J,Se,ze??1)}function Q(M,J,Se,ze){this.l=+M,this.a=+J,this.b=+Se,this.opacity=+ze}n(Q,Oe,i(u,{brighter:function(M){return new Q(this.l+We*(M??1),this.a,this.b,this.opacity)},darker:function(M){return new Q(this.l-We*(M??1),this.a,this.b,this.opacity)},rgb:function(){var M=(this.l+16)/116,J=isNaN(this.a)?M:M+this.a/500,Se=isNaN(this.b)?M:M-this.b/200;return J=ce*fe(J),M=ke*fe(M),Se=Ce*fe(Se),new x(De(3.1338561*J-1.6168667*M-.4906146*Se),De(-.9787684*J+1.9161415*M+.033454*Se),De(.0719453*J-.2289914*M+1.4052427*Se),this.opacity)}}));function ee(M){return M>Je?Math.pow(M,1/3):M/He+me}function fe(M){return M>Ue?M*M*M:He*(M-me)}function De(M){return 255*(M<=.0031308?12.92*M:1.055*Math.pow(M,1/2.4)-.055)}function at(M){return(M/=255)<=.04045?M/12.92:Math.pow((M+.055)/1.055,2.4)}function dt(M){if(M instanceof Lt)return new Lt(M.h,M.c,M.l,M.opacity);if(M instanceof Q||(M=te(M)),M.a===0&&M.b===0)return new Lt(NaN,0{(function(e,n){typeof Ff=="object"&&typeof Ex!="undefined"?n(Ff,Rf()):typeof define=="function"&&define.amd?define(["exports","d3-color"],n):(e=e||self,n(e.d3=e.d3||{},e.d3))})(Ff,function(e,n){"use strict";function i(A,j,Ae,Xe,je){var M=A*A,J=M*A;return((1-3*A+3*M-J)*j+(4-6*M+3*J)*Ae+(1+3*A+3*M-3*J)*Xe+J*je)/6}function u(A){var j=A.length-1;return function(Ae){var Xe=Ae<=0?Ae=0:Ae>=1?(Ae=1,j-1):Math.floor(Ae*j),je=A[Xe],M=A[Xe+1],J=Xe>0?A[Xe-1]:2*je-M,Se=Xe180||Ae<-180?Ae-360*Math.round(Ae/360):Ae):h(isNaN(A)?j:A)}function S(A){return(A=+A)==1?E:function(j,Ae){return Ae-j?v(j,Ae,A):h(isNaN(j)?Ae:j)}}function E(A,j){var Ae=j-A;return Ae?d(A,Ae):h(isNaN(A)?j:A)}var O=function A(j){var Ae=S(j);function Xe(je,M){var J=Ae((je=n.rgb(je)).r,(M=n.rgb(M)).r),Se=Ae(je.g,M.g),ze=Ae(je.b,M.b),tt=E(je.opacity,M.opacity);return function(ct){return je.r=J(ct),je.g=Se(ct),je.b=ze(ct),je.opacity=tt(ct),je+""}}return Xe.gamma=A,Xe}(1);function ie(A){return function(j){var Ae=j.length,Xe=new Array(Ae),je=new Array(Ae),M=new Array(Ae),J,Se;for(J=0;JAe&&(M=j.slice(Ae,M),Se[J]?Se[J]+=M:Se[++J]=M),(Xe=Xe[0])===(je=je[0])?Se[J]?Se[J]+=je:Se[++J]=je:(Se[++J]=null,ze.push({i:J,x:pe(Xe,je)})),Ae=c.lastIndex;return Ae180?ct+=360:ct-tt>180&&(tt+=360),wt.push({i:ht.push(je(ht)+"rotate(",null,Xe)-2,x:pe(tt,ct)})):ct&&ht.push(je(ht)+"rotate("+ct+Xe)}function Se(tt,ct,ht,wt){tt!==ct?wt.push({i:ht.push(je(ht)+"skewX(",null,Xe)-2,x:pe(tt,ct)}):ct&&ht.push(je(ht)+"skewX("+ct+Xe)}function ze(tt,ct,ht,wt,bt,Rt){if(tt!==ht||ct!==wt){var Wt=bt.push(je(bt)+"scale(",null,",",null,")");Rt.push({i:Wt-4,x:pe(tt,ht)},{i:Wt-2,x:pe(ct,wt)})}else(ht!==1||wt!==1)&&bt.push(je(bt)+"scale("+ht+","+wt+")")}return function(tt,ct){var ht=[],wt=[];return tt=A(tt),ct=A(ct),M(tt.translateX,tt.translateY,ct.translateX,ct.translateY,ht,wt),J(tt.rotate,ct.rotate,ht,wt),Se(tt.skewX,ct.skewX,ht,wt),ze(tt.scaleX,tt.scaleY,ct.scaleX,ct.scaleY,ht,wt),tt=ct=null,function(bt){for(var Rt=-1,Wt=wt.length,ln;++Rt{(function(e,n){typeof Hf=="object"&&typeof Nx!="undefined"?n(Hf):typeof define=="function"&&define.amd?define(["exports"],n):(e=typeof globalThis!="undefined"?globalThis:e||self,n(e.d3=e.d3||{}))})(Hf,function(e){"use strict";function n(c){return Math.abs(c=Math.round(c))>=1e21?c.toLocaleString("en").replace(/,/g,""):c.toString(10)}function i(c,g){if((x=(c=g?c.toExponential(g-1):c.toExponential()).indexOf("e"))<0)return null;var x,P=c.slice(0,x);return[P.length>1?P[0]+P.slice(2):P,+c.slice(x+1)]}function u(c){return c=i(Math.abs(c)),c?c[1]:NaN}function s(c,g){return function(x,P){for(var b=x.length,U=[],y=0,D=c[0],q=0;b>0&&D>0&&(q+D+1>P&&(D=Math.max(1,P-q)),U.push(x.substring(b-=D,b+D)),!((q+=D+1)>P));)D=c[y=(y+1)%c.length];return U.reverse().join(g)}}function h(c){return function(g){return g.replace(/[0-9]/g,function(x){return c[+x]})}}var d=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function v(c){if(!(g=d.exec(c)))throw new Error("invalid format: "+c);var g;return new k({fill:g[1],align:g[2],sign:g[3],symbol:g[4],zero:g[5],width:g[6],comma:g[7],precision:g[8]&&g[8].slice(1),trim:g[9],type:g[10]})}v.prototype=k.prototype;function k(c){this.fill=c.fill===void 0?" ":c.fill+"",this.align=c.align===void 0?">":c.align+"",this.sign=c.sign===void 0?"-":c.sign+"",this.symbol=c.symbol===void 0?"":c.symbol+"",this.zero=!!c.zero,this.width=c.width===void 0?void 0:+c.width,this.comma=!!c.comma,this.precision=c.precision===void 0?void 0:+c.precision,this.trim=!!c.trim,this.type=c.type===void 0?"":c.type+""}k.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function S(c){e:for(var g=c.length,x=1,P=-1,b;x0&&(P=0);break}return P>0?c.slice(0,P)+c.slice(b+1):c}var E;function O(c,g){var x=i(c,g);if(!x)return c+"";var P=x[0],b=x[1],U=b-(E=Math.max(-8,Math.min(8,Math.floor(b/3)))*3)+1,y=P.length;return U===y?P:U>y?P+new Array(U-y+1).join("0"):U>0?P.slice(0,U)+"."+P.slice(U):"0."+new Array(1-U).join("0")+i(c,Math.max(0,g+U-1))[0]}function ie(c,g){var x=i(c,g);if(!x)return c+"";var P=x[0],b=x[1];return b<0?"0."+new Array(-b).join("0")+P:P.length>b+1?P.slice(0,b+1)+"."+P.slice(b+1):P+new Array(b-P.length+2).join("0")}var ve={"%":function(c,g){return(c*100).toFixed(g)},b:function(c){return Math.round(c).toString(2)},c:function(c){return c+""},d:n,e:function(c,g){return c.toExponential(g)},f:function(c,g){return c.toFixed(g)},g:function(c,g){return c.toPrecision(g)},o:function(c){return Math.round(c).toString(8)},p:function(c,g){return ie(c*100,g)},r:ie,s:O,X:function(c){return Math.round(c).toString(16).toUpperCase()},x:function(c){return Math.round(c).toString(16)}};function Ee(c){return c}var ne=Array.prototype.map,R=["y","z","a","f","p","n","\xB5","m","","k","M","G","T","P","E","Z","Y"];function I(c){var g=c.grouping===void 0||c.thousands===void 0?Ee:s(ne.call(c.grouping,Number),c.thousands+""),x=c.currency===void 0?"":c.currency[0]+"",P=c.currency===void 0?"":c.currency[1]+"",b=c.decimal===void 0?".":c.decimal+"",U=c.numerals===void 0?Ee:h(ne.call(c.numerals,String)),y=c.percent===void 0?"%":c.percent+"",D=c.minus===void 0?"-":c.minus+"",q=c.nan===void 0?"NaN":c.nan+"";function oe(we){we=v(we);var re=we.fill,We=we.align,ce=we.sign,ke=we.symbol,Ce=we.zero,me=we.width,Ue=we.comma,He=we.precision,Je=we.trim,te=we.type;te==="n"?(Ue=!0,te="g"):ve[te]||(He===void 0&&(He=12),Je=!0,te="g"),(Ce||re==="0"&&We==="=")&&(Ce=!0,re="0",We="=");var ge=ke==="$"?x:ke==="#"&&/[boxX]/.test(te)?"0"+te.toLowerCase():"",Oe=ke==="$"?P:/[%p]/.test(te)?y:"",Q=ve[te],ee=/[defgprs%]/.test(te);He=He===void 0?6:/[gprs]/.test(te)?Math.max(1,Math.min(21,He)):Math.max(0,Math.min(20,He));function fe(De){var at=ge,dt=Oe,Yt,Gt,Lt;if(te==="c")dt=Q(De)+dt,De="";else{De=+De;var Et=De<0||1/De<0;if(De=isNaN(De)?q:Q(Math.abs(De),He),Je&&(De=S(De)),Et&&+De==0&&ce!=="+"&&(Et=!1),at=(Et?ce==="("?ce:D:ce==="-"||ce==="("?"":ce)+at,dt=(te==="s"?R[8+E/3]:"")+dt+(Et&&ce==="("?")":""),ee){for(Yt=-1,Gt=De.length;++YtLt||Lt>57){dt=(Lt===46?b+De.slice(Yt+1):De.slice(Yt))+dt,De=De.slice(0,Yt);break}}}Ue&&!Ce&&(De=g(De,1/0));var Bt=at.length+De.length+dt.length,zt=Bt>1)+at+De+dt+zt.slice(Bt);break;default:De=zt+at+De+dt;break}return U(De)}return fe.toString=function(){return we+""},fe}function Le(we,re){var We=oe((we=v(we),we.type="f",we)),ce=Math.max(-8,Math.min(8,Math.floor(u(re)/3)))*3,ke=Math.pow(10,-ce),Ce=R[8+ce/3];return function(me){return We(ke*me)+Ce}}return{format:oe,formatPrefix:Le}}var Y;le({decimal:".",thousands:",",grouping:[3],currency:["$",""],minus:"-"});function le(c){return Y=I(c),e.format=Y.format,e.formatPrefix=Y.formatPrefix,Y}function pe(c){return Math.max(0,-u(Math.abs(c)))}function Re(c,g){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(u(g)/3)))*3-u(Math.abs(c)))}function B(c,g){return c=Math.abs(c),g=Math.abs(g)-c,Math.max(0,u(g)-u(c))+1}e.FormatSpecifier=k,e.formatDefaultLocale=le,e.formatLocale=I,e.formatSpecifier=v,e.precisionFixed=pe,e.precisionPrefix=Re,e.precisionRound=B,Object.defineProperty(e,"__esModule",{value:!0})})});var jp=yt((Wf,Lx)=>{(function(e,n){typeof Wf=="object"&&typeof Lx!="undefined"?n(Wf):typeof define=="function"&&define.amd?define(["exports"],n):(e=e||self,n(e.d3=e.d3||{}))})(Wf,function(e){"use strict";var n=new Date,i=new Date;function u(A,j,Ae,Xe){function je(M){return A(M=arguments.length===0?new Date:new Date(+M)),M}return je.floor=function(M){return A(M=new Date(+M)),M},je.ceil=function(M){return A(M=new Date(M-1)),j(M,1),A(M),M},je.round=function(M){var J=je(M),Se=je.ceil(M);return M-J0))return ze;do ze.push(tt=new Date(+M)),j(M,Se),A(M);while(tt=J)for(;A(J),!M(J);)J.setTime(J-1)},function(J,Se){if(J>=J)if(Se<0)for(;++Se<=0;)for(;j(J,-1),!M(J););else for(;--Se>=0;)for(;j(J,1),!M(J););})},Ae&&(je.count=function(M,J){return n.setTime(+M),i.setTime(+J),A(n),A(i),Math.floor(Ae(n,i))},je.every=function(M){return M=Math.floor(M),!isFinite(M)||!(M>0)?null:M>1?je.filter(Xe?function(J){return Xe(J)%M==0}:function(J){return je.count(0,J)%M==0}):je}),je}var s=u(function(){},function(A,j){A.setTime(+A+j)},function(A,j){return j-A});s.every=function(A){return A=Math.floor(A),!isFinite(A)||!(A>0)?null:A>1?u(function(j){j.setTime(Math.floor(j/A)*A)},function(j,Ae){j.setTime(+j+Ae*A)},function(j,Ae){return(Ae-j)/A}):s};var h=s.range,d=1e3,v=6e4,k=36e5,S=864e5,E=6048e5,O=u(function(A){A.setTime(A-A.getMilliseconds())},function(A,j){A.setTime(+A+j*d)},function(A,j){return(j-A)/d},function(A){return A.getUTCSeconds()}),ie=O.range,ve=u(function(A){A.setTime(A-A.getMilliseconds()-A.getSeconds()*d)},function(A,j){A.setTime(+A+j*v)},function(A,j){return(j-A)/v},function(A){return A.getMinutes()}),Ee=ve.range,ne=u(function(A){A.setTime(A-A.getMilliseconds()-A.getSeconds()*d-A.getMinutes()*v)},function(A,j){A.setTime(+A+j*k)},function(A,j){return(j-A)/k},function(A){return A.getHours()}),R=ne.range,I=u(function(A){A.setHours(0,0,0,0)},function(A,j){A.setDate(A.getDate()+j)},function(A,j){return(j-A-(j.getTimezoneOffset()-A.getTimezoneOffset())*v)/S},function(A){return A.getDate()-1}),Y=I.range;function le(A){return u(function(j){j.setDate(j.getDate()-(j.getDay()+7-A)%7),j.setHours(0,0,0,0)},function(j,Ae){j.setDate(j.getDate()+Ae*7)},function(j,Ae){return(Ae-j-(Ae.getTimezoneOffset()-j.getTimezoneOffset())*v)/E})}var pe=le(0),Re=le(1),B=le(2),c=le(3),g=le(4),x=le(5),P=le(6),b=pe.range,U=Re.range,y=B.range,D=c.range,q=g.range,oe=x.range,Le=P.range,we=u(function(A){A.setDate(1),A.setHours(0,0,0,0)},function(A,j){A.setMonth(A.getMonth()+j)},function(A,j){return j.getMonth()-A.getMonth()+(j.getFullYear()-A.getFullYear())*12},function(A){return A.getMonth()}),re=we.range,We=u(function(A){A.setMonth(0,1),A.setHours(0,0,0,0)},function(A,j){A.setFullYear(A.getFullYear()+j)},function(A,j){return j.getFullYear()-A.getFullYear()},function(A){return A.getFullYear()});We.every=function(A){return!isFinite(A=Math.floor(A))||!(A>0)?null:u(function(j){j.setFullYear(Math.floor(j.getFullYear()/A)*A),j.setMonth(0,1),j.setHours(0,0,0,0)},function(j,Ae){j.setFullYear(j.getFullYear()+Ae*A)})};var ce=We.range,ke=u(function(A){A.setUTCSeconds(0,0)},function(A,j){A.setTime(+A+j*v)},function(A,j){return(j-A)/v},function(A){return A.getUTCMinutes()}),Ce=ke.range,me=u(function(A){A.setUTCMinutes(0,0,0)},function(A,j){A.setTime(+A+j*k)},function(A,j){return(j-A)/k},function(A){return A.getUTCHours()}),Ue=me.range,He=u(function(A){A.setUTCHours(0,0,0,0)},function(A,j){A.setUTCDate(A.getUTCDate()+j)},function(A,j){return(j-A)/S},function(A){return A.getUTCDate()-1}),Je=He.range;function te(A){return u(function(j){j.setUTCDate(j.getUTCDate()-(j.getUTCDay()+7-A)%7),j.setUTCHours(0,0,0,0)},function(j,Ae){j.setUTCDate(j.getUTCDate()+Ae*7)},function(j,Ae){return(Ae-j)/E})}var ge=te(0),Oe=te(1),Q=te(2),ee=te(3),fe=te(4),De=te(5),at=te(6),dt=ge.range,Yt=Oe.range,Gt=Q.range,Lt=ee.range,Et=fe.range,Bt=De.range,zt=at.range,Zt=u(function(A){A.setUTCDate(1),A.setUTCHours(0,0,0,0)},function(A,j){A.setUTCMonth(A.getUTCMonth()+j)},function(A,j){return j.getUTCMonth()-A.getUTCMonth()+(j.getUTCFullYear()-A.getUTCFullYear())*12},function(A){return A.getUTCMonth()}),pn=Zt.range,$t=u(function(A){A.setUTCMonth(0,1),A.setUTCHours(0,0,0,0)},function(A,j){A.setUTCFullYear(A.getUTCFullYear()+j)},function(A,j){return j.getUTCFullYear()-A.getUTCFullYear()},function(A){return A.getUTCFullYear()});$t.every=function(A){return!isFinite(A=Math.floor(A))||!(A>0)?null:u(function(j){j.setUTCFullYear(Math.floor(j.getUTCFullYear()/A)*A),j.setUTCMonth(0,1),j.setUTCHours(0,0,0,0)},function(j,Ae){j.setUTCFullYear(j.getUTCFullYear()+Ae*A)})};var kn=$t.range;e.timeDay=I,e.timeDays=Y,e.timeFriday=x,e.timeFridays=oe,e.timeHour=ne,e.timeHours=R,e.timeInterval=u,e.timeMillisecond=s,e.timeMilliseconds=h,e.timeMinute=ve,e.timeMinutes=Ee,e.timeMonday=Re,e.timeMondays=U,e.timeMonth=we,e.timeMonths=re,e.timeSaturday=P,e.timeSaturdays=Le,e.timeSecond=O,e.timeSeconds=ie,e.timeSunday=pe,e.timeSundays=b,e.timeThursday=g,e.timeThursdays=q,e.timeTuesday=B,e.timeTuesdays=y,e.timeWednesday=c,e.timeWednesdays=D,e.timeWeek=pe,e.timeWeeks=b,e.timeYear=We,e.timeYears=ce,e.utcDay=He,e.utcDays=Je,e.utcFriday=De,e.utcFridays=Bt,e.utcHour=me,e.utcHours=Ue,e.utcMillisecond=s,e.utcMilliseconds=h,e.utcMinute=ke,e.utcMinutes=Ce,e.utcMonday=Oe,e.utcMondays=Yt,e.utcMonth=Zt,e.utcMonths=pn,e.utcSaturday=at,e.utcSaturdays=zt,e.utcSecond=O,e.utcSeconds=ie,e.utcSunday=ge,e.utcSundays=dt,e.utcThursday=fe,e.utcThursdays=Et,e.utcTuesday=Q,e.utcTuesdays=Gt,e.utcWednesday=ee,e.utcWednesdays=Lt,e.utcWeek=ge,e.utcWeeks=dt,e.utcYear=$t,e.utcYears=kn,Object.defineProperty(e,"__esModule",{value:!0})})});var Dx=yt((Uf,Ox)=>{(function(e,n){typeof Uf=="object"&&typeof Ox!="undefined"?n(Uf,jp()):typeof define=="function"&&define.amd?define(["exports","d3-time"],n):(e=e||self,n(e.d3=e.d3||{},e.d3))})(Uf,function(e,n){"use strict";function i(F){if(0<=F.y&&F.y<100){var $=new Date(-1,F.m,F.d,F.H,F.M,F.S,F.L);return $.setFullYear(F.y),$}return new Date(F.y,F.m,F.d,F.H,F.M,F.S,F.L)}function u(F){if(0<=F.y&&F.y<100){var $=new Date(Date.UTC(-1,F.m,F.d,F.H,F.M,F.S,F.L));return $.setUTCFullYear(F.y),$}return new Date(Date.UTC(F.y,F.m,F.d,F.H,F.M,F.S,F.L))}function s(F,$,N){return{y:F,m:$,d:N,H:0,M:0,S:0,L:0}}function h(F){var $=F.dateTime,N=F.date,L=F.time,V=F.periods,he=F.days,_e=F.shortDays,Fe=F.months,Ie=F.shortMonths,$e=ie(V),Ke=ve(V),et=ie(he),vt=ve(he),Ot=ie(_e),Ct=ve(_e),Nt=ie(Fe),Jt=ve(Fe),An=ie(Ie),bn=ve(Ie),Ut={a:Ze,A:ft,b:Qe,B:Vt,c:null,d:we,e:we,f:Ce,g:De,G:dt,H:re,I:We,j:ce,L:ke,m:me,M:Ue,p:sn,q:on,Q:wt,s:bt,S:He,u:Je,U:te,V:Oe,w:Q,W:ee,x:null,X:null,y:fe,Y:at,Z:Yt,"%":ht},st={a:In,A:_i,b:ki,B:Qr,c:null,d:Gt,e:Gt,f:Zt,g:Se,G:tt,H:Lt,I:Et,j:Bt,L:zt,m:pn,M:$t,p:w,q:z,Q:wt,s:bt,S:kn,u:A,U:j,V:Xe,w:je,W:M,x:null,X:null,y:J,Y:ze,Z:ct,"%":ht},Tt={a:se,A:qe,b:de,B:_,c:H,d:g,e:g,f:D,g:pe,G:le,H:P,I:P,j:x,L:y,m:c,M:b,p:G,q:B,Q:oe,s:Le,S:U,u:ne,U:R,V:I,w:Ee,W:Y,x:be,X:Ne,y:pe,Y:le,Z:Re,"%":q};Ut.x=rn(N,Ut),Ut.X=rn(L,Ut),Ut.c=rn($,Ut),st.x=rn(N,st),st.X=rn(L,st),st.c=rn($,st);function rn(W,ae){return function(Me){var ue=[],Ye=-1,xe=0,Ge=W.length,ot,rt,mt;for(Me instanceof Date||(Me=new Date(+Me));++Ye53)return null;"w"in ue||(ue.w=1),"Z"in ue?(xe=u(s(ue.y,0,1)),Ge=xe.getUTCDay(),xe=Ge>4||Ge===0?n.utcMonday.ceil(xe):n.utcMonday(xe),xe=n.utcDay.offset(xe,(ue.V-1)*7),ue.y=xe.getUTCFullYear(),ue.m=xe.getUTCMonth(),ue.d=xe.getUTCDate()+(ue.w+6)%7):(xe=i(s(ue.y,0,1)),Ge=xe.getDay(),xe=Ge>4||Ge===0?n.timeMonday.ceil(xe):n.timeMonday(xe),xe=n.timeDay.offset(xe,(ue.V-1)*7),ue.y=xe.getFullYear(),ue.m=xe.getMonth(),ue.d=xe.getDate()+(ue.w+6)%7)}else("W"in ue||"U"in ue)&&("w"in ue||(ue.w="u"in ue?ue.u%7:"W"in ue?1:0),Ge="Z"in ue?u(s(ue.y,0,1)).getUTCDay():i(s(ue.y,0,1)).getDay(),ue.m=0,ue.d="W"in ue?(ue.w+6)%7+ue.W*7-(Ge+5)%7:ue.w+ue.U*7-(Ge+6)%7);return"Z"in ue?(ue.H+=ue.Z/100|0,ue.M+=ue.Z%100,u(ue)):i(ue)}}function St(W,ae,Me,ue){for(var Ye=0,xe=ae.length,Ge=Me.length,ot,rt;Ye=Ge)return-1;if(ot=ae.charCodeAt(Ye++),ot===37){if(ot=ae.charAt(Ye++),rt=Tt[ot in d?ae.charAt(Ye++):ot],!rt||(ue=rt(W,Me,ue))<0)return-1}else if(ot!=Me.charCodeAt(ue++))return-1}return ue}function G(W,ae,Me){var ue=$e.exec(ae.slice(Me));return ue?(W.p=Ke[ue[0].toLowerCase()],Me+ue[0].length):-1}function se(W,ae,Me){var ue=Ot.exec(ae.slice(Me));return ue?(W.w=Ct[ue[0].toLowerCase()],Me+ue[0].length):-1}function qe(W,ae,Me){var ue=et.exec(ae.slice(Me));return ue?(W.w=vt[ue[0].toLowerCase()],Me+ue[0].length):-1}function de(W,ae,Me){var ue=An.exec(ae.slice(Me));return ue?(W.m=bn[ue[0].toLowerCase()],Me+ue[0].length):-1}function _(W,ae,Me){var ue=Nt.exec(ae.slice(Me));return ue?(W.m=Jt[ue[0].toLowerCase()],Me+ue[0].length):-1}function H(W,ae,Me){return St(W,$,ae,Me)}function be(W,ae,Me){return St(W,N,ae,Me)}function Ne(W,ae,Me){return St(W,L,ae,Me)}function Ze(W){return _e[W.getDay()]}function ft(W){return he[W.getDay()]}function Qe(W){return Ie[W.getMonth()]}function Vt(W){return Fe[W.getMonth()]}function sn(W){return V[+(W.getHours()>=12)]}function on(W){return 1+~~(W.getMonth()/3)}function In(W){return _e[W.getUTCDay()]}function _i(W){return he[W.getUTCDay()]}function ki(W){return Ie[W.getUTCMonth()]}function Qr(W){return Fe[W.getUTCMonth()]}function w(W){return V[+(W.getUTCHours()>=12)]}function z(W){return 1+~~(W.getUTCMonth()/3)}return{format:function(W){var ae=rn(W+="",Ut);return ae.toString=function(){return W},ae},parse:function(W){var ae=Xt(W+="",!1);return ae.toString=function(){return W},ae},utcFormat:function(W){var ae=rn(W+="",st);return ae.toString=function(){return W},ae},utcParse:function(W){var ae=Xt(W+="",!0);return ae.toString=function(){return W},ae}}}var d={"-":"",_:" ","0":"0"},v=/^\s*\d+/,k=/^%/,S=/[\\^$*+?|[\]().{}]/g;function E(F,$,N){var L=F<0?"-":"",V=(L?-F:F)+"",he=V.length;return L+(he68?1900:2e3),N+L[0].length):-1}function Re(F,$,N){var L=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec($.slice(N,N+6));return L?(F.Z=L[1]?0:-(L[2]+(L[3]||"00")),N+L[0].length):-1}function B(F,$,N){var L=v.exec($.slice(N,N+1));return L?(F.q=L[0]*3-3,N+L[0].length):-1}function c(F,$,N){var L=v.exec($.slice(N,N+2));return L?(F.m=L[0]-1,N+L[0].length):-1}function g(F,$,N){var L=v.exec($.slice(N,N+2));return L?(F.d=+L[0],N+L[0].length):-1}function x(F,$,N){var L=v.exec($.slice(N,N+3));return L?(F.m=0,F.d=+L[0],N+L[0].length):-1}function P(F,$,N){var L=v.exec($.slice(N,N+2));return L?(F.H=+L[0],N+L[0].length):-1}function b(F,$,N){var L=v.exec($.slice(N,N+2));return L?(F.M=+L[0],N+L[0].length):-1}function U(F,$,N){var L=v.exec($.slice(N,N+2));return L?(F.S=+L[0],N+L[0].length):-1}function y(F,$,N){var L=v.exec($.slice(N,N+3));return L?(F.L=+L[0],N+L[0].length):-1}function D(F,$,N){var L=v.exec($.slice(N,N+6));return L?(F.L=Math.floor(L[0]/1e3),N+L[0].length):-1}function q(F,$,N){var L=k.exec($.slice(N,N+1));return L?N+L[0].length:-1}function oe(F,$,N){var L=v.exec($.slice(N));return L?(F.Q=+L[0],N+L[0].length):-1}function Le(F,$,N){var L=v.exec($.slice(N));return L?(F.s=+L[0],N+L[0].length):-1}function we(F,$){return E(F.getDate(),$,2)}function re(F,$){return E(F.getHours(),$,2)}function We(F,$){return E(F.getHours()%12||12,$,2)}function ce(F,$){return E(1+n.timeDay.count(n.timeYear(F),F),$,3)}function ke(F,$){return E(F.getMilliseconds(),$,3)}function Ce(F,$){return ke(F,$)+"000"}function me(F,$){return E(F.getMonth()+1,$,2)}function Ue(F,$){return E(F.getMinutes(),$,2)}function He(F,$){return E(F.getSeconds(),$,2)}function Je(F){var $=F.getDay();return $===0?7:$}function te(F,$){return E(n.timeSunday.count(n.timeYear(F)-1,F),$,2)}function ge(F){var $=F.getDay();return $>=4||$===0?n.timeThursday(F):n.timeThursday.ceil(F)}function Oe(F,$){return F=ge(F),E(n.timeThursday.count(n.timeYear(F),F)+(n.timeYear(F).getDay()===4),$,2)}function Q(F){return F.getDay()}function ee(F,$){return E(n.timeMonday.count(n.timeYear(F)-1,F),$,2)}function fe(F,$){return E(F.getFullYear()%100,$,2)}function De(F,$){return F=ge(F),E(F.getFullYear()%100,$,2)}function at(F,$){return E(F.getFullYear()%1e4,$,4)}function dt(F,$){var N=F.getDay();return F=N>=4||N===0?n.timeThursday(F):n.timeThursday.ceil(F),E(F.getFullYear()%1e4,$,4)}function Yt(F){var $=F.getTimezoneOffset();return($>0?"-":($*=-1,"+"))+E($/60|0,"0",2)+E($%60,"0",2)}function Gt(F,$){return E(F.getUTCDate(),$,2)}function Lt(F,$){return E(F.getUTCHours(),$,2)}function Et(F,$){return E(F.getUTCHours()%12||12,$,2)}function Bt(F,$){return E(1+n.utcDay.count(n.utcYear(F),F),$,3)}function zt(F,$){return E(F.getUTCMilliseconds(),$,3)}function Zt(F,$){return zt(F,$)+"000"}function pn(F,$){return E(F.getUTCMonth()+1,$,2)}function $t(F,$){return E(F.getUTCMinutes(),$,2)}function kn(F,$){return E(F.getUTCSeconds(),$,2)}function A(F){var $=F.getUTCDay();return $===0?7:$}function j(F,$){return E(n.utcSunday.count(n.utcYear(F)-1,F),$,2)}function Ae(F){var $=F.getUTCDay();return $>=4||$===0?n.utcThursday(F):n.utcThursday.ceil(F)}function Xe(F,$){return F=Ae(F),E(n.utcThursday.count(n.utcYear(F),F)+(n.utcYear(F).getUTCDay()===4),$,2)}function je(F){return F.getUTCDay()}function M(F,$){return E(n.utcMonday.count(n.utcYear(F)-1,F),$,2)}function J(F,$){return E(F.getUTCFullYear()%100,$,2)}function Se(F,$){return F=Ae(F),E(F.getUTCFullYear()%100,$,2)}function ze(F,$){return E(F.getUTCFullYear()%1e4,$,4)}function tt(F,$){var N=F.getUTCDay();return F=N>=4||N===0?n.utcThursday(F):n.utcThursday.ceil(F),E(F.getUTCFullYear()%1e4,$,4)}function ct(){return"+0000"}function ht(){return"%"}function wt(F){return+F}function bt(F){return Math.floor(+F/1e3)}var Rt;Wt({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function Wt(F){return Rt=h(F),e.timeFormat=Rt.format,e.timeParse=Rt.parse,e.utcFormat=Rt.utcFormat,e.utcParse=Rt.utcParse,Rt}var ln="%Y-%m-%dT%H:%M:%S.%LZ";function nn(F){return F.toISOString()}var gn=Date.prototype.toISOString?nn:e.utcFormat(ln);function K(F){var $=new Date(F);return isNaN($)?null:$}var Pe=+new Date("2000-01-01T00:00:00.000Z")?K:e.utcParse(ln);e.isoFormat=gn,e.isoParse=Pe,e.timeFormatDefaultLocale=Wt,e.timeFormatLocale=h,Object.defineProperty(e,"__esModule",{value:!0})})});var Yp=yt((Bf,Ax)=>{(function(e,n){typeof Bf=="object"&&typeof Ax!="undefined"?n(Bf,Bp(),Cx(),zf(),Px(),jp(),Dx()):typeof define=="function"&&define.amd?define(["exports","d3-collection","d3-array","d3-interpolate","d3-format","d3-time","d3-time-format"],n):n(e.d3=e.d3||{},e.d3,e.d3,e.d3,e.d3,e.d3,e.d3)})(Bf,function(e,n,i,u,s,h,d){"use strict";function v(K,Pe){switch(arguments.length){case 0:break;case 1:this.range(K);break;default:this.range(Pe).domain(K);break}return this}function k(K,Pe){switch(arguments.length){case 0:break;case 1:this.interpolator(K);break;default:this.interpolator(Pe).domain(K);break}return this}var S=Array.prototype,E=S.map,O=S.slice,ie={name:"implicit"};function ve(){var K=n.map(),Pe=[],F=[],$=ie;function N(L){var V=L+"",he=K.get(V);if(!he){if($!==ie)return $;K.set(V,he=Pe.push(L))}return F[(he-1)%F.length]}return N.domain=function(L){if(!arguments.length)return Pe.slice();Pe=[],K=n.map();for(var V=-1,he=L.length,_e,Fe;++VF&&($=Pe,Pe=F,F=$),function(N){return Math.max(Pe,Math.min(F,N))}}function c(K,Pe,F){var $=K[0],N=K[1],L=Pe[0],V=Pe[1];return N<$?($=Re(N,$),L=F(V,L)):($=Re($,N),L=F(L,V)),function(he){return L($(he))}}function g(K,Pe,F){var $=Math.min(K.length,Pe.length)-1,N=new Array($),L=new Array($),V=-1;for(K[$]2?g:c,_e=Fe=null,$e}function $e(Ke){return isNaN(Ke=+Ke)?L:(_e||(_e=he(K.map($),Pe,F)))($(V(Ke)))}return $e.invert=function(Ke){return V(N((Fe||(Fe=he(Pe,K.map($),u.interpolateNumber)))(Ke)))},$e.domain=function(Ke){return arguments.length?(K=E.call(Ke,Y),V===pe||(V=B(K)),Ie()):K.slice()},$e.range=function(Ke){return arguments.length?(Pe=O.call(Ke),Ie()):Pe.slice()},$e.rangeRound=function(Ke){return Pe=O.call(Ke),F=u.interpolateRound,Ie()},$e.clamp=function(Ke){return arguments.length?(V=Ke?B(K):pe,$e):V!==pe},$e.interpolate=function(Ke){return arguments.length?(F=Ke,Ie()):F},$e.unknown=function(Ke){return arguments.length?(L=Ke,$e):L},function(Ke,et){return $=Ke,N=et,Ie()}}function b(K,Pe){return P()(K,Pe)}function U(K,Pe,F,$){var N=i.tickStep(K,Pe,F),L;switch($=s.formatSpecifier($??",f"),$.type){case"s":{var V=Math.max(Math.abs(K),Math.abs(Pe));return $.precision==null&&!isNaN(L=s.precisionPrefix(N,V))&&($.precision=L),s.formatPrefix($,V)}case"":case"e":case"g":case"p":case"r":{$.precision==null&&!isNaN(L=s.precisionRound(N,Math.max(Math.abs(K),Math.abs(Pe))))&&($.precision=L-($.type==="e"));break}case"f":case"%":{$.precision==null&&!isNaN(L=s.precisionFixed(N))&&($.precision=L-($.type==="%")*2);break}}return s.format($)}function y(K){var Pe=K.domain;return K.ticks=function(F){var $=Pe();return i.ticks($[0],$[$.length-1],F??10)},K.tickFormat=function(F,$){var N=Pe();return U(N[0],N[N.length-1],F??10,$)},K.nice=function(F){F==null&&(F=10);var $=Pe(),N=0,L=$.length-1,V=$[N],he=$[L],_e;return he0?(V=Math.floor(V/_e)*_e,he=Math.ceil(he/_e)*_e,_e=i.tickIncrement(V,he,F)):_e<0&&(V=Math.ceil(V*_e)/_e,he=Math.floor(he*_e)/_e,_e=i.tickIncrement(V,he,F)),_e>0?($[N]=Math.floor(V/_e)*_e,$[L]=Math.ceil(he/_e)*_e,Pe($)):_e<0&&($[N]=Math.ceil(V*_e)/_e,$[L]=Math.floor(he*_e)/_e,Pe($)),K},K}function D(){var K=b(pe,pe);return K.copy=function(){return x(K,D())},v.apply(K,arguments),y(K)}function q(K){var Pe;function F($){return isNaN($=+$)?Pe:$}return F.invert=F,F.domain=F.range=function($){return arguments.length?(K=E.call($,Y),F):K.slice()},F.unknown=function($){return arguments.length?(Pe=$,F):Pe},F.copy=function(){return q(K).unknown(Pe)},K=arguments.length?E.call(K,Y):[0,1],y(F)}function oe(K,Pe){K=K.slice();var F=0,$=K.length-1,N=K[F],L=K[$],V;return L0){for(;KeIe)break;Jt.push(Ct)}}else for(;Ke=1;--Ot)if(Ct=vt*Ot,!(CtIe)break;Jt.push(Ct)}}else Jt=i.ticks(Ke,et,Math.min(et-Ke,Nt)).map(L);return $e?Jt.reverse():Jt},Pe.tickFormat=function(he,_e){if(_e==null&&(_e=$===10?".0e":","),typeof _e!="function"&&(_e=s.format(_e)),he===1/0)return _e;he==null&&(he=10);var Fe=Math.max(1,$*he/Pe.ticks().length);return function(Ie){var $e=Ie/L(Math.round(N(Ie)));return $e*$<$-.5&&($e*=$),$e<=Fe?_e(Ie):""}},Pe.nice=function(){return F(oe(F(),{floor:function(he){return L(Math.floor(N(he)))},ceil:function(he){return L(Math.ceil(N(he)))}}))},Pe}function He(){var K=Ue(P()).domain([1,10]);return K.copy=function(){return x(K,He()).base(K.base())},v.apply(K,arguments),K}function Je(K){return function(Pe){return Math.sign(Pe)*Math.log1p(Math.abs(Pe/K))}}function te(K){return function(Pe){return Math.sign(Pe)*Math.expm1(Math.abs(Pe))*K}}function ge(K){var Pe=1,F=K(Je(Pe),te(Pe));return F.constant=function($){return arguments.length?K(Je(Pe=+$),te(Pe)):Pe},y(F)}function Oe(){var K=ge(P());return K.copy=function(){return x(K,Oe()).constant(K.constant())},v.apply(K,arguments)}function Q(K){return function(Pe){return Pe<0?-Math.pow(-Pe,K):Math.pow(Pe,K)}}function ee(K){return K<0?-Math.sqrt(-K):Math.sqrt(K)}function fe(K){return K<0?-K*K:K*K}function De(K){var Pe=K(pe,pe),F=1;function $(){return F===1?K(pe,pe):F===.5?K(ee,fe):K(Q(F),Q(1/F))}return Pe.exponent=function(N){return arguments.length?(F=+N,$()):F},y(Pe)}function at(){var K=De(P());return K.copy=function(){return x(K,at()).exponent(K.exponent())},v.apply(K,arguments),K}function dt(){return at.apply(null,arguments).exponent(.5)}function Yt(){var K=[],Pe=[],F=[],$;function N(){var V=0,he=Math.max(1,Pe.length);for(F=new Array(he-1);++V0?F[he-1]:K[0],he=F?[$[F-1],Pe]:[$[Fe-1],$[Fe]]},V.unknown=function(_e){return arguments.length&&(L=_e),V},V.thresholds=function(){return $.slice()},V.copy=function(){return Gt().domain([K,Pe]).range(N).unknown(L)},v.apply(y(V),arguments)}function Lt(){var K=[.5],Pe=[0,1],F,$=1;function N(L){return L<=L?Pe[i.bisect(K,L,0,$)]:F}return N.domain=function(L){return arguments.length?(K=O.call(L),$=Math.min(K.length,Pe.length-1),N):K.slice()},N.range=function(L){return arguments.length?(Pe=O.call(L),$=Math.min(K.length,Pe.length-1),N):Pe.slice()},N.invertExtent=function(L){var V=Pe.indexOf(L);return[K[V-1],K[V]]},N.unknown=function(L){return arguments.length?(F=L,N):F},N.copy=function(){return Lt().domain(K).range(Pe).unknown(F)},v.apply(N,arguments)}var Et=1e3,Bt=Et*60,zt=Bt*60,Zt=zt*24,pn=Zt*7,$t=Zt*30,kn=Zt*365;function A(K){return new Date(K)}function j(K){return K instanceof Date?+K:+new Date(+K)}function Ae(K,Pe,F,$,N,L,V,he,_e){var Fe=b(pe,pe),Ie=Fe.invert,$e=Fe.domain,Ke=_e(".%L"),et=_e(":%S"),vt=_e("%I:%M"),Ot=_e("%I %p"),Ct=_e("%a %d"),Nt=_e("%b %d"),Jt=_e("%B"),An=_e("%Y"),bn=[[V,1,Et],[V,5,5*Et],[V,15,15*Et],[V,30,30*Et],[L,1,Bt],[L,5,5*Bt],[L,15,15*Bt],[L,30,30*Bt],[N,1,zt],[N,3,3*zt],[N,6,6*zt],[N,12,12*zt],[$,1,Zt],[$,2,2*Zt],[F,1,pn],[Pe,1,$t],[Pe,3,3*$t],[K,1,kn]];function Ut(Tt){return(V(Tt){(function(e,n){typeof jf=="object"&&typeof Ix!="undefined"?n(jf):typeof define=="function"&&define.amd?define(["exports"],n):n(e.d3=e.d3||{})})(jf,function(e){"use strict";var n=Array.prototype.slice;function i(Y){return Y}var u=1,s=2,h=3,d=4,v=1e-6;function k(Y){return"translate("+(Y+.5)+",0)"}function S(Y){return"translate(0,"+(Y+.5)+")"}function E(Y){return function(le){return+Y(le)}}function O(Y){var le=Math.max(0,Y.bandwidth()-1)/2;return Y.round()&&(le=Math.round(le)),function(pe){return+Y(pe)+le}}function ie(){return!this.__axis}function ve(Y,le){var pe=[],Re=null,B=null,c=6,g=6,x=3,P=Y===u||Y===d?-1:1,b=Y===d||Y===s?"x":"y",U=Y===u||Y===h?k:S;function y(D){var q=Re??(le.ticks?le.ticks.apply(le,pe):le.domain()),oe=B??(le.tickFormat?le.tickFormat.apply(le,pe):i),Le=Math.max(c,0)+x,we=le.range(),re=+we[0]+.5,We=+we[we.length-1]+.5,ce=(le.bandwidth?O:E)(le.copy()),ke=D.selection?D.selection():D,Ce=ke.selectAll(".domain").data([null]),me=ke.selectAll(".tick").data(q,le).order(),Ue=me.exit(),He=me.enter().append("g").attr("class","tick"),Je=me.select("line"),te=me.select("text");Ce=Ce.merge(Ce.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),me=me.merge(He),Je=Je.merge(He.append("line").attr("stroke","currentColor").attr(b+"2",P*c)),te=te.merge(He.append("text").attr("fill","currentColor").attr(b,P*Le).attr("dy",Y===u?"0em":Y===h?"0.71em":"0.32em")),D!==ke&&(Ce=Ce.transition(D),me=me.transition(D),Je=Je.transition(D),te=te.transition(D),Ue=Ue.transition(D).attr("opacity",v).attr("transform",function(ge){return isFinite(ge=ce(ge))?U(ge):this.getAttribute("transform")}),He.attr("opacity",v).attr("transform",function(ge){var Oe=this.parentNode.__axis;return U(Oe&&isFinite(Oe=Oe(ge))?Oe:ce(ge))})),Ue.remove(),Ce.attr("d",Y===d||Y==s?g?"M"+P*g+","+re+"H0.5V"+We+"H"+P*g:"M0.5,"+re+"V"+We:g?"M"+re+","+P*g+"V0.5H"+We+"V"+P*g:"M"+re+",0.5H"+We),me.attr("opacity",1).attr("transform",function(ge){return U(ce(ge))}),Je.attr(b+"2",P*c),te.attr(b,P*Le).text(oe),ke.filter(ie).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",Y===s?"start":Y===d?"end":"middle"),ke.each(function(){this.__axis=ce})}return y.scale=function(D){return arguments.length?(le=D,y):le},y.ticks=function(){return pe=n.call(arguments),y},y.tickArguments=function(D){return arguments.length?(pe=D==null?[]:n.call(D),y):pe.slice()},y.tickValues=function(D){return arguments.length?(Re=D==null?null:n.call(D),y):Re&&Re.slice()},y.tickFormat=function(D){return arguments.length?(B=D,y):B},y.tickSize=function(D){return arguments.length?(c=g=+D,y):c},y.tickSizeInner=function(D){return arguments.length?(c=+D,y):c},y.tickSizeOuter=function(D){return arguments.length?(g=+D,y):g},y.tickPadding=function(D){return arguments.length?(x=+D,y):x},y}function Ee(Y){return ve(u,Y)}function ne(Y){return ve(s,Y)}function R(Y){return ve(h,Y)}function I(Y){return ve(d,Y)}e.axisTop=Ee,e.axisRight=ne,e.axisBottom=R,e.axisLeft=I,Object.defineProperty(e,"__esModule",{value:!0})})});var qf=yt((Yf,Rx)=>{(function(e,n){typeof Yf=="object"&&typeof Rx!="undefined"?n(Yf):typeof define=="function"&&define.amd?define(["exports"],n):(e=e||self,n(e.d3=e.d3||{}))})(Yf,function(e){"use strict";var n={value:function(){}};function i(){for(var v=0,k=arguments.length,S={},E;v=0&&(E=S.slice(O+1),S=S.slice(0,O)),S&&!k.hasOwnProperty(S))throw new Error("unknown type: "+S);return{type:S,name:E}})}u.prototype=i.prototype={constructor:u,on:function(v,k){var S=this._,E=s(v+"",S),O,ie=-1,ve=E.length;if(arguments.length<2){for(;++ie0)for(var S=new Array(O),E=0,O,ie;E{(function(e,n){typeof Gf=="object"&&typeof Fx!="undefined"?n(Gf):typeof define=="function"&&define.amd?define(["exports"],n):(e=e||self,n(e.d3=e.d3||{}))})(Gf,function(e){"use strict";var n=0,i=0,u=0,s=1e3,h,d,v=0,k=0,S=0,E=typeof performance=="object"&&performance.now?performance:Date,O=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(c){setTimeout(c,17)};function ie(){return k||(O(ve),k=E.now()+S)}function ve(){k=0}function Ee(){this._call=this._time=this._next=null}Ee.prototype=ne.prototype={constructor:Ee,restart:function(c,g,x){if(typeof c!="function")throw new TypeError("callback is not a function");x=(x==null?ie():+x)+(g==null?0:+g),!this._next&&d!==this&&(d?d._next=this:h=this,d=this),this._call=c,this._time=x,pe()},stop:function(){this._call&&(this._call=null,this._time=1/0,pe())}};function ne(c,g,x){var P=new Ee;return P.restart(c,g,x),P}function R(){ie(),++n;for(var c=h,g;c;)(g=k-c._time)>=0&&c._call.call(null,g),c=c._next;--n}function I(){k=(v=E.now())+S,n=i=0;try{R()}finally{n=0,le(),k=0}}function Y(){var c=E.now(),g=c-v;g>s&&(S-=g,v=c)}function le(){for(var c,g=h,x,P=1/0;g;)g._call?(P>g._time&&(P=g._time),c=g,g=g._next):(x=g._next,g._next=null,g=c?c._next=x:h=x);d=c,pe(P)}function pe(c){if(!n){i&&(i=clearTimeout(i));var g=c-k;g>24?(c<1/0&&(i=setTimeout(I,c-E.now()-S)),u&&(u=clearInterval(u))):(u||(v=E.now(),u=setInterval(Y,s)),n=1,O(I))}}function Re(c,g,x){var P=new Ee;return g=g==null?0:+g,P.restart(function(b){P.stop(),c(b+g)},g,x),P}function B(c,g,x){var P=new Ee,b=g;return g==null?(P.restart(c,g,x),P):(g=+g,x=x==null?ie():+x,P.restart(function U(y){y+=b,P.restart(U,b+=g,x),c(y)},g,x),P)}e.interval=B,e.now=ie,e.timeout=Re,e.timer=ne,e.timerFlush=R,Object.defineProperty(e,"__esModule",{value:!0})})});var Hx=yt(($f,zx)=>{(function(e,n){typeof $f=="object"&&typeof zx!="undefined"?n($f):typeof define=="function"&&define.amd?define(["exports"],n):(e=e||self,n(e.d3=e.d3||{}))})($f,function(e){"use strict";function n(Q){return+Q}function i(Q){return Q*Q}function u(Q){return Q*(2-Q)}function s(Q){return((Q*=2)<=1?Q*Q:--Q*(2-Q)+1)/2}function h(Q){return Q*Q*Q}function d(Q){return--Q*Q*Q+1}function v(Q){return((Q*=2)<=1?Q*Q*Q:(Q-=2)*Q*Q+2)/2}var k=3,S=function Q(ee){ee=+ee;function fe(De){return Math.pow(De,ee)}return fe.exponent=Q,fe}(k),E=function Q(ee){ee=+ee;function fe(De){return 1-Math.pow(1-De,ee)}return fe.exponent=Q,fe}(k),O=function Q(ee){ee=+ee;function fe(De){return((De*=2)<=1?Math.pow(De,ee):2-Math.pow(2-De,ee))/2}return fe.exponent=Q,fe}(k),ie=Math.PI,ve=ie/2;function Ee(Q){return+Q==1?1:1-Math.cos(Q*ve)}function ne(Q){return Math.sin(Q*ve)}function R(Q){return(1-Math.cos(ie*Q))/2}function I(Q){return(Math.pow(2,-10*Q)-.0009765625)*1.0009775171065494}function Y(Q){return I(1-+Q)}function le(Q){return 1-I(Q)}function pe(Q){return((Q*=2)<=1?I(1-Q):2-I(Q-1))/2}function Re(Q){return 1-Math.sqrt(1-Q*Q)}function B(Q){return Math.sqrt(1- --Q*Q)}function c(Q){return((Q*=2)<=1?1-Math.sqrt(1-Q*Q):Math.sqrt(1-(Q-=2)*Q)+1)/2}var g=4/11,x=6/11,P=8/11,b=3/4,U=9/11,y=10/11,D=15/16,q=21/22,oe=63/64,Le=1/g/g;function we(Q){return 1-re(1-Q)}function re(Q){return(Q=+Q){(function(e,n){typeof Vf=="object"&&typeof Wx!="undefined"?n(Vf,Jo(),qf(),Gp(),zf(),Rf(),Hx()):typeof define=="function"&&define.amd?define(["exports","d3-selection","d3-dispatch","d3-timer","d3-interpolate","d3-color","d3-ease"],n):(e=e||self,n(e.d3=e.d3||{},e.d3,e.d3,e.d3,e.d3,e.d3,e.d3))})(Vf,function(e,n,i,u,s,h,d){"use strict";var v=i.dispatch("start","end","cancel","interrupt"),k=[],S=0,E=1,O=2,ie=3,ve=4,Ee=5,ne=6;function R(N,L,V,he,_e,Fe){var Ie=N.__transition;if(!Ie)N.__transition={};else if(V in Ie)return;pe(N,V,{name:L,index:he,group:_e,on:v,tween:k,time:Fe.time,delay:Fe.delay,duration:Fe.duration,ease:Fe.ease,timer:null,state:S})}function I(N,L){var V=le(N,L);if(V.state>S)throw new Error("too late; already scheduled");return V}function Y(N,L){var V=le(N,L);if(V.state>ie)throw new Error("too late; already running");return V}function le(N,L){var V=N.__transition;if(!V||!(V=V[L]))throw new Error("transition not found");return V}function pe(N,L,V){var he=N.__transition,_e;he[L]=V,V.timer=u.timer(Fe,0,V.time);function Fe(et){V.state=E,V.timer.restart(Ie,V.delay,V.time),V.delay<=et&&Ie(et-V.delay)}function Ie(et){var vt,Ot,Ct,Nt;if(V.state!==E)return Ke();for(vt in he)if(Nt=he[vt],Nt.name===V.name){if(Nt.state===ie)return u.timeout(Ie);Nt.state===ve?(Nt.state=ne,Nt.timer.stop(),Nt.on.call("interrupt",N,N.__data__,Nt.index,Nt.group),delete he[vt]):+vtO&&he.state=0&&(L=L.slice(0,V)),!L||L==="start"})}function at(N,L,V){var he,_e,Fe=De(L)?I:Y;return function(){var Ie=Fe(this,N),$e=Ie.on;$e!==he&&(_e=(he=$e).copy()).on(L,V),Ie.on=_e}}function dt(N,L){var V=this._id;return arguments.length<2?le(this.node(),V).on.on(N):this.each(at(V,N,L))}function Yt(N){return function(){var L=this.parentNode;for(var V in this.__transition)if(+V!==N)return;L&&L.removeChild(this)}}function Gt(){return this.on("end.remove",Yt(this._id))}function Lt(N){var L=this._name,V=this._id;typeof N!="function"&&(N=n.selector(N));for(var he=this._groups,_e=he.length,Fe=new Array(_e),Ie=0;Ie<_e;++Ie)for(var $e=he[Ie],Ke=$e.length,et=Fe[Ie]=new Array(Ke),vt,Ot,Ct=0;CtE&&he.name===L)return new Rt([[N]],F,L,+_e)}return null}e.active=$,e.interrupt=Re,e.transition=Wt,Object.defineProperty(e,"__esModule",{value:!0})})});var jx=yt((Xf,Bx)=>{(function(e,n){typeof Xf=="object"&&typeof Bx!="undefined"?n(Xf):typeof define=="function"&&define.amd?define(["exports"],n):(e=e||self,n(e.d3=e.d3||{}))})(Xf,function(e){"use strict";var n=Math.PI,i=2*n,u=1e-6,s=i-u;function h(){this._x0=this._y0=this._x1=this._y1=null,this._=""}function d(){return new h}h.prototype=d.prototype={constructor:h,moveTo:function(v,k){this._+="M"+(this._x0=this._x1=+v)+","+(this._y0=this._y1=+k)},closePath:function(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},lineTo:function(v,k){this._+="L"+(this._x1=+v)+","+(this._y1=+k)},quadraticCurveTo:function(v,k,S,E){this._+="Q"+ +v+","+ +k+","+(this._x1=+S)+","+(this._y1=+E)},bezierCurveTo:function(v,k,S,E,O,ie){this._+="C"+ +v+","+ +k+","+ +S+","+ +E+","+(this._x1=+O)+","+(this._y1=+ie)},arcTo:function(v,k,S,E,O){v=+v,k=+k,S=+S,E=+E,O=+O;var ie=this._x1,ve=this._y1,Ee=S-v,ne=E-k,R=ie-v,I=ve-k,Y=R*R+I*I;if(O<0)throw new Error("negative radius: "+O);if(this._x1===null)this._+="M"+(this._x1=v)+","+(this._y1=k);else if(Y>u)if(!(Math.abs(I*Ee-ne*R)>u)||!O)this._+="L"+(this._x1=v)+","+(this._y1=k);else{var le=S-ie,pe=E-ve,Re=Ee*Ee+ne*ne,B=le*le+pe*pe,c=Math.sqrt(Re),g=Math.sqrt(Y),x=O*Math.tan((n-Math.acos((Re+Y-B)/(2*c*g)))/2),P=x/g,b=x/c;Math.abs(P-1)>u&&(this._+="L"+(v+P*R)+","+(k+P*I)),this._+="A"+O+","+O+",0,0,"+ +(I*le>R*pe)+","+(this._x1=v+b*Ee)+","+(this._y1=k+b*ne)}},arc:function(v,k,S,E,O,ie){v=+v,k=+k,S=+S,ie=!!ie;var ve=S*Math.cos(E),Ee=S*Math.sin(E),ne=v+ve,R=k+Ee,I=1^ie,Y=ie?E-O:O-E;if(S<0)throw new Error("negative radius: "+S);this._x1===null?this._+="M"+ne+","+R:(Math.abs(this._x1-ne)>u||Math.abs(this._y1-R)>u)&&(this._+="L"+ne+","+R),!!S&&(Y<0&&(Y=Y%i+i),Y>s?this._+="A"+S+","+S+",0,1,"+I+","+(v-ve)+","+(k-Ee)+"A"+S+","+S+",0,1,"+I+","+(this._x1=ne)+","+(this._y1=R):Y>u&&(this._+="A"+S+","+S+",0,"+ +(Y>=n)+","+I+","+(this._x1=v+S*Math.cos(O))+","+(this._y1=k+S*Math.sin(O))))},rect:function(v,k,S,E){this._+="M"+(this._x0=this._x1=+v)+","+(this._y0=this._y1=+k)+"h"+ +S+"v"+ +E+"h"+-S+"Z"},toString:function(){return this._}},e.path=d,Object.defineProperty(e,"__esModule",{value:!0})})});var qx=yt((Kf,Yx)=>{(function(e,n){typeof Kf=="object"&&typeof Yx!="undefined"?n(Kf,jx()):typeof define=="function"&&define.amd?define(["exports","d3-path"],n):(e=e||self,n(e.d3=e.d3||{},e.d3))})(Kf,function(e,n){"use strict";function i(w){return function(){return w}}var u=Math.abs,s=Math.atan2,h=Math.cos,d=Math.max,v=Math.min,k=Math.sin,S=Math.sqrt,E=1e-12,O=Math.PI,ie=O/2,ve=2*O;function Ee(w){return w>1?0:w<-1?O:Math.acos(w)}function ne(w){return w>=1?ie:w<=-1?-ie:Math.asin(w)}function R(w){return w.innerRadius}function I(w){return w.outerRadius}function Y(w){return w.startAngle}function le(w){return w.endAngle}function pe(w){return w&&w.padAngle}function Re(w,z,W,ae,Me,ue,Ye,xe){var Ge=W-w,ot=ae-z,rt=Ye-Me,mt=xe-ue,Pt=mt*Ge-rt*ot;if(!(Pt*PtTi*Ti+li*li&&(Ar=cr,Zn=Sr),{cx:Ar,cy:Zn,x01:-rt,y01:-mt,x11:Ar*(Me/Tr-1),y11:Zn*(Me/Tr-1)}}function c(){var w=R,z=I,W=i(0),ae=null,Me=Y,ue=le,Ye=pe,xe=null;function Ge(){var ot,rt,mt=+w.apply(this,arguments),Pt=+z.apply(this,arguments),qt=Me.apply(this,arguments)-ie,It=ue.apply(this,arguments)-ie,dn=u(It-qt),Kt=It>qt;if(xe||(xe=ot=n.path()),PtE))xe.moveTo(0,0);else if(dn>ve-E)xe.moveTo(Pt*h(qt),Pt*k(qt)),xe.arc(0,0,Pt,qt,It,!Kt),mt>E&&(xe.moveTo(mt*h(It),mt*k(It)),xe.arc(0,0,mt,It,qt,Kt));else{var Rn=qt,Nn=It,mn=qt,Pn=It,Tr=dn,Qn=dn,Zr=Ye.apply(this,arguments)/2,Ar=Zr>E&&(ae?+ae.apply(this,arguments):S(mt*mt+Pt*Pt)),Zn=v(u(Pt-mt)/2,+W.apply(this,arguments)),cr=Zn,Sr=Zn,At,Qt;if(Ar>E){var Ti=ne(Ar/mt*k(Zr)),li=ne(Ar/Pt*k(Zr));(Tr-=Ti*2)>E?(Ti*=Kt?1:-1,mn+=Ti,Pn-=Ti):(Tr=0,mn=Pn=(qt+It)/2),(Qn-=li*2)>E?(li*=Kt?1:-1,Rn+=li,Nn-=li):(Qn=0,Rn=Nn=(qt+It)/2)}var Gn=Pt*h(Rn),Hi=Pt*k(Rn),ea=mt*h(Pn),Wi=mt*k(Pn);if(Zn>E){var xo=Pt*h(Nn),Ir=Pt*k(Nn),_o=mt*h(mn),Rr=mt*k(mn),br;if(dnE?Sr>E?(At=B(_o,Rr,Gn,Hi,Pt,Sr,Kt),Qt=B(xo,Ir,ea,Wi,Pt,Sr,Kt),xe.moveTo(At.cx+At.x01,At.cy+At.y01),SrE)||!(Tr>E)?xe.lineTo(ea,Wi):cr>E?(At=B(ea,Wi,xo,Ir,mt,-cr,Kt),Qt=B(Gn,Hi,_o,Rr,mt,-cr,Kt),xe.lineTo(At.cx+At.x01,At.cy+At.y01),cr=Pt;--qt)xe.point(Nn[qt],mn[qt]);xe.lineEnd(),xe.areaEnd()}Kt&&(Nn[mt]=+w(dn,mt,rt),mn[mt]=+W(dn,mt,rt),xe.point(z?+z(dn,mt,rt):Nn[mt],ae?+ae(dn,mt,rt):mn[mt]))}if(Rn)return xe=null,Rn+""||null}function ot(){return U().defined(Me).curve(Ye).context(ue)}return Ge.x=function(rt){return arguments.length?(w=typeof rt=="function"?rt:i(+rt),z=null,Ge):w},Ge.x0=function(rt){return arguments.length?(w=typeof rt=="function"?rt:i(+rt),Ge):w},Ge.x1=function(rt){return arguments.length?(z=rt==null?null:typeof rt=="function"?rt:i(+rt),Ge):z},Ge.y=function(rt){return arguments.length?(W=typeof rt=="function"?rt:i(+rt),ae=null,Ge):W},Ge.y0=function(rt){return arguments.length?(W=typeof rt=="function"?rt:i(+rt),Ge):W},Ge.y1=function(rt){return arguments.length?(ae=rt==null?null:typeof rt=="function"?rt:i(+rt),Ge):ae},Ge.lineX0=Ge.lineY0=function(){return ot().x(w).y(W)},Ge.lineY1=function(){return ot().x(w).y(ae)},Ge.lineX1=function(){return ot().x(z).y(W)},Ge.defined=function(rt){return arguments.length?(Me=typeof rt=="function"?rt:i(!!rt),Ge):Me},Ge.curve=function(rt){return arguments.length?(Ye=rt,ue!=null&&(xe=Ye(ue)),Ge):Ye},Ge.context=function(rt){return arguments.length?(rt==null?ue=xe=null:xe=Ye(ue=rt),Ge):ue},Ge}function D(w,z){return zw?1:z>=w?0:NaN}function q(w){return w}function oe(){var w=q,z=D,W=null,ae=i(0),Me=i(ve),ue=i(0);function Ye(xe){var Ge,ot=xe.length,rt,mt,Pt=0,qt=new Array(ot),It=new Array(ot),dn=+ae.apply(this,arguments),Kt=Math.min(ve,Math.max(-ve,Me.apply(this,arguments)-dn)),Rn,Nn=Math.min(Math.abs(Kt)/ot,ue.apply(this,arguments)),mn=Nn*(Kt<0?-1:1),Pn;for(Ge=0;Ge0&&(Pt+=Pn);for(z!=null?qt.sort(function(Tr,Qn){return z(It[Tr],It[Qn])}):W!=null&&qt.sort(function(Tr,Qn){return W(xe[Tr],xe[Qn])}),Ge=0,mt=Pt?(Kt-ot*mn)/Pt:0;Ge0?Pn*mt:0)+mn,It[rt]={data:xe[rt],index:Ge,value:Pn,startAngle:dn,endAngle:Rn,padAngle:Nn};return It}return Ye.value=function(xe){return arguments.length?(w=typeof xe=="function"?xe:i(+xe),Ye):w},Ye.sortValues=function(xe){return arguments.length?(z=xe,W=null,Ye):z},Ye.sort=function(xe){return arguments.length?(W=xe,z=null,Ye):W},Ye.startAngle=function(xe){return arguments.length?(ae=typeof xe=="function"?xe:i(+xe),Ye):ae},Ye.endAngle=function(xe){return arguments.length?(Me=typeof xe=="function"?xe:i(+xe),Ye):Me},Ye.padAngle=function(xe){return arguments.length?(ue=typeof xe=="function"?xe:i(+xe),Ye):ue},Ye}var Le=re(x);function we(w){this._curve=w}we.prototype={areaStart:function(){this._curve.areaStart()},areaEnd:function(){this._curve.areaEnd()},lineStart:function(){this._curve.lineStart()},lineEnd:function(){this._curve.lineEnd()},point:function(w,z){this._curve.point(z*Math.sin(w),z*-Math.cos(w))}};function re(w){function z(W){return new we(w(W))}return z._curve=w,z}function We(w){var z=w.curve;return w.angle=w.x,delete w.x,w.radius=w.y,delete w.y,w.curve=function(W){return arguments.length?z(re(W)):z()._curve},w}function ce(){return We(U().curve(Le))}function ke(){var w=y().curve(Le),z=w.curve,W=w.lineX0,ae=w.lineX1,Me=w.lineY0,ue=w.lineY1;return w.angle=w.x,delete w.x,w.startAngle=w.x0,delete w.x0,w.endAngle=w.x1,delete w.x1,w.radius=w.y,delete w.y,w.innerRadius=w.y0,delete w.y0,w.outerRadius=w.y1,delete w.y1,w.lineStartAngle=function(){return We(W())},delete w.lineX0,w.lineEndAngle=function(){return We(ae())},delete w.lineX1,w.lineInnerRadius=function(){return We(Me())},delete w.lineY0,w.lineOuterRadius=function(){return We(ue())},delete w.lineY1,w.curve=function(Ye){return arguments.length?z(re(Ye)):z()._curve},w}function Ce(w,z){return[(z=+z)*Math.cos(w-=Math.PI/2),z*Math.sin(w)]}var me=Array.prototype.slice;function Ue(w){return w.source}function He(w){return w.target}function Je(w){var z=Ue,W=He,ae=P,Me=b,ue=null;function Ye(){var xe,Ge=me.call(arguments),ot=z.apply(this,Ge),rt=W.apply(this,Ge);if(ue||(ue=xe=n.path()),w(ue,+ae.apply(this,(Ge[0]=ot,Ge)),+Me.apply(this,Ge),+ae.apply(this,(Ge[0]=rt,Ge)),+Me.apply(this,Ge)),xe)return ue=null,xe+""||null}return Ye.source=function(xe){return arguments.length?(z=xe,Ye):z},Ye.target=function(xe){return arguments.length?(W=xe,Ye):W},Ye.x=function(xe){return arguments.length?(ae=typeof xe=="function"?xe:i(+xe),Ye):ae},Ye.y=function(xe){return arguments.length?(Me=typeof xe=="function"?xe:i(+xe),Ye):Me},Ye.context=function(xe){return arguments.length?(ue=xe??null,Ye):ue},Ye}function te(w,z,W,ae,Me){w.moveTo(z,W),w.bezierCurveTo(z=(z+ae)/2,W,z,Me,ae,Me)}function ge(w,z,W,ae,Me){w.moveTo(z,W),w.bezierCurveTo(z,W=(W+Me)/2,ae,W,ae,Me)}function Oe(w,z,W,ae,Me){var ue=Ce(z,W),Ye=Ce(z,W=(W+Me)/2),xe=Ce(ae,W),Ge=Ce(ae,Me);w.moveTo(ue[0],ue[1]),w.bezierCurveTo(Ye[0],Ye[1],xe[0],xe[1],Ge[0],Ge[1])}function Q(){return Je(te)}function ee(){return Je(ge)}function fe(){var w=Je(Oe);return w.angle=w.x,delete w.x,w.radius=w.y,delete w.y,w}var De={draw:function(w,z){var W=Math.sqrt(z/O);w.moveTo(W,0),w.arc(0,0,W,0,ve)}},at={draw:function(w,z){var W=Math.sqrt(z/5)/2;w.moveTo(-3*W,-W),w.lineTo(-W,-W),w.lineTo(-W,-3*W),w.lineTo(W,-3*W),w.lineTo(W,-W),w.lineTo(3*W,-W),w.lineTo(3*W,W),w.lineTo(W,W),w.lineTo(W,3*W),w.lineTo(-W,3*W),w.lineTo(-W,W),w.lineTo(-3*W,W),w.closePath()}},dt=Math.sqrt(1/3),Yt=dt*2,Gt={draw:function(w,z){var W=Math.sqrt(z/Yt),ae=W*dt;w.moveTo(0,-W),w.lineTo(ae,0),w.lineTo(0,W),w.lineTo(-ae,0),w.closePath()}},Lt=.8908130915292852,Et=Math.sin(O/10)/Math.sin(7*O/10),Bt=Math.sin(ve/10)*Et,zt=-Math.cos(ve/10)*Et,Zt={draw:function(w,z){var W=Math.sqrt(z*Lt),ae=Bt*W,Me=zt*W;w.moveTo(0,-W),w.lineTo(ae,Me);for(var ue=1;ue<5;++ue){var Ye=ve*ue/5,xe=Math.cos(Ye),Ge=Math.sin(Ye);w.lineTo(Ge*W,-xe*W),w.lineTo(xe*ae-Ge*Me,Ge*ae+xe*Me)}w.closePath()}},pn={draw:function(w,z){var W=Math.sqrt(z),ae=-W/2;w.rect(ae,ae,W,W)}},$t=Math.sqrt(3),kn={draw:function(w,z){var W=-Math.sqrt(z/($t*3));w.moveTo(0,W*2),w.lineTo(-$t*W,-W),w.lineTo($t*W,-W),w.closePath()}},A=-.5,j=Math.sqrt(3)/2,Ae=1/Math.sqrt(12),Xe=(Ae/2+1)*3,je={draw:function(w,z){var W=Math.sqrt(z/Xe),ae=W/2,Me=W*Ae,ue=ae,Ye=W*Ae+W,xe=-ue,Ge=Ye;w.moveTo(ae,Me),w.lineTo(ue,Ye),w.lineTo(xe,Ge),w.lineTo(A*ae-j*Me,j*ae+A*Me),w.lineTo(A*ue-j*Ye,j*ue+A*Ye),w.lineTo(A*xe-j*Ge,j*xe+A*Ge),w.lineTo(A*ae+j*Me,A*Me-j*ae),w.lineTo(A*ue+j*Ye,A*Ye-j*ue),w.lineTo(A*xe+j*Ge,A*Ge-j*xe),w.closePath()}},M=[De,at,Gt,pn,Zt,kn,je];function J(){var w=i(De),z=i(64),W=null;function ae(){var Me;if(W||(W=Me=n.path()),w.apply(this,arguments).draw(W,+z.apply(this,arguments)),Me)return W=null,Me+""||null}return ae.type=function(Me){return arguments.length?(w=typeof Me=="function"?Me:i(Me),ae):w},ae.size=function(Me){return arguments.length?(z=typeof Me=="function"?Me:i(+Me),ae):z},ae.context=function(Me){return arguments.length?(W=Me??null,ae):W},ae}function Se(){}function ze(w,z,W){w._context.bezierCurveTo((2*w._x0+w._x1)/3,(2*w._y0+w._y1)/3,(w._x0+2*w._x1)/3,(w._y0+2*w._y1)/3,(w._x0+4*w._x1+z)/6,(w._y0+4*w._y1+W)/6)}function tt(w){this._context=w}tt.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:ze(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(w,z){switch(w=+w,z=+z,this._point){case 0:this._point=1,this._line?this._context.lineTo(w,z):this._context.moveTo(w,z);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:ze(this,w,z);break}this._x0=this._x1,this._x1=w,this._y0=this._y1,this._y1=z}};function ct(w){return new tt(w)}function ht(w){this._context=w}ht.prototype={areaStart:Se,areaEnd:Se,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(w,z){switch(w=+w,z=+z,this._point){case 0:this._point=1,this._x2=w,this._y2=z;break;case 1:this._point=2,this._x3=w,this._y3=z;break;case 2:this._point=3,this._x4=w,this._y4=z,this._context.moveTo((this._x0+4*this._x1+w)/6,(this._y0+4*this._y1+z)/6);break;default:ze(this,w,z);break}this._x0=this._x1,this._x1=w,this._y0=this._y1,this._y1=z}};function wt(w){return new ht(w)}function bt(w){this._context=w}bt.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(w,z){switch(w=+w,z=+z,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var W=(this._x0+4*this._x1+w)/6,ae=(this._y0+4*this._y1+z)/6;this._line?this._context.lineTo(W,ae):this._context.moveTo(W,ae);break;case 3:this._point=4;default:ze(this,w,z);break}this._x0=this._x1,this._x1=w,this._y0=this._y1,this._y1=z}};function Rt(w){return new bt(w)}function Wt(w,z){this._basis=new tt(w),this._beta=z}Wt.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var w=this._x,z=this._y,W=w.length-1;if(W>0)for(var ae=w[0],Me=z[0],ue=w[W]-ae,Ye=z[W]-Me,xe=-1,Ge;++xe<=W;)Ge=xe/W,this._basis.point(this._beta*w[xe]+(1-this._beta)*(ae+Ge*ue),this._beta*z[xe]+(1-this._beta)*(Me+Ge*Ye));this._x=this._y=null,this._basis.lineEnd()},point:function(w,z){this._x.push(+w),this._y.push(+z)}};var ln=function w(z){function W(ae){return z===1?new tt(ae):new Wt(ae,z)}return W.beta=function(ae){return w(+ae)},W}(.85);function nn(w,z,W){w._context.bezierCurveTo(w._x1+w._k*(w._x2-w._x0),w._y1+w._k*(w._y2-w._y0),w._x2+w._k*(w._x1-z),w._y2+w._k*(w._y1-W),w._x2,w._y2)}function gn(w,z){this._context=w,this._k=(1-z)/6}gn.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:nn(this,this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(w,z){switch(w=+w,z=+z,this._point){case 0:this._point=1,this._line?this._context.lineTo(w,z):this._context.moveTo(w,z);break;case 1:this._point=2,this._x1=w,this._y1=z;break;case 2:this._point=3;default:nn(this,w,z);break}this._x0=this._x1,this._x1=this._x2,this._x2=w,this._y0=this._y1,this._y1=this._y2,this._y2=z}};var K=function w(z){function W(ae){return new gn(ae,z)}return W.tension=function(ae){return w(+ae)},W}(0);function Pe(w,z){this._context=w,this._k=(1-z)/6}Pe.prototype={areaStart:Se,areaEnd:Se,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},point:function(w,z){switch(w=+w,z=+z,this._point){case 0:this._point=1,this._x3=w,this._y3=z;break;case 1:this._point=2,this._context.moveTo(this._x4=w,this._y4=z);break;case 2:this._point=3,this._x5=w,this._y5=z;break;default:nn(this,w,z);break}this._x0=this._x1,this._x1=this._x2,this._x2=w,this._y0=this._y1,this._y1=this._y2,this._y2=z}};var F=function w(z){function W(ae){return new Pe(ae,z)}return W.tension=function(ae){return w(+ae)},W}(0);function $(w,z){this._context=w,this._k=(1-z)/6}$.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(w,z){switch(w=+w,z=+z,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:nn(this,w,z);break}this._x0=this._x1,this._x1=this._x2,this._x2=w,this._y0=this._y1,this._y1=this._y2,this._y2=z}};var N=function w(z){function W(ae){return new $(ae,z)}return W.tension=function(ae){return w(+ae)},W}(0);function L(w,z,W){var ae=w._x1,Me=w._y1,ue=w._x2,Ye=w._y2;if(w._l01_a>E){var xe=2*w._l01_2a+3*w._l01_a*w._l12_a+w._l12_2a,Ge=3*w._l01_a*(w._l01_a+w._l12_a);ae=(ae*xe-w._x0*w._l12_2a+w._x2*w._l01_2a)/Ge,Me=(Me*xe-w._y0*w._l12_2a+w._y2*w._l01_2a)/Ge}if(w._l23_a>E){var ot=2*w._l23_2a+3*w._l23_a*w._l12_a+w._l12_2a,rt=3*w._l23_a*(w._l23_a+w._l12_a);ue=(ue*ot+w._x1*w._l23_2a-z*w._l12_2a)/rt,Ye=(Ye*ot+w._y1*w._l23_2a-W*w._l12_2a)/rt}w._context.bezierCurveTo(ae,Me,ue,Ye,w._x2,w._y2)}function V(w,z){this._context=w,this._alpha=z}V.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(w,z){if(w=+w,z=+z,this._point){var W=this._x2-w,ae=this._y2-z;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(W*W+ae*ae,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(w,z):this._context.moveTo(w,z);break;case 1:this._point=2;break;case 2:this._point=3;default:L(this,w,z);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=w,this._y0=this._y1,this._y1=this._y2,this._y2=z}};var he=function w(z){function W(ae){return z?new V(ae,z):new gn(ae,0)}return W.alpha=function(ae){return w(+ae)},W}(.5);function _e(w,z){this._context=w,this._alpha=z}_e.prototype={areaStart:Se,areaEnd:Se,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},point:function(w,z){if(w=+w,z=+z,this._point){var W=this._x2-w,ae=this._y2-z;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(W*W+ae*ae,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=w,this._y3=z;break;case 1:this._point=2,this._context.moveTo(this._x4=w,this._y4=z);break;case 2:this._point=3,this._x5=w,this._y5=z;break;default:L(this,w,z);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=w,this._y0=this._y1,this._y1=this._y2,this._y2=z}};var Fe=function w(z){function W(ae){return z?new _e(ae,z):new Pe(ae,0)}return W.alpha=function(ae){return w(+ae)},W}(.5);function Ie(w,z){this._context=w,this._alpha=z}Ie.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(w,z){if(w=+w,z=+z,this._point){var W=this._x2-w,ae=this._y2-z;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(W*W+ae*ae,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:L(this,w,z);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=w,this._y0=this._y1,this._y1=this._y2,this._y2=z}};var $e=function w(z){function W(ae){return z?new Ie(ae,z):new $(ae,0)}return W.alpha=function(ae){return w(+ae)},W}(.5);function Ke(w){this._context=w}Ke.prototype={areaStart:Se,areaEnd:Se,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(w,z){w=+w,z=+z,this._point?this._context.lineTo(w,z):(this._point=1,this._context.moveTo(w,z))}};function et(w){return new Ke(w)}function vt(w){return w<0?-1:1}function Ot(w,z,W){var ae=w._x1-w._x0,Me=z-w._x1,ue=(w._y1-w._y0)/(ae||Me<0&&-0),Ye=(W-w._y1)/(Me||ae<0&&-0),xe=(ue*Me+Ye*ae)/(ae+Me);return(vt(ue)+vt(Ye))*Math.min(Math.abs(ue),Math.abs(Ye),.5*Math.abs(xe))||0}function Ct(w,z){var W=w._x1-w._x0;return W?(3*(w._y1-w._y0)/W-z)/2:z}function Nt(w,z,W){var ae=w._x0,Me=w._y0,ue=w._x1,Ye=w._y1,xe=(ue-ae)/3;w._context.bezierCurveTo(ae+xe,Me+xe*z,ue-xe,Ye-xe*W,ue,Ye)}function Jt(w){this._context=w}Jt.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:Nt(this,this._t0,Ct(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(w,z){var W=NaN;if(w=+w,z=+z,!(w===this._x1&&z===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(w,z):this._context.moveTo(w,z);break;case 1:this._point=2;break;case 2:this._point=3,Nt(this,Ct(this,W=Ot(this,w,z)),W);break;default:Nt(this,this._t0,W=Ot(this,w,z));break}this._x0=this._x1,this._x1=w,this._y0=this._y1,this._y1=z,this._t0=W}}};function An(w){this._context=new bn(w)}(An.prototype=Object.create(Jt.prototype)).point=function(w,z){Jt.prototype.point.call(this,z,w)};function bn(w){this._context=w}bn.prototype={moveTo:function(w,z){this._context.moveTo(z,w)},closePath:function(){this._context.closePath()},lineTo:function(w,z){this._context.lineTo(z,w)},bezierCurveTo:function(w,z,W,ae,Me,ue){this._context.bezierCurveTo(z,w,ae,W,ue,Me)}};function Ut(w){return new Jt(w)}function st(w){return new An(w)}function Tt(w){this._context=w}Tt.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var w=this._x,z=this._y,W=w.length;if(W)if(this._line?this._context.lineTo(w[0],z[0]):this._context.moveTo(w[0],z[0]),W===2)this._context.lineTo(w[1],z[1]);else for(var ae=rn(w),Me=rn(z),ue=0,Ye=1;Ye=0;--z)Me[z]=(Ye[z]-Me[z+1])/ue[z];for(ue[W-1]=(w[W]+Me[W-1])/2,z=0;z=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(w,z){switch(w=+w,z=+z,this._point){case 0:this._point=1,this._line?this._context.lineTo(w,z):this._context.moveTo(w,z);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,z),this._context.lineTo(w,z);else{var W=this._x*(1-this._t)+w*this._t;this._context.lineTo(W,this._y),this._context.lineTo(W,z)}break}}this._x=w,this._y=z}};function G(w){return new St(w,.5)}function se(w){return new St(w,0)}function qe(w){return new St(w,1)}function de(w,z){if((Ye=w.length)>1)for(var W=1,ae,Me,ue=w[z[0]],Ye,xe=ue.length;W=0;)W[z]=z;return W}function H(w,z){return w[z]}function be(){var w=i([]),z=_,W=de,ae=H;function Me(ue){var Ye=w.apply(this,arguments),xe,Ge=ue.length,ot=Ye.length,rt=new Array(ot),mt;for(xe=0;xe0){for(var W,ae,Me=0,ue=w[0].length,Ye;Me0)for(var W,ae=0,Me,ue,Ye,xe,Ge,ot=w[z[0]].length;ae0?(Me[0]=Ye,Me[1]=Ye+=ue):ue<0?(Me[1]=xe,Me[0]=xe+=ue):(Me[0]=0,Me[1]=ue)}function ft(w,z){if((Me=w.length)>0){for(var W=0,ae=w[z[0]],Me,ue=ae.length;W0)||!((ue=(Me=w[z[0]]).length)>0))){for(var W=0,ae=1,Me,ue,Ye;aeue&&(ue=Me,W=z);return W}function on(w){var z=w.map(In);return _(w).sort(function(W,ae){return z[W]-z[ae]})}function In(w){for(var z=0,W=-1,ae=w.length,Me;++W{(function(e,n){typeof Qf=="object"&&typeof Gx!="undefined"?n(Qf):typeof define=="function"&&define.amd?define(["exports"],n):(e=typeof globalThis!="undefined"?globalThis:e||self,n(e.d3=e.d3||{}))})(Qf,function(e){"use strict";function n(B,c){var g=Object.keys(B);if(Object.getOwnPropertySymbols){var x=Object.getOwnPropertySymbols(B);c&&(x=x.filter(function(P){return Object.getOwnPropertyDescriptor(B,P).enumerable})),g.push.apply(g,x)}return g}function i(B){for(var c=1;cB.length)&&(c=B.length);for(var g=0,x=new Array(c);g=B.length?{done:!0}:{done:!1,value:B[x++]}},e:function(D){throw D},f:P}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var b=!0,U=!1,y;return{s:function(){g=g.call(B)},n:function(){var D=g.next();return b=D.done,D},e:function(D){U=!0,y=D},f:function(){try{!b&&g.return!=null&&g.return()}finally{if(U)throw y}}}}function k(B,c){var g=[],x=[];function P(b,U){if(b.length===1)g.push(b[0]),x.push(b[0]);else{for(var y=Array(b.length-1),D=0;D=3&&(c.x1=B[1][0],c.y1=B[1][1]),c.x=B[B.length-1][0],c.y=B[B.length-1][1],B.length===4?c.type="C":B.length===3?c.type="Q":c.type="L",c}function E(B,c){c=c||2;for(var g=[],x=B,P=1/c,b=0;b0?Le-=1:Le0&&(Le-=1))}return D[Le]=(D[Le]||0)+1,D},[]),y=U.reduce(function(D,q,oe){if(oe===B.length-1){var Le=Ee(q,s({},B[B.length-1]));return Le[0].type==="M"&&Le.forEach(function(we){we.type="L"}),D.concat(Le)}return D.concat(I(B[oe],B[oe+1],q))},[]);return y.unshift(B[0]),y}function le(B){for(var c=(B||"").match(ie)||[],g=[],x,P,b=0;b0&&x[x.length-1].type==="Z"&&x.pop(),P.length>0&&P[P.length-1].type==="Z"&&P.pop(),x.length?P.length||P.push(x[0]):x.push(P[0]);var U=Math.abs(P.length-x.length);U!==0&&(P.length>x.length?x=Y(x,P,g):P.length{(function(e,n){typeof ec=="object"&&typeof Xx!="undefined"?n(ec):typeof define=="function"&&define.amd?define(["exports"],n):(e=e||self,n(e.d3=e.d3||{}))})(ec,function(e){"use strict";function n(c){var g=+this._x.call(null,c),x=+this._y.call(null,c);return i(this.cover(g,x),g,x,c)}function i(c,g,x,P){if(isNaN(g)||isNaN(x))return c;var b,U=c._root,y={data:P},D=c._x0,q=c._y0,oe=c._x1,Le=c._y1,we,re,We,ce,ke,Ce,me,Ue;if(!U)return c._root=y,c;for(;U.length;)if((ke=g>=(we=(D+oe)/2))?D=we:oe=we,(Ce=x>=(re=(q+Le)/2))?q=re:Le=re,b=U,!(U=U[me=Ce<<1|ke]))return b[me]=y,c;if(We=+c._x.call(null,U.data),ce=+c._y.call(null,U.data),g===We&&x===ce)return y.next=U,b?b[me]=y:c._root=y,c;do b=b?b[me]=new Array(4):c._root=new Array(4),(ke=g>=(we=(D+oe)/2))?D=we:oe=we,(Ce=x>=(re=(q+Le)/2))?q=re:Le=re;while((me=Ce<<1|ke)==(Ue=(ce>=re)<<1|We>=we));return b[Ue]=U,b[me]=y,c}function u(c){var g,x,P=c.length,b,U,y=new Array(P),D=new Array(P),q=1/0,oe=1/0,Le=-1/0,we=-1/0;for(x=0;xLe&&(Le=b),Uwe&&(we=U));if(q>Le||oe>we)return this;for(this.cover(q,oe).cover(Le,we),x=0;xc||c>=b||P>g||g>=U;)switch(oe=(gLe||(D=ce.y0)>we||(q=ce.x1)=me)<<1|c>=Ce)&&(ce=re[re.length-1],re[re.length-1]=re[re.length-1-ke],re[re.length-1-ke]=ce)}else{var Ue=c-+this._x.call(null,We.data),He=g-+this._y.call(null,We.data),Je=Ue*Ue+He*He;if(Je=(re=(y+q)/2))?y=re:q=re,(ke=we>=(We=(D+oe)/2))?D=We:oe=We,g=x,!(x=x[Ce=ke<<1|ce]))return this;if(!x.length)break;(g[Ce+1&3]||g[Ce+2&3]||g[Ce+3&3])&&(P=g,me=Ce)}for(;x.data!==c;)if(b=x,!(x=x.next))return this;return(U=x.next)&&delete x.next,b?(U?b.next=U:delete b.next,this):g?(U?g[Ce]=U:delete g[Ce],(x=g[0]||g[1]||g[2]||g[3])&&x===(g[3]||g[2]||g[1]||g[0])&&!x.length&&(P?P[me]=x:this._root=x),this):(this._root=U,this)}function E(c){for(var g=0,x=c.length;g{(function(e,n){typeof tc=="object"&&typeof Qx!="undefined"?n(tc,Kx(),Bp(),qf(),Gp()):typeof define=="function"&&define.amd?define(["exports","d3-quadtree","d3-collection","d3-dispatch","d3-timer"],n):n(e.d3=e.d3||{},e.d3,e.d3,e.d3,e.d3)})(tc,function(e,n,i,u,s){"use strict";function h(c,g){var x;c==null&&(c=0),g==null&&(g=0);function P(){var b,U=x.length,y,D=0,q=0;for(b=0;bwe.index){var fe=re-Oe.x-Oe.vx,De=We-Oe.y-Oe.vy,at=fe*fe+De*De;atre+ee||teWe+ee||geq.r&&(q.r=q[oe].r)}function D(){if(!!g){var q,oe=g.length,Le;for(x=new Array(oe),q=0;q1?(ke==null?D.remove(ce):D.set(ce,We(ke)),g):D.get(ce)},find:function(ce,ke,Ce){var me=0,Ue=c.length,He,Je,te,ge,Oe;for(Ce==null?Ce=1/0:Ce*=Ce,me=0;me1?(oe.on(ce,ke),g):oe.on(ce)}}}function le(){var c,g,x,P=d(-30),b,U=1,y=1/0,D=.81;function q(re){var We,ce=c.length,ke=n.quadtree(c,Ee,ne).visitAfter(Le);for(x=re,We=0;We=y)return;(re.data!==g||re.next)&&(Ce===0&&(Ce=v(),He+=Ce*Ce),me===0&&(me=v(),He+=me*me),He{(function(e,n){typeof nc=="object"&&typeof Jx!="undefined"?n(nc,qf(),Jo()):typeof define=="function"&&define.amd?define(["exports","d3-dispatch","d3-selection"],n):(e=e||self,n(e.d3=e.d3||{},e.d3,e.d3))})(nc,function(e,n,i){"use strict";function u(){i.event.stopImmediatePropagation()}function s(){i.event.preventDefault(),i.event.stopImmediatePropagation()}function h(Ee){var ne=Ee.document.documentElement,R=i.select(Ee).on("dragstart.drag",s,!0);"onselectstart"in ne?R.on("selectstart.drag",s,!0):(ne.__noselect=ne.style.MozUserSelect,ne.style.MozUserSelect="none")}function d(Ee,ne){var R=Ee.document.documentElement,I=i.select(Ee).on("dragstart.drag",null);ne&&(I.on("click.drag",s,!0),setTimeout(function(){I.on("click.drag",null)},0)),"onselectstart"in R?I.on("selectstart.drag",null):(R.style.MozUserSelect=R.__noselect,delete R.__noselect)}function v(Ee){return function(){return Ee}}function k(Ee,ne,R,I,Y,le,pe,Re,B,c){this.target=Ee,this.type=ne,this.subject=R,this.identifier=I,this.active=Y,this.x=le,this.y=pe,this.dx=Re,this.dy=B,this._=c}k.prototype.on=function(){var Ee=this._.on.apply(this._,arguments);return Ee===this._?this:Ee};function S(){return!i.event.ctrlKey&&!i.event.button}function E(){return this.parentNode}function O(Ee){return Ee??{x:i.event.x,y:i.event.y}}function ie(){return navigator.maxTouchPoints||"ontouchstart"in this}function ve(){var Ee=S,ne=E,R=O,I=ie,Y={},le=n.dispatch("start","drag","end"),pe=0,Re,B,c,g,x=0;function P(we){we.on("mousedown.drag",b).filter(I).on("touchstart.drag",D).on("touchmove.drag",q).on("touchend.drag touchcancel.drag",oe).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function b(){if(!(g||!Ee.apply(this,arguments))){var we=Le("mouse",ne.apply(this,arguments),i.mouse,this,arguments);!we||(i.select(i.event.view).on("mousemove.drag",U,!0).on("mouseup.drag",y,!0),h(i.event.view),u(),c=!1,Re=i.event.clientX,B=i.event.clientY,we("start"))}}function U(){if(s(),!c){var we=i.event.clientX-Re,re=i.event.clientY-B;c=we*we+re*re>x}Y.mouse("drag")}function y(){i.select(i.event.view).on("mousemove.drag mouseup.drag",null),d(i.event.view,c),s(),Y.mouse("end")}function D(){if(!!Ee.apply(this,arguments)){var we=i.event.changedTouches,re=ne.apply(this,arguments),We=we.length,ce,ke;for(ce=0;ce=0;E--){var O=u[E];O==="."?ip(u,E):O===".."?(ip(u,E),S++):S&&(ip(u,E),S--)}if(!d)for(;S--;S)u.unshift("..");d&&u[0]!==""&&(!u[0]||!vf(u[0]))&&u.unshift("");var ie=u.join("/");return v&&ie.substr(-1)!=="/"&&(ie+="/"),ie}var g1=sb;var fb=!0,op="Invariant failed";function ui(e,n){if(!e){if(fb)throw new Error(op);var i=typeof n=="function"?n():n,u=i?op+": "+i:op;throw new Error(u)}}function dl(e){return e.charAt(0)==="/"?e:"/"+e}function m1(e){return e.charAt(0)==="/"?e.substr(1):e}function cb(e,n){return e.toLowerCase().indexOf(n.toLowerCase())===0&&"/?#".indexOf(e.charAt(n.length))!==-1}function y1(e,n){return cb(e,n)?e.substr(n.length):e}function w1(e){return e.charAt(e.length-1)==="/"?e.slice(0,-1):e}function hb(e){var n=e||"/",i="",u="",s=n.indexOf("#");s!==-1&&(u=n.substr(s),n=n.substr(0,s));var h=n.indexOf("?");return h!==-1&&(i=n.substr(h),n=n.substr(0,h)),{pathname:n,search:i==="?"?"":i,hash:u==="#"?"":u}}function sr(e){var n=e.pathname,i=e.search,u=e.hash,s=n||"/";return i&&i!=="?"&&(s+=i.charAt(0)==="?"?i:"?"+i),u&&u!=="#"&&(s+=u.charAt(0)==="#"?u:"#"+u),s}function xr(e,n,i,u){var s;typeof e=="string"?(s=hb(e),s.state=n):(s=zn({},e),s.pathname===void 0&&(s.pathname=""),s.search?s.search.charAt(0)!=="?"&&(s.search="?"+s.search):s.search="",s.hash?s.hash.charAt(0)!=="#"&&(s.hash="#"+s.hash):s.hash="",n!==void 0&&s.state===void 0&&(s.state=n));try{s.pathname=decodeURI(s.pathname)}catch(h){throw h instanceof URIError?new URIError('Pathname "'+s.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):h}return i&&(s.key=i),u?s.pathname?s.pathname.charAt(0)!=="/"&&(s.pathname=g1(s.pathname,u.pathname)):s.pathname=u.pathname:s.pathname||(s.pathname="/"),s}function ap(){var e=null;function n(d){return e=d,function(){e===d&&(e=null)}}function i(d,v,k,S){if(e!=null){var E=typeof e=="function"?e(d,v):e;typeof E=="string"?typeof k=="function"?k(E,S):S(!0):S(E!==!1)}else S(!0)}var u=[];function s(d){var v=!0;function k(){v&&d.apply(void 0,arguments)}return u.push(k),function(){v=!1,u=u.filter(function(S){return S!==k})}}function h(){for(var d=arguments.length,v=new Array(d),k=0;kD?q.splice(D,q.length-D,b):q.push(b),E({action:P,location:b,index:D,entries:q})}})}function R(g,x){var P="REPLACE",b=xr(g,x,O(),c.location);S.confirmTransitionTo(b,P,i,function(U){!U||(c.entries[c.index]=b,E({action:P,location:b}))})}function I(g){var x=N1(c.index+g,0,c.entries.length-1),P="POP",b=c.entries[x];S.confirmTransitionTo(b,P,i,function(U){U?E({action:P,location:b,index:x}):E()})}function Y(){I(-1)}function le(){I(1)}function pe(g){var x=c.index+g;return x>=0&&x=0)&&(i[s]=e[s]);return i}var K1=jt(V1()),Q1=function(n){var i=O1();return i.displayName=n,i},qb=Q1("Router-History"),vo=Q1("Router"),Ya=function(e){Or(n,e),n.computeRootMatch=function(s){return{path:"/",url:"/",params:{},isExact:s==="/"}};function n(u){var s;return s=e.call(this,u)||this,s.state={location:u.history.location},s._isMounted=!1,s._pendingLocation=null,u.staticContext||(s.unlisten=u.history.listen(function(h){s._pendingLocation=h})),s}var i=n.prototype;return i.componentDidMount=function(){var s=this;this._isMounted=!0,this.unlisten&&this.unlisten(),this.props.staticContext||(this.unlisten=this.props.history.listen(function(h){s._isMounted&&s.setState({location:h})})),this._pendingLocation&&this.setState({location:this._pendingLocation})},i.componentWillUnmount=function(){this.unlisten&&(this.unlisten(),this._isMounted=!1,this._pendingLocation=null)},i.render=function(){return En.default.createElement(vo.Provider,{value:{history:this.props.history,location:this.state.location,match:n.computeRootMatch(this.state.location.pathname),staticContext:this.props.staticContext}},En.default.createElement(qb.Provider,{children:this.props.children||null,value:this.props.history}))},n}(En.default.Component),Gb=function(e){Or(n,e);function n(){for(var u,s=arguments.length,h=new Array(s),d=0;d{fetch("https://github.com/api/readme").then(u=>u.text()).then(u=>{n((0,iw.default)(u.replace(/\[\/\/\](.*?)\(__repo__\)[\S\s]*/,"")))}).catch(console.error)},[]),(0,zi.useEffect)(()=>{[...i.current.querySelectorAll("a")].forEach(u=>u.setAttribute("target","_blank"))},[e]),zi.default.createElement("div",{ref:i,className:"document",dangerouslySetInnerHTML:{__html:e}})}var ow=rC;var Mt=jt(wn());var yl=jt(wn());function Ga({checked:e,onChange:n}){return yl.default.createElement("div",{className:"checkbox",onClick:n},yl.default.createElement("svg",{width:9,height:9,viewBox:"0 0 80 80"},e&&yl.default.createElement("path",{d:"M14 30L0 44 37 76 80 11 65 0 34 50z"})),yl.default.createElement("input",{hidden:!0,"aria-hidden":"false",type:"checkbox",checked:e,onChange:n}))}var Nf=jt(wn());function iC(){return Nf.default.createElement("span",{className:"lock",title:"locked"},Nf.default.createElement("svg",{width:"10",height:"10",viewBox:"0 0 20 20"},Nf.default.createElement("path",{fill:"#07A",d:"m3,9h1V6a5,5 0 0,1 12,0V9h1v11H3M14,9V6a4,4 0 1,0-8,0v3"})))}var Ep=iC;var aw=jt(wn());function oC(){return aw.default.createElement("span",{className:"star",title:"starred"},"\u2605")}var Np=oC;var Kr=jt(wn()),gw=jt(wl()),Z2=jt(vw());function Op({value:e="",onChange:n,onSave:i,children:u,readOnly:s}){let h=(0,Kr.useRef)(),d=(0,Kr.useRef)(),v=(0,Kr.useRef)();return(0,Kr.useEffect)(()=>{let k=(0,gw.default)(h.current,{value:e,mode:"jsx",theme:"mdn-like",autofocus:!0,lineWrapping:!0,inputStyle:"contenteditable",lineNumbers:!0,gutters:["CodeMirror-linenumbers","breakpoints"]});d.current=e,v.current=k},[]),(0,Kr.useEffect)(()=>{function k(S,[{origin:E}]){let O=v.current.getValue();E!=="setValue"&&n(O),d.current=O}return v.current.on("changes",k),()=>{v.current.off("changes",k)}},[n]),(0,Kr.useEffect)(()=>{v.current.setOption("extraKeys",{"Ctrl-S":i})},[i]),(0,Kr.useEffect)(()=>{v.current.setOption("readOnly",s)},[s]),(0,Kr.useEffect)(()=>{d.current!==e&&v.current.setValue(e)},[e]),Kr.default.createElement("div",{ref:h,className:"cmd-editor"},u)}var $a=jt(wn());var Qo=jt(wn());function aC({commands:e}){let n=(0,Qo.useRef)(),[{height:i},u]=(0,Qo.useState)({}),[s,h]=(0,Qo.useState)(0),{length:d}=e,v=20,k=d*v;return(0,Qo.useEffect)(()=>{let S=()=>u(n.current.getBoundingClientRect());S(),window.addEventListener("resize",S);let E=O=>h(O.target.scrollTop);return n.current.addEventListener("scroll",E),()=>{window.removeEventListener("resize",S),n.current.removeEventListener("scroll",E)}},[]),$a.default.createElement("div",{className:"cmd-list",ref:n},$a.default.createElement("div",{style:{height:k}},e.map((S,E)=>{let O=E*v,ie=O+v>s,ve=O-v{let s=localStorage.getItem(e);return s?JSON.parse(s):n});return(0,Pf.useEffect)(()=>{localStorage.setItem(e,JSON.stringify(i))},[i]),[i,u]}function Zo(){let[e,n]=yw("password",""),[i,u]=yw("admin",!1);return{fetchAPI:(h,d={})=>new Promise((v,k)=>{let S={...d,headers:{"X-Authorization":`Basic ${btoa(`web:${e}`)}`,"Content-Type":"application/json"},body:d.body&&JSON.stringify(d.body)};fetch(`/api/${h}`,S).then(E=>E.json()).then(v).catch(k)}),password:e,setPassword:n,admin:i,setAdmin:u}}function Ap(){let{fetchAPI:e,password:n,setPassword:i,admin:u,setAdmin:s}=Zo();return(0,go.useEffect)(()=>{e("is-admin").then(s).catch(console.error)},[n]),go.default.createElement("div",{className:"cmd-default"},go.default.createElement("input",{type:"password",placeholder:"admin pwd",value:n,className:u?"admin":"error",onChange:h=>i(h.target.value)}),go.default.createElement("p",null,"an interface for manipulating commands"),go.default.createElement("p",null,"alternatively, try the"," ",go.default.createElement("a",{href:"https://www.github.com/kirjavascript/nibblrjr.vim",target:"_blank"},"vim plugin")))}var Tw=jt(xw()),Sw=jt(kw());function Dp({command:e}){return Mt.default.createElement(Mt.default.Fragment,null,e.name," ",e.starred&&Mt.default.createElement(Np,null)," ",e.locked&&Mt.default.createElement(Ep,null),e.event&&Mt.default.createElement("span",{className:"event"}," (event)"))}function lC({history:e}){let[n,i]=(0,Mt.useState)([]),[u,s]=(0,Mt.useState)(""),[h,d]=(0,Mt.useState)(!1),[v,k]=(0,Mt.useState)(!1),[S,E]=(0,Mt.useState)(""),{fetchAPI:O,admin:ie}=Zo(),ve=(0,Mt.useCallback)(()=>{O("command/list").then(i).catch(console.error)},[]);(0,Mt.useEffect)(ve,[]);let Ee;try{Ee=new RegExp(u)}catch{}let ne=n.filter(g=>(g.starred&&h||!h)&&(g.locked&&v||!v)),R=ne.filter(g=>!u||g.name.match(Ee)),I=n.some(g=>g.name===S),{root:Y}=(0,Sw.parseCommand)({text:S}),le=n.find(g=>g.name===Y),pe=le&&le.locked,B=!Tw.default.includes(S)&&!I&&(!pe||ie),c=(0,Mt.useCallback)(g=>{if(g.keyCode===13&&B){let x=encodeURIComponent(S);O(`command/new/${x}`,{method:"POST"}).then(()=>{E(""),ve(),e.push(`/cmds/${x}`)}).catch(console.error)}},[S]);return Mt.default.createElement(Mt.default.Fragment,null,Mt.default.createElement("div",{className:"cmd-menu"},Mt.default.createElement("div",null,Mt.default.createElement("input",{type:"text",placeholder:"new command",className:!B&&S?"invalid":"",value:S,onChange:g=>E(g.target.value.replace(/\s+/g,"")),onKeyDown:c}),Mt.default.createElement("input",{type:"text",placeholder:"search commands (regex)",value:u,onChange:g=>{s(g.target.value)}}),Mt.default.createElement("div",{className:"cmd-filter"},Mt.default.createElement("span",null," ",R.length," / ",ne.length," "),Mt.default.createElement("div",{className:"cmd-toggle"},Mt.default.createElement(Np,null),Mt.default.createElement(Ga,{checked:h,onChange:()=>d(!h)}),Mt.default.createElement(Ep,null),Mt.default.createElement(Ga,{checked:v,onChange:()=>k(!v)})))),Mt.default.createElement(mw,{commands:R})),Mt.default.createElement(Fi,{exact:!0,path:"/cmds/:name",render:g=>Mt.default.createElement(sC,{updateList:ve,...g})}),Mt.default.createElement(Fi,{exact:!0,path:"/cmds",component:Ap}))}var bw="/* loading ... */";function sC({updateList:e,history:n,match:{params:i}}){let{fetchAPI:u,admin:s}=Zo(),[h,d]=(0,Mt.useState)({command:bw}),[v,k]=(0,Mt.useState)(bw),[S,E]=(0,Mt.useState)(!1),[O,ie]=(0,Mt.useState)("delete");function ve(){u("command/get/"+i.name).then(g=>{d(g),k(g.command)}).catch(console.error),ie("delete")}(0,Mt.useEffect)(ve,[i.name]);let Ee=g=>{let x={method:"POST",body:{[g]:!h[g]}};u("command/set-config/"+i.name,x).then(P=>{P.error||(ve(),e())}).catch(console.error)},ne=()=>{E(!0);let g={method:"POST",body:{command:h.command}};u("command/set/"+i.name,g).then(x=>{x.error?alert(x.error):k(h.command),E(!1)}).catch(console.error)},R=()=>{O!=="confirm?"?ie("confirm?"):u("command/delete/"+i.name,{method:"POST"}).then(g=>{g.error?ie(g.error):(e(),n.push("/cmds"))}).catch(console.error)},I=h.error?`/* error: ${h.error} */`:h.command,{locked:Y,starred:le,event:pe}=h,Re=S?"saving":h.command===v?"saved":"save",B=s,c=h.locked&&!B;return Mt.default.createElement(Op,{value:I,readOnly:c,onSave:ne,onChange:g=>{d({...h,command:g})}},Mt.default.createElement("div",{className:"cmd-options"},Mt.default.createElement("span",{className:"cmd-name"},Mt.default.createElement(Dp,{command:h})),!!h.name&&Mt.default.createElement("div",null,!c&&Mt.default.createElement(Mt.default.Fragment,null,Mt.default.createElement("button",{type:"button",onClick:ne},Re),B&&Mt.default.createElement(Mt.default.Fragment,null,Mt.default.createElement("button",{type:"button",onClick:()=>{Ee("locked")}},Y?"unlock":"lock"),Mt.default.createElement("button",{type:"button",onClick:()=>{Ee("starred")}},le?"unstar":"star"),Mt.default.createElement("button",{type:"button",onClick:()=>{Ee("event")}},pe?"unevent":"as event")),Mt.default.createElement("button",{type:"button",onClick:R},O)))))}var Cw=lC;var tn=jt(wn());var _r=jt(wn());var Va=jt(wn());function xl({items:e,...n}){return Va.default.createElement("div",{className:"select"},Va.default.createElement("select",{...n},e.map(({label:i,value:u})=>Va.default.createElement("option",{value:u,key:u},i))),Va.default.createElement("svg",{className:"arrow",width:"12",height:"12",viewBox:"0 0 100 50"},Va.default.createElement("path",{d:"M0,0H100L50,50z"})))}var Up=jt(px()),_x=jt(xx());function NM({onMonth:e,onChange:n,base:i,history:u,location:s}){let h=(0,_r.useMemo)(()=>s.pathname.split("/"),[]),[d,v]=(0,_r.useState)(h[2]||""),[k,S]=(0,_r.useState)(decodeURIComponent(h[3]||"")),[E,O]=(0,_r.useState)(h[4]||"");(0,_r.useEffect)(()=>{u.replace(["/stats",d||k||E?"/":"",d,k||E?"/":"",encodeURIComponent(k),E?"/":"",E].join("")),n({server:d,channel:k,month:E})},[d,k,E]),(0,_r.useEffect)(()=>{e({server:d,channel:k,month:E})},[E]);let ie=i.servers.map(({server:ne})=>({label:ne,value:ne})),ve=i.servers.reduce((ne,R)=>((d===""||R.server===d)&&ne.push(...R.channels.map(I=>({label:I,value:I}))),ne),[]).filter((ne,R,I)=>I.findIndex(Y=>Y.value==ne.value)===R),Ee=Array.from({length:12},(ne,R)=>{let I=(0,_x.default)(new Date,R+1);return{label:(0,Up.default)(I,"MMMM YYYY").toLowerCase(),value:(0,Up.default)(I,"YYYY-MM")}});return(0,_r.useEffect)(()=>{(d||k||E)&&s.pathname==="/stats"&&(v(""),S(""),O(""))},[s.pathname]),_r.default.createElement("div",{className:"stats-filter"},_r.default.createElement(xl,{value:d,items:[{label:"servers",value:""},...ie],onChange:ne=>{v(ne.target.value),ne.target.value&&S("")}}),_r.default.createElement(xl,{value:k,items:[{label:"channels",value:""},...ve],onChange:ne=>S(ne.target.value)}),_r.default.createElement(xl,{value:E,items:[{label:"this month",value:""},...Ee],onChange:ne=>O(ne.target.value)}))}var kx=NM;var mo=jt(wn()),_l=Object.assign({},Jo(),Yp(),qp(),$p());function Vp({x:e,y:n,width:i,height:u,radius:s=3}){return s>u&&(s=u),i0&&r.prevInput=="\u200B"?Hn(a,Jv)(a):Ve++<10?o.detectingSelectAll=setTimeout(tt,500):(o.selForContextMenu=null,o.input.reset())};o.detectingSelectAll=setTimeout(tt,200)}}if(d&&v>=9&&Se(),g){G(t);var je=function(){nt(window,"mouseup",je),setTimeout(we,20)};Te(window,"mouseup",je)}else setTimeout(we,50)},En.prototype.readOnlyChanged=function(t){t||this.reset(),this.textarea.disabled=t=="nocursor",this.textarea.readOnly=!!t},En.prototype.setUneditable=function(){},En.prototype.needsContentAttribute=!1;function Bk(t,r){if(r=r?_e(r):{},r.value=t.value,!r.tabindex&&t.tabIndex&&(r.tabindex=t.tabIndex),!r.placeholder&&t.placeholder&&(r.placeholder=t.placeholder),r.autofocus==null){var a=Oe(t.ownerDocument);r.autofocus=a==t||t.getAttribute("autofocus")!=null&&a==document.body}function o(){t.value=y.getValue()}var l;if(t.form&&(Te(t.form,"submit",o),!r.leaveSubmitMethodAlone)){var f=t.form;l=f.submit;try{var p=f.submit=function(){o(),f.submit=l,f.submit(),f.submit=p}}catch{}}r.finishInit=function(_){_.save=o,_.getTextArea=function(){return t},_.toTextArea=function(){_.toTextArea=isNaN,o(),t.parentNode.removeChild(_.getWrapperElement()),t.style.display="",t.form&&(nt(t.form,"submit",o),!r.leaveSubmitMethodAlone&&typeof t.form.submit=="function"&&(t.form.submit=l))}},t.style.display="none";var y=mn(function(_){return t.parentNode.insertBefore(_,t.nextSibling)},r);return y}function jk(t){t.off=nt,t.on=Te,t.wheelEventPixels=K_,t.Doc=pr,t.splitLines=xe,t.countColumn=Re,t.findColumn=ke,t.isWordChar=Rt,t.Pass=me,t.signal=at,t.Line=Ti,t.changeEnd=Yi,t.scrollbarModel=Nv,t.Pos=K,t.cmpPos=pe,t.modes=et,t.mimeModes=dt,t.resolveMode=St,t.getMode=sn,t.modeExtensions=Tn,t.extendMode=Pn,t.copyState=gn,t.startState=Mt,t.innerMode=hn,t.commands=_u,t.keyMap=Ci,t.keyName=vg,t.isModifierKey=dg,t.lookupKey=ga,t.normalizeKeyMap=yk,t.StringStream=Lt,t.SharedTextMarker=yu,t.TextMarker=Gi,t.LineWidget=mu,t.e_preventDefault=Bt,t.e_stopPropagation=on,t.e_stop=G,t.addClass=fe,t.contains=he,t.rmClass=E,t.keyNames=Vi}Ak(mn),zk(mn);var Yk="iter insert remove copy getEditor constructor".split(" ");for(var Gl in pr.prototype)pr.prototype.hasOwnProperty(Gl)&&Xe(Yk,Gl)<0&&(mn.prototype[Gl]=function(t){return function(){return t.apply(this.doc,arguments)}}(pr.prototype[Gl]));return zt(pr),mn.inputStyles={textarea:En,contenteditable:nn},mn.defineMode=function(t){!mn.defaults.mode&&t!="null"&&(mn.defaults.mode=t),It.apply(this,arguments)},mn.defineMIME=Pt,mn.defineMode("null",function(){return{token:function(t){return t.skipToEnd()}}}),mn.defineMIME("text/plain","null"),mn.defineExtension=function(t,r){mn.prototype[t]=r},mn.defineDocExtension=function(t,r){pr.prototype[t]=r},mn.fromTextArea=Bk,jk(mn),mn.version="5.65.9",mn})});var uw=xt((ow,aw)=>{(function(e){typeof ow=="object"&&typeof aw=="object"?e(wl()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)})(function(e){"use strict";var n={autoSelfClosers:{area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0,menuitem:!0},implicitlyClosed:{dd:!0,li:!0,optgroup:!0,option:!0,p:!0,rp:!0,rt:!0,tbody:!0,td:!0,tfoot:!0,th:!0,tr:!0},contextGrabbers:{dd:{dd:!0,dt:!0},dt:{dd:!0,dt:!0},li:{li:!0},option:{option:!0,optgroup:!0},optgroup:{optgroup:!0},p:{address:!0,article:!0,aside:!0,blockquote:!0,dir:!0,div:!0,dl:!0,fieldset:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,menu:!0,nav:!0,ol:!0,p:!0,pre:!0,section:!0,table:!0,ul:!0},rp:{rp:!0,rt:!0},rt:{rp:!0,rt:!0},tbody:{tbody:!0,tfoot:!0},td:{td:!0,th:!0},tfoot:{tbody:!0},th:{td:!0,th:!0},thead:{tbody:!0,tfoot:!0},tr:{tr:!0}},doNotIndent:{pre:!0},allowUnquoted:!0,allowMissing:!0,caseFold:!0},i={autoSelfClosers:{},implicitlyClosed:{},contextGrabbers:{},doNotIndent:{},allowUnquoted:!1,allowMissing:!1,allowMissingTagName:!1,caseFold:!1};e.defineMode("xml",function(u,s){var h=u.indentUnit,d={},v=s.htmlMode?n:i;for(var x in v)d[x]=v[x];for(var x in s)d[x]=s[x];var T,M;function O(m,A){function W(fe){return A.tokenize=fe,fe(m,A)}var he=m.next();if(he=="<")return m.eat("!")?m.eat("[")?m.match("CDATA[")?W(Ee("atom","]]>")):null:m.match("--")?W(Ee("comment","-->")):m.match("DOCTYPE",!0,!0)?(m.eatWhile(/[\w\._\-]/),W(ie(1))):null:m.eat("?")?(m.eatWhile(/[\w\._\-]/),A.tokenize=Ee("meta","?>"),"meta"):(T=m.eat("/")?"closeTag":"openTag",A.tokenize=te,"tag bracket");if(he=="&"){var Oe;return m.eat("#")?m.eat("x")?Oe=m.eatWhile(/[a-fA-F\d]/)&&m.eat(";"):Oe=m.eatWhile(/[\d]/)&&m.eat(";"):Oe=m.eatWhile(/[\w\.\-:]/)&&m.eat(";"),Oe?"atom":"error"}else return m.eatWhile(/[^&<]/),null}O.isInText=!0;function te(m,A){var W=m.next();if(W==">"||W=="/"&&m.eat(">"))return A.tokenize=O,T=W==">"?"endTag":"selfcloseTag","tag bracket";if(W=="=")return T="equals",null;if(W=="<"){A.tokenize=O,A.state=ge,A.tagName=A.tagStart=null;var he=A.tokenize(m,A);return he?he+" tag error":"tag error"}else return/[\'\"]/.test(W)?(A.tokenize=ve(W),A.stringStartCol=m.column(),A.tokenize(m,A)):(m.match(/^[^\s\u00a0=<>\"\']*[^\s\u00a0=<>\"\'\/]/),"word")}function ve(m){var A=function(W,he){for(;!W.eol();)if(W.next()==m){he.tokenize=te;break}return"string"};return A.isInAttribute=!0,A}function Ee(m,A){return function(W,he){for(;!W.eol();){if(W.match(A)){he.tokenize=O;break}W.next()}return m}}function ie(m){return function(A,W){for(var he;(he=A.next())!=null;){if(he=="<")return W.tokenize=ie(m+1),W.tokenize(A,W);if(he==">")if(m==1){W.tokenize=O;break}else return W.tokenize=ie(m-1),W.tokenize(A,W)}return"meta"}}function I(m){return m&&m.toLowerCase()}function D(m,A,W){this.prev=m.context,this.tagName=A||"",this.indent=m.indented,this.startOfLine=W,(d.doNotIndent.hasOwnProperty(A)||m.context&&m.context.noIndent)&&(this.noIndent=!0)}function q(m){m.context&&(m.context=m.context.prev)}function oe(m,A){for(var W;;){if(!m.context||(W=m.context.tagName,!d.contextGrabbers.hasOwnProperty(I(W))||!d.contextGrabbers[I(W)].hasOwnProperty(I(A))))return;q(m)}}function ge(m,A,W){return m=="openTag"?(W.tagStart=A.column(),Ue):m=="closeTag"?de:ge}function Ue(m,A,W){return m=="word"?(W.tagName=A.current(),M="tag",k):d.allowMissingTagName&&m=="endTag"?(M="tag bracket",k(m,A,W)):(M="error",Ue)}function de(m,A,W){if(m=="word"){var he=A.current();return W.context&&W.context.tagName!=he&&d.implicitlyClosed.hasOwnProperty(I(W.context.tagName))&&q(W),W.context&&W.context.tagName==he||d.matchClosing===!1?(M="tag",c):(M="tag error",g)}else return d.allowMissingTagName&&m=="endTag"?(M="tag bracket",c(m,A,W)):(M="error",g)}function c(m,A,W){return m!="endTag"?(M="error",c):(q(W),ge)}function g(m,A,W){return M="error",c(m,A,W)}function k(m,A,W){if(m=="word")return M="attribute",E;if(m=="endTag"||m=="selfcloseTag"){var he=W.tagName,Oe=W.tagStart;return W.tagName=W.tagStart=null,m=="selfcloseTag"||d.autoSelfClosers.hasOwnProperty(I(he))?oe(W,he):(oe(W,he),W.context=new D(W,he,Oe==W.indented)),ge}return M="error",k}function E(m,A,W){return m=="equals"?S:(d.allowMissing||(M="error"),k(m,A,W))}function S(m,A,W){return m=="string"?X:m=="word"&&d.allowUnquoted?(M="string",k):(M="error",k(m,A,W))}function X(m,A,W){return m=="string"?X:k(m,A,W)}return{startState:function(m){var A={tokenize:O,state:ge,indented:m||0,tagName:null,tagStart:null,context:null};return m!=null&&(A.baseIndent=m),A},token:function(m,A){if(!A.tagName&&m.sol()&&(A.indented=m.indentation()),m.eatSpace())return null;T=null;var W=A.tokenize(m,A);return(W||T)&&W!="comment"&&(M=null,A.state=A.state(T||W,m,A),M&&(W=M=="error"?W+" error":M)),W},indent:function(m,A,W){var he=m.context;if(m.tokenize.isInAttribute)return m.tagStart==m.indented?m.stringStartCol+1:m.indented+h;if(he&&he.noIndent)return e.Pass;if(m.tokenize!=te&&m.tokenize!=O)return W?W.match(/^(\s*)/)[0].length:0;if(m.tagName)return d.multilineTagIndentPastTag!==!1?m.tagStart+m.tagName.length+2:m.tagStart+h*(d.multilineTagIndentFactor||1);if(d.alignCDATA&&/$/,blockCommentStart:"",configuration:d.htmlMode?"html":"xml",helperType:d.htmlMode?"html":"xml",skipAttribute:function(m){m.state==S&&(m.state=k)},xmlCurrentTag:function(m){return m.tagName?{name:m.tagName,close:m.type=="closeTag"}:null},xmlCurrentContext:function(m){for(var A=[],W=m.context;W;W=W.prev)A.push(W.tagName);return A.reverse()}}}),e.defineMIME("text/xml","xml"),e.defineMIME("application/xml","xml"),e.mimeModes.hasOwnProperty("text/html")||e.defineMIME("text/html",{name:"xml",htmlMode:!0})})});var fw=xt((lw,sw)=>{(function(e){typeof lw=="object"&&typeof sw=="object"?e(wl()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)})(function(e){"use strict";e.defineMode("javascript",function(n,i){var u=n.indentUnit,s=i.statementIndent,h=i.jsonld,d=i.json||h,v=i.trackScope!==!1,x=i.typescript,T=i.wordCharacters||/[\w$\xa1-\uffff]/,M=function(){function b(qt){return{type:qt,style:"keyword"}}var H=b("keyword a"),K=b("keyword b"),pe=b("keyword c"),Ze=b("keyword d"),ct=b("operator"),yt={type:"atom",style:"atom"};return{if:b("if"),while:H,with:H,else:K,do:K,try:K,finally:K,return:Ze,break:Ze,continue:Ze,new:b("new"),delete:pe,void:pe,throw:pe,debugger:b("debugger"),var:b("var"),const:b("var"),let:b("var"),function:b("function"),catch:b("catch"),for:b("for"),switch:b("switch"),case:b("case"),default:b("default"),in:ct,typeof:ct,instanceof:ct,true:yt,false:yt,null:yt,undefined:yt,NaN:yt,Infinity:yt,this:b("this"),class:b("class"),super:b("atom"),yield:pe,export:b("export"),import:b("import"),extends:pe,await:pe}}(),O=/[+\-*&%=<>!?|~^@]/,te=/^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/;function ve(b){for(var H=!1,K,pe=!1;(K=b.next())!=null;){if(!H){if(K=="/"&&!pe)return;K=="["?pe=!0:pe&&K=="]"&&(pe=!1)}H=!H&&K=="\\"}}var Ee,ie;function I(b,H,K){return Ee=b,ie=K,H}function D(b,H){var K=b.next();if(K=='"'||K=="'")return H.tokenize=q(K),H.tokenize(b,H);if(K=="."&&b.match(/^\d[\d_]*(?:[eE][+\-]?[\d_]+)?/))return I("number","number");if(K=="."&&b.match(".."))return I("spread","meta");if(/[\[\]{}\(\),;\:\.]/.test(K))return I(K);if(K=="="&&b.eat(">"))return I("=>","operator");if(K=="0"&&b.match(/^(?:x[\dA-Fa-f_]+|o[0-7_]+|b[01_]+)n?/))return I("number","number");if(/\d/.test(K))return b.match(/^[\d_]*(?:n|(?:\.[\d_]*)?(?:[eE][+\-]?[\d_]+)?)?/),I("number","number");if(K=="/")return b.eat("*")?(H.tokenize=oe,oe(b,H)):b.eat("/")?(b.skipToEnd(),I("comment","comment")):Qe(b,H,1)?(ve(b),b.match(/^\b(([gimyus])(?![gimyus]*\2))+\b/),I("regexp","string-2")):(b.eat("="),I("operator","operator",b.current()));if(K=="`")return H.tokenize=ge,ge(b,H);if(K=="#"&&b.peek()=="!")return b.skipToEnd(),I("meta","meta");if(K=="#"&&b.eatWhile(T))return I("variable","property");if(K=="<"&&b.match("!--")||K=="-"&&b.match("->")&&!/\S/.test(b.string.slice(0,b.start)))return b.skipToEnd(),I("comment","comment");if(O.test(K))return(K!=">"||!H.lexical||H.lexical.type!=">")&&(b.eat("=")?(K=="!"||K=="=")&&b.eat("="):/[<>*+\-|&?]/.test(K)&&(b.eat(K),K==">"&&b.eat(K))),K=="?"&&b.eat(".")?I("."):I("operator","operator",b.current());if(T.test(K)){b.eatWhile(T);var pe=b.current();if(H.lastType!="."){if(M.propertyIsEnumerable(pe)){var Ze=M[pe];return I(Ze.type,Ze.style,pe)}if(pe=="async"&&b.match(/^(\s|\/\*([^*]|\*(?!\/))*?\*\/)*[\[\(\w]/,!1))return I("async","keyword",pe)}return I("variable","variable",pe)}}function q(b){return function(H,K){var pe=!1,Ze;if(h&&H.peek()=="@"&&H.match(te))return K.tokenize=D,I("jsonld-keyword","meta");for(;(Ze=H.next())!=null&&!(Ze==b&&!pe);)pe=!pe&&Ze=="\\";return pe||(K.tokenize=D),I("string","string")}}function oe(b,H){for(var K=!1,pe;pe=b.next();){if(pe=="/"&&K){H.tokenize=D;break}K=pe=="*"}return I("comment","comment")}function ge(b,H){for(var K=!1,pe;(pe=b.next())!=null;){if(!K&&(pe=="`"||pe=="$"&&b.eat("{"))){H.tokenize=D;break}K=!K&&pe=="\\"}return I("quasi","string-2",b.current())}var Ue="([{}])";function de(b,H){H.fatArrowAt&&(H.fatArrowAt=null);var K=b.string.indexOf("=>",b.start);if(!(K<0)){if(x){var pe=/:\s*(?:\w+(?:<[^>]*>|\[\])?|\{[^}]*\})\s*$/.exec(b.string.slice(b.start,K));pe&&(K=pe.index)}for(var Ze=0,ct=!1,yt=K-1;yt>=0;--yt){var qt=b.string.charAt(yt),an=Ue.indexOf(qt);if(an>=0&&an<3){if(!Ze){++yt;break}if(--Ze==0){qt=="("&&(ct=!0);break}}else if(an>=3&&an<6)++Ze;else if(T.test(qt))ct=!0;else if(/["'\/`]/.test(qt))for(;;--yt){if(yt==0)return;var gt=b.string.charAt(yt-1);if(gt==qt&&b.string.charAt(yt-2)!="\\"){yt--;break}}else if(ct&&!Ze){++yt;break}}ct&&!Ze&&(H.fatArrowAt=yt)}}var c={atom:!0,number:!0,variable:!0,string:!0,regexp:!0,this:!0,import:!0,"jsonld-keyword":!0};function g(b,H,K,pe,Ze,ct){this.indented=b,this.column=H,this.type=K,this.prev=Ze,this.info=ct,pe!=null&&(this.align=pe)}function k(b,H){if(!v)return!1;for(var K=b.localVars;K;K=K.next)if(K.name==H)return!0;for(var pe=b.context;pe;pe=pe.prev)for(var K=pe.vars;K;K=K.next)if(K.name==H)return!0}function E(b,H,K,pe,Ze){var ct=b.cc;for(S.state=b,S.stream=Ze,S.marked=null,S.cc=ct,S.style=H,b.lexical.hasOwnProperty("align")||(b.lexical.align=!0);;){var yt=ct.length?ct.pop():d?me:Xe;if(yt(K,pe)){for(;ct.length&&ct[ct.length-1].lex;)ct.pop()();return S.marked?S.marked:K=="variable"&&k(b,pe)?"variable-2":H}}}var S={state:null,column:null,marked:null,cc:null};function X(){for(var b=arguments.length-1;b>=0;b--)S.cc.push(arguments[b])}function m(){return X.apply(null,arguments),!0}function A(b,H){for(var K=H;K;K=K.next)if(K.name==b)return!0;return!1}function W(b){var H=S.state;if(S.marked="def",!!v){if(H.context){if(H.lexical.info=="var"&&H.context&&H.context.block){var K=he(b,H.context);if(K!=null){H.context=K;return}}else if(!A(b,H.localVars)){H.localVars=new ne(b,H.localVars);return}}i.globalVars&&!A(b,H.globalVars)&&(H.globalVars=new ne(b,H.globalVars))}}function he(b,H){if(H)if(H.block){var K=he(b,H.prev);return K?K==H.prev?H:new fe(K,H.vars,!0):null}else return A(b,H.vars)?H:new fe(H.prev,new ne(b,H.vars),!1);else return null}function Oe(b){return b=="public"||b=="private"||b=="protected"||b=="abstract"||b=="readonly"}function fe(b,H,K){this.prev=b,this.vars=H,this.block=K}function ne(b,H){this.name=b,this.next=H}var We=new ne("this",new ne("arguments",null));function se(){S.state.context=new fe(S.state.context,S.state.localVars,!1),S.state.localVars=We}function be(){S.state.context=new fe(S.state.context,S.state.localVars,!0),S.state.localVars=null}se.lex=be.lex=!0;function Ce(){S.state.localVars=S.state.context.vars,S.state.context=S.state.context.prev}Ce.lex=!0;function _e(b,H){var K=function(){var pe=S.state,Ze=pe.indented;if(pe.lexical.type=="stat")Ze=pe.lexical.indented;else for(var ct=pe.lexical;ct&&ct.type==")"&&ct.align;ct=ct.prev)Ze=ct.indented;pe.lexical=new g(Ze,S.stream.column(),b,null,pe.lexical,H)};return K.lex=!0,K}function Re(){var b=S.state;b.lexical.prev&&(b.lexical.type==")"&&(b.indented=b.lexical.indented),b.lexical=b.lexical.prev)}Re.lex=!0;function Ae(b){function H(K){return K==b?m():b==";"||K=="}"||K==")"||K=="]"?X():m(H)}return H}function Xe(b,H){return b=="var"?m(_e("vardef",H),G,Ae(";"),Re):b=="keyword a"?m(_e("form"),Q,Xe,Re):b=="keyword b"?m(_e("form"),Xe,Re):b=="keyword d"?S.stream.match(/^\s*$/,!1)?m():m(_e("stat"),ke,Ae(";"),Re):b=="debugger"?m(Ae(";")):b=="{"?m(_e("}"),be,Ke,Re,Ce):b==";"?m():b=="if"?(S.state.lexical.info=="else"&&S.state.cc[S.state.cc.length-1]==Re&&S.state.cc.pop()(),m(_e("form"),Q,Xe,Re,Y)):b=="function"?m(ze):b=="for"?m(_e("form"),be,ce,Xe,Ce,Re):b=="class"||x&&H=="interface"?(S.marked="keyword",m(_e("form",b=="class"?b:H),It,Re)):b=="variable"?x&&H=="declare"?(S.marked="keyword",m(Xe)):x&&(H=="module"||H=="enum"||H=="type")&&S.stream.match(/^\s*\w/,!1)?(S.marked="keyword",H=="enum"?m(j):H=="type"?m($e,Ae("operator"),Te,Ae(";")):m(_e("form"),Le,Ae("{"),_e("}"),Ke,Re,Re)):x&&H=="namespace"?(S.marked="keyword",m(_e("form"),me,Xe,Re)):x&&H=="abstract"?(S.marked="keyword",m(Xe)):m(_e("stat"),Kt):b=="switch"?m(_e("form"),Q,Ae("{"),_e("}","switch"),be,Ke,Re,Re,Ce):b=="case"?m(me,Ae(":")):b=="default"?m(Ae(":")):b=="catch"?m(_e("form"),se,re,Xe,Re,Ce):b=="export"?m(_e("stat"),Tn,Re):b=="import"?m(_e("stat"),gn,Re):b=="async"?m(Xe):H=="@"?m(me,Xe):X(_e("stat"),me,Ae(";"),Re)}function re(b){if(b=="(")return m(et,Ae(")"))}function me(b,H){return ee(b,H,!1)}function Pe(b,H){return ee(b,H,!0)}function Q(b){return b!="("?X():m(_e(")"),ke,Ae(")"),Re)}function ee(b,H,K){if(S.state.fatArrowAt==S.stream.start){var pe=K?Dt:Xt;if(b=="(")return m(se,_e(")"),B(et,")"),Re,Ae("=>"),pe,Ce);if(b=="variable")return X(se,Le,Ae("=>"),pe,Ce)}var Ze=K?it:De;return c.hasOwnProperty(b)?m(Ze):b=="function"?m(ze,Ze):b=="class"||x&&H=="interface"?(S.marked="keyword",m(_e("form"),dt,Re)):b=="keyword c"||b=="async"?m(K?Pe:me):b=="("?m(_e(")"),ke,Ae(")"),Re,Ze):b=="operator"||b=="spread"?m(K?Pe:me):b=="["?m(_e("]"),Qt,Re,Ze):b=="{"?Ie(tn,"}",null,Ze):b=="quasi"?X(Je,Ze):b=="new"?m(Nt(K)):m()}function ke(b){return b.match(/[;\}\)\],]/)?X():X(me)}function De(b,H){return b==","?m(ke):it(b,H,!1)}function it(b,H,K){var pe=K==!1?De:it,Ze=K==!1?me:Pe;if(b=="=>")return m(se,K?Dt:Xt,Ce);if(b=="operator")return/\+\+|--/.test(H)||x&&H=="!"?m(pe):x&&H=="<"&&S.stream.match(/^([^<>]|<[^<>]*>)*>\s*\(/,!1)?m(_e(">"),B(Te,">"),Re,pe):H=="?"?m(me,Ae(":"),Ze):m(Ze);if(b=="quasi")return X(Je,pe);if(b!=";"){if(b=="(")return Ie(Pe,")","call",pe);if(b==".")return m(dn,pe);if(b=="[")return m(_e("]"),ke,Ae("]"),Re,pe);if(x&&H=="as")return S.marked="keyword",m(Te,pe);if(b=="regexp")return S.state.lastType=S.marked="operator",S.stream.backUp(S.stream.pos-S.stream.start-1),m(Ze)}}function Je(b,H){return b!="quasi"?X():H.slice(H.length-2)!="${"?m(Je):m(ke,Yt)}function Yt(b){if(b=="}")return S.marked="string-2",S.state.tokenize=ge,m(Je)}function Xt(b){return de(S.stream,S.state),X(b=="{"?Xe:me)}function Dt(b){return de(S.stream,S.state),X(b=="{"?Xe:Pe)}function Nt(b){return function(H){return H=="."?m(b?Rt:Gt):H=="variable"&&x?m(Bt,b?it:De):X(b?Pe:me)}}function Gt(b,H){if(H=="target")return S.marked="keyword",m(De)}function Rt(b,H){if(H=="target")return S.marked="keyword",m(it)}function Kt(b){return b==":"?m(Re,Xe):X(De,Ae(";"),Re)}function dn(b){if(b=="variable")return S.marked="property",m()}function tn(b,H){if(b=="async")return S.marked="property",m(tn);if(b=="variable"||S.style=="keyword"){if(S.marked="property",H=="get"||H=="set")return m(pn);var K;return x&&S.state.fatArrowAt==S.stream.start&&(K=S.stream.match(/^\s*:\s*/,!1))&&(S.state.fatArrowAt=S.stream.pos+K[0].length),m(R)}else{if(b=="number"||b=="string")return S.marked=h?"property":S.style+" property",m(R);if(b=="jsonld-keyword")return m(R);if(x&&Oe(H))return S.marked="keyword",m(tn);if(b=="[")return m(me,Be,Ae("]"),R);if(b=="spread")return m(Pe,R);if(H=="*")return S.marked="keyword",m(tn);if(b==":")return X(R)}}function pn(b){return b!="variable"?X(R):(S.marked="property",m(ze))}function R(b){if(b==":")return m(Pe);if(b=="(")return X(ze)}function B(b,H,K){function pe(Ze,ct){if(K?K.indexOf(Ze)>-1:Ze==","){var yt=S.state.lexical;return yt.info=="call"&&(yt.pos=(yt.pos||0)+1),m(function(qt,an){return qt==H||an==H?X():X(b)},pe)}return Ze==H||ct==H?m():K&&K.indexOf(";")>-1?X(b):m(Ae(H))}return function(Ze,ct){return Ze==H||ct==H?m():X(b,pe)}}function Ie(b,H,K){for(var pe=3;pe"),Te);if(b=="quasi")return X(vt,zt)}function ht(b){if(b=="=>")return m(Te)}function nt(b){return b.match(/[\}\)\]]/)?m():b==","||b==";"?m(nt):X(at,nt)}function at(b,H){if(b=="variable"||S.style=="keyword")return S.marked="property",m(at);if(H=="?"||b=="number"||b=="string")return m(at);if(b==":")return m(Te);if(b=="[")return m(Ae("variable"),P,Ae("]"),at);if(b=="(")return X(Ge,at);if(!b.match(/[;\}\)\],]/))return m()}function vt(b,H){return b!="quasi"?X():H.slice(H.length-2)!="${"?m(vt):m(Te,Ft)}function Ft(b){if(b=="}")return S.marked="string-2",S.state.tokenize=ge,m(vt)}function Ct(b,H){return b=="variable"&&S.stream.match(/^\s*[?:]/,!1)||H=="?"?m(Ct):b==":"?m(Te):b=="spread"?m(Ct):X(Te)}function zt(b,H){if(H=="<")return m(_e(">"),B(Te,">"),Re,zt);if(H=="|"||b=="."||H=="&")return m(Te);if(b=="[")return m(Te,Ae("]"),zt);if(H=="extends"||H=="implements")return S.marked="keyword",m(Te);if(H=="?")return m(Te,Ae(":"),Te)}function Bt(b,H){if(H=="<")return m(_e(">"),B(Te,">"),Re,zt)}function on(){return X(Te,vn)}function vn(b,H){if(H=="=")return m(Te)}function G(b,H){return H=="enum"?(S.marked="keyword",m(j)):X(Le,Be,N,L)}function Le(b,H){if(x&&Oe(H))return S.marked="keyword",m(Le);if(b=="variable")return W(H),m();if(b=="spread")return m(Le);if(b=="[")return Ie(V,"]");if(b=="{")return Ie(F,"}")}function F(b,H){return b=="variable"&&!S.stream.match(/^\s*:/,!1)?(W(H),m(N)):(b=="variable"&&(S.marked="property"),b=="spread"?m(Le):b=="}"?X():b=="["?m(me,Ae("]"),Ae(":"),F):m(Ae(":"),Le,N))}function V(){return X(Le,N)}function N(b,H){if(H=="=")return m(Pe)}function L(b){if(b==",")return m(G)}function Y(b,H){if(b=="keyword b"&&H=="else")return m(_e("form","else"),Xe,Re)}function ce(b,H){if(H=="await")return m(ce);if(b=="(")return m(_e(")"),xe,Re)}function xe(b){return b=="var"?m(G,Fe):b=="variable"?m(Fe):X(Fe)}function Fe(b,H){return b==")"?m():b==";"?m(Fe):H=="in"||H=="of"?(S.marked="keyword",m(me,Fe)):X(me,Fe)}function ze(b,H){if(H=="*")return S.marked="keyword",m(ze);if(b=="variable")return W(H),m(ze);if(b=="(")return m(se,_e(")"),B(et,")"),Re,Z,Xe,Ce);if(x&&H=="<")return m(_e(">"),B(on,">"),Re,ze)}function Ge(b,H){if(H=="*")return S.marked="keyword",m(Ge);if(b=="variable")return W(H),m(Ge);if(b=="(")return m(se,_e(")"),B(et,")"),Re,Z,Ce);if(x&&H=="<")return m(_e(">"),B(on,">"),Re,Ge)}function $e(b,H){if(b=="keyword"||b=="variable")return S.marked="type",m($e);if(H=="<")return m(_e(">"),B(on,">"),Re)}function et(b,H){return H=="@"&&m(me,et),b=="spread"?m(et):x&&Oe(H)?(S.marked="keyword",m(et)):x&&b=="this"?m(Be,N):X(Le,Be,N)}function dt(b,H){return b=="variable"?It(b,H):Pt(b,H)}function It(b,H){if(b=="variable")return W(H),m(Pt)}function Pt(b,H){if(H=="<")return m(_e(">"),B(on,">"),Re,Pt);if(H=="extends"||H=="implements"||x&&b==",")return H=="implements"&&(S.marked="keyword"),m(x?Te:me,Pt);if(b=="{")return m(_e("}"),St,Re)}function St(b,H){if(b=="async"||b=="variable"&&(H=="static"||H=="get"||H=="set"||x&&Oe(H))&&S.stream.match(/^\s+[\w$\xa1-\uffff]/,!1))return S.marked="keyword",m(St);if(b=="variable"||S.style=="keyword")return S.marked="property",m(sn,St);if(b=="number"||b=="string")return m(sn,St);if(b=="[")return m(me,Be,Ae("]"),sn,St);if(H=="*")return S.marked="keyword",m(St);if(x&&b=="(")return X(Ge,St);if(b==";"||b==",")return m(St);if(b=="}")return m();if(H=="@")return m(me,St)}function sn(b,H){if(H=="!"||H=="?")return m(sn);if(b==":")return m(Te,N);if(H=="=")return m(Pe);var K=S.state.lexical.prev,pe=K&&K.info=="interface";return X(pe?Ge:ze)}function Tn(b,H){return H=="*"?(S.marked="keyword",m(ft,Ae(";"))):H=="default"?(S.marked="keyword",m(me,Ae(";"))):b=="{"?m(B(Pn,"}"),ft,Ae(";")):X(Xe)}function Pn(b,H){if(H=="as")return S.marked="keyword",m(Ae("variable"));if(b=="variable")return X(Pe,Pn)}function gn(b){return b=="string"?m():b=="("?X(me):b=="."?X(De):X(hn,Mt,ft)}function hn(b,H){return b=="{"?Ie(hn,"}"):(b=="variable"&&W(H),H=="*"&&(S.marked="keyword"),m(Lt))}function Mt(b){if(b==",")return m(hn,Mt)}function Lt(b,H){if(H=="as")return S.marked="keyword",m(hn)}function ft(b,H){if(H=="from")return S.marked="keyword",m(me)}function Qt(b){return b=="]"?m():X(B(Pe,"]"))}function j(){return X(_e("form"),Le,Ae("{"),_e("}"),B(le,"}"),Re,Re)}function le(){return X(Le,N)}function He(b,H){return b.lastType=="operator"||b.lastType==","||O.test(H.charAt(0))||/[,.]/.test(H.charAt(0))}function Qe(b,H,K){return H.tokenize==D&&/^(?:operator|sof|keyword [bcd]|case|new|export|default|spread|[\[{}\(,;:]|=>)$/.test(H.lastType)||H.lastType=="quasi"&&/\{\s*$/.test(b.string.slice(0,b.pos-(K||0)))}return{startState:function(b){var H={tokenize:D,lastType:"sof",cc:[],lexical:new g((b||0)-u,0,"block",!1),localVars:i.localVars,context:i.localVars&&new fe(null,null,!1),indented:b||0};return i.globalVars&&typeof i.globalVars=="object"&&(H.globalVars=i.globalVars),H},token:function(b,H){if(b.sol()&&(H.lexical.hasOwnProperty("align")||(H.lexical.align=!1),H.indented=b.indentation(),de(b,H)),H.tokenize!=oe&&b.eatSpace())return null;var K=H.tokenize(b,H);return Ee=="comment"?K:(H.lastType=Ee=="operator"&&(ie=="++"||ie=="--")?"incdec":Ee,E(H,K,Ee,ie,b))},indent:function(b,H){if(b.tokenize==oe||b.tokenize==ge)return e.Pass;if(b.tokenize!=D)return 0;var K=H&&H.charAt(0),pe=b.lexical,Ze;if(!/^\s*else\b/.test(H))for(var ct=b.cc.length-1;ct>=0;--ct){var yt=b.cc[ct];if(yt==Re)pe=pe.prev;else if(yt!=Y&&yt!=Ce)break}for(;(pe.type=="stat"||pe.type=="form")&&(K=="}"||(Ze=b.cc[b.cc.length-1])&&(Ze==De||Ze==it)&&!/^[,\.=+\-*:?[\(]/.test(H));)pe=pe.prev;s&&pe.type==")"&&pe.prev.type=="stat"&&(pe=pe.prev);var qt=pe.type,an=K==qt;return qt=="vardef"?pe.indented+(b.lastType=="operator"||b.lastType==","?pe.info.length+1:0):qt=="form"&&K=="{"?pe.indented:qt=="form"?pe.indented+u:qt=="stat"?pe.indented+(He(b,H)?s||u:0):pe.info=="switch"&&!an&&i.doubleIndentSwitch!=!1?pe.indented+(/^(?:case|default)\b/.test(H)?u:2*u):pe.align?pe.column+(an?0:1):pe.indented+(an?0:u)},electricInput:/^\s*(?:case .*?:|default:|\{|\})$/,blockCommentStart:d?null:"/*",blockCommentEnd:d?null:"*/",blockCommentContinue:d?null:" * ",lineComment:d?null:"//",fold:"brace",closeBrackets:"()[]{}''\"\"``",helperType:d?"json":"javascript",jsonldMode:h,jsonMode:d,expressionAllowed:Qe,skipExpression:function(b){E(b,"atom","atom","true",new e.StringStream("",2,null))}}}),e.registerHelper("wordChars","javascript",/[\w$]/),e.defineMIME("text/javascript","javascript"),e.defineMIME("text/ecmascript","javascript"),e.defineMIME("application/javascript","javascript"),e.defineMIME("application/x-javascript","javascript"),e.defineMIME("application/ecmascript","javascript"),e.defineMIME("application/json",{name:"javascript",json:!0}),e.defineMIME("application/x-json",{name:"javascript",json:!0}),e.defineMIME("application/manifest+json",{name:"javascript",json:!0}),e.defineMIME("application/ld+json",{name:"javascript",jsonld:!0}),e.defineMIME("text/typescript",{name:"javascript",typescript:!0}),e.defineMIME("application/typescript",{name:"javascript",typescript:!0})})});var dw=xt((cw,hw)=>{(function(e){typeof cw=="object"&&typeof hw=="object"?e(wl(),uw(),fw()):typeof define=="function"&&define.amd?define(["../../lib/codemirror","../xml/xml","../javascript/javascript"],e):e(CodeMirror)})(function(e){"use strict";function n(u,s,h,d){this.state=u,this.mode=s,this.depth=h,this.prev=d}function i(u){return new n(e.copyState(u.mode,u.state),u.mode,u.depth,u.prev&&i(u.prev))}e.defineMode("jsx",function(u,s){var h=e.getMode(u,{name:"xml",allowMissing:!0,multilineTagIndentPastTag:!1,allowMissingTagName:!0}),d=e.getMode(u,s&&s.base||"javascript");function v(O){var te=O.tagName;O.tagName=null;var ve=h.indent(O,"","");return O.tagName=te,ve}function x(O,te){return te.context.mode==h?T(O,te,te.context):M(O,te,te.context)}function T(O,te,ve){if(ve.depth==2)return O.match(/^.*?\*\//)?ve.depth=1:O.skipToEnd(),"comment";if(O.peek()=="{"){h.skipAttribute(ve.state);var Ee=v(ve.state),ie=ve.state.context;if(ie&&O.match(/^[^>]*>\s*$/,!1)){for(;ie.prev&&!ie.startOfLine;)ie=ie.prev;ie.startOfLine?Ee-=u.indentUnit:ve.prev.state.lexical&&(Ee=ve.prev.state.lexical.indented)}else ve.depth==1&&(Ee+=u.indentUnit);return te.context=new n(e.startState(d,Ee),d,0,te.context),null}if(ve.depth==1){if(O.peek()=="<")return h.skipAttribute(ve.state),te.context=new n(e.startState(h,v(ve.state)),h,0,te.context),null;if(O.match("//"))return O.skipToEnd(),"comment";if(O.match("/*"))return ve.depth=2,x(O,te)}var I=h.token(O,ve.state),D=O.current(),q;return/\btag\b/.test(I)?/>$/.test(D)?ve.state.context?ve.depth=0:te.context=te.context.prev:/^-1&&O.backUp(D.length-q),I}function M(O,te,ve){if(O.peek()=="<"&&d.expressionAllowed(O,ve.state))return te.context=new n(e.startState(h,d.indent(ve.state,"","")),h,0,te.context),d.skipExpression(ve.state),null;var Ee=d.token(O,ve.state);if(!Ee&&ve.depth!=null){var ie=O.current();ie=="{"?ve.depth++:ie=="}"&&--ve.depth==0&&(te.context=te.context.prev)}return Ee}return{startState:function(){return{context:new n(e.startState(d),d)}},copyState:function(O){return{context:i(O.context)}},token:x,indent:function(O,te,ve){return O.context.mode.indent(O.context.state,te,ve)},innerMode:function(O){return O.context}}},"xml","javascript"),e.defineMIME("text/jsx","jsx"),e.defineMIME("text/typescript-jsx",{name:"jsx",base:{name:"javascript",typescript:!0}})})});var yw=xt((iE,mw)=>{mw.exports=[">",">>","#","%"]});var xw=xt((oE,ww)=>{function lC({trigger:e="",text:n}){let i=n.slice(e.length).match(/(^\S*\((.*?)\)|^\S*)/),u=n.slice(e.length+i[1].length+1),s=i[2],h=s?s.split(","):[],d=i[1].slice(0,i[1].length-(typeof s!="undefined"?s.length+2:0)),v=d.split(".");return{path:d,list:v,params:h,root:v[0],input:u}}ww.exports={parseCommand:lC}});var Mw=xt((gE,Cw)=>{var bw=6e4;Cw.exports=function(n){var i=new Date(n.getTime()),u=i.getTimezoneOffset();i.setSeconds(0,0);var s=i.getTime()%bw;return u*bw+s}});var Ap=xt((mE,Ew)=>{function cC(e){return e instanceof Date}Ew.exports=cC});var _i=xt((yE,Pw)=>{var Ip=Mw(),hC=Ap(),Rp=36e5,Fp=6e4,dC=2,pC=/[T ]/,vC=/:/,gC=/^(\d{2})$/,mC=[/^([+-]\d{2})$/,/^([+-]\d{3})$/,/^([+-]\d{4})$/],yC=/^(\d{4})/,wC=[/^([+-]\d{4})/,/^([+-]\d{5})/,/^([+-]\d{6})/],xC=/^-(\d{2})$/,_C=/^-?(\d{3})$/,kC=/^-?(\d{2})-?(\d{2})$/,TC=/^-?W(\d{2})$/,SC=/^-?W(\d{2})-?(\d{1})$/,bC=/^(\d{2}([.,]\d*)?)$/,CC=/^(\d{2}):?(\d{2}([.,]\d*)?)$/,MC=/^(\d{2}):?(\d{2}):?(\d{2}([.,]\d*)?)$/,EC=/([Z+-].*)$/,NC=/^(Z)$/,PC=/^([+-])(\d{2})$/,LC=/^([+-])(\d{2}):?(\d{2})$/;function OC(e,n){if(hC(e))return new Date(e.getTime());if(typeof e!="string")return new Date(e);var i=n||{},u=i.additionalDigits;u==null?u=dC:u=Number(u);var s=DC(e),h=AC(s.date,u),d=h.year,v=h.restDateString,x=IC(v,d);if(x){var T=x.getTime(),M=0,O;if(s.time&&(M=RC(s.time)),s.timezone)O=FC(s.timezone)*Fp;else{var te=T+M,ve=new Date(te);O=Ip(ve);var Ee=new Date(te);Ee.setDate(ve.getDate()+1);var ie=Ip(Ee)-Ip(ve);ie>0&&(O+=ie)}return new Date(T+M+O)}else return new Date(e)}function DC(e){var n={},i=e.split(pC),u;if(vC.test(i[0])?(n.date=null,u=i[0]):(n.date=i[0],u=i[1]),u){var s=EC.exec(u);s?(n.time=u.replace(s[1],""),n.timezone=s[1]):n.time=u}return n}function AC(e,n){var i=mC[n],u=wC[n],s;if(s=yC.exec(e)||u.exec(e),s){var h=s[1];return{year:parseInt(h,10),restDateString:e.slice(h.length)}}if(s=gC.exec(e)||i.exec(e),s){var d=s[1];return{year:parseInt(d,10)*100,restDateString:e.slice(d.length)}}return{year:null}}function IC(e,n){if(n===null)return null;var i,u,s,h;if(e.length===0)return u=new Date(0),u.setUTCFullYear(n),u;if(i=xC.exec(e),i)return u=new Date(0),s=parseInt(i[1],10)-1,u.setUTCFullYear(n,s),u;if(i=_C.exec(e),i){u=new Date(0);var d=parseInt(i[1],10);return u.setUTCFullYear(n,0,d),u}if(i=kC.exec(e),i){u=new Date(0),s=parseInt(i[1],10)-1;var v=parseInt(i[2],10);return u.setUTCFullYear(n,s,v),u}if(i=TC.exec(e),i)return h=parseInt(i[1],10)-1,Nw(n,h);if(i=SC.exec(e),i){h=parseInt(i[1],10)-1;var x=parseInt(i[2],10)-1;return Nw(n,h,x)}return null}function RC(e){var n,i,u;if(n=bC.exec(e),n)return i=parseFloat(n[1].replace(",",".")),i%24*Rp;if(n=CC.exec(e),n)return i=parseInt(n[1],10),u=parseFloat(n[2].replace(",",".")),i%24*Rp+u*Fp;if(n=MC.exec(e),n){i=parseInt(n[1],10),u=parseInt(n[2],10);var s=parseFloat(n[3].replace(",","."));return i%24*Rp+u*Fp+s*1e3}return null}function FC(e){var n,i;return n=NC.exec(e),n?0:(n=PC.exec(e),n?(i=parseInt(n[2],10)*60,n[1]==="+"?-i:i):(n=LC.exec(e),n?(i=parseInt(n[2],10)*60+parseInt(n[3],10),n[1]==="+"?-i:i):0))}function Nw(e,n,i){n=n||0,i=i||0;var u=new Date(0);u.setUTCFullYear(e,0,4);var s=u.getUTCDay()||7,h=n*7+i+1-s;return u.setUTCDate(u.getUTCDate()+h),u}Pw.exports=OC});var Ow=xt((wE,Lw)=>{var zC=_i();function HC(e){var n=zC(e),i=new Date(0);return i.setFullYear(n.getFullYear(),0,1),i.setHours(0,0,0,0),i}Lw.exports=HC});var Aw=xt((xE,Dw)=>{var WC=_i();function UC(e){var n=WC(e);return n.setHours(0,0,0,0),n}Dw.exports=UC});var zw=xt((_E,Fw)=>{var Iw=Aw(),Rw=6e4,BC=864e5;function jC(e,n){var i=Iw(e),u=Iw(n),s=i.getTime()-i.getTimezoneOffset()*Rw,h=u.getTime()-u.getTimezoneOffset()*Rw;return Math.round((s-h)/BC)}Fw.exports=jC});var Ww=xt((kE,Hw)=>{var YC=_i(),qC=Ow(),GC=zw();function VC(e){var n=YC(e),i=GC(n,qC(n)),u=i+1;return u}Hw.exports=VC});var Bw=xt((TE,Uw)=>{var $C=_i();function XC(e,n){var i=n&&Number(n.weekStartsOn)||0,u=$C(e),s=u.getDay(),h=(s{var KC=Bw();function QC(e){return KC(e,{weekStartsOn:1})}jw.exports=QC});var zp=xt((bE,qw)=>{var ZC=_i(),Yw=Pf();function JC(e){var n=ZC(e),i=n.getFullYear(),u=new Date(0);u.setFullYear(i+1,0,4),u.setHours(0,0,0,0);var s=Yw(u),h=new Date(0);h.setFullYear(i,0,4),h.setHours(0,0,0,0);var d=Yw(h);return n.getTime()>=s.getTime()?i+1:n.getTime()>=d.getTime()?i:i-1}qw.exports=JC});var Vw=xt((CE,Gw)=>{var eM=zp(),tM=Pf();function nM(e){var n=eM(e),i=new Date(0);i.setFullYear(n,0,4),i.setHours(0,0,0,0);var u=tM(i);return u}Gw.exports=nM});var Xw=xt((ME,$w)=>{var rM=_i(),iM=Pf(),oM=Vw(),aM=6048e5;function uM(e){var n=rM(e),i=iM(n).getTime()-oM(n).getTime();return Math.round(i/aM)+1}$w.exports=uM});var Qw=xt((EE,Kw)=>{var lM=Ap();function sM(e){if(lM(e))return!isNaN(e);throw new TypeError(toString.call(e)+" is not an instance of Date")}Kw.exports=sM});var Jw=xt((NE,Zw)=>{function fM(){var e={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}};function n(i,u,s){s=s||{};var h;return typeof e[i]=="string"?h=e[i]:u===1?h=e[i].one:h=e[i].other.replace("{{count}}",u),s.addSuffix?s.comparison>0?"in "+h:h+" ago":h}return{localize:n}}Zw.exports=fM});var tx=xt((PE,ex)=>{var cM=["M","MM","Q","D","DD","DDD","DDDD","d","E","W","WW","YY","YYYY","GG","GGGG","H","HH","h","hh","m","mm","s","ss","S","SS","SSS","Z","ZZ","X","x"];function hM(e){var n=[];for(var i in e)e.hasOwnProperty(i)&&n.push(i);var u=cM.concat(n).sort().reverse(),s=new RegExp("(\\[[^\\[]*\\])|(\\\\)?("+u.join("|")+"|.)","g");return s}ex.exports=hM});var rx=xt((LE,nx)=>{var dM=tx();function pM(){var e=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],n=["January","February","March","April","May","June","July","August","September","October","November","December"],i=["Su","Mo","Tu","We","Th","Fr","Sa"],u=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],s=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],h=["AM","PM"],d=["am","pm"],v=["a.m.","p.m."],x={MMM:function(M){return e[M.getMonth()]},MMMM:function(M){return n[M.getMonth()]},dd:function(M){return i[M.getDay()]},ddd:function(M){return u[M.getDay()]},dddd:function(M){return s[M.getDay()]},A:function(M){return M.getHours()/12>=1?h[1]:h[0]},a:function(M){return M.getHours()/12>=1?d[1]:d[0]},aa:function(M){return M.getHours()/12>=1?v[1]:v[0]}},T=["M","D","DDD","d","Q","W"];return T.forEach(function(M){x[M+"o"]=function(O,te){return vM(te[M](O))}}),{formatters:x,formattingTokensRegExp:dM(x)}}function vM(e){var n=e%100;if(n>20||n<10)switch(n%10){case 1:return e+"st";case 2:return e+"nd";case 3:return e+"rd"}return e+"th"}nx.exports=pM});var ox=xt((OE,ix)=>{var gM=Jw(),mM=rx();ix.exports={distanceInWords:gM(),format:mM()}});var hx=xt((DE,cx)=>{var ax=Ww(),ux=Xw(),lx=zp(),yM=_i(),wM=Qw(),sx=ox();function xM(e,n,i){var u=n?String(n):"YYYY-MM-DDTHH:mm:ss.SSSZ",s=i||{},h=s.locale,d=sx.format.formatters,v=sx.format.formattingTokensRegExp;h&&h.format&&h.format.formatters&&(d=h.format.formatters,h.format.formattingTokensRegExp&&(v=h.format.formattingTokensRegExp));var x=yM(e);if(!wM(x))return"Invalid Date";var T=_M(u,d,v);return T(x)}var Hp={M:function(e){return e.getMonth()+1},MM:function(e){return Or(e.getMonth()+1,2)},Q:function(e){return Math.ceil((e.getMonth()+1)/3)},D:function(e){return e.getDate()},DD:function(e){return Or(e.getDate(),2)},DDD:function(e){return ax(e)},DDDD:function(e){return Or(ax(e),3)},d:function(e){return e.getDay()},E:function(e){return e.getDay()||7},W:function(e){return ux(e)},WW:function(e){return Or(ux(e),2)},YY:function(e){return Or(e.getFullYear(),4).substr(2)},YYYY:function(e){return Or(e.getFullYear(),4)},GG:function(e){return String(lx(e)).substr(2)},GGGG:function(e){return lx(e)},H:function(e){return e.getHours()},HH:function(e){return Or(e.getHours(),2)},h:function(e){var n=e.getHours();return n===0?12:n>12?n%12:n},hh:function(e){return Or(Hp.h(e),2)},m:function(e){return e.getMinutes()},mm:function(e){return Or(e.getMinutes(),2)},s:function(e){return e.getSeconds()},ss:function(e){return Or(e.getSeconds(),2)},S:function(e){return Math.floor(e.getMilliseconds()/100)},SS:function(e){return Or(Math.floor(e.getMilliseconds()/10),2)},SSS:function(e){return Or(e.getMilliseconds(),3)},Z:function(e){return fx(e.getTimezoneOffset(),":")},ZZ:function(e){return fx(e.getTimezoneOffset())},X:function(e){return Math.floor(e.getTime()/1e3)},x:function(e){return e.getTime()}};function _M(e,n,i){var u=e.match(i),s=u.length,h,d;for(h=0;h0?"-":"+",u=Math.abs(e),s=Math.floor(u/60),h=u%60;return i+Or(s,2)+n+Or(h,2)}function Or(e,n){for(var i=Math.abs(e).toString();i.length{var TM=_i();function SM(e){var n=TM(e),i=n.getFullYear(),u=n.getMonth(),s=new Date(0);return s.setFullYear(i,u+1,0),s.setHours(0,0,0,0),s.getDate()}dx.exports=SM});var gx=xt((IE,vx)=>{var bM=_i(),CM=px();function MM(e,n){var i=bM(e),u=Number(n),s=i.getMonth()+u,h=new Date(0);h.setFullYear(i.getFullYear(),s,1),h.setHours(0,0,0,0);var d=CM(h);return i.setMonth(s,Math.min(d,i.getDate())),i}vx.exports=MM});var yx=xt((RE,mx)=>{var EM=gx();function NM(e,n){var i=Number(n);return EM(e,-i)}mx.exports=NM});var ea=xt((Lf,_x)=>{(function(e,n){typeof Lf=="object"&&typeof _x!="undefined"?n(Lf):typeof define=="function"&&define.amd?define(["exports"],n):(e=e||self,n(e.d3=e.d3||{}))})(Lf,function(e){"use strict";var n="http://www.w3.org/1999/xhtml",i={svg:"http://www.w3.org/2000/svg",xhtml:n,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function u(j){var le=j+="",He=le.indexOf(":");return He>=0&&(le=j.slice(0,He))!=="xmlns"&&(j=j.slice(He+1)),i.hasOwnProperty(le)?{space:i[le],local:j}:j}function s(j){return function(){var le=this.ownerDocument,He=this.namespaceURI;return He===n&&le.documentElement.namespaceURI===n?le.createElement(j):le.createElementNS(He,j)}}function h(j){return function(){return this.ownerDocument.createElementNS(j.space,j.local)}}function d(j){var le=u(j);return(le.local?h:s)(le)}function v(){}function x(j){return j==null?v:function(){return this.querySelector(j)}}function T(j){typeof j!="function"&&(j=x(j));for(var le=this._groups,He=le.length,Qe=new Array(He),b=0;b=z&&(z=w+1);!(ae=Kr[z])&&++z=0;)(K=Qe[b])&&(H&&K.compareDocumentPosition(H)^4&&H.parentNode.insertBefore(K,H),H=K);return this}function S(j){j||(j=X);function le(qt,an){return qt&&an?j(qt.__data__,an.__data__):!qt-!an}for(var He=this._groups,Qe=He.length,b=new Array(Qe),H=0;Hle?1:j>=le?0:NaN}function m(){var j=arguments[0];return arguments[0]=this,j.apply(null,arguments),this}function A(){var j=new Array(this.size()),le=-1;return this.each(function(){j[++le]=this}),j}function W(){for(var j=this._groups,le=0,He=j.length;le1?this.each((le==null?Xe:typeof le=="function"?me:re)(j,le,He??"")):Q(this.node(),j)}function Q(j,le){return j.style.getPropertyValue(le)||Ae(j).getComputedStyle(j,null).getPropertyValue(le)}function ee(j){return function(){delete this[j]}}function ke(j,le){return function(){this[j]=le}}function De(j,le){return function(){var He=le.apply(this,arguments);He==null?delete this[j]:this[j]=He}}function it(j,le){return arguments.length>1?this.each((le==null?ee:typeof le=="function"?De:ke)(j,le)):this.node()[j]}function Je(j){return j.trim().split(/^|\s+/)}function Yt(j){return j.classList||new Xt(j)}function Xt(j){this._node=j,this._names=Je(j.getAttribute("class")||"")}Xt.prototype={add:function(j){var le=this._names.indexOf(j);le<0&&(this._names.push(j),this._node.setAttribute("class",this._names.join(" ")))},remove:function(j){var le=this._names.indexOf(j);le>=0&&(this._names.splice(le,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(j){return this._names.indexOf(j)>=0}};function Dt(j,le){for(var He=Yt(j),Qe=-1,b=le.length;++Qe=0&&(He=le.slice(Qe+1),le=le.slice(0,Qe)),{type:le,name:He}})}function L(j){return function(){var le=this.__on;if(!!le){for(var He=0,Qe=-1,b=le.length,H;He{(function(e,n){typeof Of=="object"&&typeof kx!="undefined"?n(Of):typeof define=="function"&&define.amd?define(["exports"],n):n(e.d3=e.d3||{})})(Of,function(e){"use strict";var n="$";function i(){}i.prototype=u.prototype={constructor:i,has:function(ie){return n+ie in this},get:function(ie){return this[n+ie]},set:function(ie,I){return this[n+ie]=I,this},remove:function(ie){var I=n+ie;return I in this&&delete this[I]},clear:function(){for(var ie in this)ie[0]===n&&delete this[ie]},keys:function(){var ie=[];for(var I in this)I[0]===n&&ie.push(I.slice(1));return ie},values:function(){var ie=[];for(var I in this)I[0]===n&&ie.push(this[I]);return ie},entries:function(){var ie=[];for(var I in this)I[0]===n&&ie.push({key:I.slice(1),value:this[I]});return ie},size:function(){var ie=0;for(var I in this)I[0]===n&&++ie;return ie},empty:function(){for(var ie in this)if(ie[0]===n)return!1;return!0},each:function(ie){for(var I in this)I[0]===n&&ie(this[I],I.slice(1),this)}};function u(ie,I){var D=new i;if(ie instanceof i)ie.each(function(de,c){D.set(c,de)});else if(Array.isArray(ie)){var q=-1,oe=ie.length,ge;if(I==null)for(;++q=ie.length)return D!=null&&de.sort(D),q!=null?q(de):de;for(var E=-1,S=de.length,X=ie[c++],m,A,W=u(),he,Oe=g();++Eie.length)return de;var g,k=I[c-1];return q!=null&&c>=ie.length?g=de.entries():(g=[],de.each(function(E,S){g.push({key:S,values:Ue(E,c)})})),k!=null?g.sort(function(E,S){return k(E.key,S.key)}):g}return oe={object:function(de){return ge(de,0,h,d)},map:function(de){return ge(de,0,v,x)},entries:function(de){return Ue(ge(de,0,v,x),0)},key:function(de){return ie.push(de),oe},sortKeys:function(de){return I[ie.length-1]=de,oe},sortValues:function(de){return D=de,oe},rollup:function(de){return q=de,oe}}}function h(){return{}}function d(ie,I,D){ie[I]=D}function v(){return u()}function x(ie,I,D){ie.set(I,D)}function T(){}var M=u.prototype;T.prototype=O.prototype={constructor:T,has:M.has,add:function(ie){return ie+="",this[n+ie]=ie,this},remove:M.remove,clear:M.clear,values:M.keys,size:M.size,empty:M.empty,each:M.each};function O(ie,I){var D=new T;if(ie instanceof T)ie.each(function(ge){D.add(ge)});else if(ie){var q=-1,oe=ie.length;if(I==null)for(;++q{(function(e,n){typeof Df=="object"&&typeof Tx!="undefined"?n(Df):typeof define=="function"&&define.amd?define(["exports"],n):n(e.d3=e.d3||{})})(Df,function(e){"use strict";function n(re,me){return reme?1:re>=me?0:NaN}function i(re){return re.length===1&&(re=u(re)),{left:function(me,Pe,Q,ee){for(Q==null&&(Q=0),ee==null&&(ee=me.length);Q>>1;re(me[ke],Pe)<0?Q=ke+1:ee=ke}return Q},right:function(me,Pe,Q,ee){for(Q==null&&(Q=0),ee==null&&(ee=me.length);Q>>1;re(me[ke],Pe)>0?ee=ke:Q=ke+1}return Q}}}function u(re){return function(me,Pe){return n(re(me),Pe)}}var s=i(n),h=s.right,d=s.left;function v(re,me){me==null&&(me=x);for(var Pe=0,Q=re.length-1,ee=re[0],ke=new Array(Q<0?0:Q);Pere?1:me>=re?0:NaN}function O(re){return re===null?NaN:+re}function te(re,me){var Pe=re.length,Q=0,ee=-1,ke=0,De,it,Je=0;if(me==null)for(;++ee1)return Je/(Q-1)}function ve(re,me){var Pe=te(re,me);return Pe&&Math.sqrt(Pe)}function Ee(re,me){var Pe=re.length,Q=-1,ee,ke,De;if(me==null){for(;++Q=ee)for(ke=De=ee;++Qee&&(ke=ee),De=ee)for(ke=De=ee;++Qee&&(ke=ee),De0)return[re];if((Q=me0)for(re=Math.ceil(re/it),me=Math.floor(me/it),De=new Array(ke=Math.ceil(me-re+1));++ee=0?(ke>=Ue?10:ke>=de?5:ke>=c?2:1)*Math.pow(10,ee):-Math.pow(10,-ee)/(ke>=Ue?10:ke>=de?5:ke>=c?2:1)}function E(re,me,Pe){var Q=Math.abs(me-re)/Math.max(0,Pe),ee=Math.pow(10,Math.floor(Math.log(Q)/Math.LN10)),ke=Q/ee;return ke>=Ue?ee*=10:ke>=de?ee*=5:ke>=c&&(ee*=2),meDt;)Nt.pop(),--Gt;var Rt=new Array(Gt+1),Kt;for(ke=0;ke<=Gt;++ke)Kt=Rt[ke]=[],Kt.x0=ke>0?Nt[ke-1]:Xt,Kt.x1=ke=1)return+Pe(re[Q-1],Q-1,re);var Q,ee=(Q-1)*me,ke=Math.floor(ee),De=+Pe(re[ke],ke,re),it=+Pe(re[ke+1],ke+1,re);return De+(it-De)*(ee-ke)}}function A(re,me,Pe){return re=D.call(re,O).sort(n),Math.ceil((Pe-me)/(2*(m(re,.75)-m(re,.25))*Math.pow(re.length,-1/3)))}function W(re,me,Pe){return Math.ceil((Pe-me)/(3.5*ve(re)*Math.pow(re.length,-1/3)))}function he(re,me){var Pe=re.length,Q=-1,ee,ke;if(me==null){for(;++Q=ee)for(ke=ee;++Qke&&(ke=ee)}else for(;++Q=ee)for(ke=ee;++Qke&&(ke=ee);return ke}function Oe(re,me){var Pe=re.length,Q=Pe,ee=-1,ke,De=0;if(me==null)for(;++ee=0;)for(De=re[me],Pe=De.length;--Pe>=0;)ke[--ee]=De[Pe];return ke}function We(re,me){var Pe=re.length,Q=-1,ee,ke;if(me==null){for(;++Q=ee)for(ke=ee;++Qee&&(ke=ee)}else for(;++Q=ee)for(ke=ee;++Qee&&(ke=ee);return ke}function se(re,me){for(var Pe=me.length,Q=new Array(Pe);Pe--;)Q[Pe]=re[me[Pe]];return Q}function be(re,me){if(!!(Pe=re.length)){var Pe,Q=0,ee=0,ke,De=re[ee];for(me==null&&(me=n);++Q{(function(e,n){typeof Af=="object"&&typeof bx!="undefined"?n(Af):typeof define=="function"&&define.amd?define(["exports"],n):(e=e||self,n(e.d3=e.d3||{}))})(Af,function(e){"use strict";function n(P,Z,Ne){P.prototype=Z.prototype=Ne,Ne.constructor=P}function i(P,Z){var Ne=Object.create(P.prototype);for(var Te in Z)Ne[Te]=Z[Te];return Ne}function u(){}var s=.7,h=1/s,d="\\s*([+-]?\\d+)\\s*",v="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",x="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",T=/^#([0-9a-f]{3,8})$/,M=new RegExp("^rgb\\("+[d,d,d]+"\\)$"),O=new RegExp("^rgb\\("+[x,x,x]+"\\)$"),te=new RegExp("^rgba\\("+[d,d,d,v]+"\\)$"),ve=new RegExp("^rgba\\("+[x,x,x,v]+"\\)$"),Ee=new RegExp("^hsl\\("+[v,x,x]+"\\)$"),ie=new RegExp("^hsla\\("+[v,x,x,v]+"\\)$"),I={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};n(u,ge,{copy:function(P){return Object.assign(new this.constructor,this,P)},displayable:function(){return this.rgb().displayable()},hex:D,formatHex:D,formatHsl:q,formatRgb:oe,toString:oe});function D(){return this.rgb().formatHex()}function q(){return A(this).formatHsl()}function oe(){return this.rgb().formatRgb()}function ge(P){var Z,Ne;return P=(P+"").trim().toLowerCase(),(Z=T.exec(P))?(Ne=Z[1].length,Z=parseInt(Z[1],16),Ne===6?Ue(Z):Ne===3?new k(Z>>8&15|Z>>4&240,Z>>4&15|Z&240,(Z&15)<<4|Z&15,1):Ne===8?de(Z>>24&255,Z>>16&255,Z>>8&255,(Z&255)/255):Ne===4?de(Z>>12&15|Z>>8&240,Z>>8&15|Z>>4&240,Z>>4&15|Z&240,((Z&15)<<4|Z&15)/255):null):(Z=M.exec(P))?new k(Z[1],Z[2],Z[3],1):(Z=O.exec(P))?new k(Z[1]*255/100,Z[2]*255/100,Z[3]*255/100,1):(Z=te.exec(P))?de(Z[1],Z[2],Z[3],Z[4]):(Z=ve.exec(P))?de(Z[1]*255/100,Z[2]*255/100,Z[3]*255/100,Z[4]):(Z=Ee.exec(P))?m(Z[1],Z[2]/100,Z[3]/100,1):(Z=ie.exec(P))?m(Z[1],Z[2]/100,Z[3]/100,Z[4]):I.hasOwnProperty(P)?Ue(I[P]):P==="transparent"?new k(NaN,NaN,NaN,0):null}function Ue(P){return new k(P>>16&255,P>>8&255,P&255,1)}function de(P,Z,Ne,Te){return Te<=0&&(P=Z=Ne=NaN),new k(P,Z,Ne,Te)}function c(P){return P instanceof u||(P=ge(P)),P?(P=P.rgb(),new k(P.r,P.g,P.b,P.opacity)):new k}function g(P,Z,Ne,Te){return arguments.length===1?c(P):new k(P,Z,Ne,Te??1)}function k(P,Z,Ne,Te){this.r=+P,this.g=+Z,this.b=+Ne,this.opacity=+Te}n(k,g,i(u,{brighter:function(P){return P=P==null?h:Math.pow(h,P),new k(this.r*P,this.g*P,this.b*P,this.opacity)},darker:function(P){return P=P==null?s:Math.pow(s,P),new k(this.r*P,this.g*P,this.b*P,this.opacity)},rgb:function(){return this},displayable:function(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:E,formatHex:E,formatRgb:S,toString:S}));function E(){return"#"+X(this.r)+X(this.g)+X(this.b)}function S(){var P=this.opacity;return P=isNaN(P)?1:Math.max(0,Math.min(1,P)),(P===1?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(P===1?")":", "+P+")")}function X(P){return P=Math.max(0,Math.min(255,Math.round(P)||0)),(P<16?"0":"")+P.toString(16)}function m(P,Z,Ne,Te){return Te<=0?P=Z=Ne=NaN:Ne<=0||Ne>=1?P=Z=NaN:Z<=0&&(P=NaN),new he(P,Z,Ne,Te)}function A(P){if(P instanceof he)return new he(P.h,P.s,P.l,P.opacity);if(P instanceof u||(P=ge(P)),!P)return new he;if(P instanceof he)return P;P=P.rgb();var Z=P.r/255,Ne=P.g/255,Te=P.b/255,ht=Math.min(Z,Ne,Te),nt=Math.max(Z,Ne,Te),at=NaN,vt=nt-ht,Ft=(nt+ht)/2;return vt?(Z===nt?at=(Ne-Te)/vt+(Ne0&&Ft<1?0:at,new he(at,vt,Ft,P.opacity)}function W(P,Z,Ne,Te){return arguments.length===1?A(P):new he(P,Z,Ne,Te??1)}function he(P,Z,Ne,Te){this.h=+P,this.s=+Z,this.l=+Ne,this.opacity=+Te}n(he,W,i(u,{brighter:function(P){return P=P==null?h:Math.pow(h,P),new he(this.h,this.s,this.l*P,this.opacity)},darker:function(P){return P=P==null?s:Math.pow(s,P),new he(this.h,this.s,this.l*P,this.opacity)},rgb:function(){var P=this.h%360+(this.h<0)*360,Z=isNaN(P)||isNaN(this.s)?0:this.s,Ne=this.l,Te=Ne+(Ne<.5?Ne:1-Ne)*Z,ht=2*Ne-Te;return new k(Oe(P>=240?P-240:P+120,ht,Te),Oe(P,ht,Te),Oe(P<120?P+240:P-120,ht,Te),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl:function(){var P=this.opacity;return P=isNaN(P)?1:Math.max(0,Math.min(1,P)),(P===1?"hsl(":"hsla(")+(this.h||0)+", "+(this.s||0)*100+"%, "+(this.l||0)*100+"%"+(P===1?")":", "+P+")")}}));function Oe(P,Z,Ne){return(P<60?Z+(Ne-Z)*P/60:P<180?Ne:P<240?Z+(Ne-Z)*(240-P)/60:Z)*255}var fe=Math.PI/180,ne=180/Math.PI,We=18,se=.96422,be=1,Ce=.82521,_e=4/29,Re=6/29,Ae=3*Re*Re,Xe=Re*Re*Re;function re(P){if(P instanceof Q)return new Q(P.l,P.a,P.b,P.opacity);if(P instanceof Dt)return Nt(P);P instanceof k||(P=c(P));var Z=it(P.r),Ne=it(P.g),Te=it(P.b),ht=ee((.2225045*Z+.7168786*Ne+.0606169*Te)/be),nt,at;return Z===Ne&&Ne===Te?nt=at=ht:(nt=ee((.4360747*Z+.3850649*Ne+.1430804*Te)/se),at=ee((.0139322*Z+.0971045*Ne+.7141733*Te)/Ce)),new Q(116*ht-16,500*(nt-ht),200*(ht-at),P.opacity)}function me(P,Z){return new Q(P,0,0,Z??1)}function Pe(P,Z,Ne,Te){return arguments.length===1?re(P):new Q(P,Z,Ne,Te??1)}function Q(P,Z,Ne,Te){this.l=+P,this.a=+Z,this.b=+Ne,this.opacity=+Te}n(Q,Pe,i(u,{brighter:function(P){return new Q(this.l+We*(P??1),this.a,this.b,this.opacity)},darker:function(P){return new Q(this.l-We*(P??1),this.a,this.b,this.opacity)},rgb:function(){var P=(this.l+16)/116,Z=isNaN(this.a)?P:P+this.a/500,Ne=isNaN(this.b)?P:P-this.b/200;return Z=se*ke(Z),P=be*ke(P),Ne=Ce*ke(Ne),new k(De(3.1338561*Z-1.6168667*P-.4906146*Ne),De(-.9787684*Z+1.9161415*P+.033454*Ne),De(.0719453*Z-.2289914*P+1.4052427*Ne),this.opacity)}}));function ee(P){return P>Xe?Math.pow(P,1/3):P/Ae+_e}function ke(P){return P>Re?P*P*P:Ae*(P-_e)}function De(P){return 255*(P<=.0031308?12.92*P:1.055*Math.pow(P,1/2.4)-.055)}function it(P){return(P/=255)<=.04045?P/12.92:Math.pow((P+.055)/1.055,2.4)}function Je(P){if(P instanceof Dt)return new Dt(P.h,P.c,P.l,P.opacity);if(P instanceof Q||(P=re(P)),P.a===0&&P.b===0)return new Dt(NaN,0{(function(e,n){typeof Rf=="object"&&typeof Cx!="undefined"?n(Rf,If()):typeof define=="function"&&define.amd?define(["exports","d3-color"],n):(e=e||self,n(e.d3=e.d3||{},e.d3))})(Rf,function(e,n){"use strict";function i(R,B,Ie,Ke,Be){var P=R*R,Z=P*R;return((1-3*R+3*P-Z)*B+(4-6*P+3*Z)*Ie+(1+3*R+3*P-3*Z)*Ke+Z*Be)/6}function u(R){var B=R.length-1;return function(Ie){var Ke=Ie<=0?Ie=0:Ie>=1?(Ie=1,B-1):Math.floor(Ie*B),Be=R[Ke],P=R[Ke+1],Z=Ke>0?R[Ke-1]:2*Be-P,Ne=Ke180||Ie<-180?Ie-360*Math.round(Ie/360):Ie):h(isNaN(R)?B:R)}function T(R){return(R=+R)==1?M:function(B,Ie){return Ie-B?v(B,Ie,R):h(isNaN(B)?Ie:B)}}function M(R,B){var Ie=B-R;return Ie?d(R,Ie):h(isNaN(R)?B:R)}var O=function R(B){var Ie=T(B);function Ke(Be,P){var Z=Ie((Be=n.rgb(Be)).r,(P=n.rgb(P)).r),Ne=Ie(Be.g,P.g),Te=Ie(Be.b,P.b),ht=M(Be.opacity,P.opacity);return function(nt){return Be.r=Z(nt),Be.g=Ne(nt),Be.b=Te(nt),Be.opacity=ht(nt),Be+""}}return Ke.gamma=R,Ke}(1);function te(R){return function(B){var Ie=B.length,Ke=new Array(Ie),Be=new Array(Ie),P=new Array(Ie),Z,Ne;for(Z=0;ZIe&&(P=B.slice(Ie,P),Ne[Z]?Ne[Z]+=P:Ne[++Z]=P),(Ke=Ke[0])===(Be=Be[0])?Ne[Z]?Ne[Z]+=Be:Ne[++Z]=Be:(Ne[++Z]=null,Te.push({i:Z,x:ge(Ke,Be)})),Ie=c.lastIndex;return Ie180?nt+=360:nt-ht>180&&(ht+=360),vt.push({i:at.push(Be(at)+"rotate(",null,Ke)-2,x:ge(ht,nt)})):nt&&at.push(Be(at)+"rotate("+nt+Ke)}function Ne(ht,nt,at,vt){ht!==nt?vt.push({i:at.push(Be(at)+"skewX(",null,Ke)-2,x:ge(ht,nt)}):nt&&at.push(Be(at)+"skewX("+nt+Ke)}function Te(ht,nt,at,vt,Ft,Ct){if(ht!==at||nt!==vt){var zt=Ft.push(Be(Ft)+"scale(",null,",",null,")");Ct.push({i:zt-4,x:ge(ht,at)},{i:zt-2,x:ge(nt,vt)})}else(at!==1||vt!==1)&&Ft.push(Be(Ft)+"scale("+at+","+vt+")")}return function(ht,nt){var at=[],vt=[];return ht=R(ht),nt=R(nt),P(ht.translateX,ht.translateY,nt.translateX,nt.translateY,at,vt),Z(ht.rotate,nt.rotate,at,vt),Ne(ht.skewX,nt.skewX,at,vt),Te(ht.scaleX,ht.scaleY,nt.scaleX,nt.scaleY,at,vt),ht=nt=null,function(Ft){for(var Ct=-1,zt=vt.length,Bt;++Ct{(function(e,n){typeof zf=="object"&&typeof Mx!="undefined"?n(zf):typeof define=="function"&&define.amd?define(["exports"],n):(e=typeof globalThis!="undefined"?globalThis:e||self,n(e.d3=e.d3||{}))})(zf,function(e){"use strict";function n(c){return Math.abs(c=Math.round(c))>=1e21?c.toLocaleString("en").replace(/,/g,""):c.toString(10)}function i(c,g){if((k=(c=g?c.toExponential(g-1):c.toExponential()).indexOf("e"))<0)return null;var k,E=c.slice(0,k);return[E.length>1?E[0]+E.slice(2):E,+c.slice(k+1)]}function u(c){return c=i(Math.abs(c)),c?c[1]:NaN}function s(c,g){return function(k,E){for(var S=k.length,X=[],m=0,A=c[0],W=0;S>0&&A>0&&(W+A+1>E&&(A=Math.max(1,E-W)),X.push(k.substring(S-=A,S+A)),!((W+=A+1)>E));)A=c[m=(m+1)%c.length];return X.reverse().join(g)}}function h(c){return function(g){return g.replace(/[0-9]/g,function(k){return c[+k]})}}var d=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function v(c){if(!(g=d.exec(c)))throw new Error("invalid format: "+c);var g;return new x({fill:g[1],align:g[2],sign:g[3],symbol:g[4],zero:g[5],width:g[6],comma:g[7],precision:g[8]&&g[8].slice(1),trim:g[9],type:g[10]})}v.prototype=x.prototype;function x(c){this.fill=c.fill===void 0?" ":c.fill+"",this.align=c.align===void 0?">":c.align+"",this.sign=c.sign===void 0?"-":c.sign+"",this.symbol=c.symbol===void 0?"":c.symbol+"",this.zero=!!c.zero,this.width=c.width===void 0?void 0:+c.width,this.comma=!!c.comma,this.precision=c.precision===void 0?void 0:+c.precision,this.trim=!!c.trim,this.type=c.type===void 0?"":c.type+""}x.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function T(c){e:for(var g=c.length,k=1,E=-1,S;k0&&(E=0);break}return E>0?c.slice(0,E)+c.slice(S+1):c}var M;function O(c,g){var k=i(c,g);if(!k)return c+"";var E=k[0],S=k[1],X=S-(M=Math.max(-8,Math.min(8,Math.floor(S/3)))*3)+1,m=E.length;return X===m?E:X>m?E+new Array(X-m+1).join("0"):X>0?E.slice(0,X)+"."+E.slice(X):"0."+new Array(1-X).join("0")+i(c,Math.max(0,g+X-1))[0]}function te(c,g){var k=i(c,g);if(!k)return c+"";var E=k[0],S=k[1];return S<0?"0."+new Array(-S).join("0")+E:E.length>S+1?E.slice(0,S+1)+"."+E.slice(S+1):E+new Array(S-E.length+2).join("0")}var ve={"%":function(c,g){return(c*100).toFixed(g)},b:function(c){return Math.round(c).toString(2)},c:function(c){return c+""},d:n,e:function(c,g){return c.toExponential(g)},f:function(c,g){return c.toFixed(g)},g:function(c,g){return c.toPrecision(g)},o:function(c){return Math.round(c).toString(8)},p:function(c,g){return te(c*100,g)},r:te,s:O,X:function(c){return Math.round(c).toString(16).toUpperCase()},x:function(c){return Math.round(c).toString(16)}};function Ee(c){return c}var ie=Array.prototype.map,I=["y","z","a","f","p","n","\xB5","m","","k","M","G","T","P","E","Z","Y"];function D(c){var g=c.grouping===void 0||c.thousands===void 0?Ee:s(ie.call(c.grouping,Number),c.thousands+""),k=c.currency===void 0?"":c.currency[0]+"",E=c.currency===void 0?"":c.currency[1]+"",S=c.decimal===void 0?".":c.decimal+"",X=c.numerals===void 0?Ee:h(ie.call(c.numerals,String)),m=c.percent===void 0?"%":c.percent+"",A=c.minus===void 0?"-":c.minus+"",W=c.nan===void 0?"NaN":c.nan+"";function he(fe){fe=v(fe);var ne=fe.fill,We=fe.align,se=fe.sign,be=fe.symbol,Ce=fe.zero,_e=fe.width,Re=fe.comma,Ae=fe.precision,Xe=fe.trim,re=fe.type;re==="n"?(Re=!0,re="g"):ve[re]||(Ae===void 0&&(Ae=12),Xe=!0,re="g"),(Ce||ne==="0"&&We==="=")&&(Ce=!0,ne="0",We="=");var me=be==="$"?k:be==="#"&&/[boxX]/.test(re)?"0"+re.toLowerCase():"",Pe=be==="$"?E:/[%p]/.test(re)?m:"",Q=ve[re],ee=/[defgprs%]/.test(re);Ae=Ae===void 0?6:/[gprs]/.test(re)?Math.max(1,Math.min(21,Ae)):Math.max(0,Math.min(20,Ae));function ke(De){var it=me,Je=Pe,Yt,Xt,Dt;if(re==="c")Je=Q(De)+Je,De="";else{De=+De;var Nt=De<0||1/De<0;if(De=isNaN(De)?W:Q(Math.abs(De),Ae),Xe&&(De=T(De)),Nt&&+De==0&&se!=="+"&&(Nt=!1),it=(Nt?se==="("?se:A:se==="-"||se==="("?"":se)+it,Je=(re==="s"?I[8+M/3]:"")+Je+(Nt&&se==="("?")":""),ee){for(Yt=-1,Xt=De.length;++YtDt||Dt>57){Je=(Dt===46?S+De.slice(Yt+1):De.slice(Yt))+Je,De=De.slice(0,Yt);break}}}Re&&!Ce&&(De=g(De,1/0));var Gt=it.length+De.length+Je.length,Rt=Gt<_e?new Array(_e-Gt+1).join(ne):"";switch(Re&&Ce&&(De=g(Rt+De,Rt.length?_e-Je.length:1/0),Rt=""),We){case"<":De=it+De+Je+Rt;break;case"=":De=it+Rt+De+Je;break;case"^":De=Rt.slice(0,Gt=Rt.length>>1)+it+De+Je+Rt.slice(Gt);break;default:De=Rt+it+De+Je;break}return X(De)}return ke.toString=function(){return fe+""},ke}function Oe(fe,ne){var We=he((fe=v(fe),fe.type="f",fe)),se=Math.max(-8,Math.min(8,Math.floor(u(ne)/3)))*3,be=Math.pow(10,-se),Ce=I[8+se/3];return function(_e){return We(be*_e)+Ce}}return{format:he,formatPrefix:Oe}}var q;oe({decimal:".",thousands:",",grouping:[3],currency:["$",""],minus:"-"});function oe(c){return q=D(c),e.format=q.format,e.formatPrefix=q.formatPrefix,q}function ge(c){return Math.max(0,-u(Math.abs(c)))}function Ue(c,g){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(u(g)/3)))*3-u(Math.abs(c)))}function de(c,g){return c=Math.abs(c),g=Math.abs(g)-c,Math.max(0,u(g)-u(c))+1}e.FormatSpecifier=x,e.formatDefaultLocale=oe,e.formatLocale=D,e.formatSpecifier=v,e.precisionFixed=ge,e.precisionPrefix=Ue,e.precisionRound=de,Object.defineProperty(e,"__esModule",{value:!0})})});var Bp=xt((Hf,Nx)=>{(function(e,n){typeof Hf=="object"&&typeof Nx!="undefined"?n(Hf):typeof define=="function"&&define.amd?define(["exports"],n):(e=e||self,n(e.d3=e.d3||{}))})(Hf,function(e){"use strict";var n=new Date,i=new Date;function u(R,B,Ie,Ke){function Be(P){return R(P=arguments.length===0?new Date:new Date(+P)),P}return Be.floor=function(P){return R(P=new Date(+P)),P},Be.ceil=function(P){return R(P=new Date(P-1)),B(P,1),R(P),P},Be.round=function(P){var Z=Be(P),Ne=Be.ceil(P);return P-Z0))return Te;do Te.push(ht=new Date(+P)),B(P,Ne),R(P);while(ht=Z)for(;R(Z),!P(Z);)Z.setTime(Z-1)},function(Z,Ne){if(Z>=Z)if(Ne<0)for(;++Ne<=0;)for(;B(Z,-1),!P(Z););else for(;--Ne>=0;)for(;B(Z,1),!P(Z););})},Ie&&(Be.count=function(P,Z){return n.setTime(+P),i.setTime(+Z),R(n),R(i),Math.floor(Ie(n,i))},Be.every=function(P){return P=Math.floor(P),!isFinite(P)||!(P>0)?null:P>1?Be.filter(Ke?function(Z){return Ke(Z)%P==0}:function(Z){return Be.count(0,Z)%P==0}):Be}),Be}var s=u(function(){},function(R,B){R.setTime(+R+B)},function(R,B){return B-R});s.every=function(R){return R=Math.floor(R),!isFinite(R)||!(R>0)?null:R>1?u(function(B){B.setTime(Math.floor(B/R)*R)},function(B,Ie){B.setTime(+B+Ie*R)},function(B,Ie){return(Ie-B)/R}):s};var h=s.range,d=1e3,v=6e4,x=36e5,T=864e5,M=6048e5,O=u(function(R){R.setTime(R-R.getMilliseconds())},function(R,B){R.setTime(+R+B*d)},function(R,B){return(B-R)/d},function(R){return R.getUTCSeconds()}),te=O.range,ve=u(function(R){R.setTime(R-R.getMilliseconds()-R.getSeconds()*d)},function(R,B){R.setTime(+R+B*v)},function(R,B){return(B-R)/v},function(R){return R.getMinutes()}),Ee=ve.range,ie=u(function(R){R.setTime(R-R.getMilliseconds()-R.getSeconds()*d-R.getMinutes()*v)},function(R,B){R.setTime(+R+B*x)},function(R,B){return(B-R)/x},function(R){return R.getHours()}),I=ie.range,D=u(function(R){R.setHours(0,0,0,0)},function(R,B){R.setDate(R.getDate()+B)},function(R,B){return(B-R-(B.getTimezoneOffset()-R.getTimezoneOffset())*v)/T},function(R){return R.getDate()-1}),q=D.range;function oe(R){return u(function(B){B.setDate(B.getDate()-(B.getDay()+7-R)%7),B.setHours(0,0,0,0)},function(B,Ie){B.setDate(B.getDate()+Ie*7)},function(B,Ie){return(Ie-B-(Ie.getTimezoneOffset()-B.getTimezoneOffset())*v)/M})}var ge=oe(0),Ue=oe(1),de=oe(2),c=oe(3),g=oe(4),k=oe(5),E=oe(6),S=ge.range,X=Ue.range,m=de.range,A=c.range,W=g.range,he=k.range,Oe=E.range,fe=u(function(R){R.setDate(1),R.setHours(0,0,0,0)},function(R,B){R.setMonth(R.getMonth()+B)},function(R,B){return B.getMonth()-R.getMonth()+(B.getFullYear()-R.getFullYear())*12},function(R){return R.getMonth()}),ne=fe.range,We=u(function(R){R.setMonth(0,1),R.setHours(0,0,0,0)},function(R,B){R.setFullYear(R.getFullYear()+B)},function(R,B){return B.getFullYear()-R.getFullYear()},function(R){return R.getFullYear()});We.every=function(R){return!isFinite(R=Math.floor(R))||!(R>0)?null:u(function(B){B.setFullYear(Math.floor(B.getFullYear()/R)*R),B.setMonth(0,1),B.setHours(0,0,0,0)},function(B,Ie){B.setFullYear(B.getFullYear()+Ie*R)})};var se=We.range,be=u(function(R){R.setUTCSeconds(0,0)},function(R,B){R.setTime(+R+B*v)},function(R,B){return(B-R)/v},function(R){return R.getUTCMinutes()}),Ce=be.range,_e=u(function(R){R.setUTCMinutes(0,0,0)},function(R,B){R.setTime(+R+B*x)},function(R,B){return(B-R)/x},function(R){return R.getUTCHours()}),Re=_e.range,Ae=u(function(R){R.setUTCHours(0,0,0,0)},function(R,B){R.setUTCDate(R.getUTCDate()+B)},function(R,B){return(B-R)/T},function(R){return R.getUTCDate()-1}),Xe=Ae.range;function re(R){return u(function(B){B.setUTCDate(B.getUTCDate()-(B.getUTCDay()+7-R)%7),B.setUTCHours(0,0,0,0)},function(B,Ie){B.setUTCDate(B.getUTCDate()+Ie*7)},function(B,Ie){return(Ie-B)/M})}var me=re(0),Pe=re(1),Q=re(2),ee=re(3),ke=re(4),De=re(5),it=re(6),Je=me.range,Yt=Pe.range,Xt=Q.range,Dt=ee.range,Nt=ke.range,Gt=De.range,Rt=it.range,Kt=u(function(R){R.setUTCDate(1),R.setUTCHours(0,0,0,0)},function(R,B){R.setUTCMonth(R.getUTCMonth()+B)},function(R,B){return B.getUTCMonth()-R.getUTCMonth()+(B.getUTCFullYear()-R.getUTCFullYear())*12},function(R){return R.getUTCMonth()}),dn=Kt.range,tn=u(function(R){R.setUTCMonth(0,1),R.setUTCHours(0,0,0,0)},function(R,B){R.setUTCFullYear(R.getUTCFullYear()+B)},function(R,B){return B.getUTCFullYear()-R.getUTCFullYear()},function(R){return R.getUTCFullYear()});tn.every=function(R){return!isFinite(R=Math.floor(R))||!(R>0)?null:u(function(B){B.setUTCFullYear(Math.floor(B.getUTCFullYear()/R)*R),B.setUTCMonth(0,1),B.setUTCHours(0,0,0,0)},function(B,Ie){B.setUTCFullYear(B.getUTCFullYear()+Ie*R)})};var pn=tn.range;e.timeDay=D,e.timeDays=q,e.timeFriday=k,e.timeFridays=he,e.timeHour=ie,e.timeHours=I,e.timeInterval=u,e.timeMillisecond=s,e.timeMilliseconds=h,e.timeMinute=ve,e.timeMinutes=Ee,e.timeMonday=Ue,e.timeMondays=X,e.timeMonth=fe,e.timeMonths=ne,e.timeSaturday=E,e.timeSaturdays=Oe,e.timeSecond=O,e.timeSeconds=te,e.timeSunday=ge,e.timeSundays=S,e.timeThursday=g,e.timeThursdays=W,e.timeTuesday=de,e.timeTuesdays=m,e.timeWednesday=c,e.timeWednesdays=A,e.timeWeek=ge,e.timeWeeks=S,e.timeYear=We,e.timeYears=se,e.utcDay=Ae,e.utcDays=Xe,e.utcFriday=De,e.utcFridays=Gt,e.utcHour=_e,e.utcHours=Re,e.utcMillisecond=s,e.utcMilliseconds=h,e.utcMinute=be,e.utcMinutes=Ce,e.utcMonday=Pe,e.utcMondays=Yt,e.utcMonth=Kt,e.utcMonths=dn,e.utcSaturday=it,e.utcSaturdays=Rt,e.utcSecond=O,e.utcSeconds=te,e.utcSunday=me,e.utcSundays=Je,e.utcThursday=ke,e.utcThursdays=Nt,e.utcTuesday=Q,e.utcTuesdays=Xt,e.utcWednesday=ee,e.utcWednesdays=Dt,e.utcWeek=me,e.utcWeeks=Je,e.utcYear=tn,e.utcYears=pn,Object.defineProperty(e,"__esModule",{value:!0})})});var Lx=xt((Wf,Px)=>{(function(e,n){typeof Wf=="object"&&typeof Px!="undefined"?n(Wf,Bp()):typeof define=="function"&&define.amd?define(["exports","d3-time"],n):(e=e||self,n(e.d3=e.d3||{},e.d3))})(Wf,function(e,n){"use strict";function i(F){if(0<=F.y&&F.y<100){var V=new Date(-1,F.m,F.d,F.H,F.M,F.S,F.L);return V.setFullYear(F.y),V}return new Date(F.y,F.m,F.d,F.H,F.M,F.S,F.L)}function u(F){if(0<=F.y&&F.y<100){var V=new Date(Date.UTC(-1,F.m,F.d,F.H,F.M,F.S,F.L));return V.setUTCFullYear(F.y),V}return new Date(Date.UTC(F.y,F.m,F.d,F.H,F.M,F.S,F.L))}function s(F,V,N){return{y:F,m:V,d:N,H:0,M:0,S:0,L:0}}function h(F){var V=F.dateTime,N=F.date,L=F.time,Y=F.periods,ce=F.days,xe=F.shortDays,Fe=F.months,ze=F.shortMonths,Ge=te(Y),$e=ve(Y),et=te(ce),dt=ve(ce),It=te(xe),Pt=ve(xe),St=te(Fe),sn=ve(Fe),Tn=te(ze),Pn=ve(ze),gn={a:Ze,A:ct,b:yt,B:qt,c:null,d:fe,e:fe,f:Ce,g:De,G:Je,H:ne,I:We,j:se,L:be,m:_e,M:Re,p:an,q:gt,Q:vt,s:Ft,S:Ae,u:Xe,U:re,V:Pe,w:Q,W:ee,x:null,X:null,y:ke,Y:it,Z:Yt,"%":at},hn={a:Xr,A:ki,b:Kr,B:tr,c:null,d:Xt,e:Xt,f:Kt,g:Ne,G:ht,H:Dt,I:Nt,j:Gt,L:Rt,m:dn,M:tn,p:w,q:z,Q:vt,s:Ft,S:pn,u:R,U:B,V:Ke,w:Be,W:P,x:null,X:null,y:Z,Y:Te,Z:nt,"%":at},Mt={a:le,A:He,b:Qe,B:b,c:H,d:g,e:g,f:A,g:ge,G:oe,H:E,I:E,j:k,L:m,m:c,M:S,p:j,q:de,Q:he,s:Oe,S:X,u:ie,U:I,V:D,w:Ee,W:q,x:K,X:pe,y:ge,Y:oe,Z:Ue,"%":W};gn.x=Lt(N,gn),gn.X=Lt(L,gn),gn.c=Lt(V,gn),hn.x=Lt(N,hn),hn.X=Lt(L,hn),hn.c=Lt(V,hn);function Lt(U,ae){return function(Me){var ue=[],Ye=-1,ye=0,qe=U.length,ot,ut,wt;for(Me instanceof Date||(Me=new Date(+Me));++Ye53)return null;"w"in ue||(ue.w=1),"Z"in ue?(ye=u(s(ue.y,0,1)),qe=ye.getUTCDay(),ye=qe>4||qe===0?n.utcMonday.ceil(ye):n.utcMonday(ye),ye=n.utcDay.offset(ye,(ue.V-1)*7),ue.y=ye.getUTCFullYear(),ue.m=ye.getUTCMonth(),ue.d=ye.getUTCDate()+(ue.w+6)%7):(ye=i(s(ue.y,0,1)),qe=ye.getDay(),ye=qe>4||qe===0?n.timeMonday.ceil(ye):n.timeMonday(ye),ye=n.timeDay.offset(ye,(ue.V-1)*7),ue.y=ye.getFullYear(),ue.m=ye.getMonth(),ue.d=ye.getDate()+(ue.w+6)%7)}else("W"in ue||"U"in ue)&&("w"in ue||(ue.w="u"in ue?ue.u%7:"W"in ue?1:0),qe="Z"in ue?u(s(ue.y,0,1)).getUTCDay():i(s(ue.y,0,1)).getDay(),ue.m=0,ue.d="W"in ue?(ue.w+6)%7+ue.W*7-(qe+5)%7:ue.w+ue.U*7-(qe+6)%7);return"Z"in ue?(ue.H+=ue.Z/100|0,ue.M+=ue.Z%100,u(ue)):i(ue)}}function Qt(U,ae,Me,ue){for(var Ye=0,ye=ae.length,qe=Me.length,ot,ut;Ye=qe)return-1;if(ot=ae.charCodeAt(Ye++),ot===37){if(ot=ae.charAt(Ye++),ut=Mt[ot in d?ae.charAt(Ye++):ot],!ut||(ue=ut(U,Me,ue))<0)return-1}else if(ot!=Me.charCodeAt(ue++))return-1}return ue}function j(U,ae,Me){var ue=Ge.exec(ae.slice(Me));return ue?(U.p=$e[ue[0].toLowerCase()],Me+ue[0].length):-1}function le(U,ae,Me){var ue=It.exec(ae.slice(Me));return ue?(U.w=Pt[ue[0].toLowerCase()],Me+ue[0].length):-1}function He(U,ae,Me){var ue=et.exec(ae.slice(Me));return ue?(U.w=dt[ue[0].toLowerCase()],Me+ue[0].length):-1}function Qe(U,ae,Me){var ue=Tn.exec(ae.slice(Me));return ue?(U.m=Pn[ue[0].toLowerCase()],Me+ue[0].length):-1}function b(U,ae,Me){var ue=St.exec(ae.slice(Me));return ue?(U.m=sn[ue[0].toLowerCase()],Me+ue[0].length):-1}function H(U,ae,Me){return Qt(U,V,ae,Me)}function K(U,ae,Me){return Qt(U,N,ae,Me)}function pe(U,ae,Me){return Qt(U,L,ae,Me)}function Ze(U){return xe[U.getDay()]}function ct(U){return ce[U.getDay()]}function yt(U){return ze[U.getMonth()]}function qt(U){return Fe[U.getMonth()]}function an(U){return Y[+(U.getHours()>=12)]}function gt(U){return 1+~~(U.getMonth()/3)}function Xr(U){return xe[U.getUTCDay()]}function ki(U){return ce[U.getUTCDay()]}function Kr(U){return ze[U.getUTCMonth()]}function tr(U){return Fe[U.getUTCMonth()]}function w(U){return Y[+(U.getUTCHours()>=12)]}function z(U){return 1+~~(U.getUTCMonth()/3)}return{format:function(U){var ae=Lt(U+="",gn);return ae.toString=function(){return U},ae},parse:function(U){var ae=ft(U+="",!1);return ae.toString=function(){return U},ae},utcFormat:function(U){var ae=Lt(U+="",hn);return ae.toString=function(){return U},ae},utcParse:function(U){var ae=ft(U+="",!0);return ae.toString=function(){return U},ae}}}var d={"-":"",_:" ","0":"0"},v=/^\s*\d+/,x=/^%/,T=/[\\^$*+?|[\]().{}]/g;function M(F,V,N){var L=F<0?"-":"",Y=(L?-F:F)+"",ce=Y.length;return L+(ce68?1900:2e3),N+L[0].length):-1}function Ue(F,V,N){var L=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(V.slice(N,N+6));return L?(F.Z=L[1]?0:-(L[2]+(L[3]||"00")),N+L[0].length):-1}function de(F,V,N){var L=v.exec(V.slice(N,N+1));return L?(F.q=L[0]*3-3,N+L[0].length):-1}function c(F,V,N){var L=v.exec(V.slice(N,N+2));return L?(F.m=L[0]-1,N+L[0].length):-1}function g(F,V,N){var L=v.exec(V.slice(N,N+2));return L?(F.d=+L[0],N+L[0].length):-1}function k(F,V,N){var L=v.exec(V.slice(N,N+3));return L?(F.m=0,F.d=+L[0],N+L[0].length):-1}function E(F,V,N){var L=v.exec(V.slice(N,N+2));return L?(F.H=+L[0],N+L[0].length):-1}function S(F,V,N){var L=v.exec(V.slice(N,N+2));return L?(F.M=+L[0],N+L[0].length):-1}function X(F,V,N){var L=v.exec(V.slice(N,N+2));return L?(F.S=+L[0],N+L[0].length):-1}function m(F,V,N){var L=v.exec(V.slice(N,N+3));return L?(F.L=+L[0],N+L[0].length):-1}function A(F,V,N){var L=v.exec(V.slice(N,N+6));return L?(F.L=Math.floor(L[0]/1e3),N+L[0].length):-1}function W(F,V,N){var L=x.exec(V.slice(N,N+1));return L?N+L[0].length:-1}function he(F,V,N){var L=v.exec(V.slice(N));return L?(F.Q=+L[0],N+L[0].length):-1}function Oe(F,V,N){var L=v.exec(V.slice(N));return L?(F.s=+L[0],N+L[0].length):-1}function fe(F,V){return M(F.getDate(),V,2)}function ne(F,V){return M(F.getHours(),V,2)}function We(F,V){return M(F.getHours()%12||12,V,2)}function se(F,V){return M(1+n.timeDay.count(n.timeYear(F),F),V,3)}function be(F,V){return M(F.getMilliseconds(),V,3)}function Ce(F,V){return be(F,V)+"000"}function _e(F,V){return M(F.getMonth()+1,V,2)}function Re(F,V){return M(F.getMinutes(),V,2)}function Ae(F,V){return M(F.getSeconds(),V,2)}function Xe(F){var V=F.getDay();return V===0?7:V}function re(F,V){return M(n.timeSunday.count(n.timeYear(F)-1,F),V,2)}function me(F){var V=F.getDay();return V>=4||V===0?n.timeThursday(F):n.timeThursday.ceil(F)}function Pe(F,V){return F=me(F),M(n.timeThursday.count(n.timeYear(F),F)+(n.timeYear(F).getDay()===4),V,2)}function Q(F){return F.getDay()}function ee(F,V){return M(n.timeMonday.count(n.timeYear(F)-1,F),V,2)}function ke(F,V){return M(F.getFullYear()%100,V,2)}function De(F,V){return F=me(F),M(F.getFullYear()%100,V,2)}function it(F,V){return M(F.getFullYear()%1e4,V,4)}function Je(F,V){var N=F.getDay();return F=N>=4||N===0?n.timeThursday(F):n.timeThursday.ceil(F),M(F.getFullYear()%1e4,V,4)}function Yt(F){var V=F.getTimezoneOffset();return(V>0?"-":(V*=-1,"+"))+M(V/60|0,"0",2)+M(V%60,"0",2)}function Xt(F,V){return M(F.getUTCDate(),V,2)}function Dt(F,V){return M(F.getUTCHours(),V,2)}function Nt(F,V){return M(F.getUTCHours()%12||12,V,2)}function Gt(F,V){return M(1+n.utcDay.count(n.utcYear(F),F),V,3)}function Rt(F,V){return M(F.getUTCMilliseconds(),V,3)}function Kt(F,V){return Rt(F,V)+"000"}function dn(F,V){return M(F.getUTCMonth()+1,V,2)}function tn(F,V){return M(F.getUTCMinutes(),V,2)}function pn(F,V){return M(F.getUTCSeconds(),V,2)}function R(F){var V=F.getUTCDay();return V===0?7:V}function B(F,V){return M(n.utcSunday.count(n.utcYear(F)-1,F),V,2)}function Ie(F){var V=F.getUTCDay();return V>=4||V===0?n.utcThursday(F):n.utcThursday.ceil(F)}function Ke(F,V){return F=Ie(F),M(n.utcThursday.count(n.utcYear(F),F)+(n.utcYear(F).getUTCDay()===4),V,2)}function Be(F){return F.getUTCDay()}function P(F,V){return M(n.utcMonday.count(n.utcYear(F)-1,F),V,2)}function Z(F,V){return M(F.getUTCFullYear()%100,V,2)}function Ne(F,V){return F=Ie(F),M(F.getUTCFullYear()%100,V,2)}function Te(F,V){return M(F.getUTCFullYear()%1e4,V,4)}function ht(F,V){var N=F.getUTCDay();return F=N>=4||N===0?n.utcThursday(F):n.utcThursday.ceil(F),M(F.getUTCFullYear()%1e4,V,4)}function nt(){return"+0000"}function at(){return"%"}function vt(F){return+F}function Ft(F){return Math.floor(+F/1e3)}var Ct;zt({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function zt(F){return Ct=h(F),e.timeFormat=Ct.format,e.timeParse=Ct.parse,e.utcFormat=Ct.utcFormat,e.utcParse=Ct.utcParse,Ct}var Bt="%Y-%m-%dT%H:%M:%S.%LZ";function on(F){return F.toISOString()}var vn=Date.prototype.toISOString?on:e.utcFormat(Bt);function G(F){var V=new Date(F);return isNaN(V)?null:V}var Le=+new Date("2000-01-01T00:00:00.000Z")?G:e.utcParse(Bt);e.isoFormat=vn,e.isoParse=Le,e.timeFormatDefaultLocale=zt,e.timeFormatLocale=h,Object.defineProperty(e,"__esModule",{value:!0})})});var jp=xt((Uf,Ox)=>{(function(e,n){typeof Uf=="object"&&typeof Ox!="undefined"?n(Uf,Up(),Sx(),Ff(),Ex(),Bp(),Lx()):typeof define=="function"&&define.amd?define(["exports","d3-collection","d3-array","d3-interpolate","d3-format","d3-time","d3-time-format"],n):n(e.d3=e.d3||{},e.d3,e.d3,e.d3,e.d3,e.d3,e.d3)})(Uf,function(e,n,i,u,s,h,d){"use strict";function v(G,Le){switch(arguments.length){case 0:break;case 1:this.range(G);break;default:this.range(Le).domain(G);break}return this}function x(G,Le){switch(arguments.length){case 0:break;case 1:this.interpolator(G);break;default:this.interpolator(Le).domain(G);break}return this}var T=Array.prototype,M=T.map,O=T.slice,te={name:"implicit"};function ve(){var G=n.map(),Le=[],F=[],V=te;function N(L){var Y=L+"",ce=G.get(Y);if(!ce){if(V!==te)return V;G.set(Y,ce=Le.push(L))}return F[(ce-1)%F.length]}return N.domain=function(L){if(!arguments.length)return Le.slice();Le=[],G=n.map();for(var Y=-1,ce=L.length,xe,Fe;++YF&&(V=Le,Le=F,F=V),function(N){return Math.max(Le,Math.min(F,N))}}function c(G,Le,F){var V=G[0],N=G[1],L=Le[0],Y=Le[1];return N2?g:c,xe=Fe=null,Ge}function Ge($e){return isNaN($e=+$e)?L:(xe||(xe=ce(G.map(V),Le,F)))(V(Y($e)))}return Ge.invert=function($e){return Y(N((Fe||(Fe=ce(Le,G.map(V),u.interpolateNumber)))($e)))},Ge.domain=function($e){return arguments.length?(G=M.call($e,q),Y===ge||(Y=de(G)),ze()):G.slice()},Ge.range=function($e){return arguments.length?(Le=O.call($e),ze()):Le.slice()},Ge.rangeRound=function($e){return Le=O.call($e),F=u.interpolateRound,ze()},Ge.clamp=function($e){return arguments.length?(Y=$e?de(G):ge,Ge):Y!==ge},Ge.interpolate=function($e){return arguments.length?(F=$e,ze()):F},Ge.unknown=function($e){return arguments.length?(L=$e,Ge):L},function($e,et){return V=$e,N=et,ze()}}function S(G,Le){return E()(G,Le)}function X(G,Le,F,V){var N=i.tickStep(G,Le,F),L;switch(V=s.formatSpecifier(V??",f"),V.type){case"s":{var Y=Math.max(Math.abs(G),Math.abs(Le));return V.precision==null&&!isNaN(L=s.precisionPrefix(N,Y))&&(V.precision=L),s.formatPrefix(V,Y)}case"":case"e":case"g":case"p":case"r":{V.precision==null&&!isNaN(L=s.precisionRound(N,Math.max(Math.abs(G),Math.abs(Le))))&&(V.precision=L-(V.type==="e"));break}case"f":case"%":{V.precision==null&&!isNaN(L=s.precisionFixed(N))&&(V.precision=L-(V.type==="%")*2);break}}return s.format(V)}function m(G){var Le=G.domain;return G.ticks=function(F){var V=Le();return i.ticks(V[0],V[V.length-1],F??10)},G.tickFormat=function(F,V){var N=Le();return X(N[0],N[N.length-1],F??10,V)},G.nice=function(F){F==null&&(F=10);var V=Le(),N=0,L=V.length-1,Y=V[N],ce=V[L],xe;return ce0?(Y=Math.floor(Y/xe)*xe,ce=Math.ceil(ce/xe)*xe,xe=i.tickIncrement(Y,ce,F)):xe<0&&(Y=Math.ceil(Y*xe)/xe,ce=Math.floor(ce*xe)/xe,xe=i.tickIncrement(Y,ce,F)),xe>0?(V[N]=Math.floor(Y/xe)*xe,V[L]=Math.ceil(ce/xe)*xe,Le(V)):xe<0&&(V[N]=Math.ceil(Y*xe)/xe,V[L]=Math.floor(ce*xe)/xe,Le(V)),G},G}function A(){var G=S(ge,ge);return G.copy=function(){return k(G,A())},v.apply(G,arguments),m(G)}function W(G){var Le;function F(V){return isNaN(V=+V)?Le:V}return F.invert=F,F.domain=F.range=function(V){return arguments.length?(G=M.call(V,q),F):G.slice()},F.unknown=function(V){return arguments.length?(Le=V,F):Le},F.copy=function(){return W(G).unknown(Le)},G=arguments.length?M.call(G,q):[0,1],m(F)}function he(G,Le){G=G.slice();var F=0,V=G.length-1,N=G[F],L=G[V],Y;return L0){for(;$eze)break;sn.push(Pt)}}else for(;$e=1;--It)if(Pt=dt*It,!(Ptze)break;sn.push(Pt)}}else sn=i.ticks($e,et,Math.min(et-$e,St)).map(L);return Ge?sn.reverse():sn},Le.tickFormat=function(ce,xe){if(xe==null&&(xe=V===10?".0e":","),typeof xe!="function"&&(xe=s.format(xe)),ce===1/0)return xe;ce==null&&(ce=10);var Fe=Math.max(1,V*ce/Le.ticks().length);return function(ze){var Ge=ze/L(Math.round(N(ze)));return Ge*V0?F[ce-1]:G[0],ce=F?[V[F-1],Le]:[V[Fe-1],V[Fe]]},Y.unknown=function(xe){return arguments.length&&(L=xe),Y},Y.thresholds=function(){return V.slice()},Y.copy=function(){return Xt().domain([G,Le]).range(N).unknown(L)},v.apply(m(Y),arguments)}function Dt(){var G=[.5],Le=[0,1],F,V=1;function N(L){return L<=L?Le[i.bisect(G,L,0,V)]:F}return N.domain=function(L){return arguments.length?(G=O.call(L),V=Math.min(G.length,Le.length-1),N):G.slice()},N.range=function(L){return arguments.length?(Le=O.call(L),V=Math.min(G.length,Le.length-1),N):Le.slice()},N.invertExtent=function(L){var Y=Le.indexOf(L);return[G[Y-1],G[Y]]},N.unknown=function(L){return arguments.length?(F=L,N):F},N.copy=function(){return Dt().domain(G).range(Le).unknown(F)},v.apply(N,arguments)}var Nt=1e3,Gt=Nt*60,Rt=Gt*60,Kt=Rt*24,dn=Kt*7,tn=Kt*30,pn=Kt*365;function R(G){return new Date(G)}function B(G){return G instanceof Date?+G:+new Date(+G)}function Ie(G,Le,F,V,N,L,Y,ce,xe){var Fe=S(ge,ge),ze=Fe.invert,Ge=Fe.domain,$e=xe(".%L"),et=xe(":%S"),dt=xe("%I:%M"),It=xe("%I %p"),Pt=xe("%a %d"),St=xe("%b %d"),sn=xe("%B"),Tn=xe("%Y"),Pn=[[Y,1,Nt],[Y,5,5*Nt],[Y,15,15*Nt],[Y,30,30*Nt],[L,1,Gt],[L,5,5*Gt],[L,15,15*Gt],[L,30,30*Gt],[N,1,Rt],[N,3,3*Rt],[N,6,6*Rt],[N,12,12*Rt],[V,1,Kt],[V,2,2*Kt],[F,1,dn],[Le,1,tn],[Le,3,3*tn],[G,1,pn]];function gn(Mt){return(Y(Mt){(function(e,n){typeof Bf=="object"&&typeof Dx!="undefined"?n(Bf):typeof define=="function"&&define.amd?define(["exports"],n):n(e.d3=e.d3||{})})(Bf,function(e){"use strict";var n=Array.prototype.slice;function i(q){return q}var u=1,s=2,h=3,d=4,v=1e-6;function x(q){return"translate("+(q+.5)+",0)"}function T(q){return"translate(0,"+(q+.5)+")"}function M(q){return function(oe){return+q(oe)}}function O(q){var oe=Math.max(0,q.bandwidth()-1)/2;return q.round()&&(oe=Math.round(oe)),function(ge){return+q(ge)+oe}}function te(){return!this.__axis}function ve(q,oe){var ge=[],Ue=null,de=null,c=6,g=6,k=3,E=q===u||q===d?-1:1,S=q===d||q===s?"x":"y",X=q===u||q===h?x:T;function m(A){var W=Ue??(oe.ticks?oe.ticks.apply(oe,ge):oe.domain()),he=de??(oe.tickFormat?oe.tickFormat.apply(oe,ge):i),Oe=Math.max(c,0)+k,fe=oe.range(),ne=+fe[0]+.5,We=+fe[fe.length-1]+.5,se=(oe.bandwidth?O:M)(oe.copy()),be=A.selection?A.selection():A,Ce=be.selectAll(".domain").data([null]),_e=be.selectAll(".tick").data(W,oe).order(),Re=_e.exit(),Ae=_e.enter().append("g").attr("class","tick"),Xe=_e.select("line"),re=_e.select("text");Ce=Ce.merge(Ce.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),_e=_e.merge(Ae),Xe=Xe.merge(Ae.append("line").attr("stroke","currentColor").attr(S+"2",E*c)),re=re.merge(Ae.append("text").attr("fill","currentColor").attr(S,E*Oe).attr("dy",q===u?"0em":q===h?"0.71em":"0.32em")),A!==be&&(Ce=Ce.transition(A),_e=_e.transition(A),Xe=Xe.transition(A),re=re.transition(A),Re=Re.transition(A).attr("opacity",v).attr("transform",function(me){return isFinite(me=se(me))?X(me):this.getAttribute("transform")}),Ae.attr("opacity",v).attr("transform",function(me){var Pe=this.parentNode.__axis;return X(Pe&&isFinite(Pe=Pe(me))?Pe:se(me))})),Re.remove(),Ce.attr("d",q===d||q==s?g?"M"+E*g+","+ne+"H0.5V"+We+"H"+E*g:"M0.5,"+ne+"V"+We:g?"M"+ne+","+E*g+"V0.5H"+We+"V"+E*g:"M"+ne+",0.5H"+We),_e.attr("opacity",1).attr("transform",function(me){return X(se(me))}),Xe.attr(S+"2",E*c),re.attr(S,E*Oe).text(he),be.filter(te).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",q===s?"start":q===d?"end":"middle"),be.each(function(){this.__axis=se})}return m.scale=function(A){return arguments.length?(oe=A,m):oe},m.ticks=function(){return ge=n.call(arguments),m},m.tickArguments=function(A){return arguments.length?(ge=A==null?[]:n.call(A),m):ge.slice()},m.tickValues=function(A){return arguments.length?(Ue=A==null?null:n.call(A),m):Ue&&Ue.slice()},m.tickFormat=function(A){return arguments.length?(de=A,m):de},m.tickSize=function(A){return arguments.length?(c=g=+A,m):c},m.tickSizeInner=function(A){return arguments.length?(c=+A,m):c},m.tickSizeOuter=function(A){return arguments.length?(g=+A,m):g},m.tickPadding=function(A){return arguments.length?(k=+A,m):k},m}function Ee(q){return ve(u,q)}function ie(q){return ve(s,q)}function I(q){return ve(h,q)}function D(q){return ve(d,q)}e.axisTop=Ee,e.axisRight=ie,e.axisBottom=I,e.axisLeft=D,Object.defineProperty(e,"__esModule",{value:!0})})});var Yf=xt((jf,Ax)=>{(function(e,n){typeof jf=="object"&&typeof Ax!="undefined"?n(jf):typeof define=="function"&&define.amd?define(["exports"],n):(e=e||self,n(e.d3=e.d3||{}))})(jf,function(e){"use strict";var n={value:function(){}};function i(){for(var v=0,x=arguments.length,T={},M;v=0&&(M=T.slice(O+1),T=T.slice(0,O)),T&&!x.hasOwnProperty(T))throw new Error("unknown type: "+T);return{type:T,name:M}})}u.prototype=i.prototype={constructor:u,on:function(v,x){var T=this._,M=s(v+"",T),O,te=-1,ve=M.length;if(arguments.length<2){for(;++te0)for(var T=new Array(O),M=0,O,te;M{(function(e,n){typeof qf=="object"&&typeof Ix!="undefined"?n(qf):typeof define=="function"&&define.amd?define(["exports"],n):(e=e||self,n(e.d3=e.d3||{}))})(qf,function(e){"use strict";var n=0,i=0,u=0,s=1e3,h,d,v=0,x=0,T=0,M=typeof performance=="object"&&performance.now?performance:Date,O=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(c){setTimeout(c,17)};function te(){return x||(O(ve),x=M.now()+T)}function ve(){x=0}function Ee(){this._call=this._time=this._next=null}Ee.prototype=ie.prototype={constructor:Ee,restart:function(c,g,k){if(typeof c!="function")throw new TypeError("callback is not a function");k=(k==null?te():+k)+(g==null?0:+g),!this._next&&d!==this&&(d?d._next=this:h=this,d=this),this._call=c,this._time=k,ge()},stop:function(){this._call&&(this._call=null,this._time=1/0,ge())}};function ie(c,g,k){var E=new Ee;return E.restart(c,g,k),E}function I(){te(),++n;for(var c=h,g;c;)(g=x-c._time)>=0&&c._call.call(null,g),c=c._next;--n}function D(){x=(v=M.now())+T,n=i=0;try{I()}finally{n=0,oe(),x=0}}function q(){var c=M.now(),g=c-v;g>s&&(T-=g,v=c)}function oe(){for(var c,g=h,k,E=1/0;g;)g._call?(E>g._time&&(E=g._time),c=g,g=g._next):(k=g._next,g._next=null,g=c?c._next=k:h=k);d=c,ge(E)}function ge(c){if(!n){i&&(i=clearTimeout(i));var g=c-x;g>24?(c<1/0&&(i=setTimeout(D,c-M.now()-T)),u&&(u=clearInterval(u))):(u||(v=M.now(),u=setInterval(q,s)),n=1,O(D))}}function Ue(c,g,k){var E=new Ee;return g=g==null?0:+g,E.restart(function(S){E.stop(),c(S+g)},g,k),E}function de(c,g,k){var E=new Ee,S=g;return g==null?(E.restart(c,g,k),E):(g=+g,k=k==null?te():+k,E.restart(function X(m){m+=S,E.restart(X,S+=g,k),c(m)},g,k),E)}e.interval=de,e.now=te,e.timeout=Ue,e.timer=ie,e.timerFlush=I,Object.defineProperty(e,"__esModule",{value:!0})})});var Fx=xt((Gf,Rx)=>{(function(e,n){typeof Gf=="object"&&typeof Rx!="undefined"?n(Gf):typeof define=="function"&&define.amd?define(["exports"],n):(e=e||self,n(e.d3=e.d3||{}))})(Gf,function(e){"use strict";function n(Q){return+Q}function i(Q){return Q*Q}function u(Q){return Q*(2-Q)}function s(Q){return((Q*=2)<=1?Q*Q:--Q*(2-Q)+1)/2}function h(Q){return Q*Q*Q}function d(Q){return--Q*Q*Q+1}function v(Q){return((Q*=2)<=1?Q*Q*Q:(Q-=2)*Q*Q+2)/2}var x=3,T=function Q(ee){ee=+ee;function ke(De){return Math.pow(De,ee)}return ke.exponent=Q,ke}(x),M=function Q(ee){ee=+ee;function ke(De){return 1-Math.pow(1-De,ee)}return ke.exponent=Q,ke}(x),O=function Q(ee){ee=+ee;function ke(De){return((De*=2)<=1?Math.pow(De,ee):2-Math.pow(2-De,ee))/2}return ke.exponent=Q,ke}(x),te=Math.PI,ve=te/2;function Ee(Q){return+Q==1?1:1-Math.cos(Q*ve)}function ie(Q){return Math.sin(Q*ve)}function I(Q){return(1-Math.cos(te*Q))/2}function D(Q){return(Math.pow(2,-10*Q)-.0009765625)*1.0009775171065494}function q(Q){return D(1-+Q)}function oe(Q){return 1-D(Q)}function ge(Q){return((Q*=2)<=1?D(1-Q):2-D(Q-1))/2}function Ue(Q){return 1-Math.sqrt(1-Q*Q)}function de(Q){return Math.sqrt(1- --Q*Q)}function c(Q){return((Q*=2)<=1?1-Math.sqrt(1-Q*Q):Math.sqrt(1-(Q-=2)*Q)+1)/2}var g=4/11,k=6/11,E=8/11,S=3/4,X=9/11,m=10/11,A=15/16,W=21/22,he=63/64,Oe=1/g/g;function fe(Q){return 1-ne(1-Q)}function ne(Q){return(Q=+Q){(function(e,n){typeof Vf=="object"&&typeof zx!="undefined"?n(Vf,ea(),Yf(),qp(),Ff(),If(),Fx()):typeof define=="function"&&define.amd?define(["exports","d3-selection","d3-dispatch","d3-timer","d3-interpolate","d3-color","d3-ease"],n):(e=e||self,n(e.d3=e.d3||{},e.d3,e.d3,e.d3,e.d3,e.d3,e.d3))})(Vf,function(e,n,i,u,s,h,d){"use strict";var v=i.dispatch("start","end","cancel","interrupt"),x=[],T=0,M=1,O=2,te=3,ve=4,Ee=5,ie=6;function I(N,L,Y,ce,xe,Fe){var ze=N.__transition;if(!ze)N.__transition={};else if(Y in ze)return;ge(N,Y,{name:L,index:ce,group:xe,on:v,tween:x,time:Fe.time,delay:Fe.delay,duration:Fe.duration,ease:Fe.ease,timer:null,state:T})}function D(N,L){var Y=oe(N,L);if(Y.state>T)throw new Error("too late; already scheduled");return Y}function q(N,L){var Y=oe(N,L);if(Y.state>te)throw new Error("too late; already running");return Y}function oe(N,L){var Y=N.__transition;if(!Y||!(Y=Y[L]))throw new Error("transition not found");return Y}function ge(N,L,Y){var ce=N.__transition,xe;ce[L]=Y,Y.timer=u.timer(Fe,0,Y.time);function Fe(et){Y.state=M,Y.timer.restart(ze,Y.delay,Y.time),Y.delay<=et&&ze(et-Y.delay)}function ze(et){var dt,It,Pt,St;if(Y.state!==M)return $e();for(dt in ce)if(St=ce[dt],St.name===Y.name){if(St.state===te)return u.timeout(ze);St.state===ve?(St.state=ie,St.timer.stop(),St.on.call("interrupt",N,N.__data__,St.index,St.group),delete ce[dt]):+dtO&&ce.state=0&&(L=L.slice(0,Y)),!L||L==="start"})}function it(N,L,Y){var ce,xe,Fe=De(L)?D:q;return function(){var ze=Fe(this,N),Ge=ze.on;Ge!==ce&&(xe=(ce=Ge).copy()).on(L,Y),ze.on=xe}}function Je(N,L){var Y=this._id;return arguments.length<2?oe(this.node(),Y).on.on(N):this.each(it(Y,N,L))}function Yt(N){return function(){var L=this.parentNode;for(var Y in this.__transition)if(+Y!==N)return;L&&L.removeChild(this)}}function Xt(){return this.on("end.remove",Yt(this._id))}function Dt(N){var L=this._name,Y=this._id;typeof N!="function"&&(N=n.selector(N));for(var ce=this._groups,xe=ce.length,Fe=new Array(xe),ze=0;zeM&&ce.name===L)return new Ct([[N]],F,L,+xe)}return null}e.active=V,e.interrupt=Ue,e.transition=zt,Object.defineProperty(e,"__esModule",{value:!0})})});var Ux=xt(($f,Wx)=>{(function(e,n){typeof $f=="object"&&typeof Wx!="undefined"?n($f):typeof define=="function"&&define.amd?define(["exports"],n):(e=e||self,n(e.d3=e.d3||{}))})($f,function(e){"use strict";var n=Math.PI,i=2*n,u=1e-6,s=i-u;function h(){this._x0=this._y0=this._x1=this._y1=null,this._=""}function d(){return new h}h.prototype=d.prototype={constructor:h,moveTo:function(v,x){this._+="M"+(this._x0=this._x1=+v)+","+(this._y0=this._y1=+x)},closePath:function(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},lineTo:function(v,x){this._+="L"+(this._x1=+v)+","+(this._y1=+x)},quadraticCurveTo:function(v,x,T,M){this._+="Q"+ +v+","+ +x+","+(this._x1=+T)+","+(this._y1=+M)},bezierCurveTo:function(v,x,T,M,O,te){this._+="C"+ +v+","+ +x+","+ +T+","+ +M+","+(this._x1=+O)+","+(this._y1=+te)},arcTo:function(v,x,T,M,O){v=+v,x=+x,T=+T,M=+M,O=+O;var te=this._x1,ve=this._y1,Ee=T-v,ie=M-x,I=te-v,D=ve-x,q=I*I+D*D;if(O<0)throw new Error("negative radius: "+O);if(this._x1===null)this._+="M"+(this._x1=v)+","+(this._y1=x);else if(q>u)if(!(Math.abs(D*Ee-ie*I)>u)||!O)this._+="L"+(this._x1=v)+","+(this._y1=x);else{var oe=T-te,ge=M-ve,Ue=Ee*Ee+ie*ie,de=oe*oe+ge*ge,c=Math.sqrt(Ue),g=Math.sqrt(q),k=O*Math.tan((n-Math.acos((Ue+q-de)/(2*c*g)))/2),E=k/g,S=k/c;Math.abs(E-1)>u&&(this._+="L"+(v+E*I)+","+(x+E*D)),this._+="A"+O+","+O+",0,0,"+ +(D*oe>I*ge)+","+(this._x1=v+S*Ee)+","+(this._y1=x+S*ie)}},arc:function(v,x,T,M,O,te){v=+v,x=+x,T=+T,te=!!te;var ve=T*Math.cos(M),Ee=T*Math.sin(M),ie=v+ve,I=x+Ee,D=1^te,q=te?M-O:O-M;if(T<0)throw new Error("negative radius: "+T);this._x1===null?this._+="M"+ie+","+I:(Math.abs(this._x1-ie)>u||Math.abs(this._y1-I)>u)&&(this._+="L"+ie+","+I),!!T&&(q<0&&(q=q%i+i),q>s?this._+="A"+T+","+T+",0,1,"+D+","+(v-ve)+","+(x-Ee)+"A"+T+","+T+",0,1,"+D+","+(this._x1=ie)+","+(this._y1=I):q>u&&(this._+="A"+T+","+T+",0,"+ +(q>=n)+","+D+","+(this._x1=v+T*Math.cos(O))+","+(this._y1=x+T*Math.sin(O))))},rect:function(v,x,T,M){this._+="M"+(this._x0=this._x1=+v)+","+(this._y0=this._y1=+x)+"h"+ +T+"v"+ +M+"h"+-T+"Z"},toString:function(){return this._}},e.path=d,Object.defineProperty(e,"__esModule",{value:!0})})});var jx=xt((Xf,Bx)=>{(function(e,n){typeof Xf=="object"&&typeof Bx!="undefined"?n(Xf,Ux()):typeof define=="function"&&define.amd?define(["exports","d3-path"],n):(e=e||self,n(e.d3=e.d3||{},e.d3))})(Xf,function(e,n){"use strict";function i(w){return function(){return w}}var u=Math.abs,s=Math.atan2,h=Math.cos,d=Math.max,v=Math.min,x=Math.sin,T=Math.sqrt,M=1e-12,O=Math.PI,te=O/2,ve=2*O;function Ee(w){return w>1?0:w<-1?O:Math.acos(w)}function ie(w){return w>=1?te:w<=-1?-te:Math.asin(w)}function I(w){return w.innerRadius}function D(w){return w.outerRadius}function q(w){return w.startAngle}function oe(w){return w.endAngle}function ge(w){return w&&w.padAngle}function Ue(w,z,U,ae,Me,ue,Ye,ye){var qe=U-w,ot=ae-z,ut=Ye-Me,wt=ye-ue,Et=wt*qe-ut*ot;if(!(Et*Etsi*si+fi*fi&&(li=br,hr=nr),{cx:li,cy:hr,x01:-ut,y01:-wt,x11:li*(Me/Sr-1),y11:hr*(Me/Sr-1)}}function c(){var w=I,z=D,U=i(0),ae=null,Me=q,ue=oe,Ye=ge,ye=null;function qe(){var ot,ut,wt=+w.apply(this,arguments),Et=+z.apply(this,arguments),Wt=Me.apply(this,arguments)-te,jt=ue.apply(this,arguments)-te,cn=u(jt-Wt),Vt=jt>Wt;if(ye||(ye=ot=n.path()),EtM))ye.moveTo(0,0);else if(cn>ve-M)ye.moveTo(Et*h(Wt),Et*x(Wt)),ye.arc(0,0,Et,Wt,jt,!Vt),wt>M&&(ye.moveTo(wt*h(jt),wt*x(jt)),ye.arc(0,0,wt,jt,Wt,Vt));else{var wn=Wt,Ln=jt,Mn=Wt,In=jt,Sr=cn,qn=cn,Qr=Ye.apply(this,arguments)/2,li=Qr>M&&(ae?+ae.apply(this,arguments):T(wt*wt+Et*Et)),hr=v(u(Et-wt)/2,+U.apply(this,arguments)),br=hr,nr=hr,Ot,Zt;if(li>M){var si=ie(li/wt*x(Qr)),fi=ie(li/Et*x(Qr));(Sr-=si*2)>M?(si*=Vt?1:-1,Mn+=si,In-=si):(Sr=0,Mn=In=(Wt+jt)/2),(qn-=fi*2)>M?(fi*=Vt?1:-1,wn+=fi,Ln-=fi):(qn=0,wn=Ln=(Wt+jt)/2)}var Zr=Et*h(wn),Hi=Et*x(wn),xo=wt*h(In),rr=wt*x(In);if(hr>M){var ta=Et*h(Ln),na=Et*x(Ln),_o=wt*h(Mn),ra=wt*x(Mn),Gn;if(cnM?nr>M?(Ot=de(_o,ra,Zr,Hi,Et,nr,Vt),Zt=de(ta,na,xo,rr,Et,nr,Vt),ye.moveTo(Ot.cx+Ot.x01,Ot.cy+Ot.y01),nrM)||!(Sr>M)?ye.lineTo(xo,rr):br>M?(Ot=de(xo,rr,ta,na,wt,-br,Vt),Zt=de(Zr,Hi,_o,ra,wt,-br,Vt),ye.lineTo(Ot.cx+Ot.x01,Ot.cy+Ot.y01),br=Et;--Wt)ye.point(Ln[Wt],Mn[Wt]);ye.lineEnd(),ye.areaEnd()}Vt&&(Ln[wt]=+w(cn,wt,ut),Mn[wt]=+U(cn,wt,ut),ye.point(z?+z(cn,wt,ut):Ln[wt],ae?+ae(cn,wt,ut):Mn[wt]))}if(wn)return ye=null,wn+""||null}function ot(){return X().defined(Me).curve(Ye).context(ue)}return qe.x=function(ut){return arguments.length?(w=typeof ut=="function"?ut:i(+ut),z=null,qe):w},qe.x0=function(ut){return arguments.length?(w=typeof ut=="function"?ut:i(+ut),qe):w},qe.x1=function(ut){return arguments.length?(z=ut==null?null:typeof ut=="function"?ut:i(+ut),qe):z},qe.y=function(ut){return arguments.length?(U=typeof ut=="function"?ut:i(+ut),ae=null,qe):U},qe.y0=function(ut){return arguments.length?(U=typeof ut=="function"?ut:i(+ut),qe):U},qe.y1=function(ut){return arguments.length?(ae=ut==null?null:typeof ut=="function"?ut:i(+ut),qe):ae},qe.lineX0=qe.lineY0=function(){return ot().x(w).y(U)},qe.lineY1=function(){return ot().x(w).y(ae)},qe.lineX1=function(){return ot().x(z).y(U)},qe.defined=function(ut){return arguments.length?(Me=typeof ut=="function"?ut:i(!!ut),qe):Me},qe.curve=function(ut){return arguments.length?(Ye=ut,ue!=null&&(ye=Ye(ue)),qe):Ye},qe.context=function(ut){return arguments.length?(ut==null?ue=ye=null:ye=Ye(ue=ut),qe):ue},qe}function A(w,z){return zw?1:z>=w?0:NaN}function W(w){return w}function he(){var w=W,z=A,U=null,ae=i(0),Me=i(ve),ue=i(0);function Ye(ye){var qe,ot=ye.length,ut,wt,Et=0,Wt=new Array(ot),jt=new Array(ot),cn=+ae.apply(this,arguments),Vt=Math.min(ve,Math.max(-ve,Me.apply(this,arguments)-cn)),wn,Ln=Math.min(Math.abs(Vt)/ot,ue.apply(this,arguments)),Mn=Ln*(Vt<0?-1:1),In;for(qe=0;qe0&&(Et+=In);for(z!=null?Wt.sort(function(Sr,qn){return z(jt[Sr],jt[qn])}):U!=null&&Wt.sort(function(Sr,qn){return U(ye[Sr],ye[qn])}),qe=0,wt=Et?(Vt-ot*Mn)/Et:0;qe0?In*wt:0)+Mn,jt[ut]={data:ye[ut],index:qe,value:In,startAngle:cn,endAngle:wn,padAngle:Ln};return jt}return Ye.value=function(ye){return arguments.length?(w=typeof ye=="function"?ye:i(+ye),Ye):w},Ye.sortValues=function(ye){return arguments.length?(z=ye,U=null,Ye):z},Ye.sort=function(ye){return arguments.length?(U=ye,z=null,Ye):U},Ye.startAngle=function(ye){return arguments.length?(ae=typeof ye=="function"?ye:i(+ye),Ye):ae},Ye.endAngle=function(ye){return arguments.length?(Me=typeof ye=="function"?ye:i(+ye),Ye):Me},Ye.padAngle=function(ye){return arguments.length?(ue=typeof ye=="function"?ye:i(+ye),Ye):ue},Ye}var Oe=ne(k);function fe(w){this._curve=w}fe.prototype={areaStart:function(){this._curve.areaStart()},areaEnd:function(){this._curve.areaEnd()},lineStart:function(){this._curve.lineStart()},lineEnd:function(){this._curve.lineEnd()},point:function(w,z){this._curve.point(z*Math.sin(w),z*-Math.cos(w))}};function ne(w){function z(U){return new fe(w(U))}return z._curve=w,z}function We(w){var z=w.curve;return w.angle=w.x,delete w.x,w.radius=w.y,delete w.y,w.curve=function(U){return arguments.length?z(ne(U)):z()._curve},w}function se(){return We(X().curve(Oe))}function be(){var w=m().curve(Oe),z=w.curve,U=w.lineX0,ae=w.lineX1,Me=w.lineY0,ue=w.lineY1;return w.angle=w.x,delete w.x,w.startAngle=w.x0,delete w.x0,w.endAngle=w.x1,delete w.x1,w.radius=w.y,delete w.y,w.innerRadius=w.y0,delete w.y0,w.outerRadius=w.y1,delete w.y1,w.lineStartAngle=function(){return We(U())},delete w.lineX0,w.lineEndAngle=function(){return We(ae())},delete w.lineX1,w.lineInnerRadius=function(){return We(Me())},delete w.lineY0,w.lineOuterRadius=function(){return We(ue())},delete w.lineY1,w.curve=function(Ye){return arguments.length?z(ne(Ye)):z()._curve},w}function Ce(w,z){return[(z=+z)*Math.cos(w-=Math.PI/2),z*Math.sin(w)]}var _e=Array.prototype.slice;function Re(w){return w.source}function Ae(w){return w.target}function Xe(w){var z=Re,U=Ae,ae=E,Me=S,ue=null;function Ye(){var ye,qe=_e.call(arguments),ot=z.apply(this,qe),ut=U.apply(this,qe);if(ue||(ue=ye=n.path()),w(ue,+ae.apply(this,(qe[0]=ot,qe)),+Me.apply(this,qe),+ae.apply(this,(qe[0]=ut,qe)),+Me.apply(this,qe)),ye)return ue=null,ye+""||null}return Ye.source=function(ye){return arguments.length?(z=ye,Ye):z},Ye.target=function(ye){return arguments.length?(U=ye,Ye):U},Ye.x=function(ye){return arguments.length?(ae=typeof ye=="function"?ye:i(+ye),Ye):ae},Ye.y=function(ye){return arguments.length?(Me=typeof ye=="function"?ye:i(+ye),Ye):Me},Ye.context=function(ye){return arguments.length?(ue=ye??null,Ye):ue},Ye}function re(w,z,U,ae,Me){w.moveTo(z,U),w.bezierCurveTo(z=(z+ae)/2,U,z,Me,ae,Me)}function me(w,z,U,ae,Me){w.moveTo(z,U),w.bezierCurveTo(z,U=(U+Me)/2,ae,U,ae,Me)}function Pe(w,z,U,ae,Me){var ue=Ce(z,U),Ye=Ce(z,U=(U+Me)/2),ye=Ce(ae,U),qe=Ce(ae,Me);w.moveTo(ue[0],ue[1]),w.bezierCurveTo(Ye[0],Ye[1],ye[0],ye[1],qe[0],qe[1])}function Q(){return Xe(re)}function ee(){return Xe(me)}function ke(){var w=Xe(Pe);return w.angle=w.x,delete w.x,w.radius=w.y,delete w.y,w}var De={draw:function(w,z){var U=Math.sqrt(z/O);w.moveTo(U,0),w.arc(0,0,U,0,ve)}},it={draw:function(w,z){var U=Math.sqrt(z/5)/2;w.moveTo(-3*U,-U),w.lineTo(-U,-U),w.lineTo(-U,-3*U),w.lineTo(U,-3*U),w.lineTo(U,-U),w.lineTo(3*U,-U),w.lineTo(3*U,U),w.lineTo(U,U),w.lineTo(U,3*U),w.lineTo(-U,3*U),w.lineTo(-U,U),w.lineTo(-3*U,U),w.closePath()}},Je=Math.sqrt(1/3),Yt=Je*2,Xt={draw:function(w,z){var U=Math.sqrt(z/Yt),ae=U*Je;w.moveTo(0,-U),w.lineTo(ae,0),w.lineTo(0,U),w.lineTo(-ae,0),w.closePath()}},Dt=.8908130915292852,Nt=Math.sin(O/10)/Math.sin(7*O/10),Gt=Math.sin(ve/10)*Nt,Rt=-Math.cos(ve/10)*Nt,Kt={draw:function(w,z){var U=Math.sqrt(z*Dt),ae=Gt*U,Me=Rt*U;w.moveTo(0,-U),w.lineTo(ae,Me);for(var ue=1;ue<5;++ue){var Ye=ve*ue/5,ye=Math.cos(Ye),qe=Math.sin(Ye);w.lineTo(qe*U,-ye*U),w.lineTo(ye*ae-qe*Me,qe*ae+ye*Me)}w.closePath()}},dn={draw:function(w,z){var U=Math.sqrt(z),ae=-U/2;w.rect(ae,ae,U,U)}},tn=Math.sqrt(3),pn={draw:function(w,z){var U=-Math.sqrt(z/(tn*3));w.moveTo(0,U*2),w.lineTo(-tn*U,-U),w.lineTo(tn*U,-U),w.closePath()}},R=-.5,B=Math.sqrt(3)/2,Ie=1/Math.sqrt(12),Ke=(Ie/2+1)*3,Be={draw:function(w,z){var U=Math.sqrt(z/Ke),ae=U/2,Me=U*Ie,ue=ae,Ye=U*Ie+U,ye=-ue,qe=Ye;w.moveTo(ae,Me),w.lineTo(ue,Ye),w.lineTo(ye,qe),w.lineTo(R*ae-B*Me,B*ae+R*Me),w.lineTo(R*ue-B*Ye,B*ue+R*Ye),w.lineTo(R*ye-B*qe,B*ye+R*qe),w.lineTo(R*ae+B*Me,R*Me-B*ae),w.lineTo(R*ue+B*Ye,R*Ye-B*ue),w.lineTo(R*ye+B*qe,R*qe-B*ye),w.closePath()}},P=[De,it,Xt,dn,Kt,pn,Be];function Z(){var w=i(De),z=i(64),U=null;function ae(){var Me;if(U||(U=Me=n.path()),w.apply(this,arguments).draw(U,+z.apply(this,arguments)),Me)return U=null,Me+""||null}return ae.type=function(Me){return arguments.length?(w=typeof Me=="function"?Me:i(Me),ae):w},ae.size=function(Me){return arguments.length?(z=typeof Me=="function"?Me:i(+Me),ae):z},ae.context=function(Me){return arguments.length?(U=Me??null,ae):U},ae}function Ne(){}function Te(w,z,U){w._context.bezierCurveTo((2*w._x0+w._x1)/3,(2*w._y0+w._y1)/3,(w._x0+2*w._x1)/3,(w._y0+2*w._y1)/3,(w._x0+4*w._x1+z)/6,(w._y0+4*w._y1+U)/6)}function ht(w){this._context=w}ht.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:Te(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(w,z){switch(w=+w,z=+z,this._point){case 0:this._point=1,this._line?this._context.lineTo(w,z):this._context.moveTo(w,z);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:Te(this,w,z);break}this._x0=this._x1,this._x1=w,this._y0=this._y1,this._y1=z}};function nt(w){return new ht(w)}function at(w){this._context=w}at.prototype={areaStart:Ne,areaEnd:Ne,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(w,z){switch(w=+w,z=+z,this._point){case 0:this._point=1,this._x2=w,this._y2=z;break;case 1:this._point=2,this._x3=w,this._y3=z;break;case 2:this._point=3,this._x4=w,this._y4=z,this._context.moveTo((this._x0+4*this._x1+w)/6,(this._y0+4*this._y1+z)/6);break;default:Te(this,w,z);break}this._x0=this._x1,this._x1=w,this._y0=this._y1,this._y1=z}};function vt(w){return new at(w)}function Ft(w){this._context=w}Ft.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(w,z){switch(w=+w,z=+z,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var U=(this._x0+4*this._x1+w)/6,ae=(this._y0+4*this._y1+z)/6;this._line?this._context.lineTo(U,ae):this._context.moveTo(U,ae);break;case 3:this._point=4;default:Te(this,w,z);break}this._x0=this._x1,this._x1=w,this._y0=this._y1,this._y1=z}};function Ct(w){return new Ft(w)}function zt(w,z){this._basis=new ht(w),this._beta=z}zt.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var w=this._x,z=this._y,U=w.length-1;if(U>0)for(var ae=w[0],Me=z[0],ue=w[U]-ae,Ye=z[U]-Me,ye=-1,qe;++ye<=U;)qe=ye/U,this._basis.point(this._beta*w[ye]+(1-this._beta)*(ae+qe*ue),this._beta*z[ye]+(1-this._beta)*(Me+qe*Ye));this._x=this._y=null,this._basis.lineEnd()},point:function(w,z){this._x.push(+w),this._y.push(+z)}};var Bt=function w(z){function U(ae){return z===1?new ht(ae):new zt(ae,z)}return U.beta=function(ae){return w(+ae)},U}(.85);function on(w,z,U){w._context.bezierCurveTo(w._x1+w._k*(w._x2-w._x0),w._y1+w._k*(w._y2-w._y0),w._x2+w._k*(w._x1-z),w._y2+w._k*(w._y1-U),w._x2,w._y2)}function vn(w,z){this._context=w,this._k=(1-z)/6}vn.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:on(this,this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(w,z){switch(w=+w,z=+z,this._point){case 0:this._point=1,this._line?this._context.lineTo(w,z):this._context.moveTo(w,z);break;case 1:this._point=2,this._x1=w,this._y1=z;break;case 2:this._point=3;default:on(this,w,z);break}this._x0=this._x1,this._x1=this._x2,this._x2=w,this._y0=this._y1,this._y1=this._y2,this._y2=z}};var G=function w(z){function U(ae){return new vn(ae,z)}return U.tension=function(ae){return w(+ae)},U}(0);function Le(w,z){this._context=w,this._k=(1-z)/6}Le.prototype={areaStart:Ne,areaEnd:Ne,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},point:function(w,z){switch(w=+w,z=+z,this._point){case 0:this._point=1,this._x3=w,this._y3=z;break;case 1:this._point=2,this._context.moveTo(this._x4=w,this._y4=z);break;case 2:this._point=3,this._x5=w,this._y5=z;break;default:on(this,w,z);break}this._x0=this._x1,this._x1=this._x2,this._x2=w,this._y0=this._y1,this._y1=this._y2,this._y2=z}};var F=function w(z){function U(ae){return new Le(ae,z)}return U.tension=function(ae){return w(+ae)},U}(0);function V(w,z){this._context=w,this._k=(1-z)/6}V.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(w,z){switch(w=+w,z=+z,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:on(this,w,z);break}this._x0=this._x1,this._x1=this._x2,this._x2=w,this._y0=this._y1,this._y1=this._y2,this._y2=z}};var N=function w(z){function U(ae){return new V(ae,z)}return U.tension=function(ae){return w(+ae)},U}(0);function L(w,z,U){var ae=w._x1,Me=w._y1,ue=w._x2,Ye=w._y2;if(w._l01_a>M){var ye=2*w._l01_2a+3*w._l01_a*w._l12_a+w._l12_2a,qe=3*w._l01_a*(w._l01_a+w._l12_a);ae=(ae*ye-w._x0*w._l12_2a+w._x2*w._l01_2a)/qe,Me=(Me*ye-w._y0*w._l12_2a+w._y2*w._l01_2a)/qe}if(w._l23_a>M){var ot=2*w._l23_2a+3*w._l23_a*w._l12_a+w._l12_2a,ut=3*w._l23_a*(w._l23_a+w._l12_a);ue=(ue*ot+w._x1*w._l23_2a-z*w._l12_2a)/ut,Ye=(Ye*ot+w._y1*w._l23_2a-U*w._l12_2a)/ut}w._context.bezierCurveTo(ae,Me,ue,Ye,w._x2,w._y2)}function Y(w,z){this._context=w,this._alpha=z}Y.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(w,z){if(w=+w,z=+z,this._point){var U=this._x2-w,ae=this._y2-z;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(U*U+ae*ae,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(w,z):this._context.moveTo(w,z);break;case 1:this._point=2;break;case 2:this._point=3;default:L(this,w,z);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=w,this._y0=this._y1,this._y1=this._y2,this._y2=z}};var ce=function w(z){function U(ae){return z?new Y(ae,z):new vn(ae,0)}return U.alpha=function(ae){return w(+ae)},U}(.5);function xe(w,z){this._context=w,this._alpha=z}xe.prototype={areaStart:Ne,areaEnd:Ne,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},point:function(w,z){if(w=+w,z=+z,this._point){var U=this._x2-w,ae=this._y2-z;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(U*U+ae*ae,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=w,this._y3=z;break;case 1:this._point=2,this._context.moveTo(this._x4=w,this._y4=z);break;case 2:this._point=3,this._x5=w,this._y5=z;break;default:L(this,w,z);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=w,this._y0=this._y1,this._y1=this._y2,this._y2=z}};var Fe=function w(z){function U(ae){return z?new xe(ae,z):new Le(ae,0)}return U.alpha=function(ae){return w(+ae)},U}(.5);function ze(w,z){this._context=w,this._alpha=z}ze.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(w,z){if(w=+w,z=+z,this._point){var U=this._x2-w,ae=this._y2-z;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(U*U+ae*ae,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:L(this,w,z);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=w,this._y0=this._y1,this._y1=this._y2,this._y2=z}};var Ge=function w(z){function U(ae){return z?new ze(ae,z):new V(ae,0)}return U.alpha=function(ae){return w(+ae)},U}(.5);function $e(w){this._context=w}$e.prototype={areaStart:Ne,areaEnd:Ne,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(w,z){w=+w,z=+z,this._point?this._context.lineTo(w,z):(this._point=1,this._context.moveTo(w,z))}};function et(w){return new $e(w)}function dt(w){return w<0?-1:1}function It(w,z,U){var ae=w._x1-w._x0,Me=z-w._x1,ue=(w._y1-w._y0)/(ae||Me<0&&-0),Ye=(U-w._y1)/(Me||ae<0&&-0),ye=(ue*Me+Ye*ae)/(ae+Me);return(dt(ue)+dt(Ye))*Math.min(Math.abs(ue),Math.abs(Ye),.5*Math.abs(ye))||0}function Pt(w,z){var U=w._x1-w._x0;return U?(3*(w._y1-w._y0)/U-z)/2:z}function St(w,z,U){var ae=w._x0,Me=w._y0,ue=w._x1,Ye=w._y1,ye=(ue-ae)/3;w._context.bezierCurveTo(ae+ye,Me+ye*z,ue-ye,Ye-ye*U,ue,Ye)}function sn(w){this._context=w}sn.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:St(this,this._t0,Pt(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(w,z){var U=NaN;if(w=+w,z=+z,!(w===this._x1&&z===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(w,z):this._context.moveTo(w,z);break;case 1:this._point=2;break;case 2:this._point=3,St(this,Pt(this,U=It(this,w,z)),U);break;default:St(this,this._t0,U=It(this,w,z));break}this._x0=this._x1,this._x1=w,this._y0=this._y1,this._y1=z,this._t0=U}}};function Tn(w){this._context=new Pn(w)}(Tn.prototype=Object.create(sn.prototype)).point=function(w,z){sn.prototype.point.call(this,z,w)};function Pn(w){this._context=w}Pn.prototype={moveTo:function(w,z){this._context.moveTo(z,w)},closePath:function(){this._context.closePath()},lineTo:function(w,z){this._context.lineTo(z,w)},bezierCurveTo:function(w,z,U,ae,Me,ue){this._context.bezierCurveTo(z,w,ae,U,ue,Me)}};function gn(w){return new sn(w)}function hn(w){return new Tn(w)}function Mt(w){this._context=w}Mt.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var w=this._x,z=this._y,U=w.length;if(U)if(this._line?this._context.lineTo(w[0],z[0]):this._context.moveTo(w[0],z[0]),U===2)this._context.lineTo(w[1],z[1]);else for(var ae=Lt(w),Me=Lt(z),ue=0,Ye=1;Ye=0;--z)Me[z]=(Ye[z]-Me[z+1])/ue[z];for(ue[U-1]=(w[U]+Me[U-1])/2,z=0;z=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(w,z){switch(w=+w,z=+z,this._point){case 0:this._point=1,this._line?this._context.lineTo(w,z):this._context.moveTo(w,z);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,z),this._context.lineTo(w,z);else{var U=this._x*(1-this._t)+w*this._t;this._context.lineTo(U,this._y),this._context.lineTo(U,z)}break}}this._x=w,this._y=z}};function j(w){return new Qt(w,.5)}function le(w){return new Qt(w,0)}function He(w){return new Qt(w,1)}function Qe(w,z){if((Ye=w.length)>1)for(var U=1,ae,Me,ue=w[z[0]],Ye,ye=ue.length;U=0;)U[z]=z;return U}function H(w,z){return w[z]}function K(){var w=i([]),z=b,U=Qe,ae=H;function Me(ue){var Ye=w.apply(this,arguments),ye,qe=ue.length,ot=Ye.length,ut=new Array(ot),wt;for(ye=0;ye0){for(var U,ae,Me=0,ue=w[0].length,Ye;Me0)for(var U,ae=0,Me,ue,Ye,ye,qe,ot=w[z[0]].length;ae0?(Me[0]=Ye,Me[1]=Ye+=ue):ue<0?(Me[1]=ye,Me[0]=ye+=ue):(Me[0]=0,Me[1]=ue)}function ct(w,z){if((Me=w.length)>0){for(var U=0,ae=w[z[0]],Me,ue=ae.length;U0)||!((ue=(Me=w[z[0]]).length)>0))){for(var U=0,ae=1,Me,ue,Ye;aeue&&(ue=Me,U=z);return U}function gt(w){var z=w.map(Xr);return b(w).sort(function(U,ae){return z[U]-z[ae]})}function Xr(w){for(var z=0,U=-1,ae=w.length,Me;++U{(function(e,n){typeof Kf=="object"&&typeof Yx!="undefined"?n(Kf):typeof define=="function"&&define.amd?define(["exports"],n):(e=typeof globalThis!="undefined"?globalThis:e||self,n(e.d3=e.d3||{}))})(Kf,function(e){"use strict";function n(c,g){var k=Object.keys(c);if(Object.getOwnPropertySymbols){var E=Object.getOwnPropertySymbols(c);g&&(E=E.filter(function(S){return Object.getOwnPropertyDescriptor(c,S).enumerable})),k.push.apply(k,E)}return k}function i(c){for(var g=1;gc.length)&&(g=c.length);for(var k=0,E=new Array(g);k=c.length?{done:!0}:{done:!1,value:c[E++]}},e:function(W){throw W},f:S}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var X=!0,m=!1,A;return{s:function(){k=k.call(c)},n:function(){var W=k.next();return X=W.done,W},e:function(W){m=!0,A=W},f:function(){try{!X&&k.return!=null&&k.return()}finally{if(m)throw A}}}}function T(c,g){var k=[],E=[];function S(X,m){if(X.length===1)k.push(X[0]),E.push(X[0]);else{for(var A=Array(X.length-1),W=0;W=3&&(g.x1=c[1][0],g.y1=c[1][1]),g.x=c[c.length-1][0],g.y=c[c.length-1][1],c.length===4?g.type="C":c.length===3?g.type="Q":g.type="L",g}function O(c,g){g=g||2;for(var k=[],E=c,S=1/g,X=0;X0?fe-=1:fe0&&(fe-=1))}return W[fe]=(W[fe]||0)+1,W},[]),A=m.reduce(function(W,he,Oe){if(Oe===c.length-1){var fe=ie(he,h({},c[c.length-1]));return fe[0].type==="M"&&fe.forEach(function(ne){ne.type="L"}),W.concat(fe)}return W.concat(q(c[Oe],c[Oe+1],he))},[]);return A.unshift(c[0]),A}function ge(c){for(var g=(c||"").match(ve)||[],k=[],E,S,X=0;X0&&E[E.length-1].type==="Z"&&E.pop(),S.length>0&&S[S.length-1].type==="Z"&&S.pop(),E.length?S.length||S.push(E[0]):E.push(S[0]);var he=Math.abs(S.length-E.length);he!==0&&(S.length>E.length?E=oe(E,S,m):S.length{(function(e,n){typeof Jf=="object"&&typeof Vx!="undefined"?n(Jf):typeof define=="function"&&define.amd?define(["exports"],n):(e=e||self,n(e.d3=e.d3||{}))})(Jf,function(e){"use strict";function n(c){var g=+this._x.call(null,c),k=+this._y.call(null,c);return i(this.cover(g,k),g,k,c)}function i(c,g,k,E){if(isNaN(g)||isNaN(k))return c;var S,X=c._root,m={data:E},A=c._x0,W=c._y0,he=c._x1,Oe=c._y1,fe,ne,We,se,be,Ce,_e,Re;if(!X)return c._root=m,c;for(;X.length;)if((be=g>=(fe=(A+he)/2))?A=fe:he=fe,(Ce=k>=(ne=(W+Oe)/2))?W=ne:Oe=ne,S=X,!(X=X[_e=Ce<<1|be]))return S[_e]=m,c;if(We=+c._x.call(null,X.data),se=+c._y.call(null,X.data),g===We&&k===se)return m.next=X,S?S[_e]=m:c._root=m,c;do S=S?S[_e]=new Array(4):c._root=new Array(4),(be=g>=(fe=(A+he)/2))?A=fe:he=fe,(Ce=k>=(ne=(W+Oe)/2))?W=ne:Oe=ne;while((_e=Ce<<1|be)==(Re=(se>=ne)<<1|We>=fe));return S[Re]=X,S[_e]=m,c}function u(c){var g,k,E=c.length,S,X,m=new Array(E),A=new Array(E),W=1/0,he=1/0,Oe=-1/0,fe=-1/0;for(k=0;kOe&&(Oe=S),Xfe&&(fe=X));if(W>Oe||he>fe)return this;for(this.cover(W,he).cover(Oe,fe),k=0;kc||c>=S||E>g||g>=X;)switch(he=(gOe||(A=se.y0)>fe||(W=se.x1)=_e)<<1|c>=Ce)&&(se=ne[ne.length-1],ne[ne.length-1]=ne[ne.length-1-be],ne[ne.length-1-be]=se)}else{var Re=c-+this._x.call(null,We.data),Ae=g-+this._y.call(null,We.data),Xe=Re*Re+Ae*Ae;if(Xe=(ne=(m+W)/2))?m=ne:W=ne,(be=fe>=(We=(A+he)/2))?A=We:he=We,g=k,!(k=k[Ce=be<<1|se]))return this;if(!k.length)break;(g[Ce+1&3]||g[Ce+2&3]||g[Ce+3&3])&&(E=g,_e=Ce)}for(;k.data!==c;)if(S=k,!(k=k.next))return this;return(X=k.next)&&delete k.next,S?(X?S.next=X:delete S.next,this):g?(X?g[Ce]=X:delete g[Ce],(k=g[0]||g[1]||g[2]||g[3])&&k===(g[3]||g[2]||g[1]||g[0])&&!k.length&&(E?E[_e]=k:this._root=k),this):(this._root=X,this)}function M(c){for(var g=0,k=c.length;g{(function(e,n){typeof ec=="object"&&typeof Xx!="undefined"?n(ec,$x(),Up(),Yf(),qp()):typeof define=="function"&&define.amd?define(["exports","d3-quadtree","d3-collection","d3-dispatch","d3-timer"],n):n(e.d3=e.d3||{},e.d3,e.d3,e.d3,e.d3)})(ec,function(e,n,i,u,s){"use strict";function h(c,g){var k;c==null&&(c=0),g==null&&(g=0);function E(){var S,X=k.length,m,A=0,W=0;for(S=0;Sfe.index){var ke=ne-Pe.x-Pe.vx,De=We-Pe.y-Pe.vy,it=ke*ke+De*De;itne+ee||reWe+ee||meW.r&&(W.r=W[he].r)}function A(){if(!!g){var W,he=g.length,Oe;for(k=new Array(he),W=0;W1?(be==null?A.remove(se):A.set(se,We(be)),g):A.get(se)},find:function(se,be,Ce){var _e=0,Re=c.length,Ae,Xe,re,me,Pe;for(Ce==null?Ce=1/0:Ce*=Ce,_e=0;_e1?(he.on(se,be),g):he.on(se)}}}function oe(){var c,g,k,E=d(-30),S,X=1,m=1/0,A=.81;function W(ne){var We,se=c.length,be=n.quadtree(c,Ee,ie).visitAfter(Oe);for(k=ne,We=0;We=m)return;(ne.data!==g||ne.next)&&(Ce===0&&(Ce=v(),Ae+=Ce*Ce),_e===0&&(_e=v(),Ae+=_e*_e),Ae{(function(e,n){typeof tc=="object"&&typeof Qx!="undefined"?n(tc,Yf(),ea()):typeof define=="function"&&define.amd?define(["exports","d3-dispatch","d3-selection"],n):(e=e||self,n(e.d3=e.d3||{},e.d3,e.d3))})(tc,function(e,n,i){"use strict";function u(){i.event.stopImmediatePropagation()}function s(){i.event.preventDefault(),i.event.stopImmediatePropagation()}function h(Ee){var ie=Ee.document.documentElement,I=i.select(Ee).on("dragstart.drag",s,!0);"onselectstart"in ie?I.on("selectstart.drag",s,!0):(ie.__noselect=ie.style.MozUserSelect,ie.style.MozUserSelect="none")}function d(Ee,ie){var I=Ee.document.documentElement,D=i.select(Ee).on("dragstart.drag",null);ie&&(D.on("click.drag",s,!0),setTimeout(function(){D.on("click.drag",null)},0)),"onselectstart"in I?D.on("selectstart.drag",null):(I.style.MozUserSelect=I.__noselect,delete I.__noselect)}function v(Ee){return function(){return Ee}}function x(Ee,ie,I,D,q,oe,ge,Ue,de,c){this.target=Ee,this.type=ie,this.subject=I,this.identifier=D,this.active=q,this.x=oe,this.y=ge,this.dx=Ue,this.dy=de,this._=c}x.prototype.on=function(){var Ee=this._.on.apply(this._,arguments);return Ee===this._?this:Ee};function T(){return!i.event.ctrlKey&&!i.event.button}function M(){return this.parentNode}function O(Ee){return Ee??{x:i.event.x,y:i.event.y}}function te(){return navigator.maxTouchPoints||"ontouchstart"in this}function ve(){var Ee=T,ie=M,I=O,D=te,q={},oe=n.dispatch("start","drag","end"),ge=0,Ue,de,c,g,k=0;function E(fe){fe.on("mousedown.drag",S).filter(D).on("touchstart.drag",A).on("touchmove.drag",W).on("touchend.drag touchcancel.drag",he).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function S(){if(!(g||!Ee.apply(this,arguments))){var fe=Oe("mouse",ie.apply(this,arguments),i.mouse,this,arguments);!fe||(i.select(i.event.view).on("mousemove.drag",X,!0).on("mouseup.drag",m,!0),h(i.event.view),u(),c=!1,Ue=i.event.clientX,de=i.event.clientY,fe("start"))}}function X(){if(s(),!c){var fe=i.event.clientX-Ue,ne=i.event.clientY-de;c=fe*fe+ne*ne>k}q.mouse("drag")}function m(){i.select(i.event.view).on("mousemove.drag mouseup.drag",null),d(i.event.view,c),s(),q.mouse("end")}function A(){if(!!Ee.apply(this,arguments)){var fe=i.event.changedTouches,ne=ie.apply(this,arguments),We=fe.length,se,be;for(se=0;se=0;M--){var O=u[M];O==="."?rp(u,M):O===".."?(rp(u,M),T++):T&&(rp(u,M),T--)}if(!d)for(;T--;T)u.unshift("..");d&&u[0]!==""&&(!u[0]||!pf(u[0]))&&u.unshift("");var te=u.join("/");return v&&te.substr(-1)!=="/"&&(te+="/"),te}var v1=fb;var cb=!0,ip="Invariant failed";function ui(e,n){if(!e){if(cb)throw new Error(ip);var i=typeof n=="function"?n():n,u=i?"".concat(ip,": ").concat(i):ip;throw new Error(u)}}function pl(e){return e.charAt(0)==="/"?e:"/"+e}function g1(e){return e.charAt(0)==="/"?e.substr(1):e}function hb(e,n){return e.toLowerCase().indexOf(n.toLowerCase())===0&&"/?#".indexOf(e.charAt(n.length))!==-1}function m1(e,n){return hb(e,n)?e.substr(n.length):e}function y1(e){return e.charAt(e.length-1)==="/"?e.slice(0,-1):e}function db(e){var n=e||"/",i="",u="",s=n.indexOf("#");s!==-1&&(u=n.substr(s),n=n.substr(0,s));var h=n.indexOf("?");return h!==-1&&(i=n.substr(h),n=n.substr(0,h)),{pathname:n,search:i==="?"?"":i,hash:u==="#"?"":u}}function fr(e){var n=e.pathname,i=e.search,u=e.hash,s=n||"/";return i&&i!=="?"&&(s+=i.charAt(0)==="?"?i:"?"+i),u&&u!=="#"&&(s+=u.charAt(0)==="#"?u:"#"+u),s}function _r(e,n,i,u){var s;typeof e=="string"?(s=db(e),s.state=n):(s=Fn({},e),s.pathname===void 0&&(s.pathname=""),s.search?s.search.charAt(0)!=="?"&&(s.search="?"+s.search):s.search="",s.hash?s.hash.charAt(0)!=="#"&&(s.hash="#"+s.hash):s.hash="",n!==void 0&&s.state===void 0&&(s.state=n));try{s.pathname=decodeURI(s.pathname)}catch(h){throw h instanceof URIError?new URIError('Pathname "'+s.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):h}return i&&(s.key=i),u?s.pathname?s.pathname.charAt(0)!=="/"&&(s.pathname=v1(s.pathname,u.pathname)):s.pathname=u.pathname:s.pathname||(s.pathname="/"),s}function op(){var e=null;function n(d){return e=d,function(){e===d&&(e=null)}}function i(d,v,x,T){if(e!=null){var M=typeof e=="function"?e(d,v):e;typeof M=="string"?typeof x=="function"?x(M,T):T(!0):T(M!==!1)}else T(!0)}var u=[];function s(d){var v=!0;function x(){v&&d.apply(void 0,arguments)}return u.push(x),function(){v=!1,u=u.filter(function(T){return T!==x})}}function h(){for(var d=arguments.length,v=new Array(d),x=0;xA?W.splice(A,W.length-A,S):W.push(S),M({action:E,location:S,index:A,entries:W})}})}function I(g,k){var E="REPLACE",S=_r(g,k,O(),c.location);T.confirmTransitionTo(S,E,i,function(X){!X||(c.entries[c.index]=S,M({action:E,location:S}))})}function D(g){var k=E1(c.index+g,0,c.entries.length-1),E="POP",S=c.entries[k];T.confirmTransitionTo(S,E,i,function(X){X?M({action:E,location:S,index:k}):M()})}function q(){D(-1)}function oe(){D(1)}function ge(g){var k=c.index+g;return k>=0&&k=0)&&(i[s]=e[s]);return i}var V1=$t(q1()),mp=1073741823,$1=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:{};function Wb(){var e="__global_unique_id__";return $1[e]=($1[e]||0)+1}function Ub(e,n){return e===n?e!==0||1/e==1/n:e!==e&&n!==n}function Bb(e){var n=[];return{on:function(u){n.push(u)},off:function(u){n=n.filter(function(s){return s!==u})},get:function(){return e},set:function(u,s){e=u,n.forEach(function(h){return h(e,s)})}}}function jb(e){return Array.isArray(e)?e[0]:e}function Yb(e,n){var i,u,s="__create-react-context-"+Wb()+"__",h=function(v){Wr(x,v);function x(){for(var M,O=arguments.length,te=new Array(O),ve=0;ve{fetch("https://github.com/api/readme").then(u=>u.text()).then(u=>{n((0,nw.default)(u.replace(/\[\/\/\](.*?)\(__repo__\)[\S\s]*/,"")))}).catch(console.error)},[]),(0,zi.useEffect)(()=>{[...i.current.querySelectorAll("a")].forEach(u=>u.setAttribute("target","_blank"))},[e]),zi.default.createElement("div",{ref:i,className:"document",dangerouslySetInnerHTML:{__html:e}})}var rw=iC;var bt=$t(bn());var yl=$t(bn());function Xa({checked:e,onChange:n}){return yl.default.createElement("div",{className:"checkbox",onClick:n},yl.default.createElement("svg",{width:9,height:9,viewBox:"0 0 80 80"},e&&yl.default.createElement("path",{d:"M14 30L0 44 37 76 80 11 65 0 34 50z"})),yl.default.createElement("input",{hidden:!0,"aria-hidden":"false",type:"checkbox",checked:e,onChange:n}))}var Ef=$t(bn());function oC(){return Ef.default.createElement("span",{className:"lock",title:"locked"},Ef.default.createElement("svg",{width:"10",height:"10",viewBox:"0 0 20 20"},Ef.default.createElement("path",{fill:"#07A",d:"m3,9h1V6a5,5 0 0,1 12,0V9h1v11H3M14,9V6a4,4 0 1,0-8,0v3"})))}var Mp=oC;var iw=$t(bn());function aC(){return iw.default.createElement("span",{className:"star",title:"starred"},"\u2605")}var Ep=aC;var $r=$t(bn()),pw=$t(wl()),K2=$t(dw());function Lp({value:e="",onChange:n,onSave:i,children:u,readOnly:s}){let h=(0,$r.useRef)(),d=(0,$r.useRef)(),v=(0,$r.useRef)();return(0,$r.useEffect)(()=>{let x=(0,pw.default)(h.current,{value:e,mode:"jsx",theme:"mdn-like",autofocus:!0,lineWrapping:!0,inputStyle:"contenteditable",lineNumbers:!0,gutters:["CodeMirror-linenumbers","breakpoints"]});d.current=e,v.current=x},[]),(0,$r.useEffect)(()=>{function x(T,[{origin:M}]){let O=v.current.getValue();M!=="setValue"&&n(O),d.current=O}return v.current.on("changes",x),()=>{v.current.off("changes",x)}},[n]),(0,$r.useEffect)(()=>{v.current.setOption("extraKeys",{"Ctrl-S":i})},[i]),(0,$r.useEffect)(()=>{v.current.setOption("readOnly",s)},[s]),(0,$r.useEffect)(()=>{d.current!==e&&v.current.setValue(e)},[e]),$r.default.createElement("div",{ref:h,className:"cmd-editor"},u)}var Ka=$t(bn());var Zo=$t(bn());function uC({commands:e}){let n=(0,Zo.useRef)(),[{height:i},u]=(0,Zo.useState)({}),[s,h]=(0,Zo.useState)(0),{length:d}=e,v=20,x=d*v;return(0,Zo.useEffect)(()=>{let T=()=>u(n.current.getBoundingClientRect());T(),window.addEventListener("resize",T);let M=O=>h(O.target.scrollTop);return n.current.addEventListener("scroll",M),()=>{window.removeEventListener("resize",T),n.current.removeEventListener("scroll",M)}},[]),Ka.default.createElement("div",{className:"cmd-list",ref:n},Ka.default.createElement("div",{style:{height:x}},e.map((T,M)=>{let O=M*v,te=O+v>s,ve=O-v{let s=localStorage.getItem(e);return s?JSON.parse(s):n});return(0,Nf.useEffect)(()=>{localStorage.setItem(e,JSON.stringify(i))},[i]),[i,u]}function Jo(){let[e,n]=gw("password",""),[i,u]=gw("admin",!1);return{fetchAPI:(h,d={})=>new Promise((v,x)=>{let T={...d,headers:{"X-Authorization":`Basic ${btoa(`web:${e}`)}`,"Content-Type":"application/json"},body:d.body&&JSON.stringify(d.body)};fetch(`/api/${h}`,T).then(M=>M.json()).then(v).catch(x)}),password:e,setPassword:n,admin:i,setAdmin:u}}function Dp(){let{fetchAPI:e,password:n,setPassword:i,admin:u,setAdmin:s}=Jo();return(0,go.useEffect)(()=>{e("is-admin").then(s).catch(console.error)},[n]),go.default.createElement("div",{className:"cmd-default"},go.default.createElement("input",{type:"password",placeholder:"admin pwd",value:n,className:u?"admin":"error",onChange:h=>i(h.target.value)}),go.default.createElement("p",null,"an interface for manipulating commands"),go.default.createElement("p",null,"alternatively, try the"," ",go.default.createElement("a",{href:"https://www.github.com/kirjavascript/nibblrjr.vim",target:"_blank"},"vim plugin")))}var _w=$t(yw()),kw=$t(xw());function Op({command:e}){return bt.default.createElement(bt.default.Fragment,null,e.name," ",e.starred&&bt.default.createElement(Ep,null)," ",e.locked&&bt.default.createElement(Mp,null),e.event&&bt.default.createElement("span",{className:"event"}," (event)"))}function sC({history:e}){let[n,i]=(0,bt.useState)([]),[u,s]=(0,bt.useState)(""),[h,d]=(0,bt.useState)(!1),[v,x]=(0,bt.useState)(!1),[T,M]=(0,bt.useState)(""),{fetchAPI:O,admin:te}=Jo(),ve=(0,bt.useCallback)(()=>{O("command/list").then(i).catch(console.error)},[]);(0,bt.useEffect)(ve,[]);let Ee;try{Ee=new RegExp(u)}catch{}let ie=n.filter(g=>(g.starred&&h||!h)&&(g.locked&&v||!v)),I=ie.filter(g=>!u||g.name.match(Ee)),D=n.some(g=>g.name===T),{root:q}=(0,kw.parseCommand)({text:T}),oe=n.find(g=>g.name===q),ge=oe&&oe.locked,de=!_w.default.includes(T)&&!D&&(!ge||te),c=(0,bt.useCallback)(g=>{if(g.keyCode===13&&de){let k=encodeURIComponent(T);O(`command/new/${k}`,{method:"POST"}).then(()=>{M(""),ve(),e.push(`/cmds/${k}`)}).catch(console.error)}},[T]);return bt.default.createElement(bt.default.Fragment,null,bt.default.createElement("div",{className:"cmd-menu"},bt.default.createElement("div",null,bt.default.createElement("input",{type:"text",placeholder:"new command",className:!de&&T?"invalid":"",value:T,onChange:g=>M(g.target.value.replace(/\s+/g,"")),onKeyDown:c}),bt.default.createElement("input",{type:"text",placeholder:"search commands (regex)",value:u,onChange:g=>{s(g.target.value)}}),bt.default.createElement("div",{className:"cmd-filter"},bt.default.createElement("span",null," ",I.length," / ",ie.length," "),bt.default.createElement("div",{className:"cmd-toggle"},bt.default.createElement(Ep,null),bt.default.createElement(Xa,{checked:h,onChange:()=>d(!h)}),bt.default.createElement(Mp,null),bt.default.createElement(Xa,{checked:v,onChange:()=>x(!v)})))),bt.default.createElement(vw,{commands:I})),bt.default.createElement(Fi,{exact:!0,path:"/cmds/:name",render:g=>bt.default.createElement(fC,{updateList:ve,...g})}),bt.default.createElement(Fi,{exact:!0,path:"/cmds",component:Dp}))}var Tw="/* loading ... */";function fC({updateList:e,history:n,match:{params:i}}){let{fetchAPI:u,admin:s}=Jo(),[h,d]=(0,bt.useState)({command:Tw}),[v,x]=(0,bt.useState)(Tw),[T,M]=(0,bt.useState)(!1),[O,te]=(0,bt.useState)("delete");function ve(){u("command/get/"+i.name).then(g=>{d(g),x(g.command)}).catch(console.error),te("delete")}(0,bt.useEffect)(ve,[i.name]);let Ee=g=>{let k={method:"POST",body:{[g]:!h[g]}};u("command/set-config/"+i.name,k).then(E=>{E.error||(ve(),e())}).catch(console.error)},ie=()=>{M(!0);let g={method:"POST",body:{command:h.command}};u("command/set/"+i.name,g).then(k=>{k.error?alert(k.error):x(h.command),M(!1)}).catch(console.error)},I=()=>{O!=="confirm?"?te("confirm?"):u("command/delete/"+i.name,{method:"POST"}).then(g=>{g.error?te(g.error):(e(),n.push("/cmds"))}).catch(console.error)},D=h.error?`/* error: ${h.error} */`:h.command,{locked:q,starred:oe,event:ge}=h,Ue=T?"saving":h.command===v?"saved":"save",de=s,c=h.locked&&!de;return bt.default.createElement(Lp,{value:D,readOnly:c,onSave:ie,onChange:g=>{d({...h,command:g})}},bt.default.createElement("div",{className:"cmd-options"},bt.default.createElement("span",{className:"cmd-name"},bt.default.createElement(Op,{command:h})),!!h.name&&bt.default.createElement("div",null,!c&&bt.default.createElement(bt.default.Fragment,null,bt.default.createElement("button",{type:"button",onClick:ie},Ue),de&&bt.default.createElement(bt.default.Fragment,null,bt.default.createElement("button",{type:"button",onClick:()=>{Ee("locked")}},q?"unlock":"lock"),bt.default.createElement("button",{type:"button",onClick:()=>{Ee("starred")}},oe?"unstar":"star"),bt.default.createElement("button",{type:"button",onClick:()=>{Ee("event")}},ge?"unevent":"as event")),bt.default.createElement("button",{type:"button",onClick:I},O)))))}var Sw=sC;var en=$t(bn());var kr=$t(bn());var Qa=$t(bn());function xl({items:e,...n}){return Qa.default.createElement("div",{className:"select"},Qa.default.createElement("select",{...n},e.map(({label:i,value:u})=>Qa.default.createElement("option",{value:u,key:u},i))),Qa.default.createElement("svg",{className:"arrow",width:"12",height:"12",viewBox:"0 0 100 50"},Qa.default.createElement("path",{d:"M0,0H100L50,50z"})))}var Wp=$t(hx()),wx=$t(yx());function PM({onMonth:e,onChange:n,base:i,history:u,location:s}){let h=(0,kr.useMemo)(()=>s.pathname.split("/"),[]),[d,v]=(0,kr.useState)(h[2]||""),[x,T]=(0,kr.useState)(decodeURIComponent(h[3]||"")),[M,O]=(0,kr.useState)(h[4]||"");(0,kr.useEffect)(()=>{u.replace(["/stats",d||x||M?"/":"",d,x||M?"/":"",encodeURIComponent(x),M?"/":"",M].join("")),n({server:d,channel:x,month:M})},[d,x,M]),(0,kr.useEffect)(()=>{e({server:d,channel:x,month:M})},[M]);let te=i.servers.map(({server:ie})=>({label:ie,value:ie})),ve=i.servers.reduce((ie,I)=>((d===""||I.server===d)&&ie.push(...I.channels.map(D=>({label:D,value:D}))),ie),[]).filter((ie,I,D)=>D.findIndex(q=>q.value==ie.value)===I),Ee=Array.from({length:12},(ie,I)=>{let D=(0,wx.default)(new Date,I+1);return{label:(0,Wp.default)(D,"MMMM YYYY").toLowerCase(),value:(0,Wp.default)(D,"YYYY-MM")}});return(0,kr.useEffect)(()=>{(d||x||M)&&s.pathname==="/stats"&&(v(""),T(""),O(""))},[s.pathname]),kr.default.createElement("div",{className:"stats-filter"},kr.default.createElement(xl,{value:d,items:[{label:"servers",value:""},...te],onChange:ie=>{v(ie.target.value),ie.target.value&&T("")}}),kr.default.createElement(xl,{value:x,items:[{label:"channels",value:""},...ve],onChange:ie=>T(ie.target.value)}),kr.default.createElement(xl,{value:M,items:[{label:"this month",value:""},...Ee],onChange:ie=>O(ie.target.value)}))}var xx=PM;var mo=$t(bn()),_l=Object.assign({},ea(),jp(),Yp(),Gp());function Vp({x:e,y:n,width:i,height:u,radius:s=3}){return s>u&&(s=u),i{s.current||(s.current=new Ux(u.current)),s.current.data(e,n).render(!0)},[e]),(0,mo.useEffect)(()=>()=>s.current.destroy(),[]),mo.default.createElement("div",{ref:u,...i})}var Ux=class{config={margin:{top:5,right:20,bottom:40,left:60},height:400,data:void 0,accessor:n=>n.label};get dimensions(){let{top:n,right:i,bottom:u,left:s}=this.config.margin;return{width:this.outerWidth-s-i,height:this.config.height-n-u,top:n,right:i,bottom:u,left:s}}container;svg;main;contents;xAxisG;yAxisG;outerWidth;constructor(n){this.container=_l.select(n),this.container.selectAll("*").remove(),this.svg=this.container.append("svg"),this.main=this.svg.append("g"),this.contents=this.main.append("g"),this.xAxisG=this.main.append("g").attr("transform",`translate(0, ${this.dimensions.height})`).attr("class","axis x"),this.yAxisG=this.main.append("g").attr("class","axis y"),window.addEventListener("resize",this.resize)}destroy=()=>{window.removeEventListener("resize",this.resize),this.container.selectAll("*").remove()};data=(n,i)=>(this.config.data=n,this.config.accessor=i,this);resize=()=>{this.render()};render=(n=!1)=>{this.outerWidth=this.container.node().getBoundingClientRect().width;let{width:i,height:u,top:s,right:h,bottom:d,left:v}=this.dimensions,k=I=>n?I.transition():I;this.svg.attr("width",i+v+h).attr("height",u+s+d),this.main.attr("transform",`translate(${[v,s]})`);let S=this.config.data.reduce((I,Y)=>Math.max(I,Y.count),0),E=_l.scaleLinear().domain([0,S]).range([u,0]),O=_l.scaleBand().paddingInner(1/3).paddingOuter(1/6).rangeRound([0,i]).domain(this.config.data.map(this.config.accessor)),ie=_l.axisBottom(O).tickSize(10);k(this.xAxisG).attr("transform",`translate(0,${u})`).call(ie).selectAll("text").style("text-anchor","end").attr("dx","-.8em").attr("dy",".55em").attr("transform","rotate(-14)");let ve=_l.axisLeft(E).tickSize(10).ticks(12);k(this.yAxisG).call(ve);let Ee=this.contents.selectAll(".bar").data(this.config.data,this.config.accessor);Ee.exit().attr("opacity",1).transition().attr("opacity",0).attr("d",Vp({x:O.bandwidth(),width:O.bandwidth(),height:0,y:u})).remove();let R=Ee.enter().append("path").classed("bar",1).attr("d",I=>Vp({x:O(this.config.accessor(I)),width:O.bandwidth(),height:0,y:u})).merge(Ee);k(R).attr("d",I=>Vp({x:O(this.config.accessor(I)),width:O.bandwidth(),height:Math.abs(E(I.count)-E(0)),y:E(Math.max(0,I.count))}))}};var yo=jt(wn()),wo=Object.assign({},Jo(),Yp(),qp(),qx(),$p(),$x());function Zf({items:e=[],accessor:n,...i}){let u=(0,yo.useRef)(),s=(0,yo.useRef)();return(0,yo.useEffect)(()=>{s.current||(s.current=new Vx(u.current,i)),s.current.data(e,n).render(!0)},[e]),(0,yo.useEffect)(()=>()=>s.current.destroy(),[]),yo.default.createElement("div",{ref:u})}var Vx=class{config={margin:{top:5,right:20,bottom:40,left:60},height:400,data:void 0,accessor:n=>n.label,tickFormatX:void 0};get dimensions(){let{top:n,right:i,bottom:u,left:s}=this.config.margin;return{width:this.outerWidth-s-i,height:this.config.height-n-u,top:n,right:i,bottom:u,left:s}}container;svg;main;contents;xAxisG;yAxisG;outerWidth;constructor(n,i={}){this.container=wo.select(n),this.container.selectAll("*").remove(),Object.assign(this.config,i),this.svg=this.container.append("svg"),this.main=this.svg.append("g"),this.contents=this.main.append("g"),this.xAxisG=this.main.append("g").attr("transform",`translate(0, ${this.dimensions.height})`).attr("class","axis x"),this.yAxisG=this.main.append("g").attr("class","axis y"),window.addEventListener("resize",this.resize)}destroy=()=>{window.removeEventListener("resize",this.resize),this.container.selectAll("*").remove()};data=(n,i)=>(this.config.data=n,this.config.accessor=i,this);resize=()=>{this.render()};render=(n=!1)=>{this.outerWidth=this.container.node().getBoundingClientRect().width;let{width:i,height:u,top:s,right:h,bottom:d,left:v}=this.dimensions,k=I=>n?I.transition():I;this.svg.attr("width",i+v+h).attr("height",u+s+d),this.main.attr("transform",`translate(${[v,s]})`);let S=this.config.data.reduce((I,Y)=>Math.max(I,Y.count),0),E=wo.scaleLinear().domain([0,S]).range([u,0]),O=wo.scalePoint().domain(this.config.data.map(this.config.accessor)).rangeRound([0,i]),ie=wo.axisBottom(O).tickSize(10).tickFormat(this.config.tickFormatX);k(this.xAxisG).attr("transform",`translate(0,${u})`).call(ie).selectAll("text").attr("dy","1em");let ve=wo.axisLeft(E).tickSize(10).ticks(12);k(this.yAxisG).call(ve);let Ee=wo.line().x(I=>O(this.config.accessor(I))).y(I=>E(I.count)),ne=this.contents.selectAll(".line").data([this.config.data]),R=ne.enter().append("path").attr("class","line").merge(ne);n?R.transition().attrTween("d",function(I){let Y=wo.select(this).attr("d");return wo.interpolatePath(Y,Ee(I))}):R.attr("d",Ee)}};var kr=jt(wn());var Xa=jt(Rf()),Kp=jt(zf()),PM=(0,Kp.interpolateCubehelixLong)((0,Xa.cubehelix)(-100,.75,.35),(0,Xa.cubehelix)(80,1.5,.8)),LM=(0,Kp.interpolateCubehelixLong)((0,Xa.cubehelix)(260,.75,.35),(0,Xa.cubehelix)(80,1.5,.8)),Jf=(0,Xa.cubehelix)();function Qp(e){(e<0||e>1)&&(e-=Math.floor(e));var n=Math.abs(e-.5);return Jf.h=360*e-100,Jf.s=1.5-1.5*n,Jf.l=.8-.9*n,Jf+""}function OM(e){let[n,i]=[...e].reduce(([u,s],h)=>{let d=(u+h.charCodeAt())%65521;return[d,(s+d)%65521]},[1,0]);return i<<16|n}function Zp(e){return Qp(OM(e)/32640)}var _n=Object.assign({},Jo(),Zx(),e_());Object.defineProperty(_n,"event",{get:()=>Jo().event});function Jp({items:e=[]}){let n=(0,kr.useRef)(),i=(0,kr.useRef)(),[u,s]=(0,kr.useState)(!1);return(0,kr.useEffect)(()=>{let h=e.reduce((k,[S,E]=[])=>(E.forEach(({user:O,count:ie},ve)=>{k[O]={count:ie,index:ve}}),k),{}),d=[];e.forEach(([k,S,E])=>{Object.entries(E).forEach(([O,ie])=>{Object.entries(ie).forEach(([ve,Ee])=>{d.push({source:O,target:ve,count:Ee,server:k,activity:h[O]})})})});let v=d.map(k=>[k.source,k.server]).concat(d.map(k=>[k.target,k.server])).map(([k,S])=>[`${k}-${S}`,k,S]).filter((k,S,E)=>E.findIndex(O=>O[0]===k[0])===S).map(([k,S,E])=>({id:k,name:S,server:E,activity:h[S]}));d.forEach(k=>{k.source=k.source+"-"+k.server,k.target=k.target+"-"+k.server}),v.forEach(k=>{let S=E=>d.filter(O=>O[E]===k.id).length;k.activity&&(k.activity.from=S("target"),k.activity.to=S("source"))}),i.current||(i.current=new t_(n.current)),i.current.data(d,v)},[e]),(0,kr.useEffect)(()=>{i.current.orbit(u),i.current.render()},[u]),(0,kr.useEffect)(()=>()=>i.current.destroy(),[]),kr.default.createElement(kr.default.Fragment,null,kr.default.createElement("div",{className:"canvas",ref:n}),kr.default.createElement("div",{className:"hud"},"orbiters",kr.default.createElement(Ga,{checked:u,onChange:()=>s(!u)})))}var t_=class{config={orbit:!1};constructor(n){this.container=_n.select(n),this.container.selectAll("*").remove(),this.canvas=this.container.append("canvas"),window.addEventListener("resize",this.resize),this.ctx=this.canvas.node().getContext("2d"),this.simulation=_n.forceSimulation().on("tick",this.render),this.setSize();let{width:i,height:u}=this;this.canvas.attr("width",i).attr("height",u).call(_n.drag().container(this.canvas.node()).subject(()=>this.simulation.find(_n.event.x,_n.event.y)).on("start",()=>{_n.event.active||this.simulation.alphaTarget(.3).restart(),_n.event.subject.fx=_n.event.subject.x,_n.event.subject.fy=_n.event.subject.y}).on("drag",()=>{_n.event.subject.fx=_n.event.x,_n.event.subject.fy=_n.event.y}).on("end",()=>{_n.event.active||this.simulation.alphaTarget(0),_n.event.subject.fx=null,_n.event.subject.fy=null})),this.container.style("position","relative"),this.popup=this.container.append("div").classed("popup",!0)}destroy=()=>{this.simulation.stop(),window.removeEventListener("resize",this.resize),this.container.selectAll("*").remove()};setSize=()=>{this.width=this.container.node().getBoundingClientRect().width,this.height=800;let{width:n,height:i}=this;Object.assign(this.canvas.node(),{width:n,height:i}),this.setOrbitCharge(),this.simulation.force("center",_n.forceCenter(n/2,i/2))};setOrbitCharge=()=>{let n=this.width<650;this.simulation.force("x",_n.forceX().strength(n?.2:.1)).force("y",_n.forceY().strength(n?.1:.2)).force("charge",_n.forceManyBody().strength(()=>-(this.width/(this.config.orbit?3:7))))};orbit=n=>{this.config.orbit=n,this.setOrbitCharge(),this.simulation.alphaTarget(.1).restart()};data=(n,i)=>{Object.assign(this.config,{links:n,nodes:i}),this.simulation.nodes(i).force("link",_n.forceLink(n).id(s=>s.id)).alphaTarget(.1).restart();let u;return this.focusedNode=void 0,this.canvas.on("mousemove",()=>{let[s,h]=_n.mouse(this.canvas.node()),d=this.simulation.find(s,h);d&&u!==d.id&&(u=d.id,i.forEach(v=>{v.focused=v.id===u}),n.forEach(v=>{v.from=v.source.id===u,v.to=v.target.id===u}),this.focusedNode=d),this.render()}),this};resize=()=>{this.setSize(),this.simulation.alphaTarget(.1).restart(),this.render()};render=()=>{let{width:n,height:i,ctx:u}=this,{links:s=[],nodes:h=[],orbit:d}=this.config,v=d?h:h.filter(({activity:S})=>!!S),k=d?s:s.filter(({activity:S})=>!!S);if(this.focusedNode&&this.focusedNode.activity){let{x:S,y:E,name:O,server:ie,activity:{count:ve,index:Ee,to:ne,from:R}}=this.focusedNode;this.popup.classed("visible",!0).style("left",`${S+5}px`).style("top",`${E-18}px`).selectAll("div").data([["name",[O,ie]],["stat rank",["rank",Ee+1]],["stat msgs",["msgs",ve]],["stat sent",["sent",ne]],["stat recv",["recv",R]]]).join("div").attr("class",([I])=>I).selectAll("span").data(([I,Y])=>Y).join("span").text(I=>I)}else this.popup.classed("visible",!1);u.clearRect(0,0,n,i),u.beginPath(),k.forEach(S=>{!S.to&&!S.from&&(u.moveTo(S.source.x,S.source.y),u.lineTo(S.target.x,S.target.y))}),u.strokeStyle="rgba(0, 255, 255, 0.2)",u.stroke(),u.beginPath(),u.strokeStyle="rgba(235, 51, 110, 0.8)",k.forEach(S=>{S.from&&(u.moveTo(S.source.x,S.source.y),u.quadraticCurveTo(S.source.x-10,S.target.y+10,S.target.x,S.target.y))}),u.stroke(),u.beginPath(),u.strokeStyle="rgba(0, 255, 255, 1)",k.forEach(S=>{S.to&&(u.moveTo(S.source.x,S.source.y),u.quadraticCurveTo(S.target.x+10,S.source.y-10,S.target.x,S.target.y))}),u.stroke(),u.beginPath(),v.forEach(S=>{let E=S.focused?8:6;u.moveTo(S.x+E,S.y),u.arc(S.x,S.y,E,0,2*Math.PI)}),u.fillStyle="limegreen",u.fill(),u.fillStyle="black",u.font="12px Hack",v.forEach(S=>{(!S.focused||!S.activity)&&u.fillText(S.name,S.x,S.y)})}};var qn=jt(wn());function n_(e){return e==1?"once":e==2?"twice":`${e} times`}function DM(e,n){return e+(n>1?"s":"")}function Ka({items:e}){return e.map(n=>qn.default.createElement("span",{key:n.user,className:"name",style:{color:Zp(n.user)}},n.user)).reduce((n,i,u,s)=>[n,u==s.length-1?(u-1?",":"")+" and ":", ",i])}function AM({stats:e}){let{shouting:n=[],questions:i=[],kicks:u=[],kicked:s=[],avgLineLengthLow:h=[],avgLineLengthHigh:d=[]}=e;return qn.default.createElement("div",{className:"factoids"},!!n.length&&qn.default.createElement("p",{className:"factoid"},qn.default.createElement(Ka,{items:n})," shouted in ",qn.default.createElement("span",{className:"fact-type"},"ALL CAPS")," "+n_(n[0].count)),!!i.length&&qn.default.createElement("p",{className:"factoid"},qn.default.createElement(Ka,{items:i})," asked "+i[0].count+" ",qn.default.createElement("span",{className:"fact-type"},DM("question",i[0].count))),!!u.length&&qn.default.createElement("p",{className:"factoid"},qn.default.createElement(Ka,{items:u}),qn.default.createElement("span",{className:"fact-type"}," kicked "),u[0].count+" ",u[0].count>1?" people":" person"),!!s.length&&qn.default.createElement("p",{className:"factoid"},qn.default.createElement(Ka,{items:s}),qn.default.createElement("span",{className:"fact-type"}," got kicked "),n_(s[0].count)),!!d.length&&qn.default.createElement("p",{className:"factoid"},"for ",qn.default.createElement("span",{className:"fact-type"}," average line length "),qn.default.createElement(Ka,{items:d})," had "+(0|d[0].average)+" and ",qn.default.createElement(Ka,{items:h})," had "+(0|h[0].average)))}var r_=AM;function IM({history:e,location:n}){let{fetchAPI:i}=Zo(),[u,s]=(0,tn.useState)({servers:[]}),[h,d]=(0,tn.useState)({}),[v,k]=(0,tn.useState)(!1);return tn.default.createElement(tn.default.Fragment,null,tn.default.createElement(kx,{history:e,location:n,base:u,ready:v,onChange:({month:S,server:E,channel:O})=>{let ie=setTimeout(()=>k(!1),150);i("stats/all",{body:{month:S,server:E,channel:O},method:"POST"}).then(ve=>{d(ve),clearTimeout(ie),k(!0)}).catch(console.error)},onMonth:({month:S})=>{i("stats/base",{body:{month:S},method:"POST"}).then(s).catch(console.error)}}),tn.default.createElement("div",{className:`stats-container${v?"":" loading"}`},tn.default.createElement("div",{className:"stats"},tn.default.createElement("div",{className:"row"},tn.default.createElement("div",{className:"base"},tn.default.createElement("span",null,"updated hourly"),tn.default.createElement("div",{className:"uptime"},tn.default.createElement("h4",null,"uptime"," "),tn.default.createElement("span",null,u.uptime||"0","h"))),tn.default.createElement("div",{className:"command-chart"},tn.default.createElement("h3",{className:"title"},"most used commands"),tn.default.createElement(Xp,{items:h.commands,accessor:S=>S.command}))),tn.default.createElement("div",{className:"row"},tn.default.createElement("div",{className:"half"},tn.default.createElement("h3",{className:"title"},"activity / days"),tn.default.createElement(Zf,{items:h.activityDays,accessor:S=>S.day,tickFormatX:S=>+S.slice(8)})),tn.default.createElement("div",{className:"half"},tn.default.createElement("h3",{className:"title"},"activity / hours"),tn.default.createElement(Zf,{items:h.activityHours,accessor:S=>S.hour}))),tn.default.createElement(r_,{stats:h})),tn.default.createElement("div",{className:"stats-forcesim"},tn.default.createElement("h4",null," network graph "),tn.default.createElement("span",null,"tracking who talks to popular users"),tn.default.createElement("div",{className:"sim"},tn.default.createElement(Jp,{items:h.links})))))}var i_=IM;var Qa=jt(wn()),o_=jt(Mp());function RM(){let[e,n]=(0,Qa.useState)("");return(0,Qa.useEffect)(()=>{fetch("https://github.com/api/docs").then(i=>i.text()).then(i=>{n((0,o_.default)(i.split("(__docs__)").pop())),window.location.hash.length&&window.location.replace(window.location.hash)}).catch(console.error)},[]),Qa.default.createElement("div",{className:"document",dangerouslySetInnerHTML:{__html:e}})}var a_=RM;var FM=_p(({location:e})=>{let n=e.pathname.split("/")[1];return fr.default.createElement(fr.default.Fragment,null,fr.default.createElement("div",{className:"menu"},fr.default.createElement("h1",null,"nibblr",fr.default.createElement("span",{className:"jr"},"jr")),["cmds","docs","stats"].map(i=>fr.default.createElement(ml,{className:n===i?"active":"",key:i,to:"/"+i},i)),fr.default.createElement("a",{target:"_blank",rel:"noopener",href:"https://www.github.com/kirjavascript/nibblrjr"},"src^")),fr.default.createElement("main",{className:`main-${n}`},fr.default.createElement(Fi,{exact:!0,path:"/",component:ow}),fr.default.createElement(Fi,{path:"/cmds",component:Cw}),fr.default.createElement(Fi,{path:"/stats",component:i_}),fr.default.createElement(Fi,{exact:!0,path:"/docs",component:a_})),fr.default.createElement("img",{src:"/nibblr.gif",className:"nibblr"}))});(0,u_.render)(fr.default.createElement(nw,null,fr.default.createElement(FM,null)),document.body.appendChild(document.createElement("div"))); + `.replace(/\s\s+/g," ")}function $p({items:e=[],accessor:n,...i}){let u=(0,mo.useRef)(),s=(0,mo.useRef)();return(0,mo.useEffect)(()=>{s.current||(s.current=new Hx(u.current)),s.current.data(e,n).render(!0)},[e]),(0,mo.useEffect)(()=>()=>s.current.destroy(),[]),mo.default.createElement("div",{ref:u,...i})}var Hx=class{config={margin:{top:5,right:20,bottom:40,left:60},height:400,data:void 0,accessor:n=>n.label};get dimensions(){let{top:n,right:i,bottom:u,left:s}=this.config.margin;return{width:this.outerWidth-s-i,height:this.config.height-n-u,top:n,right:i,bottom:u,left:s}}container;svg;main;contents;xAxisG;yAxisG;outerWidth;constructor(n){this.container=_l.select(n),this.container.selectAll("*").remove(),this.svg=this.container.append("svg"),this.main=this.svg.append("g"),this.contents=this.main.append("g"),this.xAxisG=this.main.append("g").attr("transform",`translate(0, ${this.dimensions.height})`).attr("class","axis x"),this.yAxisG=this.main.append("g").attr("class","axis y"),window.addEventListener("resize",this.resize)}destroy=()=>{window.removeEventListener("resize",this.resize),this.container.selectAll("*").remove()};data=(n,i)=>(this.config.data=n,this.config.accessor=i,this);resize=()=>{this.render()};render=(n=!1)=>{this.outerWidth=this.container.node().getBoundingClientRect().width;let{width:i,height:u,top:s,right:h,bottom:d,left:v}=this.dimensions,x=D=>n?D.transition():D;this.svg.attr("width",i+v+h).attr("height",u+s+d),this.main.attr("transform",`translate(${[v,s]})`);let T=this.config.data.reduce((D,q)=>Math.max(D,q.count),0),M=_l.scaleLinear().domain([0,T]).range([u,0]),O=_l.scaleBand().paddingInner(1/3).paddingOuter(1/6).rangeRound([0,i]).domain(this.config.data.map(this.config.accessor)),te=_l.axisBottom(O).tickSize(10);x(this.xAxisG).attr("transform",`translate(0,${u})`).call(te).selectAll("text").style("text-anchor","end").attr("dx","-.8em").attr("dy",".55em").attr("transform","rotate(-14)");let ve=_l.axisLeft(M).tickSize(10).ticks(12);x(this.yAxisG).call(ve);let Ee=this.contents.selectAll(".bar").data(this.config.data,this.config.accessor);Ee.exit().attr("opacity",1).transition().attr("opacity",0).attr("d",Vp({x:O.bandwidth(),width:O.bandwidth(),height:0,y:u})).remove();let I=Ee.enter().append("path").classed("bar",1).attr("d",D=>Vp({x:O(this.config.accessor(D)),width:O.bandwidth(),height:0,y:u})).merge(Ee);x(I).attr("d",D=>Vp({x:O(this.config.accessor(D)),width:O.bandwidth(),height:Math.abs(M(D.count)-M(0)),y:M(Math.max(0,D.count))}))}};var yo=$t(bn()),wo=Object.assign({},ea(),jp(),Yp(),jx(),Gp(),qx());function Qf({items:e=[],accessor:n,...i}){let u=(0,yo.useRef)(),s=(0,yo.useRef)();return(0,yo.useEffect)(()=>{s.current||(s.current=new Gx(u.current,i)),s.current.data(e,n).render(!0)},[e]),(0,yo.useEffect)(()=>()=>s.current.destroy(),[]),yo.default.createElement("div",{ref:u})}var Gx=class{config={margin:{top:5,right:20,bottom:40,left:60},height:400,data:void 0,accessor:n=>n.label,tickFormatX:void 0};get dimensions(){let{top:n,right:i,bottom:u,left:s}=this.config.margin;return{width:this.outerWidth-s-i,height:this.config.height-n-u,top:n,right:i,bottom:u,left:s}}container;svg;main;contents;xAxisG;yAxisG;outerWidth;constructor(n,i={}){this.container=wo.select(n),this.container.selectAll("*").remove(),Object.assign(this.config,i),this.svg=this.container.append("svg"),this.main=this.svg.append("g"),this.contents=this.main.append("g"),this.xAxisG=this.main.append("g").attr("transform",`translate(0, ${this.dimensions.height})`).attr("class","axis x"),this.yAxisG=this.main.append("g").attr("class","axis y"),window.addEventListener("resize",this.resize)}destroy=()=>{window.removeEventListener("resize",this.resize),this.container.selectAll("*").remove()};data=(n,i)=>(this.config.data=n,this.config.accessor=i,this);resize=()=>{this.render()};render=(n=!1)=>{this.outerWidth=this.container.node().getBoundingClientRect().width;let{width:i,height:u,top:s,right:h,bottom:d,left:v}=this.dimensions,x=D=>n?D.transition():D;this.svg.attr("width",i+v+h).attr("height",u+s+d),this.main.attr("transform",`translate(${[v,s]})`);let T=this.config.data.reduce((D,q)=>Math.max(D,q.count),0),M=wo.scaleLinear().domain([0,T]).range([u,0]),O=wo.scalePoint().domain(this.config.data.map(this.config.accessor)).rangeRound([0,i]),te=wo.axisBottom(O).tickSize(10).tickFormat(this.config.tickFormatX);x(this.xAxisG).attr("transform",`translate(0,${u})`).call(te).selectAll("text").attr("dy","1em");let ve=wo.axisLeft(M).tickSize(10).ticks(12);x(this.yAxisG).call(ve);let Ee=wo.line().x(D=>O(this.config.accessor(D))).y(D=>M(D.count)),ie=this.contents.selectAll(".line").data([this.config.data]),I=ie.enter().append("path").attr("class","line").merge(ie);n?I.transition().attrTween("d",function(D){let q=wo.select(this).attr("d");return wo.interpolatePath(q,Ee(D))}):I.attr("d",Ee)}};var Tr=$t(bn());var Za=$t(If()),Xp=$t(Ff()),LM=(0,Xp.interpolateCubehelixLong)((0,Za.cubehelix)(-100,.75,.35),(0,Za.cubehelix)(80,1.5,.8)),OM=(0,Xp.interpolateCubehelixLong)((0,Za.cubehelix)(260,.75,.35),(0,Za.cubehelix)(80,1.5,.8)),Zf=(0,Za.cubehelix)();function Kp(e){(e<0||e>1)&&(e-=Math.floor(e));var n=Math.abs(e-.5);return Zf.h=360*e-100,Zf.s=1.5-1.5*n,Zf.l=.8-.9*n,Zf+""}function DM(e){let[n,i]=[...e].reduce(([u,s],h)=>{let d=(u+h.charCodeAt())%65521;return[d,(s+d)%65521]},[1,0]);return i<<16|n}function Qp(e){return Kp(DM(e)/32640)}var kn=Object.assign({},ea(),Kx(),Zx());Object.defineProperty(kn,"event",{get:()=>ea().event});function Zp({items:e=[]}){let n=(0,Tr.useRef)(),i=(0,Tr.useRef)(),[u,s]=(0,Tr.useState)(!1);return(0,Tr.useEffect)(()=>{let h=e.reduce((x,[T,M]=[])=>(M.forEach(({user:O,count:te},ve)=>{x[O]={count:te,index:ve}}),x),{}),d=[];e.forEach(([x,T,M])=>{Object.entries(M).forEach(([O,te])=>{Object.entries(te).forEach(([ve,Ee])=>{d.push({source:O,target:ve,count:Ee,server:x,activity:h[O]})})})});let v=d.map(x=>[x.source,x.server]).concat(d.map(x=>[x.target,x.server])).map(([x,T])=>[`${x}-${T}`,x,T]).filter((x,T,M)=>M.findIndex(O=>O[0]===x[0])===T).map(([x,T,M])=>({id:x,name:T,server:M,activity:h[T]}));d.forEach(x=>{x.source=x.source+"-"+x.server,x.target=x.target+"-"+x.server}),v.forEach(x=>{let T=M=>d.filter(O=>O[M]===x.id).length;x.activity&&(x.activity.from=T("target"),x.activity.to=T("source"))}),i.current||(i.current=new Jx(n.current)),i.current.data(d,v)},[e]),(0,Tr.useEffect)(()=>{i.current.orbit(u),i.current.render()},[u]),(0,Tr.useEffect)(()=>()=>i.current.destroy(),[]),Tr.default.createElement(Tr.default.Fragment,null,Tr.default.createElement("div",{className:"canvas",ref:n}),Tr.default.createElement("div",{className:"hud"},"orbiters",Tr.default.createElement(Xa,{checked:u,onChange:()=>s(!u)})))}var Jx=class{config={orbit:!1};constructor(n){this.container=kn.select(n),this.container.selectAll("*").remove(),this.canvas=this.container.append("canvas"),window.addEventListener("resize",this.resize),this.ctx=this.canvas.node().getContext("2d"),this.simulation=kn.forceSimulation().on("tick",this.render),this.setSize();let{width:i,height:u}=this;this.canvas.attr("width",i).attr("height",u).call(kn.drag().container(this.canvas.node()).subject(()=>this.simulation.find(kn.event.x,kn.event.y)).on("start",()=>{kn.event.active||this.simulation.alphaTarget(.3).restart(),kn.event.subject.fx=kn.event.subject.x,kn.event.subject.fy=kn.event.subject.y}).on("drag",()=>{kn.event.subject.fx=kn.event.x,kn.event.subject.fy=kn.event.y}).on("end",()=>{kn.event.active||this.simulation.alphaTarget(0),kn.event.subject.fx=null,kn.event.subject.fy=null})),this.container.style("position","relative"),this.popup=this.container.append("div").classed("popup",!0)}destroy=()=>{this.simulation.stop(),window.removeEventListener("resize",this.resize),this.container.selectAll("*").remove()};setSize=()=>{this.width=this.container.node().getBoundingClientRect().width,this.height=800;let{width:n,height:i}=this;Object.assign(this.canvas.node(),{width:n,height:i}),this.setOrbitCharge(),this.simulation.force("center",kn.forceCenter(n/2,i/2))};setOrbitCharge=()=>{let n=this.width<650;this.simulation.force("x",kn.forceX().strength(n?.2:.1)).force("y",kn.forceY().strength(n?.1:.2)).force("charge",kn.forceManyBody().strength(()=>-(this.width/(this.config.orbit?3:7))))};orbit=n=>{this.config.orbit=n,this.setOrbitCharge(),this.simulation.alphaTarget(.1).restart()};data=(n,i)=>{Object.assign(this.config,{links:n,nodes:i}),this.simulation.nodes(i).force("link",kn.forceLink(n).id(s=>s.id)).alphaTarget(.1).restart();let u;return this.focusedNode=void 0,this.canvas.on("mousemove",()=>{let[s,h]=kn.mouse(this.canvas.node()),d=this.simulation.find(s,h);d&&u!==d.id&&(u=d.id,i.forEach(v=>{v.focused=v.id===u}),n.forEach(v=>{v.from=v.source.id===u,v.to=v.target.id===u}),this.focusedNode=d),this.render()}),this};resize=()=>{this.setSize(),this.simulation.alphaTarget(.1).restart(),this.render()};render=()=>{let{width:n,height:i,ctx:u}=this,{links:s=[],nodes:h=[],orbit:d}=this.config,v=d?h:h.filter(({activity:T})=>!!T),x=d?s:s.filter(({activity:T})=>!!T);if(this.focusedNode&&this.focusedNode.activity){let{x:T,y:M,name:O,server:te,activity:{count:ve,index:Ee,to:ie,from:I}}=this.focusedNode;this.popup.classed("visible",!0).style("left",`${T+5}px`).style("top",`${M-18}px`).selectAll("div").data([["name",[O,te]],["stat rank",["rank",Ee+1]],["stat msgs",["msgs",ve]],["stat sent",["sent",ie]],["stat recv",["recv",I]]]).join("div").attr("class",([D])=>D).selectAll("span").data(([D,q])=>q).join("span").text(D=>D)}else this.popup.classed("visible",!1);u.clearRect(0,0,n,i),u.beginPath(),x.forEach(T=>{!T.to&&!T.from&&(u.moveTo(T.source.x,T.source.y),u.lineTo(T.target.x,T.target.y))}),u.strokeStyle="rgba(0, 255, 255, 0.2)",u.stroke(),u.beginPath(),u.strokeStyle="rgba(235, 51, 110, 0.8)",x.forEach(T=>{T.from&&(u.moveTo(T.source.x,T.source.y),u.quadraticCurveTo(T.source.x-10,T.target.y+10,T.target.x,T.target.y))}),u.stroke(),u.beginPath(),u.strokeStyle="rgba(0, 255, 255, 1)",x.forEach(T=>{T.to&&(u.moveTo(T.source.x,T.source.y),u.quadraticCurveTo(T.target.x+10,T.source.y-10,T.target.x,T.target.y))}),u.stroke(),u.beginPath(),v.forEach(T=>{let M=T.focused?8:6;u.moveTo(T.x+M,T.y),u.arc(T.x,T.y,M,0,2*Math.PI)}),u.fillStyle="limegreen",u.fill(),u.fillStyle="black",u.font="12px Hack",v.forEach(T=>{(!T.focused||!T.activity)&&u.fillText(T.name,T.x,T.y)})}};var Yn=$t(bn());function e_(e){return e==1?"once":e==2?"twice":`${e} times`}function AM(e,n){return e+(n>1?"s":"")}function Ja({items:e}){return e.map(n=>Yn.default.createElement("span",{key:n.user,className:"name",style:{color:Qp(n.user)}},n.user)).reduce((n,i,u,s)=>[n,u==s.length-1?(u-1?",":"")+" and ":", ",i])}function IM({stats:e}){let{shouting:n=[],questions:i=[],kicks:u=[],kicked:s=[],avgLineLengthLow:h=[],avgLineLengthHigh:d=[]}=e;return Yn.default.createElement("div",{className:"factoids"},!!n.length&&Yn.default.createElement("p",{className:"factoid"},Yn.default.createElement(Ja,{items:n})," shouted in ",Yn.default.createElement("span",{className:"fact-type"},"ALL CAPS")," "+e_(n[0].count)),!!i.length&&Yn.default.createElement("p",{className:"factoid"},Yn.default.createElement(Ja,{items:i})," asked "+i[0].count+" ",Yn.default.createElement("span",{className:"fact-type"},AM("question",i[0].count))),!!u.length&&Yn.default.createElement("p",{className:"factoid"},Yn.default.createElement(Ja,{items:u}),Yn.default.createElement("span",{className:"fact-type"}," kicked "),u[0].count+" ",u[0].count>1?" people":" person"),!!s.length&&Yn.default.createElement("p",{className:"factoid"},Yn.default.createElement(Ja,{items:s}),Yn.default.createElement("span",{className:"fact-type"}," got kicked "),e_(s[0].count)),!!d.length&&Yn.default.createElement("p",{className:"factoid"},"for ",Yn.default.createElement("span",{className:"fact-type"}," average line length "),Yn.default.createElement(Ja,{items:d})," had "+(0|d[0].average)+" and ",Yn.default.createElement(Ja,{items:h})," had "+(0|h[0].average)))}var t_=IM;function RM({history:e,location:n}){let{fetchAPI:i}=Jo(),[u,s]=(0,en.useState)({servers:[]}),[h,d]=(0,en.useState)({}),[v,x]=(0,en.useState)(!1);return en.default.createElement(en.default.Fragment,null,en.default.createElement(xx,{history:e,location:n,base:u,ready:v,onChange:({month:T,server:M,channel:O})=>{let te=setTimeout(()=>x(!1),150);i("stats/all",{body:{month:T,server:M,channel:O},method:"POST"}).then(ve=>{d(ve),clearTimeout(te),x(!0)}).catch(console.error)},onMonth:({month:T})=>{i("stats/base",{body:{month:T},method:"POST"}).then(s).catch(console.error)}}),en.default.createElement("div",{className:`stats-container${v?"":" loading"}`},en.default.createElement("div",{className:"stats"},en.default.createElement("div",{className:"row"},en.default.createElement("div",{className:"base"},en.default.createElement("span",null,"updated hourly"),en.default.createElement("div",{className:"uptime"},en.default.createElement("h4",null,"uptime"," "),en.default.createElement("span",null,u.uptime||"0","h"))),en.default.createElement("div",{className:"command-chart"},en.default.createElement("h3",{className:"title"},"most used commands"),en.default.createElement($p,{items:h.commands,accessor:T=>T.command}))),en.default.createElement("div",{className:"row"},en.default.createElement("div",{className:"half"},en.default.createElement("h3",{className:"title"},"activity / days"),en.default.createElement(Qf,{items:h.activityDays,accessor:T=>T.day,tickFormatX:T=>+T.slice(8)})),en.default.createElement("div",{className:"half"},en.default.createElement("h3",{className:"title"},"activity / hours"),en.default.createElement(Qf,{items:h.activityHours,accessor:T=>T.hour}))),en.default.createElement(t_,{stats:h})),en.default.createElement("div",{className:"stats-forcesim"},en.default.createElement("h4",null," network graph "),en.default.createElement("span",null,"tracking who talks to popular users"),en.default.createElement("div",{className:"sim"},en.default.createElement(Zp,{items:h.links})))))}var n_=RM;var eu=$t(bn()),r_=$t(Cp());function FM(){let[e,n]=(0,eu.useState)("");return(0,eu.useEffect)(()=>{fetch("https://github.com/api/docs").then(i=>i.text()).then(i=>{n((0,r_.default)(i.split("(__docs__)").pop())),window.location.hash.length&&window.location.replace(window.location.hash)}).catch(console.error)},[]),eu.default.createElement("div",{className:"document",dangerouslySetInnerHTML:{__html:e}})}var i_=FM;var zM=xp(({location:e})=>{let n=e.pathname.split("/")[1];return cr.default.createElement(cr.default.Fragment,null,cr.default.createElement("div",{className:"menu"},cr.default.createElement("h1",null,"nibblr",cr.default.createElement("span",{className:"jr"},"jr")),["cmds","docs","stats"].map(i=>cr.default.createElement(ml,{className:n===i?"active":"",key:i,to:"/"+i},i)),cr.default.createElement("a",{target:"_blank",rel:"noopener",href:"https://www.github.com/kirjavascript/nibblrjr"},"src^")),cr.default.createElement("main",{className:`main-${n}`},cr.default.createElement(Fi,{exact:!0,path:"/",component:rw}),cr.default.createElement(Fi,{path:"/cmds",component:Sw}),cr.default.createElement(Fi,{path:"/stats",component:n_}),cr.default.createElement(Fi,{exact:!0,path:"/docs",component:i_})),cr.default.createElement("img",{src:"/nibblr.gif",className:"nibblr"}))});(0,o_.render)(cr.default.createElement(ew,null,cr.default.createElement(zM,null)),document.body.appendChild(document.createElement("div"))); /* object-assign (c) Sindre Sorhus diff --git a/yarn.lock b/yarn.lock index 1477e62..5eff2de 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,31 +2,274 @@ # yarn lockfile v1 -"@babel/runtime@^7.1.2", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.13": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.16.7.tgz#03ff99f64106588c9c403c6ecb8c3bafbbdff1fa" - integrity sha512-9E9FJowqAsytyOY6LG+1KuueckRL+aQW+mKvXRXnuFGyRAyepJPmEo9vgMfXUA6O9u3IeEdv9MAkppFcaQwogQ== +"@babel/runtime@^7.1.2", "@babel/runtime@^7.12.13": + version "7.19.4" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.19.4.tgz#a42f814502ee467d55b38dd1c256f53a7b885c78" + integrity sha512-EXpLCrk55f+cYqmHsSR+yD/0gAIMxxA9QK9lnQWzhMCvt+YmoBN7Zx94s++Kv0+unHk39vxNO8t+CMA2WSS3wA== dependencies: regenerator-runtime "^0.13.4" -accepts@~1.3.7: - version "1.3.7" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" - integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== +"@colors/colors@1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" + integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== + +"@gar/promisify@^1.1.3": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6" + integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw== + +"@isaacs/string-locale-compare@*", "@isaacs/string-locale-compare@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@isaacs/string-locale-compare/-/string-locale-compare-1.1.0.tgz#291c227e93fd407a96ecd59879a35809120e432b" + integrity sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ== + +"@npmcli/arborist@*", "@npmcli/arborist@^5.6.2": + version "5.6.2" + resolved "https://registry.yarnpkg.com/@npmcli/arborist/-/arborist-5.6.2.tgz#552b554f34777e5dcc8e68ad86cdaeebc0788790" + integrity sha512-Lyj2g+foWKzrwW2bT/RGO982VR9vb5tlvfD88n4PwWJRrDttQbJoIdcQzN9b+NIBhI1/8iEhC5b8far9U0fQxA== + dependencies: + "@isaacs/string-locale-compare" "^1.1.0" + "@npmcli/installed-package-contents" "^1.0.7" + "@npmcli/map-workspaces" "^2.0.3" + "@npmcli/metavuln-calculator" "^3.0.1" + "@npmcli/move-file" "^2.0.0" + "@npmcli/name-from-folder" "^1.0.1" + "@npmcli/node-gyp" "^2.0.0" + "@npmcli/package-json" "^2.0.0" + "@npmcli/query" "^1.2.0" + "@npmcli/run-script" "^4.1.3" + bin-links "^3.0.3" + cacache "^16.1.3" + common-ancestor-path "^1.0.1" + json-parse-even-better-errors "^2.3.1" + json-stringify-nice "^1.1.4" + minimatch "^5.1.0" + mkdirp "^1.0.4" + mkdirp-infer-owner "^2.0.0" + nopt "^6.0.0" + npm-install-checks "^5.0.0" + npm-package-arg "^9.0.0" + npm-pick-manifest "^7.0.2" + npm-registry-fetch "^13.0.0" + npmlog "^6.0.2" + pacote "^13.6.1" + parse-conflict-json "^2.0.1" + proc-log "^2.0.0" + promise-all-reject-late "^1.0.0" + promise-call-limit "^1.0.1" + read-package-json-fast "^2.0.2" + readdir-scoped-modules "^1.1.0" + rimraf "^3.0.2" + semver "^7.3.7" + ssri "^9.0.0" + treeverse "^2.0.0" + walk-up-path "^1.0.0" + +"@npmcli/ci-detect@*": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@npmcli/ci-detect/-/ci-detect-3.0.0.tgz#13195718f652fa2177421948132510ca9f55ca89" + integrity sha512-d6eGMbZ2j6n2b1KpGNbTsKNpCe3NU7xe7stzeXu6BJyLbMZ/FGHnSuwozcHEckGRKF06RO+Z8FpHg7nAbBmuUw== + +"@npmcli/ci-detect@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@npmcli/ci-detect/-/ci-detect-2.0.0.tgz#e63c91bcd4185ac1e85720a34fc48e164ece5b89" + integrity sha512-8yQtQ9ArHh/TzdUDKQwEvwCgpDuhSWTDAbiKMl3854PcT+Dk4UmWaiawuFTLy9n5twzXOBXVflWe+90/ffXQrA== + +"@npmcli/config@*": + version "6.0.0" + resolved "https://registry.yarnpkg.com/@npmcli/config/-/config-6.0.0.tgz#983ca72f149490913b86bfa95050c94ba7898da1" + integrity sha512-PjwgQ9RjqhKkRTD1o81ak0y6XHsrVd0SjX4dJuZVDj5LUPyl4jwJxWSoqwF5+HWtM+U7MxYGsyUNDWU1fsALLw== + dependencies: + "@npmcli/map-workspaces" "^2.0.2" + ini "^3.0.0" + nopt "^6.0.0" + proc-log "^2.0.0" + read-package-json-fast "^3.0.0" + semver "^7.3.5" + walk-up-path "^1.0.0" + +"@npmcli/disparity-colors@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@npmcli/disparity-colors/-/disparity-colors-2.0.0.tgz#cb518166ee21573b96241a3613fef70acb2a60ba" + integrity sha512-FFXGrIjhvd2qSZ8iS0yDvbI7nbjdyT2VNO7wotosjYZM2p2r8PN3B7Om3M5NO9KqW/OVzfzLB3L0V5Vo5QXC7A== dependencies: - mime-types "~2.1.24" - negotiator "0.6.2" + ansi-styles "^4.3.0" -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= +"@npmcli/fs@^2.1.0", "@npmcli/fs@^2.1.1": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-2.1.2.tgz#a9e2541a4a2fec2e69c29b35e6060973da79b865" + integrity sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ== + dependencies: + "@gar/promisify" "^1.1.3" + semver "^7.3.5" + +"@npmcli/fs@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-3.0.0.tgz#00d13fd40d9144fb0ca40faf04f755625856ccd2" + integrity sha512-GdeVD+dnBxzMslTFvnctLX5yIqV4ZNZBWNbo1OejQ++bZpnFNQ1AjOn9Sboi+LzheQbCBU1ts1mhEVduHrcZOQ== + dependencies: + semver "^7.3.5" + +"@npmcli/git@^3.0.0": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@npmcli/git/-/git-3.0.2.tgz#5c5de6b4d70474cf2d09af149ce42e4e1dacb931" + integrity sha512-CAcd08y3DWBJqJDpfuVL0uijlq5oaXaOJEKHKc4wqrjd00gkvTZB+nFuLn+doOOKddaQS9JfqtNoFCO2LCvA3w== + dependencies: + "@npmcli/promise-spawn" "^3.0.0" + lru-cache "^7.4.4" + mkdirp "^1.0.4" + npm-pick-manifest "^7.0.0" + proc-log "^2.0.0" + promise-inflight "^1.0.1" + promise-retry "^2.0.1" + semver "^7.3.5" + which "^2.0.2" + +"@npmcli/installed-package-contents@^1.0.7": + version "1.0.7" + resolved "https://registry.yarnpkg.com/@npmcli/installed-package-contents/-/installed-package-contents-1.0.7.tgz#ab7408c6147911b970a8abe261ce512232a3f4fa" + integrity sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw== + dependencies: + npm-bundled "^1.1.1" + npm-normalize-package-bin "^1.0.1" + +"@npmcli/map-workspaces@*", "@npmcli/map-workspaces@^2.0.2", "@npmcli/map-workspaces@^2.0.3": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@npmcli/map-workspaces/-/map-workspaces-2.0.4.tgz#9e5e8ab655215a262aefabf139782b894e0504fc" + integrity sha512-bMo0aAfwhVwqoVM5UzX1DJnlvVvzDCHae821jv48L1EsrYwfOZChlqWYXEtto/+BkBXetPbEWgau++/brh4oVg== + dependencies: + "@npmcli/name-from-folder" "^1.0.1" + glob "^8.0.1" + minimatch "^5.0.1" + read-package-json-fast "^2.0.3" + +"@npmcli/metavuln-calculator@^3.0.1": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@npmcli/metavuln-calculator/-/metavuln-calculator-3.1.1.tgz#9359bd72b400f8353f6a28a25c8457b562602622" + integrity sha512-n69ygIaqAedecLeVH3KnO39M6ZHiJ2dEv5A7DGvcqCB8q17BGUgW8QaanIkbWUo2aYGZqJaOORTLAlIvKjNDKA== + dependencies: + cacache "^16.0.0" + json-parse-even-better-errors "^2.3.1" + pacote "^13.0.3" + semver "^7.3.5" + +"@npmcli/move-file@^2.0.0": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-2.0.1.tgz#26f6bdc379d87f75e55739bab89db525b06100e4" + integrity sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ== + dependencies: + mkdirp "^1.0.4" + rimraf "^3.0.2" + +"@npmcli/name-from-folder@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@npmcli/name-from-folder/-/name-from-folder-1.0.1.tgz#77ecd0a4fcb772ba6fe927e2e2e155fbec2e6b1a" + integrity sha512-qq3oEfcLFwNfEYOQ8HLimRGKlD8WSeGEdtUa7hmzpR8Sa7haL1KVQrvgO6wqMjhWFFVjgtrh1gIxDz+P8sjUaA== + +"@npmcli/node-gyp@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@npmcli/node-gyp/-/node-gyp-2.0.0.tgz#8c20e53e34e9078d18815c1d2dda6f2420d75e35" + integrity sha512-doNI35wIe3bBaEgrlPfdJPaCpUR89pJWep4Hq3aRdh6gKazIVWfs0jHttvSSoq47ZXgC7h73kDsUl8AoIQUB+A== + +"@npmcli/package-json@*", "@npmcli/package-json@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@npmcli/package-json/-/package-json-2.0.0.tgz#3bbcf4677e21055adbe673d9f08c9f9cde942e4a" + integrity sha512-42jnZ6yl16GzjWSH7vtrmWyJDGVa/LXPdpN2rcUWolFjc9ON2N3uz0qdBbQACfmhuJZ2lbKYtmK5qx68ZPLHMA== + dependencies: + json-parse-even-better-errors "^2.3.1" + +"@npmcli/promise-spawn@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@npmcli/promise-spawn/-/promise-spawn-3.0.0.tgz#53283b5f18f855c6925f23c24e67c911501ef573" + integrity sha512-s9SgS+p3a9Eohe68cSI3fi+hpcZUmXq5P7w0kMlAsWVtR7XbK3ptkZqKT2cK1zLDObJ3sR+8P59sJE0w/KTL1g== + dependencies: + infer-owner "^1.0.4" + +"@npmcli/query@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@npmcli/query/-/query-1.2.0.tgz#46468d583cf013aa92102970700f9555314aabe4" + integrity sha512-uWglsUM3PjBLgTSmZ3/vygeGdvWEIZ3wTUnzGFbprC/RtvQSaT+GAXu1DXmSFj2bD3oOZdcRm1xdzsV2z1YWdw== + dependencies: + npm-package-arg "^9.1.0" + postcss-selector-parser "^6.0.10" + semver "^7.3.7" + +"@npmcli/run-script@*", "@npmcli/run-script@^4.1.0", "@npmcli/run-script@^4.1.3", "@npmcli/run-script@^4.2.0": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@npmcli/run-script/-/run-script-4.2.1.tgz#c07c5c71bc1c70a5f2a06b0d4da976641609b946" + integrity sha512-7dqywvVudPSrRCW5nTHpHgeWnbBtz8cFkOuKrecm6ih+oO9ciydhWt6OF7HlqupRRmB8Q/gECVdB9LMfToJbRg== + dependencies: + "@npmcli/node-gyp" "^2.0.0" + "@npmcli/promise-spawn" "^3.0.0" + node-gyp "^9.0.0" + read-package-json-fast "^2.0.3" + which "^2.0.2" + +"@tootallnate/once@2": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf" + integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A== + +abbrev@*, abbrev@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== + +accepts@~1.3.8: + version "1.3.8" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" + integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== + dependencies: + mime-types "~2.1.34" + negotiator "0.6.3" + +agent-base@6, agent-base@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" + integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== + dependencies: + debug "4" + +agentkeepalive@^4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.2.1.tgz#a7975cbb9f83b367f06c90cc51ff28fe7d499717" + integrity sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA== + dependencies: + debug "^4.1.0" + depd "^1.1.2" + humanize-ms "^1.2.1" + +aggregate-error@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" + integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== + dependencies: + clean-stack "^2.0.0" + indent-string "^4.0.0" ansi-regex@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== +ansi-styles@^4.1.0, ansi-styles@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +ansicolors@*: + version "0.3.2" + resolved "https://registry.yarnpkg.com/ansicolors/-/ansicolors-0.3.2.tgz#665597de86a9ffe3aa9bfbe6cae5c6ea426b4979" + integrity sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg== + +ansistyles@*: + version "0.1.3" + resolved "https://registry.yarnpkg.com/ansistyles/-/ansistyles-0.1.3.tgz#5de60415bda071bb37127854c864f41b23254539" + integrity sha512-6QWEyvMgIXX0eO972y7YPBLSBsq7UWKFAoNNTLGaOJ9bstcEL9sCbcjf96dVfNDdUsRoGOK82vWFJlKApXds7g== + anymatch@~3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" @@ -35,28 +278,38 @@ anymatch@~3.1.2: normalize-path "^3.0.0" picomatch "^2.0.4" -aproba@^1.0.3: - version "1.2.0" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" - integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== +"aproba@^1.0.3 || ^2.0.0", aproba@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" + integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== + +archy@*: + version "1.0.0" + resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" + integrity sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw== -are-we-there-yet@~1.1.2: - version "1.1.7" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz#b15474a932adab4ff8a50d9adfa7e4e926f21146" - integrity sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g== +are-we-there-yet@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz#679df222b278c64f2cdba1175cdc00b0d96164bd" + integrity sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg== dependencies: delegates "^1.0.0" - readable-stream "^2.0.6" + readable-stream "^3.6.0" array-flatten@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" - integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= + integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== + +asap@^2.0.0: + version "2.0.6" + resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" + integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== at-least-node@^1.0.0: version "1.0.0" @@ -74,14 +327,26 @@ base64-js@^1.3.1: integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== better-sqlite3@^7.5.0: - version "7.5.0" - resolved "https://registry.yarnpkg.com/better-sqlite3/-/better-sqlite3-7.5.0.tgz#2a91cb616453f002096743b0e5b66a7021cd1c63" - integrity sha512-6FdG9DoytYGDhLW7VWW1vxjEz7xHkqK6LnaUQYA8d6GHNgZhu9PFX2xwKEEnSBRoT1J4PjTUPeg217ShxNmuPg== + version "7.6.2" + resolved "https://registry.yarnpkg.com/better-sqlite3/-/better-sqlite3-7.6.2.tgz#47cd8cad5b9573cace535f950ac321166bc31384" + integrity sha512-S5zIU1Hink2AH4xPsN0W43T1/AJ5jrPh7Oy07ocuW/AKYYY02GWzz9NH0nbSMn/gw6fDZ5jZ1QsHt1BXAwJ6Lg== dependencies: bindings "^1.5.0" - prebuild-install "^7.0.0" + prebuild-install "^7.1.0" -binary-extensions@^2.0.0: +bin-links@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/bin-links/-/bin-links-3.0.3.tgz#3842711ef3db2cd9f16a5f404a996a12db355a6e" + integrity sha512-zKdnMPWEdh4F5INR07/eBrodC7QrF5JKvqskjz/ZZRXg5YSAZIbn8zGhbhUrElzHBZ2fvEQdOU59RHcTG3GiwA== + dependencies: + cmd-shim "^5.0.0" + mkdirp-infer-owner "^2.0.0" + npm-normalize-package-bin "^2.0.0" + read-cmd-shim "^3.0.0" + rimraf "^3.0.0" + write-file-atomic "^4.0.0" + +binary-extensions@^2.0.0, binary-extensions@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== @@ -102,21 +367,23 @@ bl@^4.0.3: inherits "^2.0.4" readable-stream "^3.4.0" -body-parser@1.19.1, body-parser@^1.19.0: - version "1.19.1" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.1.tgz#1499abbaa9274af3ecc9f6f10396c995943e31d4" - integrity sha512-8ljfQi5eBk8EJfECMrgqNGWPEY5jWP+1IzkzkGdFFEwFQZZyaZ21UqdaHktgiMlH0xLHqIFtE/u2OYE5dOtViA== +body-parser@1.20.1, body-parser@^1.19.0: + version "1.20.1" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.1.tgz#b1812a8912c195cd371a3ee5e66faa2338a5c668" + integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw== dependencies: - bytes "3.1.1" + bytes "3.1.2" content-type "~1.0.4" debug "2.6.9" - depd "~1.1.2" - http-errors "1.8.1" + depd "2.0.0" + destroy "1.2.0" + http-errors "2.0.0" iconv-lite "0.4.24" - on-finished "~2.3.0" - qs "6.9.6" - raw-body "2.4.2" + on-finished "2.4.1" + qs "6.11.0" + raw-body "2.5.1" type-is "~1.6.18" + unpipe "1.0.0" brace-expansion@^1.1.7: version "1.1.11" @@ -126,6 +393,13 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + braces@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" @@ -141,15 +415,87 @@ buffer@^5.5.0: base64-js "^1.3.1" ieee754 "^1.1.13" -bytes@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.1.tgz#3f018291cb4cbad9accb6e6970bca9c8889e879a" - integrity sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg== +builtins@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/builtins/-/builtins-5.0.1.tgz#87f6db9ab0458be728564fa81d876d8d74552fa9" + integrity sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ== + dependencies: + semver "^7.0.0" + +bytes@3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" + integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== + +cacache@*, cacache@^17.0.0: + version "17.0.0" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-17.0.0.tgz#76be0cc410879a37ec08426cbfcc216a5c2f26a6" + integrity sha512-5hYD+c8Ytmymo9b8tPgYWrWfHOzaO8M8jMUkyiEYfeLTwo70MUaD/yA1pNONi3upx02JIn3mtpDuSCXoQgtlHw== + dependencies: + "@npmcli/fs" "^3.0.0" + "@npmcli/move-file" "^2.0.0" + fs-minipass "^2.1.0" + glob "^8.0.1" + lru-cache "^7.7.1" + minipass "^3.1.6" + minipass-collect "^1.0.2" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.4" + p-map "^4.0.0" + promise-inflight "^1.0.1" + ssri "^9.0.0" + tar "^6.1.11" + unique-filename "^2.0.0" + +cacache@^16.0.0, cacache@^16.1.0, cacache@^16.1.3: + version "16.1.3" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-16.1.3.tgz#a02b9f34ecfaf9a78c9f4bc16fceb94d5d67a38e" + integrity sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ== + dependencies: + "@npmcli/fs" "^2.1.0" + "@npmcli/move-file" "^2.0.0" + chownr "^2.0.0" + fs-minipass "^2.1.0" + glob "^8.0.1" + infer-owner "^1.0.4" + lru-cache "^7.7.1" + minipass "^3.1.6" + minipass-collect "^1.0.2" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.4" + mkdirp "^1.0.4" + p-map "^4.0.0" + promise-inflight "^1.0.1" + rimraf "^3.0.2" + ssri "^9.0.0" + tar "^6.1.11" + unique-filename "^2.0.0" + +call-bind@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" + integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.2" + +chalk@*: + version "5.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.1.2.tgz#d957f370038b75ac572471e83be4c5ca9f8e8c45" + integrity sha512-E5CkT4jWURs1Vy5qGJye+XwCkNj7Od3Af7CP6SujMetSMkLs8Do2RWJK5yx1wamHV/op8Rz+9rltjaTQWDnEFQ== + +chalk@^4.0.0, chalk@^4.1.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" chardet@^1.2.1: - version "1.4.0" - resolved "https://registry.yarnpkg.com/chardet/-/chardet-1.4.0.tgz#278748f260219990fb2167dbfb1b253ca26b41ea" - integrity sha512-NpwMDdSIprbYx1CLnfbxEIarI0Z+s9MssEgggMNheGM+WD68yOhV7IEA/3r6tr0yTRgQD0HuZJDw32s99i6L+A== + version "1.5.0" + resolved "https://registry.yarnpkg.com/chardet/-/chardet-1.5.0.tgz#c35b3e9a5994f7574688d1607a2ea9c723ebca95" + integrity sha512-Nj3VehbbFs/1ZnJJJaL3ztEf3Nu5Fs6YV/NBs6lyz/iDDHUU+X9QNk5QgPy1/5Rjtb/cGVf+NyazP7kVEJqKRg== "chokidar@>=3.0.0 <4.0.0": version "3.5.3" @@ -166,20 +512,86 @@ chardet@^1.2.1: optionalDependencies: fsevents "~2.3.2" +chownr@*, chownr@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" + integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== + chownr@^1.1.1: version "1.1.4" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== -code-point-at@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" - integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= +cidr-regex@4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/cidr-regex/-/cidr-regex-4.0.2.tgz#ca8216d1761eed0bd9c4f5e8740f2d7363dd05bb" + integrity sha512-xvqVyyE8emYjipWVxsA+Vcsbt8TbJJsTHbOeMMA5qsmXUu5VZJzNBGwI4rr1IZ0FQI2z7bfry4NNACP5Cf67CA== + dependencies: + ip-regex "^5.0.0" + +clean-stack@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== + +cli-columns@*: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cli-columns/-/cli-columns-4.0.0.tgz#9fe4d65975238d55218c41bd2ed296a7fa555646" + integrity sha512-XW2Vg+w+L9on9wtwKpyzluIPCWXjaBahI7mTcYjx+BVIYD9c3yqcv/yKC7CmdCZat4rq2yiE1UMSJC5ivKfMtQ== + dependencies: + string-width "^4.2.3" + strip-ansi "^6.0.1" + +cli-table3@*: + version "0.6.3" + resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.3.tgz#61ab765aac156b52f222954ffc607a6f01dbeeb2" + integrity sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg== + dependencies: + string-width "^4.2.0" + optionalDependencies: + "@colors/colors" "1.5.0" + +clone@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== + +cmd-shim@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-5.0.0.tgz#8d0aaa1a6b0708630694c4dbde070ed94c707724" + integrity sha512-qkCtZ59BidfEwHltnJwkyVZn+XQojdAySM1D1gSeh11Z4pW1Kpolkyo53L5noc0nrxmIvyFwTmJRo4xs7FFLPw== + dependencies: + mkdirp-infer-owner "^2.0.0" codemirror@^5.52.2: - version "5.65.1" - resolved "https://registry.yarnpkg.com/codemirror/-/codemirror-5.65.1.tgz#5988a812c974c467f964bcc1a00c944e373de502" - integrity sha512-s6aac+DD+4O2u1aBmdxhB7yz2XU7tG3snOyQ05Kxifahz7hoxnfxIRHxiCSEv3TUC38dIVH8G+lZH9UWSfGQxA== + version "5.65.9" + resolved "https://registry.yarnpkg.com/codemirror/-/codemirror-5.65.9.tgz#ec70c92aa206ee4c9853d5f1e7c4ed356cdab68c" + integrity sha512-19Jox5sAKpusTDgqgKB5dawPpQcY+ipQK7xoEI+MVucEF9qqFaXpeqY1KaoyGBso/wHQoDa4HMMxMjdsS3Zzzw== + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +color-support@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" + integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== + +columnify@*: + version "1.6.0" + resolved "https://registry.yarnpkg.com/columnify/-/columnify-1.6.0.tgz#6989531713c9008bb29735e61e37acf5bd553cf3" + integrity sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q== + dependencies: + strip-ansi "^6.0.1" + wcwidth "^1.0.0" combined-stream@^1.0.8: version "1.0.8" @@ -193,15 +605,20 @@ commander@2: resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== +common-ancestor-path@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz#4f7d2d1394d91b7abdf51871c62f71eadb0182a7" + integrity sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w== + concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== -console-control-strings@^1.0.0, console-control-strings@~1.1.0: +console-control-strings@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" - integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= + integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ== content-disposition@0.5.4: version "0.5.4" @@ -218,17 +635,12 @@ content-type@~1.0.4: cookie-signature@1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= - -cookie@0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.1.tgz#afd713fe26ebd21ba95ceb61f9a8116e50a537d1" - integrity sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA== + integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== -core-util-is@~1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" - integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== +cookie@0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" + integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== css-tree@^1.1.2: version "1.1.3" @@ -238,6 +650,11 @@ css-tree@^1.1.2: mdn-data "2.0.14" source-map "^0.6.1" +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + d3-array@1, d3-array@^1.1.1, d3-array@^1.2.0: version "1.2.4" resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-1.2.4.tgz#635ce4d5eea759f6f605863dbcfc30edc737f71f" @@ -346,9 +763,9 @@ d3-hierarchy@1: integrity sha512-j8tPxlqh1srJHAtxfvOUwKNYJkQuBFdM1+JAUfq6xqH5eAqf93L7oG1NVqDa4CpFZNvnNKtCYEUC8KY9yEn9lQ== d3-interpolate-path@^2.1.1: - version "2.2.3" - resolved "https://registry.yarnpkg.com/d3-interpolate-path/-/d3-interpolate-path-2.2.3.tgz#7a2a906231c316c5166872c13400aae918e604fa" - integrity sha512-1i1WUmOzSHI7nYqhjnL9v/gA5VQNgMMfX4u1Emv2vKmUUQsRPx/Ghl/AvcyOq3GRINW8iSz5elCdoHX0imyWCg== + version "2.3.0" + resolved "https://registry.yarnpkg.com/d3-interpolate-path/-/d3-interpolate-path-2.3.0.tgz#ff919acb52968619f4b0dc5fa95653e581d5a0ca" + integrity sha512-tZYtGXxBmbgHsIc9Wms6LS5u4w6KbP8C09a4/ZYc4KLMYYqub57rRBUgpUr2CIarIrJEpdAWWxWQvofgaMpbKQ== d3-interpolate@1: version "1.4.0" @@ -503,6 +920,18 @@ debug@2.6.9: dependencies: ms "2.0.0" +debug@4, debug@^4.1.0, debug@^4.3.3: + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + +debuglog@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" + integrity sha512-syBZ+rnAK3EgMsH2aYEOLUW7mZSY9Gb+0wUMCFsZvcmiz+HigA0LOcq/HoQqVuGG+EKykunc7QG2bzrponfaSw== + decompress-response@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" @@ -515,35 +944,60 @@ deep-extend@^0.6.0: resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== +defaults@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.4.tgz#b0b02062c1e2aa62ff5d9528f0f98baa90978d7a" + integrity sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A== + dependencies: + clone "^1.0.2" + delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== delegates@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" - integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= + integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ== + +depd@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== -depd@~1.1.2: +depd@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" - integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= + integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== + +destroy@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" + integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== -destroy@~1.0.4: +detect-libc@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.1.tgz#e1897aa88fa6ad197862937fbc0441ef352ee0cd" + integrity sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w== + +dezalgo@^1.0.0: version "1.0.4" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" - integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= + resolved "https://registry.yarnpkg.com/dezalgo/-/dezalgo-1.0.4.tgz#751235260469084c132157dfa857f386d4c33d81" + integrity sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig== + dependencies: + asap "^2.0.0" + wrappy "1" -detect-libc@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" - integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= +diff@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-5.1.0.tgz#bc52d298c5ea8df9194800224445ed43ffc87e40" + integrity sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw== ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= + integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== emoji-regex@^8.0.0: version "8.0.0" @@ -553,7 +1007,14 @@ emoji-regex@^8.0.0: encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== + +encoding@^0.1.13: + version "0.1.13" + resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" + integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== + dependencies: + iconv-lite "^0.6.2" end-of-stream@^1.1.0, end-of-stream@^1.4.1: version "1.4.4" @@ -562,6 +1023,16 @@ end-of-stream@^1.1.0, end-of-stream@^1.4.1: dependencies: once "^1.4.0" +env-paths@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" + integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== + +err-code@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/err-code/-/err-code-2.0.3.tgz#23c2f3b756ffdfc608d30e27c9a941024807e7f9" + integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA== + esbuild-android-arm64@0.13.15: version "0.13.15" resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.13.15.tgz#3fc3ff0bab76fe35dd237476b5d2b32bb20a3d44" @@ -683,12 +1154,12 @@ esbuild@^0.13.12: escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== etag@~1.8.1: version "1.8.1" resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" - integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= + integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== expand-template@^2.0.3: version "2.0.3" @@ -696,41 +1167,47 @@ expand-template@^2.0.3: integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== express@^4.16.2: - version "4.17.2" - resolved "https://registry.yarnpkg.com/express/-/express-4.17.2.tgz#c18369f265297319beed4e5558753cc8c1364cb3" - integrity sha512-oxlxJxcQlYwqPWKVJJtvQiwHgosH/LrLSPA+H4UxpyvSS6jC5aH+5MoHFM+KABgTOt0APue4w66Ha8jCUo9QGg== + version "4.18.2" + resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59" + integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ== dependencies: - accepts "~1.3.7" + accepts "~1.3.8" array-flatten "1.1.1" - body-parser "1.19.1" + body-parser "1.20.1" content-disposition "0.5.4" content-type "~1.0.4" - cookie "0.4.1" + cookie "0.5.0" cookie-signature "1.0.6" debug "2.6.9" - depd "~1.1.2" + depd "2.0.0" encodeurl "~1.0.2" escape-html "~1.0.3" etag "~1.8.1" - finalhandler "~1.1.2" + finalhandler "1.2.0" fresh "0.5.2" + http-errors "2.0.0" merge-descriptors "1.0.1" methods "~1.1.2" - on-finished "~2.3.0" + on-finished "2.4.1" parseurl "~1.3.3" path-to-regexp "0.1.7" proxy-addr "~2.0.7" - qs "6.9.6" + qs "6.11.0" range-parser "~1.2.1" safe-buffer "5.2.1" - send "0.17.2" - serve-static "1.14.2" + send "0.18.0" + serve-static "1.15.0" setprototypeof "1.2.0" - statuses "~1.5.0" + statuses "2.0.1" type-is "~1.6.18" utils-merge "1.0.1" vary "~1.1.2" +fastest-levenshtein@*: + version "1.0.16" + resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz#210e61b6ff181de91ea9b3d1b84fdedd47e034e5" + integrity sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg== + file-uri-to-path@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" @@ -743,17 +1220,17 @@ fill-range@^7.0.1: dependencies: to-regex-range "^5.0.1" -finalhandler@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" - integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== +finalhandler@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" + integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== dependencies: debug "2.6.9" encodeurl "~1.0.2" escape-html "~1.0.3" - on-finished "~2.3.0" + on-finished "2.4.1" parseurl "~1.3.3" - statuses "~1.5.0" + statuses "2.0.1" unpipe "~1.0.0" form-data@^3.0.0: @@ -773,7 +1250,7 @@ forwarded@0.2.0: fresh@0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= + integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== fs-constants@^1.0.0: version "1.0.0" @@ -790,34 +1267,55 @@ fs-extra@^9.0.1: jsonfile "^6.0.1" universalify "^2.0.0" +fs-minipass@^2.0.0, fs-minipass@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" + integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== + dependencies: + minipass "^3.0.0" + fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== fsevents@~2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== -gauge@~2.7.3: - version "2.7.4" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" - integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +gauge@^4.0.3: + version "4.0.4" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-4.0.4.tgz#52ff0652f2bbf607a989793d53b751bef2328dce" + integrity sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg== + dependencies: + aproba "^1.0.3 || ^2.0.0" + color-support "^1.1.3" + console-control-strings "^1.1.0" + has-unicode "^2.0.1" + signal-exit "^3.0.7" + string-width "^4.2.3" + strip-ansi "^6.0.1" + wide-align "^1.1.5" + +get-intrinsic@^1.0.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.3.tgz#063c84329ad93e83893c7f4f243ef63ffa351385" + integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A== dependencies: - aproba "^1.0.3" - console-control-strings "^1.0.0" - has-unicode "^2.0.0" - object-assign "^4.1.0" - signal-exit "^3.0.0" - string-width "^1.0.1" - strip-ansi "^3.0.1" - wide-align "^1.1.0" + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.3" github-from-package@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" - integrity sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4= + integrity sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw== glob-parent@~5.1.2: version "5.1.2" @@ -826,34 +1324,55 @@ glob-parent@~5.1.2: dependencies: is-glob "^4.0.1" -glob@^7.1.3: - version "7.2.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" - integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== +glob@*, glob@^8.0.1: + version "8.0.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-8.0.3.tgz#415c6eb2deed9e502c68fa44a272e6da6eeca42e" + integrity sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" inherits "2" - minimatch "^3.0.4" + minimatch "^5.0.1" once "^1.3.0" - path-is-absolute "^1.0.0" -global-npm@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/global-npm/-/global-npm-0.3.0.tgz#7c5115394a677d1245c4e3ba0b78bb6752797ee0" - integrity sha1-fFEVOUpnfRJFxOO6C3i7Z1J5fuA= +glob@^7.1.3, glob@^7.1.4: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== dependencies: - which "^1.2.1" + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + +graceful-fs@*, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.6: + version "4.2.10" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" + integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -graceful-fs@^4.1.6, graceful-fs@^4.2.0: - version "4.2.9" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.9.tgz#041b05df45755e587a24942279b9d113146e1c96" - integrity sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ== +has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== -has-unicode@^2.0.0: +has-unicode@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" - integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= + integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ== + +has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" history@^4.9.0: version "4.10.1" @@ -874,17 +1393,60 @@ hoist-non-react-statics@^3.1.0: dependencies: react-is "^16.7.0" -http-errors@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.8.1.tgz#7c3f28577cbc8a207388455dbd62295ed07bd68c" - integrity sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g== +hosted-git-info@*: + version "6.0.0" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-6.0.0.tgz#2e9b726a8ac0d68a907c6a8dc4abecac5e0ed69a" + integrity sha512-NURrKJX36ihI69iCqcvN4uuIk9fHcc1C+uax/5fPh4Tr5WJnATir+QM/CMJNKrcOOvxQDsAdS5C9oJliM80X7g== + dependencies: + lru-cache "^7.5.1" + +hosted-git-info@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-5.1.0.tgz#9786123f92ef3627f24abc3f15c20d98ec4a6594" + integrity sha512-Ek+QmMEqZF8XrbFdwoDjSbm7rT23pCgEMOJmz6GPk/s4yH//RQfNPArhIxbguNxROq/+5lNBwCDHMhA903Kx1Q== + dependencies: + lru-cache "^7.5.1" + +http-cache-semantics@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" + integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== + +http-errors@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" + integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== dependencies: - depd "~1.1.2" + depd "2.0.0" inherits "2.0.4" setprototypeof "1.2.0" - statuses ">= 1.5.0 < 2" + statuses "2.0.1" toidentifier "1.0.1" +http-proxy-agent@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz#5129800203520d434f142bc78ff3c170800f2b43" + integrity sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w== + dependencies: + "@tootallnate/once" "2" + agent-base "6" + debug "4" + +https-proxy-agent@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" + integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== + dependencies: + agent-base "6" + debug "4" + +humanize-ms@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" + integrity sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ== + dependencies: + ms "^2.0.0" + iconv-lite@0.4, iconv-lite@0.4.24: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" @@ -904,29 +1466,79 @@ ieee754@^1.1.13: resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== +ignore-walk@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-5.0.1.tgz#5f199e23e1288f518d90358d461387788a154776" + integrity sha512-yemi4pMf51WKT7khInJqAvsIGzoqYXblnsz0ql8tM+yi1EKYTY1evX4NAbJrLL/Aanr2HyZeluqU+Oi7MGHokw== + dependencies: + minimatch "^5.0.1" + immutable@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.1.0.tgz#f795787f0db780183307b9eb2091fcac1f6fafef" + integrity sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ== + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== + +indent-string@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.0.0.tgz#b86f78de6adef3608395efb269a91462797e2c23" - integrity sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw== + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + +infer-owner@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" + integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== dependencies: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: +inherits@2, inherits@2.0.4, inherits@^2.0.3, inherits@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== +ini@*, ini@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/ini/-/ini-3.0.1.tgz#c76ec81007875bc44d544ff7a11a55d12294102d" + integrity sha512-it4HyVAUTKBc6m8e1iXWvXSTdndF7HbdN713+kvLrymxTaU4AUBWrJ4vEooP+V7fexnVD3LKcBshjGGPefSMUQ== + ini@~1.3.0: version "1.3.8" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== +init-package-json@*: + version "3.0.2" + resolved "https://registry.yarnpkg.com/init-package-json/-/init-package-json-3.0.2.tgz#f5bc9bac93f2bdc005778bc2271be642fecfcd69" + integrity sha512-YhlQPEjNFqlGdzrBfDNRLhvoSgX7iQRgSxgsNknRQ9ITXFT7UMfVMWhBTOh2Y+25lRnGrv5Xz8yZwQ3ACR6T3A== + dependencies: + npm-package-arg "^9.0.1" + promzard "^0.3.0" + read "^1.0.7" + read-package-json "^5.0.0" + semver "^7.3.5" + validate-npm-package-license "^3.0.4" + validate-npm-package-name "^4.0.0" + +ip-regex@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-5.0.0.tgz#cd313b2ae9c80c07bd3851e12bf4fa4dc5480632" + integrity sha512-fOCG6lhoKKakwv+C6KdsOnGvgXnmgfmp0myi3bcNwj3qfwPAxRKWEuFhvEFF7ceYIz6+1jRZ+yguLFAmUNPEfw== + +ip@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ip/-/ip-2.0.0.tgz#4cf4ab182fee2314c75ede1276f8c80b479936da" + integrity sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ== + ipaddr.js@1.9.1: version "1.9.1" resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" @@ -954,17 +1566,24 @@ is-binary-path@~2.1.0: dependencies: binary-extensions "^2.0.0" +is-cidr@*: + version "5.0.2" + resolved "https://registry.yarnpkg.com/is-cidr/-/is-cidr-5.0.2.tgz#8805dce4ac503dcb3270aa7e8987fcc6f400fa58" + integrity sha512-cCaw4czL00EUoO+mbOt2cUSFq8DQ/3rfWw6foy48TI52+j/tKTtlUet14UnWryHfY9bNbpHLqXkd/jnF600PPQ== + dependencies: + cidr-regex "4.0.2" + +is-core-module@^2.8.1: + version "2.10.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.10.0.tgz#9012ede0a91c69587e647514e1d5277019e728ed" + integrity sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg== + dependencies: + has "^1.0.3" + is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= - -is-fullwidth-code-point@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" - integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= - dependencies: - number-is-nan "^1.0.0" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== is-fullwidth-code-point@^3.0.0: version "3.0.0" @@ -978,6 +1597,11 @@ is-glob@^4.0.1, is-glob@~4.0.1: dependencies: is-extglob "^2.1.1" +is-lambda@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5" + integrity sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ== + is-number@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" @@ -986,28 +1610,38 @@ is-number@^7.0.0: isarray@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" - integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= - -isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== -isolated-vm@^4.3.5: - version "4.3.6" - resolved "https://registry.yarnpkg.com/isolated-vm/-/isolated-vm-4.3.6.tgz#443672194c96fc077f219d6c115d50b1706d9611" - integrity sha512-YvioBOU6wUNSTOWGgX/pDPLF9/WaSLsX8GqL7RlFCKzBXTXzyfG+T4JNIRNEiowtZk5H5ekJSUFqbx2QHSpJDQ== +isolated-vm@^4.4.1: + version "4.4.1" + resolved "https://registry.yarnpkg.com/isolated-vm/-/isolated-vm-4.4.1.tgz#651ce31e435e769b2a356bb03db2553a478acebe" + integrity sha512-5aDwxQGm78vHS+qJeUli2ILroG7OS/k3D/Mc0kcT9vyujiL4bV7PYYix1mAvuBm3v44nz2qcfAOqgAbhuACc/w== "js-tokens@^3.0.0 || ^4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== +json-parse-even-better-errors@*, json-parse-even-better-errors@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.0.tgz#2cb2ee33069a78870a0c7e3da560026b89669cf7" + integrity sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA== + +json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + +json-stringify-nice@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/json-stringify-nice/-/json-stringify-nice-1.1.4.tgz#2c937962b80181d3f317dd39aa323e14f5a60a67" + integrity sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw== + jsonfile@^6.0.1: version "6.1.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" @@ -1017,6 +1651,134 @@ jsonfile@^6.0.1: optionalDependencies: graceful-fs "^4.1.6" +jsonparse@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" + integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== + +just-diff-apply@^5.2.0: + version "5.4.1" + resolved "https://registry.yarnpkg.com/just-diff-apply/-/just-diff-apply-5.4.1.tgz#1debed059ad009863b4db0e8d8f333d743cdd83b" + integrity sha512-AAV5Jw7tsniWwih8Ly3fXxEZ06y+6p5TwQMsw0dzZ/wPKilzyDgdAnL0Ug4NNIquPUOh1vfFWEHbmXUqM5+o8g== + +just-diff@^5.0.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/just-diff/-/just-diff-5.1.1.tgz#8da6414342a5ed6d02ccd64f5586cbbed3146202" + integrity sha512-u8HXJ3HlNrTzY7zrYYKjNEfBlyjqhdBkoyTVdjtn7p02RJD5NvR8rIClzeGA7t+UYP1/7eAkWNLU0+P3QrEqKQ== + +libnpmaccess@*: + version "6.0.4" + resolved "https://registry.yarnpkg.com/libnpmaccess/-/libnpmaccess-6.0.4.tgz#2dd158bd8a071817e2207d3b201d37cf1ad6ae6b" + integrity sha512-qZ3wcfIyUoW0+qSFkMBovcTrSGJ3ZeyvpR7d5N9pEYv/kXs8sHP2wiqEIXBKLFrZlmM0kR0RJD7mtfLngtlLag== + dependencies: + aproba "^2.0.0" + minipass "^3.1.1" + npm-package-arg "^9.0.1" + npm-registry-fetch "^13.0.0" + +libnpmdiff@*: + version "4.0.5" + resolved "https://registry.yarnpkg.com/libnpmdiff/-/libnpmdiff-4.0.5.tgz#ffaf93fa9440ea759444b8830fdb5c661b09a7c0" + integrity sha512-9fICQIzmH892UwHHPmb+Seup50UIBWcMIK2FdxvlXm9b4kc1nSH0b/BuY1mORJQtB6ydPMnn+BLzOTmd/SKJmw== + dependencies: + "@npmcli/disparity-colors" "^2.0.0" + "@npmcli/installed-package-contents" "^1.0.7" + binary-extensions "^2.2.0" + diff "^5.1.0" + minimatch "^5.0.1" + npm-package-arg "^9.0.1" + pacote "^13.6.1" + tar "^6.1.0" + +libnpmexec@*: + version "4.0.13" + resolved "https://registry.yarnpkg.com/libnpmexec/-/libnpmexec-4.0.13.tgz#6688bd6c02cac31a32d2e56680c3884948cbf453" + integrity sha512-MGi6eD6zqZ1V8VCJenWRc2+rWaFiW/Vkr5Aa/cQAd3duWNvXen9sm101M6ww5ER5PmsT+qX2aZOA3A9ZPfJQXg== + dependencies: + "@npmcli/arborist" "^5.6.2" + "@npmcli/ci-detect" "^2.0.0" + "@npmcli/fs" "^2.1.1" + "@npmcli/run-script" "^4.2.0" + chalk "^4.1.0" + mkdirp-infer-owner "^2.0.0" + npm-package-arg "^9.0.1" + npmlog "^6.0.2" + pacote "^13.6.1" + proc-log "^2.0.0" + read "^1.0.7" + read-package-json-fast "^2.0.2" + semver "^7.3.7" + walk-up-path "^1.0.0" + +libnpmfund@*: + version "3.0.4" + resolved "https://registry.yarnpkg.com/libnpmfund/-/libnpmfund-3.0.4.tgz#be1fd46bcfa9432660f98d935135d7ee3e620239" + integrity sha512-azKUVFkL27AsvzEzLKMHX/L8j/GE2TL6eZ6KIdc9hsvleoNLT+Y6XO9w9v7JWwg03smZK9dbqwvnYZzO3vzrIA== + dependencies: + "@npmcli/arborist" "^5.6.2" + +libnpmhook@*: + version "8.0.4" + resolved "https://registry.yarnpkg.com/libnpmhook/-/libnpmhook-8.0.4.tgz#6c58e5fe763ff5d600ae9c20457ea9a69d1f7d87" + integrity sha512-nuD6e+Nx0OprjEi0wOeqASMl6QIH235th/Du2/8upK3evByFhzIgdfOeP1OhstavW4xtsl0hk5Vw4fAWWuSUgA== + dependencies: + aproba "^2.0.0" + npm-registry-fetch "^13.0.0" + +libnpmorg@*: + version "4.0.4" + resolved "https://registry.yarnpkg.com/libnpmorg/-/libnpmorg-4.0.4.tgz#2a01d49372cf0df90d79a61e69bddaf2ed704311" + integrity sha512-1bTpD7iub1rDCsgiBguhJhiDufLQuc8DEti20euqsXz9O0ncXVpCYqf2SMmHR4GEdmAvAj2r7FMiyA9zGdaTpA== + dependencies: + aproba "^2.0.0" + npm-registry-fetch "^13.0.0" + +libnpmpack@*: + version "4.1.3" + resolved "https://registry.yarnpkg.com/libnpmpack/-/libnpmpack-4.1.3.tgz#025cfe39829acd8260662bf259e3a9331fc1e4b2" + integrity sha512-rYP4X++ME3ZiFO+2iN3YnXJ4LB4Gsd0z5cgszWJZxaEpDN4lRIXirSyynGNsN/hn4taqnlxD+3DPlFDShvRM8w== + dependencies: + "@npmcli/run-script" "^4.1.3" + npm-package-arg "^9.0.1" + pacote "^13.6.1" + +libnpmpublish@*: + version "6.0.5" + resolved "https://registry.yarnpkg.com/libnpmpublish/-/libnpmpublish-6.0.5.tgz#5a894f3de2e267d62f86be2a508e362599b5a4b1" + integrity sha512-LUR08JKSviZiqrYTDfywvtnsnxr+tOvBU0BF8H+9frt7HMvc6Qn6F8Ubm72g5hDTHbq8qupKfDvDAln2TVPvFg== + dependencies: + normalize-package-data "^4.0.0" + npm-package-arg "^9.0.1" + npm-registry-fetch "^13.0.0" + semver "^7.3.7" + ssri "^9.0.0" + +libnpmsearch@*: + version "5.0.4" + resolved "https://registry.yarnpkg.com/libnpmsearch/-/libnpmsearch-5.0.4.tgz#b32aa2b23051c00cdcc0912274d0d416e6655d81" + integrity sha512-XHDmsvpN5+pufvGnfLRqpy218gcGGbbbXR6wPrDJyd1em6agKdYByzU5ccskDHH9iVm2UeLydpDsW1ksYuU0cg== + dependencies: + npm-registry-fetch "^13.0.0" + +libnpmteam@*: + version "4.0.4" + resolved "https://registry.yarnpkg.com/libnpmteam/-/libnpmteam-4.0.4.tgz#ac26068808d93b1051d926457db14e4b3ff669ef" + integrity sha512-rzKSwi6MLzwwevbM/vl+BBQTErgn24tCfgPUdzBlszrw3j5necOu7WnTzgvZMDv6maGUwec6Ut1rxszOgH0l+Q== + dependencies: + aproba "^2.0.0" + npm-registry-fetch "^13.0.0" + +libnpmversion@*: + version "3.0.7" + resolved "https://registry.yarnpkg.com/libnpmversion/-/libnpmversion-3.0.7.tgz#e4c6c07ee28cf351ce1e2293a5ac9922b09ea94d" + integrity sha512-O0L4eNMUIMQ+effi1HsZPKp2N6wecwqGqB8PvkvmLPWN7EsdabdzAVG48nv0p/OjlbIai5KQg/L+qMMfCA4ZjA== + dependencies: + "@npmcli/git" "^3.0.0" + "@npmcli/run-script" "^4.1.3" + json-parse-even-better-errors "^2.3.1" + proc-log "^2.0.0" + semver "^7.3.7" + loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.1, loose-envify@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" @@ -1031,6 +1793,55 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" +lru-cache@^7.4.4, lru-cache@^7.5.1, lru-cache@^7.7.1: + version "7.14.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.14.0.tgz#21be64954a4680e303a09e9468f880b98a0b3c7f" + integrity sha512-EIRtP1GrSJny0dqb50QXRUNBxHJhcpxHC++M5tD7RYbvLLn5KVWKsbyswSSqDuU15UFi3bgTQIY8nhDMeF6aDQ== + +make-fetch-happen@*: + version "11.0.0" + resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-11.0.0.tgz#192e29e3be8290db9cc49cebc8b8bd1af9228384" + integrity sha512-oVk/+BQuW+fUB/RjF8jUtgsVI9wMzcHyahdea6gcshVLWQygW4OlxqEibCEh9XamMVbrXVOAH9dCZrzdLQ1lwg== + dependencies: + agentkeepalive "^4.2.1" + cacache "^17.0.0" + http-cache-semantics "^4.1.0" + http-proxy-agent "^5.0.0" + https-proxy-agent "^5.0.0" + is-lambda "^1.0.1" + lru-cache "^7.7.1" + minipass "^3.1.6" + minipass-collect "^1.0.2" + minipass-fetch "^2.0.3" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.4" + negotiator "^0.6.3" + promise-retry "^2.0.1" + socks-proxy-agent "^7.0.0" + ssri "^9.0.0" + +make-fetch-happen@^10.0.3, make-fetch-happen@^10.0.6: + version "10.2.1" + resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz#f5e3835c5e9817b617f2770870d9492d28678164" + integrity sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w== + dependencies: + agentkeepalive "^4.2.1" + cacache "^16.1.0" + http-cache-semantics "^4.1.0" + http-proxy-agent "^5.0.0" + https-proxy-agent "^5.0.0" + is-lambda "^1.0.1" + lru-cache "^7.7.1" + minipass "^3.1.6" + minipass-collect "^1.0.2" + minipass-fetch "^2.0.3" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.4" + negotiator "^0.6.3" + promise-retry "^2.0.1" + socks-proxy-agent "^7.0.0" + ssri "^9.0.0" + marked@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/marked/-/marked-0.7.0.tgz#b64201f051d271b1edc10a04d1ae9b74bb8e5c0e" @@ -1044,29 +1855,29 @@ mdn-data@2.0.14: media-typer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= + integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== merge-descriptors@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" - integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= + integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== methods@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" - integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= + integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== -mime-db@1.51.0: - version "1.51.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.51.0.tgz#d9ff62451859b18342d960850dc3cfb77e63fb0c" - integrity sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g== +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== -mime-types@^2.1.12, mime-types@~2.1.24: - version "2.1.34" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.34.tgz#5a712f9ec1503511a945803640fafe09d3793c24" - integrity sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A== +mime-types@^2.1.12, mime-types@~2.1.24, mime-types@~2.1.34: + version "2.1.35" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== dependencies: - mime-db "1.51.0" + mime-db "1.52.0" mime@1.6.0: version "1.6.0" @@ -1078,55 +1889,140 @@ mimic-response@^3.1.0: resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== -mini-create-react-context@^0.4.0: - version "0.4.1" - resolved "https://registry.yarnpkg.com/mini-create-react-context/-/mini-create-react-context-0.4.1.tgz#072171561bfdc922da08a60c2197a497cc2d1d5e" - integrity sha512-YWCYEmd5CQeHGSAKrYvXgmzzkrvssZcuuQDDeqkT+PziKGMgE+0MCCtcKbROzocGBG1meBLl2FotlRwf4gAzbQ== +minimatch@^3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== dependencies: - "@babel/runtime" "^7.12.1" - tiny-warning "^1.0.3" + brace-expansion "^1.1.7" -minimatch@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== +minimatch@^5.0.1, minimatch@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.0.tgz#1717b464f4971b144f6aabe8f2d0b8e4511e09c7" + integrity sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg== dependencies: - brace-expansion "^1.1.7" + brace-expansion "^2.0.1" minimist@^1.2.0, minimist@^1.2.3: - version "1.2.5" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" - integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + version "1.2.7" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.7.tgz#daa1c4d91f507390437c6a8bc01078e7000c4d18" + integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g== + +minipass-collect@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" + integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA== + dependencies: + minipass "^3.0.0" + +minipass-fetch@^2.0.3: + version "2.1.2" + resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-2.1.2.tgz#95560b50c472d81a3bc76f20ede80eaed76d8add" + integrity sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA== + dependencies: + minipass "^3.1.6" + minipass-sized "^1.0.3" + minizlib "^2.1.2" + optionalDependencies: + encoding "^0.1.13" + +minipass-flush@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" + integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== + dependencies: + minipass "^3.0.0" + +minipass-json-stream@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz#7edbb92588fbfc2ff1db2fc10397acb7b6b44aa7" + integrity sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg== + dependencies: + jsonparse "^1.3.1" + minipass "^3.0.0" + +minipass-pipeline@*, minipass-pipeline@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c" + integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== + dependencies: + minipass "^3.0.0" + +minipass-sized@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/minipass-sized/-/minipass-sized-1.0.3.tgz#70ee5a7c5052070afacfbc22977ea79def353b70" + integrity sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g== + dependencies: + minipass "^3.0.0" + +minipass@*, minipass@^3.0.0, minipass@^3.1.1, minipass@^3.1.6: + version "3.3.4" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.4.tgz#ca99f95dd77c43c7a76bf51e6d200025eee0ffae" + integrity sha512-I9WPbWHCGu8W+6k1ZiGpPu0GkoKBeorkfKNuAFBNS1HNFJvke82sxvI5bzcCNpWPorkOO5QQ+zomzzwRxejXiw== + dependencies: + yallist "^4.0.0" + +minizlib@^2.1.1, minizlib@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" + integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== + dependencies: + minipass "^3.0.0" + yallist "^4.0.0" mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3: version "0.5.3" resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== -ms@2.0.0: +mkdirp-infer-owner@*, mkdirp-infer-owner@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + resolved "https://registry.yarnpkg.com/mkdirp-infer-owner/-/mkdirp-infer-owner-2.0.0.tgz#55d3b368e7d89065c38f32fd38e638f0ab61d316" + integrity sha512-sdqtiFt3lkOaYvTXSRIUjkIdPTcxgv5+fgqYE/5qgwdw12cOrAuzzgzvVExIkH/ul1oeHN3bCLOWSG3XOqbKKw== + dependencies: + chownr "^2.0.0" + infer-owner "^1.0.4" + mkdirp "^1.0.3" -ms@2.1.3: +mkdirp@*, mkdirp@^1.0.3, mkdirp@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + +ms@*, ms@2.1.3, ms@^2.0.0: version "2.1.3" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +mute-stream@~0.0.4: + version "0.0.8" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" + integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== + napi-build-utils@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-1.0.2.tgz#b1fddc0b2c46e380a0b7a76f984dd47c41a13806" integrity sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg== -negotiator@0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" - integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== +negotiator@0.6.3, negotiator@^0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" + integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== node-abi@^3.3.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.5.0.tgz#26e8b7b251c3260a5ac5ba5aef3b4345a0229248" - integrity sha512-LtHvNIBgOy5mO8mPEUtkCW/YCRWYEKshIvqhe1GHHyXEHEB5mgICyYnAcl4qan3uFeRROErKGzatFHPf6kDxWw== + version "3.26.0" + resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.26.0.tgz#fa5dfb912b821f29f058cb04b87f397ce107dc4b" + integrity sha512-jRVtMFTChbi2i/jqo/i2iP9634KMe+7K1v35mIdj3Mn59i5q27ZYhn+sW6npISM/PQg7HrP2kwtRBMmh5Uvzdg== dependencies: semver "^7.3.5" @@ -1137,49 +2033,330 @@ node-fetch@^2.2.0: dependencies: whatwg-url "^5.0.0" +node-gyp@*, node-gyp@^9.0.0: + version "9.3.0" + resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-9.3.0.tgz#f8eefe77f0ad8edb3b3b898409b53e697642b319" + integrity sha512-A6rJWfXFz7TQNjpldJ915WFb1LnhO4lIve3ANPbWreuEoLoKlFT3sxIepPBkLhM27crW8YmN+pjlgbasH6cH/Q== + dependencies: + env-paths "^2.2.0" + glob "^7.1.4" + graceful-fs "^4.2.6" + make-fetch-happen "^10.0.3" + nopt "^6.0.0" + npmlog "^6.0.0" + rimraf "^3.0.2" + semver "^7.3.5" + tar "^6.1.2" + which "^2.0.2" + +nopt@*, nopt@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-6.0.0.tgz#245801d8ebf409c6df22ab9d95b65e1309cdb16d" + integrity sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g== + dependencies: + abbrev "^1.0.0" + +normalize-package-data@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-4.0.1.tgz#b46b24e0616d06cadf9d5718b29b6d445a82a62c" + integrity sha512-EBk5QKKuocMJhB3BILuKhmaPjI8vNRSpIfO9woLC6NyHVkKKdVEdAO1mrT0ZfxNR1lKwCcTkuZfmGIFdizZ8Pg== + dependencies: + hosted-git-info "^5.0.0" + is-core-module "^2.8.1" + semver "^7.3.5" + validate-npm-package-license "^3.0.4" + normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== -npmlog@^4.0.1: - version "4.1.2" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" - integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== +npm-audit-report@*: + version "3.0.0" + resolved "https://registry.yarnpkg.com/npm-audit-report/-/npm-audit-report-3.0.0.tgz#1bf3e531208b5f77347c8d00c3d9badf5be30cd6" + integrity sha512-tWQzfbwz1sc4244Bx2BVELw0EmZlCsCF0X93RDcmmwhonCsPMoEviYsi+32R+mdRvOWXolPce9zo64n2xgPESw== dependencies: - are-we-there-yet "~1.1.2" - console-control-strings "~1.1.0" - gauge "~2.7.3" - set-blocking "~2.0.0" + chalk "^4.0.0" -number-is-nan@^1.0.0: +npm-bundled@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.2.tgz#944c78789bd739035b70baa2ca5cc32b8d860bc1" + integrity sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ== + dependencies: + npm-normalize-package-bin "^1.0.1" + +npm-bundled@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-2.0.1.tgz#94113f7eb342cd7a67de1e789f896b04d2c600f4" + integrity sha512-gZLxXdjEzE/+mOstGDqR6b0EkhJ+kM6fxM6vUuckuctuVPh80Q6pw/rSZj9s4Gex9GxWtIicO1pc8DB9KZWudw== + dependencies: + npm-normalize-package-bin "^2.0.0" + +npm-install-checks@*, npm-install-checks@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/npm-install-checks/-/npm-install-checks-5.0.0.tgz#5ff27d209a4e3542b8ac6b0c1db6063506248234" + integrity sha512-65lUsMI8ztHCxFz5ckCEC44DRvEGdZX5usQFriauxHEwt7upv1FKaQEmAtU0YnOAdwuNWCmk64xYiQABNrEyLA== + dependencies: + semver "^7.1.1" + +npm-normalize-package-bin@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" - integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= + resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2" + integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA== + +npm-normalize-package-bin@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-2.0.0.tgz#9447a1adaaf89d8ad0abe24c6c84ad614a675fff" + integrity sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ== + +npm-package-arg@*, npm-package-arg@^9.0.0, npm-package-arg@^9.0.1, npm-package-arg@^9.1.0: + version "9.1.2" + resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-9.1.2.tgz#fc8acecb00235f42270dda446f36926ddd9ac2bc" + integrity sha512-pzd9rLEx4TfNJkovvlBSLGhq31gGu2QDexFPWT19yCDh0JgnRhlBLNo5759N0AJmBk+kQ9Y/hXoLnlgFD+ukmg== + dependencies: + hosted-git-info "^5.0.0" + proc-log "^2.0.1" + semver "^7.3.5" + validate-npm-package-name "^4.0.0" -object-assign@^4.1.0, object-assign@^4.1.1: +npm-packlist@^5.1.0: + version "5.1.3" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-5.1.3.tgz#69d253e6fd664b9058b85005905012e00e69274b" + integrity sha512-263/0NGrn32YFYi4J533qzrQ/krmmrWwhKkzwTuM4f/07ug51odoaNjUexxO4vxlzURHcmYMH1QjvHjsNDKLVg== + dependencies: + glob "^8.0.1" + ignore-walk "^5.0.1" + npm-bundled "^2.0.0" + npm-normalize-package-bin "^2.0.0" + +npm-packlist@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-7.0.0.tgz#d451b7d797d4b05128796d9573d69be51fdf8f31" + integrity sha512-8GRMzWQmFdUrRmc6tPPCd9Umm9g2qDR6X6Rik+9nYvoDQTLs/0IcCKv6iUdAmgr9sgJCm24QovwozCHWMDriOg== + dependencies: + ignore-walk "^5.0.1" + +npm-pick-manifest@*, npm-pick-manifest@^7.0.0, npm-pick-manifest@^7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-7.0.2.tgz#1d372b4e7ea7c6712316c0e99388a73ed3496e84" + integrity sha512-gk37SyRmlIjvTfcYl6RzDbSmS9Y4TOBXfsPnoYqTHARNgWbyDiCSMLUpmALDj4jjcTZpURiEfsSHJj9k7EV4Rw== + dependencies: + npm-install-checks "^5.0.0" + npm-normalize-package-bin "^2.0.0" + npm-package-arg "^9.0.0" + semver "^7.3.5" + +npm-profile@*: + version "7.0.0" + resolved "https://registry.yarnpkg.com/npm-profile/-/npm-profile-7.0.0.tgz#795552ddb8d9b605ceac9063d1dbff982aa2cab0" + integrity sha512-/WbM1IJzmOECMOsxx75kgpKCn6v2doXsvv2/FQeSmSuHxN2IzeLqqjrsQU2lBOf0fZIbyoR5vxLrnI8vvnXd0A== + dependencies: + npm-registry-fetch "^13.0.1" + proc-log "^2.0.0" + +npm-registry-fetch@*, npm-registry-fetch@^13.0.0, npm-registry-fetch@^13.0.1: + version "13.3.1" + resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-13.3.1.tgz#bb078b5fa6c52774116ae501ba1af2a33166af7e" + integrity sha512-eukJPi++DKRTjSBRcDZSDDsGqRK3ehbxfFUcgaRd0Yp6kRwOwh2WVn0r+8rMB4nnuzvAk6rQVzl6K5CkYOmnvw== + dependencies: + make-fetch-happen "^10.0.6" + minipass "^3.1.6" + minipass-fetch "^2.0.3" + minipass-json-stream "^1.0.1" + minizlib "^2.1.2" + npm-package-arg "^9.0.1" + proc-log "^2.0.0" + +npm-user-validate@*: + version "1.0.1" + resolved "https://registry.yarnpkg.com/npm-user-validate/-/npm-user-validate-1.0.1.tgz#31428fc5475fe8416023f178c0ab47935ad8c561" + integrity sha512-uQwcd/tY+h1jnEaze6cdX/LrhWhoBxfSknxentoqmIuStxUExxjWd3ULMLFPiFUrZKbOVMowH6Jq2FRWfmhcEw== + +npm@7.24.2: + version "7.24.2" + resolved "https://registry.yarnpkg.com/npm/-/npm-7.24.2.tgz#861117af8241bea592289f22407230e5300e59ca" + integrity sha512-120p116CE8VMMZ+hk8IAb1inCPk4Dj3VZw29/n2g6UI77urJKVYb7FZUDW8hY+EBnfsjI/2yrobBgFyzo7YpVQ== + dependencies: + "@isaacs/string-locale-compare" "^1.1.0" + "@npmcli/arborist" "^2.9.0" + "@npmcli/ci-detect" "^1.2.0" + "@npmcli/config" "^2.3.0" + "@npmcli/map-workspaces" "^1.0.4" + "@npmcli/package-json" "^1.0.1" + "@npmcli/run-script" "^1.8.6" + abbrev "~1.1.1" + ansicolors "~0.3.2" + ansistyles "~0.1.3" + archy "~1.0.0" + cacache "^15.3.0" + chalk "^4.1.2" + chownr "^2.0.0" + cli-columns "^3.1.2" + cli-table3 "^0.6.0" + columnify "~1.5.4" + fastest-levenshtein "^1.0.12" + glob "^7.2.0" + graceful-fs "^4.2.8" + hosted-git-info "^4.0.2" + ini "^2.0.0" + init-package-json "^2.0.5" + is-cidr "^4.0.2" + json-parse-even-better-errors "^2.3.1" + libnpmaccess "^4.0.2" + libnpmdiff "^2.0.4" + libnpmexec "^2.0.1" + libnpmfund "^1.1.0" + libnpmhook "^6.0.2" + libnpmorg "^2.0.2" + libnpmpack "^2.0.1" + libnpmpublish "^4.0.1" + libnpmsearch "^3.1.1" + libnpmteam "^2.0.3" + libnpmversion "^1.2.1" + make-fetch-happen "^9.1.0" + minipass "^3.1.3" + minipass-pipeline "^1.2.4" + mkdirp "^1.0.4" + mkdirp-infer-owner "^2.0.0" + ms "^2.1.2" + node-gyp "^7.1.2" + nopt "^5.0.0" + npm-audit-report "^2.1.5" + npm-install-checks "^4.0.0" + npm-package-arg "^8.1.5" + npm-pick-manifest "^6.1.1" + npm-profile "^5.0.3" + npm-registry-fetch "^11.0.0" + npm-user-validate "^1.0.1" + npmlog "^5.0.1" + opener "^1.5.2" + pacote "^11.3.5" + parse-conflict-json "^1.1.1" + qrcode-terminal "^0.12.0" + read "~1.0.7" + read-package-json "^4.1.1" + read-package-json-fast "^2.0.3" + readdir-scoped-modules "^1.1.0" + rimraf "^3.0.2" + semver "^7.3.5" + ssri "^8.0.1" + tar "^6.1.11" + text-table "~0.2.0" + tiny-relative-date "^1.3.0" + treeverse "^1.0.4" + validate-npm-package-name "~3.0.0" + which "^2.0.2" + write-file-atomic "^3.0.3" + +npmlog@*, npmlog@^6.0.0, npmlog@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-6.0.2.tgz#c8166017a42f2dea92d6453168dd865186a70830" + integrity sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg== + dependencies: + are-we-there-yet "^3.0.0" + console-control-strings "^1.1.0" + gauge "^4.0.3" + set-blocking "^2.0.0" + +object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== -on-finished@~2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" - integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= +object-inspect@^1.9.0: + version "1.12.2" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" + integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== + +on-finished@2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" + integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== dependencies: ee-first "1.1.1" once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== dependencies: wrappy "1" +opener@*: + version "1.5.2" + resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" + integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== + +p-map@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" + integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== + dependencies: + aggregate-error "^3.0.0" + +pacote@*: + version "15.0.0" + resolved "https://registry.yarnpkg.com/pacote/-/pacote-15.0.0.tgz#32f6f7e9b59f4dd17e48c5f957c0d777f2d59021" + integrity sha512-YsMK5om14r2rf4Ukum5R43zKFoJe0swrsZRbG4fUfTJUxHpdMrie6+Js/jaNtn7Bq0YRL9SnAajPqz6n4wgi6g== + dependencies: + "@npmcli/git" "^3.0.0" + "@npmcli/installed-package-contents" "^1.0.7" + "@npmcli/promise-spawn" "^3.0.0" + "@npmcli/run-script" "^4.1.0" + cacache "^17.0.0" + fs-minipass "^2.1.0" + minipass "^3.1.6" + npm-package-arg "^9.0.0" + npm-packlist "^7.0.0" + npm-pick-manifest "^7.0.0" + npm-registry-fetch "^13.0.1" + proc-log "^2.0.0" + promise-retry "^2.0.1" + read-package-json "^5.0.0" + read-package-json-fast "^3.0.0" + ssri "^9.0.0" + tar "^6.1.11" + +pacote@^13.0.3, pacote@^13.6.1: + version "13.6.2" + resolved "https://registry.yarnpkg.com/pacote/-/pacote-13.6.2.tgz#0d444ba3618ab3e5cd330b451c22967bbd0ca48a" + integrity sha512-Gu8fU3GsvOPkak2CkbojR7vjs3k3P9cA6uazKTHdsdV0gpCEQq2opelnEv30KRQWgVzP5Vd/5umjcedma3MKtg== + dependencies: + "@npmcli/git" "^3.0.0" + "@npmcli/installed-package-contents" "^1.0.7" + "@npmcli/promise-spawn" "^3.0.0" + "@npmcli/run-script" "^4.1.0" + cacache "^16.0.0" + chownr "^2.0.0" + fs-minipass "^2.1.0" + infer-owner "^1.0.4" + minipass "^3.1.6" + mkdirp "^1.0.4" + npm-package-arg "^9.0.0" + npm-packlist "^5.1.0" + npm-pick-manifest "^7.0.0" + npm-registry-fetch "^13.0.1" + proc-log "^2.0.0" + promise-retry "^2.0.1" + read-package-json "^5.0.0" + read-package-json-fast "^2.0.3" + rimraf "^3.0.2" + ssri "^9.0.0" + tar "^6.1.11" + +parse-conflict-json@*, parse-conflict-json@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/parse-conflict-json/-/parse-conflict-json-2.0.2.tgz#3d05bc8ffe07d39600dc6436c6aefe382033d323" + integrity sha512-jDbRGb00TAPFsKWCpZZOT93SxVP9nONOSgES3AevqRq/CHvavEBvKAjxX9p5Y5F0RZLxH9Ufd9+RwtCsa+lFDA== + dependencies: + json-parse-even-better-errors "^2.3.1" + just-diff "^5.0.1" + just-diff-apply "^5.2.0" + parse-package-name@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/parse-package-name/-/parse-package-name-0.1.0.tgz#3f44dd838feb4c2be4bf318bae4477d7706bade4" - integrity sha1-P0Tdg4/rTCvkvzGLrkR313BrreQ= + integrity sha512-OT2+32knn014ggXMpGjZeHHsTYwOvHmRAMFtVBZstWAnR4UVIOw+JOhWZUCv5JwZQAMiisfdF2K5SyGI5OXXIg== parseurl@~1.3.3: version "1.3.3" @@ -1189,12 +2366,12 @@ parseurl@~1.3.3: path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== path-to-regexp@0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" - integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= + integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== path-to-regexp@^1.7.0: version "1.8.0" @@ -1208,29 +2385,66 @@ picomatch@^2.0.4, picomatch@^2.2.1: resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== -prebuild-install@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-7.0.0.tgz#3c5ce3902f1cb9d6de5ae94ca53575e4af0c1574" - integrity sha512-IvSenf33K7JcgddNz2D5w521EgO+4aMMjFt73Uk9FRzQ7P+QZPKrp7qPsDydsSwjGt3T5xRNnM1bj1zMTD5fTA== +postcss-selector-parser@^6.0.10: + version "6.0.10" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz#79b61e2c0d1bfc2602d549e11d0876256f8df88d" + integrity sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w== dependencies: - detect-libc "^1.0.3" + cssesc "^3.0.0" + util-deprecate "^1.0.2" + +prebuild-install@^7.1.0: + version "7.1.1" + resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-7.1.1.tgz#de97d5b34a70a0c81334fd24641f2a1702352e45" + integrity sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw== + dependencies: + detect-libc "^2.0.0" expand-template "^2.0.3" github-from-package "0.0.0" minimist "^1.2.3" mkdirp-classic "^0.5.3" napi-build-utils "^1.0.1" node-abi "^3.3.0" - npmlog "^4.0.1" pump "^3.0.0" rc "^1.2.7" simple-get "^4.0.0" tar-fs "^2.0.0" tunnel-agent "^0.6.0" -process-nextick-args@~2.0.0: +proc-log@^2.0.0, proc-log@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/proc-log/-/proc-log-2.0.1.tgz#8f3f69a1f608de27878f91f5c688b225391cb685" + integrity sha512-Kcmo2FhfDTXdcbfDH76N7uBYHINxc/8GW7UAVuVP9I+Va3uHSerrnKV6dLooga/gh7GlgzuCCr/eoldnL1muGw== + +promise-all-reject-late@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/promise-all-reject-late/-/promise-all-reject-late-1.0.1.tgz#f8ebf13483e5ca91ad809ccc2fcf25f26f8643c2" + integrity sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw== + +promise-call-limit@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/promise-call-limit/-/promise-call-limit-1.0.1.tgz#4bdee03aeb85674385ca934da7114e9bcd3c6e24" + integrity sha512-3+hgaa19jzCGLuSCbieeRsu5C2joKfYn8pY6JAuXFRVfF4IO+L7UPpFWNTeWT9pM7uhskvbPPd/oEOktCn317Q== + +promise-inflight@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" + integrity sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g== + +promise-retry@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" - integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + resolved "https://registry.yarnpkg.com/promise-retry/-/promise-retry-2.0.1.tgz#ff747a13620ab57ba688f5fc67855410c370da22" + integrity sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g== + dependencies: + err-code "^2.0.2" + retry "^0.12.0" + +promzard@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/promzard/-/promzard-0.3.0.tgz#26a5d6ee8c7dee4cb12208305acfb93ba382a9ee" + integrity sha512-JZeYqd7UAcHCwI+sTOeUDYkvEU+1bQ7iE0UT1MgB/tERkAPkesW46MrpIySzODi+owTjZtiF8Ay5j9m60KmMBw== + dependencies: + read "1" prop-types@^15.6.2: version "15.8.1" @@ -1257,23 +2471,30 @@ pump@^3.0.0: end-of-stream "^1.1.0" once "^1.3.1" -qs@6.9.6: - version "6.9.6" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.6.tgz#26ed3c8243a431b2924aca84cc90471f35d5a0ee" - integrity sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ== +qrcode-terminal@*: + version "0.12.0" + resolved "https://registry.yarnpkg.com/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz#bb5b699ef7f9f0505092a3748be4464fe71b5819" + integrity sha512-EXtzRZmC+YGmGlDFbXKxQiMZNwCLEO6BANKXG4iCtSIM0yqc/pappSx3RIKr4r0uh5JsBckOXeKrB3Iz7mdQpQ== + +qs@6.11.0: + version "6.11.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" + integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== + dependencies: + side-channel "^1.0.4" range-parser@~1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== -raw-body@2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.2.tgz#baf3e9c21eebced59dd6533ac872b71f7b61cb32" - integrity sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ== +raw-body@2.5.1: + version "2.5.1" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857" + integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== dependencies: - bytes "3.1.1" - http-errors "1.8.1" + bytes "3.1.2" + http-errors "2.0.0" iconv-lite "0.4.24" unpipe "1.0.0" @@ -1303,28 +2524,27 @@ react-is@^16.13.1, react-is@^16.6.0, react-is@^16.7.0: integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== react-router-dom@^5.0.1: - version "5.3.0" - resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-5.3.0.tgz#da1bfb535a0e89a712a93b97dd76f47ad1f32363" - integrity sha512-ObVBLjUZsphUUMVycibxgMdh5jJ1e3o+KpAZBVeHcNQZ4W+uUGGWsokurzlF4YOldQYRQL4y6yFRWM4m3svmuQ== + version "5.3.4" + resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-5.3.4.tgz#2ed62ffd88cae6db134445f4a0c0ae8b91d2e5e6" + integrity sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ== dependencies: "@babel/runtime" "^7.12.13" history "^4.9.0" loose-envify "^1.3.1" prop-types "^15.6.2" - react-router "5.2.1" + react-router "5.3.4" tiny-invariant "^1.0.2" tiny-warning "^1.0.0" -react-router@5.2.1, react-router@^5.0.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/react-router/-/react-router-5.2.1.tgz#4d2e4e9d5ae9425091845b8dbc6d9d276239774d" - integrity sha512-lIboRiOtDLFdg1VTemMwud9vRVuOCZmUIT/7lUoZiSpPODiiH1UQlfXy+vPLC/7IWdFYnhRwAyNqA/+I7wnvKQ== +react-router@5.3.4, react-router@^5.0.1: + version "5.3.4" + resolved "https://registry.yarnpkg.com/react-router/-/react-router-5.3.4.tgz#8ca252d70fcc37841e31473c7a151cf777887bb5" + integrity sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA== dependencies: "@babel/runtime" "^7.12.13" history "^4.9.0" hoist-non-react-statics "^3.1.0" loose-envify "^1.3.1" - mini-create-react-context "^0.4.0" path-to-regexp "^1.7.0" prop-types "^15.6.2" react-is "^16.6.0" @@ -1340,20 +2560,45 @@ react@^16.13.1: object-assign "^4.1.1" prop-types "^15.6.2" -readable-stream@^2.0.6: - version "2.3.7" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" - integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== +read-cmd-shim@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/read-cmd-shim/-/read-cmd-shim-3.0.1.tgz#868c235ec59d1de2db69e11aec885bc095aea087" + integrity sha512-kEmDUoYf/CDy8yZbLTmhB1X9kkjf9Q80PCNsDMb7ufrGd6zZSQA1+UyjrO+pZm5K/S4OXCWJeiIt1JA8kAsa6g== + +read-package-json-fast@*, read-package-json-fast@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/read-package-json-fast/-/read-package-json-fast-3.0.0.tgz#1931be7e06ab0e1e11223f5bb4ce0da2d4dbcc36" + integrity sha512-dVZMRA86XfZYNxQu18el+HG18L92Rn9CyOhOiQRPFR6ygigZwnmPg1DEVPNFBesp8JeISYYLvvD8DaEkUSTFkQ== + dependencies: + json-parse-even-better-errors "^3.0.0" + npm-normalize-package-bin "^2.0.0" + +read-package-json-fast@^2.0.2, read-package-json-fast@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/read-package-json-fast/-/read-package-json-fast-2.0.3.tgz#323ca529630da82cb34b36cc0b996693c98c2b83" + integrity sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ== + dependencies: + json-parse-even-better-errors "^2.3.0" + npm-normalize-package-bin "^1.0.1" + +read-package-json@*, read-package-json@^5.0.0: + version "5.0.2" + resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-5.0.2.tgz#b8779ccfd169f523b67208a89cc912e3f663f3fa" + integrity sha512-BSzugrt4kQ/Z0krro8zhTwV1Kd79ue25IhNN/VtHFy1mG/6Tluyi+msc0UpwaoQzxSHa28mntAjIZY6kEgfR9Q== + dependencies: + glob "^8.0.1" + json-parse-even-better-errors "^2.3.1" + normalize-package-data "^4.0.0" + npm-normalize-package-bin "^2.0.0" + +read@*, read@1, read@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/read/-/read-1.0.7.tgz#b3da19bd052431a97671d44a42634adf710b40c4" + integrity sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ== dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" + mute-stream "~0.0.4" -readable-stream@^3.1.1, readable-stream@^3.4.0: +readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== @@ -1362,6 +2607,16 @@ readable-stream@^3.1.1, readable-stream@^3.4.0: string_decoder "^1.1.1" util-deprecate "^1.0.1" +readdir-scoped-modules@*, readdir-scoped-modules@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz#8d45407b4f870a0dcaebc0e28670d18e74514309" + integrity sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw== + dependencies: + debuglog "^1.0.1" + dezalgo "^1.0.0" + graceful-fs "^4.1.2" + once "^1.3.0" + readdirp@~3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" @@ -1370,16 +2625,21 @@ readdirp@~3.6.0: picomatch "^2.2.1" regenerator-runtime@^0.13.4: - version "0.13.9" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" - integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== + version "0.13.10" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.10.tgz#ed07b19616bcbec5da6274ebc75ae95634bfc2ee" + integrity sha512-KepLsg4dU12hryUO7bp/axHAKvwGOCV0sGloQtpagJ12ai+ojVDqkeGSiRX1zlq+kjIMZ1t7gpze+26QqtdGqw== resolve-pathname@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-3.0.0.tgz#99d02224d3cf263689becbb393bc560313025dcd" integrity sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng== -rimraf@^3.0.0: +retry@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" + integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== + +rimraf@*, rimraf@^3.0.0, rimraf@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== @@ -1389,27 +2649,22 @@ rimraf@^3.0.0: rw@1: version "1.3.3" resolved "https://registry.yarnpkg.com/rw/-/rw-1.3.3.tgz#3f862dfa91ab766b14885ef4d01124bfda074fb4" - integrity sha1-P4Yt+pGrdmsUiF700BEkv9oHT7Q= + integrity sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ== safe-buffer@5.2.1, safe-buffer@^5.0.1, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== -safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - "safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== sass@^1.32.4: - version "1.49.0" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.49.0.tgz#65ec1b1d9a6bc1bae8d2c9d4b392c13f5d32c078" - integrity sha512-TVwVdNDj6p6b4QymJtNtRS2YtLJ/CqZriGg0eIAbAKMlN8Xy6kbv33FsEZSF7FufFFM705SQviHjjThfaQ4VNw== + version "1.55.0" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.55.0.tgz#0c4d3c293cfe8f8a2e8d3b666e1cf1bff8065d1c" + integrity sha512-Pk+PMy7OGLs9WaxZGJMn7S96dvlyVBwwtToX895WmCpAOr5YiJYEUJfiJidMuKb613z2xNWcXCHEuOvjZbqC6A== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" @@ -1423,56 +2678,65 @@ scheduler@^0.19.1: loose-envify "^1.1.0" object-assign "^4.1.1" -semver@^7.3.5: - version "7.3.5" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" - integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== +semver@*, semver@^7.0.0, semver@^7.1.1, semver@^7.3.5, semver@^7.3.7: + version "7.3.8" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798" + integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== dependencies: lru-cache "^6.0.0" -send@0.17.2: - version "0.17.2" - resolved "https://registry.yarnpkg.com/send/-/send-0.17.2.tgz#926622f76601c41808012c8bf1688fe3906f7820" - integrity sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww== +send@0.18.0: + version "0.18.0" + resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" + integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== dependencies: debug "2.6.9" - depd "~1.1.2" - destroy "~1.0.4" + depd "2.0.0" + destroy "1.2.0" encodeurl "~1.0.2" escape-html "~1.0.3" etag "~1.8.1" fresh "0.5.2" - http-errors "1.8.1" + http-errors "2.0.0" mime "1.6.0" ms "2.1.3" - on-finished "~2.3.0" + on-finished "2.4.1" range-parser "~1.2.1" - statuses "~1.5.0" + statuses "2.0.1" -serve-static@1.14.2: - version "1.14.2" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.2.tgz#722d6294b1d62626d41b43a013ece4598d292bfa" - integrity sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ== +serve-static@1.15.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" + integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== dependencies: encodeurl "~1.0.2" escape-html "~1.0.3" parseurl "~1.3.3" - send "0.17.2" + send "0.18.0" -set-blocking@~2.0.0: +set-blocking@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= + integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== setprototypeof@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== -signal-exit@^3.0.0: - version "3.0.6" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.6.tgz#24e630c4b0f03fea446a2bd299e62b4a6ca8d0af" - integrity sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ== +side-channel@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" + integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + dependencies: + call-bind "^1.0.0" + get-intrinsic "^1.0.2" + object-inspect "^1.9.0" + +signal-exit@^3.0.7: + version "3.0.7" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== simple-concat@^1.0.0: version "1.0.1" @@ -1488,6 +2752,28 @@ simple-get@^4.0.0: once "^1.3.1" simple-concat "^1.0.0" +smart-buffer@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" + integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== + +socks-proxy-agent@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz#dc069ecf34436621acb41e3efa66ca1b5fed15b6" + integrity sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww== + dependencies: + agent-base "^6.0.2" + debug "^4.3.3" + socks "^2.6.2" + +socks@^2.6.2: + version "2.7.1" + resolved "https://registry.yarnpkg.com/socks/-/socks-2.7.1.tgz#d8e651247178fde79c0663043e07240196857d55" + integrity sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ== + dependencies: + ip "^2.0.0" + smart-buffer "^4.2.0" + "source-map-js@>=0.6.2 <2.0.0": version "1.0.2" resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" @@ -1498,26 +2784,50 @@ source-map@^0.6.1: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== +spdx-correct@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" + integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" + integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== + +spdx-expression-parse@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.12" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz#69077835abe2710b65f03969898b6637b505a779" + integrity sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA== + sqlite-parser@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/sqlite-parser/-/sqlite-parser-1.0.1.tgz#110183f2682f04ac6c7d8ad09c44446ef976d5ec" - integrity sha1-EQGD8mgvBKxsfYrQnEREbvl21ew= - -"statuses@>= 1.5.0 < 2", statuses@~1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" - integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= + integrity sha512-/es+YmgQG+VFbwAQD0Nd0Mdzgky8rW3M85zcy2+Vtk3Sj5ydaMl/lopWPehsjsByGw/swVuXSBeMJFh47doRUw== -string-width@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" - integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= +ssri@*, ssri@^9.0.0: + version "9.0.1" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-9.0.1.tgz#544d4c357a8d7b71a19700074b6883fcb4eae057" + integrity sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q== dependencies: - code-point-at "^1.0.0" - is-fullwidth-code-point "^1.0.0" - strip-ansi "^3.0.0" + minipass "^3.1.1" + +statuses@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" + integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== -"string-width@^1.0.2 || 2 || 3 || 4": +"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -1533,20 +2843,6 @@ string_decoder@^1.1.1: dependencies: safe-buffer "~5.2.0" -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - -strip-ansi@^3.0.0, strip-ansi@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= - dependencies: - ansi-regex "^2.0.0" - strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" @@ -1557,7 +2853,14 @@ strip-ansi@^6.0.1: strip-json-comments@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= + integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" tar-fs@^2.0.0: version "2.1.1" @@ -1580,12 +2883,34 @@ tar-stream@^2.1.4: inherits "^2.0.3" readable-stream "^3.1.1" +tar@*, tar@^6.1.0, tar@^6.1.11, tar@^6.1.2: + version "6.1.11" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.11.tgz#6760a38f003afa1b2ffd0ffe9e9abbd0eab3d621" + integrity sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA== + dependencies: + chownr "^2.0.0" + fs-minipass "^2.0.0" + minipass "^3.0.0" + minizlib "^2.1.1" + mkdirp "^1.0.3" + yallist "^4.0.0" + +text-table@*: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== + tiny-invariant@^1.0.2: - version "1.2.0" - resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.2.0.tgz#a1141f86b672a9148c72e978a19a73b9b94a15a9" - integrity sha512-1Uhn/aqw5C6RI4KejVeTg6mIS7IqxnLJ8Mv2tV5rTc0qWobay7pDUz6Wi392Cnc8ak1H0F2cjoRzb2/AW4+Fvg== + version "1.3.1" + resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.3.1.tgz#8560808c916ef02ecfd55e66090df23a4b7aa642" + integrity sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw== -tiny-warning@^1.0.0, tiny-warning@^1.0.3: +tiny-relative-date@*: + version "1.3.0" + resolved "https://registry.yarnpkg.com/tiny-relative-date/-/tiny-relative-date-1.3.0.tgz#fa08aad501ed730f31cc043181d995c39a935e07" + integrity sha512-MOQHpzllWxDCHHaDno30hhLfbouoYlOI8YlMNtvKe1zXbjEVhbcEovQxvZrPvtiYW630GQDoMMarCnjfyfHA+A== + +tiny-warning@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== @@ -1612,12 +2937,17 @@ toidentifier@1.0.1: tr46@~0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== + +treeverse@*, treeverse@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/treeverse/-/treeverse-2.0.0.tgz#036dcef04bc3fd79a9b79a68d4da03e882d8a9ca" + integrity sha512-N5gJCkLu1aXccpOTtqV6ddSEi6ZmGkh3hjmbu1IjcavJK4qyOVQmi0myQKM7z5jVGmD68SJoliaVrMmVObhj6A== tunnel-agent@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= + integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== dependencies: safe-buffer "^5.0.1" @@ -1629,6 +2959,20 @@ type-is@~1.6.18: media-typer "0.3.0" mime-types "~2.1.24" +unique-filename@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-2.0.1.tgz#e785f8675a9a7589e0ac77e0b5c34d2eaeac6da2" + integrity sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A== + dependencies: + unique-slug "^3.0.0" + +unique-slug@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-3.0.0.tgz#6d347cf57c8a7a7a6044aabd0e2d74e4d76dc7c9" + integrity sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w== + dependencies: + imurmurhash "^0.1.4" + universalify@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" @@ -1637,17 +2981,32 @@ universalify@^2.0.0: unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= + integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== -util-deprecate@^1.0.1, util-deprecate@~1.0.1: +util-deprecate@^1.0.1, util-deprecate@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== utils-merge@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= + integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== + +validate-npm-package-license@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +validate-npm-package-name@*, validate-npm-package-name@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-4.0.0.tgz#fe8f1c50ac20afdb86f177da85b3600f0ac0d747" + integrity sha512-mzR0L8ZDktZjpX4OB46KT+56MAhl4EIazWP/+G/HPGuvfdaqg4YsCdtOm6U9+LOFyYDoh4dpnpxZRB9MQQns5Q== + dependencies: + builtins "^5.0.0" value-equal@^1.0.1: version "1.0.1" @@ -1657,29 +3016,41 @@ value-equal@^1.0.1: vary@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" - integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= + integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== + +walk-up-path@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/walk-up-path/-/walk-up-path-1.0.0.tgz#d4745e893dd5fd0dbb58dd0a4c6a33d9c9fec53e" + integrity sha512-hwj/qMDUEjCU5h0xr90KGCf0tg0/LgJbmOWgrWKYlcJZM7XvquvUJZ0G/HMGr7F7OQMOUuPHWP9JpriinkAlkg== + +wcwidth@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" + integrity sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg== + dependencies: + defaults "^1.0.3" webidl-conversions@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE= + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== whatwg-url@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" - integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0= + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== dependencies: tr46 "~0.0.3" webidl-conversions "^3.0.0" -which@^1.2.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" - integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== +which@*, which@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== dependencies: isexe "^2.0.0" -wide-align@^1.1.0: +wide-align@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3" integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== @@ -1689,7 +3060,15 @@ wide-align@^1.1.0: wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +write-file-atomic@*, write-file-atomic@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.2.tgz#a9df01ae5b77858a027fd2e80768ee433555fcfd" + integrity sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg== + dependencies: + imurmurhash "^0.1.4" + signal-exit "^3.0.7" yallist@^4.0.0: version "4.0.0" From b0b1927cba7742b16a15072fe90f192cbc68072d Mon Sep 17 00:00:00 2001 From: kirjavascript Date: Tue, 18 Oct 2022 22:13:48 +0100 Subject: [PATCH 50/94] check is event isolate is disposed --- base/index.js | 2 +- irc/events.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/base/index.js b/base/index.js index b57b6f8..538b997 100644 --- a/base/index.js +++ b/base/index.js @@ -49,7 +49,7 @@ new (class Nibblr { node.createEventManager(); } }) - }, 60000); + }, 10000); this.database = new Database(this); diff --git a/irc/events.js b/irc/events.js index e2fbf2c..124b55e 100644 --- a/irc/events.js +++ b/irc/events.js @@ -123,7 +123,7 @@ function createEventManager(node) { function run() { runningEvents = true; - ref.vm + !ref.vm.isolate.isDisposed && ref.vm .setConfig({ print: { target: eventData.target, From ce60715dc6c785d11d3bb0bf9459b76362972c82 Mon Sep 17 00:00:00 2001 From: kirjavascript Date: Tue, 18 Oct 2022 23:14:40 +0200 Subject: [PATCH 51/94] yarn.lock --- yarn.lock | 2307 +++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 1812 insertions(+), 495 deletions(-) diff --git a/yarn.lock b/yarn.lock index 1477e62..9c29e5c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,255 +2,636 @@ # yarn lockfile v1 -"@babel/runtime@^7.1.2", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.13": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.16.7.tgz#03ff99f64106588c9c403c6ecb8c3bafbbdff1fa" - integrity sha512-9E9FJowqAsytyOY6LG+1KuueckRL+aQW+mKvXRXnuFGyRAyepJPmEo9vgMfXUA6O9u3IeEdv9MAkppFcaQwogQ== +"@babel/runtime@^7.1.2", "@babel/runtime@^7.12.1": + version "7.12.13" + resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.13.tgz" + integrity sha512-8+3UMPBrjFa/6TtKi/7sehPKqfAm4g6K+YQjyyFOLUTxzOngcRZTlAVY8sc2CORJYqdHQY8gRPHmn+qo15rCBw== dependencies: regenerator-runtime "^0.13.4" +"@colors/colors@1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" + integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== + +"@gar/promisify@^1.1.3": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6" + integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw== + +"@isaacs/string-locale-compare@*", "@isaacs/string-locale-compare@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@isaacs/string-locale-compare/-/string-locale-compare-1.1.0.tgz#291c227e93fd407a96ecd59879a35809120e432b" + integrity sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ== + +"@npmcli/arborist@*", "@npmcli/arborist@^5.6.2": + version "5.6.2" + resolved "https://registry.yarnpkg.com/@npmcli/arborist/-/arborist-5.6.2.tgz#552b554f34777e5dcc8e68ad86cdaeebc0788790" + integrity sha512-Lyj2g+foWKzrwW2bT/RGO982VR9vb5tlvfD88n4PwWJRrDttQbJoIdcQzN9b+NIBhI1/8iEhC5b8far9U0fQxA== + dependencies: + "@isaacs/string-locale-compare" "^1.1.0" + "@npmcli/installed-package-contents" "^1.0.7" + "@npmcli/map-workspaces" "^2.0.3" + "@npmcli/metavuln-calculator" "^3.0.1" + "@npmcli/move-file" "^2.0.0" + "@npmcli/name-from-folder" "^1.0.1" + "@npmcli/node-gyp" "^2.0.0" + "@npmcli/package-json" "^2.0.0" + "@npmcli/query" "^1.2.0" + "@npmcli/run-script" "^4.1.3" + bin-links "^3.0.3" + cacache "^16.1.3" + common-ancestor-path "^1.0.1" + json-parse-even-better-errors "^2.3.1" + json-stringify-nice "^1.1.4" + minimatch "^5.1.0" + mkdirp "^1.0.4" + mkdirp-infer-owner "^2.0.0" + nopt "^6.0.0" + npm-install-checks "^5.0.0" + npm-package-arg "^9.0.0" + npm-pick-manifest "^7.0.2" + npm-registry-fetch "^13.0.0" + npmlog "^6.0.2" + pacote "^13.6.1" + parse-conflict-json "^2.0.1" + proc-log "^2.0.0" + promise-all-reject-late "^1.0.0" + promise-call-limit "^1.0.1" + read-package-json-fast "^2.0.2" + readdir-scoped-modules "^1.1.0" + rimraf "^3.0.2" + semver "^7.3.7" + ssri "^9.0.0" + treeverse "^2.0.0" + walk-up-path "^1.0.0" + +"@npmcli/ci-detect@*": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@npmcli/ci-detect/-/ci-detect-3.0.0.tgz#13195718f652fa2177421948132510ca9f55ca89" + integrity sha512-d6eGMbZ2j6n2b1KpGNbTsKNpCe3NU7xe7stzeXu6BJyLbMZ/FGHnSuwozcHEckGRKF06RO+Z8FpHg7nAbBmuUw== + +"@npmcli/ci-detect@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@npmcli/ci-detect/-/ci-detect-2.0.0.tgz#e63c91bcd4185ac1e85720a34fc48e164ece5b89" + integrity sha512-8yQtQ9ArHh/TzdUDKQwEvwCgpDuhSWTDAbiKMl3854PcT+Dk4UmWaiawuFTLy9n5twzXOBXVflWe+90/ffXQrA== + +"@npmcli/config@*": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@npmcli/config/-/config-5.0.0.tgz#c15214cbc225bd3cb0a93ea396d84c11fa0d07be" + integrity sha512-TfJ3IRw5eKtzvzCxWbmy74KfO1ikKoWr2oPzpugo3RqSneAF/PNFZuSAuubvyv5qKjAj0hU4BC7VI2o3eOAT2A== + dependencies: + "@npmcli/map-workspaces" "^2.0.2" + ini "^3.0.0" + mkdirp-infer-owner "^2.0.0" + nopt "^6.0.0" + proc-log "^2.0.0" + read-package-json-fast "^2.0.3" + semver "^7.3.5" + walk-up-path "^1.0.0" + +"@npmcli/disparity-colors@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@npmcli/disparity-colors/-/disparity-colors-2.0.0.tgz#cb518166ee21573b96241a3613fef70acb2a60ba" + integrity sha512-FFXGrIjhvd2qSZ8iS0yDvbI7nbjdyT2VNO7wotosjYZM2p2r8PN3B7Om3M5NO9KqW/OVzfzLB3L0V5Vo5QXC7A== + dependencies: + ansi-styles "^4.3.0" + +"@npmcli/fs@^2.1.0", "@npmcli/fs@^2.1.1": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-2.1.2.tgz#a9e2541a4a2fec2e69c29b35e6060973da79b865" + integrity sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ== + dependencies: + "@gar/promisify" "^1.1.3" + semver "^7.3.5" + +"@npmcli/git@^3.0.0": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@npmcli/git/-/git-3.0.2.tgz#5c5de6b4d70474cf2d09af149ce42e4e1dacb931" + integrity sha512-CAcd08y3DWBJqJDpfuVL0uijlq5oaXaOJEKHKc4wqrjd00gkvTZB+nFuLn+doOOKddaQS9JfqtNoFCO2LCvA3w== + dependencies: + "@npmcli/promise-spawn" "^3.0.0" + lru-cache "^7.4.4" + mkdirp "^1.0.4" + npm-pick-manifest "^7.0.0" + proc-log "^2.0.0" + promise-inflight "^1.0.1" + promise-retry "^2.0.1" + semver "^7.3.5" + which "^2.0.2" + +"@npmcli/installed-package-contents@^1.0.7": + version "1.0.7" + resolved "https://registry.yarnpkg.com/@npmcli/installed-package-contents/-/installed-package-contents-1.0.7.tgz#ab7408c6147911b970a8abe261ce512232a3f4fa" + integrity sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw== + dependencies: + npm-bundled "^1.1.1" + npm-normalize-package-bin "^1.0.1" + +"@npmcli/map-workspaces@*", "@npmcli/map-workspaces@^2.0.2", "@npmcli/map-workspaces@^2.0.3": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@npmcli/map-workspaces/-/map-workspaces-2.0.4.tgz#9e5e8ab655215a262aefabf139782b894e0504fc" + integrity sha512-bMo0aAfwhVwqoVM5UzX1DJnlvVvzDCHae821jv48L1EsrYwfOZChlqWYXEtto/+BkBXetPbEWgau++/brh4oVg== + dependencies: + "@npmcli/name-from-folder" "^1.0.1" + glob "^8.0.1" + minimatch "^5.0.1" + read-package-json-fast "^2.0.3" + +"@npmcli/metavuln-calculator@^3.0.1": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@npmcli/metavuln-calculator/-/metavuln-calculator-3.1.1.tgz#9359bd72b400f8353f6a28a25c8457b562602622" + integrity sha512-n69ygIaqAedecLeVH3KnO39M6ZHiJ2dEv5A7DGvcqCB8q17BGUgW8QaanIkbWUo2aYGZqJaOORTLAlIvKjNDKA== + dependencies: + cacache "^16.0.0" + json-parse-even-better-errors "^2.3.1" + pacote "^13.0.3" + semver "^7.3.5" + +"@npmcli/move-file@^2.0.0": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-2.0.1.tgz#26f6bdc379d87f75e55739bab89db525b06100e4" + integrity sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ== + dependencies: + mkdirp "^1.0.4" + rimraf "^3.0.2" + +"@npmcli/name-from-folder@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@npmcli/name-from-folder/-/name-from-folder-1.0.1.tgz#77ecd0a4fcb772ba6fe927e2e2e155fbec2e6b1a" + integrity sha512-qq3oEfcLFwNfEYOQ8HLimRGKlD8WSeGEdtUa7hmzpR8Sa7haL1KVQrvgO6wqMjhWFFVjgtrh1gIxDz+P8sjUaA== + +"@npmcli/node-gyp@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@npmcli/node-gyp/-/node-gyp-2.0.0.tgz#8c20e53e34e9078d18815c1d2dda6f2420d75e35" + integrity sha512-doNI35wIe3bBaEgrlPfdJPaCpUR89pJWep4Hq3aRdh6gKazIVWfs0jHttvSSoq47ZXgC7h73kDsUl8AoIQUB+A== + +"@npmcli/package-json@*", "@npmcli/package-json@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@npmcli/package-json/-/package-json-2.0.0.tgz#3bbcf4677e21055adbe673d9f08c9f9cde942e4a" + integrity sha512-42jnZ6yl16GzjWSH7vtrmWyJDGVa/LXPdpN2rcUWolFjc9ON2N3uz0qdBbQACfmhuJZ2lbKYtmK5qx68ZPLHMA== + dependencies: + json-parse-even-better-errors "^2.3.1" + +"@npmcli/promise-spawn@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@npmcli/promise-spawn/-/promise-spawn-3.0.0.tgz#53283b5f18f855c6925f23c24e67c911501ef573" + integrity sha512-s9SgS+p3a9Eohe68cSI3fi+hpcZUmXq5P7w0kMlAsWVtR7XbK3ptkZqKT2cK1zLDObJ3sR+8P59sJE0w/KTL1g== + dependencies: + infer-owner "^1.0.4" + +"@npmcli/query@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@npmcli/query/-/query-1.2.0.tgz#46468d583cf013aa92102970700f9555314aabe4" + integrity sha512-uWglsUM3PjBLgTSmZ3/vygeGdvWEIZ3wTUnzGFbprC/RtvQSaT+GAXu1DXmSFj2bD3oOZdcRm1xdzsV2z1YWdw== + dependencies: + npm-package-arg "^9.1.0" + postcss-selector-parser "^6.0.10" + semver "^7.3.7" + +"@npmcli/run-script@*", "@npmcli/run-script@^4.1.0", "@npmcli/run-script@^4.1.3", "@npmcli/run-script@^4.2.0": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@npmcli/run-script/-/run-script-4.2.1.tgz#c07c5c71bc1c70a5f2a06b0d4da976641609b946" + integrity sha512-7dqywvVudPSrRCW5nTHpHgeWnbBtz8cFkOuKrecm6ih+oO9ciydhWt6OF7HlqupRRmB8Q/gECVdB9LMfToJbRg== + dependencies: + "@npmcli/node-gyp" "^2.0.0" + "@npmcli/promise-spawn" "^3.0.0" + node-gyp "^9.0.0" + read-package-json-fast "^2.0.3" + which "^2.0.2" + +"@tootallnate/once@2": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf" + integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A== + +abbrev@*, abbrev@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== + accepts@~1.3.7: version "1.3.7" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" + resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz" integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== dependencies: mime-types "~2.1.24" negotiator "0.6.2" -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= +agent-base@6, agent-base@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" + integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== + dependencies: + debug "4" + +agentkeepalive@^4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.2.1.tgz#a7975cbb9f83b367f06c90cc51ff28fe7d499717" + integrity sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA== + dependencies: + debug "^4.1.0" + depd "^1.1.2" + humanize-ms "^1.2.1" + +aggregate-error@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" + integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== + dependencies: + clean-stack "^2.0.0" + indent-string "^4.0.0" ansi-regex@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== -anymatch@~3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" - integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== +ansi-styles@^4.1.0, ansi-styles@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +ansicolors@*: + version "0.3.2" + resolved "https://registry.yarnpkg.com/ansicolors/-/ansicolors-0.3.2.tgz#665597de86a9ffe3aa9bfbe6cae5c6ea426b4979" + integrity sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg== + +ansistyles@*: + version "0.1.3" + resolved "https://registry.yarnpkg.com/ansistyles/-/ansistyles-0.1.3.tgz#5de60415bda071bb37127854c864f41b23254539" + integrity sha512-6QWEyvMgIXX0eO972y7YPBLSBsq7UWKFAoNNTLGaOJ9bstcEL9sCbcjf96dVfNDdUsRoGOK82vWFJlKApXds7g== + +anymatch@~3.1.1: + version "3.1.1" + resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz" + integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg== dependencies: normalize-path "^3.0.0" picomatch "^2.0.4" -aproba@^1.0.3: - version "1.2.0" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" - integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== +"aproba@^1.0.3 || ^2.0.0", aproba@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" + integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== + +archy@*: + version "1.0.0" + resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" + integrity sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw== -are-we-there-yet@~1.1.2: - version "1.1.7" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz#b15474a932adab4ff8a50d9adfa7e4e926f21146" - integrity sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g== +are-we-there-yet@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz#679df222b278c64f2cdba1175cdc00b0d96164bd" + integrity sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg== dependencies: delegates "^1.0.0" - readable-stream "^2.0.6" + readable-stream "^3.6.0" array-flatten@1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz" integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= +asap@^2.0.0: + version "2.0.6" + resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" + integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== + asynckit@^0.4.0: version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= at-least-node@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" + resolved "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz" integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + version "1.0.0" + resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz" + integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= base64-js@^1.3.1: version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== better-sqlite3@^7.5.0: - version "7.5.0" - resolved "https://registry.yarnpkg.com/better-sqlite3/-/better-sqlite3-7.5.0.tgz#2a91cb616453f002096743b0e5b66a7021cd1c63" - integrity sha512-6FdG9DoytYGDhLW7VWW1vxjEz7xHkqK6LnaUQYA8d6GHNgZhu9PFX2xwKEEnSBRoT1J4PjTUPeg217ShxNmuPg== + version "7.6.2" + resolved "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-7.6.2.tgz" + integrity sha512-S5zIU1Hink2AH4xPsN0W43T1/AJ5jrPh7Oy07ocuW/AKYYY02GWzz9NH0nbSMn/gw6fDZ5jZ1QsHt1BXAwJ6Lg== dependencies: bindings "^1.5.0" - prebuild-install "^7.0.0" + prebuild-install "^7.1.0" + +bin-links@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/bin-links/-/bin-links-3.0.3.tgz#3842711ef3db2cd9f16a5f404a996a12db355a6e" + integrity sha512-zKdnMPWEdh4F5INR07/eBrodC7QrF5JKvqskjz/ZZRXg5YSAZIbn8zGhbhUrElzHBZ2fvEQdOU59RHcTG3GiwA== + dependencies: + cmd-shim "^5.0.0" + mkdirp-infer-owner "^2.0.0" + npm-normalize-package-bin "^2.0.0" + read-cmd-shim "^3.0.0" + rimraf "^3.0.0" + write-file-atomic "^4.0.0" -binary-extensions@^2.0.0: +binary-extensions@^2.0.0, binary-extensions@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== bindings@^1.5.0: version "1.5.0" - resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" + resolved "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz" integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== dependencies: file-uri-to-path "1.0.0" bl@^4.0.3: version "4.1.0" - resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" + resolved "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz" integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== dependencies: buffer "^5.5.0" inherits "^2.0.4" readable-stream "^3.4.0" -body-parser@1.19.1, body-parser@^1.19.0: - version "1.19.1" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.1.tgz#1499abbaa9274af3ecc9f6f10396c995943e31d4" - integrity sha512-8ljfQi5eBk8EJfECMrgqNGWPEY5jWP+1IzkzkGdFFEwFQZZyaZ21UqdaHktgiMlH0xLHqIFtE/u2OYE5dOtViA== +body-parser@1.19.0, body-parser@^1.19.0: + version "1.19.0" + resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz" + integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== dependencies: - bytes "3.1.1" + bytes "3.1.0" content-type "~1.0.4" debug "2.6.9" depd "~1.1.2" - http-errors "1.8.1" + http-errors "1.7.2" iconv-lite "0.4.24" on-finished "~2.3.0" - qs "6.9.6" - raw-body "2.4.2" - type-is "~1.6.18" + qs "6.7.0" + raw-body "2.4.0" + type-is "~1.6.17" brace-expansion@^1.1.7: version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== dependencies: balanced-match "^1.0.0" concat-map "0.0.1" +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + braces@~3.0.2: version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== dependencies: fill-range "^7.0.1" buffer@^5.5.0: version "5.7.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + resolved "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz" integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== dependencies: base64-js "^1.3.1" ieee754 "^1.1.13" -bytes@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.1.tgz#3f018291cb4cbad9accb6e6970bca9c8889e879a" - integrity sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg== +builtins@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/builtins/-/builtins-5.0.1.tgz#87f6db9ab0458be728564fa81d876d8d74552fa9" + integrity sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ== + dependencies: + semver "^7.0.0" + +bytes@3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz" + integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== + +cacache@*, cacache@^16.0.0, cacache@^16.1.0, cacache@^16.1.3: + version "16.1.3" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-16.1.3.tgz#a02b9f34ecfaf9a78c9f4bc16fceb94d5d67a38e" + integrity sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ== + dependencies: + "@npmcli/fs" "^2.1.0" + "@npmcli/move-file" "^2.0.0" + chownr "^2.0.0" + fs-minipass "^2.1.0" + glob "^8.0.1" + infer-owner "^1.0.4" + lru-cache "^7.7.1" + minipass "^3.1.6" + minipass-collect "^1.0.2" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.4" + mkdirp "^1.0.4" + p-map "^4.0.0" + promise-inflight "^1.0.1" + rimraf "^3.0.2" + ssri "^9.0.0" + tar "^6.1.11" + unique-filename "^2.0.0" + +chalk@*: + version "5.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.1.2.tgz#d957f370038b75ac572471e83be4c5ca9f8e8c45" + integrity sha512-E5CkT4jWURs1Vy5qGJye+XwCkNj7Od3Af7CP6SujMetSMkLs8Do2RWJK5yx1wamHV/op8Rz+9rltjaTQWDnEFQ== + +chalk@^4.0.0, chalk@^4.1.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" chardet@^1.2.1: - version "1.4.0" - resolved "https://registry.yarnpkg.com/chardet/-/chardet-1.4.0.tgz#278748f260219990fb2167dbfb1b253ca26b41ea" - integrity sha512-NpwMDdSIprbYx1CLnfbxEIarI0Z+s9MssEgggMNheGM+WD68yOhV7IEA/3r6tr0yTRgQD0HuZJDw32s99i6L+A== + version "1.5.0" + resolved "https://registry.npmjs.org/chardet/-/chardet-1.5.0.tgz" + integrity sha512-Nj3VehbbFs/1ZnJJJaL3ztEf3Nu5Fs6YV/NBs6lyz/iDDHUU+X9QNk5QgPy1/5Rjtb/cGVf+NyazP7kVEJqKRg== "chokidar@>=3.0.0 <4.0.0": - version "3.5.3" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" - integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== + version "3.5.1" + resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz" + integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw== dependencies: - anymatch "~3.1.2" + anymatch "~3.1.1" braces "~3.0.2" - glob-parent "~5.1.2" + glob-parent "~5.1.0" is-binary-path "~2.1.0" is-glob "~4.0.1" normalize-path "~3.0.0" - readdirp "~3.6.0" + readdirp "~3.5.0" optionalDependencies: - fsevents "~2.3.2" + fsevents "~2.3.1" + +chownr@*, chownr@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" + integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== chownr@^1.1.1: version "1.1.4" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" + resolved "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz" integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== -code-point-at@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" - integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= +cidr-regex@4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/cidr-regex/-/cidr-regex-4.0.2.tgz#ca8216d1761eed0bd9c4f5e8740f2d7363dd05bb" + integrity sha512-xvqVyyE8emYjipWVxsA+Vcsbt8TbJJsTHbOeMMA5qsmXUu5VZJzNBGwI4rr1IZ0FQI2z7bfry4NNACP5Cf67CA== + dependencies: + ip-regex "^5.0.0" + +clean-stack@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== + +cli-columns@*: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cli-columns/-/cli-columns-4.0.0.tgz#9fe4d65975238d55218c41bd2ed296a7fa555646" + integrity sha512-XW2Vg+w+L9on9wtwKpyzluIPCWXjaBahI7mTcYjx+BVIYD9c3yqcv/yKC7CmdCZat4rq2yiE1UMSJC5ivKfMtQ== + dependencies: + string-width "^4.2.3" + strip-ansi "^6.0.1" + +cli-table3@*: + version "0.6.3" + resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.3.tgz#61ab765aac156b52f222954ffc607a6f01dbeeb2" + integrity sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg== + dependencies: + string-width "^4.2.0" + optionalDependencies: + "@colors/colors" "1.5.0" + +clone@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== + +cmd-shim@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-5.0.0.tgz#8d0aaa1a6b0708630694c4dbde070ed94c707724" + integrity sha512-qkCtZ59BidfEwHltnJwkyVZn+XQojdAySM1D1gSeh11Z4pW1Kpolkyo53L5noc0nrxmIvyFwTmJRo4xs7FFLPw== + dependencies: + mkdirp-infer-owner "^2.0.0" codemirror@^5.52.2: - version "5.65.1" - resolved "https://registry.yarnpkg.com/codemirror/-/codemirror-5.65.1.tgz#5988a812c974c467f964bcc1a00c944e373de502" - integrity sha512-s6aac+DD+4O2u1aBmdxhB7yz2XU7tG3snOyQ05Kxifahz7hoxnfxIRHxiCSEv3TUC38dIVH8G+lZH9UWSfGQxA== + version "5.59.2" + resolved "https://registry.npmjs.org/codemirror/-/codemirror-5.59.2.tgz" + integrity sha512-/D5PcsKyzthtSy2NNKCyJi3b+htRkoKv3idswR/tR6UAvMNKA7SrmyZy6fOONJxSRs1JlUWEDAbxqfdArbK8iA== + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +color-support@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" + integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== + +columnify@*: + version "1.6.0" + resolved "https://registry.yarnpkg.com/columnify/-/columnify-1.6.0.tgz#6989531713c9008bb29735e61e37acf5bd553cf3" + integrity sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q== + dependencies: + strip-ansi "^6.0.1" + wcwidth "^1.0.0" combined-stream@^1.0.8: version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== dependencies: delayed-stream "~1.0.0" commander@2: version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== +common-ancestor-path@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz#4f7d2d1394d91b7abdf51871c62f71eadb0182a7" + integrity sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w== + concat-map@0.0.1: version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= -console-control-strings@^1.0.0, console-control-strings@~1.1.0: +console-control-strings@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + resolved "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz" integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= -content-disposition@0.5.4: - version "0.5.4" - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" - integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== +content-disposition@0.5.3: + version "0.5.3" + resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz" + integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== dependencies: - safe-buffer "5.2.1" + safe-buffer "5.1.2" content-type@~1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz" integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== cookie-signature@1.0.6: version "1.0.6" - resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + resolved "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz" integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= -cookie@0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.1.tgz#afd713fe26ebd21ba95ceb61f9a8116e50a537d1" - integrity sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA== - -core-util-is@~1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" - integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== +cookie@0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz" + integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== css-tree@^1.1.2: version "1.1.3" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d" + resolved "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz" integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== dependencies: mdn-data "2.0.14" source-map "^0.6.1" +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + d3-array@1, d3-array@^1.1.1, d3-array@^1.2.0: version "1.2.4" - resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-1.2.4.tgz#635ce4d5eea759f6f605863dbcfc30edc737f71f" + resolved "https://registry.npmjs.org/d3-array/-/d3-array-1.2.4.tgz" integrity sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw== d3-axis@1: version "1.0.12" - resolved "https://registry.yarnpkg.com/d3-axis/-/d3-axis-1.0.12.tgz#cdf20ba210cfbb43795af33756886fb3638daac9" + resolved "https://registry.npmjs.org/d3-axis/-/d3-axis-1.0.12.tgz" integrity sha512-ejINPfPSNdGFKEOAtnBtdkpr24c4d4jsei6Lg98mxf424ivoDP2956/5HDpIAtmHo85lqT4pruy+zEgvRUBqaQ== d3-brush@1: version "1.1.6" - resolved "https://registry.yarnpkg.com/d3-brush/-/d3-brush-1.1.6.tgz#b0a22c7372cabec128bdddf9bddc058592f89e9b" + resolved "https://registry.npmjs.org/d3-brush/-/d3-brush-1.1.6.tgz" integrity sha512-7RW+w7HfMCPyZLifTz/UnJmI5kdkXtpCbombUSs8xniAyo0vIbrDzDwUJB6eJOgl9u5DQOt2TQlYumxzD1SvYA== dependencies: d3-dispatch "1" @@ -261,7 +642,7 @@ d3-brush@1: d3-chord@1: version "1.0.6" - resolved "https://registry.yarnpkg.com/d3-chord/-/d3-chord-1.0.6.tgz#309157e3f2db2c752f0280fedd35f2067ccbb15f" + resolved "https://registry.npmjs.org/d3-chord/-/d3-chord-1.0.6.tgz" integrity sha512-JXA2Dro1Fxw9rJe33Uv+Ckr5IrAa74TlfDEhE/jfLOaXegMQFQTAgAw9WnZL8+HxVBRXaRGCkrNU7pJeylRIuA== dependencies: d3-array "1" @@ -269,29 +650,29 @@ d3-chord@1: d3-collection@1: version "1.0.7" - resolved "https://registry.yarnpkg.com/d3-collection/-/d3-collection-1.0.7.tgz#349bd2aa9977db071091c13144d5e4f16b5b310e" + resolved "https://registry.npmjs.org/d3-collection/-/d3-collection-1.0.7.tgz" integrity sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A== d3-color@1: version "1.4.1" - resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-1.4.1.tgz#c52002bf8846ada4424d55d97982fef26eb3bc8a" + resolved "https://registry.npmjs.org/d3-color/-/d3-color-1.4.1.tgz" integrity sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q== d3-contour@1: version "1.3.2" - resolved "https://registry.yarnpkg.com/d3-contour/-/d3-contour-1.3.2.tgz#652aacd500d2264cb3423cee10db69f6f59bead3" + resolved "https://registry.npmjs.org/d3-contour/-/d3-contour-1.3.2.tgz" integrity sha512-hoPp4K/rJCu0ladiH6zmJUEz6+u3lgR+GSm/QdM2BBvDraU39Vr7YdDCicJcxP1z8i9B/2dJLgDC1NcvlF8WCg== dependencies: d3-array "^1.1.1" d3-dispatch@1: version "1.0.6" - resolved "https://registry.yarnpkg.com/d3-dispatch/-/d3-dispatch-1.0.6.tgz#00d37bcee4dd8cd97729dd893a0ac29caaba5d58" + resolved "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-1.0.6.tgz" integrity sha512-fVjoElzjhCEy+Hbn8KygnmMS7Or0a9sI2UzGwoB7cCtvI1XpVN9GpoYlnb3xt2YV66oXYb1fLJ8GMvP4hdU1RA== d3-drag@1: version "1.2.5" - resolved "https://registry.yarnpkg.com/d3-drag/-/d3-drag-1.2.5.tgz#2537f451acd39d31406677b7dc77c82f7d988f70" + resolved "https://registry.npmjs.org/d3-drag/-/d3-drag-1.2.5.tgz" integrity sha512-rD1ohlkKQwMZYkQlYVCrSFxsWPzI97+W+PaEIBNTMxRuxz9RF0Hi5nJWHGVJ3Om9d2fRTe1yOBINJyy/ahV95w== dependencies: d3-dispatch "1" @@ -299,7 +680,7 @@ d3-drag@1: d3-dsv@1: version "1.2.0" - resolved "https://registry.yarnpkg.com/d3-dsv/-/d3-dsv-1.2.0.tgz#9d5f75c3a5f8abd611f74d3f5847b0d4338b885c" + resolved "https://registry.npmjs.org/d3-dsv/-/d3-dsv-1.2.0.tgz" integrity sha512-9yVlqvZcSOMhCYzniHE7EVUws7Fa1zgw+/EAV2BxJoG3ME19V6BQFBwI855XQDsxyOuG7NibqRMTtiF/Qup46g== dependencies: commander "2" @@ -308,19 +689,19 @@ d3-dsv@1: d3-ease@1: version "1.0.7" - resolved "https://registry.yarnpkg.com/d3-ease/-/d3-ease-1.0.7.tgz#9a834890ef8b8ae8c558b2fe55bd57f5993b85e2" + resolved "https://registry.npmjs.org/d3-ease/-/d3-ease-1.0.7.tgz" integrity sha512-lx14ZPYkhNx0s/2HX5sLFUI3mbasHjSSpwO/KaaNACweVwxUruKyWVcb293wMv1RqTPZyZ8kSZ2NogUZNcLOFQ== d3-fetch@1: version "1.2.0" - resolved "https://registry.yarnpkg.com/d3-fetch/-/d3-fetch-1.2.0.tgz#15ce2ecfc41b092b1db50abd2c552c2316cf7fc7" + resolved "https://registry.npmjs.org/d3-fetch/-/d3-fetch-1.2.0.tgz" integrity sha512-yC78NBVcd2zFAyR/HnUiBS7Lf6inSCoWcSxFfw8FYL7ydiqe80SazNwoffcqOfs95XaLo7yebsmQqDKSsXUtvA== dependencies: d3-dsv "1" d3-force@1: version "1.2.1" - resolved "https://registry.yarnpkg.com/d3-force/-/d3-force-1.2.1.tgz#fd29a5d1ff181c9e7f0669e4bd72bdb0e914ec0b" + resolved "https://registry.npmjs.org/d3-force/-/d3-force-1.2.1.tgz" integrity sha512-HHvehyaiUlVo5CxBJ0yF/xny4xoaxFxDnBXNvNcfW9adORGZfyNF1dj6DGLKyk4Yh3brP/1h3rnDzdIAwL08zg== dependencies: d3-collection "1" @@ -330,56 +711,56 @@ d3-force@1: d3-format@1: version "1.4.5" - resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-1.4.5.tgz#374f2ba1320e3717eb74a9356c67daee17a7edb4" + resolved "https://registry.npmjs.org/d3-format/-/d3-format-1.4.5.tgz" integrity sha512-J0piedu6Z8iB6TbIGfZgDzfXxUFN3qQRMofy2oPdXzQibYGqPB/9iMcxr/TGalU+2RsyDO+U4f33id8tbnSRMQ== d3-geo@1: version "1.12.1" - resolved "https://registry.yarnpkg.com/d3-geo/-/d3-geo-1.12.1.tgz#7fc2ab7414b72e59fbcbd603e80d9adc029b035f" + resolved "https://registry.npmjs.org/d3-geo/-/d3-geo-1.12.1.tgz" integrity sha512-XG4d1c/UJSEX9NfU02KwBL6BYPj8YKHxgBEw5om2ZnTRSbIcego6dhHwcxuSR3clxh0EpE38os1DVPOmnYtTPg== dependencies: d3-array "1" d3-hierarchy@1: version "1.1.9" - resolved "https://registry.yarnpkg.com/d3-hierarchy/-/d3-hierarchy-1.1.9.tgz#2f6bee24caaea43f8dc37545fa01628559647a83" + resolved "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-1.1.9.tgz" integrity sha512-j8tPxlqh1srJHAtxfvOUwKNYJkQuBFdM1+JAUfq6xqH5eAqf93L7oG1NVqDa4CpFZNvnNKtCYEUC8KY9yEn9lQ== d3-interpolate-path@^2.1.1: - version "2.2.3" - resolved "https://registry.yarnpkg.com/d3-interpolate-path/-/d3-interpolate-path-2.2.3.tgz#7a2a906231c316c5166872c13400aae918e604fa" - integrity sha512-1i1WUmOzSHI7nYqhjnL9v/gA5VQNgMMfX4u1Emv2vKmUUQsRPx/Ghl/AvcyOq3GRINW8iSz5elCdoHX0imyWCg== + version "2.2.1" + resolved "https://registry.npmjs.org/d3-interpolate-path/-/d3-interpolate-path-2.2.1.tgz" + integrity sha512-6qLLh/KJVzls0XtMsMpcxhqMhgVEN7VIbR/6YGZe2qlS8KDgyyVB20XcmGnDyB051HcefQXM/Tppa9vcANEA4Q== d3-interpolate@1: version "1.4.0" - resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-1.4.0.tgz#526e79e2d80daa383f9e0c1c1c7dcc0f0583e987" + resolved "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-1.4.0.tgz" integrity sha512-V9znK0zc3jOPV4VD2zZn0sDhZU3WAE2bmlxdIwwQPPzPjvyLkd8B3JUVdS1IDUFDkWZ72c9qnv1GK2ZagTZ8EA== dependencies: d3-color "1" d3-path@1: version "1.0.9" - resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-1.0.9.tgz#48c050bb1fe8c262493a8caf5524e3e9591701cf" + resolved "https://registry.npmjs.org/d3-path/-/d3-path-1.0.9.tgz" integrity sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg== d3-polygon@1: version "1.0.6" - resolved "https://registry.yarnpkg.com/d3-polygon/-/d3-polygon-1.0.6.tgz#0bf8cb8180a6dc107f518ddf7975e12abbfbd38e" + resolved "https://registry.npmjs.org/d3-polygon/-/d3-polygon-1.0.6.tgz" integrity sha512-k+RF7WvI08PC8reEoXa/w2nSg5AUMTi+peBD9cmFc+0ixHfbs4QmxxkarVal1IkVkgxVuk9JSHhJURHiyHKAuQ== d3-quadtree@1: version "1.0.7" - resolved "https://registry.yarnpkg.com/d3-quadtree/-/d3-quadtree-1.0.7.tgz#ca8b84df7bb53763fe3c2f24bd435137f4e53135" + resolved "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-1.0.7.tgz" integrity sha512-RKPAeXnkC59IDGD0Wu5mANy0Q2V28L+fNe65pOCXVdVuTJS3WPKaJlFHer32Rbh9gIo9qMuJXio8ra4+YmIymA== d3-random@1: version "1.1.2" - resolved "https://registry.yarnpkg.com/d3-random/-/d3-random-1.1.2.tgz#2833be7c124360bf9e2d3fd4f33847cfe6cab291" + resolved "https://registry.npmjs.org/d3-random/-/d3-random-1.1.2.tgz" integrity sha512-6AK5BNpIFqP+cx/sreKzNjWbwZQCSUatxq+pPRmFIQaWuoD+NrbVWw7YWpHiXpCQ/NanKdtGDuB+VQcZDaEmYQ== d3-scale-chromatic@1, d3-scale-chromatic@^1.5.0: version "1.5.0" - resolved "https://registry.yarnpkg.com/d3-scale-chromatic/-/d3-scale-chromatic-1.5.0.tgz#54e333fc78212f439b14641fb55801dd81135a98" + resolved "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-1.5.0.tgz" integrity sha512-ACcL46DYImpRFMBcpk9HhtIyC7bTBR4fNOPxwVSl0LfulDAwyiHyPOTqcDG1+t5d4P9W7t/2NAuWu59aKko/cg== dependencies: d3-color "1" @@ -387,7 +768,7 @@ d3-scale-chromatic@1, d3-scale-chromatic@^1.5.0: d3-scale@2: version "2.2.2" - resolved "https://registry.yarnpkg.com/d3-scale/-/d3-scale-2.2.2.tgz#4e880e0b2745acaaddd3ede26a9e908a9e17b81f" + resolved "https://registry.npmjs.org/d3-scale/-/d3-scale-2.2.2.tgz" integrity sha512-LbeEvGgIb8UMcAa0EATLNX0lelKWGYDQiPdHj+gLblGVhGLyNbaCn3EvrJf0A3Y/uOOU5aD6MTh5ZFCdEwGiCw== dependencies: d3-array "^1.2.0" @@ -399,36 +780,36 @@ d3-scale@2: d3-selection@1, d3-selection@^1.1.0: version "1.4.2" - resolved "https://registry.yarnpkg.com/d3-selection/-/d3-selection-1.4.2.tgz#dcaa49522c0dbf32d6c1858afc26b6094555bc5c" + resolved "https://registry.npmjs.org/d3-selection/-/d3-selection-1.4.2.tgz" integrity sha512-SJ0BqYihzOjDnnlfyeHT0e30k0K1+5sR3d5fNueCNeuhZTnGw4M4o8mqJchSwgKMXCNFo+e2VTChiSJ0vYtXkg== d3-shape@1: version "1.3.7" - resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-1.3.7.tgz#df63801be07bc986bc54f63789b4fe502992b5d7" + resolved "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.7.tgz" integrity sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw== dependencies: d3-path "1" d3-time-format@2: version "2.3.0" - resolved "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-2.3.0.tgz#107bdc028667788a8924ba040faf1fbccd5a7850" + resolved "https://registry.npmjs.org/d3-time-format/-/d3-time-format-2.3.0.tgz" integrity sha512-guv6b2H37s2Uq/GefleCDtbe0XZAuy7Wa49VGkPVPMfLL9qObgBST3lEHJBMUp8S7NdLQAGIvr2KXk8Hc98iKQ== dependencies: d3-time "1" d3-time@1: version "1.1.0" - resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-1.1.0.tgz#b1e19d307dae9c900b7e5b25ffc5dcc249a8a0f1" + resolved "https://registry.npmjs.org/d3-time/-/d3-time-1.1.0.tgz" integrity sha512-Xh0isrZ5rPYYdqhAVk8VLnMEidhz5aP7htAADH6MfzgmmicPkTo8LhkLxci61/lCB7n7UmE3bN0leRt+qvkLxA== d3-timer@1: version "1.0.10" - resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-1.0.10.tgz#dfe76b8a91748831b13b6d9c793ffbd508dd9de5" + resolved "https://registry.npmjs.org/d3-timer/-/d3-timer-1.0.10.tgz" integrity sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw== d3-transition@1: version "1.3.2" - resolved "https://registry.yarnpkg.com/d3-transition/-/d3-transition-1.3.2.tgz#a98ef2151be8d8600543434c1ca80140ae23b398" + resolved "https://registry.npmjs.org/d3-transition/-/d3-transition-1.3.2.tgz" integrity sha512-sc0gRU4PFqZ47lPVHloMn9tlPcv8jxgOQg+0zjhfZXMQuvppjG6YuwdMBE0TuqCZjeJkLecku/l9R0JPcRhaDA== dependencies: d3-color "1" @@ -440,12 +821,12 @@ d3-transition@1: d3-voronoi@1: version "1.1.4" - resolved "https://registry.yarnpkg.com/d3-voronoi/-/d3-voronoi-1.1.4.tgz#dd3c78d7653d2bb359284ae478645d95944c8297" + resolved "https://registry.npmjs.org/d3-voronoi/-/d3-voronoi-1.1.4.tgz" integrity sha512-dArJ32hchFsrQ8uMiTBLq256MpnZjeuBtdHpaDlYuQyjU0CVzCJl/BVW+SkszaAeH95D/8gxqAhgx0ouAWAfRg== d3-zoom@1: version "1.8.3" - resolved "https://registry.yarnpkg.com/d3-zoom/-/d3-zoom-1.8.3.tgz#b6a3dbe738c7763121cd05b8a7795ffe17f4fc0a" + resolved "https://registry.npmjs.org/d3-zoom/-/d3-zoom-1.8.3.tgz" integrity sha512-VoLXTK4wvy1a0JpH2Il+F2CiOhVu7VRXWF5M/LroMIh3/zBAC3WAt7QoIvPibOavVo20hN6/37vwAsdBejLyKQ== dependencies: d3-dispatch "1" @@ -456,7 +837,7 @@ d3-zoom@1: d3@^5.15.1: version "5.16.0" - resolved "https://registry.yarnpkg.com/d3/-/d3-5.16.0.tgz#9c5e8d3b56403c79d4ed42fbd62f6113f199c877" + resolved "https://registry.npmjs.org/d3/-/d3-5.16.0.tgz" integrity sha512-4PL5hHaHwX4m7Zr1UapXW23apo6pexCgdetdJ5kTmADpG/7T9Gkxw0M0tf/pjoB63ezCCm0u5UaFYy2aMt0Mcw== dependencies: d3-array "1" @@ -493,75 +874,124 @@ d3@^5.15.1: date-fns@^1.29.0: version "1.30.1" - resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.30.1.tgz#2e71bf0b119153dbb4cc4e88d9ea5acfb50dc05c" + resolved "https://registry.npmjs.org/date-fns/-/date-fns-1.30.1.tgz" integrity sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw== debug@2.6.9: version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== dependencies: ms "2.0.0" +debug@4, debug@^4.1.0, debug@^4.3.3: + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + +debuglog@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" + integrity sha512-syBZ+rnAK3EgMsH2aYEOLUW7mZSY9Gb+0wUMCFsZvcmiz+HigA0LOcq/HoQqVuGG+EKykunc7QG2bzrponfaSw== + decompress-response@^6.0.0: version "6.0.0" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" + resolved "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz" integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== dependencies: mimic-response "^3.1.0" deep-extend@^0.6.0: version "0.6.0" - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + resolved "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz" integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== +defaults@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.4.tgz#b0b02062c1e2aa62ff5d9528f0f98baa90978d7a" + integrity sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A== + dependencies: + clone "^1.0.2" + delayed-stream@~1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= delegates@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + resolved "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz" integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= -depd@~1.1.2: +depd@^1.1.2, depd@~1.1.2: version "1.1.2" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz" integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= destroy@~1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + resolved "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz" integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= -detect-libc@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" - integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= +detect-libc@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz" + integrity sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w== + +dezalgo@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/dezalgo/-/dezalgo-1.0.4.tgz#751235260469084c132157dfa857f386d4c33d81" + integrity sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig== + dependencies: + asap "^2.0.0" + wrappy "1" + +diff@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-5.1.0.tgz#bc52d298c5ea8df9194800224445ed43ffc87e40" + integrity sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw== ee-first@1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= emoji-regex@^8.0.0: version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== encodeurl@~1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz" integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= +encoding@^0.1.13: + version "0.1.13" + resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" + integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== + dependencies: + iconv-lite "^0.6.2" + end-of-stream@^1.1.0, end-of-stream@^1.4.1: version "1.4.4" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + resolved "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz" integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== dependencies: once "^1.4.0" +env-paths@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" + integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== + +err-code@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/err-code/-/err-code-2.0.3.tgz#23c2f3b756ffdfc608d30e27c9a941024807e7f9" + integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA== + esbuild-android-arm64@0.13.15: version "0.13.15" resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.13.15.tgz#3fc3ff0bab76fe35dd237476b5d2b32bb20a3d44" @@ -594,7 +1024,7 @@ esbuild-linux-32@0.13.15: esbuild-linux-64@0.13.15: version "0.13.15" - resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.13.15.tgz#9cb8e4bcd7574e67946e4ee5f1f1e12386bb6dd3" + resolved "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.13.15.tgz" integrity sha512-eCKzkNSLywNeQTRBxJRQ0jxRCl2YWdMB3+PkWFo2BBQYC5mISLIVIjThNtn6HUNqua1pnvgP5xX0nHbZbPj5oA== esbuild-linux-arm64@0.13.15: @@ -629,7 +1059,7 @@ esbuild-openbsd-64@0.13.15: esbuild-plugin-sass@^0.6.0: version "0.6.0" - resolved "https://registry.yarnpkg.com/esbuild-plugin-sass/-/esbuild-plugin-sass-0.6.0.tgz#1fd6cf78fc1290621e86d39880ec52f0ac52b138" + resolved "https://registry.npmjs.org/esbuild-plugin-sass/-/esbuild-plugin-sass-0.6.0.tgz" integrity sha512-WuQu6sIx9SUwEJ5yLO3Bk86R4vPnC5rzCr4mdOzBWdi0CyC56pIVNrpVgoNkqG/qrQPmh49aYg+9QYJTCRuYAw== dependencies: css-tree "^1.1.2" @@ -659,7 +1089,7 @@ esbuild-windows-arm64@0.13.15: esbuild@^0.13.12: version "0.13.15" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.13.15.tgz#db56a88166ee373f87dbb2d8798ff449e0450cdf" + resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.13.15.tgz" integrity sha512-raCxt02HBKv8RJxE8vkTSCXGIyKHdEdGfUmiYb8wnabnaEmHzyW7DCHb5tEN0xU8ryqg5xw54mcwnYkC4x3AIw== optionalDependencies: esbuild-android-arm64 "0.13.15" @@ -682,30 +1112,30 @@ esbuild@^0.13.12: escape-html@~1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= etag@~1.8.1: version "1.8.1" - resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + resolved "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz" integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= expand-template@^2.0.3: version "2.0.3" - resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" + resolved "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz" integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== express@^4.16.2: - version "4.17.2" - resolved "https://registry.yarnpkg.com/express/-/express-4.17.2.tgz#c18369f265297319beed4e5558753cc8c1364cb3" - integrity sha512-oxlxJxcQlYwqPWKVJJtvQiwHgosH/LrLSPA+H4UxpyvSS6jC5aH+5MoHFM+KABgTOt0APue4w66Ha8jCUo9QGg== + version "4.17.1" + resolved "https://registry.npmjs.org/express/-/express-4.17.1.tgz" + integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== dependencies: accepts "~1.3.7" array-flatten "1.1.1" - body-parser "1.19.1" - content-disposition "0.5.4" + body-parser "1.19.0" + content-disposition "0.5.3" content-type "~1.0.4" - cookie "0.4.1" + cookie "0.4.0" cookie-signature "1.0.6" debug "2.6.9" depd "~1.1.2" @@ -719,33 +1149,38 @@ express@^4.16.2: on-finished "~2.3.0" parseurl "~1.3.3" path-to-regexp "0.1.7" - proxy-addr "~2.0.7" - qs "6.9.6" + proxy-addr "~2.0.5" + qs "6.7.0" range-parser "~1.2.1" - safe-buffer "5.2.1" - send "0.17.2" - serve-static "1.14.2" - setprototypeof "1.2.0" + safe-buffer "5.1.2" + send "0.17.1" + serve-static "1.14.1" + setprototypeof "1.1.1" statuses "~1.5.0" type-is "~1.6.18" utils-merge "1.0.1" vary "~1.1.2" +fastest-levenshtein@*: + version "1.0.16" + resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz#210e61b6ff181de91ea9b3d1b84fdedd47e034e5" + integrity sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg== + file-uri-to-path@1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" + resolved "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz" integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== fill-range@^7.0.1: version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== dependencies: to-regex-range "^5.0.1" finalhandler@~1.1.2: version "1.1.2" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" + resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz" integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== dependencies: debug "2.6.9" @@ -757,32 +1192,32 @@ finalhandler@~1.1.2: unpipe "~1.0.0" form-data@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" - integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== + version "3.0.0" + resolved "https://registry.npmjs.org/form-data/-/form-data-3.0.0.tgz" + integrity sha512-CKMFDglpbMi6PyN+brwB9Q/GOw0eAnsrEZDgcsH5Krhz5Od/haKHAX0NmQfha2zPPz0JpWzA7GJHGSnvCRLWsg== dependencies: asynckit "^0.4.0" combined-stream "^1.0.8" mime-types "^2.1.12" -forwarded@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" - integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== +forwarded@~0.1.2: + version "0.1.2" + resolved "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz" + integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= fresh@0.5.2: version "0.5.2" - resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz" integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= fs-constants@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" + resolved "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz" integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== fs-extra@^9.0.1: version "9.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz" integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== dependencies: at-least-node "^1.0.0" @@ -790,45 +1225,57 @@ fs-extra@^9.0.1: jsonfile "^6.0.1" universalify "^2.0.0" +fs-minipass@^2.0.0, fs-minipass@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" + integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== + dependencies: + minipass "^3.0.0" + fs.realpath@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= -fsevents@~2.3.2: +fsevents@~2.3.1: version "2.3.2" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== -gauge@~2.7.3: - version "2.7.4" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" - integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= - dependencies: - aproba "^1.0.3" - console-control-strings "^1.0.0" - has-unicode "^2.0.0" - object-assign "^4.1.0" - signal-exit "^3.0.0" - string-width "^1.0.1" - strip-ansi "^3.0.1" - wide-align "^1.1.0" +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +gauge@^4.0.3: + version "4.0.4" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-4.0.4.tgz#52ff0652f2bbf607a989793d53b751bef2328dce" + integrity sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg== + dependencies: + aproba "^1.0.3 || ^2.0.0" + color-support "^1.1.3" + console-control-strings "^1.1.0" + has-unicode "^2.0.1" + signal-exit "^3.0.7" + string-width "^4.2.3" + strip-ansi "^6.0.1" + wide-align "^1.1.5" github-from-package@0.0.0: version "0.0.0" - resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" - integrity sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4= + resolved "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz" + integrity sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw== -glob-parent@~5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== +glob-parent@~5.1.0: + version "5.1.1" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz" + integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== dependencies: is-glob "^4.0.1" -glob@^7.1.3: +glob@*, glob@^7.1.4: version "7.2.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" + resolved "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz" integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== dependencies: fs.realpath "^1.0.0" @@ -838,26 +1285,59 @@ glob@^7.1.3: once "^1.3.0" path-is-absolute "^1.0.0" -global-npm@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/global-npm/-/global-npm-0.3.0.tgz#7c5115394a677d1245c4e3ba0b78bb6752797ee0" - integrity sha1-fFEVOUpnfRJFxOO6C3i7Z1J5fuA= +glob@^7.1.3: + version "7.1.6" + resolved "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz" + integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== dependencies: - which "^1.2.1" + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^8.0.1: + version "8.0.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-8.0.3.tgz#415c6eb2deed9e502c68fa44a272e6da6eeca42e" + integrity sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^5.0.1" + once "^1.3.0" + +graceful-fs@*, graceful-fs@^4.1.2, graceful-fs@^4.2.6: + version "4.2.10" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" + integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== graceful-fs@^4.1.6, graceful-fs@^4.2.0: - version "4.2.9" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.9.tgz#041b05df45755e587a24942279b9d113146e1c96" - integrity sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ== + version "4.2.6" + resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz" + integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has-unicode@^2.0.0: +has-unicode@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + resolved "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz" integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= +has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + history@^4.9.0: version "4.10.1" - resolved "https://registry.yarnpkg.com/history/-/history-4.10.1.tgz#33371a65e3a83b267434e2b3f3b1b4c58aad4cf3" + resolved "https://registry.npmjs.org/history/-/history-4.10.1.tgz" integrity sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew== dependencies: "@babel/runtime" "^7.1.2" @@ -869,77 +1349,175 @@ history@^4.9.0: hoist-non-react-statics@^3.1.0: version "3.3.2" - resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" + resolved "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz" integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== dependencies: react-is "^16.7.0" -http-errors@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.8.1.tgz#7c3f28577cbc8a207388455dbd62295ed07bd68c" - integrity sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g== +hosted-git-info@*: + version "6.0.0" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-6.0.0.tgz#2e9b726a8ac0d68a907c6a8dc4abecac5e0ed69a" + integrity sha512-NURrKJX36ihI69iCqcvN4uuIk9fHcc1C+uax/5fPh4Tr5WJnATir+QM/CMJNKrcOOvxQDsAdS5C9oJliM80X7g== + dependencies: + lru-cache "^7.5.1" + +hosted-git-info@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-5.1.0.tgz#9786123f92ef3627f24abc3f15c20d98ec4a6594" + integrity sha512-Ek+QmMEqZF8XrbFdwoDjSbm7rT23pCgEMOJmz6GPk/s4yH//RQfNPArhIxbguNxROq/+5lNBwCDHMhA903Kx1Q== + dependencies: + lru-cache "^7.5.1" + +http-cache-semantics@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" + integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== + +http-errors@1.7.2, http-errors@~1.7.2: + version "1.7.2" + resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz" + integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== dependencies: depd "~1.1.2" - inherits "2.0.4" - setprototypeof "1.2.0" + inherits "2.0.3" + setprototypeof "1.1.1" statuses ">= 1.5.0 < 2" - toidentifier "1.0.1" + toidentifier "1.0.0" + +http-proxy-agent@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz#5129800203520d434f142bc78ff3c170800f2b43" + integrity sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w== + dependencies: + "@tootallnate/once" "2" + agent-base "6" + debug "4" + +https-proxy-agent@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" + integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== + dependencies: + agent-base "6" + debug "4" + +humanize-ms@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" + integrity sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ== + dependencies: + ms "^2.0.0" iconv-lite@0.4, iconv-lite@0.4.24: version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== dependencies: safer-buffer ">= 2.1.2 < 3" iconv-lite@^0.6.2: version "0.6.3" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" + resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz" integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== dependencies: safer-buffer ">= 2.1.2 < 3.0.0" ieee754@^1.1.13: version "1.2.1" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== +ignore-walk@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-5.0.1.tgz#5f199e23e1288f518d90358d461387788a154776" + integrity sha512-yemi4pMf51WKT7khInJqAvsIGzoqYXblnsz0ql8tM+yi1EKYTY1evX4NAbJrLL/Aanr2HyZeluqU+Oi7MGHokw== + dependencies: + minimatch "^5.0.1" + immutable@^4.0.0: + version "4.1.0" + resolved "https://registry.npmjs.org/immutable/-/immutable-4.1.0.tgz" + integrity sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ== + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== + +indent-string@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.0.0.tgz#b86f78de6adef3608395efb269a91462797e2c23" - integrity sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw== + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + +infer-owner@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" + integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== inflight@^1.0.4: version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= dependencies: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: +inherits@2, inherits@^2.0.3, inherits@^2.0.4: version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== +inherits@2.0.3: + version "2.0.3" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" + integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= + +ini@*, ini@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/ini/-/ini-3.0.1.tgz#c76ec81007875bc44d544ff7a11a55d12294102d" + integrity sha512-it4HyVAUTKBc6m8e1iXWvXSTdndF7HbdN713+kvLrymxTaU4AUBWrJ4vEooP+V7fexnVD3LKcBshjGGPefSMUQ== + ini@~1.3.0: version "1.3.8" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + resolved "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== +init-package-json@*: + version "3.0.2" + resolved "https://registry.yarnpkg.com/init-package-json/-/init-package-json-3.0.2.tgz#f5bc9bac93f2bdc005778bc2271be642fecfcd69" + integrity sha512-YhlQPEjNFqlGdzrBfDNRLhvoSgX7iQRgSxgsNknRQ9ITXFT7UMfVMWhBTOh2Y+25lRnGrv5Xz8yZwQ3ACR6T3A== + dependencies: + npm-package-arg "^9.0.1" + promzard "^0.3.0" + read "^1.0.7" + read-package-json "^5.0.0" + semver "^7.3.5" + validate-npm-package-license "^3.0.4" + validate-npm-package-name "^4.0.0" + +ip-regex@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-5.0.0.tgz#cd313b2ae9c80c07bd3851e12bf4fa4dc5480632" + integrity sha512-fOCG6lhoKKakwv+C6KdsOnGvgXnmgfmp0myi3bcNwj3qfwPAxRKWEuFhvEFF7ceYIz6+1jRZ+yguLFAmUNPEfw== + +ip@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ip/-/ip-2.0.0.tgz#4cf4ab182fee2314c75ede1276f8c80b479936da" + integrity sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ== + ipaddr.js@1.9.1: version "1.9.1" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz" integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== irc-colors@^1.5.0: version "1.5.0" - resolved "https://registry.yarnpkg.com/irc-colors/-/irc-colors-1.5.0.tgz#08834c01ead88b0fd88386a5f2af8f2b0bb963fb" + resolved "https://registry.npmjs.org/irc-colors/-/irc-colors-1.5.0.tgz" integrity sha512-HtszKchBQTcqw1DC09uD7i7vvMayHGM1OCo6AHt5pkgZEyo99ClhHTMJdf+Ezc9ovuNNxcH89QfyclGthjZJOw== irc-upd@^0.11.0: version "0.11.0" - resolved "https://registry.yarnpkg.com/irc-upd/-/irc-upd-0.11.0.tgz#a1842b9b09962d1040a998baded491e366470027" + resolved "https://registry.npmjs.org/irc-upd/-/irc-upd-0.11.0.tgz" integrity sha512-A1hV5cUkl5HZsKWRYcszD2Usfz33hB8igSSox8dEmrMyfy8/Ra6T/o4jwzs7jYMZ7ljLquSIWzcvSZHZ/bEAZA== dependencies: irc-colors "^1.5.0" @@ -949,138 +1527,315 @@ irc-upd@^0.11.0: is-binary-path@~2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== dependencies: binary-extensions "^2.0.0" +is-cidr@*: + version "5.0.2" + resolved "https://registry.yarnpkg.com/is-cidr/-/is-cidr-5.0.2.tgz#8805dce4ac503dcb3270aa7e8987fcc6f400fa58" + integrity sha512-cCaw4czL00EUoO+mbOt2cUSFq8DQ/3rfWw6foy48TI52+j/tKTtlUet14UnWryHfY9bNbpHLqXkd/jnF600PPQ== + dependencies: + cidr-regex "4.0.2" + +is-core-module@^2.8.1: + version "2.10.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.10.0.tgz#9012ede0a91c69587e647514e1d5277019e728ed" + integrity sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg== + dependencies: + has "^1.0.3" + is-extglob@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= -is-fullwidth-code-point@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" - integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= - dependencies: - number-is-nan "^1.0.0" - is-fullwidth-code-point@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== is-glob@^4.0.1, is-glob@~4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" - integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + version "4.0.1" + resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz" + integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== dependencies: is-extglob "^2.1.1" +is-lambda@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5" + integrity sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ== + is-number@^7.0.0: version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== isarray@0.0.1: version "0.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + resolved "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= -isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= - isexe@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= isolated-vm@^4.3.5: - version "4.3.6" - resolved "https://registry.yarnpkg.com/isolated-vm/-/isolated-vm-4.3.6.tgz#443672194c96fc077f219d6c115d50b1706d9611" - integrity sha512-YvioBOU6wUNSTOWGgX/pDPLF9/WaSLsX8GqL7RlFCKzBXTXzyfG+T4JNIRNEiowtZk5H5ekJSUFqbx2QHSpJDQ== + version "4.4.1" + resolved "https://registry.npmjs.org/isolated-vm/-/isolated-vm-4.4.1.tgz" + integrity sha512-5aDwxQGm78vHS+qJeUli2ILroG7OS/k3D/Mc0kcT9vyujiL4bV7PYYix1mAvuBm3v44nz2qcfAOqgAbhuACc/w== "js-tokens@^3.0.0 || ^4.0.0": version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== +json-parse-even-better-errors@*, json-parse-even-better-errors@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.0.tgz#2cb2ee33069a78870a0c7e3da560026b89669cf7" + integrity sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA== + +json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + +json-stringify-nice@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/json-stringify-nice/-/json-stringify-nice-1.1.4.tgz#2c937962b80181d3f317dd39aa323e14f5a60a67" + integrity sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw== + jsonfile@^6.0.1: version "6.1.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz" integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== dependencies: universalify "^2.0.0" optionalDependencies: graceful-fs "^4.1.6" +jsonparse@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" + integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== + +just-diff-apply@^5.2.0: + version "5.4.1" + resolved "https://registry.yarnpkg.com/just-diff-apply/-/just-diff-apply-5.4.1.tgz#1debed059ad009863b4db0e8d8f333d743cdd83b" + integrity sha512-AAV5Jw7tsniWwih8Ly3fXxEZ06y+6p5TwQMsw0dzZ/wPKilzyDgdAnL0Ug4NNIquPUOh1vfFWEHbmXUqM5+o8g== + +just-diff@^5.0.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/just-diff/-/just-diff-5.1.1.tgz#8da6414342a5ed6d02ccd64f5586cbbed3146202" + integrity sha512-u8HXJ3HlNrTzY7zrYYKjNEfBlyjqhdBkoyTVdjtn7p02RJD5NvR8rIClzeGA7t+UYP1/7eAkWNLU0+P3QrEqKQ== + +libnpmaccess@*: + version "6.0.4" + resolved "https://registry.yarnpkg.com/libnpmaccess/-/libnpmaccess-6.0.4.tgz#2dd158bd8a071817e2207d3b201d37cf1ad6ae6b" + integrity sha512-qZ3wcfIyUoW0+qSFkMBovcTrSGJ3ZeyvpR7d5N9pEYv/kXs8sHP2wiqEIXBKLFrZlmM0kR0RJD7mtfLngtlLag== + dependencies: + aproba "^2.0.0" + minipass "^3.1.1" + npm-package-arg "^9.0.1" + npm-registry-fetch "^13.0.0" + +libnpmdiff@*: + version "4.0.5" + resolved "https://registry.yarnpkg.com/libnpmdiff/-/libnpmdiff-4.0.5.tgz#ffaf93fa9440ea759444b8830fdb5c661b09a7c0" + integrity sha512-9fICQIzmH892UwHHPmb+Seup50UIBWcMIK2FdxvlXm9b4kc1nSH0b/BuY1mORJQtB6ydPMnn+BLzOTmd/SKJmw== + dependencies: + "@npmcli/disparity-colors" "^2.0.0" + "@npmcli/installed-package-contents" "^1.0.7" + binary-extensions "^2.2.0" + diff "^5.1.0" + minimatch "^5.0.1" + npm-package-arg "^9.0.1" + pacote "^13.6.1" + tar "^6.1.0" + +libnpmexec@*: + version "4.0.13" + resolved "https://registry.yarnpkg.com/libnpmexec/-/libnpmexec-4.0.13.tgz#6688bd6c02cac31a32d2e56680c3884948cbf453" + integrity sha512-MGi6eD6zqZ1V8VCJenWRc2+rWaFiW/Vkr5Aa/cQAd3duWNvXen9sm101M6ww5ER5PmsT+qX2aZOA3A9ZPfJQXg== + dependencies: + "@npmcli/arborist" "^5.6.2" + "@npmcli/ci-detect" "^2.0.0" + "@npmcli/fs" "^2.1.1" + "@npmcli/run-script" "^4.2.0" + chalk "^4.1.0" + mkdirp-infer-owner "^2.0.0" + npm-package-arg "^9.0.1" + npmlog "^6.0.2" + pacote "^13.6.1" + proc-log "^2.0.0" + read "^1.0.7" + read-package-json-fast "^2.0.2" + semver "^7.3.7" + walk-up-path "^1.0.0" + +libnpmfund@*: + version "3.0.4" + resolved "https://registry.yarnpkg.com/libnpmfund/-/libnpmfund-3.0.4.tgz#be1fd46bcfa9432660f98d935135d7ee3e620239" + integrity sha512-azKUVFkL27AsvzEzLKMHX/L8j/GE2TL6eZ6KIdc9hsvleoNLT+Y6XO9w9v7JWwg03smZK9dbqwvnYZzO3vzrIA== + dependencies: + "@npmcli/arborist" "^5.6.2" + +libnpmhook@*: + version "8.0.4" + resolved "https://registry.yarnpkg.com/libnpmhook/-/libnpmhook-8.0.4.tgz#6c58e5fe763ff5d600ae9c20457ea9a69d1f7d87" + integrity sha512-nuD6e+Nx0OprjEi0wOeqASMl6QIH235th/Du2/8upK3evByFhzIgdfOeP1OhstavW4xtsl0hk5Vw4fAWWuSUgA== + dependencies: + aproba "^2.0.0" + npm-registry-fetch "^13.0.0" + +libnpmorg@*: + version "4.0.4" + resolved "https://registry.yarnpkg.com/libnpmorg/-/libnpmorg-4.0.4.tgz#2a01d49372cf0df90d79a61e69bddaf2ed704311" + integrity sha512-1bTpD7iub1rDCsgiBguhJhiDufLQuc8DEti20euqsXz9O0ncXVpCYqf2SMmHR4GEdmAvAj2r7FMiyA9zGdaTpA== + dependencies: + aproba "^2.0.0" + npm-registry-fetch "^13.0.0" + +libnpmpack@*: + version "4.1.3" + resolved "https://registry.yarnpkg.com/libnpmpack/-/libnpmpack-4.1.3.tgz#025cfe39829acd8260662bf259e3a9331fc1e4b2" + integrity sha512-rYP4X++ME3ZiFO+2iN3YnXJ4LB4Gsd0z5cgszWJZxaEpDN4lRIXirSyynGNsN/hn4taqnlxD+3DPlFDShvRM8w== + dependencies: + "@npmcli/run-script" "^4.1.3" + npm-package-arg "^9.0.1" + pacote "^13.6.1" + +libnpmpublish@*: + version "6.0.5" + resolved "https://registry.yarnpkg.com/libnpmpublish/-/libnpmpublish-6.0.5.tgz#5a894f3de2e267d62f86be2a508e362599b5a4b1" + integrity sha512-LUR08JKSviZiqrYTDfywvtnsnxr+tOvBU0BF8H+9frt7HMvc6Qn6F8Ubm72g5hDTHbq8qupKfDvDAln2TVPvFg== + dependencies: + normalize-package-data "^4.0.0" + npm-package-arg "^9.0.1" + npm-registry-fetch "^13.0.0" + semver "^7.3.7" + ssri "^9.0.0" + +libnpmsearch@*: + version "5.0.4" + resolved "https://registry.yarnpkg.com/libnpmsearch/-/libnpmsearch-5.0.4.tgz#b32aa2b23051c00cdcc0912274d0d416e6655d81" + integrity sha512-XHDmsvpN5+pufvGnfLRqpy218gcGGbbbXR6wPrDJyd1em6agKdYByzU5ccskDHH9iVm2UeLydpDsW1ksYuU0cg== + dependencies: + npm-registry-fetch "^13.0.0" + +libnpmteam@*: + version "4.0.4" + resolved "https://registry.yarnpkg.com/libnpmteam/-/libnpmteam-4.0.4.tgz#ac26068808d93b1051d926457db14e4b3ff669ef" + integrity sha512-rzKSwi6MLzwwevbM/vl+BBQTErgn24tCfgPUdzBlszrw3j5necOu7WnTzgvZMDv6maGUwec6Ut1rxszOgH0l+Q== + dependencies: + aproba "^2.0.0" + npm-registry-fetch "^13.0.0" + +libnpmversion@*: + version "3.0.7" + resolved "https://registry.yarnpkg.com/libnpmversion/-/libnpmversion-3.0.7.tgz#e4c6c07ee28cf351ce1e2293a5ac9922b09ea94d" + integrity sha512-O0L4eNMUIMQ+effi1HsZPKp2N6wecwqGqB8PvkvmLPWN7EsdabdzAVG48nv0p/OjlbIai5KQg/L+qMMfCA4ZjA== + dependencies: + "@npmcli/git" "^3.0.0" + "@npmcli/run-script" "^4.1.3" + json-parse-even-better-errors "^2.3.1" + proc-log "^2.0.0" + semver "^7.3.7" + loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.1, loose-envify@^1.4.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz" integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== dependencies: js-tokens "^3.0.0 || ^4.0.0" lru-cache@^6.0.0: version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== dependencies: yallist "^4.0.0" +lru-cache@^7.4.4, lru-cache@^7.5.1, lru-cache@^7.7.1: + version "7.14.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.14.0.tgz#21be64954a4680e303a09e9468f880b98a0b3c7f" + integrity sha512-EIRtP1GrSJny0dqb50QXRUNBxHJhcpxHC++M5tD7RYbvLLn5KVWKsbyswSSqDuU15UFi3bgTQIY8nhDMeF6aDQ== + +make-fetch-happen@*, make-fetch-happen@^10.0.3, make-fetch-happen@^10.0.6: + version "10.2.1" + resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz#f5e3835c5e9817b617f2770870d9492d28678164" + integrity sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w== + dependencies: + agentkeepalive "^4.2.1" + cacache "^16.1.0" + http-cache-semantics "^4.1.0" + http-proxy-agent "^5.0.0" + https-proxy-agent "^5.0.0" + is-lambda "^1.0.1" + lru-cache "^7.7.1" + minipass "^3.1.6" + minipass-collect "^1.0.2" + minipass-fetch "^2.0.3" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.4" + negotiator "^0.6.3" + promise-retry "^2.0.1" + socks-proxy-agent "^7.0.0" + ssri "^9.0.0" + marked@^0.7.0: version "0.7.0" - resolved "https://registry.yarnpkg.com/marked/-/marked-0.7.0.tgz#b64201f051d271b1edc10a04d1ae9b74bb8e5c0e" + resolved "https://registry.npmjs.org/marked/-/marked-0.7.0.tgz" integrity sha512-c+yYdCZJQrsRjTPhUx7VKkApw9bwDkNbHUKo1ovgcfDjb2kc8rLuRbIFyXL5WOEUwzSSKo3IXpph2K6DqB/KZg== mdn-data@2.0.14: version "2.0.14" - resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" + resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz" integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== media-typer@0.3.0: version "0.3.0" - resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + resolved "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= merge-descriptors@1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + resolved "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz" integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= methods@~1.1.2: version "1.1.2" - resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + resolved "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz" integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= -mime-db@1.51.0: - version "1.51.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.51.0.tgz#d9ff62451859b18342d960850dc3cfb77e63fb0c" - integrity sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g== +mime-db@1.45.0: + version "1.45.0" + resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.45.0.tgz" + integrity sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w== mime-types@^2.1.12, mime-types@~2.1.24: - version "2.1.34" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.34.tgz#5a712f9ec1503511a945803640fafe09d3793c24" - integrity sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A== + version "2.1.28" + resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.28.tgz" + integrity sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ== dependencies: - mime-db "1.51.0" + mime-db "1.45.0" mime@1.6.0: version "1.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== mimic-response@^3.1.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" + resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz" integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== mini-create-react-context@^0.4.0: version "0.4.1" - resolved "https://registry.yarnpkg.com/mini-create-react-context/-/mini-create-react-context-0.4.1.tgz#072171561bfdc922da08a60c2197a497cc2d1d5e" + resolved "https://registry.npmjs.org/mini-create-react-context/-/mini-create-react-context-0.4.1.tgz" integrity sha512-YWCYEmd5CQeHGSAKrYvXgmzzkrvssZcuuQDDeqkT+PziKGMgE+0MCCtcKbROzocGBG1meBLl2FotlRwf4gAzbQ== dependencies: "@babel/runtime" "^7.12.1" @@ -1088,198 +1843,621 @@ mini-create-react-context@^0.4.0: minimatch@^3.0.4: version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz" integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== dependencies: brace-expansion "^1.1.7" +minimatch@^5.0.1, minimatch@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.0.tgz#1717b464f4971b144f6aabe8f2d0b8e4511e09c7" + integrity sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg== + dependencies: + brace-expansion "^2.0.1" + minimist@^1.2.0, minimist@^1.2.3: version "1.2.5" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz" integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== +minipass-collect@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" + integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA== + dependencies: + minipass "^3.0.0" + +minipass-fetch@^2.0.3: + version "2.1.2" + resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-2.1.2.tgz#95560b50c472d81a3bc76f20ede80eaed76d8add" + integrity sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA== + dependencies: + minipass "^3.1.6" + minipass-sized "^1.0.3" + minizlib "^2.1.2" + optionalDependencies: + encoding "^0.1.13" + +minipass-flush@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" + integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== + dependencies: + minipass "^3.0.0" + +minipass-json-stream@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz#7edbb92588fbfc2ff1db2fc10397acb7b6b44aa7" + integrity sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg== + dependencies: + jsonparse "^1.3.1" + minipass "^3.0.0" + +minipass-pipeline@*, minipass-pipeline@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c" + integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== + dependencies: + minipass "^3.0.0" + +minipass-sized@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/minipass-sized/-/minipass-sized-1.0.3.tgz#70ee5a7c5052070afacfbc22977ea79def353b70" + integrity sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g== + dependencies: + minipass "^3.0.0" + +minipass@*, minipass@^3.0.0, minipass@^3.1.1, minipass@^3.1.6: + version "3.3.4" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.4.tgz#ca99f95dd77c43c7a76bf51e6d200025eee0ffae" + integrity sha512-I9WPbWHCGu8W+6k1ZiGpPu0GkoKBeorkfKNuAFBNS1HNFJvke82sxvI5bzcCNpWPorkOO5QQ+zomzzwRxejXiw== + dependencies: + yallist "^4.0.0" + +minizlib@^2.1.1, minizlib@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" + integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== + dependencies: + minipass "^3.0.0" + yallist "^4.0.0" + mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3: version "0.5.3" - resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" + resolved "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz" integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== -ms@2.0.0: +mkdirp-infer-owner@*, mkdirp-infer-owner@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + resolved "https://registry.yarnpkg.com/mkdirp-infer-owner/-/mkdirp-infer-owner-2.0.0.tgz#55d3b368e7d89065c38f32fd38e638f0ab61d316" + integrity sha512-sdqtiFt3lkOaYvTXSRIUjkIdPTcxgv5+fgqYE/5qgwdw12cOrAuzzgzvVExIkH/ul1oeHN3bCLOWSG3XOqbKKw== + dependencies: + chownr "^2.0.0" + infer-owner "^1.0.4" + mkdirp "^1.0.3" -ms@2.1.3: +mkdirp@*, mkdirp@^1.0.3, mkdirp@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + +ms@*, ms@^2.0.0: version "2.1.3" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== +ms@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + +ms@2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz" + integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +mute-stream@~0.0.4: + version "0.0.8" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" + integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== + napi-build-utils@^1.0.1: version "1.0.2" - resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-1.0.2.tgz#b1fddc0b2c46e380a0b7a76f984dd47c41a13806" + resolved "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz" integrity sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg== negotiator@0.6.2: version "0.6.2" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" + resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz" integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== +negotiator@^0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" + integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== + node-abi@^3.3.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.5.0.tgz#26e8b7b251c3260a5ac5ba5aef3b4345a0229248" - integrity sha512-LtHvNIBgOy5mO8mPEUtkCW/YCRWYEKshIvqhe1GHHyXEHEB5mgICyYnAcl4qan3uFeRROErKGzatFHPf6kDxWw== + version "3.26.0" + resolved "https://registry.npmjs.org/node-abi/-/node-abi-3.26.0.tgz" + integrity sha512-jRVtMFTChbi2i/jqo/i2iP9634KMe+7K1v35mIdj3Mn59i5q27ZYhn+sW6npISM/PQg7HrP2kwtRBMmh5Uvzdg== dependencies: semver "^7.3.5" node-fetch@^2.2.0: - version "2.6.7" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" - integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== + version "2.6.1" + resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz" + integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== + +node-gyp@*, node-gyp@^9.0.0: + version "9.3.0" + resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-9.3.0.tgz#f8eefe77f0ad8edb3b3b898409b53e697642b319" + integrity sha512-A6rJWfXFz7TQNjpldJ915WFb1LnhO4lIve3ANPbWreuEoLoKlFT3sxIepPBkLhM27crW8YmN+pjlgbasH6cH/Q== + dependencies: + env-paths "^2.2.0" + glob "^7.1.4" + graceful-fs "^4.2.6" + make-fetch-happen "^10.0.3" + nopt "^6.0.0" + npmlog "^6.0.0" + rimraf "^3.0.2" + semver "^7.3.5" + tar "^6.1.2" + which "^2.0.2" + +nopt@*, nopt@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-6.0.0.tgz#245801d8ebf409c6df22ab9d95b65e1309cdb16d" + integrity sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g== dependencies: - whatwg-url "^5.0.0" + abbrev "^1.0.0" + +normalize-package-data@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-4.0.1.tgz#b46b24e0616d06cadf9d5718b29b6d445a82a62c" + integrity sha512-EBk5QKKuocMJhB3BILuKhmaPjI8vNRSpIfO9woLC6NyHVkKKdVEdAO1mrT0ZfxNR1lKwCcTkuZfmGIFdizZ8Pg== + dependencies: + hosted-git-info "^5.0.0" + is-core-module "^2.8.1" + semver "^7.3.5" + validate-npm-package-license "^3.0.4" normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== -npmlog@^4.0.1: - version "4.1.2" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" - integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== +npm-audit-report@*: + version "3.0.0" + resolved "https://registry.yarnpkg.com/npm-audit-report/-/npm-audit-report-3.0.0.tgz#1bf3e531208b5f77347c8d00c3d9badf5be30cd6" + integrity sha512-tWQzfbwz1sc4244Bx2BVELw0EmZlCsCF0X93RDcmmwhonCsPMoEviYsi+32R+mdRvOWXolPce9zo64n2xgPESw== + dependencies: + chalk "^4.0.0" + +npm-bundled@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.2.tgz#944c78789bd739035b70baa2ca5cc32b8d860bc1" + integrity sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ== + dependencies: + npm-normalize-package-bin "^1.0.1" + +npm-bundled@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-2.0.1.tgz#94113f7eb342cd7a67de1e789f896b04d2c600f4" + integrity sha512-gZLxXdjEzE/+mOstGDqR6b0EkhJ+kM6fxM6vUuckuctuVPh80Q6pw/rSZj9s4Gex9GxWtIicO1pc8DB9KZWudw== + dependencies: + npm-normalize-package-bin "^2.0.0" + +npm-install-checks@*, npm-install-checks@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/npm-install-checks/-/npm-install-checks-5.0.0.tgz#5ff27d209a4e3542b8ac6b0c1db6063506248234" + integrity sha512-65lUsMI8ztHCxFz5ckCEC44DRvEGdZX5usQFriauxHEwt7upv1FKaQEmAtU0YnOAdwuNWCmk64xYiQABNrEyLA== dependencies: - are-we-there-yet "~1.1.2" - console-control-strings "~1.1.0" - gauge "~2.7.3" - set-blocking "~2.0.0" + semver "^7.1.1" -number-is-nan@^1.0.0: +npm-normalize-package-bin@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" - integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= + resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2" + integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA== + +npm-normalize-package-bin@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-2.0.0.tgz#9447a1adaaf89d8ad0abe24c6c84ad614a675fff" + integrity sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ== + +npm-package-arg@*, npm-package-arg@^9.0.0, npm-package-arg@^9.0.1, npm-package-arg@^9.1.0: + version "9.1.2" + resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-9.1.2.tgz#fc8acecb00235f42270dda446f36926ddd9ac2bc" + integrity sha512-pzd9rLEx4TfNJkovvlBSLGhq31gGu2QDexFPWT19yCDh0JgnRhlBLNo5759N0AJmBk+kQ9Y/hXoLnlgFD+ukmg== + dependencies: + hosted-git-info "^5.0.0" + proc-log "^2.0.1" + semver "^7.3.5" + validate-npm-package-name "^4.0.0" + +npm-packlist@^5.1.0: + version "5.1.3" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-5.1.3.tgz#69d253e6fd664b9058b85005905012e00e69274b" + integrity sha512-263/0NGrn32YFYi4J533qzrQ/krmmrWwhKkzwTuM4f/07ug51odoaNjUexxO4vxlzURHcmYMH1QjvHjsNDKLVg== + dependencies: + glob "^8.0.1" + ignore-walk "^5.0.1" + npm-bundled "^2.0.0" + npm-normalize-package-bin "^2.0.0" + +npm-packlist@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-7.0.0.tgz#d451b7d797d4b05128796d9573d69be51fdf8f31" + integrity sha512-8GRMzWQmFdUrRmc6tPPCd9Umm9g2qDR6X6Rik+9nYvoDQTLs/0IcCKv6iUdAmgr9sgJCm24QovwozCHWMDriOg== + dependencies: + ignore-walk "^5.0.1" + +npm-pick-manifest@*, npm-pick-manifest@^7.0.0, npm-pick-manifest@^7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-7.0.2.tgz#1d372b4e7ea7c6712316c0e99388a73ed3496e84" + integrity sha512-gk37SyRmlIjvTfcYl6RzDbSmS9Y4TOBXfsPnoYqTHARNgWbyDiCSMLUpmALDj4jjcTZpURiEfsSHJj9k7EV4Rw== + dependencies: + npm-install-checks "^5.0.0" + npm-normalize-package-bin "^2.0.0" + npm-package-arg "^9.0.0" + semver "^7.3.5" -object-assign@^4.1.0, object-assign@^4.1.1: +npm-profile@*: + version "7.0.0" + resolved "https://registry.yarnpkg.com/npm-profile/-/npm-profile-7.0.0.tgz#795552ddb8d9b605ceac9063d1dbff982aa2cab0" + integrity sha512-/WbM1IJzmOECMOsxx75kgpKCn6v2doXsvv2/FQeSmSuHxN2IzeLqqjrsQU2lBOf0fZIbyoR5vxLrnI8vvnXd0A== + dependencies: + npm-registry-fetch "^13.0.1" + proc-log "^2.0.0" + +npm-registry-fetch@*, npm-registry-fetch@^13.0.0, npm-registry-fetch@^13.0.1: + version "13.3.1" + resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-13.3.1.tgz#bb078b5fa6c52774116ae501ba1af2a33166af7e" + integrity sha512-eukJPi++DKRTjSBRcDZSDDsGqRK3ehbxfFUcgaRd0Yp6kRwOwh2WVn0r+8rMB4nnuzvAk6rQVzl6K5CkYOmnvw== + dependencies: + make-fetch-happen "^10.0.6" + minipass "^3.1.6" + minipass-fetch "^2.0.3" + minipass-json-stream "^1.0.1" + minizlib "^2.1.2" + npm-package-arg "^9.0.1" + proc-log "^2.0.0" + +npm-user-validate@*: + version "1.0.1" + resolved "https://registry.yarnpkg.com/npm-user-validate/-/npm-user-validate-1.0.1.tgz#31428fc5475fe8416023f178c0ab47935ad8c561" + integrity sha512-uQwcd/tY+h1jnEaze6cdX/LrhWhoBxfSknxentoqmIuStxUExxjWd3ULMLFPiFUrZKbOVMowH6Jq2FRWfmhcEw== + +npm@7.24.2: + version "7.24.2" + resolved "https://registry.npmjs.org/npm/-/npm-7.24.2.tgz" + integrity sha512-120p116CE8VMMZ+hk8IAb1inCPk4Dj3VZw29/n2g6UI77urJKVYb7FZUDW8hY+EBnfsjI/2yrobBgFyzo7YpVQ== + dependencies: + "@isaacs/string-locale-compare" "^1.1.0" + "@npmcli/arborist" "^2.9.0" + "@npmcli/ci-detect" "^1.2.0" + "@npmcli/config" "^2.3.0" + "@npmcli/map-workspaces" "^1.0.4" + "@npmcli/package-json" "^1.0.1" + "@npmcli/run-script" "^1.8.6" + abbrev "~1.1.1" + ansicolors "~0.3.2" + ansistyles "~0.1.3" + archy "~1.0.0" + cacache "^15.3.0" + chalk "^4.1.2" + chownr "^2.0.0" + cli-columns "^3.1.2" + cli-table3 "^0.6.0" + columnify "~1.5.4" + fastest-levenshtein "^1.0.12" + glob "^7.2.0" + graceful-fs "^4.2.8" + hosted-git-info "^4.0.2" + ini "^2.0.0" + init-package-json "^2.0.5" + is-cidr "^4.0.2" + json-parse-even-better-errors "^2.3.1" + libnpmaccess "^4.0.2" + libnpmdiff "^2.0.4" + libnpmexec "^2.0.1" + libnpmfund "^1.1.0" + libnpmhook "^6.0.2" + libnpmorg "^2.0.2" + libnpmpack "^2.0.1" + libnpmpublish "^4.0.1" + libnpmsearch "^3.1.1" + libnpmteam "^2.0.3" + libnpmversion "^1.2.1" + make-fetch-happen "^9.1.0" + minipass "^3.1.3" + minipass-pipeline "^1.2.4" + mkdirp "^1.0.4" + mkdirp-infer-owner "^2.0.0" + ms "^2.1.2" + node-gyp "^7.1.2" + nopt "^5.0.0" + npm-audit-report "^2.1.5" + npm-install-checks "^4.0.0" + npm-package-arg "^8.1.5" + npm-pick-manifest "^6.1.1" + npm-profile "^5.0.3" + npm-registry-fetch "^11.0.0" + npm-user-validate "^1.0.1" + npmlog "^5.0.1" + opener "^1.5.2" + pacote "^11.3.5" + parse-conflict-json "^1.1.1" + qrcode-terminal "^0.12.0" + read "~1.0.7" + read-package-json "^4.1.1" + read-package-json-fast "^2.0.3" + readdir-scoped-modules "^1.1.0" + rimraf "^3.0.2" + semver "^7.3.5" + ssri "^8.0.1" + tar "^6.1.11" + text-table "~0.2.0" + tiny-relative-date "^1.3.0" + treeverse "^1.0.4" + validate-npm-package-name "~3.0.0" + which "^2.0.2" + write-file-atomic "^3.0.3" + +npmlog@*, npmlog@^6.0.0, npmlog@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-6.0.2.tgz#c8166017a42f2dea92d6453168dd865186a70830" + integrity sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg== + dependencies: + are-we-there-yet "^3.0.0" + console-control-strings "^1.1.0" + gauge "^4.0.3" + set-blocking "^2.0.0" + +object-assign@^4.1.1: version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= on-finished@~2.3.0: version "2.3.0" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz" integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= dependencies: ee-first "1.1.1" once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= dependencies: wrappy "1" +opener@*: + version "1.5.2" + resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" + integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== + +p-map@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" + integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== + dependencies: + aggregate-error "^3.0.0" + +pacote@*: + version "14.0.0" + resolved "https://registry.yarnpkg.com/pacote/-/pacote-14.0.0.tgz#aff1d9ac0fb420eb79187b291ecded20b370d8d3" + integrity sha512-SYXfAQi7Bj+suydMz7lVnEF4/xNIvP+uobXGPwIUdFPkUxoOBHYxCakMXHGQQZ9lIHLj2IXTJ6BeWSe6U/uAYg== + dependencies: + "@npmcli/git" "^3.0.0" + "@npmcli/installed-package-contents" "^1.0.7" + "@npmcli/promise-spawn" "^3.0.0" + "@npmcli/run-script" "^4.1.0" + cacache "^16.0.0" + chownr "^2.0.0" + fs-minipass "^2.1.0" + infer-owner "^1.0.4" + minipass "^3.1.6" + mkdirp "^1.0.4" + npm-package-arg "^9.0.0" + npm-packlist "^7.0.0" + npm-pick-manifest "^7.0.0" + npm-registry-fetch "^13.0.1" + proc-log "^2.0.0" + promise-retry "^2.0.1" + read-package-json "^5.0.0" + read-package-json-fast "^2.0.3" + rimraf "^3.0.2" + ssri "^9.0.0" + tar "^6.1.11" + +pacote@^13.0.3, pacote@^13.6.1: + version "13.6.2" + resolved "https://registry.yarnpkg.com/pacote/-/pacote-13.6.2.tgz#0d444ba3618ab3e5cd330b451c22967bbd0ca48a" + integrity sha512-Gu8fU3GsvOPkak2CkbojR7vjs3k3P9cA6uazKTHdsdV0gpCEQq2opelnEv30KRQWgVzP5Vd/5umjcedma3MKtg== + dependencies: + "@npmcli/git" "^3.0.0" + "@npmcli/installed-package-contents" "^1.0.7" + "@npmcli/promise-spawn" "^3.0.0" + "@npmcli/run-script" "^4.1.0" + cacache "^16.0.0" + chownr "^2.0.0" + fs-minipass "^2.1.0" + infer-owner "^1.0.4" + minipass "^3.1.6" + mkdirp "^1.0.4" + npm-package-arg "^9.0.0" + npm-packlist "^5.1.0" + npm-pick-manifest "^7.0.0" + npm-registry-fetch "^13.0.1" + proc-log "^2.0.0" + promise-retry "^2.0.1" + read-package-json "^5.0.0" + read-package-json-fast "^2.0.3" + rimraf "^3.0.2" + ssri "^9.0.0" + tar "^6.1.11" + +parse-conflict-json@*, parse-conflict-json@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/parse-conflict-json/-/parse-conflict-json-2.0.2.tgz#3d05bc8ffe07d39600dc6436c6aefe382033d323" + integrity sha512-jDbRGb00TAPFsKWCpZZOT93SxVP9nONOSgES3AevqRq/CHvavEBvKAjxX9p5Y5F0RZLxH9Ufd9+RwtCsa+lFDA== + dependencies: + json-parse-even-better-errors "^2.3.1" + just-diff "^5.0.1" + just-diff-apply "^5.2.0" + parse-package-name@^0.1.0: version "0.1.0" - resolved "https://registry.yarnpkg.com/parse-package-name/-/parse-package-name-0.1.0.tgz#3f44dd838feb4c2be4bf318bae4477d7706bade4" - integrity sha1-P0Tdg4/rTCvkvzGLrkR313BrreQ= + resolved "https://registry.npmjs.org/parse-package-name/-/parse-package-name-0.1.0.tgz" + integrity sha512-OT2+32knn014ggXMpGjZeHHsTYwOvHmRAMFtVBZstWAnR4UVIOw+JOhWZUCv5JwZQAMiisfdF2K5SyGI5OXXIg== parseurl@~1.3.3: version "1.3.3" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz" integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== path-is-absolute@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= path-to-regexp@0.1.7: version "0.1.7" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz" integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= path-to-regexp@^1.7.0: version "1.8.0" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a" + resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz" integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA== dependencies: isarray "0.0.1" picomatch@^2.0.4, picomatch@^2.2.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" - integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + version "2.2.2" + resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz" + integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== -prebuild-install@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-7.0.0.tgz#3c5ce3902f1cb9d6de5ae94ca53575e4af0c1574" - integrity sha512-IvSenf33K7JcgddNz2D5w521EgO+4aMMjFt73Uk9FRzQ7P+QZPKrp7qPsDydsSwjGt3T5xRNnM1bj1zMTD5fTA== +postcss-selector-parser@^6.0.10: + version "6.0.10" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz#79b61e2c0d1bfc2602d549e11d0876256f8df88d" + integrity sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + +prebuild-install@^7.1.0: + version "7.1.1" + resolved "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.1.tgz" + integrity sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw== dependencies: - detect-libc "^1.0.3" + detect-libc "^2.0.0" expand-template "^2.0.3" github-from-package "0.0.0" minimist "^1.2.3" mkdirp-classic "^0.5.3" napi-build-utils "^1.0.1" node-abi "^3.3.0" - npmlog "^4.0.1" pump "^3.0.0" rc "^1.2.7" simple-get "^4.0.0" tar-fs "^2.0.0" tunnel-agent "^0.6.0" -process-nextick-args@~2.0.0: +proc-log@^2.0.0, proc-log@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/proc-log/-/proc-log-2.0.1.tgz#8f3f69a1f608de27878f91f5c688b225391cb685" + integrity sha512-Kcmo2FhfDTXdcbfDH76N7uBYHINxc/8GW7UAVuVP9I+Va3uHSerrnKV6dLooga/gh7GlgzuCCr/eoldnL1muGw== + +promise-all-reject-late@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/promise-all-reject-late/-/promise-all-reject-late-1.0.1.tgz#f8ebf13483e5ca91ad809ccc2fcf25f26f8643c2" + integrity sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw== + +promise-call-limit@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/promise-call-limit/-/promise-call-limit-1.0.1.tgz#4bdee03aeb85674385ca934da7114e9bcd3c6e24" + integrity sha512-3+hgaa19jzCGLuSCbieeRsu5C2joKfYn8pY6JAuXFRVfF4IO+L7UPpFWNTeWT9pM7uhskvbPPd/oEOktCn317Q== + +promise-inflight@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" + integrity sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g== + +promise-retry@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" - integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + resolved "https://registry.yarnpkg.com/promise-retry/-/promise-retry-2.0.1.tgz#ff747a13620ab57ba688f5fc67855410c370da22" + integrity sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g== + dependencies: + err-code "^2.0.2" + retry "^0.12.0" + +promzard@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/promzard/-/promzard-0.3.0.tgz#26a5d6ee8c7dee4cb12208305acfb93ba382a9ee" + integrity sha512-JZeYqd7UAcHCwI+sTOeUDYkvEU+1bQ7iE0UT1MgB/tERkAPkesW46MrpIySzODi+owTjZtiF8Ay5j9m60KmMBw== + dependencies: + read "1" prop-types@^15.6.2: - version "15.8.1" - resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" - integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== + version "15.7.2" + resolved "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz" + integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== dependencies: loose-envify "^1.4.0" object-assign "^4.1.1" - react-is "^16.13.1" + react-is "^16.8.1" -proxy-addr@~2.0.7: - version "2.0.7" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" - integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== +proxy-addr@~2.0.5: + version "2.0.6" + resolved "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz" + integrity sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw== dependencies: - forwarded "0.2.0" + forwarded "~0.1.2" ipaddr.js "1.9.1" pump@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + resolved "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz" integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== dependencies: end-of-stream "^1.1.0" once "^1.3.1" -qs@6.9.6: - version "6.9.6" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.6.tgz#26ed3c8243a431b2924aca84cc90471f35d5a0ee" - integrity sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ== +qrcode-terminal@*: + version "0.12.0" + resolved "https://registry.yarnpkg.com/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz#bb5b699ef7f9f0505092a3748be4464fe71b5819" + integrity sha512-EXtzRZmC+YGmGlDFbXKxQiMZNwCLEO6BANKXG4iCtSIM0yqc/pappSx3RIKr4r0uh5JsBckOXeKrB3Iz7mdQpQ== + +qs@6.7.0: + version "6.7.0" + resolved "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz" + integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== range-parser@~1.2.1: version "1.2.1" - resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== -raw-body@2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.2.tgz#baf3e9c21eebced59dd6533ac872b71f7b61cb32" - integrity sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ== +raw-body@2.4.0: + version "2.4.0" + resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz" + integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== dependencies: - bytes "3.1.1" - http-errors "1.8.1" + bytes "3.1.0" + http-errors "1.7.2" iconv-lite "0.4.24" unpipe "1.0.0" rc@^1.2.7: version "1.2.8" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + resolved "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz" integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== dependencies: deep-extend "^0.6.0" @@ -1289,7 +2467,7 @@ rc@^1.2.7: react-dom@^16.13.1: version "16.14.0" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.14.0.tgz#7ad838ec29a777fb3c75c3a190f661cf92ab8b89" + resolved "https://registry.npmjs.org/react-dom/-/react-dom-16.14.0.tgz" integrity sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw== dependencies: loose-envify "^1.1.0" @@ -1297,30 +2475,30 @@ react-dom@^16.13.1: prop-types "^15.6.2" scheduler "^0.19.1" -react-is@^16.13.1, react-is@^16.6.0, react-is@^16.7.0: +react-is@^16.6.0, react-is@^16.7.0, react-is@^16.8.1: version "16.13.1" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" + resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== react-router-dom@^5.0.1: - version "5.3.0" - resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-5.3.0.tgz#da1bfb535a0e89a712a93b97dd76f47ad1f32363" - integrity sha512-ObVBLjUZsphUUMVycibxgMdh5jJ1e3o+KpAZBVeHcNQZ4W+uUGGWsokurzlF4YOldQYRQL4y6yFRWM4m3svmuQ== + version "5.2.0" + resolved "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.2.0.tgz" + integrity sha512-gxAmfylo2QUjcwxI63RhQ5G85Qqt4voZpUXSEqCwykV0baaOTQDR1f0PmY8AELqIyVc0NEZUj0Gov5lNGcXgsA== dependencies: - "@babel/runtime" "^7.12.13" + "@babel/runtime" "^7.1.2" history "^4.9.0" loose-envify "^1.3.1" prop-types "^15.6.2" - react-router "5.2.1" + react-router "5.2.0" tiny-invariant "^1.0.2" tiny-warning "^1.0.0" -react-router@5.2.1, react-router@^5.0.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/react-router/-/react-router-5.2.1.tgz#4d2e4e9d5ae9425091845b8dbc6d9d276239774d" - integrity sha512-lIboRiOtDLFdg1VTemMwud9vRVuOCZmUIT/7lUoZiSpPODiiH1UQlfXy+vPLC/7IWdFYnhRwAyNqA/+I7wnvKQ== +react-router@5.2.0, react-router@^5.0.1: + version "5.2.0" + resolved "https://registry.npmjs.org/react-router/-/react-router-5.2.0.tgz" + integrity sha512-smz1DUuFHRKdcJC0jobGo8cVbhO3x50tCL4icacOlcwDOEQPq4TMqwx3sY1TP+DvtTgz4nm3thuo7A+BK2U0Dw== dependencies: - "@babel/runtime" "^7.12.13" + "@babel/runtime" "^7.1.2" history "^4.9.0" hoist-non-react-statics "^3.1.0" loose-envify "^1.3.1" @@ -1333,83 +2511,118 @@ react-router@5.2.1, react-router@^5.0.1: react@^16.13.1: version "16.14.0" - resolved "https://registry.yarnpkg.com/react/-/react-16.14.0.tgz#94d776ddd0aaa37da3eda8fc5b6b18a4c9a3114d" + resolved "https://registry.npmjs.org/react/-/react-16.14.0.tgz" integrity sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" prop-types "^15.6.2" -readable-stream@^2.0.6: - version "2.3.7" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" - integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== +read-cmd-shim@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/read-cmd-shim/-/read-cmd-shim-3.0.1.tgz#868c235ec59d1de2db69e11aec885bc095aea087" + integrity sha512-kEmDUoYf/CDy8yZbLTmhB1X9kkjf9Q80PCNsDMb7ufrGd6zZSQA1+UyjrO+pZm5K/S4OXCWJeiIt1JA8kAsa6g== + +read-package-json-fast@*: + version "3.0.0" + resolved "https://registry.yarnpkg.com/read-package-json-fast/-/read-package-json-fast-3.0.0.tgz#1931be7e06ab0e1e11223f5bb4ce0da2d4dbcc36" + integrity sha512-dVZMRA86XfZYNxQu18el+HG18L92Rn9CyOhOiQRPFR6ygigZwnmPg1DEVPNFBesp8JeISYYLvvD8DaEkUSTFkQ== + dependencies: + json-parse-even-better-errors "^3.0.0" + npm-normalize-package-bin "^2.0.0" + +read-package-json-fast@^2.0.2, read-package-json-fast@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/read-package-json-fast/-/read-package-json-fast-2.0.3.tgz#323ca529630da82cb34b36cc0b996693c98c2b83" + integrity sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ== + dependencies: + json-parse-even-better-errors "^2.3.0" + npm-normalize-package-bin "^1.0.1" + +read-package-json@*, read-package-json@^5.0.0: + version "5.0.2" + resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-5.0.2.tgz#b8779ccfd169f523b67208a89cc912e3f663f3fa" + integrity sha512-BSzugrt4kQ/Z0krro8zhTwV1Kd79ue25IhNN/VtHFy1mG/6Tluyi+msc0UpwaoQzxSHa28mntAjIZY6kEgfR9Q== + dependencies: + glob "^8.0.1" + json-parse-even-better-errors "^2.3.1" + normalize-package-data "^4.0.0" + npm-normalize-package-bin "^2.0.0" + +read@*, read@1, read@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/read/-/read-1.0.7.tgz#b3da19bd052431a97671d44a42634adf710b40c4" + integrity sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ== dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" + mute-stream "~0.0.4" -readable-stream@^3.1.1, readable-stream@^3.4.0: +readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: version "3.6.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz" integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== dependencies: inherits "^2.0.3" string_decoder "^1.1.1" util-deprecate "^1.0.1" -readdirp@~3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" - integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== +readdir-scoped-modules@*, readdir-scoped-modules@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz#8d45407b4f870a0dcaebc0e28670d18e74514309" + integrity sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw== + dependencies: + debuglog "^1.0.1" + dezalgo "^1.0.0" + graceful-fs "^4.1.2" + once "^1.3.0" + +readdirp@~3.5.0: + version "3.5.0" + resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz" + integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ== dependencies: picomatch "^2.2.1" regenerator-runtime@^0.13.4: - version "0.13.9" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" - integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== + version "0.13.7" + resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz" + integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== resolve-pathname@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-3.0.0.tgz#99d02224d3cf263689becbb393bc560313025dcd" + resolved "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz" integrity sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng== -rimraf@^3.0.0: +retry@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" + integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== + +rimraf@*, rimraf@^3.0.0, rimraf@^3.0.2: version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== dependencies: glob "^7.1.3" rw@1: version "1.3.3" - resolved "https://registry.yarnpkg.com/rw/-/rw-1.3.3.tgz#3f862dfa91ab766b14885ef4d01124bfda074fb4" + resolved "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz" integrity sha1-P4Yt+pGrdmsUiF700BEkv9oHT7Q= -safe-buffer@5.2.1, safe-buffer@^5.0.1, safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safe-buffer@~5.1.0, safe-buffer@~5.1.1: +safe-buffer@5.1.2, safe-buffer@^5.0.1, safe-buffer@~5.1.0: version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== "safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== sass@^1.32.4: - version "1.49.0" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.49.0.tgz#65ec1b1d9a6bc1bae8d2c9d4b392c13f5d32c078" - integrity sha512-TVwVdNDj6p6b4QymJtNtRS2YtLJ/CqZriGg0eIAbAKMlN8Xy6kbv33FsEZSF7FufFFM705SQviHjjThfaQ4VNw== + version "1.55.0" + resolved "https://registry.npmjs.org/sass/-/sass-1.55.0.tgz" + integrity sha512-Pk+PMy7OGLs9WaxZGJMn7S96dvlyVBwwtToX895WmCpAOr5YiJYEUJfiJidMuKb613z2xNWcXCHEuOvjZbqC6A== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" @@ -1417,23 +2630,30 @@ sass@^1.32.4: scheduler@^0.19.1: version "0.19.1" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.19.1.tgz#4f3e2ed2c1a7d65681f4c854fa8c5a1ccb40f196" + resolved "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz" integrity sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" -semver@^7.3.5: +semver@*, semver@^7.1.1: version "7.3.5" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" + resolved "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz" integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== dependencies: lru-cache "^6.0.0" -send@0.17.2: - version "0.17.2" - resolved "https://registry.yarnpkg.com/send/-/send-0.17.2.tgz#926622f76601c41808012c8bf1688fe3906f7820" - integrity sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww== +semver@^7.0.0, semver@^7.3.5, semver@^7.3.7: + version "7.3.8" + resolved "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz" + integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== + dependencies: + lru-cache "^6.0.0" + +send@0.17.1: + version "0.17.1" + resolved "https://registry.npmjs.org/send/-/send-0.17.1.tgz" + integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== dependencies: debug "2.6.9" depd "~1.1.2" @@ -1442,82 +2662,128 @@ send@0.17.2: escape-html "~1.0.3" etag "~1.8.1" fresh "0.5.2" - http-errors "1.8.1" + http-errors "~1.7.2" mime "1.6.0" - ms "2.1.3" + ms "2.1.1" on-finished "~2.3.0" range-parser "~1.2.1" statuses "~1.5.0" -serve-static@1.14.2: - version "1.14.2" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.2.tgz#722d6294b1d62626d41b43a013ece4598d292bfa" - integrity sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ== +serve-static@1.14.1: + version "1.14.1" + resolved "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz" + integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== dependencies: encodeurl "~1.0.2" escape-html "~1.0.3" parseurl "~1.3.3" - send "0.17.2" + send "0.17.1" -set-blocking@~2.0.0: +set-blocking@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz" integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= -setprototypeof@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" - integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== +setprototypeof@1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz" + integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== -signal-exit@^3.0.0: - version "3.0.6" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.6.tgz#24e630c4b0f03fea446a2bd299e62b4a6ca8d0af" - integrity sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ== +signal-exit@^3.0.7: + version "3.0.7" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== simple-concat@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" + resolved "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz" integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== simple-get@^4.0.0: version "4.0.1" - resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-4.0.1.tgz#4a39db549287c979d352112fa03fd99fd6bc3543" + resolved "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz" integrity sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA== dependencies: decompress-response "^6.0.0" once "^1.3.1" simple-concat "^1.0.0" +smart-buffer@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" + integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== + +socks-proxy-agent@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz#dc069ecf34436621acb41e3efa66ca1b5fed15b6" + integrity sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww== + dependencies: + agent-base "^6.0.2" + debug "^4.3.3" + socks "^2.6.2" + +socks@^2.6.2: + version "2.7.1" + resolved "https://registry.yarnpkg.com/socks/-/socks-2.7.1.tgz#d8e651247178fde79c0663043e07240196857d55" + integrity sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ== + dependencies: + ip "^2.0.0" + smart-buffer "^4.2.0" + "source-map-js@>=0.6.2 <2.0.0": version "1.0.2" - resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" + resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz" integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== source-map@^0.6.1: version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== +spdx-correct@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" + integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" + integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== + +spdx-expression-parse@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.12" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz#69077835abe2710b65f03969898b6637b505a779" + integrity sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA== + sqlite-parser@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/sqlite-parser/-/sqlite-parser-1.0.1.tgz#110183f2682f04ac6c7d8ad09c44446ef976d5ec" - integrity sha1-EQGD8mgvBKxsfYrQnEREbvl21ew= + resolved "https://registry.npmjs.org/sqlite-parser/-/sqlite-parser-1.0.1.tgz" + integrity sha512-/es+YmgQG+VFbwAQD0Nd0Mdzgky8rW3M85zcy2+Vtk3Sj5ydaMl/lopWPehsjsByGw/swVuXSBeMJFh47doRUw== + +ssri@*, ssri@^9.0.0: + version "9.0.1" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-9.0.1.tgz#544d4c357a8d7b71a19700074b6883fcb4eae057" + integrity sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q== + dependencies: + minipass "^3.1.1" "statuses@>= 1.5.0 < 2", statuses@~1.5.0: version "1.5.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz" integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= -string-width@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" - integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= - dependencies: - code-point-at "^1.0.0" - is-fullwidth-code-point "^1.0.0" - strip-ansi "^3.0.0" - -"string-width@^1.0.2 || 2 || 3 || 4": +"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -1527,26 +2793,12 @@ string-width@^1.0.1: strip-ansi "^6.0.1" string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== dependencies: safe-buffer "~5.1.0" -strip-ansi@^3.0.0, strip-ansi@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= - dependencies: - ansi-regex "^2.0.0" - strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" @@ -1556,12 +2808,19 @@ strip-ansi@^6.0.1: strip-json-comments@~2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= + resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz" + integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" tar-fs@^2.0.0: version "2.1.1" - resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784" + resolved "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz" integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng== dependencies: chownr "^1.1.1" @@ -1571,7 +2830,7 @@ tar-fs@^2.0.0: tar-stream@^2.1.4: version "2.2.0" - resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" + resolved "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz" integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== dependencies: bl "^4.0.3" @@ -1580,106 +2839,156 @@ tar-stream@^2.1.4: inherits "^2.0.3" readable-stream "^3.1.1" +tar@*, tar@^6.1.0, tar@^6.1.11, tar@^6.1.2: + version "6.1.11" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.11.tgz#6760a38f003afa1b2ffd0ffe9e9abbd0eab3d621" + integrity sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA== + dependencies: + chownr "^2.0.0" + fs-minipass "^2.0.0" + minipass "^3.0.0" + minizlib "^2.1.1" + mkdirp "^1.0.3" + yallist "^4.0.0" + +text-table@*: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== + tiny-invariant@^1.0.2: - version "1.2.0" - resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.2.0.tgz#a1141f86b672a9148c72e978a19a73b9b94a15a9" - integrity sha512-1Uhn/aqw5C6RI4KejVeTg6mIS7IqxnLJ8Mv2tV5rTc0qWobay7pDUz6Wi392Cnc8ak1H0F2cjoRzb2/AW4+Fvg== + version "1.1.0" + resolved "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.1.0.tgz" + integrity sha512-ytxQvrb1cPc9WBEI/HSeYYoGD0kWnGEOR8RY6KomWLBVhqz0RgTwVO9dLrGz7dC+nN9llyI7OKAgRq8Vq4ZBSw== + +tiny-relative-date@*: + version "1.3.0" + resolved "https://registry.yarnpkg.com/tiny-relative-date/-/tiny-relative-date-1.3.0.tgz#fa08aad501ed730f31cc043181d995c39a935e07" + integrity sha512-MOQHpzllWxDCHHaDno30hhLfbouoYlOI8YlMNtvKe1zXbjEVhbcEovQxvZrPvtiYW630GQDoMMarCnjfyfHA+A== tiny-warning@^1.0.0, tiny-warning@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" + resolved "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz" integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== tmp@^0.2.1: version "0.2.1" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14" + resolved "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz" integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== dependencies: rimraf "^3.0.0" to-regex-range@^5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== dependencies: is-number "^7.0.0" -toidentifier@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" - integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== +toidentifier@1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz" + integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== -tr46@~0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= +treeverse@*, treeverse@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/treeverse/-/treeverse-2.0.0.tgz#036dcef04bc3fd79a9b79a68d4da03e882d8a9ca" + integrity sha512-N5gJCkLu1aXccpOTtqV6ddSEi6ZmGkh3hjmbu1IjcavJK4qyOVQmi0myQKM7z5jVGmD68SJoliaVrMmVObhj6A== tunnel-agent@^0.6.0: version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + resolved "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz" integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= dependencies: safe-buffer "^5.0.1" -type-is@~1.6.18: +type-is@~1.6.17, type-is@~1.6.18: version "1.6.18" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz" integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== dependencies: media-typer "0.3.0" mime-types "~2.1.24" +unique-filename@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-2.0.1.tgz#e785f8675a9a7589e0ac77e0b5c34d2eaeac6da2" + integrity sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A== + dependencies: + unique-slug "^3.0.0" + +unique-slug@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-3.0.0.tgz#6d347cf57c8a7a7a6044aabd0e2d74e4d76dc7c9" + integrity sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w== + dependencies: + imurmurhash "^0.1.4" + universalify@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" + resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz" integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= -util-deprecate@^1.0.1, util-deprecate@~1.0.1: +util-deprecate@^1.0.1, util-deprecate@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= utils-merge@1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz" integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= +validate-npm-package-license@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +validate-npm-package-name@*, validate-npm-package-name@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-4.0.0.tgz#fe8f1c50ac20afdb86f177da85b3600f0ac0d747" + integrity sha512-mzR0L8ZDktZjpX4OB46KT+56MAhl4EIazWP/+G/HPGuvfdaqg4YsCdtOm6U9+LOFyYDoh4dpnpxZRB9MQQns5Q== + dependencies: + builtins "^5.0.0" + value-equal@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/value-equal/-/value-equal-1.0.1.tgz#1e0b794c734c5c0cade179c437d356d931a34d6c" + resolved "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz" integrity sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw== vary@~1.1.2: version "1.1.2" - resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz" integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= -webidl-conversions@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE= +walk-up-path@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/walk-up-path/-/walk-up-path-1.0.0.tgz#d4745e893dd5fd0dbb58dd0a4c6a33d9c9fec53e" + integrity sha512-hwj/qMDUEjCU5h0xr90KGCf0tg0/LgJbmOWgrWKYlcJZM7XvquvUJZ0G/HMGr7F7OQMOUuPHWP9JpriinkAlkg== -whatwg-url@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" - integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0= +wcwidth@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" + integrity sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg== dependencies: - tr46 "~0.0.3" - webidl-conversions "^3.0.0" + defaults "^1.0.3" -which@^1.2.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" - integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== +which@*, which@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== dependencies: isexe "^2.0.0" -wide-align@^1.1.0: +wide-align@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3" integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== @@ -1688,10 +2997,18 @@ wide-align@^1.1.0: wrappy@1: version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= +write-file-atomic@*, write-file-atomic@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.2.tgz#a9df01ae5b77858a027fd2e80768ee433555fcfd" + integrity sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg== + dependencies: + imurmurhash "^0.1.4" + signal-exit "^3.0.7" + yallist@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== From be478251740598bdaf622cb1997f3504308c0eea Mon Sep 17 00:00:00 2001 From: kirjavascript Date: Wed, 19 Oct 2022 19:49:29 +0100 Subject: [PATCH 52/94] better error handling on events --- irc/events.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/irc/events.js b/irc/events.js index 124b55e..3eee5b4 100644 --- a/irc/events.js +++ b/irc/events.js @@ -134,7 +134,7 @@ function createEventManager(node) { }, }) .then(() => ref.runEvents.run(ref.vm.context)) - .catch(console.error) + .catch((error) => console.error(error, eventData, new Date())) .finally(() => { runningEvents = false; if (queue.length) queue.pop()(); From 1b6d2bd83eadbe4861433620896d7a4c4b9ead39 Mon Sep 17 00:00:00 2001 From: kirjavascript Date: Sun, 23 Oct 2022 19:35:23 +0100 Subject: [PATCH 53/94] use an unresponsive check instead of checking if it's disposed --- base/index.js | 6 +++--- irc/events.js | 17 ++++++++++++++--- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/base/index.js b/base/index.js index 538b997..2523b44 100644 --- a/base/index.js +++ b/base/index.js @@ -43,11 +43,11 @@ new (class Nibblr { const checkAliveInterval = setInterval(() => { this.servers.forEach(node => { - if (node.events.isDisposed) { - console.error(`${node.config.address} was disposed at ${(new Date()).toISOString()}). restarting...`); + node.events.unresponsive((err) => { + console.error(err, `${node.config.address} died at ${(new Date()).toISOString()}). restarting...`); node.events.dispose(); node.createEventManager(); - } + }); }) }, 10000); diff --git a/irc/events.js b/irc/events.js index 3eee5b4..dda9ba2 100644 --- a/irc/events.js +++ b/irc/events.js @@ -166,9 +166,20 @@ function createEventManager(node) { emit, broadcast, reloadEvents, - dispose: () => ref.vm.dispose(), - get isDisposed() { - return ref.vm.isolate.isDisposed; + dispose: () => { + queue.splice(0, queue.length); + ref.vm.dispose(); + }, + get _isDisposed() { + return ref.vm?.isolate.isDisposed; + }, + unresponsive: (callback) => { + const timeout = setTimeout(callback, 1000); + ref.vm.context.eval('1') + .then(() => { + clearTimeout(timeout); + }) + .catch(callback); }, }; } From be3d60586731a7e6ac5483b75ec66f3f73ec0239 Mon Sep 17 00:00:00 2001 From: kirjavascript Date: Sun, 23 Oct 2022 19:37:25 +0100 Subject: [PATCH 54/94] add isDisposed back in --- irc/events.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/irc/events.js b/irc/events.js index dda9ba2..61af7d2 100644 --- a/irc/events.js +++ b/irc/events.js @@ -174,6 +174,9 @@ function createEventManager(node) { return ref.vm?.isolate.isDisposed; }, unresponsive: (callback) => { + if (ref.vm?.isolate.isDisposed) { + callback(new Error('Isolate has been disposed')); + } const timeout = setTimeout(callback, 1000); ref.vm.context.eval('1') .then(() => { From e108ded68d22f60014bd17ac36c43a9d37adf333 Mon Sep 17 00:00:00 2001 From: kirjavascript Date: Sun, 23 Oct 2022 19:38:27 +0100 Subject: [PATCH 55/94] add isDisposed back in --- irc/events.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/irc/events.js b/irc/events.js index 61af7d2..54172ea 100644 --- a/irc/events.js +++ b/irc/events.js @@ -175,7 +175,7 @@ function createEventManager(node) { }, unresponsive: (callback) => { if (ref.vm?.isolate.isDisposed) { - callback(new Error('Isolate has been disposed')); + return callback(new Error('Isolate has been disposed')); } const timeout = setTimeout(callback, 1000); ref.vm.context.eval('1') From 012063118ec9d509329c15f5d34c46cf0f5c409b Mon Sep 17 00:00:00 2001 From: kirjavascript Date: Sun, 23 Oct 2022 20:58:25 +0100 Subject: [PATCH 56/94] existance checking --- irc/events.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/irc/events.js b/irc/events.js index 54172ea..16fe397 100644 --- a/irc/events.js +++ b/irc/events.js @@ -168,7 +168,7 @@ function createEventManager(node) { reloadEvents, dispose: () => { queue.splice(0, queue.length); - ref.vm.dispose(); + ref.vm && ref.vm.dispose(); }, get _isDisposed() { return ref.vm?.isolate.isDisposed; From 07caa69d05a9593ca9711949fc47f84f85258016 Mon Sep 17 00:00:00 2001 From: kirjavascript Date: Mon, 14 Nov 2022 00:16:31 +0100 Subject: [PATCH 57/94] add mastodon url scraping support --- commands/-73df838fbf9e.json | 2 +- commands/aistartupidea-7d821fa032d0.json | 7 +++++++ commands/aitest-806ef52c26ff.json | 7 +++++++ commands/b8ball-363ef4c9e9e1.json | 7 +++++++ commands/barf-64fc0cfb0aeb.json | 2 +- commands/barfsucks-913cbed6ac55.json | 2 +- commands/cargo-e9da56df1019.json | 7 +++++++ commands/chess-997f8925fa67.json | 7 +++++++ commands/chis-bd5b56dd0ba3.json | 7 +++++++ commands/echo-16cba6a75057.json | 7 +++++++ commands/eventIBIP-5695eeca1975.json | 2 +- commands/eventfetchURL-798176d44de4.json | 2 +- commands/horoscope-55d97f599b19.json | 2 +- commands/lichess-870a41ed8e0d.json | 7 +++++++ commands/pi-b1a37c025018.json | 7 +++++++ commands/robot-ea93acf589f6.json | 7 +++++++ commands/shreddysucks-f209402cc67e.json | 7 +++++++ commands/tren-e3b38fb90f5e.json | 7 +++++++ irc/evaluate/vm.js | 5 +++++ package.json | 2 +- 20 files changed, 96 insertions(+), 7 deletions(-) create mode 100644 commands/aistartupidea-7d821fa032d0.json create mode 100644 commands/aitest-806ef52c26ff.json create mode 100644 commands/b8ball-363ef4c9e9e1.json create mode 100644 commands/cargo-e9da56df1019.json create mode 100644 commands/chess-997f8925fa67.json create mode 100644 commands/chis-bd5b56dd0ba3.json create mode 100644 commands/echo-16cba6a75057.json create mode 100644 commands/lichess-870a41ed8e0d.json create mode 100644 commands/pi-b1a37c025018.json create mode 100644 commands/robot-ea93acf589f6.json create mode 100644 commands/shreddysucks-f209402cc67e.json create mode 100644 commands/tren-e3b38fb90f5e.json diff --git a/commands/-73df838fbf9e.json b/commands/-73df838fbf9e.json index d453ced..676b033 100644 --- a/commands/-73df838fbf9e.json +++ b/commands/-73df838fbf9e.json @@ -1,6 +1,6 @@ { "name": "!!!", - "command": "print(\"https://www.youtube.com/watch?v=MHr3ag7B410\");drfgdfg", + "command": "print(\"https://www.youtube.com/watch?v=MHr3ag7B410\")", "locked": false, "starred": false } \ No newline at end of file diff --git a/commands/aistartupidea-7d821fa032d0.json b/commands/aistartupidea-7d821fa032d0.json new file mode 100644 index 0000000..721215c --- /dev/null +++ b/commands/aistartupidea-7d821fa032d0.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "aistartupidea", + "command": "print(fetchSync.json('https://kq4z97l2ba.execute-api.ap-northeast-1.amazonaws.com/dev/get').idea)" +} \ No newline at end of file diff --git a/commands/aitest-806ef52c26ff.json b/commands/aitest-806ef52c26ff.json new file mode 100644 index 0000000..f9f2e1b --- /dev/null +++ b/commands/aitest-806ef52c26ff.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "ai_test", + "command": "const response = await fetchSync.json(\n \"https://api-inference.huggingface.co/models/Nicki/gpt3-base/",\n {\nheaders: { Authorization: \"Bearer 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\" },\nmethod: \"POST\",\nbody: JSON.stringify({\"inputs\": input}),\n}\n);\n\nlog(response);\n" +} \ No newline at end of file diff --git a/commands/b8ball-363ef4c9e9e1.json b/commands/b8ball-363ef4c9e9e1.json new file mode 100644 index 0000000..fd50c0b --- /dev/null +++ b/commands/b8ball-363ef4c9e9e1.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "b8ball", + "command": "print((\n function(a){return '{g}'+ [\"It is SHUT\",\"It is decidedly SHUT\",\"Without a SHUT\",\"Yes, SHUT\",\"You may SHUT on it\",\"As I see it, SHUT\",\"Most SHUT\",\"Outlook SHUT\",\"SHUT\",\"Signs point to SHUT\",\"Reply hazy try SHUT\",\"SHUT again later\",\"Better not tell you SHUT\",\"Cannot predict SHUT\",\"Concentrate and SHUT again\",\"Don't count on SHUT\",\"My reply is SHUT\",\"My sources say SHUT\",\"Outlook not so SHUT\",\"Very SHUTful\"][a.split(\"\").map(d => d.charCodeAt(0)).reduce((a,b) => a+b)%20|0]}\n)(input));" +} \ No newline at end of file diff --git a/commands/barf-64fc0cfb0aeb.json b/commands/barf-64fc0cfb0aeb.json index 0e11fc2..7dc3b6e 100644 --- a/commands/barf-64fc0cfb0aeb.json +++ b/commands/barf-64fc0cfb0aeb.json @@ -1,6 +1,6 @@ { "name": "barf", - "command": "print(`https://imgur.com/XdnbTRW\nhttps://i.redd.it/izwj51xy2n291.jpg`);", + "command": "print(`https://imgur.com/XdnbTRW\nhttps://i.redd.it/izwj51xy2n291.jpg\nhttps://i.redd.it/2ddw5phexgr91.jpg`);", "locked": false, "starred": false } \ No newline at end of file diff --git a/commands/barfsucks-913cbed6ac55.json b/commands/barfsucks-913cbed6ac55.json index 77eca11..e1e5a08 100644 --- a/commands/barfsucks-913cbed6ac55.json +++ b/commands/barfsucks-913cbed6ac55.json @@ -3,5 +3,5 @@ "locked": false, "starred": false, "name": "barfsucks", - "command": "let sucks = 'SPIDERS TICKLING YOUR LEGS WHILE IN BED '\nlet ye = true\nwhile (true) {\n if (ye) {\n sucks += 'barf sucks '\n } else {\n sucks += 'CAMERA AHEAD '\n }\n \n print(sucks) \n}" + "command": "let sucks = 'jessy is from Sudan '\n\nwhile (true) {\n sucks += 'Oh hi im jessy can i get a mud please ty :) '\n print(sucks) \n}" } \ No newline at end of file diff --git a/commands/cargo-e9da56df1019.json b/commands/cargo-e9da56df1019.json new file mode 100644 index 0000000..a42ac92 --- /dev/null +++ b/commands/cargo-e9da56df1019.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "cargo", + "command": "print('{c}{bo}Blocking{/} waiting for file lock on package cache');" +} \ No newline at end of file diff --git a/commands/chess-997f8925fa67.json b/commands/chess-997f8925fa67.json new file mode 100644 index 0000000..bfd4760 --- /dev/null +++ b/commands/chess-997f8925fa67.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "chess", + "command": "// const { KhmerChess } = require('khmer-chess');\n// const input = 'BHGQK2B/4GH2/TFFFFFFF/8/8/5ft1/2qg2b1/bhgk2h1 w ---- -- -.- ffffff';\n// const kc = new KhmerChess(input);\n// print('board: '+IRC.colors.link(IRC.require('module.paste')(kc.drawAscii())));\nconst { Chess } = require('@ninjapixel/chess');\n\nconst chess = new Chess();\n\n\n\nconst state = store.get('state');\nif (state) chess.loadPgn(state);\n\nif (/-clear/.test(input)) {\n chess.clear();\n store.set('state', chess.pgn());\n return;\n}\n\n\nconst moves = chess.moves();\nconst move = input.trim();\n\nif (move && !moves.includes(move)) {\n throw `invalid move ${move} use one of ${moves.join` `}`;\n}\n\nchess.move(move);\nstore.set('state', chess.pgn());\n\n\n// const board = chess.board().map((line,i) => 8-i+' |' + line.map((t)=>t?.color==='w'?t.type.toUpperCase():t?.type||'.').join`` + '|').join`\\n`;\n// print(board);\n\n\n\n\n// print('board: '+IRC.colors.link(IRC.require('module.paste')(chess.ascii())));\n\nprint(fancy(chess.ascii().split('\\n').slice(1,9).join('\\n')) + ` ${chess.turn()=='b'?'black' : 'white'}'s turn`);\n\n\n\nfunction fancy(str) {\n const pieces = 'kqrbnpKQRBNP';\n const ascii = '♔♕♖♗♘♙♚♛♜♝♞♟';\n let p = 0;\n return str.replace(new RegExp(` [${pieces}.] `,'g'), _ => (c=p++&1?'{bl,dgr}':'{bl,b}',p=p==23?0:p,p=p==8?15:p,c+' '+(ascii[pieces.indexOf(_[1])]||' ')+' {/}'));\n // return str.replace(new RegExp(`[${pieces}]`,'g'), _ => ascii[pieces.indexOf(_)]);\n // return str.replace(new RegExp(` [${pieces}] `,'g'), _ => (i=pieces.indexOf(_[1]),c=i>5?'w,bl':'bl,w',`{${c}} ${ascii[i]} {/}`));\n}\n// tsu | you should use unicode ♔♞ etc " +} \ No newline at end of file diff --git a/commands/chis-bd5b56dd0ba3.json b/commands/chis-bd5b56dd0ba3.json new file mode 100644 index 0000000..0e5db18 --- /dev/null +++ b/commands/chis-bd5b56dd0ba3.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "chis", + "command": "/*__TEXTCMD__*/print(`https://i.imgur.com/BMCL0bA.png`);" +} \ No newline at end of file diff --git a/commands/echo-16cba6a75057.json b/commands/echo-16cba6a75057.json new file mode 100644 index 0000000..37501f2 --- /dev/null +++ b/commands/echo-16cba6a75057.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "echo", + "command": "print(input)" +} \ No newline at end of file diff --git a/commands/eventIBIP-5695eeca1975.json b/commands/eventIBIP-5695eeca1975.json index a6d9cf2..07fc87c 100644 --- a/commands/eventIBIP-5695eeca1975.json +++ b/commands/eventIBIP-5695eeca1975.json @@ -3,5 +3,5 @@ "locked": true, "starred": true, "name": "event.IBIP", - "command": "// handle IBIP (https://git.teknik.io/Teknikode/IBIP)\n\nIRC.listen('message', event => {\n if (event.message.text === '.bots' && IRC.queryConfig('enableIBIP', true)) {\n \t//IRC.require('help');\n \tprint(`Reporting in! [JavaScript] use ${IRC.trigger}help`);\n }\n});" + "command": "// handle IBIP (https://git.teknik.io/Teknikode/IBIP)\n\nIRC.listen('message', event => {\n if (/^.bots$/.test(event.message.text) && IRC.queryConfig('enableIBIP', true)) {\n \t//IRC.require('help');\n \tprint(`Reporting in! [JavaScript] use ${IRC.trigger}help`);\n }\n});" } \ No newline at end of file diff --git a/commands/eventfetchURL-798176d44de4.json b/commands/eventfetchURL-798176d44de4.json index c49c5a8..4bdc246 100644 --- a/commands/eventfetchURL-798176d44de4.json +++ b/commands/eventfetchURL-798176d44de4.json @@ -3,5 +3,5 @@ "locked": true, "starred": true, "name": "event.fetchURL", - "command": "const { document, window } = new (jsdom().JSDOM)('');\nconst anchor = document.createElement('a');\nconst bytes = IRC.require('bytes');\n\nfunction setDOM(page) {\n document.open();\n document.write(page);\n document.close();\n};\n\nfunction domTitle() {\n const metaTitle = document.head.querySelector('meta[name=\"title\"]');\n return metaTitle ? metaTitle.content : document.title;\n}\n\nconst filterWords = /something went wrong|cloudflare|forbidden|not found|access restricted|access denied|your browser|rick roll|never gonna give you up|log in|blocked|just a moment/i;\n\nfunction hasInfo(url, _title) {\n const title = _title.replace(/\\s+/g, ' ').trim();\n const isFresh = title.split(' ')\n .filter(word => (\n !(new RegExp(word.replace(/[^.a-zA-Z0-9\\u00c0-\\u017e]+/g, ''), 'i')).test(url)\n )).length >= 1;\n return isFresh;\n}\n\nIRC.listen('message', event => {\n if (!IRC.queryConfig('fetchURL', true)) return;\n const { text, from } = event.message;\n const urls = text.match(/(\\b(https?):\\/\\/[-A-Z0-9+&@#\\/%?=~_|!:,.;()]*[-A-Z0-9+&@#\\/%=~_|()])/ig);\n const fromSelf = from === IRC.nick;\n if (!urls || fromSelf || text.startsWith(IRC.trigger) || text.includes('##')) return;\n\n urls.slice(0, 3).forEach(url => {\n handleURL(url, global.print)\n .catch(print.error);\n });\n});\n\nasync function handleURL(url, print) {\n anchor.setAttribute('href', url);\n if (await customURL(url, print)) return;\n\n const res = await fetch(url, {\n headers: {\n 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',\n 'Accept-Language': 'en-GB,en;q=0.5',\n 'Content-Language': 'en-GB,en;q=0.5',\n 'User-Agent': /youtu\\.?be|google|reddit/.test(url) ? '' : 'Googlebot',\n },\n });\n\n const length = res.headers.get('content-length');\n\n if (length > 5.243e6) {\n const filename = anchor.pathname.split('/').pop();\n print.info(`{dc}${filename}{/} ${bytes(length)} {dgr}${res.headers.get('content-type')}{/}`);\n return;\n }\n\n const page = await res.text();\n setDOM(page);\n\n const title = domTitle();\n\n if (\n title.length \n && title.length < 400 \n && !filterWords.test(title)\n && (IRC.queryConfig('fetchURLAll', false) || hasInfo(url, title))) {\n print.info(title);\n }\n\n}\n\nasync function customURL(url, print) {\n // https://github.com/mendel5/alternative-front-ends\n const { hostname, pathname } = anchor;\n if (hostname.includes('reddit.')) {\n const jsonURL = url.replace(/(\\/?)(\\?.*)?(#.*)?$/, '/.json');\n const json = await(await fetch(jsonURL)).json();\n const data = json?.[0]?.data?.children?.[0]?.data;\n if (data) {\n const info = `{c}${data.subreddit_name_prefixed}{/} {o}▲${data.score}{/} ${data.title}`;\n const url = data?.secure_media?.reddit_video?.fallback_url?.replace('?source=fallback', '') || data.url;\n if (data.selftext) {\n print(`${info} ${String(data.selftext).replace(/\\s+/g, ' ').slice(0, 300)}`);\n return true;\n } else if (url) {\n print(`${info} ${IRC.colors.link(url)}`);\n return true;\n }\n }\n return true; \n }\n if (hostname.includes('youtube.') || hostname === 'youtu.be') {\n try {\n const json = await (await fetch(`https://www.youtube.com/oembed?url=${encodeURI(url)}&format=json`)).json();\n const {\n title, author_name,\n } = json;\n print(`{r}YouTube{/} {c}${author_name}{/} ${title}`);\n return true;\n } catch (e) { }\n // url.match(/(?!v=|v\\/|\\.be\\/|watch\\/)([0-9a-z\\-_]{11})/i);\n }\n if (hostname.includes('github.com')) {\n if (pathname.split('/').length === 3) {\n // it's a repo url\n const {\n description,\n html_url,\n name,\n stargazers_count,\n language,\n license, // { name }\n } = await (\n await fetch(`https://api.github.com/repos${pathname}`)\n ).json();\n\n print(`{gr}${description || name}{/} ${language ? IRC.colors.nick(language, false) : ''} {y}★{/} {bo}${stargazers_count}{/} {dgr}${license ? license.name : ''}{/}`);\n return true;\n }\n }\n \tif (hostname.includes('worldcubeassociation.org')) {\n if (pathname.includes('/persons/')){\n const {\n personal_records,\n person,\n medals\n }\n = await(await fetch(`https://www.worldcubeassociation.org/api/v0/persons/${pathname.split(\"/\")[2]}`)).json();\n // calculate best rank\n\t\t\tlet best_rank = Infinity\n let best_event = \"\"\n // RIP Feet\n delete personal_records[\"mmagic\"]\n delete personal_records[\"magic\"]\n \tdelete personal_records[\"333wf\"]\n \t\tdelete personal_records[\"333mbo\"]\n for (const event in personal_records) {\n if(+personal_records[event][\"single\"][\"world_rank\"] < best_rank){\n best_rank = personal_records[event][\"single\"][\"world_rank\"]\n best_event = event + \" Single\"\n }\n if(personal_records[event][\"average\"] != undefined && +personal_records[event][\"average\"][\"world_rank\"] < best_rank){\n best_rank = personal_records[event][\"average\"][\"world_rank\"]\n best_event = event + \" Average\"\n }\n }\n\n \t\n let output = `{bo}${person[\"name\"]}{/}, Medals: {y}${medals[\"gold\"]}{/} {gr}${medals[\"silver\"]}{/} {o}${medals[\"bronze\"]}{/}, Best Rank {c}${best_rank}{/} in {y}${best_event}`;\n print(output);\n \treturn true;\n }\n if (pathname.includes('/competitions/')){\n const {\n name,\n competitor_limit,\n registration_open,\n registration_close \n } = await (\n await fetch(`https://www.worldcubeassociation.org/api/v0/competitions/${pathname.split('/')[2]}`)\n ).json();\n // Add checks for comps in the past. \n let output = `{bo}${name}{/} (Limit: ${competitor_limit}), Registration: {c}${registration_open.split(\"T\")[0]}{/} - {c}${registration_close.split(\"T\")[0]}{/}`;\n print(output);\n \treturn true;\n }\n return false;\n }\n if (false && hostname.includes('instagram.')) {\n // https://git.sr.ht/~cadence/bibliogram-docs/tree/master/docs/Instances.md\n const id = pathname.match(/\\/([A-Za-z-0-9]{11})/);\n if (id) {\n const page = await (await fetch(`https://bibliogram.1d4.us/p/${id[1]}`)).text();\n setDOM(page);\n const text = document.querySelector('.structured-text').textContent;\n const name = document.querySelector('.name').textContent;\n const image = document.querySelector('.sized-image');\n\n let output = `{bo}Instagram{/} {c}${name}{/} ${text.replace(/\\s+/g, ' ')}`;\n print(output);\n }\n return true;\n }\n if (hostname.includes('twitter.')) {\n const id = pathname.match(/status\\/(\\d+)/);\n if (id) {\n const page = await (await fetch(`https://nitter.net/_/status/${id[1]}#m`)).text();\n setDOM(page);\n const maintweet = document.querySelector('.main-tweet');\n const name = maintweet.querySelector('.fullname').textContent;\n const user = maintweet.querySelector('.username').textContent;\n const image = maintweet.querySelector('.still-image img');\n //const card = maintweet.querySelector('.card-image img');\n const tweet = maintweet.querySelector('.tweet-content').textContent.replace(/\\s+/g, ' ');\n let output = `{bo}${name}{/} {c}${user}{/} ${tweet}`;\n if (image) {\n output += ' ' + IRC.colors.link(`https://nitter.net${image.getAttribute('src').replace(/%3Fname.+/, '')}`);\n }\n //if (card) {\n //output += ' ' + IRC.colors.link(`https://nitter.net${card.getAttribute('src')}`);\n //}\n print(output);\n return true;\n }\n }\n // image detection AI\n if (['jpg', 'gif', 'jpeg', 'png'].some(d => url.includes(`.${d}`))) {\n const reqUrl = 'https://api.imagga.com/v2/tags?image_url='+encodeURI(url);\n const json = await (await fetch(reqUrl, {\n headers: { Authorization: `Basic ${IRC.queryConfig('imaggaKey')} ` }\n })).json();\n if (json.status.type === 'error') {\n \tjson.status.text;\n } else if (json.result.tags) {\n const tags = json.result.tags.filter(tag => tag.confidence >= 70);\n \tif (tags.length) {\n \tprint('🖼️ 👀 '+tags.map(tag=>`{g}${tag.tag.en}{/}`).join(', '));\n \t} else if (json.result.tags.length) {\n \t\t//const [tag] = json.result.tags;\n //print(`Image may contain: {o}${tag.tag.en}{/} (${0|tag.confidence}% confidence)`);\n \t}\n }\n\n \treturn true;\n }\n // repaste pastebin\n if (hostname.includes('pastebin.com')) {\n const id = pathname.match(/\\/(\\w+)\\/?$/);\n if (id) {\n const page = await (await fetch(`https://pastebin.com/raw/${id[1]}`)).text();\n print.info(`repasted to ${await IRC.require('module.paste').async(page)}`)\n return true;\n }\n }\n}" + "command": "const { document, window } = new (jsdom().JSDOM)('');\nconst anchor = document.createElement('a');\nconst bytes = IRC.require('bytes');\n\nfunction setDOM(page) {\n document.open();\n document.write(page);\n document.close();\n};\n\nfunction domTitle() {\n const metaTitle = document.head.querySelector('meta[name=\"title\"]');\n return metaTitle ? metaTitle.content : document.title;\n}\n\nconst filterWords = /something went wrong|cloudflare|forbidden|not found|access restricted|access denied|your browser|rick roll|never gonna give you up|log in|blocked|just a moment|been denied/i;\n\nfunction hasInfo(url, _title) {\n const title = _title.replace(/\\s+/g, ' ').trim();\n const isFresh = title.split(' ')\n .filter(word => (\n !(new RegExp(word.replace(/[^.a-zA-Z0-9\\u00c0-\\u017e]+/g, ''), 'i')).test(url)\n )).length >= 1;\n return isFresh;\n}\n\nIRC.listen('message', event => {\n if (!IRC.queryConfig('fetchURL', true)) return;\n const { text, from } = event.message;\n const urls = text.match(/(\\b(https?):\\/\\/[-A-Z0-9+&@#\\/%?=~_|!:,.;()]*[-A-Z0-9+&@#\\/%=~_|()])/ig);\n const fromSelf = from === IRC.nick;\n if (!urls || fromSelf || text.startsWith(IRC.trigger) || text.includes('##')) return;\n\n urls.slice(0, 3).forEach(url => {\n handleURL(url, global.print)\n .catch(print.error);\n });\n});\n\nasync function handleURL(url, print) {\n anchor.setAttribute('href', url);\n if (await customURL(url, print)) return;\n\n const res = await fetch(url, {\n headers: {\n 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',\n 'Accept-Language': 'en-GB,en;q=0.5',\n 'Content-Language': 'en-GB,en;q=0.5',\n 'User-Agent': /youtu\\.?be|google|reddit/.test(url) ? '' : 'Googlebot',\n },\n });\n\n const length = res.headers.get('content-length');\n\n if (length > 5.243e6) {\n const filename = anchor.pathname.split('/').pop();\n print.info(`{dc}${filename}{/} ${bytes(length)} {dgr}${res.headers.get('content-type')}{/}`);\n return;\n }\n \n if (res.headers.get('set-cookie')?.includes('mastodon')) {\n const id = url.match(/\\d+/);\n if (id && id[0]) {\n const toot = await(await fetch(`https://${anchor.hostname}/api/v1/statuses/${id[0]}`)).json();\n setDOM(toot.content);\n const textNodes = (function textNodes(node){\n const nodes = [];\n for (node=node.firstChild;node;node=node.nextSibling){\n if (node.nodeType === 3) nodes.push(node);\n else nodes.push(...textNodes(node));\n }\n return nodes;\n })(document.body).map(d=>d.textContent).join(' ');\n\n let output = `{bo}${toot.account.username}{/}{c}@${anchor.hostname}{/} ${textNodes}`;\n // let output = `{bo}${toot.account.username}{/}{c}@${anchor.hostname}{/} ${document.body.textContent}`;\n if (toot.card?.image) {\n output += ' ' + IRC.colors.link(toot.card.image);\n }\n print(output);\n return;\n }\n }\n\n const page = await res.text();\n setDOM(page);\n\n const title = domTitle();\n\n if (\n title.length \n && title.length < 400 \n && !filterWords.test(title)\n && (IRC.queryConfig('fetchURLAll', false) || hasInfo(url, title))) {\n print.info(title);\n }\n\n}\n\nasync function customURL(url, print) {\n // https://github.com/mendel5/alternative-front-ends\n const { hostname, pathname } = anchor;\n if (hostname.includes('reddit.')) {\n const jsonURL = url.replace(/(\\/?)(\\?.*)?(#.*)?$/, '/.json');\n const json = await(await fetch(jsonURL)).json();\n const data = json?.[0]?.data?.children?.[0]?.data;\n if (data) {\n const info = `{c}${data.subreddit_name_prefixed}{/} {o}▲${data.score}{/} ${data.title}`;\n const url = data?.secure_media?.reddit_video?.fallback_url?.replace('?source=fallback', '') || data.url;\n if (data.selftext) {\n print(`${info} ${String(data.selftext).replace(/\\s+/g, ' ').slice(0, 300)}`);\n return true;\n } else if (url) {\n print(`${info} ${IRC.colors.link(url)}`);\n return true;\n }\n }\n return true; \n }\n if (hostname.includes('youtube.') || hostname === 'youtu.be') {\n try {\n const json = await (await fetch(`https://www.youtube.com/oembed?url=${encodeURI(url)}&format=json`)).json();\n const {\n title, author_name,\n } = json;\n print(`{r}YouTube{/} {c}${author_name}{/} ${title}`);\n return true;\n } catch (e) { }\n // url.match(/(?!v=|v\\/|\\.be\\/|watch\\/)([0-9a-z\\-_]{11})/i);\n }\n if (hostname.includes('github.com') && !hostname.includes('gist')) {\n if (pathname.split('/').length === 3) {\n // it's a repo url\n const {\n description,\n html_url,\n name,\n stargazers_count,\n language,\n license, // { name }\n } = await (\n await fetch(`https://api.github.com/repos${pathname}`)\n ).json();\n\n print(`{gr}${description || name}{/} ${language ? IRC.colors.nick(language, false) : ''} {y}★{/} {bo}${stargazers_count}{/} {dgr}${license ? license.name : ''}{/}`);\n return true;\n }\n }\n \tif (hostname.includes('worldcubeassociation.org')) {\n if (pathname.includes('/persons/')){\n const {\n personal_records,\n person,\n medals\n }\n = await(await fetch(`https://www.worldcubeassociation.org/api/v0/persons/${pathname.split(\"/\")[2]}`)).json();\n // calculate best rank\n\t\t\tlet best_rank = Infinity\n let best_event = \"\"\n // RIP Feet\n delete personal_records[\"mmagic\"]\n delete personal_records[\"magic\"]\n \tdelete personal_records[\"333wf\"]\n \t\tdelete personal_records[\"333mbo\"]\n for (const event in personal_records) {\n if(+personal_records[event][\"single\"][\"world_rank\"] < best_rank){\n best_rank = personal_records[event][\"single\"][\"world_rank\"]\n best_event = event + \" Single\"\n }\n if(personal_records[event][\"average\"] != undefined && +personal_records[event][\"average\"][\"world_rank\"] < best_rank){\n best_rank = personal_records[event][\"average\"][\"world_rank\"]\n best_event = event + \" Average\"\n }\n }\n\n \t\n let output = `{bo}${person[\"name\"]}{/}, Medals: {y}${medals[\"gold\"]}{/} {gr}${medals[\"silver\"]}{/} {o}${medals[\"bronze\"]}{/}, Best Rank {c}${best_rank}{/} in {y}${best_event}`;\n print(output);\n \treturn true;\n }\n if (pathname.includes('/competitions/')){\n const {\n name,\n competitor_limit,\n registration_open,\n registration_close \n } = await (\n await fetch(`https://www.worldcubeassociation.org/api/v0/competitions/${pathname.split('/')[2]}`)\n ).json();\n // Add checks for comps in the past. \n let output = `{bo}${name}{/} (Limit: ${competitor_limit}), Registration: {c}${registration_open.split(\"T\")[0]}{/} - {c}${registration_close.split(\"T\")[0]}{/}`;\n print(output);\n \treturn true;\n }\n return false;\n }\n if (false && hostname.includes('instagram.')) {\n // https://git.sr.ht/~cadence/bibliogram-docs/tree/master/docs/Instances.md\n const id = pathname.match(/\\/([A-Za-z-0-9]{11})/);\n if (id) {\n const page = await (await fetch(`https://bibliogram.1d4.us/p/${id[1]}`)).text();\n setDOM(page);\n const text = document.querySelector('.structured-text').textContent;\n const name = document.querySelector('.name').textContent;\n const image = document.querySelector('.sized-image');\n\n let output = `{bo}Instagram{/} {c}${name}{/} ${text.replace(/\\s+/g, ' ')}`;\n print(output);\n }\n return true;\n }\n if (hostname.includes('twitter.')) {\n const id = pathname.match(/status\\/(\\d+)/);\n if (id) {\n const page = await (await fetch(`https://nitter.net/_/status/${id[1]}#m`)).text();\n setDOM(page);\n const maintweet = document.querySelector('.main-tweet');\n const name = maintweet.querySelector('.fullname').textContent;\n const user = maintweet.querySelector('.username').textContent;\n const image = maintweet.querySelector('.still-image img');\n //const card = maintweet.querySelector('.card-image img');\n const tweet = maintweet.querySelector('.tweet-content').textContent.replace(/\\s+/g, ' ');\n let output = `{bo}${name}{/} {c}${user}{/} ${tweet}`;\n if (image) {\n output += ' ' + IRC.colors.link(`https://nitter.net${image.getAttribute('src').replace(/%3Fname.+/, '')}`);\n }\n //if (card) {\n //output += ' ' + IRC.colors.link(`https://nitter.net${card.getAttribute('src')}`);\n //}\n print(output);\n return true;\n }\n }\n // image detection AI\n if (['jpg', 'gif', 'jpeg', 'png'].some(d => url.includes(`.${d}`))) {\n const reqUrl = 'https://api.imagga.com/v2/tags?image_url='+encodeURI(url);\n const json = await (await fetch(reqUrl, {\n headers: { Authorization: `Basic ${IRC.queryConfig('imaggaKey')} ` }\n })).json();\n if (json.status.type === 'error') {\n \tjson.status.text;\n } else if (json.result.tags) {\n const tags = json.result.tags.filter(tag => tag.confidence >= 70);\n \tif (tags.length) {\n \tprint('🖼️ 👀 '+tags.map(tag=>`{g}${tag.tag.en}{/}`).join(', '));\n \t} else if (json.result.tags.length) {\n \t\t//const [tag] = json.result.tags;\n //print(`Image may contain: {o}${tag.tag.en}{/} (${0|tag.confidence}% confidence)`);\n \t}\n }\n\n \treturn true;\n }\n // repaste pastebin\n if (hostname.includes('pastebin.com')) {\n const id = pathname.match(/\\/(\\w+)\\/?$/);\n if (id) {\n const page = await (await fetch(`https://pastebin.com/raw/${id[1]}`)).text();\n print.info(`repasted to ${await IRC.require('module.paste').async(page)}`)\n return true;\n }\n }\n}" } \ No newline at end of file diff --git a/commands/horoscope-55d97f599b19.json b/commands/horoscope-55d97f599b19.json index 7fa6991..8f04a8a 100644 --- a/commands/horoscope-55d97f599b19.json +++ b/commands/horoscope-55d97f599b19.json @@ -3,5 +3,5 @@ "locked": false, "starred": false, "name": "horoscope", - "command": "const { emojify } = require('node-emoji');\n\nconst signs = `aries, taurus, gemini, cancer, leo, virgo, libra, scorpio, sagittarius, capricorn, aquarius, pisces`.split(/[ ,]+/)\n\nconst check_arg = IRC.command.input.toLowerCase().trim()\n\nif (!signs.includes(check_arg)) {\n print(`Valid signs: ${signs.join(' ')}`)\n return\n}\n\n// my work here is done\nconst arg = signs[Math.floor(signs.length * Math.random())]\nconst o = fetchSync.json(`https://aztro.sameerkumar.website?sign=${arg}`,\n {method: 'POST'})\n\nconst capitalizedSign = check_arg.replace(/^\\w/, (c) => c.toUpperCase())\nconst emojiSign = emojify(`:${check_arg}:`)\n\nprint(`{c}💫 ${capitalizedSign} ${emojiSign} ${o.current_date}:{/} ${o.description}`)" + "command": "const { emojify } = require('node-emoji');\n\nconst signs = `aries, taurus, gemini, cancer, leo, virgo, libra, scorpio, sagittarius, capricorn, aquarius, pisces`.split(/[ ,]+/)\n\nconst check_arg = IRC.command.input.toLowerCase().trim()\n\nif (!signs.includes(check_arg)) {\n print(`Valid signs: ${signs.join(' ')}`)\n return\n}\n\n// my work here is done - rude\nconst arg = signs[Math.floor(signs.length * Math.random())]\nconst o = fetchSync.json(`https://aztro.sameerkumar.website?sign=${arg}`,\n {method: 'POST'})\n\nconst capitalizedSign = check_arg.replace(/^\\w/, (c) => c.toUpperCase())\nconst emojiSign = emojify(`:${check_arg}:`)\n\nprint(`{c}💫 ${capitalizedSign} ${emojiSign} ${o.current_date}:{/} ${o.description}`)" } \ No newline at end of file diff --git a/commands/lichess-870a41ed8e0d.json b/commands/lichess-870a41ed8e0d.json new file mode 100644 index 0000000..dbc1307 --- /dev/null +++ b/commands/lichess-870a41ed8e0d.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": true, + "starred": false, + "name": "lichess", + "command": "const ratings = [...fetchSync.dom(`https://lichess.org/@/${input}`).document.querySelectorAll('aside a')].map(node => {\n\tconst type = node.querySelector('h3').textContent;\n\tconst rating = node.querySelector('strong').textContent;\n return [type, rating];\n});\n\nprint(ratings.filter(([_,r])=>!~'?0'.indexOf(r)).map(([type, rating])=> `${type}: {bo}${rating}{/}`).join(' '));" +} \ No newline at end of file diff --git a/commands/pi-b1a37c025018.json b/commands/pi-b1a37c025018.json new file mode 100644 index 0000000..c8a8755 --- /dev/null +++ b/commands/pi-b1a37c025018.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "pi", + "command": "let ndigits = 100;\nlet start = 0;\n\nconst params = input.match(/\\b(\\d+)\\b/g);\nif (params != null) {\n ndigits = Math.min(params[0], 400);\n start = Math.min(params[1] === undefined ? 0 : params[1], 100000000000000);\n}\nconst out = fetchSync.json('https://api.pi.delivery/v1/pi?numberOfDigits=' + ndigits + '&start=' + start);\n\nif (out.content)\n print(out.content);\nelse\n throw 'google pulled the plug probably?';\n" +} \ No newline at end of file diff --git a/commands/robot-ea93acf589f6.json b/commands/robot-ea93acf589f6.json new file mode 100644 index 0000000..7e8d3a6 --- /dev/null +++ b/commands/robot-ea93acf589f6.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "robot", + "command": "print.raw(`+speakj fuck\n+speakj fuck\n+speakj fuck\n+speakj fuck\n+speakj fuck\n+speakj fuck\n+speakj fuck\n+speakj fuck\n+speakj fuck\n+speakj fuck\n+speakj fuck\n+speakj fuck\n+speakj fuck`);" +} \ No newline at end of file diff --git a/commands/shreddysucks-f209402cc67e.json b/commands/shreddysucks-f209402cc67e.json new file mode 100644 index 0000000..7c1edb4 --- /dev/null +++ b/commands/shreddysucks-f209402cc67e.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "shreddysucks", + "command": "print('true')\nprint('Not a Number')" +} \ No newline at end of file diff --git a/commands/tren-e3b38fb90f5e.json b/commands/tren-e3b38fb90f5e.json new file mode 100644 index 0000000..2c68d5f --- /dev/null +++ b/commands/tren-e3b38fb90f5e.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "tren", + "command": "/*__TEXTCMD__*/print(`https://i.ibb.co/MZVF63M/309595450-1587336711723323-1607782793475123809-n.jpg`);" +} \ No newline at end of file diff --git a/irc/evaluate/vm.js b/irc/evaluate/vm.js index 9be203d..9bb50ef 100644 --- a/irc/evaluate/vm.js +++ b/irc/evaluate/vm.js @@ -461,6 +461,11 @@ async function createVM({ node, maxTimeout = 60000 }) { }, }); + global.crypto = { + getRandomValues: () => Uint8Array.from(Array.from({length: 100}, () => 0| Math.random() * 65535)), + randomUUID: () => require('uuid').v4(), + }; + // patch RegExp.$_ /\s*/.test(''); diff --git a/package.json b/package.json index adf80ff..936e6af 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "version": "4.0.3", + "version": "4.0.4", "engines": { "node": ">=14", "npm": ">=7" From 5d5238df520bc516849439797054a71985a0d559 Mon Sep 17 00:00:00 2001 From: kirjavascript Date: Mon, 28 Nov 2022 19:17:30 +0100 Subject: [PATCH 58/94] command stuff --- commands/fads-24592df8bea3.json | 7 +++++++ commands/gpt3-ab803cc17718.json | 2 +- commands/pack-e83df7e52b13.json | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) create mode 100644 commands/fads-24592df8bea3.json diff --git a/commands/fads-24592df8bea3.json b/commands/fads-24592df8bea3.json new file mode 100644 index 0000000..e72b41b --- /dev/null +++ b/commands/fads-24592df8bea3.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "fads", + "command": "" +} \ No newline at end of file diff --git a/commands/gpt3-ab803cc17718.json b/commands/gpt3-ab803cc17718.json index 73bed2d..cc1d2f3 100644 --- a/commands/gpt3-ab803cc17718.json +++ b/commands/gpt3-ab803cc17718.json @@ -3,5 +3,5 @@ "locked": true, "starred": false, "name": "gpt3", - "command": "const out = fetchSync.json('https://api.openai.com/v1/completions', {\n method: 'POST',\n headers: {\n \"Content-Type\": \"application/json\",\n \"Authorization\": `Bearer ${IRC.secret}`,\n },\n body: JSON.stringify({\n model: 'text-davinci-002',\n prompt: input,\n temperature: 0.7,\n max_tokens: 256,\n top_p: 1,\n frequency_penalty: 0,\n presence_penalty: 0\n }),\n});\n\n//print(IRC.require('module.paste')(JSON.stringify(out,0,4)))\nif (out.error) {\n \tthrow out.error.message + ` (looks like free tier renews in october D:)`; \n}\nprint(out.choices.map(d=>d.text).join` _ `.replace(/\\s+/g, ' ').trim().slice(0,400))" + "command": "const out = fetchSync.json('https://api.openai.com/v1/completions', {\n method: 'POST',\n headers: {\n \"Content-Type\": \"application/json\",\n \"Authorization\": `Bearer ${IRC.secret}`,\n },\n body: JSON.stringify({\n model: 'text-davinci-002',\n prompt: input,\n temperature: 0.7,\n max_tokens: 256,\n top_p: 1,\n frequency_penalty: 0,\n presence_penalty: 0\n }),\n});\n\n//print(IRC.require('module.paste')(JSON.stringify(out,0,4)))\nif (out.error) {\n \tthrow out.error.message + ` time to get a new API key probably D:`; \n}\nprint(out.choices.map(d=>d.text).join` _ `.replace(/\\s+/g, ' ').trim().slice(0,400))" } \ No newline at end of file diff --git a/commands/pack-e83df7e52b13.json b/commands/pack-e83df7e52b13.json index 731ca21..54d7219 100644 --- a/commands/pack-e83df7e52b13.json +++ b/commands/pack-e83df7e52b13.json @@ -2,5 +2,5 @@ "locked": false, "starred": false, "name": "pack", - "command": "print.raw('\\|/\\|/ listen up... public announcement: Grind your {g}weed{/}, get your {g}weed{/}, pack your {g}weed{/}, just be ready for a chan wide toke-out in 1 minute. \\|/\\|/');" + "command": "print('\\|/\\|/ listen up... public announcement: Grind your {g}weed{/}, get your {g}weed{/}, pack your {g}weed{/}, just be ready for a chan wide toke-out in 1 minute. \\|/\\|/');" } \ No newline at end of file From de4b7494a129ae7885d6f0872a91bf1cb5d81a5c Mon Sep 17 00:00:00 2001 From: kirjavascript Date: Fri, 16 Dec 2022 03:56:24 +0100 Subject: [PATCH 59/94] improve unresponsive checking --- commands/complete-440dea43484d.json | 7 +++++++ commands/eval-422a34ceba3b.json | 2 +- commands/eventfetchURL-798176d44de4.json | 2 +- commands/gptJ-780198f373b8.json | 7 +++++++ commands/worlde-3ac0eaabc93d.json | 7 +++++++ irc/events.js | 5 ++++- 6 files changed, 27 insertions(+), 3 deletions(-) create mode 100644 commands/complete-440dea43484d.json create mode 100644 commands/gptJ-780198f373b8.json create mode 100644 commands/worlde-3ac0eaabc93d.json diff --git a/commands/complete-440dea43484d.json b/commands/complete-440dea43484d.json new file mode 100644 index 0000000..18a2570 --- /dev/null +++ b/commands/complete-440dea43484d.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "complete", + "command": "const res = fetchSync.json('https://api.textsynth.com/v1/engines/gptneox_20B/completions', {\n headers: {\n\tAuthorization: `Bearer ${IRC.secret}`,\n \"Content-Type\": 'application/json',\n },\n method: 'POST',\n body: JSON.stringify({ prompt: input })\n});\n\n//log(res);\nprint(res.text.replace(/\\s+/g,' '));" +} \ No newline at end of file diff --git a/commands/eval-422a34ceba3b.json b/commands/eval-422a34ceba3b.json index eb8e054..5d9f954 100644 --- a/commands/eval-422a34ceba3b.json +++ b/commands/eval-422a34ceba3b.json @@ -1,6 +1,6 @@ { "name": "eval", - "command": "const REPLS = 'bash gcc g++ ruby lua vim haskell guile racket smalltalk elixir rust perl python php lolcode vlang';\nconst JS_REPLS = 'mozjs node deno quickjs jsx babel';\n\nif (!module.required) {\n throw `usage: ${IRC.colors.cmd('[lang]', 'code')} valid repls are: ${REPLS} ${JS_REPLS}`;\n}\n\nmodule.exports = (lang, script) => {\n try { \n // kirjavascript/eval needs to be running on the same server\n // it only accepts local requests\n response(fetchSync(`http://localhost:8010/${lang}`, {\n method: 'POST',\n body: script.replace(/␤|_nl_|##/g, '\\n'),\n }));\n } catch(e) {\n throw 'down for maintenance';\n }\n};\n\nmodule.exports.REPLS = REPLS;\nmodule.exports.JS_REPLS = JS_REPLS;\n\nfunction response(res) {\n let [status, output] = JSON.parse(res);\n output = output.trim().replace(/ +/g, ' ').replace(/\\r|\\n/g, \"␤\");\n output = output.slice(0, 390);\n // output = output.slice(output.length - 390);\n if (!output) output = '[no output]';\n const prompt = IRC.colors(`{${status?'c':'r'}}>{/}`);\n print.raw(`${prompt} ${IRC.colors(parseColors(output))}`);\n // if (IRC.message.from === 'Kirjava')\n // log(output)\n}\n\nfunction parseColors(output) {\n return output\n .replace(new RegExp('\\u001b\\\\[0m', 'g'), IRC.colors('{/}'))\n .replace(new RegExp('\\u001b\\\\[31m', 'g'), IRC.colors('{r}'))\n .replace(new RegExp('\\u001b\\\\[35m', 'g'), IRC.colors('{p}'))\n .replace(new RegExp('\\u001b\\\\[36m', 'g'), IRC.colors('{dc}'))\n .replace(new RegExp('\\u001b\\\\[38;5;11m', 'g'), IRC.colors('{y}'))\n .replace(new RegExp('\\u001b\\\\[38;5;14m', 'g'), IRC.colors('{c}'))\n // catchall\n .replace(new RegExp('\\u001b\\\\[(\\\\d+)m', 'g'), d => IRC.colors(IRC.colors.hash(d)))\n}", + "command": "const REPLS = 'bash gcc g++ ruby lua vim haskell guile racket smalltalk elixir rust perl python php lolcode vlang';\nconst JS_REPLS = 'mozjs node deno quickjs jsx babel';\n\nif (!module.required) {\n throw `usage: ${IRC.colors.cmd('[lang]', 'code')} valid repls are: ${REPLS} ${JS_REPLS}`;\n}\n\nmodule.exports = (lang, script) => {\n try { \n // kirjavascript/eval needs to be running on the same server\n // it only accepts local requests\n response(fetchSync(`http://localhost:8010/${lang}`, {\n method: 'POST',\n body: script.replace(/␤|_nl_|##/g, '\\n'),\n }));\n } catch(e) {\n throw 'down for maintenance';\n }\n};\n\nmodule.exports.REPLS = REPLS;\nmodule.exports.JS_REPLS = JS_REPLS;\n\nfunction response(res) {\n let [status, output] = JSON.parse(res);\n output = output.trim().replace(/ +/g, ' ').replace(/\\r|\\n/g, \"␤\");\n output = output.slice(0, 390);\n // output = output.slice(output.length - 390);\n if (!output) output = '[no output]';\n const prompt = IRC.colors(`{${status?'c':'r'}}>{/}`);\n print.raw(`${prompt} ${IRC.colors(parseColors(output))}`);\n}\n\nfunction parseColors(output) {\n return output\n .replace(new RegExp('\\u001b\\\\[0m', 'g'), IRC.colors('{/}'))\n .replace(new RegExp('\\u001b\\\\[31m', 'g'), IRC.colors('{r}'))\n .replace(new RegExp('\\u001b\\\\[35m', 'g'), IRC.colors('{p}'))\n .replace(new RegExp('\\u001b\\\\[36m', 'g'), IRC.colors('{dc}'))\n .replace(new RegExp('\\u001b\\\\[38;5;11m', 'g'), IRC.colors('{y}'))\n .replace(new RegExp('\\u001b\\\\[38;5;14m', 'g'), IRC.colors('{c}'))\n // catchall\n .replace(new RegExp('\\u001b\\\\[(\\\\d+)m', 'g'), d => IRC.colors(IRC.colors.hash(d)))\n}", "locked": true, "starred": true } \ No newline at end of file diff --git a/commands/eventfetchURL-798176d44de4.json b/commands/eventfetchURL-798176d44de4.json index 4bdc246..94fe8a8 100644 --- a/commands/eventfetchURL-798176d44de4.json +++ b/commands/eventfetchURL-798176d44de4.json @@ -3,5 +3,5 @@ "locked": true, "starred": true, "name": "event.fetchURL", - "command": "const { document, window } = new (jsdom().JSDOM)('');\nconst anchor = document.createElement('a');\nconst bytes = IRC.require('bytes');\n\nfunction setDOM(page) {\n document.open();\n document.write(page);\n document.close();\n};\n\nfunction domTitle() {\n const metaTitle = document.head.querySelector('meta[name=\"title\"]');\n return metaTitle ? metaTitle.content : document.title;\n}\n\nconst filterWords = /something went wrong|cloudflare|forbidden|not found|access restricted|access denied|your browser|rick roll|never gonna give you up|log in|blocked|just a moment|been denied/i;\n\nfunction hasInfo(url, _title) {\n const title = _title.replace(/\\s+/g, ' ').trim();\n const isFresh = title.split(' ')\n .filter(word => (\n !(new RegExp(word.replace(/[^.a-zA-Z0-9\\u00c0-\\u017e]+/g, ''), 'i')).test(url)\n )).length >= 1;\n return isFresh;\n}\n\nIRC.listen('message', event => {\n if (!IRC.queryConfig('fetchURL', true)) return;\n const { text, from } = event.message;\n const urls = text.match(/(\\b(https?):\\/\\/[-A-Z0-9+&@#\\/%?=~_|!:,.;()]*[-A-Z0-9+&@#\\/%=~_|()])/ig);\n const fromSelf = from === IRC.nick;\n if (!urls || fromSelf || text.startsWith(IRC.trigger) || text.includes('##')) return;\n\n urls.slice(0, 3).forEach(url => {\n handleURL(url, global.print)\n .catch(print.error);\n });\n});\n\nasync function handleURL(url, print) {\n anchor.setAttribute('href', url);\n if (await customURL(url, print)) return;\n\n const res = await fetch(url, {\n headers: {\n 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',\n 'Accept-Language': 'en-GB,en;q=0.5',\n 'Content-Language': 'en-GB,en;q=0.5',\n 'User-Agent': /youtu\\.?be|google|reddit/.test(url) ? '' : 'Googlebot',\n },\n });\n\n const length = res.headers.get('content-length');\n\n if (length > 5.243e6) {\n const filename = anchor.pathname.split('/').pop();\n print.info(`{dc}${filename}{/} ${bytes(length)} {dgr}${res.headers.get('content-type')}{/}`);\n return;\n }\n \n if (res.headers.get('set-cookie')?.includes('mastodon')) {\n const id = url.match(/\\d+/);\n if (id && id[0]) {\n const toot = await(await fetch(`https://${anchor.hostname}/api/v1/statuses/${id[0]}`)).json();\n setDOM(toot.content);\n const textNodes = (function textNodes(node){\n const nodes = [];\n for (node=node.firstChild;node;node=node.nextSibling){\n if (node.nodeType === 3) nodes.push(node);\n else nodes.push(...textNodes(node));\n }\n return nodes;\n })(document.body).map(d=>d.textContent).join(' ');\n\n let output = `{bo}${toot.account.username}{/}{c}@${anchor.hostname}{/} ${textNodes}`;\n // let output = `{bo}${toot.account.username}{/}{c}@${anchor.hostname}{/} ${document.body.textContent}`;\n if (toot.card?.image) {\n output += ' ' + IRC.colors.link(toot.card.image);\n }\n print(output);\n return;\n }\n }\n\n const page = await res.text();\n setDOM(page);\n\n const title = domTitle();\n\n if (\n title.length \n && title.length < 400 \n && !filterWords.test(title)\n && (IRC.queryConfig('fetchURLAll', false) || hasInfo(url, title))) {\n print.info(title);\n }\n\n}\n\nasync function customURL(url, print) {\n // https://github.com/mendel5/alternative-front-ends\n const { hostname, pathname } = anchor;\n if (hostname.includes('reddit.')) {\n const jsonURL = url.replace(/(\\/?)(\\?.*)?(#.*)?$/, '/.json');\n const json = await(await fetch(jsonURL)).json();\n const data = json?.[0]?.data?.children?.[0]?.data;\n if (data) {\n const info = `{c}${data.subreddit_name_prefixed}{/} {o}▲${data.score}{/} ${data.title}`;\n const url = data?.secure_media?.reddit_video?.fallback_url?.replace('?source=fallback', '') || data.url;\n if (data.selftext) {\n print(`${info} ${String(data.selftext).replace(/\\s+/g, ' ').slice(0, 300)}`);\n return true;\n } else if (url) {\n print(`${info} ${IRC.colors.link(url)}`);\n return true;\n }\n }\n return true; \n }\n if (hostname.includes('youtube.') || hostname === 'youtu.be') {\n try {\n const json = await (await fetch(`https://www.youtube.com/oembed?url=${encodeURI(url)}&format=json`)).json();\n const {\n title, author_name,\n } = json;\n print(`{r}YouTube{/} {c}${author_name}{/} ${title}`);\n return true;\n } catch (e) { }\n // url.match(/(?!v=|v\\/|\\.be\\/|watch\\/)([0-9a-z\\-_]{11})/i);\n }\n if (hostname.includes('github.com') && !hostname.includes('gist')) {\n if (pathname.split('/').length === 3) {\n // it's a repo url\n const {\n description,\n html_url,\n name,\n stargazers_count,\n language,\n license, // { name }\n } = await (\n await fetch(`https://api.github.com/repos${pathname}`)\n ).json();\n\n print(`{gr}${description || name}{/} ${language ? IRC.colors.nick(language, false) : ''} {y}★{/} {bo}${stargazers_count}{/} {dgr}${license ? license.name : ''}{/}`);\n return true;\n }\n }\n \tif (hostname.includes('worldcubeassociation.org')) {\n if (pathname.includes('/persons/')){\n const {\n personal_records,\n person,\n medals\n }\n = await(await fetch(`https://www.worldcubeassociation.org/api/v0/persons/${pathname.split(\"/\")[2]}`)).json();\n // calculate best rank\n\t\t\tlet best_rank = Infinity\n let best_event = \"\"\n // RIP Feet\n delete personal_records[\"mmagic\"]\n delete personal_records[\"magic\"]\n \tdelete personal_records[\"333wf\"]\n \t\tdelete personal_records[\"333mbo\"]\n for (const event in personal_records) {\n if(+personal_records[event][\"single\"][\"world_rank\"] < best_rank){\n best_rank = personal_records[event][\"single\"][\"world_rank\"]\n best_event = event + \" Single\"\n }\n if(personal_records[event][\"average\"] != undefined && +personal_records[event][\"average\"][\"world_rank\"] < best_rank){\n best_rank = personal_records[event][\"average\"][\"world_rank\"]\n best_event = event + \" Average\"\n }\n }\n\n \t\n let output = `{bo}${person[\"name\"]}{/}, Medals: {y}${medals[\"gold\"]}{/} {gr}${medals[\"silver\"]}{/} {o}${medals[\"bronze\"]}{/}, Best Rank {c}${best_rank}{/} in {y}${best_event}`;\n print(output);\n \treturn true;\n }\n if (pathname.includes('/competitions/')){\n const {\n name,\n competitor_limit,\n registration_open,\n registration_close \n } = await (\n await fetch(`https://www.worldcubeassociation.org/api/v0/competitions/${pathname.split('/')[2]}`)\n ).json();\n // Add checks for comps in the past. \n let output = `{bo}${name}{/} (Limit: ${competitor_limit}), Registration: {c}${registration_open.split(\"T\")[0]}{/} - {c}${registration_close.split(\"T\")[0]}{/}`;\n print(output);\n \treturn true;\n }\n return false;\n }\n if (false && hostname.includes('instagram.')) {\n // https://git.sr.ht/~cadence/bibliogram-docs/tree/master/docs/Instances.md\n const id = pathname.match(/\\/([A-Za-z-0-9]{11})/);\n if (id) {\n const page = await (await fetch(`https://bibliogram.1d4.us/p/${id[1]}`)).text();\n setDOM(page);\n const text = document.querySelector('.structured-text').textContent;\n const name = document.querySelector('.name').textContent;\n const image = document.querySelector('.sized-image');\n\n let output = `{bo}Instagram{/} {c}${name}{/} ${text.replace(/\\s+/g, ' ')}`;\n print(output);\n }\n return true;\n }\n if (hostname.includes('twitter.')) {\n const id = pathname.match(/status\\/(\\d+)/);\n if (id) {\n const page = await (await fetch(`https://nitter.net/_/status/${id[1]}#m`)).text();\n setDOM(page);\n const maintweet = document.querySelector('.main-tweet');\n const name = maintweet.querySelector('.fullname').textContent;\n const user = maintweet.querySelector('.username').textContent;\n const image = maintweet.querySelector('.still-image img');\n //const card = maintweet.querySelector('.card-image img');\n const tweet = maintweet.querySelector('.tweet-content').textContent.replace(/\\s+/g, ' ');\n let output = `{bo}${name}{/} {c}${user}{/} ${tweet}`;\n if (image) {\n output += ' ' + IRC.colors.link(`https://nitter.net${image.getAttribute('src').replace(/%3Fname.+/, '')}`);\n }\n //if (card) {\n //output += ' ' + IRC.colors.link(`https://nitter.net${card.getAttribute('src')}`);\n //}\n print(output);\n return true;\n }\n }\n // image detection AI\n if (['jpg', 'gif', 'jpeg', 'png'].some(d => url.includes(`.${d}`))) {\n const reqUrl = 'https://api.imagga.com/v2/tags?image_url='+encodeURI(url);\n const json = await (await fetch(reqUrl, {\n headers: { Authorization: `Basic ${IRC.queryConfig('imaggaKey')} ` }\n })).json();\n if (json.status.type === 'error') {\n \tjson.status.text;\n } else if (json.result.tags) {\n const tags = json.result.tags.filter(tag => tag.confidence >= 70);\n \tif (tags.length) {\n \tprint('🖼️ 👀 '+tags.map(tag=>`{g}${tag.tag.en}{/}`).join(', '));\n \t} else if (json.result.tags.length) {\n \t\t//const [tag] = json.result.tags;\n //print(`Image may contain: {o}${tag.tag.en}{/} (${0|tag.confidence}% confidence)`);\n \t}\n }\n\n \treturn true;\n }\n // repaste pastebin\n if (hostname.includes('pastebin.com')) {\n const id = pathname.match(/\\/(\\w+)\\/?$/);\n if (id) {\n const page = await (await fetch(`https://pastebin.com/raw/${id[1]}`)).text();\n print.info(`repasted to ${await IRC.require('module.paste').async(page)}`)\n return true;\n }\n }\n}" + "command": "const { document, window } = new (jsdom().JSDOM)('');\nconst anchor = document.createElement('a');\nconst bytes = IRC.require('bytes');\n\nfunction setDOM(page) {\n document.open();\n document.write(page);\n document.close();\n};\n\nfunction domTitle() {\n const metaTitle = document.head.querySelector('meta[name=\"title\"]');\n return metaTitle ? metaTitle.content : document.title;\n}\n\nconst filterWords = /something went wrong|cloudflare|forbidden|not found|access restricted|access denied|your browser|rick roll|never gonna give you up|log in|blocked|just a moment|been denied/i;\n\nfunction hasInfo(url, _title) {\n const title = _title.replace(/\\s+/g, ' ').trim();\n const isFresh = title.split(' ')\n .filter(word => (\n !(new RegExp(word.replace(/[^.a-zA-Z0-9\\u00c0-\\u017e]+/g, ''), 'i')).test(url)\n )).length >= 1;\n return isFresh;\n}\n\nIRC.listen('message', event => {\n if (!IRC.queryConfig('fetchURL', true)) return;\n const { text, from } = event.message;\n const urls = text.match(/(\\b(https?):\\/\\/[-A-Z0-9+&@#\\/%?=~_|!:,.;()]*[-A-Z0-9+&@#\\/%=~_|()])/ig);\n const fromSelf = from === IRC.nick;\n if (!urls || fromSelf || text.startsWith(IRC.trigger) || text.includes('##')) return;\n\n urls.slice(0, 3).forEach(url => {\n handleURL(url, global.print)\n //.catch(print.error);\n });\n});\n\nasync function handleURL(url, print) {\n anchor.setAttribute('href', url);\n if (await customURL(url, print)) return;\n\n const res = await fetch(url, {\n headers: {\n 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',\n 'Accept-Language': 'en-GB,en;q=0.5',\n 'Content-Language': 'en-GB,en;q=0.5',\n 'User-Agent': /youtu\\.?be|google|reddit/.test(url) ? '' : 'Googlebot',\n },\n });\n\n const length = res.headers.get('content-length');\n\n if (length > 5.243e6) {\n const filename = anchor.pathname.split('/').pop();\n print.info(`{dc}${filename}{/} ${bytes(length)} {dgr}${res.headers.get('content-type')}{/}`);\n return;\n }\n \n if (res.headers.get('set-cookie')?.includes('mastodon')) {\n const id = url.match(/\\d+/);\n if (id && id[0]) {\n const toot = await(await fetch(`https://${anchor.hostname}/api/v1/statuses/${id[0]}`)).json();\n setDOM(toot.content);\n const textNodes = (function textNodes(node){\n const nodes = [];\n for (node=node.firstChild;node;node=node.nextSibling){\n if (node.nodeType === 3) nodes.push(node);\n else nodes.push(...textNodes(node));\n }\n return nodes;\n })(document.body).map(d=>d.textContent).join(' ');\n\n let output = `{bo}${toot.account.username}{/}{c}@${anchor.hostname}{/} ${textNodes}`;\n // let output = `{bo}${toot.account.username}{/}{c}@${anchor.hostname}{/} ${document.body.textContent}`;\n if (toot.card?.image) {\n output += ' ' + IRC.colors.link(toot.card.image);\n }\n print(output);\n return;\n }\n }\n\n const page = await res.text();\n setDOM(page);\n\n const title = domTitle();\n\n if (\n title.length \n && title.length < 400 \n && !filterWords.test(title)\n && (IRC.queryConfig('fetchURLAll', false) || hasInfo(url, title))) {\n print.info(title);\n }\n\n}\n\nasync function customURL(url, print) {\n // https://github.com/mendel5/alternative-front-ends\n const { hostname, pathname } = anchor;\n if (hostname.includes('reddit.')) {\n const jsonURL = url.replace(/(\\/?)(\\?.*)?(#.*)?$/, '/.json');\n const json = await(await fetch(jsonURL)).json();\n const data = json?.[0]?.data?.children?.[0]?.data;\n if (data) {\n const info = `{c}${data.subreddit_name_prefixed}{/} {o}▲${data.score}{/} ${data.title}`;\n const url = data?.secure_media?.reddit_video?.fallback_url?.replace('?source=fallback', '') || data.url;\n if (data.selftext) {\n print(`${info} ${String(data.selftext).replace(/\\s+/g, ' ').slice(0, 300)}`);\n return true;\n } else if (url) {\n print(`${info} ${IRC.colors.link(url)}`);\n return true;\n }\n }\n return true; \n }\n if (hostname.includes('youtube.') || hostname === 'youtu.be') {\n try {\n const json = await (await fetch(`https://www.youtube.com/oembed?url=${encodeURI(url)}&format=json`)).json();\n const {\n title, author_name,\n } = json;\n print(`{r}YouTube{/} {c}${author_name}{/} ${title}`);\n return true;\n } catch (e) { }\n // url.match(/(?!v=|v\\/|\\.be\\/|watch\\/)([0-9a-z\\-_]{11})/i);\n }\n if (hostname.includes('github.com') && !hostname.includes('gist')) {\n if (pathname.split('/').length === 3) {\n // it's a repo url\n const {\n description,\n html_url,\n name,\n stargazers_count,\n language,\n license, // { name }\n } = await (\n await fetch(`https://api.github.com/repos${pathname}`)\n ).json();\n\n print(`{gr}${description || name}{/} ${language ? IRC.colors.nick(language, false) : ''} {y}★{/} {bo}${stargazers_count}{/} {dgr}${license ? license.name : ''}{/}`);\n return true;\n }\n }\n \tif (hostname.includes('worldcubeassociation.org')) {\n if (pathname.includes('/persons/')){\n const {\n personal_records,\n person,\n medals\n }\n = await(await fetch(`https://www.worldcubeassociation.org/api/v0/persons/${pathname.split(\"/\")[2]}`)).json();\n // calculate best rank\n\t\t\tlet best_rank = Infinity\n let best_event = \"\"\n // RIP Feet\n delete personal_records[\"mmagic\"]\n delete personal_records[\"magic\"]\n \tdelete personal_records[\"333wf\"]\n \t\tdelete personal_records[\"333mbo\"]\n for (const event in personal_records) {\n if(+personal_records[event][\"single\"][\"world_rank\"] < best_rank){\n best_rank = personal_records[event][\"single\"][\"world_rank\"]\n best_event = event + \" Single\"\n }\n if(personal_records[event][\"average\"] != undefined && +personal_records[event][\"average\"][\"world_rank\"] < best_rank){\n best_rank = personal_records[event][\"average\"][\"world_rank\"]\n best_event = event + \" Average\"\n }\n }\n\n \t\n let output = `{bo}${person[\"name\"]}{/}, Medals: {y}${medals[\"gold\"]}{/} {gr}${medals[\"silver\"]}{/} {o}${medals[\"bronze\"]}{/}, Best Rank {c}${best_rank}{/} in {y}${best_event}`;\n print(output);\n \treturn true;\n }\n if (pathname.includes('/competitions/')){\n const {\n name,\n competitor_limit,\n registration_open,\n registration_close \n } = await (\n await fetch(`https://www.worldcubeassociation.org/api/v0/competitions/${pathname.split('/')[2]}`)\n ).json();\n // Add checks for comps in the past. \n let output = `{bo}${name}{/} (Limit: ${competitor_limit}), Registration: {c}${registration_open.split(\"T\")[0]}{/} - {c}${registration_close.split(\"T\")[0]}{/}`;\n print(output);\n \treturn true;\n }\n return false;\n }\n if (false && hostname.includes('instagram.')) {\n // https://git.sr.ht/~cadence/bibliogram-docs/tree/master/docs/Instances.md\n const id = pathname.match(/\\/([A-Za-z-0-9]{11})/);\n if (id) {\n const page = await (await fetch(`https://bibliogram.1d4.us/p/${id[1]}`)).text();\n setDOM(page);\n const text = document.querySelector('.structured-text').textContent;\n const name = document.querySelector('.name').textContent;\n const image = document.querySelector('.sized-image');\n\n let output = `{bo}Instagram{/} {c}${name}{/} ${text.replace(/\\s+/g, ' ')}`;\n print(output);\n }\n return true;\n }\n if (hostname.includes('twitter.')) {\n const id = pathname.match(/status\\/(\\d+)/);\n if (id) {\n const page = await (await fetch(`https://nitter.net/_/status/${id[1]}#m`)).text();\n setDOM(page);\n const maintweet = document.querySelector('.main-tweet');\n if (!maintweet) return;\n const name = maintweet.querySelector('.fullname').textContent;\n const user = maintweet.querySelector('.username').textContent;\n const image = maintweet.querySelector('.still-image img');\n //const card = maintweet.querySelector('.card-image img');\n const tweet = maintweet.querySelector('.tweet-content').textContent.replace(/\\s+/g, ' ');\n let output = `{bo}${name}{/} {c}${user}{/} ${tweet}`;\n if (image) {\n output += ' ' + IRC.colors.link(`https://nitter.net${image.getAttribute('src').replace(/%3Fname.+/, '')}`);\n }\n //if (card) {\n //output += ' ' + IRC.colors.link(`https://nitter.net${card.getAttribute('src')}`);\n //}\n print(output);\n return true;\n }\n }\n // image detection AI\n if (['jpg', 'gif', 'jpeg', 'png'].some(d => url.includes(`.${d}`))) {\n const reqUrl = 'https://api.imagga.com/v2/tags?image_url='+encodeURI(url);\n const json = await (await fetch(reqUrl, {\n headers: { Authorization: `Basic ${IRC.queryConfig('imaggaKey')} ` }\n })).json();\n if (json.status.type === 'error') {\n \tjson.status.text;\n } else if (json.result.tags) {\n const tags = json.result.tags.filter(tag => tag.confidence >= 70);\n \tif (tags.length) {\n \tprint('🖼️ 👀 '+tags.map(tag=>`{g}${tag.tag.en}{/}`).join(', '));\n \t} else if (json.result.tags.length) {\n \t\t//const [tag] = json.result.tags;\n //print(`Image may contain: {o}${tag.tag.en}{/} (${0|tag.confidence}% confidence)`);\n \t}\n }\n\n \treturn true;\n }\n // repaste pastebin\n if (hostname.includes('pastebin.com')) {\n const id = pathname.match(/\\/(\\w+)\\/?$/);\n if (id) {\n const page = await (await fetch(`https://pastebin.com/raw/${id[1]}`)).text();\n print.info(`repasted to ${await IRC.require('module.paste').async(page)}`)\n return true;\n }\n }\n}" } \ No newline at end of file diff --git a/commands/gptJ-780198f373b8.json b/commands/gptJ-780198f373b8.json new file mode 100644 index 0000000..0f8322b --- /dev/null +++ b/commands/gptJ-780198f373b8.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "gptJ", + "command": "const res = fetchSync.json('https://api.textsynth.com/v1/engines/gptneox_20B/completions', {\n headers: {\n\tAuthorization: `Bearer ${IRC.secret}`,\n \"Content-Type\": 'application/json',\n },\n method: 'POST',\n body: JSON.stringify({ prompt: input })\n});\n\n//log(res);\ntry {\nprint(res.text.replace(/\\s+/g,' '));\n \n} catch {\n \tlog(res); \n}" +} \ No newline at end of file diff --git a/commands/worlde-3ac0eaabc93d.json b/commands/worlde-3ac0eaabc93d.json new file mode 100644 index 0000000..bcd127f --- /dev/null +++ b/commands/worlde-3ac0eaabc93d.json @@ -0,0 +1,7 @@ +{ + "event": false, + "locked": false, + "starred": false, + "name": "worlde", + "command": "print('Correct! Good job Team.') " +} \ No newline at end of file diff --git a/irc/events.js b/irc/events.js index 16fe397..930c09a 100644 --- a/irc/events.js +++ b/irc/events.js @@ -47,6 +47,9 @@ function createEventManager(node) { ); for (cmd of node.parent.database.commands.events()) { try { + if (!vm) { + throw new Error('vm not loaded'); + } await vm.context.eval(`;(async()=>{\n${cmd.command}\n})()`); } catch (e) { // note which script has the error in @@ -174,7 +177,7 @@ function createEventManager(node) { return ref.vm?.isolate.isDisposed; }, unresponsive: (callback) => { - if (ref.vm?.isolate.isDisposed) { + if (ref.vm?.isolate.isDisposed || !ref.vm) { return callback(new Error('Isolate has been disposed')); } const timeout = setTimeout(callback, 1000); From feaa7ccc1d6b1396de6e20e69f1f34163567fc89 Mon Sep 17 00:00:00 2001 From: kirjavascript Date: Wed, 4 Jan 2023 21:01:44 +0100 Subject: [PATCH 60/94] egg event stuff --- commands/event-b306be3528b0.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/commands/event-b306be3528b0.json b/commands/event-b306be3528b0.json index e3d4951..ac85824 100644 --- a/commands/event-b306be3528b0.json +++ b/commands/event-b306be3528b0.json @@ -3,5 +3,5 @@ "locked": true, "starred": true, "name": "event", - "command": "// Auth example;\n//\n// curl -X POST --data-binary '{\"passcode\":\"demo\"}' -H \"Content-Type: application/json\" http://localhost:8888/api/webhook/test\n\n// const tripcode = require('tripcode');\n\n// IRC.listen('webhook.test', event => {\n// const authed = tripcode(event.body.passcode) === IRC.queryConfig('testCode');\n// print(authed ? 'pass' : 'fail');\n// });\n\nIRC.listen('tick', () => (\n (new Date).toISOString().slice(5,19)\n \t=== '01-01T00:00:00'\n \t&& print('(*⌒∇⌒*) //// 🎉 {rb}happy new year')\n));\n\nconst faces = [ '(◕ᴗ◕✿)', '(◕◡◕✿)', '(◔◡◔✿)', '(。◕‿◕。✿)', '(◡‿◡✿)', '(◠‿◠✿)', '(◕ܫ◕✿)', '(◕▿◕✿)', '(◕ ワ ◕✿)' ];\nIRC.listen('message', ({ message: { from, text } }) => {\n if (text.includes('❤')) {\n print(' '.repeat(text.indexOf('❤')) + ' ⟍' +faces[0|Math.random()*faces.length]);\n }\n});\n\n\nIRC.listen('message', (event) => {\n if (event.target === '#8bitvape'){\n \tif (event.message.text.includes('donk')) print('donk'); \n \telse if (event.message.text.includes('dongers')) print(\"{p}ヽ༼ຈل͜ຈ༽ノ {r}raise your dongers {p}ヽ༼ຈل͜ຈ༽ノ\") \n } \n});\n\nIRC.listen('message', (event) => {\n if (event.message.from.toLowerCase() === 'lambdacomplex' && /\\begg\\b/.test(event.message.text))\n IRC.require('evilegg');\n});\n\n\nconst daily = () => 25200 === (0|new Date/1000)%86400;\n\nconst hourly = () => 420 === (0|new Date/1000)%3600;\n\nIRC.listen('tick', ({ target }) => {\n if (target === '#rubik' && daily()) {\n IRC.require('comps.new');\n }\n});\n\nIRC.listen('tick', ({ target }) => {\n if (target === '#8bitvape') {\n \tif (daily()) IRC.require('7');\n else if (hourly()) print((s=[...'⁷₇⅐⅞⑦⑺⒎㋆㍟㏦7𝟕𝟟𝟩𝟳𝟽🄈🯷'],s[0|Math.random()*s.length]));\n }\n});\n\nIRC.listen('tick', ({ target }) => {\n if (target === '#eggchan' && 0 === (0|new Date/1000)%3600) {\n print('egg');\n }\n});" + "command": "// Auth example;\n//\n// curl -X POST --data-binary '{\"passcode\":\"demo\"}' -H \"Content-Type: application/json\" http://localhost:8888/api/webhook/test\n\n// const tripcode = require('tripcode');\n\n// IRC.listen('webhook.test', event => {\n// const authed = tripcode(event.body.passcode) === IRC.queryConfig('testCode');\n// print(authed ? 'pass' : 'fail');\n// });\n\nIRC.listen('tick', () => (\n (new Date).toISOString().slice(5,19)\n \t=== '01-01T00:00:00'\n \t&& print('(*⌒∇⌒*) //// 🎉 {rb}happy new year')\n));\n\nconst faces = [ '(◕ᴗ◕✿)', '(◕◡◕✿)', '(◔◡◔✿)', '(。◕‿◕。✿)', '(◡‿◡✿)', '(◠‿◠✿)', '(◕ܫ◕✿)', '(◕▿◕✿)', '(◕ ワ ◕✿)' ];\nIRC.listen('message', ({ message: { from, text } }) => {\n if (text.includes('❤')) {\n print(' '.repeat(text.indexOf('❤')) + ' ⟍' +faces[0|Math.random()*faces.length]);\n }\n});\n\n\nIRC.listen('message', (event) => {\n if (event.target === '#8bitvape'){\n \tif (event.message.text.includes('donk')) print('donk'); \n \telse if (event.message.text.includes('dongers')) print(\"{p}ヽ༼ຈل͜ຈ༽ノ {r}raise your dongers {p}ヽ༼ຈل͜ຈ༽ノ\") \n } \n});\n\nIRC.listen('message', (event) => {\n if (event.message.from.toLowerCase() === 'lambdacomplex' && /\\begg\\b/.test(event.message.text))\n IRC.require('evilegg');\n});\n\n\nconst daily = () => 25200 === (0|new Date/1000)%86400;\n\nconst hourly = () => 420 === (0|new Date/1000)%3600;\n\nIRC.listen('tick', ({ target }) => {\n if (target === '#rubik' && daily()) {\n IRC.require('comps.new');\n }\n});\n\nIRC.listen('tick', ({ target }) => {\n if (target === '#8bitvape') {\n \tif (daily()) IRC.require('7');\n else if (hourly()) print((s=[...'⁷₇⅐⅞⑦⑺⒎㋆㍟㏦7𝟕𝟟𝟩𝟳𝟽🄈🯷'],s[0|Math.random()*s.length]));\n }\n});\n\nIRC.listen('tick', ({ target }) => {\n if (target === '#eggchan' && 0 === (0|new Date/1000)%3600) {\n \tconst hours = new Date().getHours();\n print('egg '.repeat(hours%12||12)[hours>=12?'toUpperCase':'slice']());\n }\n});" } \ No newline at end of file From 37b71a0985eb4a62320993a24c3883f16ccbaedf Mon Sep 17 00:00:00 2001 From: Akshay Date: Thu, 12 Jan 2023 12:09:42 +0530 Subject: [PATCH 61/94] improve CuteServ tenfold --- commands/event-b306be3528b0.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/commands/event-b306be3528b0.json b/commands/event-b306be3528b0.json index ac85824..03c7155 100644 --- a/commands/event-b306be3528b0.json +++ b/commands/event-b306be3528b0.json @@ -3,5 +3,5 @@ "locked": true, "starred": true, "name": "event", - "command": "// Auth example;\n//\n// curl -X POST --data-binary '{\"passcode\":\"demo\"}' -H \"Content-Type: application/json\" http://localhost:8888/api/webhook/test\n\n// const tripcode = require('tripcode');\n\n// IRC.listen('webhook.test', event => {\n// const authed = tripcode(event.body.passcode) === IRC.queryConfig('testCode');\n// print(authed ? 'pass' : 'fail');\n// });\n\nIRC.listen('tick', () => (\n (new Date).toISOString().slice(5,19)\n \t=== '01-01T00:00:00'\n \t&& print('(*⌒∇⌒*) //// 🎉 {rb}happy new year')\n));\n\nconst faces = [ '(◕ᴗ◕✿)', '(◕◡◕✿)', '(◔◡◔✿)', '(。◕‿◕。✿)', '(◡‿◡✿)', '(◠‿◠✿)', '(◕ܫ◕✿)', '(◕▿◕✿)', '(◕ ワ ◕✿)' ];\nIRC.listen('message', ({ message: { from, text } }) => {\n if (text.includes('❤')) {\n print(' '.repeat(text.indexOf('❤')) + ' ⟍' +faces[0|Math.random()*faces.length]);\n }\n});\n\n\nIRC.listen('message', (event) => {\n if (event.target === '#8bitvape'){\n \tif (event.message.text.includes('donk')) print('donk'); \n \telse if (event.message.text.includes('dongers')) print(\"{p}ヽ༼ຈل͜ຈ༽ノ {r}raise your dongers {p}ヽ༼ຈل͜ຈ༽ノ\") \n } \n});\n\nIRC.listen('message', (event) => {\n if (event.message.from.toLowerCase() === 'lambdacomplex' && /\\begg\\b/.test(event.message.text))\n IRC.require('evilegg');\n});\n\n\nconst daily = () => 25200 === (0|new Date/1000)%86400;\n\nconst hourly = () => 420 === (0|new Date/1000)%3600;\n\nIRC.listen('tick', ({ target }) => {\n if (target === '#rubik' && daily()) {\n IRC.require('comps.new');\n }\n});\n\nIRC.listen('tick', ({ target }) => {\n if (target === '#8bitvape') {\n \tif (daily()) IRC.require('7');\n else if (hourly()) print((s=[...'⁷₇⅐⅞⑦⑺⒎㋆㍟㏦7𝟕𝟟𝟩𝟳𝟽🄈🯷'],s[0|Math.random()*s.length]));\n }\n});\n\nIRC.listen('tick', ({ target }) => {\n if (target === '#eggchan' && 0 === (0|new Date/1000)%3600) {\n \tconst hours = new Date().getHours();\n print('egg '.repeat(hours%12||12)[hours>=12?'toUpperCase':'slice']());\n }\n});" -} \ No newline at end of file + "command": "// Auth example;\n//\n// curl -X POST --data-binary '{\"passcode\":\"demo\"}' -H \"Content-Type: application/json\" http://localhost:8888/api/webhook/test\n\n// const tripcode = require('tripcode');\n\n// IRC.listen('webhook.test', event => {\n// const authed = tripcode(event.body.passcode) === IRC.queryConfig('testCode');\n// print(authed ? 'pass' : 'fail');\n// });\n\nIRC.listen('tick', () => (\n (new Date).toISOString().slice(5,19)\n \t=== '01-01T00:00:00'\n \t&& print('(*⌒∇⌒*) //// 🎉 {rb}happy new year')\n));\n\nconst faces = [ '(◕ᴗ◕✿)', '(◕◡◕✿)', '(◔◡◔✿)', '(。◕‿◕。✿)', '(◡‿◡✿)', '(◠‿◠✿)', '(◕ܫ◕✿)', '(◕▿◕✿)', '(◕ ワ ◕✿)' ];\nIRC.listen('message', ({ message: { from, text } }) => {\n if (text.includes('❤')) {\n print(' '.repeat(text.indexOf('❤')) + ' ⟍' +faces[0|Math.random()*faces.length]);\n }\n});\n\n\nIRC.listen('message', (event) => {\n if (event.target === '#8bitvape'){\n \tif (event.message.text.includes('donk')) print('donk'); \n \telse if (event.message.text.includes('dongers')) print(\"{p}ヽ༼ຈل͜ຈ༽ノ {r}raise your dongers {p}ヽ༼ຈل͜ຈ༽ノ\") \n } \n});\n\nIRC.listen('message', (event) => {\n if (event.message.from.toLowerCase() === 'nerdypepper' && /\\begg\\b/.test(event.message.text))\n IRC.require('evilegg');\n});\n\n\nconst daily = () => 25200 === (0|new Date/1000)%86400;\n\nconst hourly = () => 420 === (0|new Date/1000)%3600;\n\nIRC.listen('tick', ({ target }) => {\n if (target === '#rubik' && daily()) {\n IRC.require('comps.new');\n }\n});\n\nIRC.listen('tick', ({ target }) => {\n if (target === '#8bitvape') {\n \tif (daily()) IRC.require('7');\n else if (hourly()) print((s=[...'⁷₇⅐⅞⑦⑺⒎㋆㍟㏦7𝟕𝟟𝟩𝟳𝟽🄈🯷'],s[0|Math.random()*s.length]));\n }\n});\n\nIRC.listen('tick', ({ target }) => {\n if (target === '#eggchan' && 0 === (0|new Date/1000)%3600) {\n \tconst hours = new Date().getHours();\n print('egg '.repeat(hours%12||12)[hours>=12?'toUpperCase':'slice']());\n }\n});" +} From 18cf2275eb6277a52546368131d1d3413214dda4 Mon Sep 17 00:00:00 2001 From: Akshay Date: Thu, 12 Jan 2023 12:20:45 +0530 Subject: [PATCH 62/94] reinstate lambdacomplex to kingship --- commands/event-b306be3528b0.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/commands/event-b306be3528b0.json b/commands/event-b306be3528b0.json index 03c7155..bfc3d1f 100644 --- a/commands/event-b306be3528b0.json +++ b/commands/event-b306be3528b0.json @@ -3,5 +3,5 @@ "locked": true, "starred": true, "name": "event", - "command": "// Auth example;\n//\n// curl -X POST --data-binary '{\"passcode\":\"demo\"}' -H \"Content-Type: application/json\" http://localhost:8888/api/webhook/test\n\n// const tripcode = require('tripcode');\n\n// IRC.listen('webhook.test', event => {\n// const authed = tripcode(event.body.passcode) === IRC.queryConfig('testCode');\n// print(authed ? 'pass' : 'fail');\n// });\n\nIRC.listen('tick', () => (\n (new Date).toISOString().slice(5,19)\n \t=== '01-01T00:00:00'\n \t&& print('(*⌒∇⌒*) //// 🎉 {rb}happy new year')\n));\n\nconst faces = [ '(◕ᴗ◕✿)', '(◕◡◕✿)', '(◔◡◔✿)', '(。◕‿◕。✿)', '(◡‿◡✿)', '(◠‿◠✿)', '(◕ܫ◕✿)', '(◕▿◕✿)', '(◕ ワ ◕✿)' ];\nIRC.listen('message', ({ message: { from, text } }) => {\n if (text.includes('❤')) {\n print(' '.repeat(text.indexOf('❤')) + ' ⟍' +faces[0|Math.random()*faces.length]);\n }\n});\n\n\nIRC.listen('message', (event) => {\n if (event.target === '#8bitvape'){\n \tif (event.message.text.includes('donk')) print('donk'); \n \telse if (event.message.text.includes('dongers')) print(\"{p}ヽ༼ຈل͜ຈ༽ノ {r}raise your dongers {p}ヽ༼ຈل͜ຈ༽ノ\") \n } \n});\n\nIRC.listen('message', (event) => {\n if (event.message.from.toLowerCase() === 'nerdypepper' && /\\begg\\b/.test(event.message.text))\n IRC.require('evilegg');\n});\n\n\nconst daily = () => 25200 === (0|new Date/1000)%86400;\n\nconst hourly = () => 420 === (0|new Date/1000)%3600;\n\nIRC.listen('tick', ({ target }) => {\n if (target === '#rubik' && daily()) {\n IRC.require('comps.new');\n }\n});\n\nIRC.listen('tick', ({ target }) => {\n if (target === '#8bitvape') {\n \tif (daily()) IRC.require('7');\n else if (hourly()) print((s=[...'⁷₇⅐⅞⑦⑺⒎㋆㍟㏦7𝟕𝟟𝟩𝟳𝟽🄈🯷'],s[0|Math.random()*s.length]));\n }\n});\n\nIRC.listen('tick', ({ target }) => {\n if (target === '#eggchan' && 0 === (0|new Date/1000)%3600) {\n \tconst hours = new Date().getHours();\n print('egg '.repeat(hours%12||12)[hours>=12?'toUpperCase':'slice']());\n }\n});" + "command": "// Auth example;\n//\n// curl -X POST --data-binary '{\"passcode\":\"demo\"}' -H \"Content-Type: application/json\" http://localhost:8888/api/webhook/test\n\n// const tripcode = require('tripcode');\n\n// IRC.listen('webhook.test', event => {\n// const authed = tripcode(event.body.passcode) === IRC.queryConfig('testCode');\n// print(authed ? 'pass' : 'fail');\n// });\n\nIRC.listen('tick', () => (\n (new Date).toISOString().slice(5,19)\n \t=== '01-01T00:00:00'\n \t&& print('(*⌒∇⌒*) //// 🎉 {rb}happy new year')\n));\n\nconst faces = [ '(◕ᴗ◕✿)', '(◕◡◕✿)', '(◔◡◔✿)', '(。◕‿◕。✿)', '(◡‿◡✿)', '(◠‿◠✿)', '(◕ܫ◕✿)', '(◕▿◕✿)', '(◕ ワ ◕✿)' ];\nIRC.listen('message', ({ message: { from, text } }) => {\n if (text.includes('❤')) {\n print(' '.repeat(text.indexOf('❤')) + ' ⟍' +faces[0|Math.random()*faces.length]);\n }\n});\n\n\nIRC.listen('message', (event) => {\n if (event.target === '#8bitvape'){\n \tif (event.message.text.includes('donk')) print('donk'); \n \telse if (event.message.text.includes('dongers')) print(\"{p}ヽ༼ຈل͜ຈ༽ノ {r}raise your dongers {p}ヽ༼ຈل͜ຈ༽ノ\") \n } \n});\n\nIRC.listen('message', (event) => {\n if (['lambdacomplex', 'nerdypepper'].includes(event.message.from.toLowerCase()) && /\\begg\\b/.test(event.message.text))\n IRC.require('evilegg');\n});\n\n\nconst daily = () => 25200 === (0|new Date/1000)%86400;\n\nconst hourly = () => 420 === (0|new Date/1000)%3600;\n\nIRC.listen('tick', ({ target }) => {\n if (target === '#rubik' && daily()) {\n IRC.require('comps.new');\n }\n});\n\nIRC.listen('tick', ({ target }) => {\n if (target === '#8bitvape') {\n \tif (daily()) IRC.require('7');\n else if (hourly()) print((s=[...'⁷₇⅐⅞⑦⑺⒎㋆㍟㏦7𝟕𝟟𝟩𝟳𝟽🄈🯷'],s[0|Math.random()*s.length]));\n }\n});\n\nIRC.listen('tick', ({ target }) => {\n if (target === '#eggchan' && 0 === (0|new Date/1000)%3600) {\n \tconst hours = new Date().getHours();\n print('egg '.repeat(hours%12||12)[hours>=12?'toUpperCase':'slice']());\n }\n});" } From 4b1585a957aaddcac8545ad5a9a89a0fbae8c5b7 Mon Sep 17 00:00:00 2001 From: kirjavascript Date: Sat, 14 Jan 2023 00:15:30 +0000 Subject: [PATCH 63/94] minor cleanup --- TODO | 13 +- database/sql/index.js | 4 +- package.json | 2 +- web/static/main.js | 80 +- yarn.lock | 1643 +++++++++++++++++++++++++---------------- 5 files changed, 1044 insertions(+), 698 deletions(-) diff --git a/TODO b/TODO index b1cd382..ec7f7f1 100644 --- a/TODO +++ b/TODO @@ -4,7 +4,6 @@ repl: rs|clojure|vlang|cj|scheme|jsx|html https://modern.ircdocs.horse/ https://libredirect.github.io/ -poker3 https://en.wikipedia.org/wiki/Playing_cards_in_Unicode cache image recog results @@ -12,29 +11,27 @@ cache image recog results walmartian not appearing in logs -17:09 <@Budrick> cake^: bug report, pls do the needful. Web interface apparently can't deal with commands that have / in them -17:09 <~barf> how big the jow.moe -17:09 <@Budrick> see 5/7, 7/10 commands -17:09 <@Budrick> won't load em const SQL = IRC.getNamespace(); (so you only have to do it once...) 02:24 <+KLARSTRUP> ~> global.Buffer={isBuffer:()=>true},(m=>(m.seed("gnu, for 2FA there's google authenticator, twillio authy or duo mobile that works great, and most password managers supports 2FA too"),m.respond("for")))(require('markov')()) 02:24 <+CuteServ> [ 'too', 'supports 2FA', 'password managers', 'gnu, for', 'and most', '2FA there\'s', 'works great,', 'google authenticator,', 'mobile that', 'twillio authy', 'or duo' ] -use sql databases as html pasta -> simple api extension /api/text|html/namespace/key +https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe + +use sql databases as html pasta -> simple api extension /text|html/namespace/key // have shortlinks /api/t/hash dont let people steal localstorage data namespacestore aliases/groups in config remind pms not working remind.pending delayed memos -dont resolve URLs from selfbcz apis -redditvideourl +make webhooks local only --------- poker2: have a fakeout poker game +poker3 https://en.wikipedia.org/wiki/Playing_cards_in_Unicode htmlpastebin built in for shit diff --git a/database/sql/index.js b/database/sql/index.js index eae3dd7..d77319f 100644 --- a/database/sql/index.js +++ b/database/sql/index.js @@ -39,7 +39,7 @@ function useSQLDB(parent, namespace) { const queueQuery = (id, type, query, resolve, reject) => { if (isClosed) { - reject(new Error(`db restart`)); + reject(new Error(`db restart - closed`)); } else { queries.set(id, { type, query, resolve, reject }); if (isOnline) sendQuery(id); @@ -57,7 +57,7 @@ function useSQLDB(parent, namespace) { isClosed = true; // flush queries for (const { reject } of queries.values()) { - reject(new Error(`db restart`)); + reject(new Error(`db restart - closing`)); } // close worker worker.postMessage(['close']); diff --git a/package.json b/package.json index 936e6af..f842bd2 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "irc-upd": "^0.11.0", "isolated-vm": "^4.4.1", "marked": "^0.7.0", - "node-fetch": "^2.2.0", + "node-fetch": "^2.6.7", "npm": "7.24.2", "parse-package-name": "^0.1.0", "react": "^16.13.1", diff --git a/web/static/main.js b/web/static/main.js index f15fe50..357581e 100644 --- a/web/static/main.js +++ b/web/static/main.js @@ -1,26 +1,26 @@ -var qk=Object.create;var Uc=Object.defineProperty;var Gk=Object.getOwnPropertyDescriptor;var Vk=Object.getOwnPropertyNames;var $k=Object.getPrototypeOf,Xk=Object.prototype.hasOwnProperty;var Kk=e=>Uc(e,"__esModule",{value:!0});var xt=(e,n)=>()=>(n||e((n={exports:{}}).exports,n),n.exports);var Qk=(e,n,i)=>{if(n&&typeof n=="object"||typeof n=="function")for(let u of Vk(n))!Xk.call(e,u)&&u!=="default"&&Uc(e,u,{get:()=>n[u],enumerable:!(i=Gk(n,u))||i.enumerable});return e},$t=e=>Qk(Kk(Uc(e!=null?qk($k(e)):{},"default",e&&e.__esModule&&"default"in e?{get:()=>e.default,enumerable:!0}:{value:e,enumerable:!0})),e);var Bc=xt((WM,Fg)=>{"use strict";var Rg=Object.getOwnPropertySymbols,Zk=Object.prototype.hasOwnProperty,Jk=Object.prototype.propertyIsEnumerable;function eT(e){if(e==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}function tT(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de",Object.getOwnPropertyNames(e)[0]==="5")return!1;for(var n={},i=0;i<10;i++)n["_"+String.fromCharCode(i)]=i;var u=Object.getOwnPropertyNames(n).map(function(h){return n[h]});if(u.join("")!=="0123456789")return!1;var s={};return"abcdefghijklmnopqrst".split("").forEach(function(h){s[h]=h}),Object.keys(Object.assign({},s)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}Fg.exports=tT()?Object.assign:function(e,n){for(var i,u=eT(e),s,h=1;h{"use strict";var jc=Bc(),ni=typeof Symbol=="function"&&Symbol.for,Cu=ni?Symbol.for("react.element"):60103,nT=ni?Symbol.for("react.portal"):60106,rT=ni?Symbol.for("react.fragment"):60107,iT=ni?Symbol.for("react.strict_mode"):60108,oT=ni?Symbol.for("react.profiler"):60114,aT=ni?Symbol.for("react.provider"):60109,uT=ni?Symbol.for("react.context"):60110,lT=ni?Symbol.for("react.forward_ref"):60112,sT=ni?Symbol.for("react.suspense"):60113,fT=ni?Symbol.for("react.memo"):60115,cT=ni?Symbol.for("react.lazy"):60116,zg=typeof Symbol=="function"&&Symbol.iterator;function Mu(e){for(var n="https://reactjs.org/docs/error-decoder.html?invariant="+e,i=1;iVl.length&&Vl.push(e)}function $c(e,n,i,u){var s=typeof e;(s==="undefined"||s==="boolean")&&(e=null);var h=!1;if(e===null)h=!0;else switch(s){case"string":case"number":h=!0;break;case"object":switch(e.$$typeof){case Cu:case nT:h=!0}}if(h)return i(u,e,n===""?"."+Kc(e,0):n),1;if(h=0,n=n===""?".":n+":",Array.isArray(e))for(var d=0;d{"use strict";Kg.exports=Xg()});var rm=xt(rn=>{"use strict";var Ta,Eu,$l,Xl,Zc;typeof window=="undefined"||typeof MessageChannel!="function"?(Sa=null,Jc=null,eh=function(){if(Sa!==null)try{var e=rn.unstable_now();Sa(!0,e),Sa=null}catch(n){throw setTimeout(eh,0),n}},Qg=Date.now(),rn.unstable_now=function(){return Date.now()-Qg},Ta=function(e){Sa!==null?setTimeout(Ta,0,e):(Sa=e,setTimeout(eh,0))},Eu=function(e,n){Jc=setTimeout(e,n)},$l=function(){clearTimeout(Jc)},Xl=function(){return!1},Zc=rn.unstable_forceFrameRate=function(){}):(Kl=window.performance,th=window.Date,Zg=window.setTimeout,Jg=window.clearTimeout,typeof console!="undefined"&&(em=window.cancelAnimationFrame,typeof window.requestAnimationFrame!="function"&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills"),typeof em!="function"&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills")),typeof Kl=="object"&&typeof Kl.now=="function"?rn.unstable_now=function(){return Kl.now()}:(tm=th.now(),rn.unstable_now=function(){return th.now()-tm}),Nu=!1,Pu=null,Ql=-1,nh=5,rh=0,Xl=function(){return rn.unstable_now()>=rh},Zc=function(){},rn.unstable_forceFrameRate=function(e){0>e||125>>1,s=e[u];if(s!==void 0&&0es(d,i))x!==void 0&&0>es(x,d)?(e[u]=x,e[v]=i,u=v):(e[u]=d,e[h]=i,u=h);else if(x!==void 0&&0>es(x,i))e[u]=x,e[v]=i,u=v;else break e}}return n}return null}function es(e,n){var i=e.sortIndex-n.sortIndex;return i!==0?i:e.id-n.id}var ri=[],Xi=[],mT=1,yr=null,ar=3,ts=!1,Ao=!1,Lu=!1;function ns(e){for(var n=Br(Xi);n!==null;){if(n.callback===null)Jl(Xi);else if(n.startTime<=e)Jl(Xi),n.sortIndex=n.expirationTime,oh(ri,n);else break;n=Br(Xi)}}function ah(e){if(Lu=!1,ns(e),!Ao)if(Br(ri)!==null)Ao=!0,Ta(uh);else{var n=Br(Xi);n!==null&&Eu(ah,n.startTime-e)}}function uh(e,n){Ao=!1,Lu&&(Lu=!1,$l()),ts=!0;var i=ar;try{for(ns(n),yr=Br(ri);yr!==null&&(!(yr.expirationTime>n)||e&&!Xl());){var u=yr.callback;if(u!==null){yr.callback=null,ar=yr.priorityLevel;var s=u(yr.expirationTime<=n);n=rn.unstable_now(),typeof s=="function"?yr.callback=s:yr===Br(ri)&&Jl(ri),ns(n)}else Jl(ri);yr=Br(ri)}if(yr!==null)var h=!0;else{var d=Br(Xi);d!==null&&Eu(ah,d.startTime-n),h=!1}return h}finally{yr=null,ar=i,ts=!1}}function nm(e){switch(e){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1e4;default:return 5e3}}var yT=Zc;rn.unstable_IdlePriority=5;rn.unstable_ImmediatePriority=1;rn.unstable_LowPriority=4;rn.unstable_NormalPriority=3;rn.unstable_Profiling=null;rn.unstable_UserBlockingPriority=2;rn.unstable_cancelCallback=function(e){e.callback=null};rn.unstable_continueExecution=function(){Ao||ts||(Ao=!0,Ta(uh))};rn.unstable_getCurrentPriorityLevel=function(){return ar};rn.unstable_getFirstCallbackNode=function(){return Br(ri)};rn.unstable_next=function(e){switch(ar){case 1:case 2:case 3:var n=3;break;default:n=ar}var i=ar;ar=n;try{return e()}finally{ar=i}};rn.unstable_pauseExecution=function(){};rn.unstable_requestPaint=yT;rn.unstable_runWithPriority=function(e,n){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var i=ar;ar=e;try{return n()}finally{ar=i}};rn.unstable_scheduleCallback=function(e,n,i){var u=rn.unstable_now();if(typeof i=="object"&&i!==null){var s=i.delay;s=typeof s=="number"&&0u?(e.sortIndex=s,oh(Xi,e),Br(ri)===null&&e===Br(Xi)&&(Lu?$l():Lu=!0,Eu(ah,s-u))):(e.sortIndex=i,oh(ri,e),Ao||ts||(Ao=!0,Ta(uh))),e};rn.unstable_shouldYield=function(){var e=rn.unstable_now();ns(e);var n=Br(ri);return n!==yr&&yr!==null&&n!==null&&n.callback!==null&&n.startTime<=e&&n.expirationTime{"use strict";im.exports=rm()});var r1=xt(Gr=>{"use strict";var rs=bn(),wr=Bc(),Jn=om();function rt(e){for(var n="https://reactjs.org/docs/error-decoder.html?invariant="+e,i=1;in}return!1}function xr(e,n,i,u,s,h){this.acceptsBooleans=n===2||n===3||n===4,this.attributeName=u,this.attributeNamespace=s,this.mustUseProperty=i,this.propertyName=e,this.type=n,this.sanitizeURL=h}var er={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){er[e]=new xr(e,0,!1,e,null,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var n=e[0];er[n]=new xr(n,1,!1,e[1],null,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){er[e]=new xr(e,2,!1,e.toLowerCase(),null,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){er[e]=new xr(e,2,!1,e,null,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){er[e]=new xr(e,3,!1,e.toLowerCase(),null,!1)});["checked","multiple","muted","selected"].forEach(function(e){er[e]=new xr(e,3,!0,e,null,!1)});["capture","download"].forEach(function(e){er[e]=new xr(e,4,!1,e,null,!1)});["cols","rows","size","span"].forEach(function(e){er[e]=new xr(e,6,!1,e,null,!1)});["rowSpan","start"].forEach(function(e){er[e]=new xr(e,5,!1,e.toLowerCase(),null,!1)});var mh=/[\-:]([a-z])/g;function yh(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var n=e.replace(mh,yh);er[n]=new xr(n,1,!1,e,null,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var n=e.replace(mh,yh);er[n]=new xr(n,1,!1,e,"http://www.w3.org/1999/xlink",!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var n=e.replace(mh,yh);er[n]=new xr(n,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1)});["tabIndex","crossOrigin"].forEach(function(e){er[e]=new xr(e,1,!1,e.toLowerCase(),null,!1)});er.xlinkHref=new xr("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0);["src","href","action","formAction"].forEach(function(e){er[e]=new xr(e,1,!1,e.toLowerCase(),null,!0)});var ii=rs.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;ii.hasOwnProperty("ReactCurrentDispatcher")||(ii.ReactCurrentDispatcher={current:null});ii.hasOwnProperty("ReactCurrentBatchConfig")||(ii.ReactCurrentBatchConfig={suspense:null});function wh(e,n,i,u){var s=er.hasOwnProperty(n)?er[n]:null,h=s!==null?s.type===0:u?!1:!(!(2=i.length))throw Error(rt(93));i=i[0]}n=i}n==null&&(n=""),i=n}e._wrapperState={initialValue:Qi(i)}}function Dm(e,n){var i=Qi(n.value),u=Qi(n.defaultValue);i!=null&&(i=""+i,i!==e.value&&(e.value=i),n.defaultValue==null&&e.defaultValue!==i&&(e.defaultValue=i)),u!=null&&(e.defaultValue=""+u)}function Am(e){var n=e.textContent;n===e._wrapperState.initialValue&&n!==""&&n!==null&&(e.value=n)}var Im={html:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg"};function Rm(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function Nh(e,n){return e==null||e==="http://www.w3.org/1999/xhtml"?Rm(n):e==="http://www.w3.org/2000/svg"&&n==="foreignObject"?"http://www.w3.org/1999/xhtml":e}var hs,Fm=function(e){return typeof MSApp!="undefined"&&MSApp.execUnsafeLocalFunction?function(n,i,u,s){MSApp.execUnsafeLocalFunction(function(){return e(n,i,u,s)})}:e}(function(e,n){if(e.namespaceURI!==Im.svg||"innerHTML"in e)e.innerHTML=n;else{for(hs=hs||document.createElement("div"),hs.innerHTML=""+n.valueOf().toString()+"",n=hs.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;n.firstChild;)e.appendChild(n.firstChild)}});function Au(e,n){if(n){var i=e.firstChild;if(i&&i===e.lastChild&&i.nodeType===3){i.nodeValue=n;return}}e.textContent=n}function ds(e,n){var i={};return i[e.toLowerCase()]=n.toLowerCase(),i["Webkit"+e]="webkit"+n,i["Moz"+e]="moz"+n,i}var La={animationend:ds("Animation","AnimationEnd"),animationiteration:ds("Animation","AnimationIteration"),animationstart:ds("Animation","AnimationStart"),transitionend:ds("Transition","TransitionEnd")},Ph={},zm={};Ki&&(zm=document.createElement("div").style,"AnimationEvent"in window||(delete La.animationend.animation,delete La.animationiteration.animation,delete La.animationstart.animation),"TransitionEvent"in window||delete La.transitionend.transition);function ps(e){if(Ph[e])return Ph[e];if(!La[e])return e;var n=La[e],i;for(i in n)if(n.hasOwnProperty(i)&&i in zm)return Ph[e]=n[i];return e}var Hm=ps("animationend"),Wm=ps("animationiteration"),Um=ps("animationstart"),Bm=ps("transitionend"),Iu="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),jm=new(typeof WeakMap=="function"?WeakMap:Map);function Lh(e){var n=jm.get(e);return n===void 0&&(n=new Map,jm.set(e,n)),n}function Fo(e){var n=e,i=e;if(e.alternate)for(;n.return;)n=n.return;else{e=n;do n=e,(n.effectTag&1026)!=0&&(i=n.return),e=n.return;while(e)}return n.tag===3?i:null}function Ym(e){if(e.tag===13){var n=e.memoizedState;if(n===null&&(e=e.alternate,e!==null&&(n=e.memoizedState)),n!==null)return n.dehydrated}return null}function qm(e){if(Fo(e)!==e)throw Error(rt(188))}function OT(e){var n=e.alternate;if(!n){if(n=Fo(e),n===null)throw Error(rt(188));return n!==e?null:e}for(var i=e,u=n;;){var s=i.return;if(s===null)break;var h=s.alternate;if(h===null){if(u=s.return,u!==null){i=u;continue}break}if(s.child===h.child){for(h=s.child;h;){if(h===i)return qm(s),e;if(h===u)return qm(s),n;h=h.sibling}throw Error(rt(188))}if(i.return!==u.return)i=s,u=h;else{for(var d=!1,v=s.child;v;){if(v===i){d=!0,i=s,u=h;break}if(v===u){d=!0,u=s,i=h;break}v=v.sibling}if(!d){for(v=h.child;v;){if(v===i){d=!0,i=h,u=s;break}if(v===u){d=!0,u=h,i=s;break}v=v.sibling}if(!d)throw Error(rt(189))}}if(i.alternate!==u)throw Error(rt(190))}if(i.tag!==3)throw Error(rt(188));return i.stateNode.current===i?e:n}function Gm(e){if(e=OT(e),!e)return null;for(var n=e;;){if(n.tag===5||n.tag===6)return n;if(n.child)n.child.return=n,n=n.child;else{if(n===e)break;for(;!n.sibling;){if(!n.return||n.return===e)return null;n=n.return}n.sibling.return=n.return,n=n.sibling}}return null}function Oa(e,n){if(n==null)throw Error(rt(30));return e==null?n:Array.isArray(e)?Array.isArray(n)?(e.push.apply(e,n),e):(e.push(n),e):Array.isArray(n)?[e].concat(n):[e,n]}function Oh(e,n,i){Array.isArray(e)?e.forEach(n,i):e&&n.call(i,e)}var Ru=null;function DT(e){if(e){var n=e._dispatchListeners,i=e._dispatchInstances;if(Array.isArray(n))for(var u=0;ugs.length&&gs.push(e)}function Xm(e,n,i,u){if(gs.length){var s=gs.pop();return s.topLevelType=e,s.eventSystemFlags=u,s.nativeEvent=n,s.targetInst=i,s}return{topLevelType:e,eventSystemFlags:u,nativeEvent:n,targetInst:i,ancestors:[]}}function Km(e){var n=e.targetInst,i=n;do{if(!i){e.ancestors.push(i);break}var u=i;if(u.tag===3)u=u.stateNode.containerInfo;else{for(;u.return;)u=u.return;u=u.tag!==3?null:u.stateNode.containerInfo}if(!u)break;n=i.tag,n!==5&&n!==6||e.ancestors.push(i),i=qu(u)}while(i);for(i=0;i=n)return{node:i,offset:n-e};e=u}e:{for(;i;){if(i.nextSibling){i=i.nextSibling;break e}i=i.parentNode}i=void 0}i=u0(i)}}function s0(e,n){return e&&n?e===n?!0:e&&e.nodeType===3?!1:n&&n.nodeType===3?s0(e,n.parentNode):"contains"in e?e.contains(n):e.compareDocumentPosition?!!(e.compareDocumentPosition(n)&16):!1:!1}function f0(){for(var e=window,n=qh();n instanceof e.HTMLIFrameElement;){try{var i=typeof n.contentWindow.location.href=="string"}catch{i=!1}if(i)e=n.contentWindow;else break;n=qh(e.document)}return n}function Gh(e){var n=e&&e.nodeName&&e.nodeName.toLowerCase();return n&&(n==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||n==="textarea"||e.contentEditable==="true")}var c0="$",h0="/$",Vh="$?",$h="$!",Xh=null,Kh=null;function d0(e,n){switch(e){case"button":case"input":case"select":case"textarea":return!!n.autoFocus}return!1}function Qh(e,n){return e==="textarea"||e==="option"||e==="noscript"||typeof n.children=="string"||typeof n.children=="number"||typeof n.dangerouslySetInnerHTML=="object"&&n.dangerouslySetInnerHTML!==null&&n.dangerouslySetInnerHTML.__html!=null}var Zh=typeof setTimeout=="function"?setTimeout:void 0,GT=typeof clearTimeout=="function"?clearTimeout:void 0;function Da(e){for(;e!=null;e=e.nextSibling){var n=e.nodeType;if(n===1||n===3)break}return e}function p0(e){e=e.previousSibling;for(var n=0;e;){if(e.nodeType===8){var i=e.data;if(i===c0||i===$h||i===Vh){if(n===0)return e;n--}else i===h0&&n++}e=e.previousSibling}return null}var Jh=Math.random().toString(36).slice(2),to="__reactInternalInstance$"+Jh,ks="__reactEventHandlers$"+Jh,Yu="__reactContainere$"+Jh;function qu(e){var n=e[to];if(n)return n;for(var i=e.parentNode;i;){if(n=i[Yu]||i[to]){if(i=n.alternate,n.child!==null||i!==null&&i.child!==null)for(e=p0(e);e!==null;){if(i=e[to])return i;e=p0(e)}return n}e=i,i=e.parentNode}return null}function Gu(e){return e=e[to]||e[Yu],!e||e.tag!==5&&e.tag!==6&&e.tag!==13&&e.tag!==3?null:e}function zo(e){if(e.tag===5||e.tag===6)return e.stateNode;throw Error(rt(33))}function ed(e){return e[ks]||null}function Li(e){do e=e.return;while(e&&e.tag!==5);return e||null}function v0(e,n){var i=e.stateNode;if(!i)return null;var u=sh(i);if(!u)return null;i=u[n];e:switch(n){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(u=!u.disabled)||(e=e.type,u=!(e==="button"||e==="input"||e==="select"||e==="textarea")),e=!u;break e;default:e=!1}if(e)return null;if(i&&typeof i!="function")throw Error(rt(231,n,typeof i));return i}function g0(e,n,i){(n=v0(e,i.dispatchConfig.phasedRegistrationNames[n]))&&(i._dispatchListeners=Oa(i._dispatchListeners,n),i._dispatchInstances=Oa(i._dispatchInstances,e))}function VT(e){if(e&&e.dispatchConfig.phasedRegistrationNames){for(var n=e._targetInst,i=[];n;)i.push(n),n=Li(n);for(n=i.length;0this.eventPool.length&&this.eventPool.push(e)}function y0(e){e.eventPool=[],e.getPooled=XT,e.release=KT}var QT=Ir.extend({data:null}),ZT=Ir.extend({data:null}),JT=[9,13,27,32],rd=Ki&&"CompositionEvent"in window,Vu=null;Ki&&"documentMode"in document&&(Vu=document.documentMode);var eS=Ki&&"TextEvent"in window&&!Vu,w0=Ki&&(!rd||Vu&&8=Vu),x0=String.fromCharCode(32),Oi={beforeInput:{phasedRegistrationNames:{bubbled:"onBeforeInput",captured:"onBeforeInputCapture"},dependencies:["compositionend","keypress","textInput","paste"]},compositionEnd:{phasedRegistrationNames:{bubbled:"onCompositionEnd",captured:"onCompositionEndCapture"},dependencies:"blur compositionend keydown keypress keyup mousedown".split(" ")},compositionStart:{phasedRegistrationNames:{bubbled:"onCompositionStart",captured:"onCompositionStartCapture"},dependencies:"blur compositionstart keydown keypress keyup mousedown".split(" ")},compositionUpdate:{phasedRegistrationNames:{bubbled:"onCompositionUpdate",captured:"onCompositionUpdateCapture"},dependencies:"blur compositionupdate keydown keypress keyup mousedown".split(" ")}},_0=!1;function k0(e,n){switch(e){case"keyup":return JT.indexOf(n.keyCode)!==-1;case"keydown":return n.keyCode!==229;case"keypress":case"mousedown":case"blur":return!0;default:return!1}}function T0(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Ia=!1;function tS(e,n){switch(e){case"compositionend":return T0(n);case"keypress":return n.which!==32?null:(_0=!0,x0);case"textInput":return e=n.data,e===x0&&_0?null:e;default:return null}}function nS(e,n){if(Ia)return e==="compositionend"||!rd&&k0(e,n)?(e=m0(),Ts=nd=no=null,Ia=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(n.ctrlKey||n.altKey||n.metaKey)||n.ctrlKey&&n.altKey){if(n.char&&1=document.documentMode,A0={select:{phasedRegistrationNames:{bubbled:"onSelect",captured:"onSelectCapture"},dependencies:"blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange".split(" ")}},Ra=null,ad=null,el=null,ud=!1;function I0(e,n){var i=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;return ud||Ra==null||Ra!==qh(i)?null:(i=Ra,"selectionStart"in i&&Gh(i)?i={start:i.selectionStart,end:i.selectionEnd}:(i=(i.ownerDocument&&i.ownerDocument.defaultView||window).getSelection(),i={anchorNode:i.anchorNode,anchorOffset:i.anchorOffset,focusNode:i.focusNode,focusOffset:i.focusOffset}),el&&Ju(el,i)?null:(el=i,e=Ir.getPooled(A0.select,ad,e,n),e.type="select",e.target=Ra,Aa(e),e))}var yS={eventTypes:A0,extractEvents:function(e,n,i,u,s,h){if(s=h||(u.window===u?u.document:u.nodeType===9?u:u.ownerDocument),!(h=!s)){e:{s=Lh(s),h=ch.onSelect;for(var d=0;dFa||(e.current=ld[Fa],ld[Fa]=null,Fa--)}function An(e,n){Fa++,ld[Fa]=e.current,e.current=n}var ro={},ur={current:ro},Nr={current:!1},Wo=ro;function za(e,n){var i=e.type.contextTypes;if(!i)return ro;var u=e.stateNode;if(u&&u.__reactInternalMemoizedUnmaskedChildContext===n)return u.__reactInternalMemoizedMaskedChildContext;var s={},h;for(h in i)s[h]=n[h];return u&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=n,e.__reactInternalMemoizedMaskedChildContext=s),s}function Pr(e){return e=e.childContextTypes,e!=null}function Es(){_n(Nr),_n(ur)}function R0(e,n,i){if(ur.current!==ro)throw Error(rt(168));An(ur,n),An(Nr,i)}function F0(e,n,i){var u=e.stateNode;if(e=n.childContextTypes,typeof u.getChildContext!="function")return i;u=u.getChildContext();for(var s in u)if(!(s in e))throw Error(rt(108,Ni(n)||"Unknown",s));return wr({},i,{},u)}function Ns(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||ro,Wo=ur.current,An(ur,e),An(Nr,Nr.current),!0}function z0(e,n,i){var u=e.stateNode;if(!u)throw Error(rt(169));i?(e=F0(e,n,Wo),u.__reactInternalMemoizedMergedChildContext=e,_n(Nr),_n(ur),An(ur,e)):_n(Nr),An(Nr,i)}var LS=Jn.unstable_runWithPriority,sd=Jn.unstable_scheduleCallback,H0=Jn.unstable_cancelCallback,W0=Jn.unstable_requestPaint,fd=Jn.unstable_now,OS=Jn.unstable_getCurrentPriorityLevel,Ps=Jn.unstable_ImmediatePriority,U0=Jn.unstable_UserBlockingPriority,B0=Jn.unstable_NormalPriority,j0=Jn.unstable_LowPriority,Y0=Jn.unstable_IdlePriority,q0={},DS=Jn.unstable_shouldYield,AS=W0!==void 0?W0:function(){},Di=null,Ls=null,cd=!1,G0=fd(),jr=1e4>G0?fd:function(){return fd()-G0};function Os(){switch(OS()){case Ps:return 99;case U0:return 98;case B0:return 97;case j0:return 96;case Y0:return 95;default:throw Error(rt(332))}}function V0(e){switch(e){case 99:return Ps;case 98:return U0;case 97:return B0;case 96:return j0;case 95:return Y0;default:throw Error(rt(332))}}function io(e,n){return e=V0(e),LS(e,n)}function $0(e,n,i){return e=V0(e),sd(e,n,i)}function X0(e){return Di===null?(Di=[e],Ls=sd(Ps,K0)):Di.push(e),q0}function vi(){if(Ls!==null){var e=Ls;Ls=null,H0(e)}K0()}function K0(){if(!cd&&Di!==null){cd=!0;var e=0;try{var n=Di;io(99,function(){for(;e=n&&(mi=!0),e.firstContext=null)}function Yr(e,n){if(Rs!==e&&n!==!1&&n!==0)if((typeof n!="number"||n===1073741823)&&(Rs=e,n=1073741823),n={context:e,observedBits:n,next:null},Ha===null){if(Is===null)throw Error(rt(308));Ha=n,Is.dependencies={expirationTime:0,firstContext:n,responders:null}}else Ha=Ha.next=n;return e._currentValue}var oo=!1;function pd(e){e.updateQueue={baseState:e.memoizedState,baseQueue:null,shared:{pending:null},effects:null}}function vd(e,n){e=e.updateQueue,n.updateQueue===e&&(n.updateQueue={baseState:e.baseState,baseQueue:e.baseQueue,shared:e.shared,effects:e.effects})}function ao(e,n){return e={expirationTime:e,suspenseConfig:n,tag:0,payload:null,callback:null,next:null},e.next=e}function uo(e,n){if(e=e.updateQueue,e!==null){e=e.shared;var i=e.pending;i===null?n.next=n:(n.next=i.next,i.next=n),e.pending=n}}function Z0(e,n){var i=e.alternate;i!==null&&vd(i,e),e=e.updateQueue,i=e.baseQueue,i===null?(e.baseQueue=n.next=n,n.next=n):(n.next=i.next,i.next=n)}function tl(e,n,i,u){var s=e.updateQueue;oo=!1;var h=s.baseQueue,d=s.shared.pending;if(d!==null){if(h!==null){var v=h.next;h.next=d.next,d.next=v}h=d,s.shared.pending=null,v=e.alternate,v!==null&&(v=v.updateQueue,v!==null&&(v.baseQueue=d))}if(h!==null){v=h.next;var x=s.baseState,T=0,M=null,O=null,te=null;if(v!==null){var ve=v;do{if(d=ve.expirationTime,dT&&(T=d)}else{te!==null&&(te=te.next={expirationTime:1073741823,suspenseConfig:ve.suspenseConfig,tag:ve.tag,payload:ve.payload,callback:ve.callback,next:null}),$y(d,ve.suspenseConfig);e:{var ie=e,I=ve;switch(d=n,Ee=i,I.tag){case 1:if(ie=I.payload,typeof ie=="function"){x=ie.call(Ee,x,d);break e}x=ie;break e;case 3:ie.effectTag=ie.effectTag&-4097|64;case 0:if(ie=I.payload,d=typeof ie=="function"?ie.call(Ee,x,d):ie,d==null)break e;x=wr({},x,d);break e;case 2:oo=!0}}ve.callback!==null&&(e.effectTag|=32,d=s.effects,d===null?s.effects=[ve]:d.push(ve))}if(ve=ve.next,ve===null||ve===v){if(d=s.shared.pending,d===null)break;ve=h.next=d.next,d.next=v,s.baseQueue=h=d,s.shared.pending=null}}while(1)}te===null?M=x:te.next=O,s.baseState=M,s.baseQueue=te,ff(T),e.expirationTime=T,e.memoizedState=x}}function J0(e,n,i){if(e=n.effects,n.effects=null,e!==null)for(n=0;nc?(g=de,de=null):g=de.sibling;var k=te(I,de,q[c],oe);if(k===null){de===null&&(de=g);break}e&&de&&k.alternate===null&&n(I,de),D=h(k,D,c),Ue===null?ge=k:Ue.sibling=k,Ue=k,de=g}if(c===q.length)return i(I,de),ge;if(de===null){for(;cc?(g=de,de=null):g=de.sibling;var E=te(I,de,k.value,oe);if(E===null){de===null&&(de=g);break}e&&de&&E.alternate===null&&n(I,de),D=h(E,D,c),Ue===null?ge=E:Ue.sibling=E,Ue=E,de=g}if(k.done)return i(I,de),ge;if(de===null){for(;!k.done;c++,k=q.next())k=O(I,k.value,oe),k!==null&&(D=h(k,D,c),Ue===null?ge=k:Ue.sibling=k,Ue=k);return ge}for(de=u(I,de);!k.done;c++,k=q.next())k=ve(de,I,c,k.value,oe),k!==null&&(e&&k.alternate!==null&&de.delete(k.key===null?c:k.key),D=h(k,D,c),Ue===null?ge=k:Ue.sibling=k,Ue=k);return e&&de.forEach(function(S){return n(I,S)}),ge}return function(I,D,q,oe){var ge=typeof q=="object"&&q!==null&&q.type===Ro&&q.key===null;ge&&(q=q.props.children);var Ue=typeof q=="object"&&q!==null;if(Ue)switch(q.$$typeof){case ls:e:{for(Ue=q.key,ge=D;ge!==null;){if(ge.key===Ue){switch(ge.tag){case 7:if(q.type===Ro){i(I,ge.sibling),D=s(ge,q.props.children),D.return=I,I=D;break e}break;default:if(ge.elementType===q.type){i(I,ge.sibling),D=s(ge,q.props),D.ref=rl(I,ge,q),D.return=I,I=D;break e}}i(I,ge);break}else n(I,ge);ge=ge.sibling}q.type===Ro?(D=ho(q.props.children,I.mode,oe,q.key),D.return=I,I=D):(oe=cf(q.type,q.key,q.props,null,I.mode,oe),oe.ref=rl(I,D,q),oe.return=I,I=oe)}return d(I);case Na:e:{for(ge=q.key;D!==null;){if(D.key===ge)if(D.tag===4&&D.stateNode.containerInfo===q.containerInfo&&D.stateNode.implementation===q.implementation){i(I,D.sibling),D=s(D,q.children||[]),D.return=I,I=D;break e}else{i(I,D);break}else n(I,D);D=D.sibling}D=Zd(q,I.mode,oe),D.return=I,I=D}return d(I)}if(typeof q=="string"||typeof q=="number")return q=""+q,D!==null&&D.tag===6?(i(I,D.sibling),D=s(D,q),D.return=I,I=D):(i(I,D),D=Qd(q,I.mode,oe),D.return=I,I=D),d(I);if(Hs(q))return Ee(I,D,q,oe);if(Du(q))return ie(I,D,q,oe);if(Ue&&Ws(I,q),typeof q=="undefined"&&!ge)switch(I.tag){case 1:case 0:throw I=I.type,Error(rt(152,I.displayName||I.name||"Component"))}return i(I,D)}}var Ua=iy(!0),md=iy(!1),il={},gi={current:il},ol={current:il},al={current:il};function Uo(e){if(e===il)throw Error(rt(174));return e}function yd(e,n){switch(An(al,n),An(ol,e),An(gi,il),e=n.nodeType,e){case 9:case 11:n=(n=n.documentElement)?n.namespaceURI:Nh(null,"");break;default:e=e===8?n.parentNode:n,n=e.namespaceURI||null,e=e.tagName,n=Nh(n,e)}_n(gi),An(gi,n)}function Ba(){_n(gi),_n(ol),_n(al)}function oy(e){Uo(al.current);var n=Uo(gi.current),i=Nh(n,e.type);n!==i&&(An(ol,e),An(gi,i))}function wd(e){ol.current===e&&(_n(gi),_n(ol))}var Nn={current:0};function Us(e){for(var n=e;n!==null;){if(n.tag===13){var i=n.memoizedState;if(i!==null&&(i=i.dehydrated,i===null||i.data===Vh||i.data===$h))return n}else if(n.tag===19&&n.memoizedProps.revealOrder!==void 0){if((n.effectTag&64)!=0)return n}else if(n.child!==null){n.child.return=n,n=n.child;continue}if(n===e)break;for(;n.sibling===null;){if(n.return===null||n.return===e)return null;n=n.return}n.sibling.return=n.return,n=n.sibling}return null}function xd(e,n){return{responder:e,props:n}}var Bs=ii.ReactCurrentDispatcher,qr=ii.ReactCurrentBatchConfig,lo=0,jn=null,lr=null,sr=null,js=!1;function Rr(){throw Error(rt(321))}function _d(e,n){if(n===null)return!1;for(var i=0;ih))throw Error(rt(301));h+=1,sr=lr=null,n.updateQueue=null,Bs.current=FS,e=i(u,s)}while(n.expirationTime===lo)}if(Bs.current=$s,n=lr!==null&&lr.next!==null,lo=0,sr=lr=jn=null,js=!1,n)throw Error(rt(300));return e}function ja(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return sr===null?jn.memoizedState=sr=e:sr=sr.next=e,sr}function Ya(){if(lr===null){var e=jn.alternate;e=e!==null?e.memoizedState:null}else e=lr.next;var n=sr===null?jn.memoizedState:sr.next;if(n!==null)sr=n,lr=e;else{if(e===null)throw Error(rt(310));lr=e,e={memoizedState:lr.memoizedState,baseState:lr.baseState,baseQueue:lr.baseQueue,queue:lr.queue,next:null},sr===null?jn.memoizedState=sr=e:sr=sr.next=e}return sr}function Bo(e,n){return typeof n=="function"?n(e):n}function Ys(e){var n=Ya(),i=n.queue;if(i===null)throw Error(rt(311));i.lastRenderedReducer=e;var u=lr,s=u.baseQueue,h=i.pending;if(h!==null){if(s!==null){var d=s.next;s.next=h.next,h.next=d}u.baseQueue=s=h,i.pending=null}if(s!==null){s=s.next,u=u.baseState;var v=d=h=null,x=s;do{var T=x.expirationTime;if(Tjn.expirationTime&&(jn.expirationTime=T,ff(T))}else v!==null&&(v=v.next={expirationTime:1073741823,suspenseConfig:x.suspenseConfig,action:x.action,eagerReducer:x.eagerReducer,eagerState:x.eagerState,next:null}),$y(T,x.suspenseConfig),u=x.eagerReducer===e?x.eagerState:e(u,x.action);x=x.next}while(x!==null&&x!==s);v===null?h=u:v.next=d,Ho(u,n.memoizedState)||(mi=!0),n.memoizedState=u,n.baseState=h,n.baseQueue=v,i.lastRenderedState=u}return[n.memoizedState,i.dispatch]}function qs(e){var n=Ya(),i=n.queue;if(i===null)throw Error(rt(311));i.lastRenderedReducer=e;var u=i.dispatch,s=i.pending,h=n.memoizedState;if(s!==null){i.pending=null;var d=s=s.next;do h=e(h,d.action),d=d.next;while(d!==s);Ho(h,n.memoizedState)||(mi=!0),n.memoizedState=h,n.baseQueue===null&&(n.baseState=h),i.lastRenderedState=h}return[h,u]}function Td(e){var n=ja();return typeof e=="function"&&(e=e()),n.memoizedState=n.baseState=e,e=n.queue={pending:null,dispatch:null,lastRenderedReducer:Bo,lastRenderedState:e},e=e.dispatch=dy.bind(null,jn,e),[n.memoizedState,e]}function Sd(e,n,i,u){return e={tag:e,create:n,destroy:i,deps:u,next:null},n=jn.updateQueue,n===null?(n={lastEffect:null},jn.updateQueue=n,n.lastEffect=e.next=e):(i=n.lastEffect,i===null?n.lastEffect=e.next=e:(u=i.next,i.next=e,e.next=u,n.lastEffect=e)),e}function ay(){return Ya().memoizedState}function bd(e,n,i,u){var s=ja();jn.effectTag|=e,s.memoizedState=Sd(1|n,i,void 0,u===void 0?null:u)}function Cd(e,n,i,u){var s=Ya();u=u===void 0?null:u;var h=void 0;if(lr!==null){var d=lr.memoizedState;if(h=d.destroy,u!==null&&_d(u,d.deps)){Sd(n,i,h,u);return}}jn.effectTag|=e,s.memoizedState=Sd(1|n,i,h,u)}function uy(e,n){return bd(516,4,e,n)}function Gs(e,n){return Cd(516,4,e,n)}function ly(e,n){return Cd(4,2,e,n)}function sy(e,n){if(typeof n=="function")return e=e(),n(e),function(){n(null)};if(n!=null)return e=e(),n.current=e,function(){n.current=null}}function fy(e,n,i){return i=i!=null?i.concat([e]):null,Cd(4,2,sy.bind(null,n,e),i)}function Md(){}function cy(e,n){return ja().memoizedState=[e,n===void 0?null:n],e}function Vs(e,n){var i=Ya();n=n===void 0?null:n;var u=i.memoizedState;return u!==null&&n!==null&&_d(n,u[1])?u[0]:(i.memoizedState=[e,n],e)}function hy(e,n){var i=Ya();n=n===void 0?null:n;var u=i.memoizedState;return u!==null&&n!==null&&_d(n,u[1])?u[0]:(e=e(),i.memoizedState=[e,n],e)}function Ed(e,n,i){var u=Os();io(98>u?98:u,function(){e(!0)}),io(97<\/script>",e=e.removeChild(e.firstChild)):typeof u.is=="string"?e=d.createElement(s,{is:u.is}):(e=d.createElement(s),s==="select"&&(d=e,u.multiple?d.multiple=!0:u.size&&(d.size=u.size))):e=d.createElementNS(e,s),e[to]=n,e[ks]=u,Cy(e,n,!1,!1),n.stateNode=e,d=Yh(s,u),s){case"iframe":case"object":case"embed":Cn("load",e),v=u;break;case"video":case"audio":for(v=0;vu.tailExpiration&&1n)&&qo.set(e,n)))}}function lf(e,n){e.expirationTimee?i:e,2>=e&&n!==e?0:e}function Hr(e){if(e.lastExpiredTime!==0)e.callbackExpirationTime=1073741823,e.callbackPriority=99,e.callbackNode=X0(Gd.bind(null,e));else{var n=sf(e),i=e.callbackNode;if(n===0)i!==null&&(e.callbackNode=null,e.callbackExpirationTime=0,e.callbackPriority=90);else{var u=wi();if(n===1073741823?u=99:n===1||n===2?u=95:(u=10*(1073741821-n)-10*(1073741821-u),u=0>=u?99:250>=u?98:5250>=u?97:95),i!==null){var s=e.callbackPriority;if(e.callbackExpirationTime===n&&s>=u)return;i!==q0&&H0(i)}e.callbackExpirationTime=n,e.callbackPriority=u,n=n===1073741823?X0(Gd.bind(null,e)):$0(u,jy.bind(null,e),{timeout:10*(1073741821-n)-jr()}),e.callbackNode=n}}}function jy(e,n){if(uf=0,n)return n=wi(),Jd(e,n),Hr(e),null;var i=sf(e);if(i!==0){if(n=e.callbackNode,(At&(ai|yi))!==$n)throw Error(rt(327));if(qa(),e===zr&&i===Lr||Vo(e,i),Ut!==null){var u=At;At|=ai;var s=Vy();do try{XS();break}catch(v){Gy(e,v)}while(1);if(hd(),At=u,Qs.current=s,Xn===Zs)throw n=tf,Vo(e,i),Qo(e,i),Hr(e),n;if(Ut===null)switch(s=e.finishedWork=e.current.alternate,e.finishedExpirationTime=i,u=Xn,zr=null,u){case Yo:case Zs:throw Error(rt(345));case Uy:Jd(e,2=i){e.lastPingedTime=i,Vo(e,i);break}}if(h=sf(e),h!==0&&h!==i)break;if(u!==0&&u!==i){e.lastPingedTime=u;break}e.timeoutHandle=Zh($o.bind(null,e),s);break}$o(e);break;case ef:if(Qo(e,i),u=e.lastSuspendedTime,i===u&&(e.nextKnownPendingLevel=Vd(s)),rf&&(s=e.lastPingedTime,s===0||s>=i)){e.lastPingedTime=i,Vo(e,i);break}if(s=sf(e),s!==0&&s!==i)break;if(u!==0&&u!==i){e.lastPingedTime=u;break}if(ul!==1073741823?u=10*(1073741821-ul)-jr():Ri===1073741823?u=0:(u=10*(1073741821-Ri)-5e3,s=jr(),i=10*(1073741821-i)-s,u=s-u,0>u&&(u=0),u=(120>u?120:480>u?480:1080>u?1080:1920>u?1920:3e3>u?3e3:4320>u?4320:1960*GS(u/1960))-u,i=u?u=0:(s=d.busyDelayMs|0,h=jr()-(10*(1073741821-h)-(d.timeoutMs|0||5e3)),u=h<=s?0:s+u-h),10Bc(e,"__esModule",{value:!0});var yt=(e,n)=>()=>(n||e((n={exports:{}}).exports,n),n.exports);var Xk=(e,n,i)=>{if(n&&typeof n=="object"||typeof n=="function")for(let u of qk(n))!$k.call(e,u)&&u!=="default"&&Bc(e,u,{get:()=>n[u],enumerable:!(i=Yk(n,u))||i.enumerable});return e},Ut=e=>Xk(Vk(Bc(e!=null?jk(Gk(e)):{},"default",e&&e.__esModule&&"default"in e?{get:()=>e.default,enumerable:!0}:{value:e,enumerable:!0})),e);var jc=yt((WM,zg)=>{"use strict";var Fg=Object.getOwnPropertySymbols,Kk=Object.prototype.hasOwnProperty,Qk=Object.prototype.propertyIsEnumerable;function Zk(e){if(e==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}function Jk(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de",Object.getOwnPropertyNames(e)[0]==="5")return!1;for(var n={},i=0;i<10;i++)n["_"+String.fromCharCode(i)]=i;var u=Object.getOwnPropertyNames(n).map(function(h){return n[h]});if(u.join("")!=="0123456789")return!1;var s={};return"abcdefghijklmnopqrst".split("").forEach(function(h){s[h]=h}),Object.keys(Object.assign({},s)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}zg.exports=Jk()?Object.assign:function(e,n){for(var i,u=Zk(e),s,h=1;h{"use strict";var Yc=jc(),ri=typeof Symbol=="function"&&Symbol.for,bu=ri?Symbol.for("react.element"):60103,eT=ri?Symbol.for("react.portal"):60106,tT=ri?Symbol.for("react.fragment"):60107,nT=ri?Symbol.for("react.strict_mode"):60108,rT=ri?Symbol.for("react.profiler"):60114,iT=ri?Symbol.for("react.provider"):60109,oT=ri?Symbol.for("react.context"):60110,aT=ri?Symbol.for("react.forward_ref"):60112,uT=ri?Symbol.for("react.suspense"):60113,lT=ri?Symbol.for("react.memo"):60115,sT=ri?Symbol.for("react.lazy"):60116,Hg=typeof Symbol=="function"&&Symbol.iterator;function Cu(e){for(var n="https://reactjs.org/docs/error-decoder.html?invariant="+e,i=1;i$l.length&&$l.push(e)}function Xc(e,n,i,u){var s=typeof e;(s==="undefined"||s==="boolean")&&(e=null);var h=!1;if(e===null)h=!0;else switch(s){case"string":case"number":h=!0;break;case"object":switch(e.$$typeof){case bu:case eT:h=!0}}if(h)return i(u,e,n===""?"."+Qc(e,0):n),1;if(h=0,n=n===""?".":n+":",Array.isArray(e))for(var d=0;d{"use strict";Qg.exports=Kg()});var im=yt(on=>{"use strict";var xa,Mu,Vl,Xl,Jc;typeof window=="undefined"||typeof MessageChannel!="function"?(_a=null,eh=null,th=function(){if(_a!==null)try{var e=on.unstable_now();_a(!0,e),_a=null}catch(n){throw setTimeout(th,0),n}},Zg=Date.now(),on.unstable_now=function(){return Date.now()-Zg},xa=function(e){_a!==null?setTimeout(xa,0,e):(_a=e,setTimeout(th,0))},Mu=function(e,n){eh=setTimeout(e,n)},Vl=function(){clearTimeout(eh)},Xl=function(){return!1},Jc=on.unstable_forceFrameRate=function(){}):(Kl=window.performance,nh=window.Date,Jg=window.setTimeout,em=window.clearTimeout,typeof console!="undefined"&&(tm=window.cancelAnimationFrame,typeof window.requestAnimationFrame!="function"&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills"),typeof tm!="function"&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills")),typeof Kl=="object"&&typeof Kl.now=="function"?on.unstable_now=function(){return Kl.now()}:(nm=nh.now(),on.unstable_now=function(){return nh.now()-nm}),Eu=!1,Nu=null,Ql=-1,rh=5,ih=0,Xl=function(){return on.unstable_now()>=ih},Jc=function(){},on.unstable_forceFrameRate=function(e){0>e||125>>1,s=e[u];if(s!==void 0&&0es(d,i))b!==void 0&&0>es(b,d)?(e[u]=b,e[p]=i,u=p):(e[u]=d,e[h]=i,u=h);else if(b!==void 0&&0>es(b,i))e[u]=b,e[p]=i,u=p;else break e}}return n}return null}function es(e,n){var i=e.sortIndex-n.sortIndex;return i!==0?i:e.id-n.id}var ii=[],Xi=[],vT=1,gr=null,or=3,ts=!1,Do=!1,Pu=!1;function ns(e){for(var n=qr(Xi);n!==null;){if(n.callback===null)Jl(Xi);else if(n.startTime<=e)Jl(Xi),n.sortIndex=n.expirationTime,ah(ii,n);else break;n=qr(Xi)}}function uh(e){if(Pu=!1,ns(e),!Do)if(qr(ii)!==null)Do=!0,xa(lh);else{var n=qr(Xi);n!==null&&Mu(uh,n.startTime-e)}}function lh(e,n){Do=!1,Pu&&(Pu=!1,Vl()),ts=!0;var i=or;try{for(ns(n),gr=qr(ii);gr!==null&&(!(gr.expirationTime>n)||e&&!Xl());){var u=gr.callback;if(u!==null){gr.callback=null,or=gr.priorityLevel;var s=u(gr.expirationTime<=n);n=on.unstable_now(),typeof s=="function"?gr.callback=s:gr===qr(ii)&&Jl(ii),ns(n)}else Jl(ii);gr=qr(ii)}if(gr!==null)var h=!0;else{var d=qr(Xi);d!==null&&Mu(uh,d.startTime-n),h=!1}return h}finally{gr=null,or=i,ts=!1}}function rm(e){switch(e){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1e4;default:return 5e3}}var gT=Jc;on.unstable_IdlePriority=5;on.unstable_ImmediatePriority=1;on.unstable_LowPriority=4;on.unstable_NormalPriority=3;on.unstable_Profiling=null;on.unstable_UserBlockingPriority=2;on.unstable_cancelCallback=function(e){e.callback=null};on.unstable_continueExecution=function(){Do||ts||(Do=!0,xa(lh))};on.unstable_getCurrentPriorityLevel=function(){return or};on.unstable_getFirstCallbackNode=function(){return qr(ii)};on.unstable_next=function(e){switch(or){case 1:case 2:case 3:var n=3;break;default:n=or}var i=or;or=n;try{return e()}finally{or=i}};on.unstable_pauseExecution=function(){};on.unstable_requestPaint=gT;on.unstable_runWithPriority=function(e,n){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var i=or;or=e;try{return n()}finally{or=i}};on.unstable_scheduleCallback=function(e,n,i){var u=on.unstable_now();if(typeof i=="object"&&i!==null){var s=i.delay;s=typeof s=="number"&&0u?(e.sortIndex=s,ah(Xi,e),qr(ii)===null&&e===qr(Xi)&&(Pu?Vl():Pu=!0,Mu(uh,s-u))):(e.sortIndex=i,ah(ii,e),Do||ts||(Do=!0,xa(lh))),e};on.unstable_shouldYield=function(){var e=on.unstable_now();ns(e);var n=qr(ii);return n!==gr&&gr!==null&&n!==null&&n.callback!==null&&n.startTime<=e&&n.expirationTime{"use strict";om.exports=im()});var i1=yt(Xr=>{"use strict";var rs=yn(),mr=jc(),tr=am();function tt(e){for(var n="https://reactjs.org/docs/error-decoder.html?invariant="+e,i=1;in}return!1}function yr(e,n,i,u,s,h){this.acceptsBooleans=n===2||n===3||n===4,this.attributeName=u,this.attributeNamespace=s,this.mustUseProperty=i,this.propertyName=e,this.type=n,this.sanitizeURL=h}var nr={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){nr[e]=new yr(e,0,!1,e,null,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var n=e[0];nr[n]=new yr(n,1,!1,e[1],null,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){nr[e]=new yr(e,2,!1,e.toLowerCase(),null,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){nr[e]=new yr(e,2,!1,e,null,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){nr[e]=new yr(e,3,!1,e.toLowerCase(),null,!1)});["checked","multiple","muted","selected"].forEach(function(e){nr[e]=new yr(e,3,!0,e,null,!1)});["capture","download"].forEach(function(e){nr[e]=new yr(e,4,!1,e,null,!1)});["cols","rows","size","span"].forEach(function(e){nr[e]=new yr(e,6,!1,e,null,!1)});["rowSpan","start"].forEach(function(e){nr[e]=new yr(e,5,!1,e.toLowerCase(),null,!1)});var yh=/[\-:]([a-z])/g;function wh(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var n=e.replace(yh,wh);nr[n]=new yr(n,1,!1,e,null,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var n=e.replace(yh,wh);nr[n]=new yr(n,1,!1,e,"http://www.w3.org/1999/xlink",!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var n=e.replace(yh,wh);nr[n]=new yr(n,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1)});["tabIndex","crossOrigin"].forEach(function(e){nr[e]=new yr(e,1,!1,e.toLowerCase(),null,!1)});nr.xlinkHref=new yr("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0);["src","href","action","formAction"].forEach(function(e){nr[e]=new yr(e,1,!1,e.toLowerCase(),null,!0)});var oi=rs.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;oi.hasOwnProperty("ReactCurrentDispatcher")||(oi.ReactCurrentDispatcher={current:null});oi.hasOwnProperty("ReactCurrentBatchConfig")||(oi.ReactCurrentBatchConfig={suspense:null});function xh(e,n,i,u){var s=nr.hasOwnProperty(n)?nr[n]:null,h=s!==null?s.type===0:u?!1:!(!(2=i.length))throw Error(tt(93));i=i[0]}n=i}n==null&&(n=""),i=n}e._wrapperState={initialValue:Qi(i)}}function Am(e,n){var i=Qi(n.value),u=Qi(n.defaultValue);i!=null&&(i=""+i,i!==e.value&&(e.value=i),n.defaultValue==null&&e.defaultValue!==i&&(e.defaultValue=i)),u!=null&&(e.defaultValue=""+u)}function Im(e){var n=e.textContent;n===e._wrapperState.initialValue&&n!==""&&n!==null&&(e.value=n)}var Rm={html:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg"};function Fm(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function Ph(e,n){return e==null||e==="http://www.w3.org/1999/xhtml"?Fm(n):e==="http://www.w3.org/2000/svg"&&n==="foreignObject"?"http://www.w3.org/1999/xhtml":e}var hs,zm=function(e){return typeof MSApp!="undefined"&&MSApp.execUnsafeLocalFunction?function(n,i,u,s){MSApp.execUnsafeLocalFunction(function(){return e(n,i,u,s)})}:e}(function(e,n){if(e.namespaceURI!==Rm.svg||"innerHTML"in e)e.innerHTML=n;else{for(hs=hs||document.createElement("div"),hs.innerHTML=""+n.valueOf().toString()+"",n=hs.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;n.firstChild;)e.appendChild(n.firstChild)}});function Du(e,n){if(n){var i=e.firstChild;if(i&&i===e.lastChild&&i.nodeType===3){i.nodeValue=n;return}}e.textContent=n}function ds(e,n){var i={};return i[e.toLowerCase()]=n.toLowerCase(),i["Webkit"+e]="webkit"+n,i["Moz"+e]="moz"+n,i}var Ea={animationend:ds("Animation","AnimationEnd"),animationiteration:ds("Animation","AnimationIteration"),animationstart:ds("Animation","AnimationStart"),transitionend:ds("Transition","TransitionEnd")},Lh={},Hm={};Ki&&(Hm=document.createElement("div").style,"AnimationEvent"in window||(delete Ea.animationend.animation,delete Ea.animationiteration.animation,delete Ea.animationstart.animation),"TransitionEvent"in window||delete Ea.transitionend.transition);function ps(e){if(Lh[e])return Lh[e];if(!Ea[e])return e;var n=Ea[e],i;for(i in n)if(n.hasOwnProperty(i)&&i in Hm)return Lh[e]=n[i];return e}var Wm=ps("animationend"),Um=ps("animationiteration"),Bm=ps("animationstart"),jm=ps("transitionend"),Au="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Ym=new(typeof WeakMap=="function"?WeakMap:Map);function Oh(e){var n=Ym.get(e);return n===void 0&&(n=new Map,Ym.set(e,n)),n}function Ro(e){var n=e,i=e;if(e.alternate)for(;n.return;)n=n.return;else{e=n;do n=e,(n.effectTag&1026)!=0&&(i=n.return),e=n.return;while(e)}return n.tag===3?i:null}function qm(e){if(e.tag===13){var n=e.memoizedState;if(n===null&&(e=e.alternate,e!==null&&(n=e.memoizedState)),n!==null)return n.dehydrated}return null}function Gm(e){if(Ro(e)!==e)throw Error(tt(188))}function PT(e){var n=e.alternate;if(!n){if(n=Ro(e),n===null)throw Error(tt(188));return n!==e?null:e}for(var i=e,u=n;;){var s=i.return;if(s===null)break;var h=s.alternate;if(h===null){if(u=s.return,u!==null){i=u;continue}break}if(s.child===h.child){for(h=s.child;h;){if(h===i)return Gm(s),e;if(h===u)return Gm(s),n;h=h.sibling}throw Error(tt(188))}if(i.return!==u.return)i=s,u=h;else{for(var d=!1,p=s.child;p;){if(p===i){d=!0,i=s,u=h;break}if(p===u){d=!0,u=s,i=h;break}p=p.sibling}if(!d){for(p=h.child;p;){if(p===i){d=!0,i=h,u=s;break}if(p===u){d=!0,u=h,i=s;break}p=p.sibling}if(!d)throw Error(tt(189))}}if(i.alternate!==u)throw Error(tt(190))}if(i.tag!==3)throw Error(tt(188));return i.stateNode.current===i?e:n}function $m(e){if(e=PT(e),!e)return null;for(var n=e;;){if(n.tag===5||n.tag===6)return n;if(n.child)n.child.return=n,n=n.child;else{if(n===e)break;for(;!n.sibling;){if(!n.return||n.return===e)return null;n=n.return}n.sibling.return=n.return,n=n.sibling}}return null}function Na(e,n){if(n==null)throw Error(tt(30));return e==null?n:Array.isArray(e)?Array.isArray(n)?(e.push.apply(e,n),e):(e.push(n),e):Array.isArray(n)?[e].concat(n):[e,n]}function Dh(e,n,i){Array.isArray(e)?e.forEach(n,i):e&&n.call(i,e)}var Iu=null;function LT(e){if(e){var n=e._dispatchListeners,i=e._dispatchInstances;if(Array.isArray(n))for(var u=0;ugs.length&&gs.push(e)}function Km(e,n,i,u){if(gs.length){var s=gs.pop();return s.topLevelType=e,s.eventSystemFlags=u,s.nativeEvent=n,s.targetInst=i,s}return{topLevelType:e,eventSystemFlags:u,nativeEvent:n,targetInst:i,ancestors:[]}}function Qm(e){var n=e.targetInst,i=n;do{if(!i){e.ancestors.push(i);break}var u=i;if(u.tag===3)u=u.stateNode.containerInfo;else{for(;u.return;)u=u.return;u=u.tag!==3?null:u.stateNode.containerInfo}if(!u)break;n=i.tag,n!==5&&n!==6||e.ancestors.push(i),i=Yu(u)}while(i);for(i=0;i=n)return{node:i,offset:n-e};e=u}e:{for(;i;){if(i.nextSibling){i=i.nextSibling;break e}i=i.parentNode}i=void 0}i=l0(i)}}function f0(e,n){return e&&n?e===n?!0:e&&e.nodeType===3?!1:n&&n.nodeType===3?f0(e,n.parentNode):"contains"in e?e.contains(n):e.compareDocumentPosition?!!(e.compareDocumentPosition(n)&16):!1:!1}function c0(){for(var e=window,n=Gh();n instanceof e.HTMLIFrameElement;){try{var i=typeof n.contentWindow.location.href=="string"}catch{i=!1}if(i)e=n.contentWindow;else break;n=Gh(e.document)}return n}function $h(e){var n=e&&e.nodeName&&e.nodeName.toLowerCase();return n&&(n==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||n==="textarea"||e.contentEditable==="true")}var h0="$",d0="/$",Vh="$?",Xh="$!",Kh=null,Qh=null;function p0(e,n){switch(e){case"button":case"input":case"select":case"textarea":return!!n.autoFocus}return!1}function Zh(e,n){return e==="textarea"||e==="option"||e==="noscript"||typeof n.children=="string"||typeof n.children=="number"||typeof n.dangerouslySetInnerHTML=="object"&&n.dangerouslySetInnerHTML!==null&&n.dangerouslySetInnerHTML.__html!=null}var Jh=typeof setTimeout=="function"?setTimeout:void 0,YT=typeof clearTimeout=="function"?clearTimeout:void 0;function Pa(e){for(;e!=null;e=e.nextSibling){var n=e.nodeType;if(n===1||n===3)break}return e}function v0(e){e=e.previousSibling;for(var n=0;e;){if(e.nodeType===8){var i=e.data;if(i===h0||i===Xh||i===Vh){if(n===0)return e;n--}else i===d0&&n++}e=e.previousSibling}return null}var ed=Math.random().toString(36).slice(2),to="__reactInternalInstance$"+ed,ks="__reactEventHandlers$"+ed,ju="__reactContainere$"+ed;function Yu(e){var n=e[to];if(n)return n;for(var i=e.parentNode;i;){if(n=i[ju]||i[to]){if(i=n.alternate,n.child!==null||i!==null&&i.child!==null)for(e=v0(e);e!==null;){if(i=e[to])return i;e=v0(e)}return n}e=i,i=e.parentNode}return null}function qu(e){return e=e[to]||e[ju],!e||e.tag!==5&&e.tag!==6&&e.tag!==13&&e.tag!==3?null:e}function Fo(e){if(e.tag===5||e.tag===6)return e.stateNode;throw Error(tt(33))}function td(e){return e[ks]||null}function Li(e){do e=e.return;while(e&&e.tag!==5);return e||null}function g0(e,n){var i=e.stateNode;if(!i)return null;var u=fh(i);if(!u)return null;i=u[n];e:switch(n){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(u=!u.disabled)||(e=e.type,u=!(e==="button"||e==="input"||e==="select"||e==="textarea")),e=!u;break e;default:e=!1}if(e)return null;if(i&&typeof i!="function")throw Error(tt(231,n,typeof i));return i}function m0(e,n,i){(n=g0(e,i.dispatchConfig.phasedRegistrationNames[n]))&&(i._dispatchListeners=Na(i._dispatchListeners,n),i._dispatchInstances=Na(i._dispatchInstances,e))}function qT(e){if(e&&e.dispatchConfig.phasedRegistrationNames){for(var n=e._targetInst,i=[];n;)i.push(n),n=Li(n);for(n=i.length;0this.eventPool.length&&this.eventPool.push(e)}function w0(e){e.eventPool=[],e.getPooled=$T,e.release=VT}var XT=zr.extend({data:null}),KT=zr.extend({data:null}),QT=[9,13,27,32],id=Ki&&"CompositionEvent"in window,Gu=null;Ki&&"documentMode"in document&&(Gu=document.documentMode);var ZT=Ki&&"TextEvent"in window&&!Gu,x0=Ki&&(!id||Gu&&8=Gu),_0=String.fromCharCode(32),Oi={beforeInput:{phasedRegistrationNames:{bubbled:"onBeforeInput",captured:"onBeforeInputCapture"},dependencies:["compositionend","keypress","textInput","paste"]},compositionEnd:{phasedRegistrationNames:{bubbled:"onCompositionEnd",captured:"onCompositionEndCapture"},dependencies:"blur compositionend keydown keypress keyup mousedown".split(" ")},compositionStart:{phasedRegistrationNames:{bubbled:"onCompositionStart",captured:"onCompositionStartCapture"},dependencies:"blur compositionstart keydown keypress keyup mousedown".split(" ")},compositionUpdate:{phasedRegistrationNames:{bubbled:"onCompositionUpdate",captured:"onCompositionUpdateCapture"},dependencies:"blur compositionupdate keydown keypress keyup mousedown".split(" ")}},k0=!1;function T0(e,n){switch(e){case"keyup":return QT.indexOf(n.keyCode)!==-1;case"keydown":return n.keyCode!==229;case"keypress":case"mousedown":case"blur":return!0;default:return!1}}function S0(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Oa=!1;function JT(e,n){switch(e){case"compositionend":return S0(n);case"keypress":return n.which!==32?null:(k0=!0,_0);case"textInput":return e=n.data,e===_0&&k0?null:e;default:return null}}function eS(e,n){if(Oa)return e==="compositionend"||!id&&T0(e,n)?(e=y0(),Ts=rd=no=null,Oa=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(n.ctrlKey||n.altKey||n.metaKey)||n.ctrlKey&&n.altKey){if(n.char&&1=document.documentMode,I0={select:{phasedRegistrationNames:{bubbled:"onSelect",captured:"onSelectCapture"},dependencies:"blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange".split(" ")}},Da=null,ud=null,Ju=null,ld=!1;function R0(e,n){var i=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;return ld||Da==null||Da!==Gh(i)?null:(i=Da,"selectionStart"in i&&$h(i)?i={start:i.selectionStart,end:i.selectionEnd}:(i=(i.ownerDocument&&i.ownerDocument.defaultView||window).getSelection(),i={anchorNode:i.anchorNode,anchorOffset:i.anchorOffset,focusNode:i.focusNode,focusOffset:i.focusOffset}),Ju&&Zu(Ju,i)?null:(Ju=i,e=zr.getPooled(I0.select,ud,e,n),e.type="select",e.target=Da,La(e),e))}var gS={eventTypes:I0,extractEvents:function(e,n,i,u,s,h){if(s=h||(u.window===u?u.document:u.nodeType===9?u:u.ownerDocument),!(h=!s)){e:{s=Oh(s),h=hh.onSelect;for(var d=0;dAa||(e.current=sd[Aa],sd[Aa]=null,Aa--)}function Ln(e,n){Aa++,sd[Aa]=e.current,e.current=n}var ro={},ar={current:ro},Er={current:!1},Ho=ro;function Ia(e,n){var i=e.type.contextTypes;if(!i)return ro;var u=e.stateNode;if(u&&u.__reactInternalMemoizedUnmaskedChildContext===n)return u.__reactInternalMemoizedMaskedChildContext;var s={},h;for(h in i)s[h]=n[h];return u&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=n,e.__reactInternalMemoizedMaskedChildContext=s),s}function Nr(e){return e=e.childContextTypes,e!=null}function Es(){wn(Er),wn(ar)}function F0(e,n,i){if(ar.current!==ro)throw Error(tt(168));Ln(ar,n),Ln(Er,i)}function z0(e,n,i){var u=e.stateNode;if(e=n.childContextTypes,typeof u.getChildContext!="function")return i;u=u.getChildContext();for(var s in u)if(!(s in e))throw Error(tt(108,Ni(n)||"Unknown",s));return mr({},i,{},u)}function Ns(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||ro,Ho=ar.current,Ln(ar,e),Ln(Er,Er.current),!0}function H0(e,n,i){var u=e.stateNode;if(!u)throw Error(tt(169));i?(e=z0(e,n,Ho),u.__reactInternalMemoizedMergedChildContext=e,wn(Er),wn(ar),Ln(ar,e)):wn(Er),Ln(Er,i)}var NS=tr.unstable_runWithPriority,fd=tr.unstable_scheduleCallback,W0=tr.unstable_cancelCallback,U0=tr.unstable_requestPaint,cd=tr.unstable_now,PS=tr.unstable_getCurrentPriorityLevel,Ps=tr.unstable_ImmediatePriority,B0=tr.unstable_UserBlockingPriority,j0=tr.unstable_NormalPriority,Y0=tr.unstable_LowPriority,q0=tr.unstable_IdlePriority,G0={},LS=tr.unstable_shouldYield,OS=U0!==void 0?U0:function(){},Di=null,Ls=null,hd=!1,$0=cd(),Gr=1e4>$0?cd:function(){return cd()-$0};function Os(){switch(PS()){case Ps:return 99;case B0:return 98;case j0:return 97;case Y0:return 96;case q0:return 95;default:throw Error(tt(332))}}function V0(e){switch(e){case 99:return Ps;case 98:return B0;case 97:return j0;case 96:return Y0;case 95:return q0;default:throw Error(tt(332))}}function io(e,n){return e=V0(e),NS(e,n)}function X0(e,n,i){return e=V0(e),fd(e,n,i)}function K0(e){return Di===null?(Di=[e],Ls=fd(Ps,Q0)):Di.push(e),G0}function vi(){if(Ls!==null){var e=Ls;Ls=null,W0(e)}Q0()}function Q0(){if(!hd&&Di!==null){hd=!0;var e=0;try{var n=Di;io(99,function(){for(;e=n&&(mi=!0),e.firstContext=null)}function $r(e,n){if(Rs!==e&&n!==!1&&n!==0)if((typeof n!="number"||n===1073741823)&&(Rs=e,n=1073741823),n={context:e,observedBits:n,next:null},Ra===null){if(Is===null)throw Error(tt(308));Ra=n,Is.dependencies={expirationTime:0,firstContext:n,responders:null}}else Ra=Ra.next=n;return e._currentValue}var oo=!1;function vd(e){e.updateQueue={baseState:e.memoizedState,baseQueue:null,shared:{pending:null},effects:null}}function gd(e,n){e=e.updateQueue,n.updateQueue===e&&(n.updateQueue={baseState:e.baseState,baseQueue:e.baseQueue,shared:e.shared,effects:e.effects})}function ao(e,n){return e={expirationTime:e,suspenseConfig:n,tag:0,payload:null,callback:null,next:null},e.next=e}function uo(e,n){if(e=e.updateQueue,e!==null){e=e.shared;var i=e.pending;i===null?n.next=n:(n.next=i.next,i.next=n),e.pending=n}}function J0(e,n){var i=e.alternate;i!==null&&gd(i,e),e=e.updateQueue,i=e.baseQueue,i===null?(e.baseQueue=n.next=n,n.next=n):(n.next=i.next,i.next=n)}function el(e,n,i,u){var s=e.updateQueue;oo=!1;var h=s.baseQueue,d=s.shared.pending;if(d!==null){if(h!==null){var p=h.next;h.next=d.next,d.next=p}h=d,s.shared.pending=null,p=e.alternate,p!==null&&(p=p.updateQueue,p!==null&&(p.baseQueue=d))}if(h!==null){p=h.next;var b=s.baseState,T=0,E=null,I=null,oe=null;if(p!==null){var ve=p;do{if(d=ve.expirationTime,dT&&(T=d)}else{oe!==null&&(oe=oe.next={expirationTime:1073741823,suspenseConfig:ve.suspenseConfig,tag:ve.tag,payload:ve.payload,callback:ve.callback,next:null}),Xy(d,ve.suspenseConfig);e:{var ne=e,H=ve;switch(d=n,Me=i,H.tag){case 1:if(ne=H.payload,typeof ne=="function"){b=ne.call(Me,b,d);break e}b=ne;break e;case 3:ne.effectTag=ne.effectTag&-4097|64;case 0:if(ne=H.payload,d=typeof ne=="function"?ne.call(Me,b,d):ne,d==null)break e;b=mr({},b,d);break e;case 2:oo=!0}}ve.callback!==null&&(e.effectTag|=32,d=s.effects,d===null?s.effects=[ve]:d.push(ve))}if(ve=ve.next,ve===null||ve===p){if(d=s.shared.pending,d===null)break;ve=h.next=d.next,d.next=p,s.baseQueue=h=d,s.shared.pending=null}}while(1)}oe===null?E=b:oe.next=I,s.baseState=E,s.baseQueue=oe,ff(T),e.expirationTime=T,e.memoizedState=b}}function ey(e,n,i){if(e=n.effects,n.effects=null,e!==null)for(n=0;nc?(g=Y,Y=null):g=Y.sibling;var k=oe(H,Y,j[c],se);if(k===null){Y===null&&(Y=g);break}e&&Y&&k.alternate===null&&n(H,Y),R=h(k,R,c),Oe===null?we=k:Oe.sibling=k,Oe=k,Y=g}if(c===j.length)return i(H,Y),we;if(Y===null){for(;cc?(g=Y,Y=null):g=Y.sibling;var S=oe(H,Y,k.value,se);if(S===null){Y===null&&(Y=g);break}e&&Y&&S.alternate===null&&n(H,Y),R=h(S,R,c),Oe===null?we=S:Oe.sibling=S,Oe=S,Y=g}if(k.done)return i(H,Y),we;if(Y===null){for(;!k.done;c++,k=j.next())k=I(H,k.value,se),k!==null&&(R=h(k,R,c),Oe===null?we=k:Oe.sibling=k,Oe=k);return we}for(Y=u(H,Y);!k.done;c++,k=j.next())k=ve(Y,H,c,k.value,se),k!==null&&(e&&k.alternate!==null&&Y.delete(k.key===null?c:k.key),R=h(k,R,c),Oe===null?we=k:Oe.sibling=k,Oe=k);return e&&Y.forEach(function(N){return n(H,N)}),we}return function(H,R,j,se){var we=typeof j=="object"&&j!==null&&j.type===Io&&j.key===null;we&&(j=j.props.children);var Oe=typeof j=="object"&&j!==null;if(Oe)switch(j.$$typeof){case ls:e:{for(Oe=j.key,we=R;we!==null;){if(we.key===Oe){switch(we.tag){case 7:if(j.type===Io){i(H,we.sibling),R=s(we,j.props.children),R.return=H,H=R;break e}break;default:if(we.elementType===j.type){i(H,we.sibling),R=s(we,j.props),R.ref=nl(H,we,j),R.return=H,H=R;break e}}i(H,we);break}else n(H,we);we=we.sibling}j.type===Io?(R=ho(j.props.children,H.mode,se,j.key),R.return=H,H=R):(se=cf(j.type,j.key,j.props,null,H.mode,se),se.ref=nl(H,R,j),se.return=H,H=se)}return d(H);case Ca:e:{for(we=j.key;R!==null;){if(R.key===we)if(R.tag===4&&R.stateNode.containerInfo===j.containerInfo&&R.stateNode.implementation===j.implementation){i(H,R.sibling),R=s(R,j.children||[]),R.return=H,H=R;break e}else{i(H,R);break}else n(H,R);R=R.sibling}R=Jd(j,H.mode,se),R.return=H,H=R}return d(H)}if(typeof j=="string"||typeof j=="number")return j=""+j,R!==null&&R.tag===6?(i(H,R.sibling),R=s(R,j),R.return=H,H=R):(i(H,R),R=Zd(j,H.mode,se),R.return=H,H=R),d(H);if(Hs(j))return Me(H,R,j,se);if(Ou(j))return ne(H,R,j,se);if(Oe&&Ws(H,j),typeof j=="undefined"&&!we)switch(H.tag){case 1:case 0:throw H=H.type,Error(tt(152,H.displayName||H.name||"Component"))}return i(H,R)}}var za=oy(!0),yd=oy(!1),rl={},gi={current:rl},il={current:rl},ol={current:rl};function Wo(e){if(e===rl)throw Error(tt(174));return e}function wd(e,n){switch(Ln(ol,n),Ln(il,e),Ln(gi,rl),e=n.nodeType,e){case 9:case 11:n=(n=n.documentElement)?n.namespaceURI:Ph(null,"");break;default:e=e===8?n.parentNode:n,n=e.namespaceURI||null,e=e.tagName,n=Ph(n,e)}wn(gi),Ln(gi,n)}function Ha(){wn(gi),wn(il),wn(ol)}function ay(e){Wo(ol.current);var n=Wo(gi.current),i=Ph(n,e.type);n!==i&&(Ln(il,e),Ln(gi,i))}function xd(e){il.current===e&&(wn(gi),wn(il))}var Cn={current:0};function Us(e){for(var n=e;n!==null;){if(n.tag===13){var i=n.memoizedState;if(i!==null&&(i=i.dehydrated,i===null||i.data===Vh||i.data===Xh))return n}else if(n.tag===19&&n.memoizedProps.revealOrder!==void 0){if((n.effectTag&64)!=0)return n}else if(n.child!==null){n.child.return=n,n=n.child;continue}if(n===e)break;for(;n.sibling===null;){if(n.return===null||n.return===e)return null;n=n.return}n.sibling.return=n.return,n=n.sibling}return null}function _d(e,n){return{responder:e,props:n}}var Bs=oi.ReactCurrentDispatcher,Vr=oi.ReactCurrentBatchConfig,lo=0,Bn=null,ur=null,lr=null,js=!1;function Hr(){throw Error(tt(321))}function kd(e,n){if(n===null)return!1;for(var i=0;ih))throw Error(tt(301));h+=1,lr=ur=null,n.updateQueue=null,Bs.current=IS,e=i(u,s)}while(n.expirationTime===lo)}if(Bs.current=Vs,n=ur!==null&&ur.next!==null,lo=0,lr=ur=Bn=null,js=!1,n)throw Error(tt(300));return e}function Wa(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return lr===null?Bn.memoizedState=lr=e:lr=lr.next=e,lr}function Ua(){if(ur===null){var e=Bn.alternate;e=e!==null?e.memoizedState:null}else e=ur.next;var n=lr===null?Bn.memoizedState:lr.next;if(n!==null)lr=n,ur=e;else{if(e===null)throw Error(tt(310));ur=e,e={memoizedState:ur.memoizedState,baseState:ur.baseState,baseQueue:ur.baseQueue,queue:ur.queue,next:null},lr===null?Bn.memoizedState=lr=e:lr=lr.next=e}return lr}function Uo(e,n){return typeof n=="function"?n(e):n}function Ys(e){var n=Ua(),i=n.queue;if(i===null)throw Error(tt(311));i.lastRenderedReducer=e;var u=ur,s=u.baseQueue,h=i.pending;if(h!==null){if(s!==null){var d=s.next;s.next=h.next,h.next=d}u.baseQueue=s=h,i.pending=null}if(s!==null){s=s.next,u=u.baseState;var p=d=h=null,b=s;do{var T=b.expirationTime;if(TBn.expirationTime&&(Bn.expirationTime=T,ff(T))}else p!==null&&(p=p.next={expirationTime:1073741823,suspenseConfig:b.suspenseConfig,action:b.action,eagerReducer:b.eagerReducer,eagerState:b.eagerState,next:null}),Xy(T,b.suspenseConfig),u=b.eagerReducer===e?b.eagerState:e(u,b.action);b=b.next}while(b!==null&&b!==s);p===null?h=u:p.next=d,zo(u,n.memoizedState)||(mi=!0),n.memoizedState=u,n.baseState=h,n.baseQueue=p,i.lastRenderedState=u}return[n.memoizedState,i.dispatch]}function qs(e){var n=Ua(),i=n.queue;if(i===null)throw Error(tt(311));i.lastRenderedReducer=e;var u=i.dispatch,s=i.pending,h=n.memoizedState;if(s!==null){i.pending=null;var d=s=s.next;do h=e(h,d.action),d=d.next;while(d!==s);zo(h,n.memoizedState)||(mi=!0),n.memoizedState=h,n.baseQueue===null&&(n.baseState=h),i.lastRenderedState=h}return[h,u]}function Sd(e){var n=Wa();return typeof e=="function"&&(e=e()),n.memoizedState=n.baseState=e,e=n.queue={pending:null,dispatch:null,lastRenderedReducer:Uo,lastRenderedState:e},e=e.dispatch=py.bind(null,Bn,e),[n.memoizedState,e]}function bd(e,n,i,u){return e={tag:e,create:n,destroy:i,deps:u,next:null},n=Bn.updateQueue,n===null?(n={lastEffect:null},Bn.updateQueue=n,n.lastEffect=e.next=e):(i=n.lastEffect,i===null?n.lastEffect=e.next=e:(u=i.next,i.next=e,e.next=u,n.lastEffect=e)),e}function uy(){return Ua().memoizedState}function Cd(e,n,i,u){var s=Wa();Bn.effectTag|=e,s.memoizedState=bd(1|n,i,void 0,u===void 0?null:u)}function Md(e,n,i,u){var s=Ua();u=u===void 0?null:u;var h=void 0;if(ur!==null){var d=ur.memoizedState;if(h=d.destroy,u!==null&&kd(u,d.deps)){bd(n,i,h,u);return}}Bn.effectTag|=e,s.memoizedState=bd(1|n,i,h,u)}function ly(e,n){return Cd(516,4,e,n)}function Gs(e,n){return Md(516,4,e,n)}function sy(e,n){return Md(4,2,e,n)}function fy(e,n){if(typeof n=="function")return e=e(),n(e),function(){n(null)};if(n!=null)return e=e(),n.current=e,function(){n.current=null}}function cy(e,n,i){return i=i!=null?i.concat([e]):null,Md(4,2,fy.bind(null,n,e),i)}function Ed(){}function hy(e,n){return Wa().memoizedState=[e,n===void 0?null:n],e}function $s(e,n){var i=Ua();n=n===void 0?null:n;var u=i.memoizedState;return u!==null&&n!==null&&kd(n,u[1])?u[0]:(i.memoizedState=[e,n],e)}function dy(e,n){var i=Ua();n=n===void 0?null:n;var u=i.memoizedState;return u!==null&&n!==null&&kd(n,u[1])?u[0]:(e=e(),i.memoizedState=[e,n],e)}function Nd(e,n,i){var u=Os();io(98>u?98:u,function(){e(!0)}),io(97<\/script>",e=e.removeChild(e.firstChild)):typeof u.is=="string"?e=d.createElement(s,{is:u.is}):(e=d.createElement(s),s==="select"&&(d=e,u.multiple?d.multiple=!0:u.size&&(d.size=u.size))):e=d.createElementNS(e,s),e[to]=n,e[ks]=u,My(e,n,!1,!1),n.stateNode=e,d=qh(s,u),s){case"iframe":case"object":case"embed":Tn("load",e),p=u;break;case"video":case"audio":for(p=0;pu.tailExpiration&&1n)&&Yo.set(e,n)))}}function lf(e,n){e.expirationTimee?i:e,2>=e&&n!==e?0:e}function Br(e){if(e.lastExpiredTime!==0)e.callbackExpirationTime=1073741823,e.callbackPriority=99,e.callbackNode=K0($d.bind(null,e));else{var n=sf(e),i=e.callbackNode;if(n===0)i!==null&&(e.callbackNode=null,e.callbackExpirationTime=0,e.callbackPriority=90);else{var u=wi();if(n===1073741823?u=99:n===1||n===2?u=95:(u=10*(1073741821-n)-10*(1073741821-u),u=0>=u?99:250>=u?98:5250>=u?97:95),i!==null){var s=e.callbackPriority;if(e.callbackExpirationTime===n&&s>=u)return;i!==G0&&W0(i)}e.callbackExpirationTime=n,e.callbackPriority=u,n=n===1073741823?K0($d.bind(null,e)):X0(u,Yy.bind(null,e),{timeout:10*(1073741821-n)-Gr()}),e.callbackNode=n}}}function Yy(e,n){if(uf=0,n)return n=wi(),ep(e,n),Br(e),null;var i=sf(e);if(i!==0){if(n=e.callbackNode,(Ot&(ui|yi))!==$n)throw Error(tt(327));if(Ba(),e===Ur&&i===Pr||Go(e,i),Ht!==null){var u=Ot;Ot|=ui;var s=Vy();do try{$S();break}catch(p){$y(e,p)}while(1);if(dd(),Ot=u,Qs.current=s,Vn===Zs)throw n=tf,Go(e,i),Ko(e,i),Br(e),n;if(Ht===null)switch(s=e.finishedWork=e.current.alternate,e.finishedExpirationTime=i,u=Vn,Ur=null,u){case jo:case Zs:throw Error(tt(345));case By:ep(e,2=i){e.lastPingedTime=i,Go(e,i);break}}if(h=sf(e),h!==0&&h!==i)break;if(u!==0&&u!==i){e.lastPingedTime=u;break}e.timeoutHandle=Jh($o.bind(null,e),s);break}$o(e);break;case ef:if(Ko(e,i),u=e.lastSuspendedTime,i===u&&(e.nextKnownPendingLevel=Vd(s)),rf&&(s=e.lastPingedTime,s===0||s>=i)){e.lastPingedTime=i,Go(e,i);break}if(s=sf(e),s!==0&&s!==i)break;if(u!==0&&u!==i){e.lastPingedTime=u;break}if(al!==1073741823?u=10*(1073741821-al)-Gr():Ri===1073741823?u=0:(u=10*(1073741821-Ri)-5e3,s=Gr(),i=10*(1073741821-i)-s,u=s-u,0>u&&(u=0),u=(120>u?120:480>u?480:1080>u?1080:1920>u?1920:3e3>u?3e3:4320>u?4320:1960*YS(u/1960))-u,i=u?u=0:(s=d.busyDelayMs|0,h=Gr()-(10*(1073741821-h)-(d.timeoutMs|0||5e3)),u=h<=s?0:s+u-h),10 component higher in the tree to provide a loading indicator or placeholder to display.`+Th(d))}Xn!==Bd&&(Xn=Uy),v=Rd(v,d),O=h;do{switch(O.tag){case 3:x=v,O.effectTag|=4096,O.expirationTime=n;var ge=zy(O,x,n);Z0(O,ge);break e;case 1:x=v;var Ue=O.type,de=O.stateNode;if((O.effectTag&64)==0&&(typeof Ue.getDerivedStateFromError=="function"||de!==null&&typeof de.componentDidCatch=="function"&&(fo===null||!fo.has(de)))){O.effectTag|=4096,O.expirationTime=n;var c=Hy(O,x,n);Z0(O,c);break e}}O=O.return}while(O!==null)}Ut=Ky(Ut)}catch(g){n=g;continue}break}while(1)}function Vy(){var e=Qs.current;return Qs.current=$s,e===null?$s:e}function $y(e,n){ell&&(ll=e)}function $S(){for(;Ut!==null;)Ut=Xy(Ut)}function XS(){for(;Ut!==null&&!DS();)Ut=Xy(Ut)}function Xy(e){var n=Zy(e.alternate,e,Lr);return e.memoizedProps=e.pendingProps,n===null&&(n=Ky(e)),Wy.current=null,n}function Ky(e){Ut=e;do{var n=Ut.alternate;if(e=Ut.return,(Ut.effectTag&2048)==0){if(n=HS(n,Ut,Lr),Lr===1||Ut.childExpirationTime!==1){for(var i=0,u=Ut.child;u!==null;){var s=u.expirationTime,h=u.childExpirationTime;s>i&&(i=s),h>i&&(i=h),u=u.sibling}Ut.childExpirationTime=i}if(n!==null)return n;e!==null&&(e.effectTag&2048)==0&&(e.firstEffect===null&&(e.firstEffect=Ut.firstEffect),Ut.lastEffect!==null&&(e.lastEffect!==null&&(e.lastEffect.nextEffect=Ut.firstEffect),e.lastEffect=Ut.lastEffect),1e?n:e}function $o(e){var n=Os();return io(99,KS.bind(null,e,n)),null}function KS(e,n){do qa();while(sl!==null);if((At&(ai|yi))!==$n)throw Error(rt(327));var i=e.finishedWork,u=e.finishedExpirationTime;if(i===null)return null;if(e.finishedWork=null,e.finishedExpirationTime=0,i===e.current)throw Error(rt(177));e.callbackNode=null,e.callbackExpirationTime=0,e.callbackPriority=90,e.nextKnownPendingLevel=0;var s=Vd(i);if(e.firstPendingTime=s,u<=e.lastSuspendedTime?e.firstSuspendedTime=e.lastSuspendedTime=e.nextKnownPendingLevel=0:u<=e.firstSuspendedTime&&(e.firstSuspendedTime=u-1),u<=e.lastPingedTime&&(e.lastPingedTime=0),u<=e.lastExpiredTime&&(e.lastExpiredTime=0),e===zr&&(Ut=zr=null,Lr=0),1v&&(T=v,v=d,d=T),T=l0(oe,d),M=l0(oe,v),T&&M&&(Ue.rangeCount!==1||Ue.anchorNode!==T.node||Ue.anchorOffset!==T.offset||Ue.focusNode!==M.node||Ue.focusOffset!==M.offset)&&(ge=ge.createRange(),ge.setStart(T.node,T.offset),Ue.removeAllRanges(),d>v?(Ue.addRange(ge),Ue.extend(M.node,M.offset)):(ge.setEnd(M.node,M.offset),Ue.addRange(ge)))))),ge=[],Ue=oe;Ue=Ue.parentNode;)Ue.nodeType===1&&ge.push({element:Ue,left:Ue.scrollLeft,top:Ue.scrollTop});for(typeof oe.focus=="function"&&oe.focus(),oe=0;oe=i?Ty(e,n,i):(An(Nn,Nn.current&1),n=Ii(e,n,i),n!==null?n.sibling:null);An(Nn,Nn.current&1);break;case 19:if(u=n.childExpirationTime>=i,(e.effectTag&64)!=0){if(u)return by(e,n,i);n.effectTag|=64}if(s=n.memoizedState,s!==null&&(s.rendering=null,s.tail=null),An(Nn,Nn.current),!u)return null}return Ii(e,n,i)}mi=!1}}else mi=!1;switch(n.expirationTime=0,n.tag){case 2:if(u=n.type,e!==null&&(e.alternate=null,n.alternate=null,n.effectTag|=2),e=n.pendingProps,s=za(n,ur.current),Wa(n,i),s=kd(null,n,u,e,s,i),n.effectTag|=1,typeof s=="object"&&s!==null&&typeof s.render=="function"&&s.$$typeof===void 0){if(n.tag=1,n.memoizedState=null,n.updateQueue=null,Pr(u)){var h=!0;Ns(n)}else h=!1;n.memoizedState=s.state!==null&&s.state!==void 0?s.state:null,pd(n);var d=u.getDerivedStateFromProps;typeof d=="function"&&Fs(n,u,d,e),s.updater=zs,n.stateNode=s,s._reactInternalFiber=n,gd(n,u,e,i),n=Od(null,n,u,!0,h,i)}else n.tag=0,Fr(null,n,s,i),n=n.child;return n;case 16:e:{if(s=n.elementType,e!==null&&(e.alternate=null,n.alternate=null,n.effectTag|=2),e=n.pendingProps,NT(s),s._status!==1)throw s._result;switch(s=s._result,n.type=s,h=n.tag=rb(s),e=oi(s,e),h){case 0:n=Ld(null,n,s,e,i);break e;case 1:n=_y(null,n,s,e,i);break e;case 11:n=my(null,n,s,e,i);break e;case 14:n=yy(null,n,s,oi(s.type,e),u,i);break e}throw Error(rt(306,s,""))}return n;case 0:return u=n.type,s=n.pendingProps,s=n.elementType===u?s:oi(u,s),Ld(e,n,u,s,i);case 1:return u=n.type,s=n.pendingProps,s=n.elementType===u?s:oi(u,s),_y(e,n,u,s,i);case 3:if(ky(n),u=n.updateQueue,e===null||u===null)throw Error(rt(282));if(u=n.pendingProps,s=n.memoizedState,s=s!==null?s.element:null,vd(e,n),tl(n,u,null,i),u=n.memoizedState.element,u===s)Pd(),n=Ii(e,n,i);else{if((s=n.stateNode.hydrate)&&(so=Da(n.stateNode.containerInfo.firstChild),Ai=n,s=jo=!0),s)for(i=md(n,null,u,i),n.child=i;i;)i.effectTag=i.effectTag&-3|1024,i=i.sibling;else Fr(e,n,u,i),Pd();n=n.child}return n;case 5:return oy(n),e===null&&Nd(n),u=n.type,s=n.pendingProps,h=e!==null?e.memoizedProps:null,d=s.children,Qh(u,s)?d=null:h!==null&&Qh(u,h)&&(n.effectTag|=16),xy(e,n),n.mode&4&&i!==1&&s.hidden?(n.expirationTime=n.childExpirationTime=1,n=null):(Fr(e,n,d,i),n=n.child),n;case 6:return e===null&&Nd(n),null;case 13:return Ty(e,n,i);case 4:return yd(n,n.stateNode.containerInfo),u=n.pendingProps,e===null?n.child=Ua(n,null,u,i):Fr(e,n,u,i),n.child;case 11:return u=n.type,s=n.pendingProps,s=n.elementType===u?s:oi(u,s),my(e,n,u,s,i);case 7:return Fr(e,n,n.pendingProps,i),n.child;case 8:return Fr(e,n,n.pendingProps.children,i),n.child;case 12:return Fr(e,n,n.pendingProps.children,i),n.child;case 10:e:{u=n.type._context,s=n.pendingProps,d=n.memoizedProps,h=s.value;var v=n.type._context;if(An(As,v._currentValue),v._currentValue=h,d!==null)if(v=d.value,h=Ho(v,h)?0:(typeof u._calculateChangedBits=="function"?u._calculateChangedBits(v,h):1073741823)|0,h===0){if(d.children===s.children&&!Nr.current){n=Ii(e,n,i);break e}}else for(v=n.child,v!==null&&(v.return=n);v!==null;){var x=v.dependencies;if(x!==null){d=v.child;for(var T=x.firstContext;T!==null;){if(T.context===u&&(T.observedBits&h)!=0){v.tag===1&&(T=ao(i,null),T.tag=2,uo(v,T)),v.expirationTime=n&&e<=n}function Qo(e,n){var i=e.firstSuspendedTime,u=e.lastSuspendedTime;in||i===0)&&(e.lastSuspendedTime=n),n<=e.lastPingedTime&&(e.lastPingedTime=0),n<=e.lastExpiredTime&&(e.lastExpiredTime=0)}function e1(e,n){n>e.firstPendingTime&&(e.firstPendingTime=n);var i=e.firstSuspendedTime;i!==0&&(n>=i?e.firstSuspendedTime=e.lastSuspendedTime=e.nextKnownPendingLevel=0:n>=e.lastSuspendedTime&&(e.lastSuspendedTime=n+1),n>e.nextKnownPendingLevel&&(e.nextKnownPendingLevel=n))}function Jd(e,n){var i=e.lastExpiredTime;(i===0||i>n)&&(e.lastExpiredTime=n)}function hf(e,n,i,u){var s=n.current,h=wi(),d=nl.suspense;h=Go(h,s,d);e:if(i){i=i._reactInternalFiber;t:{if(Fo(i)!==i||i.tag!==1)throw Error(rt(170));var v=i;do{switch(v.tag){case 3:v=v.stateNode.context;break t;case 1:if(Pr(v.type)){v=v.stateNode.__reactInternalMemoizedMergedChildContext;break t}}v=v.return}while(v!==null);throw Error(rt(171))}if(i.tag===1){var x=i.type;if(Pr(x)){i=F0(i,x,v);break e}}i=v}else i=ro;return n.context===null?n.context=i:n.pendingContext=i,n=ao(h,d),n.payload={element:e},u=u===void 0?null:u,u!==null&&(n.callback=u),uo(s,n),co(s,h),h}function ep(e){if(e=e.current,!e.child)return null;switch(e.child.tag){case 5:return e.child.stateNode;default:return e.child.stateNode}}function t1(e,n){e=e.memoizedState,e!==null&&e.dehydrated!==null&&e.retryTime{"use strict";function i1(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__=="undefined"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(i1)}catch(e){console.error(e)}}i1(),o1.exports=r1()});var l1=xt((KM,u1)=>{"use strict";var lb="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";u1.exports=lb});var h1=xt((QM,c1)=>{"use strict";var sb=l1();function s1(){}function f1(){}f1.resetWarningCache=s1;c1.exports=function(){function e(u,s,h,d,v,x){if(x!==sb){var T=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw T.name="Invariant Violation",T}}e.isRequired=e;function n(){return e}var i={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:n,element:e,elementType:e,instanceOf:n,node:e,objectOf:n,oneOf:n,oneOfType:n,shape:n,exact:n,checkPropTypes:f1,resetWarningCache:s1};return i.PropTypes=i,i}});var p1=xt((e2,d1)=>{d1.exports=h1()();var ZM,JM});var L1=xt((c2,P1)=>{P1.exports=Array.isArray||function(e){return Object.prototype.toString.call(e)=="[object Array]"}});var I1=xt((h2,Ga)=>{var vf=L1();Ga.exports=A1;Ga.exports.parse=up;Ga.exports.compile=_b;Ga.exports.tokensToFunction=O1;Ga.exports.tokensToRegExp=D1;var xb=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function up(e,n){for(var i=[],u=0,s=0,h="",d=n&&n.delimiter||"/",v;(v=xb.exec(e))!=null;){var x=v[0],T=v[1],M=v.index;if(h+=e.slice(s,M),s=M+x.length,T){h+=T[1];continue}var O=e[s],te=v[2],ve=v[3],Ee=v[4],ie=v[5],I=v[6],D=v[7];h&&(i.push(h),h="");var q=te!=null&&O!=null&&O!==te,oe=I==="+"||I==="*",ge=I==="?"||I==="*",Ue=v[2]||d,de=Ee||ie;i.push({name:ve||u++,prefix:te||"",delimiter:Ue,optional:ge,repeat:oe,partial:q,asterisk:!!D,pattern:de?Sb(de):D?".*":"[^"+gf(Ue)+"]+?"})}return s{"use strict";var Kn=typeof Symbol=="function"&&Symbol.for,fp=Kn?Symbol.for("react.element"):60103,cp=Kn?Symbol.for("react.portal"):60106,mf=Kn?Symbol.for("react.fragment"):60107,yf=Kn?Symbol.for("react.strict_mode"):60108,wf=Kn?Symbol.for("react.profiler"):60114,xf=Kn?Symbol.for("react.provider"):60109,_f=Kn?Symbol.for("react.context"):60110,hp=Kn?Symbol.for("react.async_mode"):60111,kf=Kn?Symbol.for("react.concurrent_mode"):60111,Tf=Kn?Symbol.for("react.forward_ref"):60112,Sf=Kn?Symbol.for("react.suspense"):60113,Eb=Kn?Symbol.for("react.suspense_list"):60120,bf=Kn?Symbol.for("react.memo"):60115,Cf=Kn?Symbol.for("react.lazy"):60116,Nb=Kn?Symbol.for("react.block"):60121,Pb=Kn?Symbol.for("react.fundamental"):60117,Lb=Kn?Symbol.for("react.responder"):60118,Ob=Kn?Symbol.for("react.scope"):60119;function Ur(e){if(typeof e=="object"&&e!==null){var n=e.$$typeof;switch(n){case fp:switch(e=e.type,e){case hp:case kf:case mf:case wf:case yf:case Sf:return e;default:switch(e=e&&e.$$typeof,e){case _f:case Tf:case Cf:case bf:case xf:return e;default:return n}}case cp:return n}}}function R1(e){return Ur(e)===kf}ln.AsyncMode=hp;ln.ConcurrentMode=kf;ln.ContextConsumer=_f;ln.ContextProvider=xf;ln.Element=fp;ln.ForwardRef=Tf;ln.Fragment=mf;ln.Lazy=Cf;ln.Memo=bf;ln.Portal=cp;ln.Profiler=wf;ln.StrictMode=yf;ln.Suspense=Sf;ln.isAsyncMode=function(e){return R1(e)||Ur(e)===hp};ln.isConcurrentMode=R1;ln.isContextConsumer=function(e){return Ur(e)===_f};ln.isContextProvider=function(e){return Ur(e)===xf};ln.isElement=function(e){return typeof e=="object"&&e!==null&&e.$$typeof===fp};ln.isForwardRef=function(e){return Ur(e)===Tf};ln.isFragment=function(e){return Ur(e)===mf};ln.isLazy=function(e){return Ur(e)===Cf};ln.isMemo=function(e){return Ur(e)===bf};ln.isPortal=function(e){return Ur(e)===cp};ln.isProfiler=function(e){return Ur(e)===wf};ln.isStrictMode=function(e){return Ur(e)===yf};ln.isSuspense=function(e){return Ur(e)===Sf};ln.isValidElementType=function(e){return typeof e=="string"||typeof e=="function"||e===mf||e===kf||e===wf||e===yf||e===Sf||e===Eb||typeof e=="object"&&e!==null&&(e.$$typeof===Cf||e.$$typeof===bf||e.$$typeof===xf||e.$$typeof===_f||e.$$typeof===Tf||e.$$typeof===Pb||e.$$typeof===Lb||e.$$typeof===Ob||e.$$typeof===Nb)};ln.typeOf=Ur});var dp=xt((p2,z1)=>{"use strict";z1.exports=F1()});var q1=xt((g2,Y1)=>{"use strict";var pp=dp(),Db={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},Ab={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},Ib={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},H1={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},vp={};vp[pp.ForwardRef]=Ib;vp[pp.Memo]=H1;function W1(e){return pp.isMemo(e)?H1:vp[e.$$typeof]||Db}var Rb=Object.defineProperty,Fb=Object.getOwnPropertyNames,U1=Object.getOwnPropertySymbols,zb=Object.getOwnPropertyDescriptor,Hb=Object.getPrototypeOf,B1=Object.prototype;function j1(e,n,i){if(typeof n!="string"){if(B1){var u=Hb(n);u&&u!==B1&&j1(e,u,i)}var s=Fb(n);U1&&(s=s.concat(U1(n)));for(var h=W1(e),d=W1(n),v=0;v{(function(e){"use strict";var n={newline:/^\n+/,code:/^( {4}[^\n]+\n*)+/,fences:/^ {0,3}(`{3,}|~{3,})([^`~\n]*)\n(?:|([\s\S]*?)\n)(?: {0,3}\1[~`]* *(?:\n+|$)|$)/,hr:/^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\* *){3,})(?:\n+|$)/,heading:/^ {0,3}(#{1,6}) +([^\n]*?)(?: +#+)? *(?:\n+|$)/,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( {0,3})(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,html:"^ {0,3}(?:<(script|pre|style)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?\\?>\\n*|\\n*|\\n*|)[\\s\\S]*?(?:\\n{2,}|$)|<(?!script|pre|style)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:\\n{2,}|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:\\n{2,}|$))",def:/^ {0,3}\[(label)\]: *\n? *]+)>?(?:(?: +\n? *| *\n *)(title))? *(?:\n+|$)/,nptable:I,table:I,lheading:/^([^\n]+)\n {0,3}(=+|-+) *(?:\n+|$)/,_paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html)[^\n]+)*)/,text:/^[^\n]+/};n._label=/(?!\s*\])(?:\\[\[\]]|[^\[\]])+/,n._title=/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/,n.def=O(n.def).replace("label",n._label).replace("title",n._title).getRegex(),n.bullet=/(?:[*+-]|\d{1,9}\.)/,n.item=/^( *)(bull) ?[^\n]*(?:\n(?!\1bull ?)[^\n]*)*/,n.item=O(n.item,"gm").replace(/bull/g,n.bullet).getRegex(),n.list=O(n.list).replace(/bull/g,n.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+n.def.source+")").getRegex(),n._tag="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",n._comment=//,n.html=O(n.html,"i").replace("comment",n._comment).replace("tag",n._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),n.paragraph=O(n._paragraph).replace("hr",n.hr).replace("heading"," {0,3}#{1,6} +").replace("|lheading","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}|~{3,})[^`\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|!--)").replace("tag",n._tag).getRegex(),n.blockquote=O(n.blockquote).replace("paragraph",n.paragraph).getRegex(),n.normal=D({},n),n.gfm=D({},n.normal,{nptable:/^ *([^|\n ].*\|.*)\n *([-:]+ *\|[-| :]*)(?:\n((?:.*[^>\n ].*(?:\n|$))*)\n*|$)/,table:/^ *\|(.+)\n *\|?( *[-:]+[-| :]*)(?:\n((?: *[^>\n ].*(?:\n|$))*)\n*|$)/}),n.pedantic=D({},n.normal,{html:O(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",n._comment).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^ *(#{1,6}) *([^\n]+?) *(?:#+ *)?(?:\n+|$)/,fences:I,paragraph:O(n.normal._paragraph).replace("hr",n.hr).replace("heading",` *#{1,6} *[^ -]`).replace("lheading",n.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()});function i(c){this.tokens=[],this.tokens.links=Object.create(null),this.options=c||de.defaults,this.rules=n.normal,this.options.pedantic?this.rules=n.pedantic:this.options.gfm&&(this.rules=n.gfm)}i.rules=n,i.lex=function(c,g){var k=new i(g);return k.lex(c)},i.prototype.lex=function(c){return c=c.replace(/\r\n|\r/g,` +Add a component higher in the tree to provide a loading indicator or placeholder to display.`+Sh(d))}Vn!==jd&&(Vn=By),p=Fd(p,d),I=h;do{switch(I.tag){case 3:b=p,I.effectTag|=4096,I.expirationTime=n;var we=Hy(I,b,n);J0(I,we);break e;case 1:b=p;var Oe=I.type,Y=I.stateNode;if((I.effectTag&64)==0&&(typeof Oe.getDerivedStateFromError=="function"||Y!==null&&typeof Y.componentDidCatch=="function"&&(fo===null||!fo.has(Y)))){I.effectTag|=4096,I.expirationTime=n;var c=Wy(I,b,n);J0(I,c);break e}}I=I.return}while(I!==null)}Ht=Qy(Ht)}catch(g){n=g;continue}break}while(1)}function Vy(){var e=Qs.current;return Qs.current=Vs,e===null?Vs:e}function Xy(e,n){eul&&(ul=e)}function GS(){for(;Ht!==null;)Ht=Ky(Ht)}function $S(){for(;Ht!==null&&!LS();)Ht=Ky(Ht)}function Ky(e){var n=Jy(e.alternate,e,Pr);return e.memoizedProps=e.pendingProps,n===null&&(n=Qy(e)),Uy.current=null,n}function Qy(e){Ht=e;do{var n=Ht.alternate;if(e=Ht.return,(Ht.effectTag&2048)==0){if(n=FS(n,Ht,Pr),Pr===1||Ht.childExpirationTime!==1){for(var i=0,u=Ht.child;u!==null;){var s=u.expirationTime,h=u.childExpirationTime;s>i&&(i=s),h>i&&(i=h),u=u.sibling}Ht.childExpirationTime=i}if(n!==null)return n;e!==null&&(e.effectTag&2048)==0&&(e.firstEffect===null&&(e.firstEffect=Ht.firstEffect),Ht.lastEffect!==null&&(e.lastEffect!==null&&(e.lastEffect.nextEffect=Ht.firstEffect),e.lastEffect=Ht.lastEffect),1e?n:e}function $o(e){var n=Os();return io(99,VS.bind(null,e,n)),null}function VS(e,n){do Ba();while(ll!==null);if((Ot&(ui|yi))!==$n)throw Error(tt(327));var i=e.finishedWork,u=e.finishedExpirationTime;if(i===null)return null;if(e.finishedWork=null,e.finishedExpirationTime=0,i===e.current)throw Error(tt(177));e.callbackNode=null,e.callbackExpirationTime=0,e.callbackPriority=90,e.nextKnownPendingLevel=0;var s=Vd(i);if(e.firstPendingTime=s,u<=e.lastSuspendedTime?e.firstSuspendedTime=e.lastSuspendedTime=e.nextKnownPendingLevel=0:u<=e.firstSuspendedTime&&(e.firstSuspendedTime=u-1),u<=e.lastPingedTime&&(e.lastPingedTime=0),u<=e.lastExpiredTime&&(e.lastExpiredTime=0),e===Ur&&(Ht=Ur=null,Pr=0),1p&&(T=p,p=d,d=T),T=s0(se,d),E=s0(se,p),T&&E&&(Oe.rangeCount!==1||Oe.anchorNode!==T.node||Oe.anchorOffset!==T.offset||Oe.focusNode!==E.node||Oe.focusOffset!==E.offset)&&(we=we.createRange(),we.setStart(T.node,T.offset),Oe.removeAllRanges(),d>p?(Oe.addRange(we),Oe.extend(E.node,E.offset)):(we.setEnd(E.node,E.offset),Oe.addRange(we)))))),we=[],Oe=se;Oe=Oe.parentNode;)Oe.nodeType===1&&we.push({element:Oe,left:Oe.scrollLeft,top:Oe.scrollTop});for(typeof se.focus=="function"&&se.focus(),se=0;se=i?Sy(e,n,i):(Ln(Cn,Cn.current&1),n=Ii(e,n,i),n!==null?n.sibling:null);Ln(Cn,Cn.current&1);break;case 19:if(u=n.childExpirationTime>=i,(e.effectTag&64)!=0){if(u)return Cy(e,n,i);n.effectTag|=64}if(s=n.memoizedState,s!==null&&(s.rendering=null,s.tail=null),Ln(Cn,Cn.current),!u)return null}return Ii(e,n,i)}mi=!1}}else mi=!1;switch(n.expirationTime=0,n.tag){case 2:if(u=n.type,e!==null&&(e.alternate=null,n.alternate=null,n.effectTag|=2),e=n.pendingProps,s=Ia(n,ar.current),Fa(n,i),s=Td(null,n,u,e,s,i),n.effectTag|=1,typeof s=="object"&&s!==null&&typeof s.render=="function"&&s.$$typeof===void 0){if(n.tag=1,n.memoizedState=null,n.updateQueue=null,Nr(u)){var h=!0;Ns(n)}else h=!1;n.memoizedState=s.state!==null&&s.state!==void 0?s.state:null,vd(n);var d=u.getDerivedStateFromProps;typeof d=="function"&&Fs(n,u,d,e),s.updater=zs,n.stateNode=s,s._reactInternalFiber=n,md(n,u,e,i),n=Dd(null,n,u,!0,h,i)}else n.tag=0,Wr(null,n,s,i),n=n.child;return n;case 16:e:{if(s=n.elementType,e!==null&&(e.alternate=null,n.alternate=null,n.effectTag|=2),e=n.pendingProps,MT(s),s._status!==1)throw s._result;switch(s=s._result,n.type=s,h=n.tag=tb(s),e=ai(s,e),h){case 0:n=Od(null,n,s,e,i);break e;case 1:n=ky(null,n,s,e,i);break e;case 11:n=yy(null,n,s,e,i);break e;case 14:n=wy(null,n,s,ai(s.type,e),u,i);break e}throw Error(tt(306,s,""))}return n;case 0:return u=n.type,s=n.pendingProps,s=n.elementType===u?s:ai(u,s),Od(e,n,u,s,i);case 1:return u=n.type,s=n.pendingProps,s=n.elementType===u?s:ai(u,s),ky(e,n,u,s,i);case 3:if(Ty(n),u=n.updateQueue,e===null||u===null)throw Error(tt(282));if(u=n.pendingProps,s=n.memoizedState,s=s!==null?s.element:null,gd(e,n),el(n,u,null,i),u=n.memoizedState.element,u===s)Ld(),n=Ii(e,n,i);else{if((s=n.stateNode.hydrate)&&(so=Pa(n.stateNode.containerInfo.firstChild),Ai=n,s=Bo=!0),s)for(i=yd(n,null,u,i),n.child=i;i;)i.effectTag=i.effectTag&-3|1024,i=i.sibling;else Wr(e,n,u,i),Ld();n=n.child}return n;case 5:return ay(n),e===null&&Pd(n),u=n.type,s=n.pendingProps,h=e!==null?e.memoizedProps:null,d=s.children,Zh(u,s)?d=null:h!==null&&Zh(u,h)&&(n.effectTag|=16),_y(e,n),n.mode&4&&i!==1&&s.hidden?(n.expirationTime=n.childExpirationTime=1,n=null):(Wr(e,n,d,i),n=n.child),n;case 6:return e===null&&Pd(n),null;case 13:return Sy(e,n,i);case 4:return wd(n,n.stateNode.containerInfo),u=n.pendingProps,e===null?n.child=za(n,null,u,i):Wr(e,n,u,i),n.child;case 11:return u=n.type,s=n.pendingProps,s=n.elementType===u?s:ai(u,s),yy(e,n,u,s,i);case 7:return Wr(e,n,n.pendingProps,i),n.child;case 8:return Wr(e,n,n.pendingProps.children,i),n.child;case 12:return Wr(e,n,n.pendingProps.children,i),n.child;case 10:e:{u=n.type._context,s=n.pendingProps,d=n.memoizedProps,h=s.value;var p=n.type._context;if(Ln(As,p._currentValue),p._currentValue=h,d!==null)if(p=d.value,h=zo(p,h)?0:(typeof u._calculateChangedBits=="function"?u._calculateChangedBits(p,h):1073741823)|0,h===0){if(d.children===s.children&&!Er.current){n=Ii(e,n,i);break e}}else for(p=n.child,p!==null&&(p.return=n);p!==null;){var b=p.dependencies;if(b!==null){d=p.child;for(var T=b.firstContext;T!==null;){if(T.context===u&&(T.observedBits&h)!=0){p.tag===1&&(T=ao(i,null),T.tag=2,uo(p,T)),p.expirationTime=n&&e<=n}function Ko(e,n){var i=e.firstSuspendedTime,u=e.lastSuspendedTime;in||i===0)&&(e.lastSuspendedTime=n),n<=e.lastPingedTime&&(e.lastPingedTime=0),n<=e.lastExpiredTime&&(e.lastExpiredTime=0)}function t1(e,n){n>e.firstPendingTime&&(e.firstPendingTime=n);var i=e.firstSuspendedTime;i!==0&&(n>=i?e.firstSuspendedTime=e.lastSuspendedTime=e.nextKnownPendingLevel=0:n>=e.lastSuspendedTime&&(e.lastSuspendedTime=n+1),n>e.nextKnownPendingLevel&&(e.nextKnownPendingLevel=n))}function ep(e,n){var i=e.lastExpiredTime;(i===0||i>n)&&(e.lastExpiredTime=n)}function hf(e,n,i,u){var s=n.current,h=wi(),d=tl.suspense;h=qo(h,s,d);e:if(i){i=i._reactInternalFiber;t:{if(Ro(i)!==i||i.tag!==1)throw Error(tt(170));var p=i;do{switch(p.tag){case 3:p=p.stateNode.context;break t;case 1:if(Nr(p.type)){p=p.stateNode.__reactInternalMemoizedMergedChildContext;break t}}p=p.return}while(p!==null);throw Error(tt(171))}if(i.tag===1){var b=i.type;if(Nr(b)){i=z0(i,b,p);break e}}i=p}else i=ro;return n.context===null?n.context=i:n.pendingContext=i,n=ao(h,d),n.payload={element:e},u=u===void 0?null:u,u!==null&&(n.callback=u),uo(s,n),co(s,h),h}function tp(e){if(e=e.current,!e.child)return null;switch(e.child.tag){case 5:return e.child.stateNode;default:return e.child.stateNode}}function n1(e,n){e=e.memoizedState,e!==null&&e.dehydrated!==null&&e.retryTime{"use strict";function o1(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__=="undefined"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(o1)}catch(e){console.error(e)}}o1(),a1.exports=i1()});var s1=yt((KM,l1)=>{"use strict";var ab="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";l1.exports=ab});var d1=yt((QM,h1)=>{"use strict";var ub=s1();function f1(){}function c1(){}c1.resetWarningCache=f1;h1.exports=function(){function e(u,s,h,d,p,b){if(b!==ub){var T=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw T.name="Invariant Violation",T}}e.isRequired=e;function n(){return e}var i={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:n,element:e,elementType:e,instanceOf:n,node:e,objectOf:n,oneOf:n,oneOfType:n,shape:n,exact:n,checkPropTypes:c1,resetWarningCache:f1};return i.PropTypes=i,i}});var pf=yt((e2,p1)=>{p1.exports=d1()();var ZM,JM});var D1=yt((d2,O1)=>{O1.exports=Array.isArray||function(e){return Object.prototype.toString.call(e)=="[object Array]"}});var F1=yt((p2,ja)=>{var gf=D1();ja.exports=R1;ja.exports.parse=fp;ja.exports.compile=Cb;ja.exports.tokensToFunction=A1;ja.exports.tokensToRegExp=I1;var bb=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function fp(e,n){for(var i=[],u=0,s=0,h="",d=n&&n.delimiter||"/",p;(p=bb.exec(e))!=null;){var b=p[0],T=p[1],E=p.index;if(h+=e.slice(s,E),s=E+b.length,T){h+=T[1];continue}var I=e[s],oe=p[2],ve=p[3],Me=p[4],ne=p[5],H=p[6],R=p[7];h&&(i.push(h),h="");var j=oe!=null&&I!=null&&I!==oe,se=H==="+"||H==="*",we=H==="?"||H==="*",Oe=p[2]||d,Y=Me||ne;i.push({name:ve||u++,prefix:oe||"",delimiter:Oe,optional:we,repeat:se,partial:j,asterisk:!!R,pattern:Y?Nb(Y):R?".*":"[^"+mf(Oe)+"]+?"})}return s{"use strict";var Xn=typeof Symbol=="function"&&Symbol.for,dp=Xn?Symbol.for("react.element"):60103,pp=Xn?Symbol.for("react.portal"):60106,yf=Xn?Symbol.for("react.fragment"):60107,wf=Xn?Symbol.for("react.strict_mode"):60108,xf=Xn?Symbol.for("react.profiler"):60114,_f=Xn?Symbol.for("react.provider"):60109,kf=Xn?Symbol.for("react.context"):60110,vp=Xn?Symbol.for("react.async_mode"):60111,Tf=Xn?Symbol.for("react.concurrent_mode"):60111,Sf=Xn?Symbol.for("react.forward_ref"):60112,bf=Xn?Symbol.for("react.suspense"):60113,Db=Xn?Symbol.for("react.suspense_list"):60120,Cf=Xn?Symbol.for("react.memo"):60115,Mf=Xn?Symbol.for("react.lazy"):60116,Ab=Xn?Symbol.for("react.block"):60121,Ib=Xn?Symbol.for("react.fundamental"):60117,Rb=Xn?Symbol.for("react.responder"):60118,Fb=Xn?Symbol.for("react.scope"):60119;function Yr(e){if(typeof e=="object"&&e!==null){var n=e.$$typeof;switch(n){case dp:switch(e=e.type,e){case vp:case Tf:case yf:case xf:case wf:case bf:return e;default:switch(e=e&&e.$$typeof,e){case kf:case Sf:case Mf:case Cf:case _f:return e;default:return n}}case pp:return n}}}function z1(e){return Yr(e)===Tf}ln.AsyncMode=vp;ln.ConcurrentMode=Tf;ln.ContextConsumer=kf;ln.ContextProvider=_f;ln.Element=dp;ln.ForwardRef=Sf;ln.Fragment=yf;ln.Lazy=Mf;ln.Memo=Cf;ln.Portal=pp;ln.Profiler=xf;ln.StrictMode=wf;ln.Suspense=bf;ln.isAsyncMode=function(e){return z1(e)||Yr(e)===vp};ln.isConcurrentMode=z1;ln.isContextConsumer=function(e){return Yr(e)===kf};ln.isContextProvider=function(e){return Yr(e)===_f};ln.isElement=function(e){return typeof e=="object"&&e!==null&&e.$$typeof===dp};ln.isForwardRef=function(e){return Yr(e)===Sf};ln.isFragment=function(e){return Yr(e)===yf};ln.isLazy=function(e){return Yr(e)===Mf};ln.isMemo=function(e){return Yr(e)===Cf};ln.isPortal=function(e){return Yr(e)===pp};ln.isProfiler=function(e){return Yr(e)===xf};ln.isStrictMode=function(e){return Yr(e)===wf};ln.isSuspense=function(e){return Yr(e)===bf};ln.isValidElementType=function(e){return typeof e=="string"||typeof e=="function"||e===yf||e===Tf||e===xf||e===wf||e===bf||e===Db||typeof e=="object"&&e!==null&&(e.$$typeof===Mf||e.$$typeof===Cf||e.$$typeof===_f||e.$$typeof===kf||e.$$typeof===Sf||e.$$typeof===Ib||e.$$typeof===Rb||e.$$typeof===Fb||e.$$typeof===Ab)};ln.typeOf=Yr});var gp=yt((g2,W1)=>{"use strict";W1.exports=H1()});var $1=yt((y2,G1)=>{"use strict";var mp=gp(),zb={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},Hb={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},Wb={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},U1={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},yp={};yp[mp.ForwardRef]=Wb;yp[mp.Memo]=U1;function B1(e){return mp.isMemo(e)?U1:yp[e.$$typeof]||zb}var Ub=Object.defineProperty,Bb=Object.getOwnPropertyNames,j1=Object.getOwnPropertySymbols,jb=Object.getOwnPropertyDescriptor,Yb=Object.getPrototypeOf,Y1=Object.prototype;function q1(e,n,i){if(typeof n!="string"){if(Y1){var u=Yb(n);u&&u!==Y1&&q1(e,u,i)}var s=Bb(n);j1&&(s=s.concat(j1(n)));for(var h=B1(e),d=B1(n),p=0;p{(function(e){"use strict";var n={newline:/^\n+/,code:/^( {4}[^\n]+\n*)+/,fences:/^ {0,3}(`{3,}|~{3,})([^`~\n]*)\n(?:|([\s\S]*?)\n)(?: {0,3}\1[~`]* *(?:\n+|$)|$)/,hr:/^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\* *){3,})(?:\n+|$)/,heading:/^ {0,3}(#{1,6}) +([^\n]*?)(?: +#+)? *(?:\n+|$)/,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( {0,3})(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,html:"^ {0,3}(?:<(script|pre|style)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?\\?>\\n*|\\n*|\\n*|)[\\s\\S]*?(?:\\n{2,}|$)|<(?!script|pre|style)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:\\n{2,}|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:\\n{2,}|$))",def:/^ {0,3}\[(label)\]: *\n? *]+)>?(?:(?: +\n? *| *\n *)(title))? *(?:\n+|$)/,nptable:H,table:H,lheading:/^([^\n]+)\n {0,3}(=+|-+) *(?:\n+|$)/,_paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html)[^\n]+)*)/,text:/^[^\n]+/};n._label=/(?!\s*\])(?:\\[\[\]]|[^\[\]])+/,n._title=/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/,n.def=I(n.def).replace("label",n._label).replace("title",n._title).getRegex(),n.bullet=/(?:[*+-]|\d{1,9}\.)/,n.item=/^( *)(bull) ?[^\n]*(?:\n(?!\1bull ?)[^\n]*)*/,n.item=I(n.item,"gm").replace(/bull/g,n.bullet).getRegex(),n.list=I(n.list).replace(/bull/g,n.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+n.def.source+")").getRegex(),n._tag="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",n._comment=//,n.html=I(n.html,"i").replace("comment",n._comment).replace("tag",n._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),n.paragraph=I(n._paragraph).replace("hr",n.hr).replace("heading"," {0,3}#{1,6} +").replace("|lheading","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}|~{3,})[^`\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|!--)").replace("tag",n._tag).getRegex(),n.blockquote=I(n.blockquote).replace("paragraph",n.paragraph).getRegex(),n.normal=R({},n),n.gfm=R({},n.normal,{nptable:/^ *([^|\n ].*\|.*)\n *([-:]+ *\|[-| :]*)(?:\n((?:.*[^>\n ].*(?:\n|$))*)\n*|$)/,table:/^ *\|(.+)\n *\|?( *[-:]+[-| :]*)(?:\n((?: *[^>\n ].*(?:\n|$))*)\n*|$)/}),n.pedantic=R({},n.normal,{html:I(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",n._comment).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^ *(#{1,6}) *([^\n]+?) *(?:#+ *)?(?:\n+|$)/,fences:H,paragraph:I(n.normal._paragraph).replace("hr",n.hr).replace("heading",` *#{1,6} *[^ +]`).replace("lheading",n.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()});function i(c){this.tokens=[],this.tokens.links=Object.create(null),this.options=c||Y.defaults,this.rules=n.normal,this.options.pedantic?this.rules=n.pedantic:this.options.gfm&&(this.rules=n.gfm)}i.rules=n,i.lex=function(c,g){var k=new i(g);return k.lex(c)},i.prototype.lex=function(c){return c=c.replace(/\r\n|\r/g,` `).replace(/\t/g," ").replace(/\u00a0/g," ").replace(/\u2424/g,` -`),this.token(c,!0)},i.prototype.token=function(c,g){c=c.replace(/^ +$/gm,"");for(var k,E,S,X,m,A,W,he,Oe,fe,ne,We,se,be,Ce,_e;c;){if((S=this.rules.newline.exec(c))&&(c=c.substring(S[0].length),S[0].length>1&&this.tokens.push({type:"space"})),S=this.rules.code.exec(c)){var Re=this.tokens[this.tokens.length-1];c=c.substring(S[0].length),Re&&Re.type==="paragraph"?Re.text+=` -`+S[0].trimRight():(S=S[0].replace(/^ {4}/gm,""),this.tokens.push({type:"code",codeBlockStyle:"indented",text:this.options.pedantic?S:oe(S,` -`)}));continue}if(S=this.rules.fences.exec(c)){c=c.substring(S[0].length),this.tokens.push({type:"code",lang:S[2]?S[2].trim():S[2],text:S[3]||""});continue}if(S=this.rules.heading.exec(c)){c=c.substring(S[0].length),this.tokens.push({type:"heading",depth:S[1].length,text:S[2]});continue}if((S=this.rules.nptable.exec(c))&&(A={type:"table",header:q(S[1].replace(/^ *| *\| *$/g,"")),align:S[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:S[3]?S[3].replace(/\n$/,"").split(` -`):[]},A.header.length===A.align.length)){for(c=c.substring(S[0].length),ne=0;ne ?/gm,""),this.token(S,g),this.tokens.push({type:"blockquote_end"});continue}if(S=this.rules.list.exec(c)){for(c=c.substring(S[0].length),X=S[2],be=X.length>1,W={type:"list_start",ordered:be,start:be?+X:"",loose:!1},this.tokens.push(W),S=S[0].match(this.rules.item),he=[],k=!1,se=S.length,ne=0;ne1?m.length===1:m.length>1||this.options.smartLists&&m!==X)&&(c=S.slice(ne+1).join(` -`)+c,ne=se-1)),E=k||/\n\n(?!\s*$)/.test(A),ne!==se-1&&(k=A.charAt(A.length-1)===` -`,E||(E=k)),E&&(W.loose=!0),Ce=/^\[[ xX]\] /.test(A),_e=void 0,Ce&&(_e=A[1]!==" ",A=A.replace(/^\[[ xX]\] +/,"")),Oe={type:"list_item_start",task:Ce,checked:_e,loose:E},he.push(Oe),this.tokens.push(Oe),this.token(A,!1),this.tokens.push({type:"list_item_end"});if(W.loose)for(se=he.length,ne=0;ne?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:I,tag:"^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^",link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(?!\s*\])((?:\\[\[\]]?|[^\[\]\\])+)\]/,nolink:/^!?\[(?!\s*\])((?:\[[^\[\]]*\]|\\[\[\]]|[^\[\]])*)\](?:\[\])?/,strong:/^__([^\s_])__(?!_)|^\*\*([^\s*])\*\*(?!\*)|^__([^\s][\s\S]*?[^\s])__(?!_)|^\*\*([^\s][\s\S]*?[^\s])\*\*(?!\*)/,em:/^_([^\s_])_(?!_)|^\*([^\s*<\[])\*(?!\*)|^_([^\s<][\s\S]*?[^\s_])_(?!_|[^\spunctuation])|^_([^\s_<][\s\S]*?[^\s])_(?!_|[^\spunctuation])|^\*([^\s<"][\s\S]*?[^\s\*])\*(?!\*|[^\spunctuation])|^\*([^\s*"<\[][\s\S]*?[^\s])\*(?!\*)/,code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^( {2,}|\\)\n(?!\s*$)/,del:I,text:/^(`+|[^`])(?:[\s\S]*?(?:(?=[\\?@\\[^_{|}~`,u.em=O(u.em).replace(/punctuation/g,u._punctuation).getRegex(),u._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g,u._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,u._email=/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/,u.autolink=O(u.autolink).replace("scheme",u._scheme).replace("email",u._email).getRegex(),u._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/,u.tag=O(u.tag).replace("comment",n._comment).replace("attribute",u._attribute).getRegex(),u._label=/(?:\[[^\[\]]*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,u._href=/<(?:\\[<>]?|[^\s<>\\])*>|[^\s\x00-\x1f]*/,u._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/,u.link=O(u.link).replace("label",u._label).replace("href",u._href).replace("title",u._title).getRegex(),u.reflink=O(u.reflink).replace("label",u._label).getRegex(),u.normal=D({},u),u.pedantic=D({},u.normal,{strong:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,em:/^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/,link:O(/^!?\[(label)\]\((.*?)\)/).replace("label",u._label).getRegex(),reflink:O(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",u._label).getRegex()}),u.gfm=D({},u.normal,{escape:O(u.escape).replace("])","~|])").getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,del:/^~+(?=\S)([\s\S]*?\S)~+/,text:/^(`+|[^`])(?:[\s\S]*?(?:(?=[\\/i.test(m[0])&&(this.inLink=!1),!this.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(m[0])?this.inRawBlock=!0:this.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(m[0])&&(this.inRawBlock=!1),c=c.substring(m[0].length),g+=this.options.sanitize?this.options.sanitizer?this.options.sanitizer(m[0]):T(m[0]):m[0];continue}if(m=this.rules.link.exec(c)){var W=ge(m[2],"()");if(W>-1){var he=4+m[1].length+W;m[2]=m[2].substring(0,W),m[0]=m[0].substring(0,he).trim(),m[3]=""}c=c.substring(m[0].length),this.inLink=!0,S=m[2],this.options.pedantic?(k=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(S),k?(S=k[1],X=k[3]):X=""):X=m[3]?m[3].slice(1,-1):"",S=S.trim().replace(/^<([\s\S]*)>$/,"$1"),g+=this.outputLink(m,{href:s.escapes(S),title:s.escapes(X)}),this.inLink=!1;continue}if((m=this.rules.reflink.exec(c))||(m=this.rules.nolink.exec(c))){if(c=c.substring(m[0].length),k=(m[2]||m[1]).replace(/\s+/g," "),k=this.links[k.toLowerCase()],!k||!k.href){g+=m[0].charAt(0),c=m[0].substring(1)+c;continue}this.inLink=!0,g+=this.outputLink(m,k),this.inLink=!1;continue}if(m=this.rules.strong.exec(c)){c=c.substring(m[0].length),g+=this.renderer.strong(this.output(m[4]||m[3]||m[2]||m[1]));continue}if(m=this.rules.em.exec(c)){c=c.substring(m[0].length),g+=this.renderer.em(this.output(m[6]||m[5]||m[4]||m[3]||m[2]||m[1]));continue}if(m=this.rules.code.exec(c)){c=c.substring(m[0].length),g+=this.renderer.codespan(T(m[2].trim(),!0));continue}if(m=this.rules.br.exec(c)){c=c.substring(m[0].length),g+=this.renderer.br();continue}if(m=this.rules.del.exec(c)){c=c.substring(m[0].length),g+=this.renderer.del(this.output(m[1]));continue}if(m=this.rules.autolink.exec(c)){c=c.substring(m[0].length),m[2]==="@"?(E=T(this.mangle(m[1])),S="mailto:"+E):(E=T(m[1]),S=E),g+=this.renderer.link(S,null,E);continue}if(!this.inLink&&(m=this.rules.url.exec(c))){if(m[2]==="@")E=T(m[0]),S="mailto:"+E;else{do A=m[0],m[0]=this.rules._backpedal.exec(m[0])[0];while(A!==m[0]);E=T(m[0]),m[1]==="www."?S="http://"+E:S=E}c=c.substring(m[0].length),g+=this.renderer.link(S,null,E);continue}if(m=this.rules.text.exec(c)){c=c.substring(m[0].length),this.inRawBlock?g+=this.renderer.text(this.options.sanitize?this.options.sanitizer?this.options.sanitizer(m[0]):T(m[0]):m[0]):g+=this.renderer.text(T(this.smartypants(m[0])));continue}if(c)throw new Error("Infinite loop on byte: "+c.charCodeAt(0))}return g},s.escapes=function(c){return c&&c.replace(s.rules._escapes,"$1")},s.prototype.outputLink=function(c,g){var k=g.href,E=g.title?T(g.title):null;return c[0].charAt(0)!=="!"?this.renderer.link(k,E,this.output(c[1])):this.renderer.image(k,E,T(c[1]))},s.prototype.smartypants=function(c){return this.options.smartypants?c.replace(/---/g,"\u2014").replace(/--/g,"\u2013").replace(/(^|[-\u2014/(\[{"\s])'/g,"$1\u2018").replace(/'/g,"\u2019").replace(/(^|[-\u2014/(\[{\u2018\s])"/g,"$1\u201C").replace(/"/g,"\u201D").replace(/\.{3}/g,"\u2026"):c},s.prototype.mangle=function(c){if(!this.options.mangle)return c;for(var g="",k=c.length,E=0,S;E.5&&(S="x"+S.toString(16)),g+="&#"+S+";";return g};function h(c){this.options=c||de.defaults}h.prototype.code=function(c,g,k){var E=(g||"").match(/\S*/)[0];if(this.options.highlight){var S=this.options.highlight(c,E);S!=null&&S!==c&&(k=!0,c=S)}return E?'
    '+(k?c:T(c,!0))+`
    +`),this.token(c,!0)},i.prototype.token=function(c,g){c=c.replace(/^ +$/gm,"");for(var k,S,N,w,F,L,Z,_e,Ne,Te,ue,Ie,he,ye,de,ge;c;){if((N=this.rules.newline.exec(c))&&(c=c.substring(N[0].length),N[0].length>1&&this.tokens.push({type:"space"})),N=this.rules.code.exec(c)){var He=this.tokens[this.tokens.length-1];c=c.substring(N[0].length),He&&He.type==="paragraph"?He.text+=` +`+N[0].trimRight():(N=N[0].replace(/^ {4}/gm,""),this.tokens.push({type:"code",codeBlockStyle:"indented",text:this.options.pedantic?N:se(N,` +`)}));continue}if(N=this.rules.fences.exec(c)){c=c.substring(N[0].length),this.tokens.push({type:"code",lang:N[2]?N[2].trim():N[2],text:N[3]||""});continue}if(N=this.rules.heading.exec(c)){c=c.substring(N[0].length),this.tokens.push({type:"heading",depth:N[1].length,text:N[2]});continue}if((N=this.rules.nptable.exec(c))&&(L={type:"table",header:j(N[1].replace(/^ *| *\| *$/g,"")),align:N[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:N[3]?N[3].replace(/\n$/,"").split(` +`):[]},L.header.length===L.align.length)){for(c=c.substring(N[0].length),ue=0;ue ?/gm,""),this.token(N,g),this.tokens.push({type:"blockquote_end"});continue}if(N=this.rules.list.exec(c)){for(c=c.substring(N[0].length),w=N[2],ye=w.length>1,Z={type:"list_start",ordered:ye,start:ye?+w:"",loose:!1},this.tokens.push(Z),N=N[0].match(this.rules.item),_e=[],k=!1,he=N.length,ue=0;ue1?F.length===1:F.length>1||this.options.smartLists&&F!==w)&&(c=N.slice(ue+1).join(` +`)+c,ue=he-1)),S=k||/\n\n(?!\s*$)/.test(L),ue!==he-1&&(k=L.charAt(L.length-1)===` +`,S||(S=k)),S&&(Z.loose=!0),de=/^\[[ xX]\] /.test(L),ge=void 0,de&&(ge=L[1]!==" ",L=L.replace(/^\[[ xX]\] +/,"")),Ne={type:"list_item_start",task:de,checked:ge,loose:S},_e.push(Ne),this.tokens.push(Ne),this.token(L,!1),this.tokens.push({type:"list_item_end"});if(Z.loose)for(he=_e.length,ue=0;ue?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:H,tag:"^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^",link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(?!\s*\])((?:\\[\[\]]?|[^\[\]\\])+)\]/,nolink:/^!?\[(?!\s*\])((?:\[[^\[\]]*\]|\\[\[\]]|[^\[\]])*)\](?:\[\])?/,strong:/^__([^\s_])__(?!_)|^\*\*([^\s*])\*\*(?!\*)|^__([^\s][\s\S]*?[^\s])__(?!_)|^\*\*([^\s][\s\S]*?[^\s])\*\*(?!\*)/,em:/^_([^\s_])_(?!_)|^\*([^\s*<\[])\*(?!\*)|^_([^\s<][\s\S]*?[^\s_])_(?!_|[^\spunctuation])|^_([^\s_<][\s\S]*?[^\s])_(?!_|[^\spunctuation])|^\*([^\s<"][\s\S]*?[^\s\*])\*(?!\*|[^\spunctuation])|^\*([^\s*"<\[][\s\S]*?[^\s])\*(?!\*)/,code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^( {2,}|\\)\n(?!\s*$)/,del:H,text:/^(`+|[^`])(?:[\s\S]*?(?:(?=[\\?@\\[^_{|}~`,u.em=I(u.em).replace(/punctuation/g,u._punctuation).getRegex(),u._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g,u._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,u._email=/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/,u.autolink=I(u.autolink).replace("scheme",u._scheme).replace("email",u._email).getRegex(),u._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/,u.tag=I(u.tag).replace("comment",n._comment).replace("attribute",u._attribute).getRegex(),u._label=/(?:\[[^\[\]]*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,u._href=/<(?:\\[<>]?|[^\s<>\\])*>|[^\s\x00-\x1f]*/,u._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/,u.link=I(u.link).replace("label",u._label).replace("href",u._href).replace("title",u._title).getRegex(),u.reflink=I(u.reflink).replace("label",u._label).getRegex(),u.normal=R({},u),u.pedantic=R({},u.normal,{strong:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,em:/^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/,link:I(/^!?\[(label)\]\((.*?)\)/).replace("label",u._label).getRegex(),reflink:I(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",u._label).getRegex()}),u.gfm=R({},u.normal,{escape:I(u.escape).replace("])","~|])").getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,del:/^~+(?=\S)([\s\S]*?\S)~+/,text:/^(`+|[^`])(?:[\s\S]*?(?:(?=[\\/i.test(F[0])&&(this.inLink=!1),!this.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(F[0])?this.inRawBlock=!0:this.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(F[0])&&(this.inRawBlock=!1),c=c.substring(F[0].length),g+=this.options.sanitize?this.options.sanitizer?this.options.sanitizer(F[0]):T(F[0]):F[0];continue}if(F=this.rules.link.exec(c)){var Z=we(F[2],"()");if(Z>-1){var _e=4+F[1].length+Z;F[2]=F[2].substring(0,Z),F[0]=F[0].substring(0,_e).trim(),F[3]=""}c=c.substring(F[0].length),this.inLink=!0,N=F[2],this.options.pedantic?(k=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(N),k?(N=k[1],w=k[3]):w=""):w=F[3]?F[3].slice(1,-1):"",N=N.trim().replace(/^<([\s\S]*)>$/,"$1"),g+=this.outputLink(F,{href:s.escapes(N),title:s.escapes(w)}),this.inLink=!1;continue}if((F=this.rules.reflink.exec(c))||(F=this.rules.nolink.exec(c))){if(c=c.substring(F[0].length),k=(F[2]||F[1]).replace(/\s+/g," "),k=this.links[k.toLowerCase()],!k||!k.href){g+=F[0].charAt(0),c=F[0].substring(1)+c;continue}this.inLink=!0,g+=this.outputLink(F,k),this.inLink=!1;continue}if(F=this.rules.strong.exec(c)){c=c.substring(F[0].length),g+=this.renderer.strong(this.output(F[4]||F[3]||F[2]||F[1]));continue}if(F=this.rules.em.exec(c)){c=c.substring(F[0].length),g+=this.renderer.em(this.output(F[6]||F[5]||F[4]||F[3]||F[2]||F[1]));continue}if(F=this.rules.code.exec(c)){c=c.substring(F[0].length),g+=this.renderer.codespan(T(F[2].trim(),!0));continue}if(F=this.rules.br.exec(c)){c=c.substring(F[0].length),g+=this.renderer.br();continue}if(F=this.rules.del.exec(c)){c=c.substring(F[0].length),g+=this.renderer.del(this.output(F[1]));continue}if(F=this.rules.autolink.exec(c)){c=c.substring(F[0].length),F[2]==="@"?(S=T(this.mangle(F[1])),N="mailto:"+S):(S=T(F[1]),N=S),g+=this.renderer.link(N,null,S);continue}if(!this.inLink&&(F=this.rules.url.exec(c))){if(F[2]==="@")S=T(F[0]),N="mailto:"+S;else{do L=F[0],F[0]=this.rules._backpedal.exec(F[0])[0];while(L!==F[0]);S=T(F[0]),F[1]==="www."?N="http://"+S:N=S}c=c.substring(F[0].length),g+=this.renderer.link(N,null,S);continue}if(F=this.rules.text.exec(c)){c=c.substring(F[0].length),this.inRawBlock?g+=this.renderer.text(this.options.sanitize?this.options.sanitizer?this.options.sanitizer(F[0]):T(F[0]):F[0]):g+=this.renderer.text(T(this.smartypants(F[0])));continue}if(c)throw new Error("Infinite loop on byte: "+c.charCodeAt(0))}return g},s.escapes=function(c){return c&&c.replace(s.rules._escapes,"$1")},s.prototype.outputLink=function(c,g){var k=g.href,S=g.title?T(g.title):null;return c[0].charAt(0)!=="!"?this.renderer.link(k,S,this.output(c[1])):this.renderer.image(k,S,T(c[1]))},s.prototype.smartypants=function(c){return this.options.smartypants?c.replace(/---/g,"\u2014").replace(/--/g,"\u2013").replace(/(^|[-\u2014/(\[{"\s])'/g,"$1\u2018").replace(/'/g,"\u2019").replace(/(^|[-\u2014/(\[{\u2018\s])"/g,"$1\u201C").replace(/"/g,"\u201D").replace(/\.{3}/g,"\u2026"):c},s.prototype.mangle=function(c){if(!this.options.mangle)return c;for(var g="",k=c.length,S=0,N;S.5&&(N="x"+N.toString(16)),g+="&#"+N+";";return g};function h(c){this.options=c||Y.defaults}h.prototype.code=function(c,g,k){var S=(g||"").match(/\S*/)[0];if(this.options.highlight){var N=this.options.highlight(c,S);N!=null&&N!==c&&(k=!0,c=N)}return S?'
    '+(k?c:T(c,!0))+`
    `:"
    "+(k?c:T(c,!0))+"
    "},h.prototype.blockquote=function(c){return`
    `+c+`
    -`},h.prototype.html=function(c){return c},h.prototype.heading=function(c,g,k,E){return this.options.headerIds?"'+c+" +`},h.prototype.html=function(c){return c},h.prototype.heading=function(c,g,k,S){return this.options.headerIds?"'+c+" `:""+c+" `},h.prototype.hr=function(){return this.options.xhtml?`
    `:`
    -`},h.prototype.list=function(c,g,k){var E=g?"ol":"ul",S=g&&k!==1?' start="'+k+'"':"";return"<"+E+S+`> -`+c+" +`},h.prototype.list=function(c,g,k){var S=g?"ol":"ul",N=g&&k!==1?' start="'+k+'"':"";return"<"+S+N+`> +`+c+" `},h.prototype.listitem=function(c){return"
  • "+c+`
  • `},h.prototype.checkbox=function(c){return" "},h.prototype.paragraph=function(c){return"

    "+c+`

    `},h.prototype.table=function(c,g){return g&&(g=""+g+""),` @@ -29,34 +29,34 @@ Add a component higher in the tree to provide a loading `+g+`
    `},h.prototype.tablerow=function(c){return` `+c+` -`},h.prototype.tablecell=function(c,g){var k=g.header?"th":"td",E=g.align?"<"+k+' align="'+g.align+'">':"<"+k+">";return E+c+" -`},h.prototype.strong=function(c){return""+c+""},h.prototype.em=function(c){return""+c+""},h.prototype.codespan=function(c){return""+c+""},h.prototype.br=function(){return this.options.xhtml?"
    ":"
    "},h.prototype.del=function(c){return""+c+""},h.prototype.link=function(c,g,k){if(c=te(this.options.sanitize,this.options.baseUrl,c),c===null)return k;var E='
    ",E},h.prototype.image=function(c,g,k){if(c=te(this.options.sanitize,this.options.baseUrl,c),c===null)return k;var E=''+k+'":">",E},h.prototype.text=function(c){return c};function d(){}d.prototype.strong=d.prototype.em=d.prototype.codespan=d.prototype.del=d.prototype.text=function(c){return c},d.prototype.link=d.prototype.image=function(c,g,k){return""+k},d.prototype.br=function(){return""};function v(c){this.tokens=[],this.token=null,this.options=c||de.defaults,this.options.renderer=this.options.renderer||new h,this.renderer=this.options.renderer,this.renderer.options=this.options,this.slugger=new x}v.parse=function(c,g){var k=new v(g);return k.parse(c)},v.prototype.parse=function(c){this.inline=new s(c.links,this.options),this.inlineText=new s(c.links,D({},this.options,{renderer:new d})),this.tokens=c.reverse();for(var g="";this.next();)g+=this.tok();return g},v.prototype.next=function(){return this.token=this.tokens.pop(),this.token},v.prototype.peek=function(){return this.tokens[this.tokens.length-1]||0},v.prototype.parseText=function(){for(var c=this.token.text;this.peek().type==="text";)c+=` -`+this.next().text;return this.inline.output(c)},v.prototype.tok=function(){switch(this.token.type){case"space":return"";case"hr":return this.renderer.hr();case"heading":return this.renderer.heading(this.inline.output(this.token.text),this.token.depth,M(this.inlineText.output(this.token.text)),this.slugger);case"code":return this.renderer.code(this.token.text,this.token.lang,this.token.escaped);case"table":{var c="",g="",k,E,S,X;for(S="",k=0;k?@[\]^`{|}~]/g,"").replace(/\s/g,"-");if(this.seen.hasOwnProperty(g)){var k=g;do this.seen[k]++,g=k+"-"+this.seen[k];while(this.seen.hasOwnProperty(g))}return this.seen[g]=0,g};function T(c,g){if(g){if(T.escapeTest.test(c))return c.replace(T.escapeReplace,function(k){return T.replacements[k]})}else if(T.escapeTestNoEncode.test(c))return c.replace(T.escapeReplaceNoEncode,function(k){return T.replacements[k]});return c}T.escapeTest=/[&<>"']/,T.escapeReplace=/[&<>"']/g,T.replacements={"&":"&","<":"<",">":">",'"':""","'":"'"},T.escapeTestNoEncode=/[<>"']|&(?!#?\w+;)/,T.escapeReplaceNoEncode=/[<>"']|&(?!#?\w+;)/g;function M(c){return c.replace(/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig,function(g,k){return k=k.toLowerCase(),k==="colon"?":":k.charAt(0)==="#"?k.charAt(1)==="x"?String.fromCharCode(parseInt(k.substring(2),16)):String.fromCharCode(+k.substring(1)):""})}function O(c,g){return c=c.source||c,g=g||"",{replace:function(k,E){return E=E.source||E,E=E.replace(/(^|[^\[])\^/g,"$1"),c=c.replace(k,E),this},getRegex:function(){return new RegExp(c,g)}}}function te(c,g,k){if(c){try{var E=decodeURIComponent(M(k)).replace(/[^\w:]/g,"").toLowerCase()}catch{return null}if(E.indexOf("javascript:")===0||E.indexOf("vbscript:")===0||E.indexOf("data:")===0)return null}g&&!ie.test(k)&&(k=ve(g,k));try{k=encodeURI(k).replace(/%25/g,"%")}catch{return null}return k}function ve(c,g){return Ee[" "+c]||(/^[^:]+:\/*[^/]*$/.test(c)?Ee[" "+c]=c+"/":Ee[" "+c]=oe(c,"/",!0)),c=Ee[" "+c],g.slice(0,2)==="//"?c.replace(/:[\s\S]*/,":")+g:g.charAt(0)==="/"?c.replace(/(:\/*[^/]*)[\s\S]*/,"$1")+g:c+g}var Ee={},ie=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;function I(){}I.exec=I;function D(c){for(var g=1,k,E;g=0&&A[he]==="\\";)W=!W;return W?"|":" |"}),E=k.split(/ \|/),S=0;if(E.length>g)E.splice(g);else for(;E.lengthAn error occurred:

    "+T(W.message+"",!0)+"
    ";throw W}}de.options=de.setOptions=function(c){return D(de.defaults,c),de},de.getDefaults=function(){return{baseUrl:null,breaks:!1,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:new h,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,xhtml:!1}},de.defaults=de.getDefaults(),de.Parser=v,de.parser=v.parse,de.Renderer=h,de.TextRenderer=d,de.Lexer=i,de.lexer=i.lex,de.InlineLexer=s,de.inlineLexer=s.output,de.Slugger=x,de.parse=de,typeof bp!="undefined"&&typeof Sp=="object"?bp.exports=de:typeof define=="function"&&define.amd?define(function(){return de}):e.marked=de})(Sp||(typeof window!="undefined"?window:global))});var wl=xt((Np,Pp)=>{(function(e,n){typeof Np=="object"&&typeof Pp!="undefined"?Pp.exports=n():typeof define=="function"&&define.amd?define(n):(e=e||self,e.CodeMirror=n())})(Np,function(){"use strict";var e=navigator.userAgent,n=navigator.platform,i=/gecko\/\d/i.test(e),u=/MSIE \d/.test(e),s=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(e),h=/Edge\/(\d+)/.exec(e),d=u||s||h,v=d&&(u?document.documentMode||6:+(h||s)[1]),x=!h&&/WebKit\//.test(e),T=x&&/Qt\/\d+\.\d+/.test(e),M=!h&&/Chrome\/(\d+)/.exec(e),O=M&&+M[1],te=/Opera\//.test(e),ve=/Apple Computer/.test(navigator.vendor),Ee=/Mac OS X 1\d\D([8-9]|\d\d)\D/.test(e),ie=/PhantomJS/.test(e),I=ve&&(/Mobile\/\w+/.test(e)||navigator.maxTouchPoints>2),D=/Android/.test(e),q=I||D||/webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(e),oe=I||/Mac/.test(n),ge=/\bCrOS\b/.test(e),Ue=/win/i.test(n),de=te&&e.match(/Version\/(\d*\.\d*)/);de&&(de=Number(de[1])),de&&de>=15&&(te=!1,x=!0);var c=oe&&(T||te&&(de==null||de<12.11)),g=i||d&&v>=9;function k(t){return new RegExp("(^|\\s)"+t+"(?:$|\\s)\\s*")}var E=function(t,r){var a=t.className,o=k(r).exec(a);if(o){var l=a.slice(o.index+o[0].length);t.className=a.slice(0,o.index)+(l?o[1]+l:"")}};function S(t){for(var r=t.childNodes.length;r>0;--r)t.removeChild(t.firstChild);return t}function X(t,r){return S(t).appendChild(r)}function m(t,r,a,o){var l=document.createElement(t);if(a&&(l.className=a),o&&(l.style.cssText=o),typeof r=="string")l.appendChild(document.createTextNode(r));else if(r)for(var f=0;f=r)return p+(r-f);p+=y-f,p+=a-p%a,f=y+1}}var Ae=function(){this.id=null,this.f=null,this.time=0,this.handler=Ce(this.onTimeout,this)};Ae.prototype.onTimeout=function(t){t.id=0,t.time<=+new Date?t.f():setTimeout(t.handler,t.time-+new Date)},Ae.prototype.set=function(t,r){this.f=r;var a=+new Date+t;(!this.id||a=r)return o+Math.min(p,r-l);if(l+=f-o,l+=a-l%a,o=f+1,l>=r)return o}}var De=[""];function it(t){for(;De.length<=t;)De.push(Je(De)+" ");return De[t]}function Je(t){return t[t.length-1]}function Yt(t,r){for(var a=[],o=0;o"\x80"&&(t.toUpperCase()!=t.toLowerCase()||Gt.test(t))}function Kt(t,r){return r?r.source.indexOf("\\w")>-1&&Rt(t)?!0:r.test(t):Rt(t)}function dn(t){for(var r in t)if(t.hasOwnProperty(r)&&t[r])return!1;return!0}var tn=/[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/;function pn(t){return t.charCodeAt(0)>=768&&tn.test(t)}function R(t,r,a){for(;(a<0?r>0:ra?-1:1;;){if(r==a)return r;var l=(r+a)/2,f=o<0?Math.ceil(l):Math.floor(l);if(f==r)return t(f)?r:a;t(f)?a=f:r=f+o}}function Ie(t,r,a,o){if(!t)return o(r,a,"ltr",0);for(var l=!1,f=0;fr||r==a&&p.to==r)&&(o(Math.max(p.from,r),Math.min(p.to,a),p.level==1?"rtl":"ltr",f),l=!0)}l||o(r,a,"ltr")}var Ke=null;function Be(t,r,a){var o;Ke=null;for(var l=0;lr)return l;f.to==r&&(f.from!=f.to&&a=="before"?o=l:Ke=l),f.from==r&&(f.from!=f.to&&a!="before"?o=l:Ke=l)}return o??Ke}var P=function(){var t="bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN",r="nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111";function a(C){return C<=247?t.charAt(C):1424<=C&&C<=1524?"R":1536<=C&&C<=1785?r.charAt(C-1536):1774<=C&&C<=2220?"r":8192<=C&&C<=8203?"w":C==8204?"b":"L"}var o=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,l=/[stwN]/,f=/[LRr]/,p=/[Lb1n]/,y=/[1n]/;function _(C,$,J){this.level=C,this.from=$,this.to=J}return function(C,$){var J=$=="ltr"?"L":"R";if(C.length==0||$=="ltr"&&!o.test(C))return!1;for(var Se=C.length,we=[],je=0;je-1&&(o[r]=l.slice(0,f).concat(l.slice(f+1)))}}}function at(t,r){var a=ht(t,r);if(!!a.length)for(var o=Array.prototype.slice.call(arguments,2),l=0;l0}function zt(t){t.prototype.on=function(r,a){Te(this,r,a)},t.prototype.off=function(r,a){nt(this,r,a)}}function Bt(t){t.preventDefault?t.preventDefault():t.returnValue=!1}function on(t){t.stopPropagation?t.stopPropagation():t.cancelBubble=!0}function vn(t){return t.defaultPrevented!=null?t.defaultPrevented:t.returnValue==!1}function G(t){Bt(t),on(t)}function Le(t){return t.target||t.srcElement}function F(t){var r=t.which;return r==null&&(t.button&1?r=1:t.button&2?r=3:t.button&4&&(r=2)),oe&&t.ctrlKey&&r==1&&(r=3),r}var V=function(){if(d&&v<9)return!1;var t=m("div");return"draggable"in t||"dragDrop"in t}(),N;function L(t){if(N==null){var r=m("span","\u200B");X(t,m("span",[r,document.createTextNode("x")])),t.firstChild.offsetHeight!=0&&(N=r.offsetWidth<=1&&r.offsetHeight>2&&!(d&&v<8))}var a=N?m("span","\u200B"):m("span","\xA0",null,"display: inline-block; width: 1px; margin-right: -1px");return a.setAttribute("cm-text",""),a}var Y;function ce(t){if(Y!=null)return Y;var r=X(t,document.createTextNode("A\u062EA")),a=W(r,0,1).getBoundingClientRect(),o=W(r,1,2).getBoundingClientRect();return S(t),!a||a.left==a.right?!1:Y=o.right-a.right<3}var xe=` +`},h.prototype.tablecell=function(c,g){var k=g.header?"th":"td",S=g.align?"<"+k+' align="'+g.align+'">':"<"+k+">";return S+c+" +`},h.prototype.strong=function(c){return""+c+""},h.prototype.em=function(c){return""+c+""},h.prototype.codespan=function(c){return""+c+""},h.prototype.br=function(){return this.options.xhtml?"
    ":"
    "},h.prototype.del=function(c){return""+c+""},h.prototype.link=function(c,g,k){if(c=oe(this.options.sanitize,this.options.baseUrl,c),c===null)return k;var S='
    ",S},h.prototype.image=function(c,g,k){if(c=oe(this.options.sanitize,this.options.baseUrl,c),c===null)return k;var S=''+k+'":">",S},h.prototype.text=function(c){return c};function d(){}d.prototype.strong=d.prototype.em=d.prototype.codespan=d.prototype.del=d.prototype.text=function(c){return c},d.prototype.link=d.prototype.image=function(c,g,k){return""+k},d.prototype.br=function(){return""};function p(c){this.tokens=[],this.token=null,this.options=c||Y.defaults,this.options.renderer=this.options.renderer||new h,this.renderer=this.options.renderer,this.renderer.options=this.options,this.slugger=new b}p.parse=function(c,g){var k=new p(g);return k.parse(c)},p.prototype.parse=function(c){this.inline=new s(c.links,this.options),this.inlineText=new s(c.links,R({},this.options,{renderer:new d})),this.tokens=c.reverse();for(var g="";this.next();)g+=this.tok();return g},p.prototype.next=function(){return this.token=this.tokens.pop(),this.token},p.prototype.peek=function(){return this.tokens[this.tokens.length-1]||0},p.prototype.parseText=function(){for(var c=this.token.text;this.peek().type==="text";)c+=` +`+this.next().text;return this.inline.output(c)},p.prototype.tok=function(){switch(this.token.type){case"space":return"";case"hr":return this.renderer.hr();case"heading":return this.renderer.heading(this.inline.output(this.token.text),this.token.depth,E(this.inlineText.output(this.token.text)),this.slugger);case"code":return this.renderer.code(this.token.text,this.token.lang,this.token.escaped);case"table":{var c="",g="",k,S,N,w;for(N="",k=0;k?@[\]^`{|}~]/g,"").replace(/\s/g,"-");if(this.seen.hasOwnProperty(g)){var k=g;do this.seen[k]++,g=k+"-"+this.seen[k];while(this.seen.hasOwnProperty(g))}return this.seen[g]=0,g};function T(c,g){if(g){if(T.escapeTest.test(c))return c.replace(T.escapeReplace,function(k){return T.replacements[k]})}else if(T.escapeTestNoEncode.test(c))return c.replace(T.escapeReplaceNoEncode,function(k){return T.replacements[k]});return c}T.escapeTest=/[&<>"']/,T.escapeReplace=/[&<>"']/g,T.replacements={"&":"&","<":"<",">":">",'"':""","'":"'"},T.escapeTestNoEncode=/[<>"']|&(?!#?\w+;)/,T.escapeReplaceNoEncode=/[<>"']|&(?!#?\w+;)/g;function E(c){return c.replace(/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig,function(g,k){return k=k.toLowerCase(),k==="colon"?":":k.charAt(0)==="#"?k.charAt(1)==="x"?String.fromCharCode(parseInt(k.substring(2),16)):String.fromCharCode(+k.substring(1)):""})}function I(c,g){return c=c.source||c,g=g||"",{replace:function(k,S){return S=S.source||S,S=S.replace(/(^|[^\[])\^/g,"$1"),c=c.replace(k,S),this},getRegex:function(){return new RegExp(c,g)}}}function oe(c,g,k){if(c){try{var S=decodeURIComponent(E(k)).replace(/[^\w:]/g,"").toLowerCase()}catch{return null}if(S.indexOf("javascript:")===0||S.indexOf("vbscript:")===0||S.indexOf("data:")===0)return null}g&&!ne.test(k)&&(k=ve(g,k));try{k=encodeURI(k).replace(/%25/g,"%")}catch{return null}return k}function ve(c,g){return Me[" "+c]||(/^[^:]+:\/*[^/]*$/.test(c)?Me[" "+c]=c+"/":Me[" "+c]=se(c,"/",!0)),c=Me[" "+c],g.slice(0,2)==="//"?c.replace(/:[\s\S]*/,":")+g:g.charAt(0)==="/"?c.replace(/(:\/*[^/]*)[\s\S]*/,"$1")+g:c+g}var Me={},ne=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;function H(){}H.exec=H;function R(c){for(var g=1,k,S;g=0&&L[_e]==="\\";)Z=!Z;return Z?"|":" |"}),S=k.split(/ \|/),N=0;if(S.length>g)S.splice(g);else for(;S.lengthAn error occurred:

    "+T(Z.message+"",!0)+"
    ";throw Z}}Y.options=Y.setOptions=function(c){return R(Y.defaults,c),Y},Y.getDefaults=function(){return{baseUrl:null,breaks:!1,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:new h,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,xhtml:!1}},Y.defaults=Y.getDefaults(),Y.Parser=p,Y.parser=p.parse,Y.Renderer=h,Y.TextRenderer=d,Y.Lexer=i,Y.lexer=i.lex,Y.InlineLexer=s,Y.inlineLexer=s.output,Y.Slugger=b,Y.parse=Y,typeof bp!="undefined"&&typeof Sp=="object"?bp.exports=Y:typeof define=="function"&&define.amd?define(function(){return Y}):e.marked=Y})(Sp||(typeof window!="undefined"?window:global))});var wl=yt((Np,Pp)=>{(function(e,n){typeof Np=="object"&&typeof Pp!="undefined"?Pp.exports=n():typeof define=="function"&&define.amd?define(n):(e=e||self,e.CodeMirror=n())})(Np,function(){"use strict";var e=navigator.userAgent,n=navigator.platform,i=/gecko\/\d/i.test(e),u=/MSIE \d/.test(e),s=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(e),h=/Edge\/(\d+)/.exec(e),d=u||s||h,p=d&&(u?document.documentMode||6:+(h||s)[1]),b=!h&&/WebKit\//.test(e),T=b&&/Qt\/\d+\.\d+/.test(e),E=!h&&/Chrome\//.test(e),I=/Opera\//.test(e),oe=/Apple Computer/.test(navigator.vendor),ve=/Mac OS X 1\d\D([8-9]|\d\d)\D/.test(e),Me=/PhantomJS/.test(e),ne=oe&&(/Mobile\/\w+/.test(e)||navigator.maxTouchPoints>2),H=/Android/.test(e),R=ne||H||/webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(e),j=ne||/Mac/.test(n),se=/\bCrOS\b/.test(e),we=/win/i.test(n),Oe=I&&e.match(/Version\/(\d*\.\d*)/);Oe&&(Oe=Number(Oe[1])),Oe&&Oe>=15&&(I=!1,b=!0);var Y=j&&(T||I&&(Oe==null||Oe<12.11)),c=i||d&&p>=9;function g(t){return new RegExp("(^|\\s)"+t+"(?:$|\\s)\\s*")}var k=function(t,r){var a=t.className,o=g(r).exec(a);if(o){var l=a.slice(o.index+o[0].length);t.className=a.slice(0,o.index)+(l?o[1]+l:"")}};function S(t){for(var r=t.childNodes.length;r>0;--r)t.removeChild(t.firstChild);return t}function N(t,r){return S(t).appendChild(r)}function w(t,r,a,o){var l=document.createElement(t);if(a&&(l.className=a),o&&(l.style.cssText=o),typeof r=="string")l.appendChild(document.createTextNode(r));else if(r)for(var f=0;f=r)return v+(r-f);v+=y-f,v+=a-v%a,f=y+1}}var de=function(){this.id=null,this.f=null,this.time=0,this.handler=Ie(this.onTimeout,this)};de.prototype.onTimeout=function(t){t.id=0,t.time<=+new Date?t.f():setTimeout(t.handler,t.time-+new Date)},de.prototype.set=function(t,r){this.f=r;var a=+new Date+t;(!this.id||a=r)return o+Math.min(v,r-l);if(l+=f-o,l+=a-l%a,o=f+1,l>=r)return o}}var Q=[""];function re(t){for(;Q.length<=t;)Q.push(ce(Q)+" ");return Q[t]}function ce(t){return t[t.length-1]}function Pe(t,r){for(var a=[],o=0;o"\x80"&&(t.toUpperCase()!=t.toLowerCase()||Gt.test(t))}function Mt(t,r){return r?r.source.indexOf("\\w")>-1&&Lt(t)?!0:r.test(t):Lt(t)}function Bt(t){for(var r in t)if(t.hasOwnProperty(r)&&t[r])return!1;return!0}var zt=/[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/;function Xt(t){return t.charCodeAt(0)>=768&&zt.test(t)}function sn(t,r,a){for(;(a<0?r>0:ra?-1:1;;){if(r==a)return r;var l=(r+a)/2,f=o<0?Math.ceil(l):Math.floor(l);if(f==r)return t(f)?r:a;t(f)?a=f:r=f+o}}function an(t,r,a,o){if(!t)return o(r,a,"ltr",0);for(var l=!1,f=0;fr||r==a&&v.to==r)&&(o(Math.max(v.from,r),Math.min(v.to,a),v.level==1?"rtl":"ltr",f),l=!0)}l||o(r,a,"ltr")}var A=null;function V(t,r,a){var o;A=null;for(var l=0;lr)return l;f.to==r&&(f.from!=f.to&&a=="before"?o=l:A=l),f.from==r&&(f.from!=f.to&&a!="before"?o=l:A=l)}return o??A}var Le=function(){var t="bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN",r="nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111";function a(C){return C<=247?t.charAt(C):1424<=C&&C<=1524?"R":1536<=C&&C<=1785?r.charAt(C-1536):1774<=C&&C<=2220?"r":8192<=C&&C<=8203?"w":C==8204?"b":"L"}var o=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,l=/[stwN]/,f=/[LRr]/,v=/[Lb1n]/,y=/[1n]/;function _(C,K,ee){this.level=C,this.from=K,this.to=ee}return function(C,K){var ee=K=="ltr"?"L":"R";if(C.length==0||K=="ltr"&&!o.test(C))return!1;for(var be=C.length,ke=[],ze=0;ze-1&&(o[r]=l.slice(0,f).concat(l.slice(f+1)))}}}function Be(t,r){var a=te(t,r);if(!!a.length)for(var o=Array.prototype.slice.call(arguments,2),l=0;l0}function mt(t){t.prototype.on=function(r,a){M(this,r,a)},t.prototype.off=function(r,a){pe(this,r,a)}}function St(t){t.preventDefault?t.preventDefault():t.returnValue=!1}function At(t){t.stopPropagation?t.stopPropagation():t.cancelBubble=!0}function en(t){return t.defaultPrevented!=null?t.defaultPrevented:t.returnValue==!1}function tn(t){St(t),At(t)}function Yt(t){return t.target||t.srcElement}function pn(t){var r=t.which;return r==null&&(t.button&1?r=1:t.button&2?r=3:t.button&4&&(r=2)),j&&t.ctrlKey&&r==1&&(r=3),r}var X=function(){if(d&&p<9)return!1;var t=w("div");return"draggable"in t||"dragDrop"in t}(),Ee;function z(t){if(Ee==null){var r=w("span","\u200B");N(t,w("span",[r,document.createTextNode("x")])),t.firstChild.offsetHeight!=0&&(Ee=r.offsetWidth<=1&&r.offsetHeight>2&&!(d&&p<8))}var a=Ee?w("span","\u200B"):w("span","\xA0",null,"display: inline-block; width: 1px; margin-right: -1px");return a.setAttribute("cm-text",""),a}var $;function P(t){if($!=null)return $;var r=N(t,document.createTextNode("A\u062EA")),a=L(r,0,1).getBoundingClientRect(),o=L(r,1,2).getBoundingClientRect();return S(t),!a||a.left==a.right?!1:$=o.right-a.right<3}var O=` b`.split(/\n/).length!=3?function(t){for(var r=0,a=[],o=t.length;r<=o;){var l=t.indexOf(` -`,r);l==-1&&(l=t.length);var f=t.slice(r,t.charAt(l-1)=="\r"?l-1:l),p=f.indexOf("\r");p!=-1?(a.push(f.slice(0,p)),r+=p+1):(a.push(f),r=l+1)}return a}:function(t){return t.split(/\r\n?|\n/)},Fe=window.getSelection?function(t){try{return t.selectionStart!=t.selectionEnd}catch{return!1}}:function(t){var r;try{r=t.ownerDocument.selection.createRange()}catch{}return!r||r.parentElement()!=t?!1:r.compareEndPoints("StartToEnd",r)!=0},ze=function(){var t=m("div");return"oncopy"in t?!0:(t.setAttribute("oncopy","return;"),typeof t.oncopy=="function")}(),Ge=null;function $e(t){if(Ge!=null)return Ge;var r=X(t,m("span","x")),a=r.getBoundingClientRect(),o=W(r,0,1).getBoundingClientRect();return Ge=Math.abs(a.left-o.left)>1}var et={},dt={};function It(t,r){arguments.length>2&&(r.dependencies=Array.prototype.slice.call(arguments,2)),et[t]=r}function Pt(t,r){dt[t]=r}function St(t){if(typeof t=="string"&&dt.hasOwnProperty(t))t=dt[t];else if(t&&typeof t.name=="string"&&dt.hasOwnProperty(t.name)){var r=dt[t.name];typeof r=="string"&&(r={name:r}),t=Nt(r,t),t.name=r.name}else{if(typeof t=="string"&&/^[\w\-]+\/[\w\-]+\+xml$/.test(t))return St("application/xml");if(typeof t=="string"&&/^[\w\-]+\/[\w\-]+\+json$/.test(t))return St("application/json")}return typeof t=="string"?{name:t}:t||{name:"null"}}function sn(t,r){r=St(r);var a=et[r.name];if(!a)return sn(t,"text/plain");var o=a(t,r);if(Tn.hasOwnProperty(r.name)){var l=Tn[r.name];for(var f in l)!l.hasOwnProperty(f)||(o.hasOwnProperty(f)&&(o["_"+f]=o[f]),o[f]=l[f])}if(o.name=r.name,r.helperType&&(o.helperType=r.helperType),r.modeProps)for(var p in r.modeProps)o[p]=r.modeProps[p];return o}var Tn={};function Pn(t,r){var a=Tn.hasOwnProperty(t)?Tn[t]:Tn[t]={};_e(r,a)}function gn(t,r){if(r===!0)return r;if(t.copyState)return t.copyState(r);var a={};for(var o in r){var l=r[o];l instanceof Array&&(l=l.concat([])),a[o]=l}return a}function hn(t,r){for(var a;t.innerMode&&(a=t.innerMode(r),!(!a||a.mode==t));)r=a.state,t=a.mode;return a||{mode:t,state:r}}function Mt(t,r,a){return t.startState?t.startState(r,a):!0}var Lt=function(t,r,a){this.pos=this.start=0,this.string=t,this.tabSize=r||8,this.lastColumnPos=this.lastColumnValue=0,this.lineStart=0,this.lineOracle=a};Lt.prototype.eol=function(){return this.pos>=this.string.length},Lt.prototype.sol=function(){return this.pos==this.lineStart},Lt.prototype.peek=function(){return this.string.charAt(this.pos)||void 0},Lt.prototype.next=function(){if(this.posr},Lt.prototype.eatSpace=function(){for(var t=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>t},Lt.prototype.skipToEnd=function(){this.pos=this.string.length},Lt.prototype.skipTo=function(t){var r=this.string.indexOf(t,this.pos);if(r>-1)return this.pos=r,!0},Lt.prototype.backUp=function(t){this.pos-=t},Lt.prototype.column=function(){return this.lastColumnPos0?null:(f&&r!==!1&&(this.pos+=f[0].length),f)}},Lt.prototype.current=function(){return this.string.slice(this.start,this.pos)},Lt.prototype.hideFirstChars=function(t,r){this.lineStart+=t;try{return r()}finally{this.lineStart-=t}},Lt.prototype.lookAhead=function(t){var r=this.lineOracle;return r&&r.lookAhead(t)},Lt.prototype.baseToken=function(){var t=this.lineOracle;return t&&t.baseToken(this.pos)};function ft(t,r){if(r-=t.first,r<0||r>=t.size)throw new Error("There is no line "+(r+t.first)+" in the document.");for(var a=t;!a.lines;)for(var o=0;;++o){var l=a.children[o],f=l.chunkSize();if(r=t.first&&ra?K(a,ft(t,a).text.length):Xr(r,ft(t,r.line).text.length)}function Xr(t,r){var a=t.ch;return a==null||a>r?K(t.line,r):a<0?K(t.line,0):t}function ki(t,r){for(var a=[],o=0;othis.maxLookAhead&&(this.maxLookAhead=t),r},tr.prototype.baseToken=function(t){if(!this.baseTokens)return null;for(;this.baseTokens[this.baseTokenPos]<=t;)this.baseTokenPos+=2;var r=this.baseTokens[this.baseTokenPos+1];return{type:r&&r.replace(/( |^)overlay .*/,""),size:this.baseTokens[this.baseTokenPos]-t}},tr.prototype.nextLine=function(){this.line++,this.maxLookAhead>0&&this.maxLookAhead--},tr.fromSaved=function(t,r,a){return r instanceof Kr?new tr(t,gn(t.mode,r.state),a,r.lookAhead):new tr(t,gn(t.mode,r),a)},tr.prototype.save=function(t){var r=t!==!1?gn(this.doc.mode,this.state):this.state;return this.maxLookAhead>0?new Kr(r,this.maxLookAhead):r};function w(t,r,a,o){var l=[t.state.modeGen],f={};ot(t,r.text,t.doc.mode,a,function(C,$){return l.push(C,$)},f,o);for(var p=a.state,y=function(C){a.baseTokens=l;var $=t.state.overlays[C],J=1,Se=0;a.state=!0,ot(t,r.text,$.mode,a,function(we,je){for(var Ve=J;Sewe&&l.splice(J,1,we,l[J+1],tt),J+=2,Se=Math.min(we,tt)}if(!!je)if($.opaque)l.splice(Ve,J-Ve,we,"overlay "+je),J=Ve+2;else for(;Vet.options.maxHighlightLength&&gn(t.doc.mode,o.state),f=w(t,r,o);l&&(o.state=l),r.stateAfter=o.save(!l),r.styles=f.styles,f.classes?r.styleClasses=f.classes:r.styleClasses&&(r.styleClasses=null),a===t.doc.highlightFrontier&&(t.doc.modeFrontier=Math.max(t.doc.modeFrontier,++t.doc.highlightFrontier))}return r.styles}function U(t,r,a){var o=t.doc,l=t.display;if(!o.mode.startState)return new tr(o,!0,r);var f=ut(t,r,a),p=f>o.first&&ft(o,f-1).stateAfter,y=p?tr.fromSaved(o,p,f):new tr(o,Mt(o.mode),f);return o.iter(f,r,function(_){ae(t,_.text,y);var C=y.line;_.stateAfter=C==r-1||C%5==0||C>=l.viewFrom&&Cr.start)return f}throw new Error("Mode "+t.name+" failed to advance stream.")}var Ye=function(t,r,a){this.start=t.start,this.end=t.pos,this.string=t.current(),this.type=r||null,this.state=a};function ye(t,r,a,o){var l=t.doc,f=l.mode,p;r=gt(l,r);var y=ft(l,r.line),_=U(t,r.line,a),C=new Lt(y.text,t.options.tabSize,_),$;for(o&&($=[]);(o||C.post.options.maxHighlightLength?(y=!1,p&&ae(t,r,o,$.pos),$.pos=r.length,J=null):J=qe(ue(a,$,o.state,Se),f),Se){var we=Se[0].name;we&&(J="m-"+(J?we+" "+J:we))}if(!y||C!=J){for(;_<$.start;)_=Math.min($.start,_+5e3),l(_,C);C=J}$.start=$.pos}for(;_<$.pos;){var je=Math.min($.pos,_+5e3);l(je,C),_=je}}function ut(t,r,a){for(var o,l,f=t.doc,p=a?-1:r-(t.doc.mode.innerMode?1e3:100),y=r;y>p;--y){if(y<=f.first)return f.first;var _=ft(f,y-1),C=_.stateAfter;if(C&&(!a||y+(C instanceof Kr?C.lookAhead:0)<=f.modeFrontier))return y;var $=Re(_.text,null,t.options.tabSize);(l==null||o>$)&&(l=y-1,o=$)}return l}function wt(t,r){if(t.modeFrontier=Math.min(t.modeFrontier,r),!(t.highlightFrontiera;o--){var l=ft(t,o).stateAfter;if(l&&(!(l instanceof Kr)||o+l.lookAhead=r:f.to>r);(o||(o=[])).push(new Vt(p,f.from,_?null:f.to))}}return o}function Sr(t,r,a){var o;if(t)for(var l=0;l=r:f.to>r);if(y||f.from==r&&p.type=="bookmark"&&(!a||f.marker.insertLeft)){var _=f.from==null||(p.inclusiveLeft?f.from<=r:f.from0&&y)for(var mt=0;mt0)){var $=[_,1],J=pe(C.from,y.from),Se=pe(C.to,y.to);(J<0||!p.inclusiveLeft&&!J)&&$.push({from:C.from,to:y.from}),(Se>0||!p.inclusiveRight&&!Se)&&$.push({from:y.to,to:C.to}),l.splice.apply(l,$),_+=$.length-3}}return l}function hr(t){var r=t.markedSpans;if(!!r){for(var a=0;ar)&&(!o||Zt(o,f.marker)<0)&&(o=f.marker)}return o}function xo(t,r,a,o,l){var f=ft(t,r),p=Wt&&f.markedSpans;if(p)for(var y=0;y=0&&J<=0||$<=0&&J>=0)&&($<=0&&(_.marker.inclusiveRight&&l.inclusiveLeft?pe(C.to,a)>=0:pe(C.to,a)>0)||$>=0&&(_.marker.inclusiveRight&&l.inclusiveLeft?pe(C.from,o)<=0:pe(C.from,o)<0)))return!0}}}function rr(t){for(var r;r=fi(t);)t=r.find(-1,!0).line;return t}function ta(t){for(var r;r=Zr(t);)t=r.find(1,!0).line;return t}function na(t){for(var r,a;r=Zr(t);)t=r.find(1,!0).line,(a||(a=[])).push(t);return a}function _o(t,r){var a=ft(t,r),o=rr(a);return a==o?r:He(o)}function ra(t,r){if(r>t.lastLine())return r;var a=ft(t,r),o;if(!Gn(t,a))return r;for(;o=Zr(a);)a=o.find(1,!0).line;return He(a)+1}function Gn(t,r){var a=Wt&&r.markedSpans;if(a){for(var o=void 0,l=0;lr.maxLineLength&&(r.maxLineLength=l,r.maxLine=o)})}var Ti=function(t,r,a){this.text=t,br(this,r),this.height=a?a(this):1};Ti.prototype.lineNo=function(){return He(this)},zt(Ti);function kl(t,r,a,o){t.text=r,t.stateAfter&&(t.stateAfter=null),t.styles&&(t.styles=null),t.order!=null&&(t.order=null),hr(t),br(t,a);var l=o?o(t):1;l!=t.height&&le(t,l)}function a_(t){t.parent=null,hr(t)}var u_={},l_={};function Jp(t,r){if(!t||/^\s*$/.test(t))return null;var a=r.addModeClass?l_:u_;return a[t]||(a[t]=t.replace(/\S+/g,"cm-$&"))}function ev(t,r){var a=A("span",null,null,x?"padding-right: .1px":null),o={pre:A("pre",[a],"CodeMirror-line"),content:a,col:0,pos:0,cm:t,trailingSpace:!1,splitSpaces:t.getOption("lineWrapping")};r.measure={};for(var l=0;l<=(r.rest?r.rest.length:0);l++){var f=l?r.rest[l-1]:r.line,p=void 0;o.pos=0,o.addToken=f_,ce(t.display.measure)&&(p=Z(f,t.doc.direction))&&(o.addToken=h_(o.addToken,p)),o.map=[];var y=r!=t.display.externalMeasured&&He(f);d_(f,o,z(t,f,y)),f.styleClasses&&(f.styleClasses.bgClass&&(o.bgClass=ne(f.styleClasses.bgClass,o.bgClass||"")),f.styleClasses.textClass&&(o.textClass=ne(f.styleClasses.textClass,o.textClass||""))),o.map.length==0&&o.map.push(0,0,o.content.appendChild(L(t.display.measure))),l==0?(r.measure.map=o.map,r.measure.cache={}):((r.measure.maps||(r.measure.maps=[])).push(o.map),(r.measure.caches||(r.measure.caches=[])).push({}))}if(x){var _=o.content.lastChild;(/\bcm-tab\b/.test(_.className)||_.querySelector&&_.querySelector(".cm-tab"))&&(o.content.className="cm-tab-wrap-hack")}return at(t,"renderLine",t,r.line,o.pre),o.pre.className&&(o.textClass=ne(o.pre.className,o.textClass||"")),o}function s_(t){var r=m("span","\u2022","cm-invalidchar");return r.title="\\u"+t.charCodeAt(0).toString(16),r.setAttribute("aria-label",r.title),r}function f_(t,r,a,o,l,f,p){if(!!r){var y=t.splitSpaces?c_(r,t.trailingSpace):r,_=t.cm.state.specialChars,C=!1,$;if(!_.test(r))t.col+=r.length,$=document.createTextNode(y),t.map.push(t.pos,t.pos+r.length,$),d&&v<9&&(C=!0),t.pos+=r.length;else{$=document.createDocumentFragment();for(var J=0;;){_.lastIndex=J;var Se=_.exec(r),we=Se?Se.index-J:r.length-J;if(we){var je=document.createTextNode(y.slice(J,J+we));d&&v<9?$.appendChild(m("span",[je])):$.appendChild(je),t.map.push(t.pos,t.pos+we,je),t.col+=we,t.pos+=we}if(!Se)break;J+=we+1;var Ve=void 0;if(Se[0]==" "){var tt=t.cm.options.tabSize,lt=tt-t.col%tt;Ve=$.appendChild(m("span",it(lt),"cm-tab")),Ve.setAttribute("role","presentation"),Ve.setAttribute("cm-text"," "),t.col+=lt}else Se[0]=="\r"||Se[0]==` -`?(Ve=$.appendChild(m("span",Se[0]=="\r"?"\u240D":"\u2424","cm-invalidchar")),Ve.setAttribute("cm-text",Se[0]),t.col+=1):(Ve=t.cm.options.specialCharPlaceholder(Se[0]),Ve.setAttribute("cm-text",Se[0]),d&&v<9?$.appendChild(m("span",[Ve])):$.appendChild(Ve),t.col+=1);t.map.push(t.pos,t.pos+1,Ve),t.pos++}}if(t.trailingSpace=y.charCodeAt(r.length-1)==32,a||o||l||C||f||p){var pt=a||"";o&&(pt+=o),l&&(pt+=l);var st=m("span",[$],pt,f);if(p)for(var mt in p)p.hasOwnProperty(mt)&&mt!="style"&&mt!="class"&&st.setAttribute(mt,p[mt]);return t.content.appendChild(st)}t.content.appendChild($)}}function c_(t,r){if(t.length>1&&!/ /.test(t))return t;for(var a=r,o="",l=0;lC&&J.from<=C));Se++);if(J.to>=$)return t(a,o,l,f,p,y,_);t(a,o.slice(0,J.to-C),l,f,null,y,_),f=null,o=o.slice(J.to-C),C=J.to}}}function tv(t,r,a,o){var l=!o&&a.widgetNode;l&&t.map.push(t.pos,t.pos+r,l),!o&&t.cm.display.input.needsContentAttribute&&(l||(l=t.content.appendChild(document.createElement("span"))),l.setAttribute("cm-marker",a.id)),l&&(t.cm.display.input.setUneditable(l),t.content.appendChild(l)),t.pos+=r,t.trailingSpace=!1}function d_(t,r,a){var o=t.markedSpans,l=t.text,f=0;if(!o){for(var p=1;p_||Ht.collapsed&&_t.to==_&&_t.from==_)){if(_t.to!=null&&_t.to!=_&&we>_t.to&&(we=_t.to,Ve=""),Ht.className&&(je+=" "+Ht.className),Ht.css&&(Se=(Se?Se+";":"")+Ht.css),Ht.startStyle&&_t.from==_&&(tt+=" "+Ht.startStyle),Ht.endStyle&&_t.to==we&&(mt||(mt=[])).push(Ht.endStyle,_t.to),Ht.title&&((pt||(pt={})).title=Ht.title),Ht.attributes)for(var fn in Ht.attributes)(pt||(pt={}))[fn]=Ht.attributes[fn];Ht.collapsed&&(!lt||Zt(lt.marker,Ht)<0)&&(lt=_t)}else _t.from>_&&we>_t.from&&(we=_t.from)}if(mt)for(var Un=0;Un=y)break;for(var Mr=Math.min(y,we);;){if($){var vr=_+$.length;if(!lt){var On=vr>Mr?$.slice(0,Mr-_):$;r.addToken(r,On,J?J+je:je,tt,_+On.length==we?Ve:"",Se,pt)}if(vr>=Mr){$=$.slice(Mr-_),_=Mr;break}_=vr,tt=""}$=l.slice(f,f=a[C++]),J=Jp(a[C++],r.cm.options)}}}function nv(t,r,a){this.line=r,this.rest=na(r),this.size=this.rest?He(Je(this.rest))-a+1:1,this.node=this.text=null,this.hidden=Gn(t,r)}function Tl(t,r,a){for(var o=[],l,f=r;f2&&f.push((_.bottom+C.top)/2-a.top)}}f.push(a.bottom-a.top)}}function sv(t,r,a){if(t.line==r)return{map:t.measure.map,cache:t.measure.cache};if(t.rest){for(var o=0;oa)return{map:t.measure.maps[l],cache:t.measure.caches[l],before:!0}}}function S_(t,r){r=rr(r);var a=He(r),o=t.display.externalMeasured=new nv(t.doc,r,a);o.lineN=a;var l=o.built=ev(t,o);return o.text=l.pre,X(t.display.lineMeasure,l.pre),o}function fv(t,r,a,o){return hi(t,oa(t,r),a,o)}function oc(t,r){if(r>=t.display.viewFrom&&r=a.lineN&&rr)&&(f=_-y,l=f-1,r>=_&&(p="right")),l!=null){if(o=t[C+2],y==_&&a==(o.insertLeft?"left":"right")&&(p=a),a=="left"&&l==0)for(;C&&t[C-2]==t[C-3]&&t[C-1].insertLeft;)o=t[(C-=3)+2],p="left";if(a=="right"&&l==_-y)for(;C=0&&(a=t[l]).left==a.right;l--);return a}function C_(t,r,a,o){var l=hv(r.map,a,o),f=l.node,p=l.start,y=l.end,_=l.collapse,C;if(f.nodeType==3){for(var $=0;$<4;$++){for(;p&&pn(r.line.text.charAt(l.coverStart+p));)--p;for(;l.coverStart+y0&&(_=o="right");var J;t.options.lineWrapping&&(J=f.getClientRects()).length>1?C=J[o=="right"?J.length-1:0]:C=f.getBoundingClientRect()}if(d&&v<9&&!p&&(!C||!C.left&&!C.right)){var Se=f.parentNode.getClientRects()[0];Se?C={left:Se.left,right:Se.left+ua(t.display),top:Se.top,bottom:Se.bottom}:C=cv}for(var we=C.top-r.rect.top,je=C.bottom-r.rect.top,Ve=(we+je)/2,tt=r.view.measure.heights,lt=0;lt=o.text.length?(_=o.text.length,C="before"):_<=0&&(_=0,C="after"),!y)return p(C=="before"?_-1:_,C=="before");function $(je,Ve,tt){var lt=y[Ve],pt=lt.level==1;return p(tt?je-1:je,pt!=tt)}var J=Be(y,_,C),Se=Ke,we=$(_,J,C=="before");return Se!=null&&(we.other=$(_,Se,C!="before")),we}function yv(t,r){var a=0;r=gt(t.doc,r),t.options.lineWrapping||(a=ua(t.display)*r.ch);var o=ft(t.doc,r.line),l=Dr(o)+Sl(t.display);return{left:a,right:a,top:l,bottom:l+o.height}}function uc(t,r,a,o,l){var f=K(t,r,a);return f.xRel=l,o&&(f.outside=o),f}function lc(t,r,a){var o=t.doc;if(a+=t.display.viewOffset,a<0)return uc(o.first,0,null,-1,-1);var l=Qe(o,a),f=o.first+o.size-1;if(l>f)return uc(o.first+o.size-1,ft(o,f).text.length,null,1,1);r<0&&(r=0);for(var p=ft(o,l);;){var y=E_(t,p,l,r,a),_=Hi(p,y.ch+(y.xRel>0||y.outside>0?1:0));if(!_)return y;var C=_.find(1);if(C.line==l)return C;p=ft(o,l=C.line)}}function wv(t,r,a,o){o-=ac(r);var l=r.text.length,f=B(function(p){return hi(t,a,p-1).bottom<=o},l,0);return l=B(function(p){return hi(t,a,p).top>o},f,l),{begin:f,end:l}}function xv(t,r,a,o){a||(a=oa(t,r));var l=bl(t,r,hi(t,a,o),"line").top;return wv(t,r,a,l)}function sc(t,r,a,o){return t.bottom<=a?!1:t.top>a?!0:(o?t.left:t.right)>r}function E_(t,r,a,o,l){l-=Dr(r);var f=oa(t,r),p=ac(r),y=0,_=r.text.length,C=!0,$=Z(r,t.doc.direction);if($){var J=(t.options.lineWrapping?P_:N_)(t,r,a,f,$,o,l);C=J.level!=1,y=C?J.from:J.to-1,_=C?J.to:J.from-1}var Se=null,we=null,je=B(function(Tt){var _t=hi(t,f,Tt);return _t.top+=p,_t.bottom+=p,sc(_t,o,l,!1)?(_t.top<=l&&_t.left<=o&&(Se=Tt,we=_t),!0):!1},y,_),Ve,tt,lt=!1;if(we){var pt=o-we.left=mt.bottom?1:0}return je=R(r.text,je,1),uc(a,je,tt,lt,o-Ve)}function N_(t,r,a,o,l,f,p){var y=B(function(J){var Se=l[J],we=Se.level!=1;return sc(Jr(t,K(a,we?Se.to:Se.from,we?"before":"after"),"line",r,o),f,p,!0)},0,l.length-1),_=l[y];if(y>0){var C=_.level!=1,$=Jr(t,K(a,C?_.from:_.to,C?"after":"before"),"line",r,o);sc($,f,p,!0)&&$.top>p&&(_=l[y-1])}return _}function P_(t,r,a,o,l,f,p){var y=wv(t,r,o,p),_=y.begin,C=y.end;/\s/.test(r.text.charAt(C-1))&&C--;for(var $=null,J=null,Se=0;Se=C||we.to<=_)){var je=we.level!=1,Ve=hi(t,o,je?Math.min(C,we.to)-1:Math.max(_,we.from)).right,tt=Vett)&&($=we,J=tt)}}return $||($=l[l.length-1]),$.from<_&&($={from:_,to:$.to,level:$.level}),$.to>C&&($={from:$.from,to:C,level:$.level}),$}var bo;function aa(t){if(t.cachedTextHeight!=null)return t.cachedTextHeight;if(bo==null){bo=m("pre",null,"CodeMirror-line-like");for(var r=0;r<49;++r)bo.appendChild(document.createTextNode("x")),bo.appendChild(m("br"));bo.appendChild(document.createTextNode("x"))}X(t.measure,bo);var a=bo.offsetHeight/50;return a>3&&(t.cachedTextHeight=a),S(t.measure),a||1}function ua(t){if(t.cachedCharWidth!=null)return t.cachedCharWidth;var r=m("span","xxxxxxxxxx"),a=m("pre",[r],"CodeMirror-line-like");X(t.measure,a);var o=r.getBoundingClientRect(),l=(o.right-o.left)/10;return l>2&&(t.cachedCharWidth=l),l||10}function fc(t){for(var r=t.display,a={},o={},l=r.gutters.clientLeft,f=r.gutters.firstChild,p=0;f;f=f.nextSibling,++p){var y=t.display.gutterSpecs[p].className;a[y]=f.offsetLeft+f.clientLeft+l,o[y]=f.clientWidth}return{fixedPos:cc(r),gutterTotalWidth:r.gutters.offsetWidth,gutterLeft:a,gutterWidth:o,wrapperWidth:r.wrapper.clientWidth}}function cc(t){return t.scroller.getBoundingClientRect().left-t.sizer.getBoundingClientRect().left}function _v(t){var r=aa(t.display),a=t.options.lineWrapping,o=a&&Math.max(5,t.display.scroller.clientWidth/ua(t.display)-3);return function(l){if(Gn(t.doc,l))return 0;var f=0;if(l.widgets)for(var p=0;p0&&(C=ft(t.doc,_.line).text).length==_.ch){var $=Re(C,C.length,t.options.tabSize)-C.length;_=K(_.line,Math.max(0,Math.round((f-lv(t.display).left)/ua(t.display))-$))}return _}function Mo(t,r){if(r>=t.display.viewTo||(r-=t.display.viewFrom,r<0))return null;for(var a=t.display.view,o=0;or)&&(l.updateLineNumbers=r),t.curOp.viewChanged=!0,r>=l.viewTo)Wt&&_o(t.doc,r)l.viewFrom?Bi(t):(l.viewFrom+=o,l.viewTo+=o);else if(r<=l.viewFrom&&a>=l.viewTo)Bi(t);else if(r<=l.viewFrom){var f=Ml(t,a,a+o,1);f?(l.view=l.view.slice(f.index),l.viewFrom=f.lineN,l.viewTo+=o):Bi(t)}else if(a>=l.viewTo){var p=Ml(t,r,r,-1);p?(l.view=l.view.slice(0,p.index),l.viewTo=p.lineN):Bi(t)}else{var y=Ml(t,r,r,-1),_=Ml(t,a,a+o,1);y&&_?(l.view=l.view.slice(0,y.index).concat(Tl(t,y.lineN,_.lineN)).concat(l.view.slice(_.index)),l.viewTo+=o):Bi(t)}var C=l.externalMeasured;C&&(a=l.lineN&&r=o.viewTo)){var f=o.view[Mo(t,r)];if(f.node!=null){var p=f.changes||(f.changes=[]);Xe(p,a)==-1&&p.push(a)}}}function Bi(t){t.display.viewFrom=t.display.viewTo=t.doc.first,t.display.view=[],t.display.viewOffset=0}function Ml(t,r,a,o){var l=Mo(t,r),f,p=t.display.view;if(!Wt||a==t.doc.first+t.doc.size)return{index:l,lineN:a};for(var y=t.display.viewFrom,_=0;_0){if(l==p.length-1)return null;f=y+p[l].size-r,l++}else f=y-r;r+=f,a+=f}for(;_o(t.doc,a)!=a;){if(l==(o<0?0:p.length-1))return null;a+=o*p[l-(o<0?1:0)].size,l+=o}return{index:l,lineN:a}}function L_(t,r,a){var o=t.display,l=o.view;l.length==0||r>=o.viewTo||a<=o.viewFrom?(o.view=Tl(t,r,a),o.viewFrom=r):(o.viewFrom>r?o.view=Tl(t,r,o.viewFrom).concat(o.view):o.viewFroma&&(o.view=o.view.slice(0,Mo(t,a)))),o.viewTo=a}function kv(t){for(var r=t.display.view,a=0,o=0;o=t.display.viewTo||_.to().line0?p:t.defaultCharWidth())+"px"}if(o.other){var y=a.appendChild(m("div","\xA0","CodeMirror-cursor CodeMirror-secondarycursor"));y.style.display="",y.style.left=o.other.left+"px",y.style.top=o.other.top+"px",y.style.height=(o.other.bottom-o.other.top)*.85+"px"}}function El(t,r){return t.top-r.top||t.left-r.left}function O_(t,r,a){var o=t.display,l=t.doc,f=document.createDocumentFragment(),p=lv(t.display),y=p.left,_=Math.max(o.sizerWidth,So(t)-o.sizer.offsetLeft)-p.right,C=l.direction=="ltr";function $(st,mt,Tt,_t){mt<0&&(mt=0),mt=Math.round(mt),_t=Math.round(_t),f.appendChild(m("div",null,"CodeMirror-selected","position: absolute; left: "+st+`px; - top: `+mt+"px; width: "+(Tt??_-st)+`px; - height: `+(_t-mt)+"px"))}function J(st,mt,Tt){var _t=ft(l,st),Ht=_t.text.length,fn,Un;function xn(On,gr){return Cl(t,K(st,On),"div",_t,gr)}function Mr(On,gr,Vn){var Rn=xv(t,_t,null,On),Dn=gr=="ltr"==(Vn=="after")?"left":"right",Sn=Vn=="after"?Rn.begin:Rn.end-(/\s/.test(_t.text.charAt(Rn.end-1))?2:1);return xn(Sn,Dn)[Dn]}var vr=Z(_t,l.direction);return Ie(vr,mt||0,Tt??Ht,function(On,gr,Vn,Rn){var Dn=Vn=="ltr",Sn=xn(On,Dn?"left":"right"),mr=xn(gr-1,Dn?"right":"left"),xa=mt==null&&On==0,$i=Tt==null&&gr==Ht,Zn=Rn==0,di=!vr||Rn==vr.length-1;if(mr.top-Sn.top<=3){var Bn=(C?xa:$i)&&Zn,Hc=(C?$i:xa)&&di,Mi=Bn?y:(Dn?Sn:mr).left,Oo=Hc?_:(Dn?mr:Sn).right;$(Mi,Sn.top,Oo-Mi,Sn.bottom)}else{var Do,or,_a,Wc;Dn?(Do=C&&xa&&Zn?y:Sn.left,or=C?_:Mr(On,Vn,"before"),_a=C?y:Mr(gr,Vn,"after"),Wc=C&&$i&&di?_:mr.right):(Do=C?Mr(On,Vn,"before"):y,or=!C&&xa&&Zn?_:Sn.right,_a=!C&&$i&&di?y:mr.left,Wc=C?Mr(gr,Vn,"after"):_),$(Do,Sn.top,or-Do,Sn.bottom),Sn.bottom0?r.blinker=setInterval(function(){t.hasFocus()||la(t),r.cursorDiv.style.visibility=(a=!a)?"":"hidden"},t.options.cursorBlinkRate):t.options.cursorBlinkRate<0&&(r.cursorDiv.style.visibility="hidden")}}function Sv(t){t.hasFocus()||(t.display.input.focus(),t.state.focused||gc(t))}function vc(t){t.state.delayingBlurEvent=!0,setTimeout(function(){t.state.delayingBlurEvent&&(t.state.delayingBlurEvent=!1,t.state.focused&&la(t))},100)}function gc(t,r){t.state.delayingBlurEvent&&!t.state.draggingText&&(t.state.delayingBlurEvent=!1),t.options.readOnly!="nocursor"&&(t.state.focused||(at(t,"focus",t,r),t.state.focused=!0,fe(t.display.wrapper,"CodeMirror-focused"),!t.curOp&&t.display.selForContextMenu!=t.doc.sel&&(t.display.input.reset(),x&&setTimeout(function(){return t.display.input.reset(!0)},20)),t.display.input.receivedFocus()),pc(t))}function la(t,r){t.state.delayingBlurEvent||(t.state.focused&&(at(t,"blur",t,r),t.state.focused=!1,E(t.display.wrapper,"CodeMirror-focused")),clearInterval(t.display.blinker),setTimeout(function(){t.state.focused||(t.display.shift=!1)},150))}function Nl(t){for(var r=t.display,a=r.lineDiv.offsetTop,o=Math.max(0,r.scroller.getBoundingClientRect().top),l=r.lineDiv.getBoundingClientRect().top,f=0,p=0;p.005||we<-.005)&&(lt.display.sizerWidth){var Ve=Math.ceil($/ua(t.display));Ve>t.display.maxLineLength&&(t.display.maxLineLength=Ve,t.display.maxLine=y.line,t.display.maxLineChanged=!0)}}}Math.abs(f)>2&&(r.scroller.scrollTop+=f)}function bv(t){if(t.widgets)for(var r=0;r=p&&(f=Qe(r,Dr(ft(r,_))-t.wrapper.clientHeight),p=_)}return{from:f,to:Math.max(p,f+1)}}function D_(t,r){if(!vt(t,"scrollCursorIntoView")){var a=t.display,o=a.sizer.getBoundingClientRect(),l=null,f=a.wrapper.ownerDocument;if(r.top+o.top<0?l=!0:r.bottom+o.top>(f.defaultView.innerHeight||f.documentElement.clientHeight)&&(l=!1),l!=null&&!ie){var p=m("div","\u200B",null,`position: absolute; - top: `+(r.top-a.viewOffset-Sl(t.display))+`px; +`,r);l==-1&&(l=t.length);var f=t.slice(r,t.charAt(l-1)=="\r"?l-1:l),v=f.indexOf("\r");v!=-1?(a.push(f.slice(0,v)),r+=v+1):(a.push(f),r=l+1)}return a}:function(t){return t.split(/\r\n?|\n/)},G=window.getSelection?function(t){try{return t.selectionStart!=t.selectionEnd}catch{return!1}}:function(t){var r;try{r=t.ownerDocument.selection.createRange()}catch{}return!r||r.parentElement()!=t?!1:r.compareEndPoints("StartToEnd",r)!=0},fe=function(){var t=w("div");return"oncopy"in t?!0:(t.setAttribute("oncopy","return;"),typeof t.oncopy=="function")}(),me=null;function Ae(t){if(me!=null)return me;var r=N(t,w("span","x")),a=r.getBoundingClientRect(),o=L(r,0,1).getBoundingClientRect();return me=Math.abs(a.left-o.left)>1}var De={},Ge={};function Ve(t,r){arguments.length>2&&(r.dependencies=Array.prototype.slice.call(arguments,2)),De[t]=r}function Qe(t,r){Ge[t]=r}function ut(t){if(typeof t=="string"&&Ge.hasOwnProperty(t))t=Ge[t];else if(t&&typeof t.name=="string"&&Ge.hasOwnProperty(t.name)){var r=Ge[t.name];typeof r=="string"&&(r={name:r}),t=jt(r,t),t.name=r.name}else{if(typeof t=="string"&&/^[\w\-]+\/[\w\-]+\+xml$/.test(t))return ut("application/xml");if(typeof t=="string"&&/^[\w\-]+\/[\w\-]+\+json$/.test(t))return ut("application/json")}return typeof t=="string"?{name:t}:t||{name:"null"}}function Pt(t,r){r=ut(r);var a=De[r.name];if(!a)return Pt(t,"text/plain");var o=a(t,r);if(Et.hasOwnProperty(r.name)){var l=Et[r.name];for(var f in l)!l.hasOwnProperty(f)||(o.hasOwnProperty(f)&&(o["_"+f]=o[f]),o[f]=l[f])}if(o.name=r.name,r.helperType&&(o.helperType=r.helperType),r.modeProps)for(var v in r.modeProps)o[v]=r.modeProps[v];return o}var Et={};function It(t,r){var a=Et.hasOwnProperty(t)?Et[t]:Et[t]={};he(r,a)}function fn(t,r){if(r===!0)return r;if(t.copyState)return t.copyState(r);var a={};for(var o in r){var l=r[o];l instanceof Array&&(l=l.concat([])),a[o]=l}return a}function _n(t,r){for(var a;t.innerMode&&(a=t.innerMode(r),!(!a||a.mode==t));)r=a.state,t=a.mode;return a||{mode:t,state:r}}function Sn(t,r,a){return t.startState?t.startState(r,a):!0}var Wt=function(t,r,a){this.pos=this.start=0,this.string=t,this.tabSize=r||8,this.lastColumnPos=this.lastColumnValue=0,this.lineStart=0,this.lineOracle=a};Wt.prototype.eol=function(){return this.pos>=this.string.length},Wt.prototype.sol=function(){return this.pos==this.lineStart},Wt.prototype.peek=function(){return this.string.charAt(this.pos)||void 0},Wt.prototype.next=function(){if(this.posr},Wt.prototype.eatSpace=function(){for(var t=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>t},Wt.prototype.skipToEnd=function(){this.pos=this.string.length},Wt.prototype.skipTo=function(t){var r=this.string.indexOf(t,this.pos);if(r>-1)return this.pos=r,!0},Wt.prototype.backUp=function(t){this.pos-=t},Wt.prototype.column=function(){return this.lastColumnPos0?null:(f&&r!==!1&&(this.pos+=f[0].length),f)}},Wt.prototype.current=function(){return this.string.slice(this.start,this.pos)},Wt.prototype.hideFirstChars=function(t,r){this.lineStart+=t;try{return r()}finally{this.lineStart-=t}},Wt.prototype.lookAhead=function(t){var r=this.lineOracle;return r&&r.lookAhead(t)},Wt.prototype.baseToken=function(){var t=this.lineOracle;return t&&t.baseToken(this.pos)};function ft(t,r){if(r-=t.first,r<0||r>=t.size)throw new Error("There is no line "+(r+t.first)+" in the document.");for(var a=t;!a.lines;)for(var o=0;;++o){var l=a.children[o],f=l.chunkSize();if(r=t.first&&ra?W(a,ft(t,a).text.length):Fn(r,ft(t,r.line).text.length)}function Fn(t,r){var a=t.ch;return a==null||a>r?W(t.line,r):a<0?W(t.line,0):t}function Yn(t,r){for(var a=[],o=0;othis.maxLookAhead&&(this.maxLookAhead=t),r},Dn.prototype.baseToken=function(t){if(!this.baseTokens)return null;for(;this.baseTokens[this.baseTokenPos]<=t;)this.baseTokenPos+=2;var r=this.baseTokens[this.baseTokenPos+1];return{type:r&&r.replace(/( |^)overlay .*/,""),size:this.baseTokens[this.baseTokenPos]-t}},Dn.prototype.nextLine=function(){this.line++,this.maxLookAhead>0&&this.maxLookAhead--},Dn.fromSaved=function(t,r,a){return r instanceof cn?new Dn(t,fn(t.mode,r.state),a,r.lookAhead):new Dn(t,fn(t.mode,r),a)},Dn.prototype.save=function(t){var r=t!==!1?fn(this.doc.mode,this.state):this.state;return this.maxLookAhead>0?new cn(r,this.maxLookAhead):r};function ki(t,r,a,o){var l=[t.state.modeGen],f={};Fe(t,r.text,t.doc.mode,a,function(C,K){return l.push(C,K)},f,o);for(var v=a.state,y=function(C){a.baseTokens=l;var K=t.state.overlays[C],ee=1,be=0;a.state=!0,Fe(t,r.text,K.mode,a,function(ke,ze){for(var $e=ee;beke&&l.splice(ee,1,ke,l[ee+1],Ze),ee+=2,be=Math.min(ke,Ze)}if(!!ze)if(K.opaque)l.splice($e,ee-$e,ke,"overlay "+ze),ee=$e+2;else for(;$et.options.maxHighlightLength&&fn(t.doc.mode,o.state),f=ki(t,r,o);l&&(o.state=l),r.stateAfter=o.save(!l),r.styles=f.styles,f.classes?r.styleClasses=f.classes:r.styleClasses&&(r.styleClasses=null),a===t.doc.highlightFrontier&&(t.doc.modeFrontier=Math.max(t.doc.modeFrontier,++t.doc.highlightFrontier))}return r.styles}function Zr(t,r,a){var o=t.doc,l=t.display;if(!o.mode.startState)return new Dn(o,!0,r);var f=xe(t,r,a),v=f>o.first&&ft(o,f-1).stateAfter,y=v?Dn.fromSaved(o,v,f):new Dn(o,Sn(o.mode),f);return o.iter(f,r,function(_){x(t,_.text,y);var C=y.line;_.stateAfter=C==r-1||C%5==0||C>=l.viewFrom&&Cr.start)return f}throw new Error("Mode "+t.name+" failed to advance stream.")}var ae=function(t,r,a){this.start=t.start,this.end=t.pos,this.string=t.current(),this.type=r||null,this.state=a};function Ce(t,r,a,o){var l=t.doc,f=l.mode,v;r=lt(l,r);var y=ft(l,r.line),_=Zr(t,r.line,a),C=new Wt(y.text,t.options.tabSize,_),K;for(o&&(K=[]);(o||C.post.options.maxHighlightLength?(y=!1,v&&x(t,r,o,K.pos),K.pos=r.length,ee=null):ee=le(B(a,K,o.state,be),f),be){var ke=be[0].name;ke&&(ee="m-"+(ee?ke+" "+ee:ke))}if(!y||C!=ee){for(;_v;--y){if(y<=f.first)return f.first;var _=ft(f,y-1),C=_.stateAfter;if(C&&(!a||y+(C instanceof cn?C.lookAhead:0)<=f.modeFrontier))return y;var K=ye(_.text,null,t.options.tabSize);(l==null||o>K)&&(l=y-1,o=K)}return l}function je(t,r){if(t.modeFrontier=Math.min(t.modeFrontier,r),!(t.highlightFrontiera;o--){var l=ft(t,o).stateAfter;if(l&&(!(l instanceof cn)||o+l.lookAhead=r:f.to>r);(o||(o=[])).push(new qt(v,f.from,_?null:f.to))}}return o}function Mn(t,r,a){var o;if(t)for(var l=0;l=r:f.to>r);if(y||f.from==r&&v.type=="bookmark"&&(!a||f.marker.insertLeft)){var _=f.from==null||(v.inclusiveLeft?f.from<=r:f.from0&&y)for(var vt=0;vt0)){var K=[_,1],ee=ie(C.from,y.from),be=ie(C.to,y.to);(ee<0||!v.inclusiveLeft&&!ee)&&K.push({from:C.from,to:y.from}),(be>0||!v.inclusiveRight&&!be)&&K.push({from:y.to,to:C.to}),l.splice.apply(l,K),_+=K.length-3}}return l}function Kn(t){var r=t.markedSpans;if(!!r){for(var a=0;ar)&&(!o||fr(o,f.marker)<0)&&(o=f.marker)}return o}function si(t,r,a,o,l){var f=ft(t,r),v=Je&&f.markedSpans;if(v)for(var y=0;y=0&&ee<=0||K<=0&&ee>=0)&&(K<=0&&(_.marker.inclusiveRight&&l.inclusiveLeft?ie(C.to,a)>=0:ie(C.to,a)>0)||K>=0&&(_.marker.inclusiveRight&&l.inclusiveLeft?ie(C.from,o)<=0:ie(C.from,o)<0)))return!0}}}function Zn(t){for(var r;r=Dt(t);)t=r.find(-1,!0).line;return t}function Hi(t){for(var r;r=Vt(t);)t=r.find(1,!0).line;return t}function ea(t){for(var r,a;r=Vt(t);)t=r.find(1,!0).line,(a||(a=[])).push(t);return a}function Wi(t,r){var a=ft(t,r),o=Zn(a);return a==o?r:Tt(o)}function xo(t,r){if(r>t.lastLine())return r;var a=ft(t,r),o;if(!Ar(t,a))return r;for(;o=Vt(a);)a=o.find(1,!0).line;return Tt(a)+1}function Ar(t,r){var a=Je&&r.markedSpans;if(a){for(var o=void 0,l=0;lr.maxLineLength&&(r.maxLineLength=l,r.maxLine=o)})}var fi=function(t,r,a){this.text=t,Jr(this,r),this.height=a?a(this):1};fi.prototype.lineNo=function(){return Tt(this)},mt(fi);function Za(t,r,a,o){t.text=r,t.stateAfter&&(t.stateAfter=null),t.styles&&(t.styles=null),t.order!=null&&(t.order=null),Kn(t),Jr(t,a);var l=o?o(t):1;l!=t.height&&Qt(t,l)}function Ja(t){t.parent=null,Kn(t)}var kl={},Tl={};function Jp(t,r){if(!t||/^\s*$/.test(t))return null;var a=r.addModeClass?Tl:kl;return a[t]||(a[t]=t.replace(/\S+/g,"cm-$&"))}function ev(t,r){var a=F("span",null,null,b?"padding-right: .1px":null),o={pre:F("pre",[a],"CodeMirror-line"),content:a,col:0,pos:0,cm:t,trailingSpace:!1,splitSpaces:t.getOption("lineWrapping")};r.measure={};for(var l=0;l<=(r.rest?r.rest.length:0);l++){var f=l?r.rest[l-1]:r.line,v=void 0;o.pos=0,o.addToken=l_,P(t.display.measure)&&(v=qe(f,t.doc.direction))&&(o.addToken=f_(o.addToken,v)),o.map=[];var y=r!=t.display.externalMeasured&&Tt(f);c_(f,o,Ti(t,f,y)),f.styleClasses&&(f.styleClasses.bgClass&&(o.bgClass=Te(f.styleClasses.bgClass,o.bgClass||"")),f.styleClasses.textClass&&(o.textClass=Te(f.styleClasses.textClass,o.textClass||""))),o.map.length==0&&o.map.push(0,0,o.content.appendChild(z(t.display.measure))),l==0?(r.measure.map=o.map,r.measure.cache={}):((r.measure.maps||(r.measure.maps=[])).push(o.map),(r.measure.caches||(r.measure.caches=[])).push({}))}if(b){var _=o.content.lastChild;(/\bcm-tab\b/.test(_.className)||_.querySelector&&_.querySelector(".cm-tab"))&&(o.content.className="cm-tab-wrap-hack")}return Be(t,"renderLine",t,r.line,o.pre),o.pre.className&&(o.textClass=Te(o.pre.className,o.textClass||"")),o}function u_(t){var r=w("span","\u2022","cm-invalidchar");return r.title="\\u"+t.charCodeAt(0).toString(16),r.setAttribute("aria-label",r.title),r}function l_(t,r,a,o,l,f,v){if(!!r){var y=t.splitSpaces?s_(r,t.trailingSpace):r,_=t.cm.state.specialChars,C=!1,K;if(!_.test(r))t.col+=r.length,K=document.createTextNode(y),t.map.push(t.pos,t.pos+r.length,K),d&&p<9&&(C=!0),t.pos+=r.length;else{K=document.createDocumentFragment();for(var ee=0;;){_.lastIndex=ee;var be=_.exec(r),ke=be?be.index-ee:r.length-ee;if(ke){var ze=document.createTextNode(y.slice(ee,ee+ke));d&&p<9?K.appendChild(w("span",[ze])):K.appendChild(ze),t.map.push(t.pos,t.pos+ke,ze),t.col+=ke,t.pos+=ke}if(!be)break;ee+=ke+1;var $e=void 0;if(be[0]==" "){var Ze=t.cm.options.tabSize,ot=Ze-t.col%Ze;$e=K.appendChild(w("span",re(ot),"cm-tab")),$e.setAttribute("role","presentation"),$e.setAttribute("cm-text"," "),t.col+=ot}else be[0]=="\r"||be[0]==` +`?($e=K.appendChild(w("span",be[0]=="\r"?"\u240D":"\u2424","cm-invalidchar")),$e.setAttribute("cm-text",be[0]),t.col+=1):($e=t.cm.options.specialCharPlaceholder(be[0]),$e.setAttribute("cm-text",be[0]),d&&p<9?K.appendChild(w("span",[$e])):K.appendChild($e),t.col+=1);t.map.push(t.pos,t.pos+1,$e),t.pos++}}if(t.trailingSpace=y.charCodeAt(r.length-1)==32,a||o||l||C||f||v){var pt=a||"";o&&(pt+=o),l&&(pt+=l);var at=w("span",[K],pt,f);if(v)for(var vt in v)v.hasOwnProperty(vt)&&vt!="style"&&vt!="class"&&at.setAttribute(vt,v[vt]);return t.content.appendChild(at)}t.content.appendChild(K)}}function s_(t,r){if(t.length>1&&!/ /.test(t))return t;for(var a=r,o="",l=0;lC&&ee.from<=C));be++);if(ee.to>=K)return t(a,o,l,f,v,y,_);t(a,o.slice(0,ee.to-C),l,f,null,y,_),f=null,o=o.slice(ee.to-C),C=ee.to}}}function tv(t,r,a,o){var l=!o&&a.widgetNode;l&&t.map.push(t.pos,t.pos+r,l),!o&&t.cm.display.input.needsContentAttribute&&(l||(l=t.content.appendChild(document.createElement("span"))),l.setAttribute("cm-marker",a.id)),l&&(t.cm.display.input.setUneditable(l),t.content.appendChild(l)),t.pos+=r,t.trailingSpace=!1}function c_(t,r,a){var o=t.markedSpans,l=t.text,f=0;if(!o){for(var v=1;v_||Ft.collapsed&&xt.to==_&&xt.from==_)){if(xt.to!=null&&xt.to!=_&&ke>xt.to&&(ke=xt.to,$e=""),Ft.className&&(ze+=" "+Ft.className),Ft.css&&(be=(be?be+";":"")+Ft.css),Ft.startStyle&&xt.from==_&&(Ze+=" "+Ft.startStyle),Ft.endStyle&&xt.to==ke&&(vt||(vt=[])).push(Ft.endStyle,xt.to),Ft.title&&((pt||(pt={})).title=Ft.title),Ft.attributes)for(var hn in Ft.attributes)(pt||(pt={}))[hn]=Ft.attributes[hn];Ft.collapsed&&(!ot||fr(ot.marker,Ft)<0)&&(ot=xt)}else xt.from>_&&ke>xt.from&&(ke=xt.from)}if(vt)for(var Wn=0;Wn=y)break;for(var Cr=Math.min(y,ke);;){if(K){var dr=_+K.length;if(!ot){var Nn=dr>Cr?K.slice(0,Cr-_):K;r.addToken(r,Nn,ee?ee+ze:ze,Ze,_+Nn.length==ke?$e:"",be,pt)}if(dr>=Cr){K=K.slice(Cr-_),_=Cr;break}_=dr,Ze=""}K=l.slice(f,f=a[C++]),ee=Jp(a[C++],r.cm.options)}}}function nv(t,r,a){this.line=r,this.rest=ea(r),this.size=this.rest?Tt(ce(this.rest))-a+1:1,this.node=this.text=null,this.hidden=Ar(t,r)}function Sl(t,r,a){for(var o=[],l,f=r;f2&&f.push((_.bottom+C.top)/2-a.top)}}f.push(a.bottom-a.top)}}function sv(t,r,a){if(t.line==r)return{map:t.measure.map,cache:t.measure.cache};for(var o=0;oa)return{map:t.measure.maps[l],cache:t.measure.caches[l],before:!0}}function k_(t,r){r=Zn(r);var a=Tt(r),o=t.display.externalMeasured=new nv(t.doc,r,a);o.lineN=a;var l=o.built=ev(t,o);return o.text=l.pre,N(t.display.lineMeasure,l.pre),o}function fv(t,r,a,o){return hi(t,na(t,r),a,o)}function ac(t,r){if(r>=t.display.viewFrom&&r=a.lineN&&rr)&&(f=_-y,l=f-1,r>=_&&(v="right")),l!=null){if(o=t[C+2],y==_&&a==(o.insertLeft?"left":"right")&&(v=a),a=="left"&&l==0)for(;C&&t[C-2]==t[C-3]&&t[C-1].insertLeft;)o=t[(C-=3)+2],v="left";if(a=="right"&&l==_-y)for(;C=0&&(a=t[l]).left==a.right;l--);return a}function S_(t,r,a,o){var l=hv(r.map,a,o),f=l.node,v=l.start,y=l.end,_=l.collapse,C;if(f.nodeType==3){for(var K=0;K<4;K++){for(;v&&Xt(r.line.text.charAt(l.coverStart+v));)--v;for(;l.coverStart+y0&&(_=o="right");var ee;t.options.lineWrapping&&(ee=f.getClientRects()).length>1?C=ee[o=="right"?ee.length-1:0]:C=f.getBoundingClientRect()}if(d&&p<9&&!v&&(!C||!C.left&&!C.right)){var be=f.parentNode.getClientRects()[0];be?C={left:be.left,right:be.left+ia(t.display),top:be.top,bottom:be.bottom}:C=cv}for(var ke=C.top-r.rect.top,ze=C.bottom-r.rect.top,$e=(ke+ze)/2,Ze=r.view.measure.heights,ot=0;ot=o.text.length?(_=o.text.length,C="before"):_<=0&&(_=0,C="after"),!y)return v(C=="before"?_-1:_,C=="before");function K(ze,$e,Ze){var ot=y[$e],pt=ot.level==1;return v(Ze?ze-1:ze,pt!=Ze)}var ee=V(y,_,C),be=A,ke=K(_,ee,C=="before");return be!=null&&(ke.other=K(_,be,C!="before")),ke}function yv(t,r){var a=0;r=lt(t.doc,r),t.options.lineWrapping||(a=ia(t.display)*r.ch);var o=ft(t.doc,r.line),l=Ir(o)+bl(t.display);return{left:a,right:a,top:l,bottom:l+o.height}}function sc(t,r,a,o,l){var f=W(t,r,a);return f.xRel=l,o&&(f.outside=o),f}function fc(t,r,a){var o=t.doc;if(a+=t.display.viewOffset,a<0)return sc(o.first,0,null,-1,-1);var l=q(o,a),f=o.first+o.size-1;if(l>f)return sc(o.first+o.size-1,ft(o,f).text.length,null,1,1);r<0&&(r=0);for(var v=ft(o,l);;){var y=C_(t,v,l,r,a),_=Si(v,y.ch+(y.xRel>0||y.outside>0?1:0));if(!_)return y;var C=_.find(1);if(C.line==l)return C;v=ft(o,l=C.line)}}function wv(t,r,a,o){o-=uc(r);var l=r.text.length,f=Kt(function(v){return hi(t,a,v-1).bottom<=o},l,0);return l=Kt(function(v){return hi(t,a,v).top>o},f,l),{begin:f,end:l}}function xv(t,r,a,o){a||(a=na(t,r));var l=Cl(t,r,hi(t,a,o),"line").top;return wv(t,r,a,l)}function cc(t,r,a,o){return t.bottom<=a?!1:t.top>a?!0:(o?t.left:t.right)>r}function C_(t,r,a,o,l){l-=Ir(r);var f=na(t,r),v=uc(r),y=0,_=r.text.length,C=!0,K=qe(r,t.doc.direction);if(K){var ee=(t.options.lineWrapping?E_:M_)(t,r,a,f,K,o,l);C=ee.level!=1,y=C?ee.from:ee.to-1,_=C?ee.to:ee.from-1}var be=null,ke=null,ze=Kt(function(kt){var xt=hi(t,f,kt);return xt.top+=v,xt.bottom+=v,cc(xt,o,l,!1)?(xt.top<=l&&xt.left<=o&&(be=kt,ke=xt),!0):!1},y,_),$e,Ze,ot=!1;if(ke){var pt=o-ke.left=vt.bottom?1:0}return ze=sn(r.text,ze,1),sc(a,ze,Ze,ot,o-$e)}function M_(t,r,a,o,l,f,v){var y=Kt(function(ee){var be=l[ee],ke=be.level!=1;return cc(ei(t,W(a,ke?be.to:be.from,ke?"before":"after"),"line",r,o),f,v,!0)},0,l.length-1),_=l[y];if(y>0){var C=_.level!=1,K=ei(t,W(a,C?_.from:_.to,C?"after":"before"),"line",r,o);cc(K,f,v,!0)&&K.top>v&&(_=l[y-1])}return _}function E_(t,r,a,o,l,f,v){var y=wv(t,r,o,v),_=y.begin,C=y.end;/\s/.test(r.text.charAt(C-1))&&C--;for(var K=null,ee=null,be=0;be=C||ke.to<=_)){var ze=ke.level!=1,$e=hi(t,o,ze?Math.min(C,ke.to)-1:Math.max(_,ke.from)).right,Ze=$eZe)&&(K=ke,ee=Ze)}}return K||(K=l[l.length-1]),K.from<_&&(K={from:_,to:K.to,level:K.level}),K.to>C&&(K={from:K.from,to:C,level:K.level}),K}var So;function ra(t){if(t.cachedTextHeight!=null)return t.cachedTextHeight;if(So==null){So=w("pre",null,"CodeMirror-line-like");for(var r=0;r<49;++r)So.appendChild(document.createTextNode("x")),So.appendChild(w("br"));So.appendChild(document.createTextNode("x"))}N(t.measure,So);var a=So.offsetHeight/50;return a>3&&(t.cachedTextHeight=a),S(t.measure),a||1}function ia(t){if(t.cachedCharWidth!=null)return t.cachedCharWidth;var r=w("span","xxxxxxxxxx"),a=w("pre",[r],"CodeMirror-line-like");N(t.measure,a);var o=r.getBoundingClientRect(),l=(o.right-o.left)/10;return l>2&&(t.cachedCharWidth=l),l||10}function hc(t){for(var r=t.display,a={},o={},l=r.gutters.clientLeft,f=r.gutters.firstChild,v=0;f;f=f.nextSibling,++v){var y=t.display.gutterSpecs[v].className;a[y]=f.offsetLeft+f.clientLeft+l,o[y]=f.clientWidth}return{fixedPos:dc(r),gutterTotalWidth:r.gutters.offsetWidth,gutterLeft:a,gutterWidth:o,wrapperWidth:r.wrapper.clientWidth}}function dc(t){return t.scroller.getBoundingClientRect().left-t.sizer.getBoundingClientRect().left}function _v(t){var r=ra(t.display),a=t.options.lineWrapping,o=a&&Math.max(5,t.display.scroller.clientWidth/ia(t.display)-3);return function(l){if(Ar(t.doc,l))return 0;var f=0;if(l.widgets)for(var v=0;v0&&(C=ft(t.doc,_.line).text).length==_.ch){var K=ye(C,C.length,t.options.tabSize)-C.length;_=W(_.line,Math.max(0,Math.round((f-lv(t.display).left)/ia(t.display))-K))}return _}function Co(t,r){if(r>=t.display.viewTo||(r-=t.display.viewFrom,r<0))return null;for(var a=t.display.view,o=0;or)&&(l.updateLineNumbers=r),t.curOp.viewChanged=!0,r>=l.viewTo)Je&&Wi(t.doc,r)l.viewFrom?Bi(t):(l.viewFrom+=o,l.viewTo+=o);else if(r<=l.viewFrom&&a>=l.viewTo)Bi(t);else if(r<=l.viewFrom){var f=Ml(t,a,a+o,1);f?(l.view=l.view.slice(f.index),l.viewFrom=f.lineN,l.viewTo+=o):Bi(t)}else if(a>=l.viewTo){var v=Ml(t,r,r,-1);v?(l.view=l.view.slice(0,v.index),l.viewTo=v.lineN):Bi(t)}else{var y=Ml(t,r,r,-1),_=Ml(t,a,a+o,1);y&&_?(l.view=l.view.slice(0,y.index).concat(Sl(t,y.lineN,_.lineN)).concat(l.view.slice(_.index)),l.viewTo+=o):Bi(t)}var C=l.externalMeasured;C&&(a=l.lineN&&r=o.viewTo)){var f=o.view[Co(t,r)];if(f.node!=null){var v=f.changes||(f.changes=[]);ge(v,a)==-1&&v.push(a)}}}function Bi(t){t.display.viewFrom=t.display.viewTo=t.doc.first,t.display.view=[],t.display.viewOffset=0}function Ml(t,r,a,o){var l=Co(t,r),f,v=t.display.view;if(!Je||a==t.doc.first+t.doc.size)return{index:l,lineN:a};for(var y=t.display.viewFrom,_=0;_0){if(l==v.length-1)return null;f=y+v[l].size-r,l++}else f=y-r;r+=f,a+=f}for(;Wi(t.doc,a)!=a;){if(l==(o<0?0:v.length-1))return null;a+=o*v[l-(o<0?1:0)].size,l+=o}return{index:l,lineN:a}}function N_(t,r,a){var o=t.display,l=o.view;l.length==0||r>=o.viewTo||a<=o.viewFrom?(o.view=Sl(t,r,a),o.viewFrom=r):(o.viewFrom>r?o.view=Sl(t,r,o.viewFrom).concat(o.view):o.viewFroma&&(o.view=o.view.slice(0,Co(t,a)))),o.viewTo=a}function kv(t){for(var r=t.display.view,a=0,o=0;o=t.display.viewTo||y.to().line0?r.blinker=setInterval(function(){t.hasFocus()||oa(t),r.cursorDiv.style.visibility=(a=!a)?"":"hidden"},t.options.cursorBlinkRate):t.options.cursorBlinkRate<0&&(r.cursorDiv.style.visibility="hidden")}}function bv(t){t.hasFocus()||(t.display.input.focus(),t.state.focused||mc(t))}function gc(t){t.state.delayingBlurEvent=!0,setTimeout(function(){t.state.delayingBlurEvent&&(t.state.delayingBlurEvent=!1,t.state.focused&&oa(t))},100)}function mc(t,r){t.state.delayingBlurEvent&&!t.state.draggingText&&(t.state.delayingBlurEvent=!1),t.options.readOnly!="nocursor"&&(t.state.focused||(Be(t,"focus",t,r),t.state.focused=!0,Ne(t.display.wrapper,"CodeMirror-focused"),!t.curOp&&t.display.selForContextMenu!=t.doc.sel&&(t.display.input.reset(),b&&setTimeout(function(){return t.display.input.reset(!0)},20)),t.display.input.receivedFocus()),vc(t))}function oa(t,r){t.state.delayingBlurEvent||(t.state.focused&&(Be(t,"blur",t,r),t.state.focused=!1,k(t.display.wrapper,"CodeMirror-focused")),clearInterval(t.display.blinker),setTimeout(function(){t.state.focused||(t.display.shift=!1)},150))}function Nl(t){for(var r=t.display,a=r.lineDiv.offsetTop,o=0;o.005||K<-.005)&&(Qt(l.line,v),Cv(l.line),l.rest))for(var ee=0;eet.display.sizerWidth){var be=Math.ceil(y/ia(t.display));be>t.display.maxLineLength&&(t.display.maxLineLength=be,t.display.maxLine=l.line,t.display.maxLineChanged=!0)}}}}function Cv(t){if(t.widgets)for(var r=0;r=v&&(f=q(r,Ir(ft(r,_))-t.wrapper.clientHeight),v=_)}return{from:f,to:Math.max(v,f+1)}}function L_(t,r){if(!Ke(t,"scrollCursorIntoView")){var a=t.display,o=a.sizer.getBoundingClientRect(),l=null;if(r.top+o.top<0?l=!0:r.bottom+o.top>(window.innerHeight||document.documentElement.clientHeight)&&(l=!1),l!=null&&!Me){var f=w("div","\u200B",null,`position: absolute; + top: `+(r.top-a.viewOffset-bl(t.display))+`px; height: `+(r.bottom-r.top+ci(t)+a.barHeight)+`px; - left: `+r.left+"px; width: "+Math.max(2,r.right-r.left)+"px;");t.display.lineSpace.appendChild(p),p.scrollIntoView(l),t.display.lineSpace.removeChild(p)}}}function A_(t,r,a,o){o==null&&(o=0);var l;!t.options.lineWrapping&&r==a&&(a=r.sticky=="before"?K(r.line,r.ch+1,"before"):r,r=r.ch?K(r.line,r.sticky=="before"?r.ch-1:r.ch,"after"):r);for(var f=0;f<5;f++){var p=!1,y=Jr(t,r),_=!a||a==r?y:Jr(t,a);l={left:Math.min(y.left,_.left),top:Math.min(y.top,_.top)-o,right:Math.max(y.left,_.left),bottom:Math.max(y.bottom,_.bottom)+o};var C=mc(t,l),$=t.doc.scrollTop,J=t.doc.scrollLeft;if(C.scrollTop!=null&&(uu(t,C.scrollTop),Math.abs(t.doc.scrollTop-$)>1&&(p=!0)),C.scrollLeft!=null&&(Eo(t,C.scrollLeft),Math.abs(t.doc.scrollLeft-J)>1&&(p=!0)),!p)break}return l}function I_(t,r){var a=mc(t,r);a.scrollTop!=null&&uu(t,a.scrollTop),a.scrollLeft!=null&&Eo(t,a.scrollLeft)}function mc(t,r){var a=t.display,o=aa(t.display);r.top<0&&(r.top=0);var l=t.curOp&&t.curOp.scrollTop!=null?t.curOp.scrollTop:a.scroller.scrollTop,f=ic(t),p={};r.bottom-r.top>f&&(r.bottom=r.top+f);var y=t.doc.height+rc(a),_=r.topy-o;if(r.topl+f){var $=Math.min(r.top,(C?y:r.bottom)-f);$!=l&&(p.scrollTop=$)}var J=t.options.fixedGutter?0:a.gutters.offsetWidth,Se=t.curOp&&t.curOp.scrollLeft!=null?t.curOp.scrollLeft:a.scroller.scrollLeft-J,we=So(t)-a.gutters.offsetWidth,je=r.right-r.left>we;return je&&(r.right=r.left+we),r.left<10?p.scrollLeft=0:r.leftwe+Se-3&&(p.scrollLeft=r.right+(je?0:10)-we),p}function yc(t,r){r!=null&&(Ll(t),t.curOp.scrollTop=(t.curOp.scrollTop==null?t.doc.scrollTop:t.curOp.scrollTop)+r)}function sa(t){Ll(t);var r=t.getCursor();t.curOp.scrollToPos={from:r,to:r,margin:t.options.cursorScrollMargin}}function au(t,r,a){(r!=null||a!=null)&&Ll(t),r!=null&&(t.curOp.scrollLeft=r),a!=null&&(t.curOp.scrollTop=a)}function R_(t,r){Ll(t),t.curOp.scrollToPos=r}function Ll(t){var r=t.curOp.scrollToPos;if(r){t.curOp.scrollToPos=null;var a=yv(t,r.from),o=yv(t,r.to);Cv(t,a,o,r.margin)}}function Cv(t,r,a,o){var l=mc(t,{left:Math.min(r.left,a.left),top:Math.min(r.top,a.top)-o,right:Math.max(r.right,a.right),bottom:Math.max(r.bottom,a.bottom)+o});au(t,l.scrollLeft,l.scrollTop)}function uu(t,r){Math.abs(t.doc.scrollTop-r)<2||(i||xc(t,{top:r}),Mv(t,r,!0),i&&xc(t),fu(t,100))}function Mv(t,r,a){r=Math.max(0,Math.min(t.display.scroller.scrollHeight-t.display.scroller.clientHeight,r)),!(t.display.scroller.scrollTop==r&&!a)&&(t.doc.scrollTop=r,t.display.scrollbars.setScrollTop(r),t.display.scroller.scrollTop!=r&&(t.display.scroller.scrollTop=r))}function Eo(t,r,a,o){r=Math.max(0,Math.min(r,t.display.scroller.scrollWidth-t.display.scroller.clientWidth)),!((a?r==t.doc.scrollLeft:Math.abs(t.doc.scrollLeft-r)<2)&&!o)&&(t.doc.scrollLeft=r,Ov(t),t.display.scroller.scrollLeft!=r&&(t.display.scroller.scrollLeft=r),t.display.scrollbars.setScrollLeft(r))}function lu(t){var r=t.display,a=r.gutters.offsetWidth,o=Math.round(t.doc.height+rc(t.display));return{clientHeight:r.scroller.clientHeight,viewHeight:r.wrapper.clientHeight,scrollWidth:r.scroller.scrollWidth,clientWidth:r.scroller.clientWidth,viewWidth:r.wrapper.clientWidth,barLeft:t.options.fixedGutter?a:0,docHeight:o,scrollHeight:o+ci(t)+r.barHeight,nativeBarWidth:r.nativeBarWidth,gutterWidth:a}}var No=function(t,r,a){this.cm=a;var o=this.vert=m("div",[m("div",null,null,"min-width: 1px")],"CodeMirror-vscrollbar"),l=this.horiz=m("div",[m("div",null,null,"height: 100%; min-height: 1px")],"CodeMirror-hscrollbar");o.tabIndex=l.tabIndex=-1,t(o),t(l),Te(o,"scroll",function(){o.clientHeight&&r(o.scrollTop,"vertical")}),Te(l,"scroll",function(){l.clientWidth&&r(l.scrollLeft,"horizontal")}),this.checkedZeroWidth=!1,d&&v<8&&(this.horiz.style.minHeight=this.vert.style.minWidth="18px")};No.prototype.update=function(t){var r=t.scrollWidth>t.clientWidth+1,a=t.scrollHeight>t.clientHeight+1,o=t.nativeBarWidth;if(a){this.vert.style.display="block",this.vert.style.bottom=r?o+"px":"0";var l=t.viewHeight-(r?o:0);this.vert.firstChild.style.height=Math.max(0,t.scrollHeight-t.clientHeight+l)+"px"}else this.vert.scrollTop=0,this.vert.style.display="",this.vert.firstChild.style.height="0";if(r){this.horiz.style.display="block",this.horiz.style.right=a?o+"px":"0",this.horiz.style.left=t.barLeft+"px";var f=t.viewWidth-t.barLeft-(a?o:0);this.horiz.firstChild.style.width=Math.max(0,t.scrollWidth-t.clientWidth+f)+"px"}else this.horiz.style.display="",this.horiz.firstChild.style.width="0";return!this.checkedZeroWidth&&t.clientHeight>0&&(o==0&&this.zeroWidthHack(),this.checkedZeroWidth=!0),{right:a?o:0,bottom:r?o:0}},No.prototype.setScrollLeft=function(t){this.horiz.scrollLeft!=t&&(this.horiz.scrollLeft=t),this.disableHoriz&&this.enableZeroWidthBar(this.horiz,this.disableHoriz,"horiz")},No.prototype.setScrollTop=function(t){this.vert.scrollTop!=t&&(this.vert.scrollTop=t),this.disableVert&&this.enableZeroWidthBar(this.vert,this.disableVert,"vert")},No.prototype.zeroWidthHack=function(){var t=oe&&!Ee?"12px":"18px";this.horiz.style.height=this.vert.style.width=t,this.horiz.style.visibility=this.vert.style.visibility="hidden",this.disableHoriz=new Ae,this.disableVert=new Ae},No.prototype.enableZeroWidthBar=function(t,r,a){t.style.visibility="";function o(){var l=t.getBoundingClientRect(),f=a=="vert"?document.elementFromPoint(l.right-1,(l.top+l.bottom)/2):document.elementFromPoint((l.right+l.left)/2,l.bottom-1);f!=t?t.style.visibility="hidden":r.set(1e3,o)}r.set(1e3,o)},No.prototype.clear=function(){var t=this.horiz.parentNode;t.removeChild(this.horiz),t.removeChild(this.vert)};var su=function(){};su.prototype.update=function(){return{bottom:0,right:0}},su.prototype.setScrollLeft=function(){},su.prototype.setScrollTop=function(){},su.prototype.clear=function(){};function fa(t,r){r||(r=lu(t));var a=t.display.barWidth,o=t.display.barHeight;Ev(t,r);for(var l=0;l<4&&a!=t.display.barWidth||o!=t.display.barHeight;l++)a!=t.display.barWidth&&t.options.lineWrapping&&Nl(t),Ev(t,lu(t)),a=t.display.barWidth,o=t.display.barHeight}function Ev(t,r){var a=t.display,o=a.scrollbars.update(r);a.sizer.style.paddingRight=(a.barWidth=o.right)+"px",a.sizer.style.paddingBottom=(a.barHeight=o.bottom)+"px",a.heightForcer.style.borderBottom=o.bottom+"px solid transparent",o.right&&o.bottom?(a.scrollbarFiller.style.display="block",a.scrollbarFiller.style.height=o.bottom+"px",a.scrollbarFiller.style.width=o.right+"px"):a.scrollbarFiller.style.display="",o.bottom&&t.options.coverGutterNextToScrollbar&&t.options.fixedGutter?(a.gutterFiller.style.display="block",a.gutterFiller.style.height=o.bottom+"px",a.gutterFiller.style.width=r.gutterWidth+"px"):a.gutterFiller.style.display=""}var Nv={native:No,null:su};function Pv(t){t.display.scrollbars&&(t.display.scrollbars.clear(),t.display.scrollbars.addClass&&E(t.display.wrapper,t.display.scrollbars.addClass)),t.display.scrollbars=new Nv[t.options.scrollbarStyle](function(r){t.display.wrapper.insertBefore(r,t.display.scrollbarFiller),Te(r,"mousedown",function(){t.state.focused&&setTimeout(function(){return t.display.input.focus()},0)}),r.setAttribute("cm-not-content","true")},function(r,a){a=="horizontal"?Eo(t,r):uu(t,r)},t),t.display.scrollbars.addClass&&fe(t.display.wrapper,t.display.scrollbars.addClass)}var F_=0;function Po(t){t.curOp={cm:t,viewChanged:!1,startHeight:t.doc.height,forceUpdate:!1,updateInput:0,typing:!1,changeObjs:null,cursorActivityHandlers:null,cursorActivityCalled:0,selectionChanged:!1,updateMaxLine:!1,scrollLeft:null,scrollTop:null,scrollToPos:null,focus:!1,id:++F_,markArrays:null},p_(t.curOp)}function Lo(t){var r=t.curOp;r&&g_(r,function(a){for(var o=0;o=a.viewTo)||a.maxLineChanged&&r.options.lineWrapping,t.update=t.mustUpdate&&new Ol(r,t.mustUpdate&&{top:t.scrollTop,ensure:t.scrollToPos},t.forceUpdate)}function W_(t){t.updatedDisplay=t.mustUpdate&&wc(t.cm,t.update)}function U_(t){var r=t.cm,a=r.display;t.updatedDisplay&&Nl(r),t.barMeasure=lu(r),a.maxLineChanged&&!r.options.lineWrapping&&(t.adjustWidthTo=fv(r,a.maxLine,a.maxLine.text.length).left+3,r.display.sizerWidth=t.adjustWidthTo,t.barMeasure.scrollWidth=Math.max(a.scroller.clientWidth,a.sizer.offsetLeft+t.adjustWidthTo+ci(r)+r.display.barWidth),t.maxScrollLeft=Math.max(0,a.sizer.offsetLeft+t.adjustWidthTo-So(r))),(t.updatedDisplay||t.selectionChanged)&&(t.preparedSelection=a.input.prepareSelection())}function B_(t){var r=t.cm;t.adjustWidthTo!=null&&(r.display.sizer.style.minWidth=t.adjustWidthTo+"px",t.maxScrollLeft=t.display.viewTo)){var a=+new Date+t.options.workTime,o=U(t,r.highlightFrontier),l=[];r.iter(o.line,Math.min(r.first+r.size,t.display.viewTo+500),function(f){if(o.line>=t.display.viewFrom){var p=f.styles,y=f.text.length>t.options.maxHighlightLength?gn(r.mode,o.state):null,_=w(t,f,o,!0);y&&(o.state=y),f.styles=_.styles;var C=f.styleClasses,$=_.classes;$?f.styleClasses=$:C&&(f.styleClasses=null);for(var J=!p||p.length!=f.styles.length||C!=$&&(!C||!$||C.bgClass!=$.bgClass||C.textClass!=$.textClass),Se=0;!J&&Sea)return fu(t,t.options.workDelay),!0}),r.highlightFrontier=o.line,r.modeFrontier=Math.max(r.modeFrontier,o.line),l.length&&Cr(t,function(){for(var f=0;f=a.viewFrom&&r.visible.to<=a.viewTo&&(a.updateLineNumbers==null||a.updateLineNumbers>=a.viewTo)&&a.renderedView==a.view&&kv(t)==0)return!1;Dv(t)&&(Bi(t),r.dims=fc(t));var l=o.first+o.size,f=Math.max(r.visible.from-t.options.viewportMargin,o.first),p=Math.min(l,r.visible.to+t.options.viewportMargin);a.viewFromp&&a.viewTo-p<20&&(p=Math.min(l,a.viewTo)),Wt&&(f=_o(t.doc,f),p=ra(t.doc,p));var y=f!=a.viewFrom||p!=a.viewTo||a.lastWrapHeight!=r.wrapperHeight||a.lastWrapWidth!=r.wrapperWidth;L_(t,f,p),a.viewOffset=Dr(ft(t.doc,a.viewFrom)),t.display.mover.style.top=a.viewOffset+"px";var _=kv(t);if(!y&&_==0&&!r.force&&a.renderedView==a.view&&(a.updateLineNumbers==null||a.updateLineNumbers>=a.viewTo))return!1;var C=G_(t);return _>4&&(a.lineDiv.style.display="none"),$_(t,a.updateLineNumbers,r.dims),_>4&&(a.lineDiv.style.display=""),a.renderedView=a.view,V_(C),S(a.cursorDiv),S(a.selectionDiv),a.gutters.style.height=a.sizer.style.minHeight=0,y&&(a.lastWrapHeight=r.wrapperHeight,a.lastWrapWidth=r.wrapperWidth,fu(t,400)),a.updateLineNumbers=null,!0}function Lv(t,r){for(var a=r.viewport,o=!0;;o=!1){if(!o||!t.options.lineWrapping||r.oldDisplayWidth==So(t)){if(a&&a.top!=null&&(a={top:Math.min(t.doc.height+rc(t.display)-ic(t),a.top)}),r.visible=Pl(t.display,t.doc,a),r.visible.from>=t.display.viewFrom&&r.visible.to<=t.display.viewTo)break}else o&&(r.visible=Pl(t.display,t.doc,a));if(!wc(t,r))break;Nl(t);var l=lu(t);ou(t),fa(t,l),kc(t,l),r.force=!1}r.signal(t,"update",t),(t.display.viewFrom!=t.display.reportedViewFrom||t.display.viewTo!=t.display.reportedViewTo)&&(r.signal(t,"viewportChange",t,t.display.viewFrom,t.display.viewTo),t.display.reportedViewFrom=t.display.viewFrom,t.display.reportedViewTo=t.display.viewTo)}function xc(t,r){var a=new Ol(t,r);if(wc(t,a)){Nl(t),Lv(t,a);var o=lu(t);ou(t),fa(t,o),kc(t,o),a.finish()}}function $_(t,r,a){var o=t.display,l=t.options.lineNumbers,f=o.lineDiv,p=f.firstChild;function y(je){var Ve=je.nextSibling;return x&&oe&&t.display.currentWheelTarget==je?je.style.display="none":je.parentNode.removeChild(je),Ve}for(var _=o.view,C=o.viewFrom,$=0;$<_.length;$++){var J=_[$];if(!J.hidden)if(!J.node||J.node.parentNode!=f){var Se=__(t,J,C,a);f.insertBefore(Se,p)}else{for(;p!=J.node;)p=y(p);var we=l&&r!=null&&r<=C&&J.lineNumber;J.changes&&(Xe(J.changes,"gutter")>-1&&(we=!1),rv(t,J,C,a)),we&&(S(J.lineNumber),J.lineNumber.appendChild(document.createTextNode(H(t.options,C)))),p=J.node.nextSibling}C+=J.size}for(;p;)p=y(p)}function _c(t){var r=t.gutters.offsetWidth;t.sizer.style.marginLeft=r+"px",zn(t,"gutterChanged",t)}function kc(t,r){t.display.sizer.style.minHeight=r.docHeight+"px",t.display.heightForcer.style.top=r.docHeight+"px",t.display.gutters.style.height=r.docHeight+t.display.barHeight+ci(t)+"px"}function Ov(t){var r=t.display,a=r.view;if(!(!r.alignWidgets&&(!r.gutters.firstChild||!t.options.fixedGutter))){for(var o=cc(r)-r.scroller.scrollLeft+t.doc.scrollLeft,l=r.gutters.offsetWidth,f=o+"px",p=0;p=105&&(l.wrapper.style.clipPath="inset(0px)"),l.wrapper.setAttribute("translate","no"),d&&v<8&&(l.gutters.style.zIndex=-1,l.scroller.style.paddingRight=0),!x&&!(i&&q)&&(l.scroller.draggable=!0),t&&(t.appendChild?t.appendChild(l.wrapper):t(l.wrapper)),l.viewFrom=l.viewTo=r.first,l.reportedViewFrom=l.reportedViewTo=r.first,l.view=[],l.renderedView=null,l.externalMeasured=null,l.viewOffset=0,l.lastWrapHeight=l.lastWrapWidth=0,l.updateLineNumbers=null,l.nativeBarWidth=l.barHeight=l.barWidth=0,l.scrollbarsClipped=!1,l.lineNumWidth=l.lineNumInnerWidth=l.lineNumChars=null,l.alignWidgets=!1,l.cachedCharWidth=l.cachedTextHeight=l.cachedPaddingH=null,l.maxLine=null,l.maxLineLength=0,l.maxLineChanged=!1,l.wheelDX=l.wheelDY=l.wheelStartX=l.wheelStartY=null,l.shift=!1,l.selForContextMenu=null,l.activeTouch=null,l.gutterSpecs=Tc(o.gutters,o.lineNumbers),Av(l),a.init(l)}var Dl=0,bi=null;d?bi=-.53:i?bi=15:M?bi=-.7:ve&&(bi=-1/3);function Iv(t){var r=t.wheelDeltaX,a=t.wheelDeltaY;return r==null&&t.detail&&t.axis==t.HORIZONTAL_AXIS&&(r=t.detail),a==null&&t.detail&&t.axis==t.VERTICAL_AXIS?a=t.detail:a==null&&(a=t.wheelDelta),{x:r,y:a}}function K_(t){var r=Iv(t);return r.x*=bi,r.y*=bi,r}function Rv(t,r){M&&O==102&&(t.display.chromeScrollHack==null?t.display.sizer.style.pointerEvents="none":clearTimeout(t.display.chromeScrollHack),t.display.chromeScrollHack=setTimeout(function(){t.display.chromeScrollHack=null,t.display.sizer.style.pointerEvents=""},100));var a=Iv(r),o=a.x,l=a.y,f=bi;r.deltaMode===0&&(o=r.deltaX,l=r.deltaY,f=1);var p=t.display,y=p.scroller,_=y.scrollWidth>y.clientWidth,C=y.scrollHeight>y.clientHeight;if(!!(o&&_||l&&C)){if(l&&oe&&x){e:for(var $=r.target,J=p.view;$!=y;$=$.parentNode)for(var Se=0;Se=0&&pe(t,o.to())<=0)return a}return-1};var Jt=function(t,r){this.anchor=t,this.head=r};Jt.prototype.from=function(){return qt(this.anchor,this.head)},Jt.prototype.to=function(){return yt(this.anchor,this.head)},Jt.prototype.empty=function(){return this.head.line==this.anchor.line&&this.head.ch==this.anchor.ch};function ei(t,r,a){var o=t&&t.options.selectionsMayTouch,l=r[a];r.sort(function(Se,we){return pe(Se.from(),we.from())}),a=Xe(r,l);for(var f=1;f0:_>=0){var C=qt(y.from(),p.from()),$=yt(y.to(),p.to()),J=y.empty()?p.from()==p.head:y.from()==y.head;f<=a&&--a,r.splice(--f,2,new Jt(J?$:C,J?C:$))}}return new Ar(r,a)}function ji(t,r){return new Ar([new Jt(t,r||t)],0)}function Yi(t){return t.text?K(t.from.line+t.text.length-1,Je(t.text).length+(t.text.length==1?t.from.ch:0)):t.to}function Fv(t,r){if(pe(t,r.from)<0)return t;if(pe(t,r.to)<=0)return Yi(r);var a=t.line+r.text.length-(r.to.line-r.from.line)-1,o=t.ch;return t.line==r.to.line&&(o+=Yi(r).ch-r.to.ch),K(a,o)}function Sc(t,r){for(var a=[],o=0;o1&&t.remove(y.line+1,je-1),t.insert(y.line+1,lt)}zn(t,"change",t,r)}function qi(t,r,a){function o(l,f,p){if(l.linked)for(var y=0;y1&&!t.done[t.done.length-2].ranges)return t.done.pop(),Je(t.done)}function jv(t,r,a,o){var l=t.history;l.undone.length=0;var f=+new Date,p,y;if((l.lastOp==o||l.lastOrigin==r.origin&&r.origin&&(r.origin.charAt(0)=="+"&&l.lastModTime>f-(t.cm?t.cm.options.historyEventDelay:500)||r.origin.charAt(0)=="*"))&&(p=J_(l,l.lastOp==o)))y=Je(p.changes),pe(r.from,r.to)==0&&pe(r.from,y.to)==0?y.to=Yi(r):p.changes.push(Mc(t,r));else{var _=Je(l.done);for((!_||!_.ranges)&&Il(t.sel,l.done),p={changes:[Mc(t,r)],generation:l.generation},l.done.push(p);l.done.length>l.undoDepth;)l.done.shift(),l.done[0].ranges||l.done.shift()}l.done.push(a),l.generation=++l.maxGeneration,l.lastModTime=l.lastSelTime=f,l.lastOp=l.lastSelOp=o,l.lastOrigin=l.lastSelOrigin=r.origin,y||at(t,"historyAdded")}function ek(t,r,a,o){var l=r.charAt(0);return l=="*"||l=="+"&&a.ranges.length==o.ranges.length&&a.somethingSelected()==o.somethingSelected()&&new Date-t.history.lastSelTime<=(t.cm?t.cm.options.historyEventDelay:500)}function tk(t,r,a,o){var l=t.history,f=o&&o.origin;a==l.lastSelOp||f&&l.lastSelOrigin==f&&(l.lastModTime==l.lastSelTime&&l.lastOrigin==f||ek(t,f,Je(l.done),r))?l.done[l.done.length-1]=r:Il(r,l.done),l.lastSelTime=+new Date,l.lastSelOrigin=f,l.lastSelOp=a,o&&o.clearRedo!==!1&&Bv(l.undone)}function Il(t,r){var a=Je(r);a&&a.ranges&&a.equals(t)||r.push(t)}function Yv(t,r,a,o){var l=r["spans_"+t.id],f=0;t.iter(Math.max(t.first,a),Math.min(t.first+t.size,o),function(p){p.markedSpans&&((l||(l=r["spans_"+t.id]={}))[f]=p.markedSpans),++f})}function nk(t){if(!t)return null;for(var r,a=0;a-1&&(Je(y)[J]=C[J],delete C[J])}}return o}function Ec(t,r,a,o){if(o){var l=t.anchor;if(a){var f=pe(r,l)<0;f!=pe(a,l)<0?(l=r,r=a):f!=pe(r,a)<0&&(r=a)}return new Jt(l,r)}else return new Jt(a||r,r)}function Rl(t,r,a,o,l){l==null&&(l=t.cm&&(t.cm.display.shift||t.extend)),Qn(t,new Ar([Ec(t.sel.primary(),r,a,l)],0),o)}function Gv(t,r,a){for(var o=[],l=t.cm&&(t.cm.display.shift||t.extend),f=0;f=r.ch:y.to>r.ch))){if(l&&(at(_,"beforeCursorEnter"),_.explicitlyCleared))if(f.markedSpans){--p;continue}else break;if(!_.atomic)continue;if(a){var J=_.find(o<0?1:-1),Se=void 0;if((o<0?$:C)&&(J=Zv(t,J,-o,J&&J.line==r.line?f:null)),J&&J.line==r.line&&(Se=pe(J,a))&&(o<0?Se<0:Se>0))return ha(t,J,r,o,l)}var we=_.find(o<0?-1:1);return(o<0?C:$)&&(we=Zv(t,we,o,we.line==r.line?f:null)),we?ha(t,we,r,o,l):null}}return r}function zl(t,r,a,o,l){var f=o||1,p=ha(t,r,a,f,l)||!l&&ha(t,r,a,f,!0)||ha(t,r,a,-f,l)||!l&&ha(t,r,a,-f,!0);return p||(t.cantEdit=!0,K(t.first,0))}function Zv(t,r,a,o){return a<0&&r.ch==0?r.line>t.first?gt(t,K(r.line-1)):null:a>0&&r.ch==(o||ft(t,r.line)).text.length?r.line=0;--l)tg(t,{from:o[l].from,to:o[l].to,text:l?[""]:r.text,origin:r.origin});else tg(t,r)}}function tg(t,r){if(!(r.text.length==1&&r.text[0]==""&&pe(r.from,r.to)==0)){var a=Sc(t,r);jv(t,r,a,t.cm?t.cm.curOp.id:NaN),du(t,r,a,qn(t,r));var o=[];qi(t,function(l,f){!f&&Xe(o,l.history)==-1&&(og(l.history,r),o.push(l.history)),du(l,r,null,qn(l,r))})}}function Hl(t,r,a){var o=t.cm&&t.cm.state.suppressEdits;if(!(o&&!a)){for(var l=t.history,f,p=t.sel,y=r=="undo"?l.done:l.undone,_=r=="undo"?l.undone:l.done,C=0;C=0;--we){var je=Se(we);if(je)return je.v}}}}function ng(t,r){if(r!=0&&(t.first+=r,t.sel=new Ar(Yt(t.sel.ranges,function(l){return new Jt(K(l.anchor.line+r,l.anchor.ch),K(l.head.line+r,l.head.ch))}),t.sel.primIndex),t.cm)){dr(t.cm,t.first,t.first-r,r);for(var a=t.cm.display,o=a.viewFrom;ot.lastLine())){if(r.from.linef&&(r={from:r.from,to:K(f,ft(t,f).text.length),text:[r.text[0]],origin:r.origin}),r.removed=Qt(t,r.from,r.to),a||(a=Sc(t,r)),t.cm?ok(t.cm,r,o):Cc(t,r,o),Fl(t,a,Pe),t.cantEdit&&zl(t,K(t.firstLine(),0))&&(t.cantEdit=!1)}}function ok(t,r,a){var o=t.doc,l=t.display,f=r.from,p=r.to,y=!1,_=f.line;t.options.lineWrapping||(_=He(rr(ft(o,f.line))),o.iter(_,p.line+1,function(we){if(we==l.maxLine)return y=!0,!0})),o.sel.contains(r.from,r.to)>-1&&Ft(t),Cc(o,r,a,_v(t)),t.options.lineWrapping||(o.iter(_,f.line+r.text.length,function(we){var je=Wi(we);je>l.maxLineLength&&(l.maxLine=we,l.maxLineLength=je,l.maxLineChanged=!0,y=!1)}),y&&(t.curOp.updateMaxLine=!0)),wt(o,f.line),fu(t,400);var C=r.text.length-(p.line-f.line)-1;r.full?dr(t):f.line==p.line&&r.text.length==1&&!Hv(t.doc,r)?Ui(t,f.line,"text"):dr(t,f.line,p.line+1,C);var $=Ct(t,"changes"),J=Ct(t,"change");if(J||$){var Se={from:f,to:p,text:r.text,removed:r.removed,origin:r.origin};J&&zn(t,"change",t,Se),$&&(t.curOp.changeObjs||(t.curOp.changeObjs=[])).push(Se)}t.display.selForContextMenu=null}function pa(t,r,a,o,l){var f;o||(o=a),pe(o,a)<0&&(f=[o,a],a=f[0],o=f[1]),typeof r=="string"&&(r=t.splitLines(r)),da(t,{from:a,to:o,text:r,origin:l})}function rg(t,r,a,o){a1||!(this.children[0]instanceof vu))){var y=[];this.collapse(y),this.children=[new vu(y)],this.children[0].parent=this}},collapse:function(t){for(var r=0;r50){for(var p=l.lines.length%25+25,y=p;y10);t.parent.maybeSpill()}},iterN:function(t,r,a){for(var o=0;ot.display.maxLineLength&&(t.display.maxLine=C,t.display.maxLineLength=$,t.display.maxLineChanged=!0)}o!=null&&t&&this.collapsed&&dr(t,o,l+1),this.lines.length=0,this.explicitlyCleared=!0,this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,t&&Kv(t.doc)),t&&zn(t,"markerCleared",t,this,o,l),r&&Lo(t),this.parent&&this.parent.clear()}},Gi.prototype.find=function(t,r){t==null&&this.type=="bookmark"&&(t=1);for(var a,o,l=0;l0||p==0&&f.clearWhenEmpty!==!1)return f;if(f.replacedWith&&(f.collapsed=!0,f.widgetNode=A("span",[f.replacedWith],"CodeMirror-widget"),o.handleMouseEvents||f.widgetNode.setAttribute("cm-ignore-events","true"),o.insertLeft&&(f.widgetNode.insertLeft=!0)),f.collapsed){if(xo(t,r.line,r,a,f)||r.line!=a.line&&xo(t,a.line,r,a,f))throw new Error("Inserting collapsed marker partially overlapping an existing one");cn()}f.addToHistory&&jv(t,{from:r,to:a,origin:"markText"},t.sel,NaN);var y=r.line,_=t.cm,C;if(t.iter(y,a.line+1,function(J){_&&f.collapsed&&!_.options.lineWrapping&&rr(J)==_.display.maxLine&&(C=!0),f.collapsed&&y!=r.line&&le(J,0),Mn(J,new Vt(f,y==r.line?r.ch:null,y==a.line?a.ch:null),t.cm&&t.cm.curOp),++y}),f.collapsed&&t.iter(r.line,a.line+1,function(J){Gn(t,J)&&le(J,0)}),f.clearOnEnter&&Te(f,"beforeCursorEnter",function(){return f.clear()}),f.readOnly&&(jt(),(t.history.done.length||t.history.undone.length)&&t.clearHistory()),f.collapsed&&(f.id=++ug,f.atomic=!0),_){if(C&&(_.curOp.updateMaxLine=!0),f.collapsed)dr(_,r.line,a.line+1);else if(f.className||f.startStyle||f.endStyle||f.css||f.attributes||f.title)for(var $=r.line;$<=a.line;$++)Ui(_,$,"text");f.atomic&&Kv(_.doc),zn(_,"markerAdded",_,f)}return f}var yu=function(t,r){this.markers=t,this.primary=r;for(var a=0;a=0;_--)da(this,o[_]);y?$v(this,y):this.cm&&sa(this.cm)}),undo:Wn(function(){Hl(this,"undo")}),redo:Wn(function(){Hl(this,"redo")}),undoSelection:Wn(function(){Hl(this,"undo",!0)}),redoSelection:Wn(function(){Hl(this,"redo",!0)}),setExtending:function(t){this.extend=t},getExtending:function(){return this.extend},historySize:function(){for(var t=this.history,r=0,a=0,o=0;o=t.ch)&&r.push(l.marker.parent||l.marker)}return r},findMarks:function(t,r,a){t=gt(this,t),r=gt(this,r);var o=[],l=t.line;return this.iter(t.line,r.line+1,function(f){var p=f.markedSpans;if(p)for(var y=0;y=_.to||_.from==null&&l!=t.line||_.from!=null&&l==r.line&&_.from>=r.ch)&&(!a||a(_.marker))&&o.push(_.marker.parent||_.marker)}++l}),o},getAllMarks:function(){var t=[];return this.iter(function(r){var a=r.markedSpans;if(a)for(var o=0;ot)return r=t,!0;t-=f,++a}),gt(this,K(a,r))},indexFromPos:function(t){t=gt(this,t);var r=t.ch;if(t.liner&&(r=t.from),t.to!=null&&t.to-1){r.state.draggingText(t),setTimeout(function(){return r.display.input.focus()},20);return}try{var $=t.dataTransfer.getData("Text");if($){var J;if(r.state.draggingText&&!r.state.draggingText.copy&&(J=r.listSelections()),Fl(r.doc,ji(a,a)),J)for(var Se=0;Se=0;y--)pa(t.doc,"",o[y].from,o[y].to,"+delete");sa(t)})}function Pc(t,r,a){var o=R(t.text,r+a,a);return o<0||o>t.text.length?null:o}function Lc(t,r,a){var o=Pc(t,r.ch,a);return o==null?null:new K(r.line,o,a<0?"after":"before")}function Oc(t,r,a,o,l){if(t){r.doc.direction=="rtl"&&(l=-l);var f=Z(a,r.doc.direction);if(f){var p=l<0?Je(f):f[0],y=l<0==(p.level==1),_=y?"after":"before",C;if(p.level>0||r.doc.direction=="rtl"){var $=oa(r,a);C=l<0?a.text.length-1:0;var J=hi(r,$,C).top;C=B(function(Se){return hi(r,$,Se).top==J},l<0==(p.level==1)?p.from:p.to-1,C),_=="before"&&(C=Pc(a,C,1))}else C=l<0?p.to:p.from;return new K(o,C,_)}}return new K(o,l<0?a.text.length:0,l<0?"before":"after")}function wk(t,r,a,o){var l=Z(r,t.doc.direction);if(!l)return Lc(r,a,o);a.ch>=r.text.length?(a.ch=r.text.length,a.sticky="before"):a.ch<=0&&(a.ch=0,a.sticky="after");var f=Be(l,a.ch,a.sticky),p=l[f];if(t.doc.direction=="ltr"&&p.level%2==0&&(o>0?p.to>a.ch:p.from=p.from&&Se>=$.begin)){var we=J?"before":"after";return new K(a.line,Se,we)}}var je=function(lt,pt,st){for(var mt=function(fn,Un){return Un?new K(a.line,y(fn,1),"before"):new K(a.line,fn,"after")};lt>=0&<0==(Tt.level!=1),Ht=_t?st.begin:y(st.end,-1);if(Tt.from<=Ht&&Ht0?$.end:y($.begin,-1);return tt!=null&&!(o>0&&tt==r.text.length)&&(Ve=je(o>0?0:l.length-1,o,C(tt)),Ve)?Ve:null}var _u={selectAll:Jv,singleSelection:function(t){return t.setSelection(t.getCursor("anchor"),t.getCursor("head"),Pe)},killLine:function(t){return ma(t,function(r){if(r.empty()){var a=ft(t.doc,r.head.line).text.length;return r.head.ch==a&&r.head.line0)l=new K(l.line,l.ch+1),t.replaceRange(f.charAt(l.ch-1)+f.charAt(l.ch-2),K(l.line,l.ch-2),l,"+transpose");else if(l.line>t.doc.first){var p=ft(t.doc,l.line-1).text;p&&(l=new K(l.line,1),t.replaceRange(f.charAt(0)+t.doc.lineSeparator()+p.charAt(p.length-1),K(l.line-1,p.length-1),l,"+transpose"))}}a.push(new Jt(l,l))}t.setSelections(a)})},newlineAndIndent:function(t){return Cr(t,function(){for(var r=t.listSelections(),a=r.length-1;a>=0;a--)t.replaceRange(t.doc.lineSeparator(),r[a].anchor,r[a].head,"+input");r=t.listSelections();for(var o=0;ot&&pe(r,this.pos)==0&&a==this.button};var Tu,Su;function Ck(t,r){var a=+new Date;return Su&&Su.compare(a,t,r)?(Tu=Su=null,"triple"):Tu&&Tu.compare(a,t,r)?(Su=new Ac(a,t,r),Tu=null,"double"):(Tu=new Ac(a,t,r),Su=null,"single")}function Tg(t){var r=this,a=r.display;if(!(vt(r,t)||a.activeTouch&&a.input.supportsTouch())){if(a.input.ensurePolled(),a.shift=t.shiftKey,Si(a,t)){x||(a.scroller.draggable=!1,setTimeout(function(){return a.scroller.draggable=!0},100));return}if(!Ic(r,t)){var o=Co(r,t),l=F(t),f=o?Ck(o,l):"single";be(r).focus(),l==1&&r.state.selectingText&&r.state.selectingText(t),!(o&&Mk(r,l,o,f,t))&&(l==1?o?Nk(r,o,f,t):Le(t)==a.scroller&&Bt(t):l==2?(o&&Rl(r.doc,o),setTimeout(function(){return a.input.focus()},20)):l==3&&(g?r.display.input.onContextMenu(t):vc(r)))}}}function Mk(t,r,a,o,l){var f="Click";return o=="double"?f="Double"+f:o=="triple"&&(f="Triple"+f),f=(r==1?"Left":r==2?"Middle":"Right")+f,ku(t,pg(f,l),l,function(p){if(typeof p=="string"&&(p=_u[p]),!p)return!1;var y=!1;try{t.isReadOnly()&&(t.state.suppressEdits=!0),y=p(t,a)!=me}finally{t.state.suppressEdits=!1}return y})}function Ek(t,r,a){var o=t.getOption("configureMouse"),l=o?o(t,r,a):{};if(l.unit==null){var f=ge?a.shiftKey&&a.metaKey:a.altKey;l.unit=f?"rectangle":r=="single"?"char":r=="double"?"word":"line"}return(l.extend==null||t.doc.extend)&&(l.extend=t.doc.extend||a.shiftKey),l.addNew==null&&(l.addNew=oe?a.metaKey:a.ctrlKey),l.moveOnDrag==null&&(l.moveOnDrag=!(oe?a.altKey:a.ctrlKey)),l}function Nk(t,r,a,o){d?setTimeout(Ce(Sv,t),0):t.curOp.focus=Oe(se(t));var l=Ek(t,a,o),f=t.doc.sel,p;t.options.dragDrop&&V&&!t.isReadOnly()&&a=="single"&&(p=f.contains(r))>-1&&(pe((p=f.ranges[p]).from(),r)<0||r.xRel>0)&&(pe(p.to(),r)>0||r.xRel<0)?Pk(t,o,r,l):Lk(t,o,r,l)}function Pk(t,r,a,o){var l=t.display,f=!1,p=Hn(t,function(C){x&&(l.scroller.draggable=!1),t.state.draggingText=!1,t.state.delayingBlurEvent&&(t.hasFocus()?t.state.delayingBlurEvent=!1:vc(t)),nt(l.wrapper.ownerDocument,"mouseup",p),nt(l.wrapper.ownerDocument,"mousemove",y),nt(l.scroller,"dragstart",_),nt(l.scroller,"drop",p),f||(Bt(C),o.addNew||Rl(t.doc,a,null,null,o.extend),x&&!ve||d&&v==9?setTimeout(function(){l.wrapper.ownerDocument.body.focus({preventScroll:!0}),l.input.focus()},20):l.input.focus())}),y=function(C){f=f||Math.abs(r.clientX-C.clientX)+Math.abs(r.clientY-C.clientY)>=10},_=function(){return f=!0};x&&(l.scroller.draggable=!0),t.state.draggingText=p,p.copy=!o.moveOnDrag,Te(l.wrapper.ownerDocument,"mouseup",p),Te(l.wrapper.ownerDocument,"mousemove",y),Te(l.scroller,"dragstart",_),Te(l.scroller,"drop",p),t.state.delayingBlurEvent=!0,setTimeout(function(){return l.input.focus()},20),l.scroller.dragDrop&&l.scroller.dragDrop()}function Sg(t,r,a){if(a=="char")return new Jt(r,r);if(a=="word")return t.findWordAt(r);if(a=="line")return new Jt(K(r.line,0),gt(t.doc,K(r.line+1,0)));var o=a(t,r);return new Jt(o.from,o.to)}function Lk(t,r,a,o){d&&vc(t);var l=t.display,f=t.doc;Bt(r);var p,y,_=f.sel,C=_.ranges;if(o.addNew&&!o.extend?(y=f.sel.contains(a),y>-1?p=C[y]:p=new Jt(a,a)):(p=f.sel.primary(),y=f.sel.primIndex),o.unit=="rectangle")o.addNew||(p=new Jt(a,a)),a=Co(t,r,!0,!0),y=-1;else{var $=Sg(t,a,o.unit);o.extend?p=Ec(p,$.anchor,$.head,o.extend):p=$}o.addNew?y==-1?(y=C.length,Qn(f,ei(t,C.concat([p]),y),{scroll:!1,origin:"*mouse"})):C.length>1&&C[y].empty()&&o.unit=="char"&&!o.extend?(Qn(f,ei(t,C.slice(0,y).concat(C.slice(y+1)),0),{scroll:!1,origin:"*mouse"}),_=f.sel):Nc(f,y,p,Q):(y=0,Qn(f,new Ar([p],0),Q),_=f.sel);var J=a;function Se(st){if(pe(J,st)!=0)if(J=st,o.unit=="rectangle"){for(var mt=[],Tt=t.options.tabSize,_t=Re(ft(f,a.line).text,a.ch,Tt),Ht=Re(ft(f,st.line).text,st.ch,Tt),fn=Math.min(_t,Ht),Un=Math.max(_t,Ht),xn=Math.min(a.line,st.line),Mr=Math.min(t.lastLine(),Math.max(a.line,st.line));xn<=Mr;xn++){var vr=ft(f,xn).text,On=ke(vr,fn,Tt);fn==Un?mt.push(new Jt(K(xn,On),K(xn,On))):vr.length>On&&mt.push(new Jt(K(xn,On),K(xn,ke(vr,Un,Tt))))}mt.length||mt.push(new Jt(a,a)),Qn(f,ei(t,_.ranges.slice(0,y).concat(mt),y),{origin:"*mouse",scroll:!1}),t.scrollIntoView(st)}else{var gr=p,Vn=Sg(t,st,o.unit),Rn=gr.anchor,Dn;pe(Vn.anchor,Rn)>0?(Dn=Vn.head,Rn=qt(gr.from(),Vn.anchor)):(Dn=Vn.anchor,Rn=yt(gr.to(),Vn.head));var Sn=_.ranges.slice(0);Sn[y]=Ok(t,new Jt(gt(f,Rn),Dn)),Qn(f,ei(t,Sn,y),Q)}}var we=l.wrapper.getBoundingClientRect(),je=0;function Ve(st){var mt=++je,Tt=Co(t,st,!0,o.unit=="rectangle");if(!!Tt)if(pe(Tt,J)!=0){t.curOp.focus=Oe(se(t)),Se(Tt);var _t=Pl(l,f);(Tt.line>=_t.to||Tt.line<_t.from)&&setTimeout(Hn(t,function(){je==mt&&Ve(st)}),150)}else{var Ht=st.clientYwe.bottom?20:0;Ht&&setTimeout(Hn(t,function(){je==mt&&(l.scroller.scrollTop+=Ht,Ve(st))}),50)}}function tt(st){t.state.selectingText=!1,je=1/0,st&&(Bt(st),l.input.focus()),nt(l.wrapper.ownerDocument,"mousemove",lt),nt(l.wrapper.ownerDocument,"mouseup",pt),f.history.lastSelOrigin=null}var lt=Hn(t,function(st){st.buttons===0||!F(st)?tt(st):Ve(st)}),pt=Hn(t,tt);t.state.selectingText=pt,Te(l.wrapper.ownerDocument,"mousemove",lt),Te(l.wrapper.ownerDocument,"mouseup",pt)}function Ok(t,r){var a=r.anchor,o=r.head,l=ft(t.doc,a.line);if(pe(a,o)==0&&a.sticky==o.sticky)return r;var f=Z(l);if(!f)return r;var p=Be(f,a.ch,a.sticky),y=f[p];if(y.from!=a.ch&&y.to!=a.ch)return r;var _=p+(y.from==a.ch==(y.level!=1)?0:1);if(_==0||_==f.length)return r;var C;if(o.line!=a.line)C=(o.line-a.line)*(t.doc.direction=="ltr"?1:-1)>0;else{var $=Be(f,o.ch,o.sticky),J=$-p||(o.ch-a.ch)*(y.level==1?-1:1);$==_-1||$==_?C=J<0:C=J>0}var Se=f[_+(C?-1:0)],we=C==(Se.level==1),je=we?Se.from:Se.to,Ve=we?"after":"before";return a.ch==je&&a.sticky==Ve?r:new Jt(new K(a.line,je,Ve),o)}function bg(t,r,a,o){var l,f;if(r.touches)l=r.touches[0].clientX,f=r.touches[0].clientY;else try{l=r.clientX,f=r.clientY}catch{return!1}if(l>=Math.floor(t.display.gutters.getBoundingClientRect().right))return!1;o&&Bt(r);var p=t.display,y=p.lineDiv.getBoundingClientRect();if(f>y.bottom||!Ct(t,a))return vn(r);f-=y.top-p.viewOffset;for(var _=0;_=l){var $=Qe(t.doc,f),J=t.display.gutterSpecs[_];return at(t,a,t,$,J.className,r),vn(r)}}}function Ic(t,r){return bg(t,r,"gutterClick",!0)}function Cg(t,r){Si(t.display,r)||Dk(t,r)||vt(t,r,"contextmenu")||g||t.display.input.onContextMenu(r)}function Dk(t,r){return Ct(t,"gutterContextMenu")?bg(t,r,"gutterContextMenu",!1):!1}function Mg(t){t.display.wrapper.className=t.display.wrapper.className.replace(/\s*cm-s-\S+/g,"")+t.options.theme.replace(/(^|\s)\s*/g," cm-s-"),iu(t)}var ya={toString:function(){return"CodeMirror.Init"}},Eg={},jl={};function Ak(t){var r=t.optionHandlers;function a(o,l,f,p){t.defaults[o]=l,f&&(r[o]=p?function(y,_,C){C!=ya&&f(y,_,C)}:f)}t.defineOption=a,t.Init=ya,a("value","",function(o,l){return o.setValue(l)},!0),a("mode",null,function(o,l){o.doc.modeOption=l,bc(o)},!0),a("indentUnit",2,bc,!0),a("indentWithTabs",!1),a("smartIndent",!0),a("tabSize",4,function(o){hu(o),iu(o),dr(o)},!0),a("lineSeparator",null,function(o,l){if(o.doc.lineSep=l,!!l){var f=[],p=o.doc.first;o.doc.iter(function(_){for(var C=0;;){var $=_.text.indexOf(l,C);if($==-1)break;C=$+l.length,f.push(K(p,$))}p++});for(var y=f.length-1;y>=0;y--)pa(o.doc,l,f[y],K(f[y].line,f[y].ch+l.length))}}),a("specialChars",/[\u0000-\u001f\u007f-\u009f\u00ad\u061c\u200b\u200e\u200f\u2028\u2029\u202d\u202e\u2066\u2067\u2069\ufeff\ufff9-\ufffc]/g,function(o,l,f){o.state.specialChars=new RegExp(l.source+(l.test(" ")?"":"| "),"g"),f!=ya&&o.refresh()}),a("specialCharPlaceholder",s_,function(o){return o.refresh()},!0),a("electricChars",!0),a("inputStyle",q?"contenteditable":"textarea",function(){throw new Error("inputStyle can not (yet) be changed in a running editor")},!0),a("spellcheck",!1,function(o,l){return o.getInputField().spellcheck=l},!0),a("autocorrect",!1,function(o,l){return o.getInputField().autocorrect=l},!0),a("autocapitalize",!1,function(o,l){return o.getInputField().autocapitalize=l},!0),a("rtlMoveVisually",!Ue),a("wholeLineUpdateBefore",!0),a("theme","default",function(o){Mg(o),cu(o)},!0),a("keyMap","default",function(o,l,f){var p=Ul(l),y=f!=ya&&Ul(f);y&&y.detach&&y.detach(o,p),p.attach&&p.attach(o,y||null)}),a("extraKeys",null),a("configureMouse",null),a("lineWrapping",!1,Rk,!0),a("gutters",[],function(o,l){o.display.gutterSpecs=Tc(l,o.options.lineNumbers),cu(o)},!0),a("fixedGutter",!0,function(o,l){o.display.gutters.style.left=l?cc(o.display)+"px":"0",o.refresh()},!0),a("coverGutterNextToScrollbar",!1,function(o){return fa(o)},!0),a("scrollbarStyle","native",function(o){Pv(o),fa(o),o.display.scrollbars.setScrollTop(o.doc.scrollTop),o.display.scrollbars.setScrollLeft(o.doc.scrollLeft)},!0),a("lineNumbers",!1,function(o,l){o.display.gutterSpecs=Tc(o.options.gutters,l),cu(o)},!0),a("firstLineNumber",1,cu,!0),a("lineNumberFormatter",function(o){return o},cu,!0),a("showCursorWhenSelecting",!1,ou,!0),a("resetSelectionOnContextMenu",!0),a("lineWiseCopyCut",!0),a("pasteLinesPerSelection",!0),a("selectionsMayTouch",!1),a("readOnly",!1,function(o,l){l=="nocursor"&&(la(o),o.display.input.blur()),o.display.input.readOnlyChanged(l)}),a("screenReaderLabel",null,function(o,l){l=l===""?null:l,o.display.input.screenReaderLabelChanged(l)}),a("disableInput",!1,function(o,l){l||o.display.input.reset()},!0),a("dragDrop",!0,Ik),a("allowDropFileTypes",null),a("cursorBlinkRate",530),a("cursorScrollMargin",0),a("cursorHeight",1,ou,!0),a("singleCursorHeightPerLine",!0,ou,!0),a("workTime",100),a("workDelay",100),a("flattenSpans",!0,hu,!0),a("addModeClass",!1,hu,!0),a("pollInterval",100),a("undoDepth",200,function(o,l){return o.doc.history.undoDepth=l}),a("historyEventDelay",1250),a("viewportMargin",10,function(o){return o.refresh()},!0),a("maxHighlightLength",1e4,hu,!0),a("moveInputWithCursor",!0,function(o,l){l||o.display.input.resetPosition()}),a("tabindex",null,function(o,l){return o.display.input.getField().tabIndex=l||""}),a("autofocus",null),a("direction","ltr",function(o,l){return o.doc.setDirection(l)},!0),a("phrases",null)}function Ik(t,r,a){var o=a&&a!=ya;if(!r!=!o){var l=t.display.dragFunctions,f=r?Te:nt;f(t.display.scroller,"dragstart",l.start),f(t.display.scroller,"dragenter",l.enter),f(t.display.scroller,"dragover",l.over),f(t.display.scroller,"dragleave",l.leave),f(t.display.scroller,"drop",l.drop)}}function Rk(t){t.options.lineWrapping?(fe(t.display.wrapper,"CodeMirror-wrap"),t.display.sizer.style.minWidth="",t.display.sizerWidth=null):(E(t.display.wrapper,"CodeMirror-wrap"),To(t)),hc(t),dr(t),iu(t),setTimeout(function(){return fa(t)},100)}function mn(t,r){var a=this;if(!(this instanceof mn))return new mn(t,r);this.options=r=r?_e(r):{},_e(Eg,r,!1);var o=r.value;typeof o=="string"?o=new pr(o,r.mode,null,r.lineSeparator,r.direction):r.mode&&(o.modeOption=r.mode),this.doc=o;var l=new mn.inputStyles[r.inputStyle](this),f=this.display=new X_(t,o,l,r);f.wrapper.CodeMirror=this,Mg(this),r.lineWrapping&&(this.display.wrapper.className+=" CodeMirror-wrap"),Pv(this),this.state={keyMaps:[],overlays:[],modeGen:0,overwrite:!1,delayingBlurEvent:!1,focused:!1,suppressEdits:!1,pasteIncoming:-1,cutIncoming:-1,selectingText:!1,draggingText:!1,highlight:new Ae,keySeq:null,specialChars:null},r.autofocus&&!q&&f.input.focus(),d&&v<11&&setTimeout(function(){return a.display.input.reset(!0)},20),Fk(this),pk(),Po(this),this.curOp.forceUpdate=!0,Wv(this,o),r.autofocus&&!q||this.hasFocus()?setTimeout(function(){a.hasFocus()&&!a.state.focused&&gc(a)},20):la(this);for(var p in jl)jl.hasOwnProperty(p)&&jl[p](this,r[p],ya);Dv(this),r.finishInit&&r.finishInit(this);for(var y=0;y20*20}Te(r.scroller,"touchstart",function(_){if(!vt(t,_)&&!f(_)&&!Ic(t,_)){r.input.ensurePolled(),clearTimeout(a);var C=+new Date;r.activeTouch={start:C,moved:!1,prev:C-o.end<=300?o:null},_.touches.length==1&&(r.activeTouch.left=_.touches[0].pageX,r.activeTouch.top=_.touches[0].pageY)}}),Te(r.scroller,"touchmove",function(){r.activeTouch&&(r.activeTouch.moved=!0)}),Te(r.scroller,"touchend",function(_){var C=r.activeTouch;if(C&&!Si(r,_)&&C.left!=null&&!C.moved&&new Date-C.start<300){var $=t.coordsChar(r.activeTouch,"page"),J;!C.prev||p(C,C.prev)?J=new Jt($,$):!C.prev.prev||p(C,C.prev.prev)?J=t.findWordAt($):J=new Jt(K($.line,0),gt(t.doc,K($.line+1,0))),t.setSelection(J.anchor,J.head),t.focus(),Bt(_)}l()}),Te(r.scroller,"touchcancel",l),Te(r.scroller,"scroll",function(){r.scroller.clientHeight&&(uu(t,r.scroller.scrollTop),Eo(t,r.scroller.scrollLeft,!0),at(t,"scroll",t))}),Te(r.scroller,"mousewheel",function(_){return Rv(t,_)}),Te(r.scroller,"DOMMouseScroll",function(_){return Rv(t,_)}),Te(r.wrapper,"scroll",function(){return r.wrapper.scrollTop=r.wrapper.scrollLeft=0}),r.dragFunctions={enter:function(_){vt(t,_)||G(_)},over:function(_){vt(t,_)||(dk(t,_),G(_))},start:function(_){return hk(t,_)},drop:Hn(t,ck),leave:function(_){vt(t,_)||fg(t)}};var y=r.input.getField();Te(y,"keyup",function(_){return _g.call(t,_)}),Te(y,"keydown",Hn(t,xg)),Te(y,"keypress",Hn(t,kg)),Te(y,"focus",function(_){return gc(t,_)}),Te(y,"blur",function(_){return la(t,_)})}var Rc=[];mn.defineInitHook=function(t){return Rc.push(t)};function bu(t,r,a,o){var l=t.doc,f;a==null&&(a="add"),a=="smart"&&(l.mode.indent?f=U(t,r).state:a="prev");var p=t.options.tabSize,y=ft(l,r),_=Re(y.text,null,p);y.stateAfter&&(y.stateAfter=null);var C=y.text.match(/^\s*/)[0],$;if(!o&&!/\S/.test(y.text))$=0,a="not";else if(a=="smart"&&($=l.mode.indent(f,y.text.slice(C.length),y.text),$==me||$>150)){if(!o)return;a="prev"}a=="prev"?r>l.first?$=Re(ft(l,r-1).text,null,p):$=0:a=="add"?$=_+t.options.indentUnit:a=="subtract"?$=_-t.options.indentUnit:typeof a=="number"&&($=_+a),$=Math.max(0,$);var J="",Se=0;if(t.options.indentWithTabs)for(var we=Math.floor($/p);we;--we)Se+=p,J+=" ";if(Se<$&&(J+=it($-Se)),J!=C)return pa(l,J,K(r,0),K(r,C.length),"+input"),y.stateAfter=null,!0;for(var je=0;jep,_=xe(r),C=null;if(y&&o.ranges.length>1)if(ti&&ti.text.join(` -`)==r){if(o.ranges.length%ti.text.length==0){C=[];for(var $=0;$=0;Se--){var we=o.ranges[Se],je=we.from(),Ve=we.to();we.empty()&&(a&&a>0?je=K(je.line,je.ch-a):t.state.overwrite&&!y?Ve=K(Ve.line,Math.min(ft(f,Ve.line).text.length,Ve.ch+Je(_).length)):y&&ti&&ti.lineWise&&ti.text.join(` + left: `+r.left+"px; width: "+Math.max(2,r.right-r.left)+"px;");t.display.lineSpace.appendChild(f),f.scrollIntoView(l),t.display.lineSpace.removeChild(f)}}}function O_(t,r,a,o){o==null&&(o=0);var l;!t.options.lineWrapping&&r==a&&(r=r.ch?W(r.line,r.sticky=="before"?r.ch-1:r.ch,"after"):r,a=r.sticky=="before"?W(r.line,r.ch+1,"before"):r);for(var f=0;f<5;f++){var v=!1,y=ei(t,r),_=!a||a==r?y:ei(t,a);l={left:Math.min(y.left,_.left),top:Math.min(y.top,_.top)-o,right:Math.max(y.left,_.left),bottom:Math.max(y.bottom,_.bottom)+o};var C=yc(t,l),K=t.doc.scrollTop,ee=t.doc.scrollLeft;if(C.scrollTop!=null&&(au(t,C.scrollTop),Math.abs(t.doc.scrollTop-K)>1&&(v=!0)),C.scrollLeft!=null&&(Mo(t,C.scrollLeft),Math.abs(t.doc.scrollLeft-ee)>1&&(v=!0)),!v)break}return l}function D_(t,r){var a=yc(t,r);a.scrollTop!=null&&au(t,a.scrollTop),a.scrollLeft!=null&&Mo(t,a.scrollLeft)}function yc(t,r){var a=t.display,o=ra(t.display);r.top<0&&(r.top=0);var l=t.curOp&&t.curOp.scrollTop!=null?t.curOp.scrollTop:a.scroller.scrollTop,f=oc(t),v={};r.bottom-r.top>f&&(r.bottom=r.top+f);var y=t.doc.height+ic(a),_=r.topy-o;if(r.topl+f){var K=Math.min(r.top,(C?y:r.bottom)-f);K!=l&&(v.scrollTop=K)}var ee=t.options.fixedGutter?0:a.gutters.offsetWidth,be=t.curOp&&t.curOp.scrollLeft!=null?t.curOp.scrollLeft:a.scroller.scrollLeft-ee,ke=To(t)-a.gutters.offsetWidth,ze=r.right-r.left>ke;return ze&&(r.right=r.left+ke),r.left<10?v.scrollLeft=0:r.leftke+be-3&&(v.scrollLeft=r.right+(ze?0:10)-ke),v}function wc(t,r){r!=null&&(Ll(t),t.curOp.scrollTop=(t.curOp.scrollTop==null?t.doc.scrollTop:t.curOp.scrollTop)+r)}function aa(t){Ll(t);var r=t.getCursor();t.curOp.scrollToPos={from:r,to:r,margin:t.options.cursorScrollMargin}}function ou(t,r,a){(r!=null||a!=null)&&Ll(t),r!=null&&(t.curOp.scrollLeft=r),a!=null&&(t.curOp.scrollTop=a)}function A_(t,r){Ll(t),t.curOp.scrollToPos=r}function Ll(t){var r=t.curOp.scrollToPos;if(r){t.curOp.scrollToPos=null;var a=yv(t,r.from),o=yv(t,r.to);Mv(t,a,o,r.margin)}}function Mv(t,r,a,o){var l=yc(t,{left:Math.min(r.left,a.left),top:Math.min(r.top,a.top)-o,right:Math.max(r.right,a.right),bottom:Math.max(r.bottom,a.bottom)+o});ou(t,l.scrollLeft,l.scrollTop)}function au(t,r){Math.abs(t.doc.scrollTop-r)<2||(i||_c(t,{top:r}),Ev(t,r,!0),i&&_c(t),su(t,100))}function Ev(t,r,a){r=Math.max(0,Math.min(t.display.scroller.scrollHeight-t.display.scroller.clientHeight,r)),!(t.display.scroller.scrollTop==r&&!a)&&(t.doc.scrollTop=r,t.display.scrollbars.setScrollTop(r),t.display.scroller.scrollTop!=r&&(t.display.scroller.scrollTop=r))}function Mo(t,r,a,o){r=Math.max(0,Math.min(r,t.display.scroller.scrollWidth-t.display.scroller.clientWidth)),!((a?r==t.doc.scrollLeft:Math.abs(t.doc.scrollLeft-r)<2)&&!o)&&(t.doc.scrollLeft=r,Dv(t),t.display.scroller.scrollLeft!=r&&(t.display.scroller.scrollLeft=r),t.display.scrollbars.setScrollLeft(r))}function uu(t){var r=t.display,a=r.gutters.offsetWidth,o=Math.round(t.doc.height+ic(t.display));return{clientHeight:r.scroller.clientHeight,viewHeight:r.wrapper.clientHeight,scrollWidth:r.scroller.scrollWidth,clientWidth:r.scroller.clientWidth,viewWidth:r.wrapper.clientWidth,barLeft:t.options.fixedGutter?a:0,docHeight:o,scrollHeight:o+ci(t)+r.barHeight,nativeBarWidth:r.nativeBarWidth,gutterWidth:a}}var Eo=function(t,r,a){this.cm=a;var o=this.vert=w("div",[w("div",null,null,"min-width: 1px")],"CodeMirror-vscrollbar"),l=this.horiz=w("div",[w("div",null,null,"height: 100%; min-height: 1px")],"CodeMirror-hscrollbar");o.tabIndex=l.tabIndex=-1,t(o),t(l),M(o,"scroll",function(){o.clientHeight&&r(o.scrollTop,"vertical")}),M(l,"scroll",function(){l.clientWidth&&r(l.scrollLeft,"horizontal")}),this.checkedZeroWidth=!1,d&&p<8&&(this.horiz.style.minHeight=this.vert.style.minWidth="18px")};Eo.prototype.update=function(t){var r=t.scrollWidth>t.clientWidth+1,a=t.scrollHeight>t.clientHeight+1,o=t.nativeBarWidth;if(a){this.vert.style.display="block",this.vert.style.bottom=r?o+"px":"0";var l=t.viewHeight-(r?o:0);this.vert.firstChild.style.height=Math.max(0,t.scrollHeight-t.clientHeight+l)+"px"}else this.vert.style.display="",this.vert.firstChild.style.height="0";if(r){this.horiz.style.display="block",this.horiz.style.right=a?o+"px":"0",this.horiz.style.left=t.barLeft+"px";var f=t.viewWidth-t.barLeft-(a?o:0);this.horiz.firstChild.style.width=Math.max(0,t.scrollWidth-t.clientWidth+f)+"px"}else this.horiz.style.display="",this.horiz.firstChild.style.width="0";return!this.checkedZeroWidth&&t.clientHeight>0&&(o==0&&this.zeroWidthHack(),this.checkedZeroWidth=!0),{right:a?o:0,bottom:r?o:0}},Eo.prototype.setScrollLeft=function(t){this.horiz.scrollLeft!=t&&(this.horiz.scrollLeft=t),this.disableHoriz&&this.enableZeroWidthBar(this.horiz,this.disableHoriz,"horiz")},Eo.prototype.setScrollTop=function(t){this.vert.scrollTop!=t&&(this.vert.scrollTop=t),this.disableVert&&this.enableZeroWidthBar(this.vert,this.disableVert,"vert")},Eo.prototype.zeroWidthHack=function(){var t=j&&!ve?"12px":"18px";this.horiz.style.height=this.vert.style.width=t,this.horiz.style.pointerEvents=this.vert.style.pointerEvents="none",this.disableHoriz=new de,this.disableVert=new de},Eo.prototype.enableZeroWidthBar=function(t,r,a){t.style.pointerEvents="auto";function o(){var l=t.getBoundingClientRect(),f=a=="vert"?document.elementFromPoint(l.right-1,(l.top+l.bottom)/2):document.elementFromPoint((l.right+l.left)/2,l.bottom-1);f!=t?t.style.pointerEvents="none":r.set(1e3,o)}r.set(1e3,o)},Eo.prototype.clear=function(){var t=this.horiz.parentNode;t.removeChild(this.horiz),t.removeChild(this.vert)};var lu=function(){};lu.prototype.update=function(){return{bottom:0,right:0}},lu.prototype.setScrollLeft=function(){},lu.prototype.setScrollTop=function(){},lu.prototype.clear=function(){};function ua(t,r){r||(r=uu(t));var a=t.display.barWidth,o=t.display.barHeight;Nv(t,r);for(var l=0;l<4&&a!=t.display.barWidth||o!=t.display.barHeight;l++)a!=t.display.barWidth&&t.options.lineWrapping&&Nl(t),Nv(t,uu(t)),a=t.display.barWidth,o=t.display.barHeight}function Nv(t,r){var a=t.display,o=a.scrollbars.update(r);a.sizer.style.paddingRight=(a.barWidth=o.right)+"px",a.sizer.style.paddingBottom=(a.barHeight=o.bottom)+"px",a.heightForcer.style.borderBottom=o.bottom+"px solid transparent",o.right&&o.bottom?(a.scrollbarFiller.style.display="block",a.scrollbarFiller.style.height=o.bottom+"px",a.scrollbarFiller.style.width=o.right+"px"):a.scrollbarFiller.style.display="",o.bottom&&t.options.coverGutterNextToScrollbar&&t.options.fixedGutter?(a.gutterFiller.style.display="block",a.gutterFiller.style.height=o.bottom+"px",a.gutterFiller.style.width=r.gutterWidth+"px"):a.gutterFiller.style.display=""}var Pv={native:Eo,null:lu};function Lv(t){t.display.scrollbars&&(t.display.scrollbars.clear(),t.display.scrollbars.addClass&&k(t.display.wrapper,t.display.scrollbars.addClass)),t.display.scrollbars=new Pv[t.options.scrollbarStyle](function(r){t.display.wrapper.insertBefore(r,t.display.scrollbarFiller),M(r,"mousedown",function(){t.state.focused&&setTimeout(function(){return t.display.input.focus()},0)}),r.setAttribute("cm-not-content","true")},function(r,a){a=="horizontal"?Mo(t,r):au(t,r)},t),t.display.scrollbars.addClass&&Ne(t.display.wrapper,t.display.scrollbars.addClass)}var I_=0;function No(t){t.curOp={cm:t,viewChanged:!1,startHeight:t.doc.height,forceUpdate:!1,updateInput:0,typing:!1,changeObjs:null,cursorActivityHandlers:null,cursorActivityCalled:0,selectionChanged:!1,updateMaxLine:!1,scrollLeft:null,scrollTop:null,scrollToPos:null,focus:!1,id:++I_},h_(t.curOp)}function Po(t){var r=t.curOp;r&&p_(r,function(a){for(var o=0;o=a.viewTo)||a.maxLineChanged&&r.options.lineWrapping,t.update=t.mustUpdate&&new Ol(r,t.mustUpdate&&{top:t.scrollTop,ensure:t.scrollToPos},t.forceUpdate)}function z_(t){t.updatedDisplay=t.mustUpdate&&xc(t.cm,t.update)}function H_(t){var r=t.cm,a=r.display;t.updatedDisplay&&Nl(r),t.barMeasure=uu(r),a.maxLineChanged&&!r.options.lineWrapping&&(t.adjustWidthTo=fv(r,a.maxLine,a.maxLine.text.length).left+3,r.display.sizerWidth=t.adjustWidthTo,t.barMeasure.scrollWidth=Math.max(a.scroller.clientWidth,a.sizer.offsetLeft+t.adjustWidthTo+ci(r)+r.display.barWidth),t.maxScrollLeft=Math.max(0,a.sizer.offsetLeft+t.adjustWidthTo-To(r))),(t.updatedDisplay||t.selectionChanged)&&(t.preparedSelection=a.input.prepareSelection())}function W_(t){var r=t.cm;t.adjustWidthTo!=null&&(r.display.sizer.style.minWidth=t.adjustWidthTo+"px",t.maxScrollLeft=t.display.viewTo)){var a=+new Date+t.options.workTime,o=Zr(t,r.highlightFrontier),l=[];r.iter(o.line,Math.min(r.first+r.size,t.display.viewTo+500),function(f){if(o.line>=t.display.viewFrom){var v=f.styles,y=f.text.length>t.options.maxHighlightLength?fn(r.mode,o.state):null,_=ki(t,f,o,!0);y&&(o.state=y),f.styles=_.styles;var C=f.styleClasses,K=_.classes;K?f.styleClasses=K:C&&(f.styleClasses=null);for(var ee=!v||v.length!=f.styles.length||C!=K&&(!C||!K||C.bgClass!=K.bgClass||C.textClass!=K.textClass),be=0;!ee&&bea)return su(t,t.options.workDelay),!0}),r.highlightFrontier=o.line,r.modeFrontier=Math.max(r.modeFrontier,o.line),l.length&&br(t,function(){for(var f=0;f=a.viewFrom&&r.visible.to<=a.viewTo&&(a.updateLineNumbers==null||a.updateLineNumbers>=a.viewTo)&&a.renderedView==a.view&&kv(t)==0)return!1;Av(t)&&(Bi(t),r.dims=hc(t));var l=o.first+o.size,f=Math.max(r.visible.from-t.options.viewportMargin,o.first),v=Math.min(l,r.visible.to+t.options.viewportMargin);a.viewFromv&&a.viewTo-v<20&&(v=Math.min(l,a.viewTo)),Je&&(f=Wi(t.doc,f),v=xo(t.doc,v));var y=f!=a.viewFrom||v!=a.viewTo||a.lastWrapHeight!=r.wrapperHeight||a.lastWrapWidth!=r.wrapperWidth;N_(t,f,v),a.viewOffset=Ir(ft(t.doc,a.viewFrom)),t.display.mover.style.top=a.viewOffset+"px";var _=kv(t);if(!y&&_==0&&!r.force&&a.renderedView==a.view&&(a.updateLineNumbers==null||a.updateLineNumbers>=a.viewTo))return!1;var C=Y_(t);return _>4&&(a.lineDiv.style.display="none"),G_(t,a.updateLineNumbers,r.dims),_>4&&(a.lineDiv.style.display=""),a.renderedView=a.view,q_(C),S(a.cursorDiv),S(a.selectionDiv),a.gutters.style.height=a.sizer.style.minHeight=0,y&&(a.lastWrapHeight=r.wrapperHeight,a.lastWrapWidth=r.wrapperWidth,su(t,400)),a.updateLineNumbers=null,!0}function Ov(t,r){for(var a=r.viewport,o=!0;;o=!1){if(!o||!t.options.lineWrapping||r.oldDisplayWidth==To(t)){if(a&&a.top!=null&&(a={top:Math.min(t.doc.height+ic(t.display)-oc(t),a.top)}),r.visible=Pl(t.display,t.doc,a),r.visible.from>=t.display.viewFrom&&r.visible.to<=t.display.viewTo)break}else o&&(r.visible=Pl(t.display,t.doc,a));if(!xc(t,r))break;Nl(t);var l=uu(t);iu(t),ua(t,l),Tc(t,l),r.force=!1}r.signal(t,"update",t),(t.display.viewFrom!=t.display.reportedViewFrom||t.display.viewTo!=t.display.reportedViewTo)&&(r.signal(t,"viewportChange",t,t.display.viewFrom,t.display.viewTo),t.display.reportedViewFrom=t.display.viewFrom,t.display.reportedViewTo=t.display.viewTo)}function _c(t,r){var a=new Ol(t,r);if(xc(t,a)){Nl(t),Ov(t,a);var o=uu(t);iu(t),ua(t,o),Tc(t,o),a.finish()}}function G_(t,r,a){var o=t.display,l=t.options.lineNumbers,f=o.lineDiv,v=f.firstChild;function y(ze){var $e=ze.nextSibling;return b&&j&&t.display.currentWheelTarget==ze?ze.style.display="none":ze.parentNode.removeChild(ze),$e}for(var _=o.view,C=o.viewFrom,K=0;K<_.length;K++){var ee=_[K];if(!ee.hidden)if(!ee.node||ee.node.parentNode!=f){var be=w_(t,ee,C,a);f.insertBefore(be,v)}else{for(;v!=ee.node;)v=y(v);var ke=l&&r!=null&&r<=C&&ee.lineNumber;ee.changes&&(ge(ee.changes,"gutter")>-1&&(ke=!1),rv(t,ee,C,a)),ke&&(S(ee.lineNumber),ee.lineNumber.appendChild(document.createTextNode(D(t.options,C)))),v=ee.node.nextSibling}C+=ee.size}for(;v;)v=y(v)}function kc(t){var r=t.gutters.offsetWidth;t.sizer.style.marginLeft=r+"px"}function Tc(t,r){t.display.sizer.style.minHeight=r.docHeight+"px",t.display.heightForcer.style.top=r.docHeight+"px",t.display.gutters.style.height=r.docHeight+t.display.barHeight+ci(t)+"px"}function Dv(t){var r=t.display,a=r.view;if(!(!r.alignWidgets&&(!r.gutters.firstChild||!t.options.fixedGutter))){for(var o=dc(r)-r.scroller.scrollLeft+t.doc.scrollLeft,l=r.gutters.offsetWidth,f=o+"px",v=0;vv.clientWidth,_=v.scrollHeight>v.clientHeight;if(!!(o&&y||l&&_)){if(l&&j&&b){e:for(var C=r.target,K=f.view;C!=v;C=C.parentNode)for(var ee=0;ee=0&&ie(t,o.to())<=0)return a}return-1};var Zt=function(t,r){this.anchor=t,this.head=r};Zt.prototype.from=function(){return ct(this.anchor,this.head)},Zt.prototype.to=function(){return Xe(this.anchor,this.head)},Zt.prototype.empty=function(){return this.head.line==this.anchor.line&&this.head.ch==this.anchor.ch};function ti(t,r,a){var o=t&&t.options.selectionsMayTouch,l=r[a];r.sort(function(be,ke){return ie(be.from(),ke.from())}),a=ge(r,l);for(var f=1;f0:_>=0){var C=ct(y.from(),v.from()),K=Xe(y.to(),v.to()),ee=y.empty()?v.from()==v.head:y.from()==y.head;f<=a&&--a,r.splice(--f,2,new Zt(ee?K:C,ee?C:K))}}return new Fr(r,a)}function ji(t,r){return new Fr([new Zt(t,r||t)],0)}function Yi(t){return t.text?W(t.from.line+t.text.length-1,ce(t.text).length+(t.text.length==1?t.from.ch:0)):t.to}function zv(t,r){if(ie(t,r.from)<0)return t;if(ie(t,r.to)<=0)return Yi(r);var a=t.line+r.text.length-(r.to.line-r.from.line)-1,o=t.ch;return t.line==r.to.line&&(o+=Yi(r).ch-r.to.ch),W(a,o)}function bc(t,r){for(var a=[],o=0;o1&&t.remove(y.line+1,ze-1),t.insert(y.line+1,ot)}qn(t,"change",t,r)}function qi(t,r,a){function o(l,f,v){if(l.linked)for(var y=0;y1&&!t.done[t.done.length-2].ranges)return t.done.pop(),ce(t.done)}function Yv(t,r,a,o){var l=t.history;l.undone.length=0;var f=+new Date,v,y;if((l.lastOp==o||l.lastOrigin==r.origin&&r.origin&&(r.origin.charAt(0)=="+"&&l.lastModTime>f-(t.cm?t.cm.options.historyEventDelay:500)||r.origin.charAt(0)=="*"))&&(v=Q_(l,l.lastOp==o)))y=ce(v.changes),ie(r.from,r.to)==0&&ie(r.from,y.to)==0?y.to=Yi(r):v.changes.push(Ec(t,r));else{var _=ce(l.done);for((!_||!_.ranges)&&Il(t.sel,l.done),v={changes:[Ec(t,r)],generation:l.generation},l.done.push(v);l.done.length>l.undoDepth;)l.done.shift(),l.done[0].ranges||l.done.shift()}l.done.push(a),l.generation=++l.maxGeneration,l.lastModTime=l.lastSelTime=f,l.lastOp=l.lastSelOp=o,l.lastOrigin=l.lastSelOrigin=r.origin,y||Be(t,"historyAdded")}function Z_(t,r,a,o){var l=r.charAt(0);return l=="*"||l=="+"&&a.ranges.length==o.ranges.length&&a.somethingSelected()==o.somethingSelected()&&new Date-t.history.lastSelTime<=(t.cm?t.cm.options.historyEventDelay:500)}function J_(t,r,a,o){var l=t.history,f=o&&o.origin;a==l.lastSelOp||f&&l.lastSelOrigin==f&&(l.lastModTime==l.lastSelTime&&l.lastOrigin==f||Z_(t,f,ce(l.done),r))?l.done[l.done.length-1]=r:Il(r,l.done),l.lastSelTime=+new Date,l.lastSelOrigin=f,l.lastSelOp=a,o&&o.clearRedo!==!1&&jv(l.undone)}function Il(t,r){var a=ce(r);a&&a.ranges&&a.equals(t)||r.push(t)}function qv(t,r,a,o){var l=r["spans_"+t.id],f=0;t.iter(Math.max(t.first,a),Math.min(t.first+t.size,o),function(v){v.markedSpans&&((l||(l=r["spans_"+t.id]={}))[f]=v.markedSpans),++f})}function ek(t){if(!t)return null;for(var r,a=0;a-1&&(ce(y)[ee]=C[ee],delete C[ee])}}return o}function Nc(t,r,a,o){if(o){var l=t.anchor;if(a){var f=ie(r,l)<0;f!=ie(a,l)<0?(l=r,r=a):f!=ie(r,a)<0&&(r=a)}return new Zt(l,r)}else return new Zt(a||r,r)}function Rl(t,r,a,o,l){l==null&&(l=t.cm&&(t.cm.display.shift||t.extend)),Jn(t,new Fr([Nc(t.sel.primary(),r,a,l)],0),o)}function $v(t,r,a){for(var o=[],l=t.cm&&(t.cm.display.shift||t.extend),f=0;f=r.ch:y.to>r.ch))){if(l&&(Be(_,"beforeCursorEnter"),_.explicitlyCleared))if(f.markedSpans){--v;continue}else break;if(!_.atomic)continue;if(a){var ee=_.find(o<0?1:-1),be=void 0;if((o<0?K:C)&&(ee=Jv(t,ee,-o,ee&&ee.line==r.line?f:null)),ee&&ee.line==r.line&&(be=ie(ee,a))&&(o<0?be<0:be>0))return sa(t,ee,r,o,l)}var ke=_.find(o<0?-1:1);return(o<0?C:K)&&(ke=Jv(t,ke,o,ke.line==r.line?f:null)),ke?sa(t,ke,r,o,l):null}}return r}function zl(t,r,a,o,l){var f=o||1,v=sa(t,r,a,f,l)||!l&&sa(t,r,a,f,!0)||sa(t,r,a,-f,l)||!l&&sa(t,r,a,-f,!0);return v||(t.cantEdit=!0,W(t.first,0))}function Jv(t,r,a,o){return a<0&&r.ch==0?r.line>t.first?lt(t,W(r.line-1)):null:a>0&&r.ch==(o||ft(t,r.line)).text.length?r.line=0;--l)ng(t,{from:o[l].from,to:o[l].to,text:l?[""]:r.text,origin:r.origin});else ng(t,r)}}function ng(t,r){if(!(r.text.length==1&&r.text[0]==""&&ie(r.from,r.to)==0)){var a=bc(t,r);Yv(t,r,a,t.cm?t.cm.curOp.id:NaN),hu(t,r,a,gn(t,r));var o=[];qi(t,function(l,f){!f&&ge(o,l.history)==-1&&(ag(l.history,r),o.push(l.history)),hu(l,r,null,gn(l,r))})}}function Hl(t,r,a){var o=t.cm&&t.cm.state.suppressEdits;if(!(o&&!a)){for(var l=t.history,f,v=t.sel,y=r=="undo"?l.done:l.undone,_=r=="undo"?l.undone:l.done,C=0;C=0;--ke){var ze=be(ke);if(ze)return ze.v}}}}function rg(t,r){if(r!=0&&(t.first+=r,t.sel=new Fr(Pe(t.sel.ranges,function(l){return new Zt(W(l.anchor.line+r,l.anchor.ch),W(l.head.line+r,l.head.ch))}),t.sel.primIndex),t.cm)){cr(t.cm,t.first,t.first-r,r);for(var a=t.cm.display,o=a.viewFrom;ot.lastLine())){if(r.from.linef&&(r={from:r.from,to:W(f,ft(t,f).text.length),text:[r.text[0]],origin:r.origin}),r.removed=bt(t,r.from,r.to),a||(a=bc(t,r)),t.cm?rk(t.cm,r,o):Mc(t,r,o),Fl(t,a,it),t.cantEdit&&zl(t,W(t.firstLine(),0))&&(t.cantEdit=!1)}}function rk(t,r,a){var o=t.doc,l=t.display,f=r.from,v=r.to,y=!1,_=f.line;t.options.lineWrapping||(_=Tt(Zn(ft(o,f.line))),o.iter(_,v.line+1,function(ke){if(ke==l.maxLine)return y=!0,!0})),o.sel.contains(r.from,r.to)>-1&&st(t),Mc(o,r,a,_v(t)),t.options.lineWrapping||(o.iter(_,f.line+r.text.length,function(ke){var ze=Sr(ke);ze>l.maxLineLength&&(l.maxLine=ke,l.maxLineLength=ze,l.maxLineChanged=!0,y=!1)}),y&&(t.curOp.updateMaxLine=!0)),je(o,f.line),su(t,400);var C=r.text.length-(v.line-f.line)-1;r.full?cr(t):f.line==v.line&&r.text.length==1&&!Wv(t.doc,r)?Ui(t,f.line,"text"):cr(t,f.line,v.line+1,C);var K=ht(t,"changes"),ee=ht(t,"change");if(ee||K){var be={from:f,to:v,text:r.text,removed:r.removed,origin:r.origin};ee&&qn(t,"change",t,be),K&&(t.curOp.changeObjs||(t.curOp.changeObjs=[])).push(be)}t.display.selForContextMenu=null}function ca(t,r,a,o,l){var f;o||(o=a),ie(o,a)<0&&(f=[o,a],a=f[0],o=f[1]),typeof r=="string"&&(r=t.splitLines(r)),fa(t,{from:a,to:o,text:r,origin:l})}function ig(t,r,a,o){a1||!(this.children[0]instanceof pu))){var y=[];this.collapse(y),this.children=[new pu(y)],this.children[0].parent=this}},collapse:function(t){for(var r=0;r50){for(var v=l.lines.length%25+25,y=v;y10);t.parent.maybeSpill()}},iterN:function(t,r,a){for(var o=0;ot.display.maxLineLength&&(t.display.maxLine=C,t.display.maxLineLength=K,t.display.maxLineChanged=!0)}o!=null&&t&&this.collapsed&&cr(t,o,l+1),this.lines.length=0,this.explicitlyCleared=!0,this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,t&&Qv(t.doc)),t&&qn(t,"markerCleared",t,this,o,l),r&&Po(t),this.parent&&this.parent.clear()}},Gi.prototype.find=function(t,r){t==null&&this.type=="bookmark"&&(t=1);for(var a,o,l=0;l0||v==0&&f.clearWhenEmpty!==!1)return f;if(f.replacedWith&&(f.collapsed=!0,f.widgetNode=F("span",[f.replacedWith],"CodeMirror-widget"),o.handleMouseEvents||f.widgetNode.setAttribute("cm-ignore-events","true"),o.insertLeft&&(f.widgetNode.insertLeft=!0)),f.collapsed){if(si(t,r.line,r,a,f)||r.line!=a.line&&si(t,a.line,r,a,f))throw new Error("Inserting collapsed marker partially overlapping an existing one");Nt()}f.addToHistory&&Yv(t,{from:r,to:a,origin:"markText"},t.sel,NaN);var y=r.line,_=t.cm,C;if(t.iter(y,a.line+1,function(ee){_&&f.collapsed&&!_.options.lineWrapping&&Zn(ee)==_.display.maxLine&&(C=!0),f.collapsed&&y!=r.line&&Qt(ee,0),$t(ee,new qt(f,y==r.line?r.ch:null,y==a.line?a.ch:null)),++y}),f.collapsed&&t.iter(r.line,a.line+1,function(ee){Ar(t,ee)&&Qt(ee,0)}),f.clearOnEnter&&M(f,"beforeCursorEnter",function(){return f.clear()}),f.readOnly&&(gt(),(t.history.done.length||t.history.undone.length)&&t.clearHistory()),f.collapsed&&(f.id=++lg,f.atomic=!0),_){if(C&&(_.curOp.updateMaxLine=!0),f.collapsed)cr(_,r.line,a.line+1);else if(f.className||f.startStyle||f.endStyle||f.css||f.attributes||f.title)for(var K=r.line;K<=a.line;K++)Ui(_,K,"text");f.atomic&&Qv(_.doc),qn(_,"markerAdded",_,f)}return f}var mu=function(t,r){this.markers=t,this.primary=r;for(var a=0;a=0;_--)fa(this,o[_]);y?Xv(this,y):this.cm&&aa(this.cm)}),undo:Hn(function(){Hl(this,"undo")}),redo:Hn(function(){Hl(this,"redo")}),undoSelection:Hn(function(){Hl(this,"undo",!0)}),redoSelection:Hn(function(){Hl(this,"redo",!0)}),setExtending:function(t){this.extend=t},getExtending:function(){return this.extend},historySize:function(){for(var t=this.history,r=0,a=0,o=0;o=t.ch)&&r.push(l.marker.parent||l.marker)}return r},findMarks:function(t,r,a){t=lt(this,t),r=lt(this,r);var o=[],l=t.line;return this.iter(t.line,r.line+1,function(f){var v=f.markedSpans;if(v)for(var y=0;y=_.to||_.from==null&&l!=t.line||_.from!=null&&l==r.line&&_.from>=r.ch)&&(!a||a(_.marker))&&o.push(_.marker.parent||_.marker)}++l}),o},getAllMarks:function(){var t=[];return this.iter(function(r){var a=r.markedSpans;if(a)for(var o=0;ot)return r=t,!0;t-=f,++a}),lt(this,W(a,r))},indexFromPos:function(t){t=lt(this,t);var r=t.ch;if(t.liner&&(r=t.from),t.to!=null&&t.to-1){r.state.draggingText(t),setTimeout(function(){return r.display.input.focus()},20);return}try{var K=t.dataTransfer.getData("Text");if(K){var ee;if(r.state.draggingText&&!r.state.draggingText.copy&&(ee=r.listSelections()),Fl(r.doc,ji(a,a)),ee)for(var be=0;be=0;y--)ca(t.doc,"",o[y].from,o[y].to,"+delete");aa(t)})}function Lc(t,r,a){var o=sn(t.text,r+a,a);return o<0||o>t.text.length?null:o}function Oc(t,r,a){var o=Lc(t,r.ch,a);return o==null?null:new W(r.line,o,a<0?"after":"before")}function Dc(t,r,a,o,l){if(t){r.doc.direction=="rtl"&&(l=-l);var f=qe(a,r.doc.direction);if(f){var v=l<0?ce(f):f[0],y=l<0==(v.level==1),_=y?"after":"before",C;if(v.level>0||r.doc.direction=="rtl"){var K=na(r,a);C=l<0?a.text.length-1:0;var ee=hi(r,K,C).top;C=Kt(function(be){return hi(r,K,be).top==ee},l<0==(v.level==1)?v.from:v.to-1,C),_=="before"&&(C=Lc(a,C,1))}else C=l<0?v.to:v.from;return new W(o,C,_)}}return new W(o,l<0?a.text.length:0,l<0?"before":"after")}function mk(t,r,a,o){var l=qe(r,t.doc.direction);if(!l)return Oc(r,a,o);a.ch>=r.text.length?(a.ch=r.text.length,a.sticky="before"):a.ch<=0&&(a.ch=0,a.sticky="after");var f=V(l,a.ch,a.sticky),v=l[f];if(t.doc.direction=="ltr"&&v.level%2==0&&(o>0?v.to>a.ch:v.from=v.from&&be>=K.begin)){var ke=ee?"before":"after";return new W(a.line,be,ke)}}var ze=function(ot,pt,at){for(var vt=function(hn,Wn){return Wn?new W(a.line,y(hn,1),"before"):new W(a.line,hn,"after")};ot>=0&&ot0==(kt.level!=1),Ft=xt?at.begin:y(at.end,-1);if(kt.from<=Ft&&Ft0?K.end:y(K.begin,-1);return Ze!=null&&!(o>0&&Ze==r.text.length)&&($e=ze(o>0?0:l.length-1,o,C(Ze)),$e)?$e:null}var xu={selectAll:eg,singleSelection:function(t){return t.setSelection(t.getCursor("anchor"),t.getCursor("head"),it)},killLine:function(t){return pa(t,function(r){if(r.empty()){var a=ft(t.doc,r.head.line).text.length;return r.head.ch==a&&r.head.line0)l=new W(l.line,l.ch+1),t.replaceRange(f.charAt(l.ch-1)+f.charAt(l.ch-2),W(l.line,l.ch-2),l,"+transpose");else if(l.line>t.doc.first){var v=ft(t.doc,l.line-1).text;v&&(l=new W(l.line,1),t.replaceRange(f.charAt(0)+t.doc.lineSeparator()+v.charAt(v.length-1),W(l.line-1,v.length-1),l,"+transpose"))}}a.push(new Zt(l,l))}t.setSelections(a)})},newlineAndIndent:function(t){return br(t,function(){for(var r=t.listSelections(),a=r.length-1;a>=0;a--)t.replaceRange(t.doc.lineSeparator(),r[a].anchor,r[a].head,"+input");r=t.listSelections();for(var o=0;ot&&ie(r,this.pos)==0&&a==this.button};var ku,Tu;function Sk(t,r){var a=+new Date;return Tu&&Tu.compare(a,t,r)?(ku=Tu=null,"triple"):ku&&ku.compare(a,t,r)?(Tu=new Ic(a,t,r),ku=null,"double"):(ku=new Ic(a,t,r),Tu=null,"single")}function Sg(t){var r=this,a=r.display;if(!(Ke(r,t)||a.activeTouch&&a.input.supportsTouch())){if(a.input.ensurePolled(),a.shift=t.shiftKey,bi(a,t)){b||(a.scroller.draggable=!1,setTimeout(function(){return a.scroller.draggable=!0},100));return}if(!Rc(r,t)){var o=bo(r,t),l=pn(t),f=o?Sk(o,l):"single";window.focus(),l==1&&r.state.selectingText&&r.state.selectingText(t),!(o&&bk(r,l,o,f,t))&&(l==1?o?Mk(r,o,f,t):Yt(t)==a.scroller&&St(t):l==2?(o&&Rl(r.doc,o),setTimeout(function(){return a.input.focus()},20)):l==3&&(c?r.display.input.onContextMenu(t):gc(r)))}}}function bk(t,r,a,o,l){var f="Click";return o=="double"?f="Double"+f:o=="triple"&&(f="Triple"+f),f=(r==1?"Left":r==2?"Middle":"Right")+f,_u(t,vg(f,l),l,function(v){if(typeof v=="string"&&(v=xu[v]),!v)return!1;var y=!1;try{t.isReadOnly()&&(t.state.suppressEdits=!0),y=v(t,a)!=We}finally{t.state.suppressEdits=!1}return y})}function Ck(t,r,a){var o=t.getOption("configureMouse"),l=o?o(t,r,a):{};if(l.unit==null){var f=se?a.shiftKey&&a.metaKey:a.altKey;l.unit=f?"rectangle":r=="single"?"char":r=="double"?"word":"line"}return(l.extend==null||t.doc.extend)&&(l.extend=t.doc.extend||a.shiftKey),l.addNew==null&&(l.addNew=j?a.metaKey:a.ctrlKey),l.moveOnDrag==null&&(l.moveOnDrag=!(j?a.altKey:a.ctrlKey)),l}function Mk(t,r,a,o){d?setTimeout(Ie(bv,t),0):t.curOp.focus=_e();var l=Ck(t,a,o),f=t.doc.sel,v;t.options.dragDrop&&X&&!t.isReadOnly()&&a=="single"&&(v=f.contains(r))>-1&&(ie((v=f.ranges[v]).from(),r)<0||r.xRel>0)&&(ie(v.to(),r)>0||r.xRel<0)?Ek(t,o,r,l):Nk(t,o,r,l)}function Ek(t,r,a,o){var l=t.display,f=!1,v=zn(t,function(C){b&&(l.scroller.draggable=!1),t.state.draggingText=!1,t.state.delayingBlurEvent&&(t.hasFocus()?t.state.delayingBlurEvent=!1:gc(t)),pe(l.wrapper.ownerDocument,"mouseup",v),pe(l.wrapper.ownerDocument,"mousemove",y),pe(l.scroller,"dragstart",_),pe(l.scroller,"drop",v),f||(St(C),o.addNew||Rl(t.doc,a,null,null,o.extend),b&&!oe||d&&p==9?setTimeout(function(){l.wrapper.ownerDocument.body.focus({preventScroll:!0}),l.input.focus()},20):l.input.focus())}),y=function(C){f=f||Math.abs(r.clientX-C.clientX)+Math.abs(r.clientY-C.clientY)>=10},_=function(){return f=!0};b&&(l.scroller.draggable=!0),t.state.draggingText=v,v.copy=!o.moveOnDrag,M(l.wrapper.ownerDocument,"mouseup",v),M(l.wrapper.ownerDocument,"mousemove",y),M(l.scroller,"dragstart",_),M(l.scroller,"drop",v),t.state.delayingBlurEvent=!0,setTimeout(function(){return l.input.focus()},20),l.scroller.dragDrop&&l.scroller.dragDrop()}function bg(t,r,a){if(a=="char")return new Zt(r,r);if(a=="word")return t.findWordAt(r);if(a=="line")return new Zt(W(r.line,0),lt(t.doc,W(r.line+1,0)));var o=a(t,r);return new Zt(o.from,o.to)}function Nk(t,r,a,o){d&&gc(t);var l=t.display,f=t.doc;St(r);var v,y,_=f.sel,C=_.ranges;if(o.addNew&&!o.extend?(y=f.sel.contains(a),y>-1?v=C[y]:v=new Zt(a,a)):(v=f.sel.primary(),y=f.sel.primIndex),o.unit=="rectangle")o.addNew||(v=new Zt(a,a)),a=bo(t,r,!0,!0),y=-1;else{var K=bg(t,a,o.unit);o.extend?v=Nc(v,K.anchor,K.head,o.extend):v=K}o.addNew?y==-1?(y=C.length,Jn(f,ti(t,C.concat([v]),y),{scroll:!1,origin:"*mouse"})):C.length>1&&C[y].empty()&&o.unit=="char"&&!o.extend?(Jn(f,ti(t,C.slice(0,y).concat(C.slice(y+1)),0),{scroll:!1,origin:"*mouse"}),_=f.sel):Pc(f,y,v,J):(y=0,Jn(f,new Fr([v],0),J),_=f.sel);var ee=a;function be(at){if(ie(ee,at)!=0)if(ee=at,o.unit=="rectangle"){for(var vt=[],kt=t.options.tabSize,xt=ye(ft(f,a.line).text,a.ch,kt),Ft=ye(ft(f,at.line).text,at.ch,kt),hn=Math.min(xt,Ft),Wn=Math.max(xt,Ft),mn=Math.min(a.line,at.line),Cr=Math.min(t.lastLine(),Math.max(a.line,at.line));mn<=Cr;mn++){var dr=ft(f,mn).text,Nn=Re(dr,hn,kt);hn==Wn?vt.push(new Zt(W(mn,Nn),W(mn,Nn))):dr.length>Nn&&vt.push(new Zt(W(mn,Nn),W(mn,Re(dr,Wn,kt))))}vt.length||vt.push(new Zt(a,a)),Jn(f,ti(t,_.ranges.slice(0,y).concat(vt),y),{origin:"*mouse",scroll:!1}),t.scrollIntoView(at)}else{var pr=v,Gn=bg(t,at,o.unit),In=pr.anchor,Pn;ie(Gn.anchor,In)>0?(Pn=Gn.head,In=ct(pr.from(),Gn.anchor)):(Pn=Gn.anchor,In=Xe(pr.to(),Gn.head));var kn=_.ranges.slice(0);kn[y]=Pk(t,new Zt(lt(f,In),Pn)),Jn(f,ti(t,kn,y),J)}}var ke=l.wrapper.getBoundingClientRect(),ze=0;function $e(at){var vt=++ze,kt=bo(t,at,!0,o.unit=="rectangle");if(!!kt)if(ie(kt,ee)!=0){t.curOp.focus=_e(),be(kt);var xt=Pl(l,f);(kt.line>=xt.to||kt.lineke.bottom?20:0;Ft&&setTimeout(zn(t,function(){ze==vt&&(l.scroller.scrollTop+=Ft,$e(at))}),50)}}function Ze(at){t.state.selectingText=!1,ze=1/0,at&&(St(at),l.input.focus()),pe(l.wrapper.ownerDocument,"mousemove",ot),pe(l.wrapper.ownerDocument,"mouseup",pt),f.history.lastSelOrigin=null}var ot=zn(t,function(at){at.buttons===0||!pn(at)?Ze(at):$e(at)}),pt=zn(t,Ze);t.state.selectingText=pt,M(l.wrapper.ownerDocument,"mousemove",ot),M(l.wrapper.ownerDocument,"mouseup",pt)}function Pk(t,r){var a=r.anchor,o=r.head,l=ft(t.doc,a.line);if(ie(a,o)==0&&a.sticky==o.sticky)return r;var f=qe(l);if(!f)return r;var v=V(f,a.ch,a.sticky),y=f[v];if(y.from!=a.ch&&y.to!=a.ch)return r;var _=v+(y.from==a.ch==(y.level!=1)?0:1);if(_==0||_==f.length)return r;var C;if(o.line!=a.line)C=(o.line-a.line)*(t.doc.direction=="ltr"?1:-1)>0;else{var K=V(f,o.ch,o.sticky),ee=K-v||(o.ch-a.ch)*(y.level==1?-1:1);K==_-1||K==_?C=ee<0:C=ee>0}var be=f[_+(C?-1:0)],ke=C==(be.level==1),ze=ke?be.from:be.to,$e=ke?"after":"before";return a.ch==ze&&a.sticky==$e?r:new Zt(new W(a.line,ze,$e),o)}function Cg(t,r,a,o){var l,f;if(r.touches)l=r.touches[0].clientX,f=r.touches[0].clientY;else try{l=r.clientX,f=r.clientY}catch{return!1}if(l>=Math.floor(t.display.gutters.getBoundingClientRect().right))return!1;o&&St(r);var v=t.display,y=v.lineDiv.getBoundingClientRect();if(f>y.bottom||!ht(t,a))return en(r);f-=y.top-v.viewOffset;for(var _=0;_=l){var K=q(t.doc,f),ee=t.display.gutterSpecs[_];return Be(t,a,t,K,ee.className,r),en(r)}}}function Rc(t,r){return Cg(t,r,"gutterClick",!0)}function Mg(t,r){bi(t.display,r)||Lk(t,r)||Ke(t,r,"contextmenu")||c||t.display.input.onContextMenu(r)}function Lk(t,r){return ht(t,"gutterContextMenu")?Cg(t,r,"gutterContextMenu",!1):!1}function Eg(t){t.display.wrapper.className=t.display.wrapper.className.replace(/\s*cm-s-\S+/g,"")+t.options.theme.replace(/(^|\s)\s*/g," cm-s-"),ru(t)}var va={toString:function(){return"CodeMirror.Init"}},Ng={},jl={};function Ok(t){var r=t.optionHandlers;function a(o,l,f,v){t.defaults[o]=l,f&&(r[o]=v?function(y,_,C){C!=va&&f(y,_,C)}:f)}t.defineOption=a,t.Init=va,a("value","",function(o,l){return o.setValue(l)},!0),a("mode",null,function(o,l){o.doc.modeOption=l,Cc(o)},!0),a("indentUnit",2,Cc,!0),a("indentWithTabs",!1),a("smartIndent",!0),a("tabSize",4,function(o){cu(o),ru(o),cr(o)},!0),a("lineSeparator",null,function(o,l){if(o.doc.lineSep=l,!!l){var f=[],v=o.doc.first;o.doc.iter(function(_){for(var C=0;;){var K=_.text.indexOf(l,C);if(K==-1)break;C=K+l.length,f.push(W(v,K))}v++});for(var y=f.length-1;y>=0;y--)ca(o.doc,l,f[y],W(f[y].line,f[y].ch+l.length))}}),a("specialChars",/[\u0000-\u001f\u007f-\u009f\u00ad\u061c\u200b-\u200c\u200e\u200f\u2028\u2029\ufeff\ufff9-\ufffc]/g,function(o,l,f){o.state.specialChars=new RegExp(l.source+(l.test(" ")?"":"| "),"g"),f!=va&&o.refresh()}),a("specialCharPlaceholder",u_,function(o){return o.refresh()},!0),a("electricChars",!0),a("inputStyle",R?"contenteditable":"textarea",function(){throw new Error("inputStyle can not (yet) be changed in a running editor")},!0),a("spellcheck",!1,function(o,l){return o.getInputField().spellcheck=l},!0),a("autocorrect",!1,function(o,l){return o.getInputField().autocorrect=l},!0),a("autocapitalize",!1,function(o,l){return o.getInputField().autocapitalize=l},!0),a("rtlMoveVisually",!we),a("wholeLineUpdateBefore",!0),a("theme","default",function(o){Eg(o),fu(o)},!0),a("keyMap","default",function(o,l,f){var v=Ul(l),y=f!=va&&Ul(f);y&&y.detach&&y.detach(o,v),v.attach&&v.attach(o,y||null)}),a("extraKeys",null),a("configureMouse",null),a("lineWrapping",!1,Ak,!0),a("gutters",[],function(o,l){o.display.gutterSpecs=Sc(l,o.options.lineNumbers),fu(o)},!0),a("fixedGutter",!0,function(o,l){o.display.gutters.style.left=l?dc(o.display)+"px":"0",o.refresh()},!0),a("coverGutterNextToScrollbar",!1,function(o){return ua(o)},!0),a("scrollbarStyle","native",function(o){Lv(o),ua(o),o.display.scrollbars.setScrollTop(o.doc.scrollTop),o.display.scrollbars.setScrollLeft(o.doc.scrollLeft)},!0),a("lineNumbers",!1,function(o,l){o.display.gutterSpecs=Sc(o.options.gutters,l),fu(o)},!0),a("firstLineNumber",1,fu,!0),a("lineNumberFormatter",function(o){return o},fu,!0),a("showCursorWhenSelecting",!1,iu,!0),a("resetSelectionOnContextMenu",!0),a("lineWiseCopyCut",!0),a("pasteLinesPerSelection",!0),a("selectionsMayTouch",!1),a("readOnly",!1,function(o,l){l=="nocursor"&&(oa(o),o.display.input.blur()),o.display.input.readOnlyChanged(l)}),a("screenReaderLabel",null,function(o,l){l=l===""?null:l,o.display.input.screenReaderLabelChanged(l)}),a("disableInput",!1,function(o,l){l||o.display.input.reset()},!0),a("dragDrop",!0,Dk),a("allowDropFileTypes",null),a("cursorBlinkRate",530),a("cursorScrollMargin",0),a("cursorHeight",1,iu,!0),a("singleCursorHeightPerLine",!0,iu,!0),a("workTime",100),a("workDelay",100),a("flattenSpans",!0,cu,!0),a("addModeClass",!1,cu,!0),a("pollInterval",100),a("undoDepth",200,function(o,l){return o.doc.history.undoDepth=l}),a("historyEventDelay",1250),a("viewportMargin",10,function(o){return o.refresh()},!0),a("maxHighlightLength",1e4,cu,!0),a("moveInputWithCursor",!0,function(o,l){l||o.display.input.resetPosition()}),a("tabindex",null,function(o,l){return o.display.input.getField().tabIndex=l||""}),a("autofocus",null),a("direction","ltr",function(o,l){return o.doc.setDirection(l)},!0),a("phrases",null)}function Dk(t,r,a){var o=a&&a!=va;if(!r!=!o){var l=t.display.dragFunctions,f=r?M:pe;f(t.display.scroller,"dragstart",l.start),f(t.display.scroller,"dragenter",l.enter),f(t.display.scroller,"dragover",l.over),f(t.display.scroller,"dragleave",l.leave),f(t.display.scroller,"drop",l.drop)}}function Ak(t){t.options.lineWrapping?(Ne(t.display.wrapper,"CodeMirror-wrap"),t.display.sizer.style.minWidth="",t.display.sizerWidth=null):(k(t.display.wrapper,"CodeMirror-wrap"),ko(t)),pc(t),cr(t),ru(t),setTimeout(function(){return ua(t)},100)}function vn(t,r){var a=this;if(!(this instanceof vn))return new vn(t,r);this.options=r=r?he(r):{},he(Ng,r,!1);var o=r.value;typeof o=="string"?o=new hr(o,r.mode,null,r.lineSeparator,r.direction):r.mode&&(o.modeOption=r.mode),this.doc=o;var l=new vn.inputStyles[r.inputStyle](this),f=this.display=new $_(t,o,l,r);f.wrapper.CodeMirror=this,Eg(this),r.lineWrapping&&(this.display.wrapper.className+=" CodeMirror-wrap"),Lv(this),this.state={keyMaps:[],overlays:[],modeGen:0,overwrite:!1,delayingBlurEvent:!1,focused:!1,suppressEdits:!1,pasteIncoming:-1,cutIncoming:-1,selectingText:!1,draggingText:!1,highlight:new de,keySeq:null,specialChars:null},r.autofocus&&!R&&f.input.focus(),d&&p<11&&setTimeout(function(){return a.display.input.reset(!0)},20),Ik(this),hk(),No(this),this.curOp.forceUpdate=!0,Uv(this,o),r.autofocus&&!R||this.hasFocus()?setTimeout(function(){a.hasFocus()&&!a.state.focused&&mc(a)},20):oa(this);for(var v in jl)jl.hasOwnProperty(v)&&jl[v](this,r[v],va);Av(this),r.finishInit&&r.finishInit(this);for(var y=0;y20*20}M(r.scroller,"touchstart",function(_){if(!Ke(t,_)&&!f(_)&&!Rc(t,_)){r.input.ensurePolled(),clearTimeout(a);var C=+new Date;r.activeTouch={start:C,moved:!1,prev:C-o.end<=300?o:null},_.touches.length==1&&(r.activeTouch.left=_.touches[0].pageX,r.activeTouch.top=_.touches[0].pageY)}}),M(r.scroller,"touchmove",function(){r.activeTouch&&(r.activeTouch.moved=!0)}),M(r.scroller,"touchend",function(_){var C=r.activeTouch;if(C&&!bi(r,_)&&C.left!=null&&!C.moved&&new Date-C.start<300){var K=t.coordsChar(r.activeTouch,"page"),ee;!C.prev||v(C,C.prev)?ee=new Zt(K,K):!C.prev.prev||v(C,C.prev.prev)?ee=t.findWordAt(K):ee=new Zt(W(K.line,0),lt(t.doc,W(K.line+1,0))),t.setSelection(ee.anchor,ee.head),t.focus(),St(_)}l()}),M(r.scroller,"touchcancel",l),M(r.scroller,"scroll",function(){r.scroller.clientHeight&&(au(t,r.scroller.scrollTop),Mo(t,r.scroller.scrollLeft,!0),Be(t,"scroll",t))}),M(r.scroller,"mousewheel",function(_){return Fv(t,_)}),M(r.scroller,"DOMMouseScroll",function(_){return Fv(t,_)}),M(r.wrapper,"scroll",function(){return r.wrapper.scrollTop=r.wrapper.scrollLeft=0}),r.dragFunctions={enter:function(_){Ke(t,_)||tn(_)},over:function(_){Ke(t,_)||(ck(t,_),tn(_))},start:function(_){return fk(t,_)},drop:zn(t,sk),leave:function(_){Ke(t,_)||cg(t)}};var y=r.input.getField();M(y,"keyup",function(_){return kg.call(t,_)}),M(y,"keydown",zn(t,_g)),M(y,"keypress",zn(t,Tg)),M(y,"focus",function(_){return mc(t,_)}),M(y,"blur",function(_){return oa(t,_)})}var Fc=[];vn.defineInitHook=function(t){return Fc.push(t)};function Su(t,r,a,o){var l=t.doc,f;a==null&&(a="add"),a=="smart"&&(l.mode.indent?f=Zr(t,r).state:a="prev");var v=t.options.tabSize,y=ft(l,r),_=ye(y.text,null,v);y.stateAfter&&(y.stateAfter=null);var C=y.text.match(/^\s*/)[0],K;if(!o&&!/\S/.test(y.text))K=0,a="not";else if(a=="smart"&&(K=l.mode.indent(f,y.text.slice(C.length),y.text),K==We||K>150)){if(!o)return;a="prev"}a=="prev"?r>l.first?K=ye(ft(l,r-1).text,null,v):K=0:a=="add"?K=_+t.options.indentUnit:a=="subtract"?K=_-t.options.indentUnit:typeof a=="number"&&(K=_+a),K=Math.max(0,K);var ee="",be=0;if(t.options.indentWithTabs)for(var ke=Math.floor(K/v);ke;--ke)be+=v,ee+=" ";if(bev,_=O(r),C=null;if(y&&o.ranges.length>1)if(ni&&ni.text.join(` +`)==r){if(o.ranges.length%ni.text.length==0){C=[];for(var K=0;K=0;be--){var ke=o.ranges[be],ze=ke.from(),$e=ke.to();ke.empty()&&(a&&a>0?ze=W(ze.line,ze.ch-a):t.state.overwrite&&!y?$e=W($e.line,Math.min(ft(f,$e.line).text.length,$e.ch+ce(_).length)):y&&ni&&ni.lineWise&&ni.text.join(` `)==_.join(` -`)&&(je=Ve=K(je.line,0)));var tt={from:je,to:Ve,text:C?C[Se%C.length]:_,origin:l||(y?"paste":t.state.cutIncoming>p?"cut":"+input")};da(t.doc,tt),zn(t,"inputRead",t,tt)}r&&!y&&Pg(t,r),sa(t),t.curOp.updateInput<2&&(t.curOp.updateInput=J),t.curOp.typing=!0,t.state.pasteIncoming=t.state.cutIncoming=-1}function Ng(t,r){var a=t.clipboardData&&t.clipboardData.getData("Text");if(a)return t.preventDefault(),!r.isReadOnly()&&!r.options.disableInput&&r.hasFocus()&&Cr(r,function(){return Fc(r,a,0,null,"paste")}),!0}function Pg(t,r){if(!(!t.options.electricChars||!t.options.smartIndent))for(var a=t.doc.sel,o=a.ranges.length-1;o>=0;o--){var l=a.ranges[o];if(!(l.head.ch>100||o&&a.ranges[o-1].head.line==l.head.line)){var f=t.getModeAt(l.head),p=!1;if(f.electricChars){for(var y=0;y-1){p=bu(t,l.head.line,"smart");break}}else f.electricInput&&f.electricInput.test(ft(t.doc,l.head.line).text.slice(0,l.head.ch))&&(p=bu(t,l.head.line,"smart"));p&&zn(t,"electricInput",t,l.head.line)}}}function Lg(t){for(var r=[],a=[],o=0;of&&(bu(this,y.head.line,o,!0),f=y.head.line,p==this.doc.sel.primIndex&&sa(this));else{var _=y.from(),C=y.to(),$=Math.max(f,_.line);f=Math.min(this.lastLine(),C.line-(C.ch?0:1))+1;for(var J=$;J0&&Nc(this.doc,p,new Jt(_,Se[p].to()),Pe)}}}),getTokenAt:function(o,l){return ye(this,o,l)},getLineTokens:function(o,l){return ye(this,K(o),l,!0)},getTokenTypeAt:function(o){o=gt(this.doc,o);var l=z(this,ft(this.doc,o.line)),f=0,p=(l.length-1)/2,y=o.ch,_;if(y==0)_=l[2];else for(;;){var C=f+p>>1;if((C?l[C*2-1]:0)>=y)p=C;else if(l[C*2+1]_&&(o=_,p=!0),y=ft(this.doc,o)}else y=o;return bl(this,y,{top:0,left:0},l||"page",f||p).top+(p?this.doc.height-Dr(y):0)},defaultTextHeight:function(){return aa(this.display)},defaultCharWidth:function(){return ua(this.display)},getViewport:function(){return{from:this.display.viewFrom,to:this.display.viewTo}},addWidget:function(o,l,f,p,y){var _=this.display;o=Jr(this,gt(this.doc,o));var C=o.bottom,$=o.left;if(l.style.position="absolute",l.setAttribute("cm-ignore-events","true"),this.display.input.setUneditable(l),_.sizer.appendChild(l),p=="over")C=o.top;else if(p=="above"||p=="near"){var J=Math.max(_.wrapper.clientHeight,this.doc.height),Se=Math.max(_.sizer.clientWidth,_.lineSpace.clientWidth);(p=="above"||o.bottom+l.offsetHeight>J)&&o.top>l.offsetHeight?C=o.top-l.offsetHeight:o.bottom+l.offsetHeight<=J&&(C=o.bottom),$+l.offsetWidth>Se&&($=Se-l.offsetWidth)}l.style.top=C+"px",l.style.left=l.style.right="",y=="right"?($=_.sizer.clientWidth-l.offsetWidth,l.style.right="0px"):(y=="left"?$=0:y=="middle"&&($=(_.sizer.clientWidth-l.offsetWidth)/2),l.style.left=$+"px"),f&&I_(this,{left:$,top:C,right:$+l.offsetWidth,bottom:C+l.offsetHeight})},triggerOnKeyDown:ir(xg),triggerOnKeyPress:ir(kg),triggerOnKeyUp:_g,triggerOnMouseDown:ir(Tg),execCommand:function(o){if(_u.hasOwnProperty(o))return _u[o].call(null,this)},triggerElectric:ir(function(o){Pg(this,o)}),findPosH:function(o,l,f,p){var y=1;l<0&&(y=-1,l=-l);for(var _=gt(this.doc,o),C=0;C0&&$(f.charAt(p-1));)--p;for(;y.5||this.options.lineWrapping)&&hc(this),at(this,"refresh",this)}),swapDoc:ir(function(o){var l=this.doc;return l.cm=null,this.state.selectingText&&this.state.selectingText(),Wv(this,o),iu(this),this.display.input.reset(),au(this,o.scrollLeft,o.scrollTop),this.curOp.forceScroll=!0,zn(this,"swapDoc",this,l),l}),phrase:function(o){var l=this.options.phrases;return l&&Object.prototype.hasOwnProperty.call(l,o)?l[o]:o},getInputField:function(){return this.display.input.getField()},getWrapperElement:function(){return this.display.wrapper},getScrollerElement:function(){return this.display.scroller},getGutterElement:function(){return this.display.gutters}},zt(t),t.registerHelper=function(o,l,f){a.hasOwnProperty(o)||(a[o]=t[o]={_global:[]}),a[o][l]=f},t.registerGlobalHelper=function(o,l,f,p){t.registerHelper(o,l,p),a[o]._global.push({pred:f,val:p})}}function zc(t,r,a,o,l){var f=r,p=a,y=ft(t,r.line),_=l&&t.direction=="rtl"?-a:a;function C(){var pt=r.line+_;return pt=t.first+t.size?!1:(r=new K(pt,r.ch,r.sticky),y=ft(t,pt))}function $(pt){var st;if(o=="codepoint"){var mt=y.text.charCodeAt(r.ch+(a>0?0:-1));if(isNaN(mt))st=null;else{var Tt=a>0?mt>=55296&&mt<56320:mt>=56320&&mt<57343;st=new K(r.line,Math.max(0,Math.min(y.text.length,r.ch+a*(Tt?2:1))),-a)}}else l?st=wk(t.cm,y,r,a):st=Lc(y,r,a);if(st==null)if(!pt&&C())r=Oc(l,t.cm,y,r.line,_);else return!1;else r=st;return!0}if(o=="char"||o=="codepoint")$();else if(o=="column")$(!0);else if(o=="word"||o=="group")for(var J=null,Se=o=="group",we=t.cm&&t.cm.getHelper(r,"wordChars"),je=!0;!(a<0&&!$(!je));je=!1){var Ve=y.text.charAt(r.ch)||` -`,tt=Kt(Ve,we)?"w":Se&&Ve==` -`?"n":!Se||/\s/.test(Ve)?null:"p";if(Se&&!je&&!tt&&(tt="s"),J&&J!=tt){a<0&&(a=1,$(),r.sticky="after");break}if(tt&&(J=tt),a>0&&!$(!je))break}var lt=zl(t,r,f,p,!0);return Ze(f,lt)&&(lt.hitSide=!0),lt}function Ag(t,r,a,o){var l=t.doc,f=r.left,p;if(o=="page"){var y=Math.min(t.display.wrapper.clientHeight,be(t).innerHeight||l(t).documentElement.clientHeight),_=Math.max(y-.5*aa(t.display),3);p=(a>0?r.bottom:r.top)+a*_}else o=="line"&&(p=a>0?r.bottom+3:r.top-3);for(var C;C=lc(t,f,p),!!C.outside;){if(a<0?p<=0:p>=l.height){C.hitSide=!0;break}p+=a*5}return C}var nn=function(t){this.cm=t,this.lastAnchorNode=this.lastAnchorOffset=this.lastFocusNode=this.lastFocusOffset=null,this.polling=new Ae,this.composing=null,this.gracePeriod=!1,this.readDOMTimeout=null};nn.prototype.init=function(t){var r=this,a=this,o=a.cm,l=a.div=t.lineDiv;l.contentEditable=!0,Og(l,o.options.spellcheck,o.options.autocorrect,o.options.autocapitalize);function f(y){for(var _=y.target;_;_=_.parentNode){if(_==l)return!0;if(/\bCodeMirror-(?:line)?widget\b/.test(_.className))break}return!1}Te(l,"paste",function(y){!f(y)||vt(o,y)||Ng(y,o)||v<=11&&setTimeout(Hn(o,function(){return r.updateFromDOM()}),20)}),Te(l,"compositionstart",function(y){r.composing={data:y.data,done:!1}}),Te(l,"compositionupdate",function(y){r.composing||(r.composing={data:y.data,done:!1})}),Te(l,"compositionend",function(y){r.composing&&(y.data!=r.composing.data&&r.readFromDOMSoon(),r.composing.done=!0)}),Te(l,"touchstart",function(){return a.forceCompositionEnd()}),Te(l,"input",function(){r.composing||r.readFromDOMSoon()});function p(y){if(!(!f(y)||vt(o,y))){if(o.somethingSelected())Yl({lineWise:!1,text:o.getSelections()}),y.type=="cut"&&o.replaceSelection("",null,"cut");else if(o.options.lineWiseCopyCut){var _=Lg(o);Yl({lineWise:!0,text:_.text}),y.type=="cut"&&o.operation(function(){o.setSelections(_.ranges,0,Pe),o.replaceSelection("",null,"cut")})}else return;if(y.clipboardData){y.clipboardData.clearData();var C=ti.text.join(` -`);if(y.clipboardData.setData("Text",C),y.clipboardData.getData("Text")==C){y.preventDefault();return}}var $=Dg(),J=$.firstChild;o.display.lineSpace.insertBefore($,o.display.lineSpace.firstChild),J.value=ti.text.join(` -`);var Se=Oe(l.ownerDocument);We(J),setTimeout(function(){o.display.lineSpace.removeChild($),Se.focus(),Se==l&&a.showPrimarySelection()},50)}}Te(l,"copy",p),Te(l,"cut",p)},nn.prototype.screenReaderLabelChanged=function(t){t?this.div.setAttribute("aria-label",t):this.div.removeAttribute("aria-label")},nn.prototype.prepareSelection=function(){var t=Tv(this.cm,!1);return t.focus=Oe(this.div.ownerDocument)==this.div,t},nn.prototype.showSelection=function(t,r){!t||!this.cm.display.view.length||((t.focus||r)&&this.showPrimarySelection(),this.showMultipleSelections(t))},nn.prototype.getSelection=function(){return this.cm.display.wrapper.ownerDocument.getSelection()},nn.prototype.showPrimarySelection=function(){var t=this.getSelection(),r=this.cm,a=r.doc.sel.primary(),o=a.from(),l=a.to();if(r.display.viewTo==r.display.viewFrom||o.line>=r.display.viewTo||l.line=r.display.viewFrom&&Ig(r,o)||{node:y[0].measure.map[2],offset:0},C=l.linet.firstLine()&&(o=K(o.line-1,ft(t.doc,o.line-1).length)),l.ch==ft(t.doc,l.line).text.length&&l.liner.viewTo-1)return!1;var f,p,y;o.line==r.viewFrom||(f=Mo(t,o.line))==0?(p=He(r.view[0].line),y=r.view[0].node):(p=He(r.view[f].line),y=r.view[f-1].node.nextSibling);var _=Mo(t,l.line),C,$;if(_==r.view.length-1?(C=r.viewTo-1,$=r.lineDiv.lastChild):(C=He(r.view[_+1].line)-1,$=r.view[_+1].node.previousSibling),!y)return!1;for(var J=t.doc.splitLines(Wk(t,y,$,p,C)),Se=Qt(t.doc,K(p,0),K(C,ft(t.doc,C).text.length));J.length>1&&Se.length>1;)if(Je(J)==Je(Se))J.pop(),Se.pop(),C--;else if(J[0]==Se[0])J.shift(),Se.shift(),p++;else break;for(var we=0,je=0,Ve=J[0],tt=Se[0],lt=Math.min(Ve.length,tt.length);weo.ch&&pt.charCodeAt(pt.length-je-1)==st.charCodeAt(st.length-je-1);)we--,je++;J[J.length-1]=pt.slice(0,pt.length-je).replace(/^\u200b+/,""),J[0]=J[0].slice(we).replace(/\u200b+$/,"");var Tt=K(p,we),_t=K(C,Se.length?Je(Se).length-je:0);if(J.length>1||J[0]||pe(Tt,_t))return pa(t.doc,J,Tt,_t,"+input"),!0},nn.prototype.ensurePolled=function(){this.forceCompositionEnd()},nn.prototype.reset=function(){this.forceCompositionEnd()},nn.prototype.forceCompositionEnd=function(){!this.composing||(clearTimeout(this.readDOMTimeout),this.composing=null,this.updateFromDOM(),this.div.blur(),this.div.focus())},nn.prototype.readFromDOMSoon=function(){var t=this;this.readDOMTimeout==null&&(this.readDOMTimeout=setTimeout(function(){if(t.readDOMTimeout=null,t.composing)if(t.composing.done)t.composing=null;else return;t.updateFromDOM()},80))},nn.prototype.updateFromDOM=function(){var t=this;(this.cm.isReadOnly()||!this.pollContent())&&Cr(this.cm,function(){return dr(t.cm)})},nn.prototype.setUneditable=function(t){t.contentEditable="false"},nn.prototype.onKeyPress=function(t){t.charCode==0||this.composing||(t.preventDefault(),this.cm.isReadOnly()||Hn(this.cm,Fc)(this.cm,String.fromCharCode(t.charCode==null?t.keyCode:t.charCode),0))},nn.prototype.readOnlyChanged=function(t){this.div.contentEditable=String(t!="nocursor")},nn.prototype.onContextMenu=function(){},nn.prototype.resetPosition=function(){},nn.prototype.needsContentAttribute=!0;function Ig(t,r){var a=oc(t,r.line);if(!a||a.hidden)return null;var o=ft(t.doc,r.line),l=sv(a,o,r.line),f=Z(o,t.doc.direction),p="left";if(f){var y=Be(f,r.ch);p=y%2?"right":"left"}var _=hv(l.map,r.ch,p);return _.offset=_.collapse=="right"?_.end:_.start,_}function Hk(t){for(var r=t;r;r=r.parentNode)if(/CodeMirror-gutter-wrapper/.test(r.className))return!0;return!1}function wa(t,r){return r&&(t.bad=!0),t}function Wk(t,r,a,o,l){var f="",p=!1,y=t.doc.lineSeparator(),_=!1;function C(we){return function(je){return je.id==we}}function $(){p&&(f+=y,_&&(f+=y),p=_=!1)}function J(we){we&&($(),f+=we)}function Se(we){if(we.nodeType==1){var je=we.getAttribute("cm-text");if(je){J(je);return}var Ve=we.getAttribute("cm-marker"),tt;if(Ve){var lt=t.findMarks(K(o,0),K(l+1,0),C(+Ve));lt.length&&(tt=lt[0].find(0))&&J(Qt(t.doc,tt.from,tt.to).join(y));return}if(we.getAttribute("contenteditable")=="false")return;var pt=/^(pre|div|p|li|table|br)$/i.test(we.nodeName);if(!/^br$/i.test(we.nodeName)&&we.textContent.length==0)return;pt&&$();for(var st=0;st=9&&r.hasSelection&&(r.hasSelection=null),a.poll()}),Te(l,"paste",function(p){vt(o,p)||Ng(p,o)||(o.state.pasteIncoming=+new Date,a.fastPoll())});function f(p){if(!vt(o,p)){if(o.somethingSelected())Yl({lineWise:!1,text:o.getSelections()});else if(o.options.lineWiseCopyCut){var y=Lg(o);Yl({lineWise:!0,text:y.text}),p.type=="cut"?o.setSelections(y.ranges,null,Pe):(a.prevInput="",l.value=y.text.join(` -`),We(l))}else return;p.type=="cut"&&(o.state.cutIncoming=+new Date)}}Te(l,"cut",f),Te(l,"copy",f),Te(t.scroller,"paste",function(p){if(!(Si(t,p)||vt(o,p))){if(!l.dispatchEvent){o.state.pasteIncoming=+new Date,a.focus();return}var y=new Event("paste");y.clipboardData=p.clipboardData,l.dispatchEvent(y)}}),Te(t.lineSpace,"selectstart",function(p){Si(t,p)||Bt(p)}),Te(l,"compositionstart",function(){var p=o.getCursor("from");a.composing&&a.composing.range.clear(),a.composing={start:p,range:o.markText(p,o.getCursor("to"),{className:"CodeMirror-composing"})}}),Te(l,"compositionend",function(){a.composing&&(a.poll(),a.composing.range.clear(),a.composing=null)})},En.prototype.createField=function(t){this.wrapper=Dg(),this.textarea=this.wrapper.firstChild},En.prototype.screenReaderLabelChanged=function(t){t?this.textarea.setAttribute("aria-label",t):this.textarea.removeAttribute("aria-label")},En.prototype.prepareSelection=function(){var t=this.cm,r=t.display,a=t.doc,o=Tv(t);if(t.options.moveInputWithCursor){var l=Jr(t,a.sel.primary().head,"div"),f=r.wrapper.getBoundingClientRect(),p=r.lineDiv.getBoundingClientRect();o.teTop=Math.max(0,Math.min(r.wrapper.clientHeight-10,l.top+p.top-f.top)),o.teLeft=Math.max(0,Math.min(r.wrapper.clientWidth-10,l.left+p.left-f.left))}return o},En.prototype.showSelection=function(t){var r=this.cm,a=r.display;X(a.cursorDiv,t.cursors),X(a.selectionDiv,t.selection),t.teTop!=null&&(this.wrapper.style.top=t.teTop+"px",this.wrapper.style.left=t.teLeft+"px")},En.prototype.reset=function(t){if(!(this.contextMenuPending||this.composing&&t)){var r=this.cm;if(this.resetting=!0,r.somethingSelected()){this.prevInput="";var a=r.getSelection();this.textarea.value=a,r.state.focused&&We(this.textarea),d&&v>=9&&(this.hasSelection=a)}else t||(this.prevInput=this.textarea.value="",d&&v>=9&&(this.hasSelection=null));this.resetting=!1}},En.prototype.getField=function(){return this.textarea},En.prototype.supportsTouch=function(){return!1},En.prototype.focus=function(){if(this.cm.options.readOnly!="nocursor"&&(!q||Oe(this.textarea.ownerDocument)!=this.textarea))try{this.textarea.focus()}catch{}},En.prototype.blur=function(){this.textarea.blur()},En.prototype.resetPosition=function(){this.wrapper.style.top=this.wrapper.style.left=0},En.prototype.receivedFocus=function(){this.slowPoll()},En.prototype.slowPoll=function(){var t=this;this.pollingFast||this.polling.set(this.cm.options.pollInterval,function(){t.poll(),t.cm.state.focused&&t.slowPoll()})},En.prototype.fastPoll=function(){var t=!1,r=this;r.pollingFast=!0;function a(){var o=r.poll();!o&&!t?(t=!0,r.polling.set(60,a)):(r.pollingFast=!1,r.slowPoll())}r.polling.set(20,a)},En.prototype.poll=function(){var t=this,r=this.cm,a=this.textarea,o=this.prevInput;if(this.contextMenuPending||this.resetting||!r.state.focused||Fe(a)&&!o&&!this.composing||r.isReadOnly()||r.options.disableInput||r.state.keySeq)return!1;var l=a.value;if(l==o&&!r.somethingSelected())return!1;if(d&&v>=9&&this.hasSelection===l||oe&&/[\uf700-\uf7ff]/.test(l))return r.display.input.reset(),!1;if(r.doc.sel==r.display.selForContextMenu){var f=l.charCodeAt(0);if(f==8203&&!o&&(o="\u200B"),f==8666)return this.reset(),this.cm.execCommand("undo")}for(var p=0,y=Math.min(o.length,l.length);p1e3||l.indexOf(` -`)>-1?a.value=t.prevInput="":t.prevInput=l,t.composing&&(t.composing.range.clear(),t.composing.range=r.markText(t.composing.start,r.getCursor("to"),{className:"CodeMirror-composing"}))}),!0},En.prototype.ensurePolled=function(){this.pollingFast&&this.poll()&&(this.pollingFast=!1)},En.prototype.onKeyPress=function(){d&&v>=9&&(this.hasSelection=null),this.fastPoll()},En.prototype.onContextMenu=function(t){var r=this,a=r.cm,o=a.display,l=r.textarea;r.contextMenuPending&&r.contextMenuPending();var f=Co(a,t),p=o.scroller.scrollTop;if(!f||te)return;var y=a.options.resetSelectionOnContextMenu;y&&a.doc.sel.contains(f)==-1&&Hn(a,Qn)(a.doc,ji(f),Pe);var _=l.style.cssText,C=r.wrapper.style.cssText,$=r.wrapper.offsetParent.getBoundingClientRect();r.wrapper.style.cssText="position: static",l.style.cssText=`position: absolute; width: 30px; height: 30px; - top: `+(t.clientY-$.top-5)+"px; left: "+(t.clientX-$.left-5)+`px; +`)&&(ze=$e=W(ze.line,0)));var Ze={from:ze,to:$e,text:C?C[be%C.length]:_,origin:l||(y?"paste":t.state.cutIncoming>v?"cut":"+input")};fa(t.doc,Ze),qn(t,"inputRead",t,Ze)}r&&!y&&Lg(t,r),aa(t),t.curOp.updateInput<2&&(t.curOp.updateInput=ee),t.curOp.typing=!0,t.state.pasteIncoming=t.state.cutIncoming=-1}function Pg(t,r){var a=t.clipboardData&&t.clipboardData.getData("Text");if(a)return t.preventDefault(),!r.isReadOnly()&&!r.options.disableInput&&br(r,function(){return zc(r,a,0,null,"paste")}),!0}function Lg(t,r){if(!(!t.options.electricChars||!t.options.smartIndent))for(var a=t.doc.sel,o=a.ranges.length-1;o>=0;o--){var l=a.ranges[o];if(!(l.head.ch>100||o&&a.ranges[o-1].head.line==l.head.line)){var f=t.getModeAt(l.head),v=!1;if(f.electricChars){for(var y=0;y-1){v=Su(t,l.head.line,"smart");break}}else f.electricInput&&f.electricInput.test(ft(t.doc,l.head.line).text.slice(0,l.head.ch))&&(v=Su(t,l.head.line,"smart"));v&&qn(t,"electricInput",t,l.head.line)}}}function Og(t){for(var r=[],a=[],o=0;of&&(Su(this,y.head.line,o,!0),f=y.head.line,v==this.doc.sel.primIndex&&aa(this));else{var _=y.from(),C=y.to(),K=Math.max(f,_.line);f=Math.min(this.lastLine(),C.line-(C.ch?0:1))+1;for(var ee=K;ee0&&Pc(this.doc,v,new Zt(_,be[v].to()),it)}}}),getTokenAt:function(o,l){return Ce(this,o,l)},getLineTokens:function(o,l){return Ce(this,W(o),l,!0)},getTokenTypeAt:function(o){o=lt(this.doc,o);var l=Ti(this,ft(this.doc,o.line)),f=0,v=(l.length-1)/2,y=o.ch,_;if(y==0)_=l[2];else for(;;){var C=f+v>>1;if((C?l[C*2-1]:0)>=y)v=C;else if(l[C*2+1]_&&(o=_,v=!0),y=ft(this.doc,o)}else y=o;return Cl(this,y,{top:0,left:0},l||"page",f||v).top+(v?this.doc.height-Ir(y):0)},defaultTextHeight:function(){return ra(this.display)},defaultCharWidth:function(){return ia(this.display)},getViewport:function(){return{from:this.display.viewFrom,to:this.display.viewTo}},addWidget:function(o,l,f,v,y){var _=this.display;o=ei(this,lt(this.doc,o));var C=o.bottom,K=o.left;if(l.style.position="absolute",l.setAttribute("cm-ignore-events","true"),this.display.input.setUneditable(l),_.sizer.appendChild(l),v=="over")C=o.top;else if(v=="above"||v=="near"){var ee=Math.max(_.wrapper.clientHeight,this.doc.height),be=Math.max(_.sizer.clientWidth,_.lineSpace.clientWidth);(v=="above"||o.bottom+l.offsetHeight>ee)&&o.top>l.offsetHeight?C=o.top-l.offsetHeight:o.bottom+l.offsetHeight<=ee&&(C=o.bottom),K+l.offsetWidth>be&&(K=be-l.offsetWidth)}l.style.top=C+"px",l.style.left=l.style.right="",y=="right"?(K=_.sizer.clientWidth-l.offsetWidth,l.style.right="0px"):(y=="left"?K=0:y=="middle"&&(K=(_.sizer.clientWidth-l.offsetWidth)/2),l.style.left=K+"px"),f&&D_(this,{left:K,top:C,right:K+l.offsetWidth,bottom:C+l.offsetHeight})},triggerOnKeyDown:rr(_g),triggerOnKeyPress:rr(Tg),triggerOnKeyUp:kg,triggerOnMouseDown:rr(Sg),execCommand:function(o){if(xu.hasOwnProperty(o))return xu[o].call(null,this)},triggerElectric:rr(function(o){Lg(this,o)}),findPosH:function(o,l,f,v){var y=1;l<0&&(y=-1,l=-l);for(var _=lt(this.doc,o),C=0;C0&&K(f.charAt(v-1));)--v;for(;y.5||this.options.lineWrapping)&&pc(this),Be(this,"refresh",this)}),swapDoc:rr(function(o){var l=this.doc;return l.cm=null,this.state.selectingText&&this.state.selectingText(),Uv(this,o),ru(this),this.display.input.reset(),ou(this,o.scrollLeft,o.scrollTop),this.curOp.forceScroll=!0,qn(this,"swapDoc",this,l),l}),phrase:function(o){var l=this.options.phrases;return l&&Object.prototype.hasOwnProperty.call(l,o)?l[o]:o},getInputField:function(){return this.display.input.getField()},getWrapperElement:function(){return this.display.wrapper},getScrollerElement:function(){return this.display.scroller},getGutterElement:function(){return this.display.gutters}},mt(t),t.registerHelper=function(o,l,f){a.hasOwnProperty(o)||(a[o]=t[o]={_global:[]}),a[o][l]=f},t.registerGlobalHelper=function(o,l,f,v){t.registerHelper(o,l,v),a[o]._global.push({pred:f,val:v})}}function Hc(t,r,a,o,l){var f=r,v=a,y=ft(t,r.line),_=l&&t.direction=="rtl"?-a:a;function C(){var pt=r.line+_;return pt=t.first+t.size?!1:(r=new W(pt,r.ch,r.sticky),y=ft(t,pt))}function K(pt){var at;if(o=="codepoint"){var vt=y.text.charCodeAt(r.ch+(a>0?0:-1));if(isNaN(vt))at=null;else{var kt=a>0?vt>=55296&&vt<56320:vt>=56320&&vt<57343;at=new W(r.line,Math.max(0,Math.min(y.text.length,r.ch+a*(kt?2:1))),-a)}}else l?at=mk(t.cm,y,r,a):at=Oc(y,r,a);if(at==null)if(!pt&&C())r=Dc(l,t.cm,y,r.line,_);else return!1;else r=at;return!0}if(o=="char"||o=="codepoint")K();else if(o=="column")K(!0);else if(o=="word"||o=="group")for(var ee=null,be=o=="group",ke=t.cm&&t.cm.getHelper(r,"wordChars"),ze=!0;!(a<0&&!K(!ze));ze=!1){var $e=y.text.charAt(r.ch)||` +`,Ze=Mt($e,ke)?"w":be&&$e==` +`?"n":!be||/\s/.test($e)?null:"p";if(be&&!ze&&!Ze&&(Ze="s"),ee&&ee!=Ze){a<0&&(a=1,K(),r.sticky="after");break}if(Ze&&(ee=Ze),a>0&&!K(!ze))break}var ot=zl(t,r,f,v,!0);return Ye(f,ot)&&(ot.hitSide=!0),ot}function Ig(t,r,a,o){var l=t.doc,f=r.left,v;if(o=="page"){var y=Math.min(t.display.wrapper.clientHeight,window.innerHeight||document.documentElement.clientHeight),_=Math.max(y-.5*ra(t.display),3);v=(a>0?r.bottom:r.top)+a*_}else o=="line"&&(v=a>0?r.bottom+3:r.top-3);for(var C;C=fc(t,f,v),!!C.outside;){if(a<0?v<=0:v>=l.height){C.hitSide=!0;break}v+=a*5}return C}var rn=function(t){this.cm=t,this.lastAnchorNode=this.lastAnchorOffset=this.lastFocusNode=this.lastFocusOffset=null,this.polling=new de,this.composing=null,this.gracePeriod=!1,this.readDOMTimeout=null};rn.prototype.init=function(t){var r=this,a=this,o=a.cm,l=a.div=t.lineDiv;Dg(l,o.options.spellcheck,o.options.autocorrect,o.options.autocapitalize);function f(y){for(var _=y.target;_;_=_.parentNode){if(_==l)return!0;if(/\bCodeMirror-(?:line)?widget\b/.test(_.className))break}return!1}M(l,"paste",function(y){!f(y)||Ke(o,y)||Pg(y,o)||p<=11&&setTimeout(zn(o,function(){return r.updateFromDOM()}),20)}),M(l,"compositionstart",function(y){r.composing={data:y.data,done:!1}}),M(l,"compositionupdate",function(y){r.composing||(r.composing={data:y.data,done:!1})}),M(l,"compositionend",function(y){r.composing&&(y.data!=r.composing.data&&r.readFromDOMSoon(),r.composing.done=!0)}),M(l,"touchstart",function(){return a.forceCompositionEnd()}),M(l,"input",function(){r.composing||r.readFromDOMSoon()});function v(y){if(!(!f(y)||Ke(o,y))){if(o.somethingSelected())Yl({lineWise:!1,text:o.getSelections()}),y.type=="cut"&&o.replaceSelection("",null,"cut");else if(o.options.lineWiseCopyCut){var _=Og(o);Yl({lineWise:!0,text:_.text}),y.type=="cut"&&o.operation(function(){o.setSelections(_.ranges,0,it),o.replaceSelection("",null,"cut")})}else return;if(y.clipboardData){y.clipboardData.clearData();var C=ni.text.join(` +`);if(y.clipboardData.setData("Text",C),y.clipboardData.getData("Text")==C){y.preventDefault();return}}var K=Ag(),ee=K.firstChild;o.display.lineSpace.insertBefore(K,o.display.lineSpace.firstChild),ee.value=ni.text.join(` +`);var be=document.activeElement;ue(ee),setTimeout(function(){o.display.lineSpace.removeChild(K),be.focus(),be==l&&a.showPrimarySelection()},50)}}M(l,"copy",v),M(l,"cut",v)},rn.prototype.screenReaderLabelChanged=function(t){t?this.div.setAttribute("aria-label",t):this.div.removeAttribute("aria-label")},rn.prototype.prepareSelection=function(){var t=Tv(this.cm,!1);return t.focus=document.activeElement==this.div,t},rn.prototype.showSelection=function(t,r){!t||!this.cm.display.view.length||((t.focus||r)&&this.showPrimarySelection(),this.showMultipleSelections(t))},rn.prototype.getSelection=function(){return this.cm.display.wrapper.ownerDocument.getSelection()},rn.prototype.showPrimarySelection=function(){var t=this.getSelection(),r=this.cm,a=r.doc.sel.primary(),o=a.from(),l=a.to();if(r.display.viewTo==r.display.viewFrom||o.line>=r.display.viewTo||l.line=r.display.viewFrom&&Rg(r,o)||{node:y[0].measure.map[2],offset:0},C=l.linet.firstLine()&&(o=W(o.line-1,ft(t.doc,o.line-1).length)),l.ch==ft(t.doc,l.line).text.length&&l.liner.viewTo-1)return!1;var f,v,y;o.line==r.viewFrom||(f=Co(t,o.line))==0?(v=Tt(r.view[0].line),y=r.view[0].node):(v=Tt(r.view[f].line),y=r.view[f-1].node.nextSibling);var _=Co(t,l.line),C,K;if(_==r.view.length-1?(C=r.viewTo-1,K=r.lineDiv.lastChild):(C=Tt(r.view[_+1].line)-1,K=r.view[_+1].node.previousSibling),!y)return!1;for(var ee=t.doc.splitLines(zk(t,y,K,v,C)),be=bt(t.doc,W(v,0),W(C,ft(t.doc,C).text.length));ee.length>1&&be.length>1;)if(ce(ee)==ce(be))ee.pop(),be.pop(),C--;else if(ee[0]==be[0])ee.shift(),be.shift(),v++;else break;for(var ke=0,ze=0,$e=ee[0],Ze=be[0],ot=Math.min($e.length,Ze.length);keo.ch&&pt.charCodeAt(pt.length-ze-1)==at.charCodeAt(at.length-ze-1);)ke--,ze++;ee[ee.length-1]=pt.slice(0,pt.length-ze).replace(/^\u200b+/,""),ee[0]=ee[0].slice(ke).replace(/\u200b+$/,"");var kt=W(v,ke),xt=W(C,be.length?ce(be).length-ze:0);if(ee.length>1||ee[0]||ie(kt,xt))return ca(t.doc,ee,kt,xt,"+input"),!0},rn.prototype.ensurePolled=function(){this.forceCompositionEnd()},rn.prototype.reset=function(){this.forceCompositionEnd()},rn.prototype.forceCompositionEnd=function(){!this.composing||(clearTimeout(this.readDOMTimeout),this.composing=null,this.updateFromDOM(),this.div.blur(),this.div.focus())},rn.prototype.readFromDOMSoon=function(){var t=this;this.readDOMTimeout==null&&(this.readDOMTimeout=setTimeout(function(){if(t.readDOMTimeout=null,t.composing)if(t.composing.done)t.composing=null;else return;t.updateFromDOM()},80))},rn.prototype.updateFromDOM=function(){var t=this;(this.cm.isReadOnly()||!this.pollContent())&&br(this.cm,function(){return cr(t.cm)})},rn.prototype.setUneditable=function(t){t.contentEditable="false"},rn.prototype.onKeyPress=function(t){t.charCode==0||this.composing||(t.preventDefault(),this.cm.isReadOnly()||zn(this.cm,zc)(this.cm,String.fromCharCode(t.charCode==null?t.keyCode:t.charCode),0))},rn.prototype.readOnlyChanged=function(t){this.div.contentEditable=String(t!="nocursor")},rn.prototype.onContextMenu=function(){},rn.prototype.resetPosition=function(){},rn.prototype.needsContentAttribute=!0;function Rg(t,r){var a=ac(t,r.line);if(!a||a.hidden)return null;var o=ft(t.doc,r.line),l=sv(a,o,r.line),f=qe(o,t.doc.direction),v="left";if(f){var y=V(f,r.ch);v=y%2?"right":"left"}var _=hv(l.map,r.ch,v);return _.offset=_.collapse=="right"?_.end:_.start,_}function Fk(t){for(var r=t;r;r=r.parentNode)if(/CodeMirror-gutter-wrapper/.test(r.className))return!0;return!1}function ga(t,r){return r&&(t.bad=!0),t}function zk(t,r,a,o,l){var f="",v=!1,y=t.doc.lineSeparator(),_=!1;function C(ke){return function(ze){return ze.id==ke}}function K(){v&&(f+=y,_&&(f+=y),v=_=!1)}function ee(ke){ke&&(K(),f+=ke)}function be(ke){if(ke.nodeType==1){var ze=ke.getAttribute("cm-text");if(ze){ee(ze);return}var $e=ke.getAttribute("cm-marker"),Ze;if($e){var ot=t.findMarks(W(o,0),W(l+1,0),C(+$e));ot.length&&(Ze=ot[0].find(0))&&ee(bt(t.doc,Ze.from,Ze.to).join(y));return}if(ke.getAttribute("contenteditable")=="false")return;var pt=/^(pre|div|p|li|table|br)$/i.test(ke.nodeName);if(!/^br$/i.test(ke.nodeName)&&ke.textContent.length==0)return;pt&&K();for(var at=0;at=9&&r.hasSelection&&(r.hasSelection=null),a.poll()}),M(l,"paste",function(v){Ke(o,v)||Pg(v,o)||(o.state.pasteIncoming=+new Date,a.fastPoll())});function f(v){if(!Ke(o,v)){if(o.somethingSelected())Yl({lineWise:!1,text:o.getSelections()});else if(o.options.lineWiseCopyCut){var y=Og(o);Yl({lineWise:!0,text:y.text}),v.type=="cut"?o.setSelections(y.ranges,null,it):(a.prevInput="",l.value=y.text.join(` +`),ue(l))}else return;v.type=="cut"&&(o.state.cutIncoming=+new Date)}}M(l,"cut",f),M(l,"copy",f),M(t.scroller,"paste",function(v){if(!(bi(t,v)||Ke(o,v))){if(!l.dispatchEvent){o.state.pasteIncoming=+new Date,a.focus();return}var y=new Event("paste");y.clipboardData=v.clipboardData,l.dispatchEvent(y)}}),M(t.lineSpace,"selectstart",function(v){bi(t,v)||St(v)}),M(l,"compositionstart",function(){var v=o.getCursor("from");a.composing&&a.composing.range.clear(),a.composing={start:v,range:o.markText(v,o.getCursor("to"),{className:"CodeMirror-composing"})}}),M(l,"compositionend",function(){a.composing&&(a.poll(),a.composing.range.clear(),a.composing=null)})},bn.prototype.createField=function(t){this.wrapper=Ag(),this.textarea=this.wrapper.firstChild},bn.prototype.screenReaderLabelChanged=function(t){t?this.textarea.setAttribute("aria-label",t):this.textarea.removeAttribute("aria-label")},bn.prototype.prepareSelection=function(){var t=this.cm,r=t.display,a=t.doc,o=Tv(t);if(t.options.moveInputWithCursor){var l=ei(t,a.sel.primary().head,"div"),f=r.wrapper.getBoundingClientRect(),v=r.lineDiv.getBoundingClientRect();o.teTop=Math.max(0,Math.min(r.wrapper.clientHeight-10,l.top+v.top-f.top)),o.teLeft=Math.max(0,Math.min(r.wrapper.clientWidth-10,l.left+v.left-f.left))}return o},bn.prototype.showSelection=function(t){var r=this.cm,a=r.display;N(a.cursorDiv,t.cursors),N(a.selectionDiv,t.selection),t.teTop!=null&&(this.wrapper.style.top=t.teTop+"px",this.wrapper.style.left=t.teLeft+"px")},bn.prototype.reset=function(t){if(!(this.contextMenuPending||this.composing)){var r=this.cm;if(r.somethingSelected()){this.prevInput="";var a=r.getSelection();this.textarea.value=a,r.state.focused&&ue(this.textarea),d&&p>=9&&(this.hasSelection=a)}else t||(this.prevInput=this.textarea.value="",d&&p>=9&&(this.hasSelection=null))}},bn.prototype.getField=function(){return this.textarea},bn.prototype.supportsTouch=function(){return!1},bn.prototype.focus=function(){if(this.cm.options.readOnly!="nocursor"&&(!R||_e()!=this.textarea))try{this.textarea.focus()}catch{}},bn.prototype.blur=function(){this.textarea.blur()},bn.prototype.resetPosition=function(){this.wrapper.style.top=this.wrapper.style.left=0},bn.prototype.receivedFocus=function(){this.slowPoll()},bn.prototype.slowPoll=function(){var t=this;this.pollingFast||this.polling.set(this.cm.options.pollInterval,function(){t.poll(),t.cm.state.focused&&t.slowPoll()})},bn.prototype.fastPoll=function(){var t=!1,r=this;r.pollingFast=!0;function a(){var o=r.poll();!o&&!t?(t=!0,r.polling.set(60,a)):(r.pollingFast=!1,r.slowPoll())}r.polling.set(20,a)},bn.prototype.poll=function(){var t=this,r=this.cm,a=this.textarea,o=this.prevInput;if(this.contextMenuPending||!r.state.focused||G(a)&&!o&&!this.composing||r.isReadOnly()||r.options.disableInput||r.state.keySeq)return!1;var l=a.value;if(l==o&&!r.somethingSelected())return!1;if(d&&p>=9&&this.hasSelection===l||j&&/[\uf700-\uf7ff]/.test(l))return r.display.input.reset(),!1;if(r.doc.sel==r.display.selForContextMenu){var f=l.charCodeAt(0);if(f==8203&&!o&&(o="\u200B"),f==8666)return this.reset(),this.cm.execCommand("undo")}for(var v=0,y=Math.min(o.length,l.length);v1e3||l.indexOf(` +`)>-1?a.value=t.prevInput="":t.prevInput=l,t.composing&&(t.composing.range.clear(),t.composing.range=r.markText(t.composing.start,r.getCursor("to"),{className:"CodeMirror-composing"}))}),!0},bn.prototype.ensurePolled=function(){this.pollingFast&&this.poll()&&(this.pollingFast=!1)},bn.prototype.onKeyPress=function(){d&&p>=9&&(this.hasSelection=null),this.fastPoll()},bn.prototype.onContextMenu=function(t){var r=this,a=r.cm,o=a.display,l=r.textarea;r.contextMenuPending&&r.contextMenuPending();var f=bo(a,t),v=o.scroller.scrollTop;if(!f||I)return;var y=a.options.resetSelectionOnContextMenu;y&&a.doc.sel.contains(f)==-1&&zn(a,Jn)(a.doc,ji(f),it);var _=l.style.cssText,C=r.wrapper.style.cssText,K=r.wrapper.offsetParent.getBoundingClientRect();r.wrapper.style.cssText="position: static",l.style.cssText=`position: absolute; width: 30px; height: 30px; + top: `+(t.clientY-K.top-5)+"px; left: "+(t.clientX-K.left-5)+`px; z-index: 1000; background: `+(d?"rgba(255, 255, 255, .05)":"transparent")+`; - outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);`;var J;x&&(J=l.ownerDocument.defaultView.scrollY),o.input.focus(),x&&l.ownerDocument.defaultView.scrollTo(null,J),o.input.reset(),a.somethingSelected()||(l.value=r.prevInput=" "),r.contextMenuPending=we,o.selForContextMenu=a.doc.sel,clearTimeout(o.detectingSelectAll);function Se(){if(l.selectionStart!=null){var Ve=a.somethingSelected(),tt="\u200B"+(Ve?l.value:"");l.value="\u21DA",l.value=tt,r.prevInput=Ve?"":"\u200B",l.selectionStart=1,l.selectionEnd=tt.length,o.selForContextMenu=a.doc.sel}}function we(){if(r.contextMenuPending==we&&(r.contextMenuPending=!1,r.wrapper.style.cssText=C,l.style.cssText=_,d&&v<9&&o.scrollbars.setScrollTop(o.scroller.scrollTop=p),l.selectionStart!=null)){(!d||d&&v<9)&&Se();var Ve=0,tt=function(){o.selForContextMenu==a.doc.sel&&l.selectionStart==0&&l.selectionEnd>0&&r.prevInput=="\u200B"?Hn(a,Jv)(a):Ve++<10?o.detectingSelectAll=setTimeout(tt,500):(o.selForContextMenu=null,o.input.reset())};o.detectingSelectAll=setTimeout(tt,200)}}if(d&&v>=9&&Se(),g){G(t);var je=function(){nt(window,"mouseup",je),setTimeout(we,20)};Te(window,"mouseup",je)}else setTimeout(we,50)},En.prototype.readOnlyChanged=function(t){t||this.reset(),this.textarea.disabled=t=="nocursor",this.textarea.readOnly=!!t},En.prototype.setUneditable=function(){},En.prototype.needsContentAttribute=!1;function Bk(t,r){if(r=r?_e(r):{},r.value=t.value,!r.tabindex&&t.tabIndex&&(r.tabindex=t.tabIndex),!r.placeholder&&t.placeholder&&(r.placeholder=t.placeholder),r.autofocus==null){var a=Oe(t.ownerDocument);r.autofocus=a==t||t.getAttribute("autofocus")!=null&&a==document.body}function o(){t.value=y.getValue()}var l;if(t.form&&(Te(t.form,"submit",o),!r.leaveSubmitMethodAlone)){var f=t.form;l=f.submit;try{var p=f.submit=function(){o(),f.submit=l,f.submit(),f.submit=p}}catch{}}r.finishInit=function(_){_.save=o,_.getTextArea=function(){return t},_.toTextArea=function(){_.toTextArea=isNaN,o(),t.parentNode.removeChild(_.getWrapperElement()),t.style.display="",t.form&&(nt(t.form,"submit",o),!r.leaveSubmitMethodAlone&&typeof t.form.submit=="function"&&(t.form.submit=l))}},t.style.display="none";var y=mn(function(_){return t.parentNode.insertBefore(_,t.nextSibling)},r);return y}function jk(t){t.off=nt,t.on=Te,t.wheelEventPixels=K_,t.Doc=pr,t.splitLines=xe,t.countColumn=Re,t.findColumn=ke,t.isWordChar=Rt,t.Pass=me,t.signal=at,t.Line=Ti,t.changeEnd=Yi,t.scrollbarModel=Nv,t.Pos=K,t.cmpPos=pe,t.modes=et,t.mimeModes=dt,t.resolveMode=St,t.getMode=sn,t.modeExtensions=Tn,t.extendMode=Pn,t.copyState=gn,t.startState=Mt,t.innerMode=hn,t.commands=_u,t.keyMap=Ci,t.keyName=vg,t.isModifierKey=dg,t.lookupKey=ga,t.normalizeKeyMap=yk,t.StringStream=Lt,t.SharedTextMarker=yu,t.TextMarker=Gi,t.LineWidget=mu,t.e_preventDefault=Bt,t.e_stopPropagation=on,t.e_stop=G,t.addClass=fe,t.contains=he,t.rmClass=E,t.keyNames=Vi}Ak(mn),zk(mn);var Yk="iter insert remove copy getEditor constructor".split(" ");for(var Gl in pr.prototype)pr.prototype.hasOwnProperty(Gl)&&Xe(Yk,Gl)<0&&(mn.prototype[Gl]=function(t){return function(){return t.apply(this.doc,arguments)}}(pr.prototype[Gl]));return zt(pr),mn.inputStyles={textarea:En,contenteditable:nn},mn.defineMode=function(t){!mn.defaults.mode&&t!="null"&&(mn.defaults.mode=t),It.apply(this,arguments)},mn.defineMIME=Pt,mn.defineMode("null",function(){return{token:function(t){return t.skipToEnd()}}}),mn.defineMIME("text/plain","null"),mn.defineExtension=function(t,r){mn.prototype[t]=r},mn.defineDocExtension=function(t,r){pr.prototype[t]=r},mn.fromTextArea=Bk,jk(mn),mn.version="5.65.9",mn})});var uw=xt((ow,aw)=>{(function(e){typeof ow=="object"&&typeof aw=="object"?e(wl()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)})(function(e){"use strict";var n={autoSelfClosers:{area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0,menuitem:!0},implicitlyClosed:{dd:!0,li:!0,optgroup:!0,option:!0,p:!0,rp:!0,rt:!0,tbody:!0,td:!0,tfoot:!0,th:!0,tr:!0},contextGrabbers:{dd:{dd:!0,dt:!0},dt:{dd:!0,dt:!0},li:{li:!0},option:{option:!0,optgroup:!0},optgroup:{optgroup:!0},p:{address:!0,article:!0,aside:!0,blockquote:!0,dir:!0,div:!0,dl:!0,fieldset:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,menu:!0,nav:!0,ol:!0,p:!0,pre:!0,section:!0,table:!0,ul:!0},rp:{rp:!0,rt:!0},rt:{rp:!0,rt:!0},tbody:{tbody:!0,tfoot:!0},td:{td:!0,th:!0},tfoot:{tbody:!0},th:{td:!0,th:!0},thead:{tbody:!0,tfoot:!0},tr:{tr:!0}},doNotIndent:{pre:!0},allowUnquoted:!0,allowMissing:!0,caseFold:!0},i={autoSelfClosers:{},implicitlyClosed:{},contextGrabbers:{},doNotIndent:{},allowUnquoted:!1,allowMissing:!1,allowMissingTagName:!1,caseFold:!1};e.defineMode("xml",function(u,s){var h=u.indentUnit,d={},v=s.htmlMode?n:i;for(var x in v)d[x]=v[x];for(var x in s)d[x]=s[x];var T,M;function O(m,A){function W(fe){return A.tokenize=fe,fe(m,A)}var he=m.next();if(he=="<")return m.eat("!")?m.eat("[")?m.match("CDATA[")?W(Ee("atom","]]>")):null:m.match("--")?W(Ee("comment","-->")):m.match("DOCTYPE",!0,!0)?(m.eatWhile(/[\w\._\-]/),W(ie(1))):null:m.eat("?")?(m.eatWhile(/[\w\._\-]/),A.tokenize=Ee("meta","?>"),"meta"):(T=m.eat("/")?"closeTag":"openTag",A.tokenize=te,"tag bracket");if(he=="&"){var Oe;return m.eat("#")?m.eat("x")?Oe=m.eatWhile(/[a-fA-F\d]/)&&m.eat(";"):Oe=m.eatWhile(/[\d]/)&&m.eat(";"):Oe=m.eatWhile(/[\w\.\-:]/)&&m.eat(";"),Oe?"atom":"error"}else return m.eatWhile(/[^&<]/),null}O.isInText=!0;function te(m,A){var W=m.next();if(W==">"||W=="/"&&m.eat(">"))return A.tokenize=O,T=W==">"?"endTag":"selfcloseTag","tag bracket";if(W=="=")return T="equals",null;if(W=="<"){A.tokenize=O,A.state=ge,A.tagName=A.tagStart=null;var he=A.tokenize(m,A);return he?he+" tag error":"tag error"}else return/[\'\"]/.test(W)?(A.tokenize=ve(W),A.stringStartCol=m.column(),A.tokenize(m,A)):(m.match(/^[^\s\u00a0=<>\"\']*[^\s\u00a0=<>\"\'\/]/),"word")}function ve(m){var A=function(W,he){for(;!W.eol();)if(W.next()==m){he.tokenize=te;break}return"string"};return A.isInAttribute=!0,A}function Ee(m,A){return function(W,he){for(;!W.eol();){if(W.match(A)){he.tokenize=O;break}W.next()}return m}}function ie(m){return function(A,W){for(var he;(he=A.next())!=null;){if(he=="<")return W.tokenize=ie(m+1),W.tokenize(A,W);if(he==">")if(m==1){W.tokenize=O;break}else return W.tokenize=ie(m-1),W.tokenize(A,W)}return"meta"}}function I(m){return m&&m.toLowerCase()}function D(m,A,W){this.prev=m.context,this.tagName=A||"",this.indent=m.indented,this.startOfLine=W,(d.doNotIndent.hasOwnProperty(A)||m.context&&m.context.noIndent)&&(this.noIndent=!0)}function q(m){m.context&&(m.context=m.context.prev)}function oe(m,A){for(var W;;){if(!m.context||(W=m.context.tagName,!d.contextGrabbers.hasOwnProperty(I(W))||!d.contextGrabbers[I(W)].hasOwnProperty(I(A))))return;q(m)}}function ge(m,A,W){return m=="openTag"?(W.tagStart=A.column(),Ue):m=="closeTag"?de:ge}function Ue(m,A,W){return m=="word"?(W.tagName=A.current(),M="tag",k):d.allowMissingTagName&&m=="endTag"?(M="tag bracket",k(m,A,W)):(M="error",Ue)}function de(m,A,W){if(m=="word"){var he=A.current();return W.context&&W.context.tagName!=he&&d.implicitlyClosed.hasOwnProperty(I(W.context.tagName))&&q(W),W.context&&W.context.tagName==he||d.matchClosing===!1?(M="tag",c):(M="tag error",g)}else return d.allowMissingTagName&&m=="endTag"?(M="tag bracket",c(m,A,W)):(M="error",g)}function c(m,A,W){return m!="endTag"?(M="error",c):(q(W),ge)}function g(m,A,W){return M="error",c(m,A,W)}function k(m,A,W){if(m=="word")return M="attribute",E;if(m=="endTag"||m=="selfcloseTag"){var he=W.tagName,Oe=W.tagStart;return W.tagName=W.tagStart=null,m=="selfcloseTag"||d.autoSelfClosers.hasOwnProperty(I(he))?oe(W,he):(oe(W,he),W.context=new D(W,he,Oe==W.indented)),ge}return M="error",k}function E(m,A,W){return m=="equals"?S:(d.allowMissing||(M="error"),k(m,A,W))}function S(m,A,W){return m=="string"?X:m=="word"&&d.allowUnquoted?(M="string",k):(M="error",k(m,A,W))}function X(m,A,W){return m=="string"?X:k(m,A,W)}return{startState:function(m){var A={tokenize:O,state:ge,indented:m||0,tagName:null,tagStart:null,context:null};return m!=null&&(A.baseIndent=m),A},token:function(m,A){if(!A.tagName&&m.sol()&&(A.indented=m.indentation()),m.eatSpace())return null;T=null;var W=A.tokenize(m,A);return(W||T)&&W!="comment"&&(M=null,A.state=A.state(T||W,m,A),M&&(W=M=="error"?W+" error":M)),W},indent:function(m,A,W){var he=m.context;if(m.tokenize.isInAttribute)return m.tagStart==m.indented?m.stringStartCol+1:m.indented+h;if(he&&he.noIndent)return e.Pass;if(m.tokenize!=te&&m.tokenize!=O)return W?W.match(/^(\s*)/)[0].length:0;if(m.tagName)return d.multilineTagIndentPastTag!==!1?m.tagStart+m.tagName.length+2:m.tagStart+h*(d.multilineTagIndentFactor||1);if(d.alignCDATA&&/$/,blockCommentStart:"",configuration:d.htmlMode?"html":"xml",helperType:d.htmlMode?"html":"xml",skipAttribute:function(m){m.state==S&&(m.state=k)},xmlCurrentTag:function(m){return m.tagName?{name:m.tagName,close:m.type=="closeTag"}:null},xmlCurrentContext:function(m){for(var A=[],W=m.context;W;W=W.prev)A.push(W.tagName);return A.reverse()}}}),e.defineMIME("text/xml","xml"),e.defineMIME("application/xml","xml"),e.mimeModes.hasOwnProperty("text/html")||e.defineMIME("text/html",{name:"xml",htmlMode:!0})})});var fw=xt((lw,sw)=>{(function(e){typeof lw=="object"&&typeof sw=="object"?e(wl()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)})(function(e){"use strict";e.defineMode("javascript",function(n,i){var u=n.indentUnit,s=i.statementIndent,h=i.jsonld,d=i.json||h,v=i.trackScope!==!1,x=i.typescript,T=i.wordCharacters||/[\w$\xa1-\uffff]/,M=function(){function b(qt){return{type:qt,style:"keyword"}}var H=b("keyword a"),K=b("keyword b"),pe=b("keyword c"),Ze=b("keyword d"),ct=b("operator"),yt={type:"atom",style:"atom"};return{if:b("if"),while:H,with:H,else:K,do:K,try:K,finally:K,return:Ze,break:Ze,continue:Ze,new:b("new"),delete:pe,void:pe,throw:pe,debugger:b("debugger"),var:b("var"),const:b("var"),let:b("var"),function:b("function"),catch:b("catch"),for:b("for"),switch:b("switch"),case:b("case"),default:b("default"),in:ct,typeof:ct,instanceof:ct,true:yt,false:yt,null:yt,undefined:yt,NaN:yt,Infinity:yt,this:b("this"),class:b("class"),super:b("atom"),yield:pe,export:b("export"),import:b("import"),extends:pe,await:pe}}(),O=/[+\-*&%=<>!?|~^@]/,te=/^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/;function ve(b){for(var H=!1,K,pe=!1;(K=b.next())!=null;){if(!H){if(K=="/"&&!pe)return;K=="["?pe=!0:pe&&K=="]"&&(pe=!1)}H=!H&&K=="\\"}}var Ee,ie;function I(b,H,K){return Ee=b,ie=K,H}function D(b,H){var K=b.next();if(K=='"'||K=="'")return H.tokenize=q(K),H.tokenize(b,H);if(K=="."&&b.match(/^\d[\d_]*(?:[eE][+\-]?[\d_]+)?/))return I("number","number");if(K=="."&&b.match(".."))return I("spread","meta");if(/[\[\]{}\(\),;\:\.]/.test(K))return I(K);if(K=="="&&b.eat(">"))return I("=>","operator");if(K=="0"&&b.match(/^(?:x[\dA-Fa-f_]+|o[0-7_]+|b[01_]+)n?/))return I("number","number");if(/\d/.test(K))return b.match(/^[\d_]*(?:n|(?:\.[\d_]*)?(?:[eE][+\-]?[\d_]+)?)?/),I("number","number");if(K=="/")return b.eat("*")?(H.tokenize=oe,oe(b,H)):b.eat("/")?(b.skipToEnd(),I("comment","comment")):Qe(b,H,1)?(ve(b),b.match(/^\b(([gimyus])(?![gimyus]*\2))+\b/),I("regexp","string-2")):(b.eat("="),I("operator","operator",b.current()));if(K=="`")return H.tokenize=ge,ge(b,H);if(K=="#"&&b.peek()=="!")return b.skipToEnd(),I("meta","meta");if(K=="#"&&b.eatWhile(T))return I("variable","property");if(K=="<"&&b.match("!--")||K=="-"&&b.match("->")&&!/\S/.test(b.string.slice(0,b.start)))return b.skipToEnd(),I("comment","comment");if(O.test(K))return(K!=">"||!H.lexical||H.lexical.type!=">")&&(b.eat("=")?(K=="!"||K=="=")&&b.eat("="):/[<>*+\-|&?]/.test(K)&&(b.eat(K),K==">"&&b.eat(K))),K=="?"&&b.eat(".")?I("."):I("operator","operator",b.current());if(T.test(K)){b.eatWhile(T);var pe=b.current();if(H.lastType!="."){if(M.propertyIsEnumerable(pe)){var Ze=M[pe];return I(Ze.type,Ze.style,pe)}if(pe=="async"&&b.match(/^(\s|\/\*([^*]|\*(?!\/))*?\*\/)*[\[\(\w]/,!1))return I("async","keyword",pe)}return I("variable","variable",pe)}}function q(b){return function(H,K){var pe=!1,Ze;if(h&&H.peek()=="@"&&H.match(te))return K.tokenize=D,I("jsonld-keyword","meta");for(;(Ze=H.next())!=null&&!(Ze==b&&!pe);)pe=!pe&&Ze=="\\";return pe||(K.tokenize=D),I("string","string")}}function oe(b,H){for(var K=!1,pe;pe=b.next();){if(pe=="/"&&K){H.tokenize=D;break}K=pe=="*"}return I("comment","comment")}function ge(b,H){for(var K=!1,pe;(pe=b.next())!=null;){if(!K&&(pe=="`"||pe=="$"&&b.eat("{"))){H.tokenize=D;break}K=!K&&pe=="\\"}return I("quasi","string-2",b.current())}var Ue="([{}])";function de(b,H){H.fatArrowAt&&(H.fatArrowAt=null);var K=b.string.indexOf("=>",b.start);if(!(K<0)){if(x){var pe=/:\s*(?:\w+(?:<[^>]*>|\[\])?|\{[^}]*\})\s*$/.exec(b.string.slice(b.start,K));pe&&(K=pe.index)}for(var Ze=0,ct=!1,yt=K-1;yt>=0;--yt){var qt=b.string.charAt(yt),an=Ue.indexOf(qt);if(an>=0&&an<3){if(!Ze){++yt;break}if(--Ze==0){qt=="("&&(ct=!0);break}}else if(an>=3&&an<6)++Ze;else if(T.test(qt))ct=!0;else if(/["'\/`]/.test(qt))for(;;--yt){if(yt==0)return;var gt=b.string.charAt(yt-1);if(gt==qt&&b.string.charAt(yt-2)!="\\"){yt--;break}}else if(ct&&!Ze){++yt;break}}ct&&!Ze&&(H.fatArrowAt=yt)}}var c={atom:!0,number:!0,variable:!0,string:!0,regexp:!0,this:!0,import:!0,"jsonld-keyword":!0};function g(b,H,K,pe,Ze,ct){this.indented=b,this.column=H,this.type=K,this.prev=Ze,this.info=ct,pe!=null&&(this.align=pe)}function k(b,H){if(!v)return!1;for(var K=b.localVars;K;K=K.next)if(K.name==H)return!0;for(var pe=b.context;pe;pe=pe.prev)for(var K=pe.vars;K;K=K.next)if(K.name==H)return!0}function E(b,H,K,pe,Ze){var ct=b.cc;for(S.state=b,S.stream=Ze,S.marked=null,S.cc=ct,S.style=H,b.lexical.hasOwnProperty("align")||(b.lexical.align=!0);;){var yt=ct.length?ct.pop():d?me:Xe;if(yt(K,pe)){for(;ct.length&&ct[ct.length-1].lex;)ct.pop()();return S.marked?S.marked:K=="variable"&&k(b,pe)?"variable-2":H}}}var S={state:null,column:null,marked:null,cc:null};function X(){for(var b=arguments.length-1;b>=0;b--)S.cc.push(arguments[b])}function m(){return X.apply(null,arguments),!0}function A(b,H){for(var K=H;K;K=K.next)if(K.name==b)return!0;return!1}function W(b){var H=S.state;if(S.marked="def",!!v){if(H.context){if(H.lexical.info=="var"&&H.context&&H.context.block){var K=he(b,H.context);if(K!=null){H.context=K;return}}else if(!A(b,H.localVars)){H.localVars=new ne(b,H.localVars);return}}i.globalVars&&!A(b,H.globalVars)&&(H.globalVars=new ne(b,H.globalVars))}}function he(b,H){if(H)if(H.block){var K=he(b,H.prev);return K?K==H.prev?H:new fe(K,H.vars,!0):null}else return A(b,H.vars)?H:new fe(H.prev,new ne(b,H.vars),!1);else return null}function Oe(b){return b=="public"||b=="private"||b=="protected"||b=="abstract"||b=="readonly"}function fe(b,H,K){this.prev=b,this.vars=H,this.block=K}function ne(b,H){this.name=b,this.next=H}var We=new ne("this",new ne("arguments",null));function se(){S.state.context=new fe(S.state.context,S.state.localVars,!1),S.state.localVars=We}function be(){S.state.context=new fe(S.state.context,S.state.localVars,!0),S.state.localVars=null}se.lex=be.lex=!0;function Ce(){S.state.localVars=S.state.context.vars,S.state.context=S.state.context.prev}Ce.lex=!0;function _e(b,H){var K=function(){var pe=S.state,Ze=pe.indented;if(pe.lexical.type=="stat")Ze=pe.lexical.indented;else for(var ct=pe.lexical;ct&&ct.type==")"&&ct.align;ct=ct.prev)Ze=ct.indented;pe.lexical=new g(Ze,S.stream.column(),b,null,pe.lexical,H)};return K.lex=!0,K}function Re(){var b=S.state;b.lexical.prev&&(b.lexical.type==")"&&(b.indented=b.lexical.indented),b.lexical=b.lexical.prev)}Re.lex=!0;function Ae(b){function H(K){return K==b?m():b==";"||K=="}"||K==")"||K=="]"?X():m(H)}return H}function Xe(b,H){return b=="var"?m(_e("vardef",H),G,Ae(";"),Re):b=="keyword a"?m(_e("form"),Q,Xe,Re):b=="keyword b"?m(_e("form"),Xe,Re):b=="keyword d"?S.stream.match(/^\s*$/,!1)?m():m(_e("stat"),ke,Ae(";"),Re):b=="debugger"?m(Ae(";")):b=="{"?m(_e("}"),be,Ke,Re,Ce):b==";"?m():b=="if"?(S.state.lexical.info=="else"&&S.state.cc[S.state.cc.length-1]==Re&&S.state.cc.pop()(),m(_e("form"),Q,Xe,Re,Y)):b=="function"?m(ze):b=="for"?m(_e("form"),be,ce,Xe,Ce,Re):b=="class"||x&&H=="interface"?(S.marked="keyword",m(_e("form",b=="class"?b:H),It,Re)):b=="variable"?x&&H=="declare"?(S.marked="keyword",m(Xe)):x&&(H=="module"||H=="enum"||H=="type")&&S.stream.match(/^\s*\w/,!1)?(S.marked="keyword",H=="enum"?m(j):H=="type"?m($e,Ae("operator"),Te,Ae(";")):m(_e("form"),Le,Ae("{"),_e("}"),Ke,Re,Re)):x&&H=="namespace"?(S.marked="keyword",m(_e("form"),me,Xe,Re)):x&&H=="abstract"?(S.marked="keyword",m(Xe)):m(_e("stat"),Kt):b=="switch"?m(_e("form"),Q,Ae("{"),_e("}","switch"),be,Ke,Re,Re,Ce):b=="case"?m(me,Ae(":")):b=="default"?m(Ae(":")):b=="catch"?m(_e("form"),se,re,Xe,Re,Ce):b=="export"?m(_e("stat"),Tn,Re):b=="import"?m(_e("stat"),gn,Re):b=="async"?m(Xe):H=="@"?m(me,Xe):X(_e("stat"),me,Ae(";"),Re)}function re(b){if(b=="(")return m(et,Ae(")"))}function me(b,H){return ee(b,H,!1)}function Pe(b,H){return ee(b,H,!0)}function Q(b){return b!="("?X():m(_e(")"),ke,Ae(")"),Re)}function ee(b,H,K){if(S.state.fatArrowAt==S.stream.start){var pe=K?Dt:Xt;if(b=="(")return m(se,_e(")"),B(et,")"),Re,Ae("=>"),pe,Ce);if(b=="variable")return X(se,Le,Ae("=>"),pe,Ce)}var Ze=K?it:De;return c.hasOwnProperty(b)?m(Ze):b=="function"?m(ze,Ze):b=="class"||x&&H=="interface"?(S.marked="keyword",m(_e("form"),dt,Re)):b=="keyword c"||b=="async"?m(K?Pe:me):b=="("?m(_e(")"),ke,Ae(")"),Re,Ze):b=="operator"||b=="spread"?m(K?Pe:me):b=="["?m(_e("]"),Qt,Re,Ze):b=="{"?Ie(tn,"}",null,Ze):b=="quasi"?X(Je,Ze):b=="new"?m(Nt(K)):m()}function ke(b){return b.match(/[;\}\)\],]/)?X():X(me)}function De(b,H){return b==","?m(ke):it(b,H,!1)}function it(b,H,K){var pe=K==!1?De:it,Ze=K==!1?me:Pe;if(b=="=>")return m(se,K?Dt:Xt,Ce);if(b=="operator")return/\+\+|--/.test(H)||x&&H=="!"?m(pe):x&&H=="<"&&S.stream.match(/^([^<>]|<[^<>]*>)*>\s*\(/,!1)?m(_e(">"),B(Te,">"),Re,pe):H=="?"?m(me,Ae(":"),Ze):m(Ze);if(b=="quasi")return X(Je,pe);if(b!=";"){if(b=="(")return Ie(Pe,")","call",pe);if(b==".")return m(dn,pe);if(b=="[")return m(_e("]"),ke,Ae("]"),Re,pe);if(x&&H=="as")return S.marked="keyword",m(Te,pe);if(b=="regexp")return S.state.lastType=S.marked="operator",S.stream.backUp(S.stream.pos-S.stream.start-1),m(Ze)}}function Je(b,H){return b!="quasi"?X():H.slice(H.length-2)!="${"?m(Je):m(ke,Yt)}function Yt(b){if(b=="}")return S.marked="string-2",S.state.tokenize=ge,m(Je)}function Xt(b){return de(S.stream,S.state),X(b=="{"?Xe:me)}function Dt(b){return de(S.stream,S.state),X(b=="{"?Xe:Pe)}function Nt(b){return function(H){return H=="."?m(b?Rt:Gt):H=="variable"&&x?m(Bt,b?it:De):X(b?Pe:me)}}function Gt(b,H){if(H=="target")return S.marked="keyword",m(De)}function Rt(b,H){if(H=="target")return S.marked="keyword",m(it)}function Kt(b){return b==":"?m(Re,Xe):X(De,Ae(";"),Re)}function dn(b){if(b=="variable")return S.marked="property",m()}function tn(b,H){if(b=="async")return S.marked="property",m(tn);if(b=="variable"||S.style=="keyword"){if(S.marked="property",H=="get"||H=="set")return m(pn);var K;return x&&S.state.fatArrowAt==S.stream.start&&(K=S.stream.match(/^\s*:\s*/,!1))&&(S.state.fatArrowAt=S.stream.pos+K[0].length),m(R)}else{if(b=="number"||b=="string")return S.marked=h?"property":S.style+" property",m(R);if(b=="jsonld-keyword")return m(R);if(x&&Oe(H))return S.marked="keyword",m(tn);if(b=="[")return m(me,Be,Ae("]"),R);if(b=="spread")return m(Pe,R);if(H=="*")return S.marked="keyword",m(tn);if(b==":")return X(R)}}function pn(b){return b!="variable"?X(R):(S.marked="property",m(ze))}function R(b){if(b==":")return m(Pe);if(b=="(")return X(ze)}function B(b,H,K){function pe(Ze,ct){if(K?K.indexOf(Ze)>-1:Ze==","){var yt=S.state.lexical;return yt.info=="call"&&(yt.pos=(yt.pos||0)+1),m(function(qt,an){return qt==H||an==H?X():X(b)},pe)}return Ze==H||ct==H?m():K&&K.indexOf(";")>-1?X(b):m(Ae(H))}return function(Ze,ct){return Ze==H||ct==H?m():X(b,pe)}}function Ie(b,H,K){for(var pe=3;pe"),Te);if(b=="quasi")return X(vt,zt)}function ht(b){if(b=="=>")return m(Te)}function nt(b){return b.match(/[\}\)\]]/)?m():b==","||b==";"?m(nt):X(at,nt)}function at(b,H){if(b=="variable"||S.style=="keyword")return S.marked="property",m(at);if(H=="?"||b=="number"||b=="string")return m(at);if(b==":")return m(Te);if(b=="[")return m(Ae("variable"),P,Ae("]"),at);if(b=="(")return X(Ge,at);if(!b.match(/[;\}\)\],]/))return m()}function vt(b,H){return b!="quasi"?X():H.slice(H.length-2)!="${"?m(vt):m(Te,Ft)}function Ft(b){if(b=="}")return S.marked="string-2",S.state.tokenize=ge,m(vt)}function Ct(b,H){return b=="variable"&&S.stream.match(/^\s*[?:]/,!1)||H=="?"?m(Ct):b==":"?m(Te):b=="spread"?m(Ct):X(Te)}function zt(b,H){if(H=="<")return m(_e(">"),B(Te,">"),Re,zt);if(H=="|"||b=="."||H=="&")return m(Te);if(b=="[")return m(Te,Ae("]"),zt);if(H=="extends"||H=="implements")return S.marked="keyword",m(Te);if(H=="?")return m(Te,Ae(":"),Te)}function Bt(b,H){if(H=="<")return m(_e(">"),B(Te,">"),Re,zt)}function on(){return X(Te,vn)}function vn(b,H){if(H=="=")return m(Te)}function G(b,H){return H=="enum"?(S.marked="keyword",m(j)):X(Le,Be,N,L)}function Le(b,H){if(x&&Oe(H))return S.marked="keyword",m(Le);if(b=="variable")return W(H),m();if(b=="spread")return m(Le);if(b=="[")return Ie(V,"]");if(b=="{")return Ie(F,"}")}function F(b,H){return b=="variable"&&!S.stream.match(/^\s*:/,!1)?(W(H),m(N)):(b=="variable"&&(S.marked="property"),b=="spread"?m(Le):b=="}"?X():b=="["?m(me,Ae("]"),Ae(":"),F):m(Ae(":"),Le,N))}function V(){return X(Le,N)}function N(b,H){if(H=="=")return m(Pe)}function L(b){if(b==",")return m(G)}function Y(b,H){if(b=="keyword b"&&H=="else")return m(_e("form","else"),Xe,Re)}function ce(b,H){if(H=="await")return m(ce);if(b=="(")return m(_e(")"),xe,Re)}function xe(b){return b=="var"?m(G,Fe):b=="variable"?m(Fe):X(Fe)}function Fe(b,H){return b==")"?m():b==";"?m(Fe):H=="in"||H=="of"?(S.marked="keyword",m(me,Fe)):X(me,Fe)}function ze(b,H){if(H=="*")return S.marked="keyword",m(ze);if(b=="variable")return W(H),m(ze);if(b=="(")return m(se,_e(")"),B(et,")"),Re,Z,Xe,Ce);if(x&&H=="<")return m(_e(">"),B(on,">"),Re,ze)}function Ge(b,H){if(H=="*")return S.marked="keyword",m(Ge);if(b=="variable")return W(H),m(Ge);if(b=="(")return m(se,_e(")"),B(et,")"),Re,Z,Ce);if(x&&H=="<")return m(_e(">"),B(on,">"),Re,Ge)}function $e(b,H){if(b=="keyword"||b=="variable")return S.marked="type",m($e);if(H=="<")return m(_e(">"),B(on,">"),Re)}function et(b,H){return H=="@"&&m(me,et),b=="spread"?m(et):x&&Oe(H)?(S.marked="keyword",m(et)):x&&b=="this"?m(Be,N):X(Le,Be,N)}function dt(b,H){return b=="variable"?It(b,H):Pt(b,H)}function It(b,H){if(b=="variable")return W(H),m(Pt)}function Pt(b,H){if(H=="<")return m(_e(">"),B(on,">"),Re,Pt);if(H=="extends"||H=="implements"||x&&b==",")return H=="implements"&&(S.marked="keyword"),m(x?Te:me,Pt);if(b=="{")return m(_e("}"),St,Re)}function St(b,H){if(b=="async"||b=="variable"&&(H=="static"||H=="get"||H=="set"||x&&Oe(H))&&S.stream.match(/^\s+[\w$\xa1-\uffff]/,!1))return S.marked="keyword",m(St);if(b=="variable"||S.style=="keyword")return S.marked="property",m(sn,St);if(b=="number"||b=="string")return m(sn,St);if(b=="[")return m(me,Be,Ae("]"),sn,St);if(H=="*")return S.marked="keyword",m(St);if(x&&b=="(")return X(Ge,St);if(b==";"||b==",")return m(St);if(b=="}")return m();if(H=="@")return m(me,St)}function sn(b,H){if(H=="!"||H=="?")return m(sn);if(b==":")return m(Te,N);if(H=="=")return m(Pe);var K=S.state.lexical.prev,pe=K&&K.info=="interface";return X(pe?Ge:ze)}function Tn(b,H){return H=="*"?(S.marked="keyword",m(ft,Ae(";"))):H=="default"?(S.marked="keyword",m(me,Ae(";"))):b=="{"?m(B(Pn,"}"),ft,Ae(";")):X(Xe)}function Pn(b,H){if(H=="as")return S.marked="keyword",m(Ae("variable"));if(b=="variable")return X(Pe,Pn)}function gn(b){return b=="string"?m():b=="("?X(me):b=="."?X(De):X(hn,Mt,ft)}function hn(b,H){return b=="{"?Ie(hn,"}"):(b=="variable"&&W(H),H=="*"&&(S.marked="keyword"),m(Lt))}function Mt(b){if(b==",")return m(hn,Mt)}function Lt(b,H){if(H=="as")return S.marked="keyword",m(hn)}function ft(b,H){if(H=="from")return S.marked="keyword",m(me)}function Qt(b){return b=="]"?m():X(B(Pe,"]"))}function j(){return X(_e("form"),Le,Ae("{"),_e("}"),B(le,"}"),Re,Re)}function le(){return X(Le,N)}function He(b,H){return b.lastType=="operator"||b.lastType==","||O.test(H.charAt(0))||/[,.]/.test(H.charAt(0))}function Qe(b,H,K){return H.tokenize==D&&/^(?:operator|sof|keyword [bcd]|case|new|export|default|spread|[\[{}\(,;:]|=>)$/.test(H.lastType)||H.lastType=="quasi"&&/\{\s*$/.test(b.string.slice(0,b.pos-(K||0)))}return{startState:function(b){var H={tokenize:D,lastType:"sof",cc:[],lexical:new g((b||0)-u,0,"block",!1),localVars:i.localVars,context:i.localVars&&new fe(null,null,!1),indented:b||0};return i.globalVars&&typeof i.globalVars=="object"&&(H.globalVars=i.globalVars),H},token:function(b,H){if(b.sol()&&(H.lexical.hasOwnProperty("align")||(H.lexical.align=!1),H.indented=b.indentation(),de(b,H)),H.tokenize!=oe&&b.eatSpace())return null;var K=H.tokenize(b,H);return Ee=="comment"?K:(H.lastType=Ee=="operator"&&(ie=="++"||ie=="--")?"incdec":Ee,E(H,K,Ee,ie,b))},indent:function(b,H){if(b.tokenize==oe||b.tokenize==ge)return e.Pass;if(b.tokenize!=D)return 0;var K=H&&H.charAt(0),pe=b.lexical,Ze;if(!/^\s*else\b/.test(H))for(var ct=b.cc.length-1;ct>=0;--ct){var yt=b.cc[ct];if(yt==Re)pe=pe.prev;else if(yt!=Y&&yt!=Ce)break}for(;(pe.type=="stat"||pe.type=="form")&&(K=="}"||(Ze=b.cc[b.cc.length-1])&&(Ze==De||Ze==it)&&!/^[,\.=+\-*:?[\(]/.test(H));)pe=pe.prev;s&&pe.type==")"&&pe.prev.type=="stat"&&(pe=pe.prev);var qt=pe.type,an=K==qt;return qt=="vardef"?pe.indented+(b.lastType=="operator"||b.lastType==","?pe.info.length+1:0):qt=="form"&&K=="{"?pe.indented:qt=="form"?pe.indented+u:qt=="stat"?pe.indented+(He(b,H)?s||u:0):pe.info=="switch"&&!an&&i.doubleIndentSwitch!=!1?pe.indented+(/^(?:case|default)\b/.test(H)?u:2*u):pe.align?pe.column+(an?0:1):pe.indented+(an?0:u)},electricInput:/^\s*(?:case .*?:|default:|\{|\})$/,blockCommentStart:d?null:"/*",blockCommentEnd:d?null:"*/",blockCommentContinue:d?null:" * ",lineComment:d?null:"//",fold:"brace",closeBrackets:"()[]{}''\"\"``",helperType:d?"json":"javascript",jsonldMode:h,jsonMode:d,expressionAllowed:Qe,skipExpression:function(b){E(b,"atom","atom","true",new e.StringStream("",2,null))}}}),e.registerHelper("wordChars","javascript",/[\w$]/),e.defineMIME("text/javascript","javascript"),e.defineMIME("text/ecmascript","javascript"),e.defineMIME("application/javascript","javascript"),e.defineMIME("application/x-javascript","javascript"),e.defineMIME("application/ecmascript","javascript"),e.defineMIME("application/json",{name:"javascript",json:!0}),e.defineMIME("application/x-json",{name:"javascript",json:!0}),e.defineMIME("application/manifest+json",{name:"javascript",json:!0}),e.defineMIME("application/ld+json",{name:"javascript",jsonld:!0}),e.defineMIME("text/typescript",{name:"javascript",typescript:!0}),e.defineMIME("application/typescript",{name:"javascript",typescript:!0})})});var dw=xt((cw,hw)=>{(function(e){typeof cw=="object"&&typeof hw=="object"?e(wl(),uw(),fw()):typeof define=="function"&&define.amd?define(["../../lib/codemirror","../xml/xml","../javascript/javascript"],e):e(CodeMirror)})(function(e){"use strict";function n(u,s,h,d){this.state=u,this.mode=s,this.depth=h,this.prev=d}function i(u){return new n(e.copyState(u.mode,u.state),u.mode,u.depth,u.prev&&i(u.prev))}e.defineMode("jsx",function(u,s){var h=e.getMode(u,{name:"xml",allowMissing:!0,multilineTagIndentPastTag:!1,allowMissingTagName:!0}),d=e.getMode(u,s&&s.base||"javascript");function v(O){var te=O.tagName;O.tagName=null;var ve=h.indent(O,"","");return O.tagName=te,ve}function x(O,te){return te.context.mode==h?T(O,te,te.context):M(O,te,te.context)}function T(O,te,ve){if(ve.depth==2)return O.match(/^.*?\*\//)?ve.depth=1:O.skipToEnd(),"comment";if(O.peek()=="{"){h.skipAttribute(ve.state);var Ee=v(ve.state),ie=ve.state.context;if(ie&&O.match(/^[^>]*>\s*$/,!1)){for(;ie.prev&&!ie.startOfLine;)ie=ie.prev;ie.startOfLine?Ee-=u.indentUnit:ve.prev.state.lexical&&(Ee=ve.prev.state.lexical.indented)}else ve.depth==1&&(Ee+=u.indentUnit);return te.context=new n(e.startState(d,Ee),d,0,te.context),null}if(ve.depth==1){if(O.peek()=="<")return h.skipAttribute(ve.state),te.context=new n(e.startState(h,v(ve.state)),h,0,te.context),null;if(O.match("//"))return O.skipToEnd(),"comment";if(O.match("/*"))return ve.depth=2,x(O,te)}var I=h.token(O,ve.state),D=O.current(),q;return/\btag\b/.test(I)?/>$/.test(D)?ve.state.context?ve.depth=0:te.context=te.context.prev:/^-1&&O.backUp(D.length-q),I}function M(O,te,ve){if(O.peek()=="<"&&d.expressionAllowed(O,ve.state))return te.context=new n(e.startState(h,d.indent(ve.state,"","")),h,0,te.context),d.skipExpression(ve.state),null;var Ee=d.token(O,ve.state);if(!Ee&&ve.depth!=null){var ie=O.current();ie=="{"?ve.depth++:ie=="}"&&--ve.depth==0&&(te.context=te.context.prev)}return Ee}return{startState:function(){return{context:new n(e.startState(d),d)}},copyState:function(O){return{context:i(O.context)}},token:x,indent:function(O,te,ve){return O.context.mode.indent(O.context.state,te,ve)},innerMode:function(O){return O.context}}},"xml","javascript"),e.defineMIME("text/jsx","jsx"),e.defineMIME("text/typescript-jsx",{name:"jsx",base:{name:"javascript",typescript:!0}})})});var yw=xt((iE,mw)=>{mw.exports=[">",">>","#","%"]});var xw=xt((oE,ww)=>{function lC({trigger:e="",text:n}){let i=n.slice(e.length).match(/(^\S*\((.*?)\)|^\S*)/),u=n.slice(e.length+i[1].length+1),s=i[2],h=s?s.split(","):[],d=i[1].slice(0,i[1].length-(typeof s!="undefined"?s.length+2:0)),v=d.split(".");return{path:d,list:v,params:h,root:v[0],input:u}}ww.exports={parseCommand:lC}});var Mw=xt((gE,Cw)=>{var bw=6e4;Cw.exports=function(n){var i=new Date(n.getTime()),u=i.getTimezoneOffset();i.setSeconds(0,0);var s=i.getTime()%bw;return u*bw+s}});var Ap=xt((mE,Ew)=>{function cC(e){return e instanceof Date}Ew.exports=cC});var _i=xt((yE,Pw)=>{var Ip=Mw(),hC=Ap(),Rp=36e5,Fp=6e4,dC=2,pC=/[T ]/,vC=/:/,gC=/^(\d{2})$/,mC=[/^([+-]\d{2})$/,/^([+-]\d{3})$/,/^([+-]\d{4})$/],yC=/^(\d{4})/,wC=[/^([+-]\d{4})/,/^([+-]\d{5})/,/^([+-]\d{6})/],xC=/^-(\d{2})$/,_C=/^-?(\d{3})$/,kC=/^-?(\d{2})-?(\d{2})$/,TC=/^-?W(\d{2})$/,SC=/^-?W(\d{2})-?(\d{1})$/,bC=/^(\d{2}([.,]\d*)?)$/,CC=/^(\d{2}):?(\d{2}([.,]\d*)?)$/,MC=/^(\d{2}):?(\d{2}):?(\d{2}([.,]\d*)?)$/,EC=/([Z+-].*)$/,NC=/^(Z)$/,PC=/^([+-])(\d{2})$/,LC=/^([+-])(\d{2}):?(\d{2})$/;function OC(e,n){if(hC(e))return new Date(e.getTime());if(typeof e!="string")return new Date(e);var i=n||{},u=i.additionalDigits;u==null?u=dC:u=Number(u);var s=DC(e),h=AC(s.date,u),d=h.year,v=h.restDateString,x=IC(v,d);if(x){var T=x.getTime(),M=0,O;if(s.time&&(M=RC(s.time)),s.timezone)O=FC(s.timezone)*Fp;else{var te=T+M,ve=new Date(te);O=Ip(ve);var Ee=new Date(te);Ee.setDate(ve.getDate()+1);var ie=Ip(Ee)-Ip(ve);ie>0&&(O+=ie)}return new Date(T+M+O)}else return new Date(e)}function DC(e){var n={},i=e.split(pC),u;if(vC.test(i[0])?(n.date=null,u=i[0]):(n.date=i[0],u=i[1]),u){var s=EC.exec(u);s?(n.time=u.replace(s[1],""),n.timezone=s[1]):n.time=u}return n}function AC(e,n){var i=mC[n],u=wC[n],s;if(s=yC.exec(e)||u.exec(e),s){var h=s[1];return{year:parseInt(h,10),restDateString:e.slice(h.length)}}if(s=gC.exec(e)||i.exec(e),s){var d=s[1];return{year:parseInt(d,10)*100,restDateString:e.slice(d.length)}}return{year:null}}function IC(e,n){if(n===null)return null;var i,u,s,h;if(e.length===0)return u=new Date(0),u.setUTCFullYear(n),u;if(i=xC.exec(e),i)return u=new Date(0),s=parseInt(i[1],10)-1,u.setUTCFullYear(n,s),u;if(i=_C.exec(e),i){u=new Date(0);var d=parseInt(i[1],10);return u.setUTCFullYear(n,0,d),u}if(i=kC.exec(e),i){u=new Date(0),s=parseInt(i[1],10)-1;var v=parseInt(i[2],10);return u.setUTCFullYear(n,s,v),u}if(i=TC.exec(e),i)return h=parseInt(i[1],10)-1,Nw(n,h);if(i=SC.exec(e),i){h=parseInt(i[1],10)-1;var x=parseInt(i[2],10)-1;return Nw(n,h,x)}return null}function RC(e){var n,i,u;if(n=bC.exec(e),n)return i=parseFloat(n[1].replace(",",".")),i%24*Rp;if(n=CC.exec(e),n)return i=parseInt(n[1],10),u=parseFloat(n[2].replace(",",".")),i%24*Rp+u*Fp;if(n=MC.exec(e),n){i=parseInt(n[1],10),u=parseInt(n[2],10);var s=parseFloat(n[3].replace(",","."));return i%24*Rp+u*Fp+s*1e3}return null}function FC(e){var n,i;return n=NC.exec(e),n?0:(n=PC.exec(e),n?(i=parseInt(n[2],10)*60,n[1]==="+"?-i:i):(n=LC.exec(e),n?(i=parseInt(n[2],10)*60+parseInt(n[3],10),n[1]==="+"?-i:i):0))}function Nw(e,n,i){n=n||0,i=i||0;var u=new Date(0);u.setUTCFullYear(e,0,4);var s=u.getUTCDay()||7,h=n*7+i+1-s;return u.setUTCDate(u.getUTCDate()+h),u}Pw.exports=OC});var Ow=xt((wE,Lw)=>{var zC=_i();function HC(e){var n=zC(e),i=new Date(0);return i.setFullYear(n.getFullYear(),0,1),i.setHours(0,0,0,0),i}Lw.exports=HC});var Aw=xt((xE,Dw)=>{var WC=_i();function UC(e){var n=WC(e);return n.setHours(0,0,0,0),n}Dw.exports=UC});var zw=xt((_E,Fw)=>{var Iw=Aw(),Rw=6e4,BC=864e5;function jC(e,n){var i=Iw(e),u=Iw(n),s=i.getTime()-i.getTimezoneOffset()*Rw,h=u.getTime()-u.getTimezoneOffset()*Rw;return Math.round((s-h)/BC)}Fw.exports=jC});var Ww=xt((kE,Hw)=>{var YC=_i(),qC=Ow(),GC=zw();function VC(e){var n=YC(e),i=GC(n,qC(n)),u=i+1;return u}Hw.exports=VC});var Bw=xt((TE,Uw)=>{var $C=_i();function XC(e,n){var i=n&&Number(n.weekStartsOn)||0,u=$C(e),s=u.getDay(),h=(s{var KC=Bw();function QC(e){return KC(e,{weekStartsOn:1})}jw.exports=QC});var zp=xt((bE,qw)=>{var ZC=_i(),Yw=Pf();function JC(e){var n=ZC(e),i=n.getFullYear(),u=new Date(0);u.setFullYear(i+1,0,4),u.setHours(0,0,0,0);var s=Yw(u),h=new Date(0);h.setFullYear(i,0,4),h.setHours(0,0,0,0);var d=Yw(h);return n.getTime()>=s.getTime()?i+1:n.getTime()>=d.getTime()?i:i-1}qw.exports=JC});var Vw=xt((CE,Gw)=>{var eM=zp(),tM=Pf();function nM(e){var n=eM(e),i=new Date(0);i.setFullYear(n,0,4),i.setHours(0,0,0,0);var u=tM(i);return u}Gw.exports=nM});var Xw=xt((ME,$w)=>{var rM=_i(),iM=Pf(),oM=Vw(),aM=6048e5;function uM(e){var n=rM(e),i=iM(n).getTime()-oM(n).getTime();return Math.round(i/aM)+1}$w.exports=uM});var Qw=xt((EE,Kw)=>{var lM=Ap();function sM(e){if(lM(e))return!isNaN(e);throw new TypeError(toString.call(e)+" is not an instance of Date")}Kw.exports=sM});var Jw=xt((NE,Zw)=>{function fM(){var e={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}};function n(i,u,s){s=s||{};var h;return typeof e[i]=="string"?h=e[i]:u===1?h=e[i].one:h=e[i].other.replace("{{count}}",u),s.addSuffix?s.comparison>0?"in "+h:h+" ago":h}return{localize:n}}Zw.exports=fM});var tx=xt((PE,ex)=>{var cM=["M","MM","Q","D","DD","DDD","DDDD","d","E","W","WW","YY","YYYY","GG","GGGG","H","HH","h","hh","m","mm","s","ss","S","SS","SSS","Z","ZZ","X","x"];function hM(e){var n=[];for(var i in e)e.hasOwnProperty(i)&&n.push(i);var u=cM.concat(n).sort().reverse(),s=new RegExp("(\\[[^\\[]*\\])|(\\\\)?("+u.join("|")+"|.)","g");return s}ex.exports=hM});var rx=xt((LE,nx)=>{var dM=tx();function pM(){var e=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],n=["January","February","March","April","May","June","July","August","September","October","November","December"],i=["Su","Mo","Tu","We","Th","Fr","Sa"],u=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],s=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],h=["AM","PM"],d=["am","pm"],v=["a.m.","p.m."],x={MMM:function(M){return e[M.getMonth()]},MMMM:function(M){return n[M.getMonth()]},dd:function(M){return i[M.getDay()]},ddd:function(M){return u[M.getDay()]},dddd:function(M){return s[M.getDay()]},A:function(M){return M.getHours()/12>=1?h[1]:h[0]},a:function(M){return M.getHours()/12>=1?d[1]:d[0]},aa:function(M){return M.getHours()/12>=1?v[1]:v[0]}},T=["M","D","DDD","d","Q","W"];return T.forEach(function(M){x[M+"o"]=function(O,te){return vM(te[M](O))}}),{formatters:x,formattingTokensRegExp:dM(x)}}function vM(e){var n=e%100;if(n>20||n<10)switch(n%10){case 1:return e+"st";case 2:return e+"nd";case 3:return e+"rd"}return e+"th"}nx.exports=pM});var ox=xt((OE,ix)=>{var gM=Jw(),mM=rx();ix.exports={distanceInWords:gM(),format:mM()}});var hx=xt((DE,cx)=>{var ax=Ww(),ux=Xw(),lx=zp(),yM=_i(),wM=Qw(),sx=ox();function xM(e,n,i){var u=n?String(n):"YYYY-MM-DDTHH:mm:ss.SSSZ",s=i||{},h=s.locale,d=sx.format.formatters,v=sx.format.formattingTokensRegExp;h&&h.format&&h.format.formatters&&(d=h.format.formatters,h.format.formattingTokensRegExp&&(v=h.format.formattingTokensRegExp));var x=yM(e);if(!wM(x))return"Invalid Date";var T=_M(u,d,v);return T(x)}var Hp={M:function(e){return e.getMonth()+1},MM:function(e){return Or(e.getMonth()+1,2)},Q:function(e){return Math.ceil((e.getMonth()+1)/3)},D:function(e){return e.getDate()},DD:function(e){return Or(e.getDate(),2)},DDD:function(e){return ax(e)},DDDD:function(e){return Or(ax(e),3)},d:function(e){return e.getDay()},E:function(e){return e.getDay()||7},W:function(e){return ux(e)},WW:function(e){return Or(ux(e),2)},YY:function(e){return Or(e.getFullYear(),4).substr(2)},YYYY:function(e){return Or(e.getFullYear(),4)},GG:function(e){return String(lx(e)).substr(2)},GGGG:function(e){return lx(e)},H:function(e){return e.getHours()},HH:function(e){return Or(e.getHours(),2)},h:function(e){var n=e.getHours();return n===0?12:n>12?n%12:n},hh:function(e){return Or(Hp.h(e),2)},m:function(e){return e.getMinutes()},mm:function(e){return Or(e.getMinutes(),2)},s:function(e){return e.getSeconds()},ss:function(e){return Or(e.getSeconds(),2)},S:function(e){return Math.floor(e.getMilliseconds()/100)},SS:function(e){return Or(Math.floor(e.getMilliseconds()/10),2)},SSS:function(e){return Or(e.getMilliseconds(),3)},Z:function(e){return fx(e.getTimezoneOffset(),":")},ZZ:function(e){return fx(e.getTimezoneOffset())},X:function(e){return Math.floor(e.getTime()/1e3)},x:function(e){return e.getTime()}};function _M(e,n,i){var u=e.match(i),s=u.length,h,d;for(h=0;h0?"-":"+",u=Math.abs(e),s=Math.floor(u/60),h=u%60;return i+Or(s,2)+n+Or(h,2)}function Or(e,n){for(var i=Math.abs(e).toString();i.length{var TM=_i();function SM(e){var n=TM(e),i=n.getFullYear(),u=n.getMonth(),s=new Date(0);return s.setFullYear(i,u+1,0),s.setHours(0,0,0,0),s.getDate()}dx.exports=SM});var gx=xt((IE,vx)=>{var bM=_i(),CM=px();function MM(e,n){var i=bM(e),u=Number(n),s=i.getMonth()+u,h=new Date(0);h.setFullYear(i.getFullYear(),s,1),h.setHours(0,0,0,0);var d=CM(h);return i.setMonth(s,Math.min(d,i.getDate())),i}vx.exports=MM});var yx=xt((RE,mx)=>{var EM=gx();function NM(e,n){var i=Number(n);return EM(e,-i)}mx.exports=NM});var ea=xt((Lf,_x)=>{(function(e,n){typeof Lf=="object"&&typeof _x!="undefined"?n(Lf):typeof define=="function"&&define.amd?define(["exports"],n):(e=e||self,n(e.d3=e.d3||{}))})(Lf,function(e){"use strict";var n="http://www.w3.org/1999/xhtml",i={svg:"http://www.w3.org/2000/svg",xhtml:n,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function u(j){var le=j+="",He=le.indexOf(":");return He>=0&&(le=j.slice(0,He))!=="xmlns"&&(j=j.slice(He+1)),i.hasOwnProperty(le)?{space:i[le],local:j}:j}function s(j){return function(){var le=this.ownerDocument,He=this.namespaceURI;return He===n&&le.documentElement.namespaceURI===n?le.createElement(j):le.createElementNS(He,j)}}function h(j){return function(){return this.ownerDocument.createElementNS(j.space,j.local)}}function d(j){var le=u(j);return(le.local?h:s)(le)}function v(){}function x(j){return j==null?v:function(){return this.querySelector(j)}}function T(j){typeof j!="function"&&(j=x(j));for(var le=this._groups,He=le.length,Qe=new Array(He),b=0;b=z&&(z=w+1);!(ae=Kr[z])&&++z=0;)(K=Qe[b])&&(H&&K.compareDocumentPosition(H)^4&&H.parentNode.insertBefore(K,H),H=K);return this}function S(j){j||(j=X);function le(qt,an){return qt&&an?j(qt.__data__,an.__data__):!qt-!an}for(var He=this._groups,Qe=He.length,b=new Array(Qe),H=0;Hle?1:j>=le?0:NaN}function m(){var j=arguments[0];return arguments[0]=this,j.apply(null,arguments),this}function A(){var j=new Array(this.size()),le=-1;return this.each(function(){j[++le]=this}),j}function W(){for(var j=this._groups,le=0,He=j.length;le1?this.each((le==null?Xe:typeof le=="function"?me:re)(j,le,He??"")):Q(this.node(),j)}function Q(j,le){return j.style.getPropertyValue(le)||Ae(j).getComputedStyle(j,null).getPropertyValue(le)}function ee(j){return function(){delete this[j]}}function ke(j,le){return function(){this[j]=le}}function De(j,le){return function(){var He=le.apply(this,arguments);He==null?delete this[j]:this[j]=He}}function it(j,le){return arguments.length>1?this.each((le==null?ee:typeof le=="function"?De:ke)(j,le)):this.node()[j]}function Je(j){return j.trim().split(/^|\s+/)}function Yt(j){return j.classList||new Xt(j)}function Xt(j){this._node=j,this._names=Je(j.getAttribute("class")||"")}Xt.prototype={add:function(j){var le=this._names.indexOf(j);le<0&&(this._names.push(j),this._node.setAttribute("class",this._names.join(" ")))},remove:function(j){var le=this._names.indexOf(j);le>=0&&(this._names.splice(le,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(j){return this._names.indexOf(j)>=0}};function Dt(j,le){for(var He=Yt(j),Qe=-1,b=le.length;++Qe=0&&(He=le.slice(Qe+1),le=le.slice(0,Qe)),{type:le,name:He}})}function L(j){return function(){var le=this.__on;if(!!le){for(var He=0,Qe=-1,b=le.length,H;He{(function(e,n){typeof Of=="object"&&typeof kx!="undefined"?n(Of):typeof define=="function"&&define.amd?define(["exports"],n):n(e.d3=e.d3||{})})(Of,function(e){"use strict";var n="$";function i(){}i.prototype=u.prototype={constructor:i,has:function(ie){return n+ie in this},get:function(ie){return this[n+ie]},set:function(ie,I){return this[n+ie]=I,this},remove:function(ie){var I=n+ie;return I in this&&delete this[I]},clear:function(){for(var ie in this)ie[0]===n&&delete this[ie]},keys:function(){var ie=[];for(var I in this)I[0]===n&&ie.push(I.slice(1));return ie},values:function(){var ie=[];for(var I in this)I[0]===n&&ie.push(this[I]);return ie},entries:function(){var ie=[];for(var I in this)I[0]===n&&ie.push({key:I.slice(1),value:this[I]});return ie},size:function(){var ie=0;for(var I in this)I[0]===n&&++ie;return ie},empty:function(){for(var ie in this)if(ie[0]===n)return!1;return!0},each:function(ie){for(var I in this)I[0]===n&&ie(this[I],I.slice(1),this)}};function u(ie,I){var D=new i;if(ie instanceof i)ie.each(function(de,c){D.set(c,de)});else if(Array.isArray(ie)){var q=-1,oe=ie.length,ge;if(I==null)for(;++q=ie.length)return D!=null&&de.sort(D),q!=null?q(de):de;for(var E=-1,S=de.length,X=ie[c++],m,A,W=u(),he,Oe=g();++Eie.length)return de;var g,k=I[c-1];return q!=null&&c>=ie.length?g=de.entries():(g=[],de.each(function(E,S){g.push({key:S,values:Ue(E,c)})})),k!=null?g.sort(function(E,S){return k(E.key,S.key)}):g}return oe={object:function(de){return ge(de,0,h,d)},map:function(de){return ge(de,0,v,x)},entries:function(de){return Ue(ge(de,0,v,x),0)},key:function(de){return ie.push(de),oe},sortKeys:function(de){return I[ie.length-1]=de,oe},sortValues:function(de){return D=de,oe},rollup:function(de){return q=de,oe}}}function h(){return{}}function d(ie,I,D){ie[I]=D}function v(){return u()}function x(ie,I,D){ie.set(I,D)}function T(){}var M=u.prototype;T.prototype=O.prototype={constructor:T,has:M.has,add:function(ie){return ie+="",this[n+ie]=ie,this},remove:M.remove,clear:M.clear,values:M.keys,size:M.size,empty:M.empty,each:M.each};function O(ie,I){var D=new T;if(ie instanceof T)ie.each(function(ge){D.add(ge)});else if(ie){var q=-1,oe=ie.length;if(I==null)for(;++q{(function(e,n){typeof Df=="object"&&typeof Tx!="undefined"?n(Df):typeof define=="function"&&define.amd?define(["exports"],n):n(e.d3=e.d3||{})})(Df,function(e){"use strict";function n(re,me){return reme?1:re>=me?0:NaN}function i(re){return re.length===1&&(re=u(re)),{left:function(me,Pe,Q,ee){for(Q==null&&(Q=0),ee==null&&(ee=me.length);Q>>1;re(me[ke],Pe)<0?Q=ke+1:ee=ke}return Q},right:function(me,Pe,Q,ee){for(Q==null&&(Q=0),ee==null&&(ee=me.length);Q>>1;re(me[ke],Pe)>0?ee=ke:Q=ke+1}return Q}}}function u(re){return function(me,Pe){return n(re(me),Pe)}}var s=i(n),h=s.right,d=s.left;function v(re,me){me==null&&(me=x);for(var Pe=0,Q=re.length-1,ee=re[0],ke=new Array(Q<0?0:Q);Pere?1:me>=re?0:NaN}function O(re){return re===null?NaN:+re}function te(re,me){var Pe=re.length,Q=0,ee=-1,ke=0,De,it,Je=0;if(me==null)for(;++ee1)return Je/(Q-1)}function ve(re,me){var Pe=te(re,me);return Pe&&Math.sqrt(Pe)}function Ee(re,me){var Pe=re.length,Q=-1,ee,ke,De;if(me==null){for(;++Q=ee)for(ke=De=ee;++Qee&&(ke=ee),De=ee)for(ke=De=ee;++Qee&&(ke=ee),De0)return[re];if((Q=me0)for(re=Math.ceil(re/it),me=Math.floor(me/it),De=new Array(ke=Math.ceil(me-re+1));++ee=0?(ke>=Ue?10:ke>=de?5:ke>=c?2:1)*Math.pow(10,ee):-Math.pow(10,-ee)/(ke>=Ue?10:ke>=de?5:ke>=c?2:1)}function E(re,me,Pe){var Q=Math.abs(me-re)/Math.max(0,Pe),ee=Math.pow(10,Math.floor(Math.log(Q)/Math.LN10)),ke=Q/ee;return ke>=Ue?ee*=10:ke>=de?ee*=5:ke>=c&&(ee*=2),meDt;)Nt.pop(),--Gt;var Rt=new Array(Gt+1),Kt;for(ke=0;ke<=Gt;++ke)Kt=Rt[ke]=[],Kt.x0=ke>0?Nt[ke-1]:Xt,Kt.x1=ke=1)return+Pe(re[Q-1],Q-1,re);var Q,ee=(Q-1)*me,ke=Math.floor(ee),De=+Pe(re[ke],ke,re),it=+Pe(re[ke+1],ke+1,re);return De+(it-De)*(ee-ke)}}function A(re,me,Pe){return re=D.call(re,O).sort(n),Math.ceil((Pe-me)/(2*(m(re,.75)-m(re,.25))*Math.pow(re.length,-1/3)))}function W(re,me,Pe){return Math.ceil((Pe-me)/(3.5*ve(re)*Math.pow(re.length,-1/3)))}function he(re,me){var Pe=re.length,Q=-1,ee,ke;if(me==null){for(;++Q=ee)for(ke=ee;++Qke&&(ke=ee)}else for(;++Q=ee)for(ke=ee;++Qke&&(ke=ee);return ke}function Oe(re,me){var Pe=re.length,Q=Pe,ee=-1,ke,De=0;if(me==null)for(;++ee=0;)for(De=re[me],Pe=De.length;--Pe>=0;)ke[--ee]=De[Pe];return ke}function We(re,me){var Pe=re.length,Q=-1,ee,ke;if(me==null){for(;++Q=ee)for(ke=ee;++Qee&&(ke=ee)}else for(;++Q=ee)for(ke=ee;++Qee&&(ke=ee);return ke}function se(re,me){for(var Pe=me.length,Q=new Array(Pe);Pe--;)Q[Pe]=re[me[Pe]];return Q}function be(re,me){if(!!(Pe=re.length)){var Pe,Q=0,ee=0,ke,De=re[ee];for(me==null&&(me=n);++Q{(function(e,n){typeof Af=="object"&&typeof bx!="undefined"?n(Af):typeof define=="function"&&define.amd?define(["exports"],n):(e=e||self,n(e.d3=e.d3||{}))})(Af,function(e){"use strict";function n(P,Z,Ne){P.prototype=Z.prototype=Ne,Ne.constructor=P}function i(P,Z){var Ne=Object.create(P.prototype);for(var Te in Z)Ne[Te]=Z[Te];return Ne}function u(){}var s=.7,h=1/s,d="\\s*([+-]?\\d+)\\s*",v="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",x="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",T=/^#([0-9a-f]{3,8})$/,M=new RegExp("^rgb\\("+[d,d,d]+"\\)$"),O=new RegExp("^rgb\\("+[x,x,x]+"\\)$"),te=new RegExp("^rgba\\("+[d,d,d,v]+"\\)$"),ve=new RegExp("^rgba\\("+[x,x,x,v]+"\\)$"),Ee=new RegExp("^hsl\\("+[v,x,x]+"\\)$"),ie=new RegExp("^hsla\\("+[v,x,x,v]+"\\)$"),I={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};n(u,ge,{copy:function(P){return Object.assign(new this.constructor,this,P)},displayable:function(){return this.rgb().displayable()},hex:D,formatHex:D,formatHsl:q,formatRgb:oe,toString:oe});function D(){return this.rgb().formatHex()}function q(){return A(this).formatHsl()}function oe(){return this.rgb().formatRgb()}function ge(P){var Z,Ne;return P=(P+"").trim().toLowerCase(),(Z=T.exec(P))?(Ne=Z[1].length,Z=parseInt(Z[1],16),Ne===6?Ue(Z):Ne===3?new k(Z>>8&15|Z>>4&240,Z>>4&15|Z&240,(Z&15)<<4|Z&15,1):Ne===8?de(Z>>24&255,Z>>16&255,Z>>8&255,(Z&255)/255):Ne===4?de(Z>>12&15|Z>>8&240,Z>>8&15|Z>>4&240,Z>>4&15|Z&240,((Z&15)<<4|Z&15)/255):null):(Z=M.exec(P))?new k(Z[1],Z[2],Z[3],1):(Z=O.exec(P))?new k(Z[1]*255/100,Z[2]*255/100,Z[3]*255/100,1):(Z=te.exec(P))?de(Z[1],Z[2],Z[3],Z[4]):(Z=ve.exec(P))?de(Z[1]*255/100,Z[2]*255/100,Z[3]*255/100,Z[4]):(Z=Ee.exec(P))?m(Z[1],Z[2]/100,Z[3]/100,1):(Z=ie.exec(P))?m(Z[1],Z[2]/100,Z[3]/100,Z[4]):I.hasOwnProperty(P)?Ue(I[P]):P==="transparent"?new k(NaN,NaN,NaN,0):null}function Ue(P){return new k(P>>16&255,P>>8&255,P&255,1)}function de(P,Z,Ne,Te){return Te<=0&&(P=Z=Ne=NaN),new k(P,Z,Ne,Te)}function c(P){return P instanceof u||(P=ge(P)),P?(P=P.rgb(),new k(P.r,P.g,P.b,P.opacity)):new k}function g(P,Z,Ne,Te){return arguments.length===1?c(P):new k(P,Z,Ne,Te??1)}function k(P,Z,Ne,Te){this.r=+P,this.g=+Z,this.b=+Ne,this.opacity=+Te}n(k,g,i(u,{brighter:function(P){return P=P==null?h:Math.pow(h,P),new k(this.r*P,this.g*P,this.b*P,this.opacity)},darker:function(P){return P=P==null?s:Math.pow(s,P),new k(this.r*P,this.g*P,this.b*P,this.opacity)},rgb:function(){return this},displayable:function(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:E,formatHex:E,formatRgb:S,toString:S}));function E(){return"#"+X(this.r)+X(this.g)+X(this.b)}function S(){var P=this.opacity;return P=isNaN(P)?1:Math.max(0,Math.min(1,P)),(P===1?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(P===1?")":", "+P+")")}function X(P){return P=Math.max(0,Math.min(255,Math.round(P)||0)),(P<16?"0":"")+P.toString(16)}function m(P,Z,Ne,Te){return Te<=0?P=Z=Ne=NaN:Ne<=0||Ne>=1?P=Z=NaN:Z<=0&&(P=NaN),new he(P,Z,Ne,Te)}function A(P){if(P instanceof he)return new he(P.h,P.s,P.l,P.opacity);if(P instanceof u||(P=ge(P)),!P)return new he;if(P instanceof he)return P;P=P.rgb();var Z=P.r/255,Ne=P.g/255,Te=P.b/255,ht=Math.min(Z,Ne,Te),nt=Math.max(Z,Ne,Te),at=NaN,vt=nt-ht,Ft=(nt+ht)/2;return vt?(Z===nt?at=(Ne-Te)/vt+(Ne0&&Ft<1?0:at,new he(at,vt,Ft,P.opacity)}function W(P,Z,Ne,Te){return arguments.length===1?A(P):new he(P,Z,Ne,Te??1)}function he(P,Z,Ne,Te){this.h=+P,this.s=+Z,this.l=+Ne,this.opacity=+Te}n(he,W,i(u,{brighter:function(P){return P=P==null?h:Math.pow(h,P),new he(this.h,this.s,this.l*P,this.opacity)},darker:function(P){return P=P==null?s:Math.pow(s,P),new he(this.h,this.s,this.l*P,this.opacity)},rgb:function(){var P=this.h%360+(this.h<0)*360,Z=isNaN(P)||isNaN(this.s)?0:this.s,Ne=this.l,Te=Ne+(Ne<.5?Ne:1-Ne)*Z,ht=2*Ne-Te;return new k(Oe(P>=240?P-240:P+120,ht,Te),Oe(P,ht,Te),Oe(P<120?P+240:P-120,ht,Te),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl:function(){var P=this.opacity;return P=isNaN(P)?1:Math.max(0,Math.min(1,P)),(P===1?"hsl(":"hsla(")+(this.h||0)+", "+(this.s||0)*100+"%, "+(this.l||0)*100+"%"+(P===1?")":", "+P+")")}}));function Oe(P,Z,Ne){return(P<60?Z+(Ne-Z)*P/60:P<180?Ne:P<240?Z+(Ne-Z)*(240-P)/60:Z)*255}var fe=Math.PI/180,ne=180/Math.PI,We=18,se=.96422,be=1,Ce=.82521,_e=4/29,Re=6/29,Ae=3*Re*Re,Xe=Re*Re*Re;function re(P){if(P instanceof Q)return new Q(P.l,P.a,P.b,P.opacity);if(P instanceof Dt)return Nt(P);P instanceof k||(P=c(P));var Z=it(P.r),Ne=it(P.g),Te=it(P.b),ht=ee((.2225045*Z+.7168786*Ne+.0606169*Te)/be),nt,at;return Z===Ne&&Ne===Te?nt=at=ht:(nt=ee((.4360747*Z+.3850649*Ne+.1430804*Te)/se),at=ee((.0139322*Z+.0971045*Ne+.7141733*Te)/Ce)),new Q(116*ht-16,500*(nt-ht),200*(ht-at),P.opacity)}function me(P,Z){return new Q(P,0,0,Z??1)}function Pe(P,Z,Ne,Te){return arguments.length===1?re(P):new Q(P,Z,Ne,Te??1)}function Q(P,Z,Ne,Te){this.l=+P,this.a=+Z,this.b=+Ne,this.opacity=+Te}n(Q,Pe,i(u,{brighter:function(P){return new Q(this.l+We*(P??1),this.a,this.b,this.opacity)},darker:function(P){return new Q(this.l-We*(P??1),this.a,this.b,this.opacity)},rgb:function(){var P=(this.l+16)/116,Z=isNaN(this.a)?P:P+this.a/500,Ne=isNaN(this.b)?P:P-this.b/200;return Z=se*ke(Z),P=be*ke(P),Ne=Ce*ke(Ne),new k(De(3.1338561*Z-1.6168667*P-.4906146*Ne),De(-.9787684*Z+1.9161415*P+.033454*Ne),De(.0719453*Z-.2289914*P+1.4052427*Ne),this.opacity)}}));function ee(P){return P>Xe?Math.pow(P,1/3):P/Ae+_e}function ke(P){return P>Re?P*P*P:Ae*(P-_e)}function De(P){return 255*(P<=.0031308?12.92*P:1.055*Math.pow(P,1/2.4)-.055)}function it(P){return(P/=255)<=.04045?P/12.92:Math.pow((P+.055)/1.055,2.4)}function Je(P){if(P instanceof Dt)return new Dt(P.h,P.c,P.l,P.opacity);if(P instanceof Q||(P=re(P)),P.a===0&&P.b===0)return new Dt(NaN,0{(function(e,n){typeof Rf=="object"&&typeof Cx!="undefined"?n(Rf,If()):typeof define=="function"&&define.amd?define(["exports","d3-color"],n):(e=e||self,n(e.d3=e.d3||{},e.d3))})(Rf,function(e,n){"use strict";function i(R,B,Ie,Ke,Be){var P=R*R,Z=P*R;return((1-3*R+3*P-Z)*B+(4-6*P+3*Z)*Ie+(1+3*R+3*P-3*Z)*Ke+Z*Be)/6}function u(R){var B=R.length-1;return function(Ie){var Ke=Ie<=0?Ie=0:Ie>=1?(Ie=1,B-1):Math.floor(Ie*B),Be=R[Ke],P=R[Ke+1],Z=Ke>0?R[Ke-1]:2*Be-P,Ne=Ke180||Ie<-180?Ie-360*Math.round(Ie/360):Ie):h(isNaN(R)?B:R)}function T(R){return(R=+R)==1?M:function(B,Ie){return Ie-B?v(B,Ie,R):h(isNaN(B)?Ie:B)}}function M(R,B){var Ie=B-R;return Ie?d(R,Ie):h(isNaN(R)?B:R)}var O=function R(B){var Ie=T(B);function Ke(Be,P){var Z=Ie((Be=n.rgb(Be)).r,(P=n.rgb(P)).r),Ne=Ie(Be.g,P.g),Te=Ie(Be.b,P.b),ht=M(Be.opacity,P.opacity);return function(nt){return Be.r=Z(nt),Be.g=Ne(nt),Be.b=Te(nt),Be.opacity=ht(nt),Be+""}}return Ke.gamma=R,Ke}(1);function te(R){return function(B){var Ie=B.length,Ke=new Array(Ie),Be=new Array(Ie),P=new Array(Ie),Z,Ne;for(Z=0;ZIe&&(P=B.slice(Ie,P),Ne[Z]?Ne[Z]+=P:Ne[++Z]=P),(Ke=Ke[0])===(Be=Be[0])?Ne[Z]?Ne[Z]+=Be:Ne[++Z]=Be:(Ne[++Z]=null,Te.push({i:Z,x:ge(Ke,Be)})),Ie=c.lastIndex;return Ie180?nt+=360:nt-ht>180&&(ht+=360),vt.push({i:at.push(Be(at)+"rotate(",null,Ke)-2,x:ge(ht,nt)})):nt&&at.push(Be(at)+"rotate("+nt+Ke)}function Ne(ht,nt,at,vt){ht!==nt?vt.push({i:at.push(Be(at)+"skewX(",null,Ke)-2,x:ge(ht,nt)}):nt&&at.push(Be(at)+"skewX("+nt+Ke)}function Te(ht,nt,at,vt,Ft,Ct){if(ht!==at||nt!==vt){var zt=Ft.push(Be(Ft)+"scale(",null,",",null,")");Ct.push({i:zt-4,x:ge(ht,at)},{i:zt-2,x:ge(nt,vt)})}else(at!==1||vt!==1)&&Ft.push(Be(Ft)+"scale("+at+","+vt+")")}return function(ht,nt){var at=[],vt=[];return ht=R(ht),nt=R(nt),P(ht.translateX,ht.translateY,nt.translateX,nt.translateY,at,vt),Z(ht.rotate,nt.rotate,at,vt),Ne(ht.skewX,nt.skewX,at,vt),Te(ht.scaleX,ht.scaleY,nt.scaleX,nt.scaleY,at,vt),ht=nt=null,function(Ft){for(var Ct=-1,zt=vt.length,Bt;++Ct{(function(e,n){typeof zf=="object"&&typeof Mx!="undefined"?n(zf):typeof define=="function"&&define.amd?define(["exports"],n):(e=typeof globalThis!="undefined"?globalThis:e||self,n(e.d3=e.d3||{}))})(zf,function(e){"use strict";function n(c){return Math.abs(c=Math.round(c))>=1e21?c.toLocaleString("en").replace(/,/g,""):c.toString(10)}function i(c,g){if((k=(c=g?c.toExponential(g-1):c.toExponential()).indexOf("e"))<0)return null;var k,E=c.slice(0,k);return[E.length>1?E[0]+E.slice(2):E,+c.slice(k+1)]}function u(c){return c=i(Math.abs(c)),c?c[1]:NaN}function s(c,g){return function(k,E){for(var S=k.length,X=[],m=0,A=c[0],W=0;S>0&&A>0&&(W+A+1>E&&(A=Math.max(1,E-W)),X.push(k.substring(S-=A,S+A)),!((W+=A+1)>E));)A=c[m=(m+1)%c.length];return X.reverse().join(g)}}function h(c){return function(g){return g.replace(/[0-9]/g,function(k){return c[+k]})}}var d=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function v(c){if(!(g=d.exec(c)))throw new Error("invalid format: "+c);var g;return new x({fill:g[1],align:g[2],sign:g[3],symbol:g[4],zero:g[5],width:g[6],comma:g[7],precision:g[8]&&g[8].slice(1),trim:g[9],type:g[10]})}v.prototype=x.prototype;function x(c){this.fill=c.fill===void 0?" ":c.fill+"",this.align=c.align===void 0?">":c.align+"",this.sign=c.sign===void 0?"-":c.sign+"",this.symbol=c.symbol===void 0?"":c.symbol+"",this.zero=!!c.zero,this.width=c.width===void 0?void 0:+c.width,this.comma=!!c.comma,this.precision=c.precision===void 0?void 0:+c.precision,this.trim=!!c.trim,this.type=c.type===void 0?"":c.type+""}x.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function T(c){e:for(var g=c.length,k=1,E=-1,S;k0&&(E=0);break}return E>0?c.slice(0,E)+c.slice(S+1):c}var M;function O(c,g){var k=i(c,g);if(!k)return c+"";var E=k[0],S=k[1],X=S-(M=Math.max(-8,Math.min(8,Math.floor(S/3)))*3)+1,m=E.length;return X===m?E:X>m?E+new Array(X-m+1).join("0"):X>0?E.slice(0,X)+"."+E.slice(X):"0."+new Array(1-X).join("0")+i(c,Math.max(0,g+X-1))[0]}function te(c,g){var k=i(c,g);if(!k)return c+"";var E=k[0],S=k[1];return S<0?"0."+new Array(-S).join("0")+E:E.length>S+1?E.slice(0,S+1)+"."+E.slice(S+1):E+new Array(S-E.length+2).join("0")}var ve={"%":function(c,g){return(c*100).toFixed(g)},b:function(c){return Math.round(c).toString(2)},c:function(c){return c+""},d:n,e:function(c,g){return c.toExponential(g)},f:function(c,g){return c.toFixed(g)},g:function(c,g){return c.toPrecision(g)},o:function(c){return Math.round(c).toString(8)},p:function(c,g){return te(c*100,g)},r:te,s:O,X:function(c){return Math.round(c).toString(16).toUpperCase()},x:function(c){return Math.round(c).toString(16)}};function Ee(c){return c}var ie=Array.prototype.map,I=["y","z","a","f","p","n","\xB5","m","","k","M","G","T","P","E","Z","Y"];function D(c){var g=c.grouping===void 0||c.thousands===void 0?Ee:s(ie.call(c.grouping,Number),c.thousands+""),k=c.currency===void 0?"":c.currency[0]+"",E=c.currency===void 0?"":c.currency[1]+"",S=c.decimal===void 0?".":c.decimal+"",X=c.numerals===void 0?Ee:h(ie.call(c.numerals,String)),m=c.percent===void 0?"%":c.percent+"",A=c.minus===void 0?"-":c.minus+"",W=c.nan===void 0?"NaN":c.nan+"";function he(fe){fe=v(fe);var ne=fe.fill,We=fe.align,se=fe.sign,be=fe.symbol,Ce=fe.zero,_e=fe.width,Re=fe.comma,Ae=fe.precision,Xe=fe.trim,re=fe.type;re==="n"?(Re=!0,re="g"):ve[re]||(Ae===void 0&&(Ae=12),Xe=!0,re="g"),(Ce||ne==="0"&&We==="=")&&(Ce=!0,ne="0",We="=");var me=be==="$"?k:be==="#"&&/[boxX]/.test(re)?"0"+re.toLowerCase():"",Pe=be==="$"?E:/[%p]/.test(re)?m:"",Q=ve[re],ee=/[defgprs%]/.test(re);Ae=Ae===void 0?6:/[gprs]/.test(re)?Math.max(1,Math.min(21,Ae)):Math.max(0,Math.min(20,Ae));function ke(De){var it=me,Je=Pe,Yt,Xt,Dt;if(re==="c")Je=Q(De)+Je,De="";else{De=+De;var Nt=De<0||1/De<0;if(De=isNaN(De)?W:Q(Math.abs(De),Ae),Xe&&(De=T(De)),Nt&&+De==0&&se!=="+"&&(Nt=!1),it=(Nt?se==="("?se:A:se==="-"||se==="("?"":se)+it,Je=(re==="s"?I[8+M/3]:"")+Je+(Nt&&se==="("?")":""),ee){for(Yt=-1,Xt=De.length;++YtDt||Dt>57){Je=(Dt===46?S+De.slice(Yt+1):De.slice(Yt))+Je,De=De.slice(0,Yt);break}}}Re&&!Ce&&(De=g(De,1/0));var Gt=it.length+De.length+Je.length,Rt=Gt<_e?new Array(_e-Gt+1).join(ne):"";switch(Re&&Ce&&(De=g(Rt+De,Rt.length?_e-Je.length:1/0),Rt=""),We){case"<":De=it+De+Je+Rt;break;case"=":De=it+Rt+De+Je;break;case"^":De=Rt.slice(0,Gt=Rt.length>>1)+it+De+Je+Rt.slice(Gt);break;default:De=Rt+it+De+Je;break}return X(De)}return ke.toString=function(){return fe+""},ke}function Oe(fe,ne){var We=he((fe=v(fe),fe.type="f",fe)),se=Math.max(-8,Math.min(8,Math.floor(u(ne)/3)))*3,be=Math.pow(10,-se),Ce=I[8+se/3];return function(_e){return We(be*_e)+Ce}}return{format:he,formatPrefix:Oe}}var q;oe({decimal:".",thousands:",",grouping:[3],currency:["$",""],minus:"-"});function oe(c){return q=D(c),e.format=q.format,e.formatPrefix=q.formatPrefix,q}function ge(c){return Math.max(0,-u(Math.abs(c)))}function Ue(c,g){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(u(g)/3)))*3-u(Math.abs(c)))}function de(c,g){return c=Math.abs(c),g=Math.abs(g)-c,Math.max(0,u(g)-u(c))+1}e.FormatSpecifier=x,e.formatDefaultLocale=oe,e.formatLocale=D,e.formatSpecifier=v,e.precisionFixed=ge,e.precisionPrefix=Ue,e.precisionRound=de,Object.defineProperty(e,"__esModule",{value:!0})})});var Bp=xt((Hf,Nx)=>{(function(e,n){typeof Hf=="object"&&typeof Nx!="undefined"?n(Hf):typeof define=="function"&&define.amd?define(["exports"],n):(e=e||self,n(e.d3=e.d3||{}))})(Hf,function(e){"use strict";var n=new Date,i=new Date;function u(R,B,Ie,Ke){function Be(P){return R(P=arguments.length===0?new Date:new Date(+P)),P}return Be.floor=function(P){return R(P=new Date(+P)),P},Be.ceil=function(P){return R(P=new Date(P-1)),B(P,1),R(P),P},Be.round=function(P){var Z=Be(P),Ne=Be.ceil(P);return P-Z0))return Te;do Te.push(ht=new Date(+P)),B(P,Ne),R(P);while(ht=Z)for(;R(Z),!P(Z);)Z.setTime(Z-1)},function(Z,Ne){if(Z>=Z)if(Ne<0)for(;++Ne<=0;)for(;B(Z,-1),!P(Z););else for(;--Ne>=0;)for(;B(Z,1),!P(Z););})},Ie&&(Be.count=function(P,Z){return n.setTime(+P),i.setTime(+Z),R(n),R(i),Math.floor(Ie(n,i))},Be.every=function(P){return P=Math.floor(P),!isFinite(P)||!(P>0)?null:P>1?Be.filter(Ke?function(Z){return Ke(Z)%P==0}:function(Z){return Be.count(0,Z)%P==0}):Be}),Be}var s=u(function(){},function(R,B){R.setTime(+R+B)},function(R,B){return B-R});s.every=function(R){return R=Math.floor(R),!isFinite(R)||!(R>0)?null:R>1?u(function(B){B.setTime(Math.floor(B/R)*R)},function(B,Ie){B.setTime(+B+Ie*R)},function(B,Ie){return(Ie-B)/R}):s};var h=s.range,d=1e3,v=6e4,x=36e5,T=864e5,M=6048e5,O=u(function(R){R.setTime(R-R.getMilliseconds())},function(R,B){R.setTime(+R+B*d)},function(R,B){return(B-R)/d},function(R){return R.getUTCSeconds()}),te=O.range,ve=u(function(R){R.setTime(R-R.getMilliseconds()-R.getSeconds()*d)},function(R,B){R.setTime(+R+B*v)},function(R,B){return(B-R)/v},function(R){return R.getMinutes()}),Ee=ve.range,ie=u(function(R){R.setTime(R-R.getMilliseconds()-R.getSeconds()*d-R.getMinutes()*v)},function(R,B){R.setTime(+R+B*x)},function(R,B){return(B-R)/x},function(R){return R.getHours()}),I=ie.range,D=u(function(R){R.setHours(0,0,0,0)},function(R,B){R.setDate(R.getDate()+B)},function(R,B){return(B-R-(B.getTimezoneOffset()-R.getTimezoneOffset())*v)/T},function(R){return R.getDate()-1}),q=D.range;function oe(R){return u(function(B){B.setDate(B.getDate()-(B.getDay()+7-R)%7),B.setHours(0,0,0,0)},function(B,Ie){B.setDate(B.getDate()+Ie*7)},function(B,Ie){return(Ie-B-(Ie.getTimezoneOffset()-B.getTimezoneOffset())*v)/M})}var ge=oe(0),Ue=oe(1),de=oe(2),c=oe(3),g=oe(4),k=oe(5),E=oe(6),S=ge.range,X=Ue.range,m=de.range,A=c.range,W=g.range,he=k.range,Oe=E.range,fe=u(function(R){R.setDate(1),R.setHours(0,0,0,0)},function(R,B){R.setMonth(R.getMonth()+B)},function(R,B){return B.getMonth()-R.getMonth()+(B.getFullYear()-R.getFullYear())*12},function(R){return R.getMonth()}),ne=fe.range,We=u(function(R){R.setMonth(0,1),R.setHours(0,0,0,0)},function(R,B){R.setFullYear(R.getFullYear()+B)},function(R,B){return B.getFullYear()-R.getFullYear()},function(R){return R.getFullYear()});We.every=function(R){return!isFinite(R=Math.floor(R))||!(R>0)?null:u(function(B){B.setFullYear(Math.floor(B.getFullYear()/R)*R),B.setMonth(0,1),B.setHours(0,0,0,0)},function(B,Ie){B.setFullYear(B.getFullYear()+Ie*R)})};var se=We.range,be=u(function(R){R.setUTCSeconds(0,0)},function(R,B){R.setTime(+R+B*v)},function(R,B){return(B-R)/v},function(R){return R.getUTCMinutes()}),Ce=be.range,_e=u(function(R){R.setUTCMinutes(0,0,0)},function(R,B){R.setTime(+R+B*x)},function(R,B){return(B-R)/x},function(R){return R.getUTCHours()}),Re=_e.range,Ae=u(function(R){R.setUTCHours(0,0,0,0)},function(R,B){R.setUTCDate(R.getUTCDate()+B)},function(R,B){return(B-R)/T},function(R){return R.getUTCDate()-1}),Xe=Ae.range;function re(R){return u(function(B){B.setUTCDate(B.getUTCDate()-(B.getUTCDay()+7-R)%7),B.setUTCHours(0,0,0,0)},function(B,Ie){B.setUTCDate(B.getUTCDate()+Ie*7)},function(B,Ie){return(Ie-B)/M})}var me=re(0),Pe=re(1),Q=re(2),ee=re(3),ke=re(4),De=re(5),it=re(6),Je=me.range,Yt=Pe.range,Xt=Q.range,Dt=ee.range,Nt=ke.range,Gt=De.range,Rt=it.range,Kt=u(function(R){R.setUTCDate(1),R.setUTCHours(0,0,0,0)},function(R,B){R.setUTCMonth(R.getUTCMonth()+B)},function(R,B){return B.getUTCMonth()-R.getUTCMonth()+(B.getUTCFullYear()-R.getUTCFullYear())*12},function(R){return R.getUTCMonth()}),dn=Kt.range,tn=u(function(R){R.setUTCMonth(0,1),R.setUTCHours(0,0,0,0)},function(R,B){R.setUTCFullYear(R.getUTCFullYear()+B)},function(R,B){return B.getUTCFullYear()-R.getUTCFullYear()},function(R){return R.getUTCFullYear()});tn.every=function(R){return!isFinite(R=Math.floor(R))||!(R>0)?null:u(function(B){B.setUTCFullYear(Math.floor(B.getUTCFullYear()/R)*R),B.setUTCMonth(0,1),B.setUTCHours(0,0,0,0)},function(B,Ie){B.setUTCFullYear(B.getUTCFullYear()+Ie*R)})};var pn=tn.range;e.timeDay=D,e.timeDays=q,e.timeFriday=k,e.timeFridays=he,e.timeHour=ie,e.timeHours=I,e.timeInterval=u,e.timeMillisecond=s,e.timeMilliseconds=h,e.timeMinute=ve,e.timeMinutes=Ee,e.timeMonday=Ue,e.timeMondays=X,e.timeMonth=fe,e.timeMonths=ne,e.timeSaturday=E,e.timeSaturdays=Oe,e.timeSecond=O,e.timeSeconds=te,e.timeSunday=ge,e.timeSundays=S,e.timeThursday=g,e.timeThursdays=W,e.timeTuesday=de,e.timeTuesdays=m,e.timeWednesday=c,e.timeWednesdays=A,e.timeWeek=ge,e.timeWeeks=S,e.timeYear=We,e.timeYears=se,e.utcDay=Ae,e.utcDays=Xe,e.utcFriday=De,e.utcFridays=Gt,e.utcHour=_e,e.utcHours=Re,e.utcMillisecond=s,e.utcMilliseconds=h,e.utcMinute=be,e.utcMinutes=Ce,e.utcMonday=Pe,e.utcMondays=Yt,e.utcMonth=Kt,e.utcMonths=dn,e.utcSaturday=it,e.utcSaturdays=Rt,e.utcSecond=O,e.utcSeconds=te,e.utcSunday=me,e.utcSundays=Je,e.utcThursday=ke,e.utcThursdays=Nt,e.utcTuesday=Q,e.utcTuesdays=Xt,e.utcWednesday=ee,e.utcWednesdays=Dt,e.utcWeek=me,e.utcWeeks=Je,e.utcYear=tn,e.utcYears=pn,Object.defineProperty(e,"__esModule",{value:!0})})});var Lx=xt((Wf,Px)=>{(function(e,n){typeof Wf=="object"&&typeof Px!="undefined"?n(Wf,Bp()):typeof define=="function"&&define.amd?define(["exports","d3-time"],n):(e=e||self,n(e.d3=e.d3||{},e.d3))})(Wf,function(e,n){"use strict";function i(F){if(0<=F.y&&F.y<100){var V=new Date(-1,F.m,F.d,F.H,F.M,F.S,F.L);return V.setFullYear(F.y),V}return new Date(F.y,F.m,F.d,F.H,F.M,F.S,F.L)}function u(F){if(0<=F.y&&F.y<100){var V=new Date(Date.UTC(-1,F.m,F.d,F.H,F.M,F.S,F.L));return V.setUTCFullYear(F.y),V}return new Date(Date.UTC(F.y,F.m,F.d,F.H,F.M,F.S,F.L))}function s(F,V,N){return{y:F,m:V,d:N,H:0,M:0,S:0,L:0}}function h(F){var V=F.dateTime,N=F.date,L=F.time,Y=F.periods,ce=F.days,xe=F.shortDays,Fe=F.months,ze=F.shortMonths,Ge=te(Y),$e=ve(Y),et=te(ce),dt=ve(ce),It=te(xe),Pt=ve(xe),St=te(Fe),sn=ve(Fe),Tn=te(ze),Pn=ve(ze),gn={a:Ze,A:ct,b:yt,B:qt,c:null,d:fe,e:fe,f:Ce,g:De,G:Je,H:ne,I:We,j:se,L:be,m:_e,M:Re,p:an,q:gt,Q:vt,s:Ft,S:Ae,u:Xe,U:re,V:Pe,w:Q,W:ee,x:null,X:null,y:ke,Y:it,Z:Yt,"%":at},hn={a:Xr,A:ki,b:Kr,B:tr,c:null,d:Xt,e:Xt,f:Kt,g:Ne,G:ht,H:Dt,I:Nt,j:Gt,L:Rt,m:dn,M:tn,p:w,q:z,Q:vt,s:Ft,S:pn,u:R,U:B,V:Ke,w:Be,W:P,x:null,X:null,y:Z,Y:Te,Z:nt,"%":at},Mt={a:le,A:He,b:Qe,B:b,c:H,d:g,e:g,f:A,g:ge,G:oe,H:E,I:E,j:k,L:m,m:c,M:S,p:j,q:de,Q:he,s:Oe,S:X,u:ie,U:I,V:D,w:Ee,W:q,x:K,X:pe,y:ge,Y:oe,Z:Ue,"%":W};gn.x=Lt(N,gn),gn.X=Lt(L,gn),gn.c=Lt(V,gn),hn.x=Lt(N,hn),hn.X=Lt(L,hn),hn.c=Lt(V,hn);function Lt(U,ae){return function(Me){var ue=[],Ye=-1,ye=0,qe=U.length,ot,ut,wt;for(Me instanceof Date||(Me=new Date(+Me));++Ye53)return null;"w"in ue||(ue.w=1),"Z"in ue?(ye=u(s(ue.y,0,1)),qe=ye.getUTCDay(),ye=qe>4||qe===0?n.utcMonday.ceil(ye):n.utcMonday(ye),ye=n.utcDay.offset(ye,(ue.V-1)*7),ue.y=ye.getUTCFullYear(),ue.m=ye.getUTCMonth(),ue.d=ye.getUTCDate()+(ue.w+6)%7):(ye=i(s(ue.y,0,1)),qe=ye.getDay(),ye=qe>4||qe===0?n.timeMonday.ceil(ye):n.timeMonday(ye),ye=n.timeDay.offset(ye,(ue.V-1)*7),ue.y=ye.getFullYear(),ue.m=ye.getMonth(),ue.d=ye.getDate()+(ue.w+6)%7)}else("W"in ue||"U"in ue)&&("w"in ue||(ue.w="u"in ue?ue.u%7:"W"in ue?1:0),qe="Z"in ue?u(s(ue.y,0,1)).getUTCDay():i(s(ue.y,0,1)).getDay(),ue.m=0,ue.d="W"in ue?(ue.w+6)%7+ue.W*7-(qe+5)%7:ue.w+ue.U*7-(qe+6)%7);return"Z"in ue?(ue.H+=ue.Z/100|0,ue.M+=ue.Z%100,u(ue)):i(ue)}}function Qt(U,ae,Me,ue){for(var Ye=0,ye=ae.length,qe=Me.length,ot,ut;Ye=qe)return-1;if(ot=ae.charCodeAt(Ye++),ot===37){if(ot=ae.charAt(Ye++),ut=Mt[ot in d?ae.charAt(Ye++):ot],!ut||(ue=ut(U,Me,ue))<0)return-1}else if(ot!=Me.charCodeAt(ue++))return-1}return ue}function j(U,ae,Me){var ue=Ge.exec(ae.slice(Me));return ue?(U.p=$e[ue[0].toLowerCase()],Me+ue[0].length):-1}function le(U,ae,Me){var ue=It.exec(ae.slice(Me));return ue?(U.w=Pt[ue[0].toLowerCase()],Me+ue[0].length):-1}function He(U,ae,Me){var ue=et.exec(ae.slice(Me));return ue?(U.w=dt[ue[0].toLowerCase()],Me+ue[0].length):-1}function Qe(U,ae,Me){var ue=Tn.exec(ae.slice(Me));return ue?(U.m=Pn[ue[0].toLowerCase()],Me+ue[0].length):-1}function b(U,ae,Me){var ue=St.exec(ae.slice(Me));return ue?(U.m=sn[ue[0].toLowerCase()],Me+ue[0].length):-1}function H(U,ae,Me){return Qt(U,V,ae,Me)}function K(U,ae,Me){return Qt(U,N,ae,Me)}function pe(U,ae,Me){return Qt(U,L,ae,Me)}function Ze(U){return xe[U.getDay()]}function ct(U){return ce[U.getDay()]}function yt(U){return ze[U.getMonth()]}function qt(U){return Fe[U.getMonth()]}function an(U){return Y[+(U.getHours()>=12)]}function gt(U){return 1+~~(U.getMonth()/3)}function Xr(U){return xe[U.getUTCDay()]}function ki(U){return ce[U.getUTCDay()]}function Kr(U){return ze[U.getUTCMonth()]}function tr(U){return Fe[U.getUTCMonth()]}function w(U){return Y[+(U.getUTCHours()>=12)]}function z(U){return 1+~~(U.getUTCMonth()/3)}return{format:function(U){var ae=Lt(U+="",gn);return ae.toString=function(){return U},ae},parse:function(U){var ae=ft(U+="",!1);return ae.toString=function(){return U},ae},utcFormat:function(U){var ae=Lt(U+="",hn);return ae.toString=function(){return U},ae},utcParse:function(U){var ae=ft(U+="",!0);return ae.toString=function(){return U},ae}}}var d={"-":"",_:" ","0":"0"},v=/^\s*\d+/,x=/^%/,T=/[\\^$*+?|[\]().{}]/g;function M(F,V,N){var L=F<0?"-":"",Y=(L?-F:F)+"",ce=Y.length;return L+(ce68?1900:2e3),N+L[0].length):-1}function Ue(F,V,N){var L=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(V.slice(N,N+6));return L?(F.Z=L[1]?0:-(L[2]+(L[3]||"00")),N+L[0].length):-1}function de(F,V,N){var L=v.exec(V.slice(N,N+1));return L?(F.q=L[0]*3-3,N+L[0].length):-1}function c(F,V,N){var L=v.exec(V.slice(N,N+2));return L?(F.m=L[0]-1,N+L[0].length):-1}function g(F,V,N){var L=v.exec(V.slice(N,N+2));return L?(F.d=+L[0],N+L[0].length):-1}function k(F,V,N){var L=v.exec(V.slice(N,N+3));return L?(F.m=0,F.d=+L[0],N+L[0].length):-1}function E(F,V,N){var L=v.exec(V.slice(N,N+2));return L?(F.H=+L[0],N+L[0].length):-1}function S(F,V,N){var L=v.exec(V.slice(N,N+2));return L?(F.M=+L[0],N+L[0].length):-1}function X(F,V,N){var L=v.exec(V.slice(N,N+2));return L?(F.S=+L[0],N+L[0].length):-1}function m(F,V,N){var L=v.exec(V.slice(N,N+3));return L?(F.L=+L[0],N+L[0].length):-1}function A(F,V,N){var L=v.exec(V.slice(N,N+6));return L?(F.L=Math.floor(L[0]/1e3),N+L[0].length):-1}function W(F,V,N){var L=x.exec(V.slice(N,N+1));return L?N+L[0].length:-1}function he(F,V,N){var L=v.exec(V.slice(N));return L?(F.Q=+L[0],N+L[0].length):-1}function Oe(F,V,N){var L=v.exec(V.slice(N));return L?(F.s=+L[0],N+L[0].length):-1}function fe(F,V){return M(F.getDate(),V,2)}function ne(F,V){return M(F.getHours(),V,2)}function We(F,V){return M(F.getHours()%12||12,V,2)}function se(F,V){return M(1+n.timeDay.count(n.timeYear(F),F),V,3)}function be(F,V){return M(F.getMilliseconds(),V,3)}function Ce(F,V){return be(F,V)+"000"}function _e(F,V){return M(F.getMonth()+1,V,2)}function Re(F,V){return M(F.getMinutes(),V,2)}function Ae(F,V){return M(F.getSeconds(),V,2)}function Xe(F){var V=F.getDay();return V===0?7:V}function re(F,V){return M(n.timeSunday.count(n.timeYear(F)-1,F),V,2)}function me(F){var V=F.getDay();return V>=4||V===0?n.timeThursday(F):n.timeThursday.ceil(F)}function Pe(F,V){return F=me(F),M(n.timeThursday.count(n.timeYear(F),F)+(n.timeYear(F).getDay()===4),V,2)}function Q(F){return F.getDay()}function ee(F,V){return M(n.timeMonday.count(n.timeYear(F)-1,F),V,2)}function ke(F,V){return M(F.getFullYear()%100,V,2)}function De(F,V){return F=me(F),M(F.getFullYear()%100,V,2)}function it(F,V){return M(F.getFullYear()%1e4,V,4)}function Je(F,V){var N=F.getDay();return F=N>=4||N===0?n.timeThursday(F):n.timeThursday.ceil(F),M(F.getFullYear()%1e4,V,4)}function Yt(F){var V=F.getTimezoneOffset();return(V>0?"-":(V*=-1,"+"))+M(V/60|0,"0",2)+M(V%60,"0",2)}function Xt(F,V){return M(F.getUTCDate(),V,2)}function Dt(F,V){return M(F.getUTCHours(),V,2)}function Nt(F,V){return M(F.getUTCHours()%12||12,V,2)}function Gt(F,V){return M(1+n.utcDay.count(n.utcYear(F),F),V,3)}function Rt(F,V){return M(F.getUTCMilliseconds(),V,3)}function Kt(F,V){return Rt(F,V)+"000"}function dn(F,V){return M(F.getUTCMonth()+1,V,2)}function tn(F,V){return M(F.getUTCMinutes(),V,2)}function pn(F,V){return M(F.getUTCSeconds(),V,2)}function R(F){var V=F.getUTCDay();return V===0?7:V}function B(F,V){return M(n.utcSunday.count(n.utcYear(F)-1,F),V,2)}function Ie(F){var V=F.getUTCDay();return V>=4||V===0?n.utcThursday(F):n.utcThursday.ceil(F)}function Ke(F,V){return F=Ie(F),M(n.utcThursday.count(n.utcYear(F),F)+(n.utcYear(F).getUTCDay()===4),V,2)}function Be(F){return F.getUTCDay()}function P(F,V){return M(n.utcMonday.count(n.utcYear(F)-1,F),V,2)}function Z(F,V){return M(F.getUTCFullYear()%100,V,2)}function Ne(F,V){return F=Ie(F),M(F.getUTCFullYear()%100,V,2)}function Te(F,V){return M(F.getUTCFullYear()%1e4,V,4)}function ht(F,V){var N=F.getUTCDay();return F=N>=4||N===0?n.utcThursday(F):n.utcThursday.ceil(F),M(F.getUTCFullYear()%1e4,V,4)}function nt(){return"+0000"}function at(){return"%"}function vt(F){return+F}function Ft(F){return Math.floor(+F/1e3)}var Ct;zt({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function zt(F){return Ct=h(F),e.timeFormat=Ct.format,e.timeParse=Ct.parse,e.utcFormat=Ct.utcFormat,e.utcParse=Ct.utcParse,Ct}var Bt="%Y-%m-%dT%H:%M:%S.%LZ";function on(F){return F.toISOString()}var vn=Date.prototype.toISOString?on:e.utcFormat(Bt);function G(F){var V=new Date(F);return isNaN(V)?null:V}var Le=+new Date("2000-01-01T00:00:00.000Z")?G:e.utcParse(Bt);e.isoFormat=vn,e.isoParse=Le,e.timeFormatDefaultLocale=zt,e.timeFormatLocale=h,Object.defineProperty(e,"__esModule",{value:!0})})});var jp=xt((Uf,Ox)=>{(function(e,n){typeof Uf=="object"&&typeof Ox!="undefined"?n(Uf,Up(),Sx(),Ff(),Ex(),Bp(),Lx()):typeof define=="function"&&define.amd?define(["exports","d3-collection","d3-array","d3-interpolate","d3-format","d3-time","d3-time-format"],n):n(e.d3=e.d3||{},e.d3,e.d3,e.d3,e.d3,e.d3,e.d3)})(Uf,function(e,n,i,u,s,h,d){"use strict";function v(G,Le){switch(arguments.length){case 0:break;case 1:this.range(G);break;default:this.range(Le).domain(G);break}return this}function x(G,Le){switch(arguments.length){case 0:break;case 1:this.interpolator(G);break;default:this.interpolator(Le).domain(G);break}return this}var T=Array.prototype,M=T.map,O=T.slice,te={name:"implicit"};function ve(){var G=n.map(),Le=[],F=[],V=te;function N(L){var Y=L+"",ce=G.get(Y);if(!ce){if(V!==te)return V;G.set(Y,ce=Le.push(L))}return F[(ce-1)%F.length]}return N.domain=function(L){if(!arguments.length)return Le.slice();Le=[],G=n.map();for(var Y=-1,ce=L.length,xe,Fe;++YF&&(V=Le,Le=F,F=V),function(N){return Math.max(Le,Math.min(F,N))}}function c(G,Le,F){var V=G[0],N=G[1],L=Le[0],Y=Le[1];return N2?g:c,xe=Fe=null,Ge}function Ge($e){return isNaN($e=+$e)?L:(xe||(xe=ce(G.map(V),Le,F)))(V(Y($e)))}return Ge.invert=function($e){return Y(N((Fe||(Fe=ce(Le,G.map(V),u.interpolateNumber)))($e)))},Ge.domain=function($e){return arguments.length?(G=M.call($e,q),Y===ge||(Y=de(G)),ze()):G.slice()},Ge.range=function($e){return arguments.length?(Le=O.call($e),ze()):Le.slice()},Ge.rangeRound=function($e){return Le=O.call($e),F=u.interpolateRound,ze()},Ge.clamp=function($e){return arguments.length?(Y=$e?de(G):ge,Ge):Y!==ge},Ge.interpolate=function($e){return arguments.length?(F=$e,ze()):F},Ge.unknown=function($e){return arguments.length?(L=$e,Ge):L},function($e,et){return V=$e,N=et,ze()}}function S(G,Le){return E()(G,Le)}function X(G,Le,F,V){var N=i.tickStep(G,Le,F),L;switch(V=s.formatSpecifier(V??",f"),V.type){case"s":{var Y=Math.max(Math.abs(G),Math.abs(Le));return V.precision==null&&!isNaN(L=s.precisionPrefix(N,Y))&&(V.precision=L),s.formatPrefix(V,Y)}case"":case"e":case"g":case"p":case"r":{V.precision==null&&!isNaN(L=s.precisionRound(N,Math.max(Math.abs(G),Math.abs(Le))))&&(V.precision=L-(V.type==="e"));break}case"f":case"%":{V.precision==null&&!isNaN(L=s.precisionFixed(N))&&(V.precision=L-(V.type==="%")*2);break}}return s.format(V)}function m(G){var Le=G.domain;return G.ticks=function(F){var V=Le();return i.ticks(V[0],V[V.length-1],F??10)},G.tickFormat=function(F,V){var N=Le();return X(N[0],N[N.length-1],F??10,V)},G.nice=function(F){F==null&&(F=10);var V=Le(),N=0,L=V.length-1,Y=V[N],ce=V[L],xe;return ce0?(Y=Math.floor(Y/xe)*xe,ce=Math.ceil(ce/xe)*xe,xe=i.tickIncrement(Y,ce,F)):xe<0&&(Y=Math.ceil(Y*xe)/xe,ce=Math.floor(ce*xe)/xe,xe=i.tickIncrement(Y,ce,F)),xe>0?(V[N]=Math.floor(Y/xe)*xe,V[L]=Math.ceil(ce/xe)*xe,Le(V)):xe<0&&(V[N]=Math.ceil(Y*xe)/xe,V[L]=Math.floor(ce*xe)/xe,Le(V)),G},G}function A(){var G=S(ge,ge);return G.copy=function(){return k(G,A())},v.apply(G,arguments),m(G)}function W(G){var Le;function F(V){return isNaN(V=+V)?Le:V}return F.invert=F,F.domain=F.range=function(V){return arguments.length?(G=M.call(V,q),F):G.slice()},F.unknown=function(V){return arguments.length?(Le=V,F):Le},F.copy=function(){return W(G).unknown(Le)},G=arguments.length?M.call(G,q):[0,1],m(F)}function he(G,Le){G=G.slice();var F=0,V=G.length-1,N=G[F],L=G[V],Y;return L0){for(;$eze)break;sn.push(Pt)}}else for(;$e=1;--It)if(Pt=dt*It,!(Ptze)break;sn.push(Pt)}}else sn=i.ticks($e,et,Math.min(et-$e,St)).map(L);return Ge?sn.reverse():sn},Le.tickFormat=function(ce,xe){if(xe==null&&(xe=V===10?".0e":","),typeof xe!="function"&&(xe=s.format(xe)),ce===1/0)return xe;ce==null&&(ce=10);var Fe=Math.max(1,V*ce/Le.ticks().length);return function(ze){var Ge=ze/L(Math.round(N(ze)));return Ge*V0?F[ce-1]:G[0],ce=F?[V[F-1],Le]:[V[Fe-1],V[Fe]]},Y.unknown=function(xe){return arguments.length&&(L=xe),Y},Y.thresholds=function(){return V.slice()},Y.copy=function(){return Xt().domain([G,Le]).range(N).unknown(L)},v.apply(m(Y),arguments)}function Dt(){var G=[.5],Le=[0,1],F,V=1;function N(L){return L<=L?Le[i.bisect(G,L,0,V)]:F}return N.domain=function(L){return arguments.length?(G=O.call(L),V=Math.min(G.length,Le.length-1),N):G.slice()},N.range=function(L){return arguments.length?(Le=O.call(L),V=Math.min(G.length,Le.length-1),N):Le.slice()},N.invertExtent=function(L){var Y=Le.indexOf(L);return[G[Y-1],G[Y]]},N.unknown=function(L){return arguments.length?(F=L,N):F},N.copy=function(){return Dt().domain(G).range(Le).unknown(F)},v.apply(N,arguments)}var Nt=1e3,Gt=Nt*60,Rt=Gt*60,Kt=Rt*24,dn=Kt*7,tn=Kt*30,pn=Kt*365;function R(G){return new Date(G)}function B(G){return G instanceof Date?+G:+new Date(+G)}function Ie(G,Le,F,V,N,L,Y,ce,xe){var Fe=S(ge,ge),ze=Fe.invert,Ge=Fe.domain,$e=xe(".%L"),et=xe(":%S"),dt=xe("%I:%M"),It=xe("%I %p"),Pt=xe("%a %d"),St=xe("%b %d"),sn=xe("%B"),Tn=xe("%Y"),Pn=[[Y,1,Nt],[Y,5,5*Nt],[Y,15,15*Nt],[Y,30,30*Nt],[L,1,Gt],[L,5,5*Gt],[L,15,15*Gt],[L,30,30*Gt],[N,1,Rt],[N,3,3*Rt],[N,6,6*Rt],[N,12,12*Rt],[V,1,Kt],[V,2,2*Kt],[F,1,dn],[Le,1,tn],[Le,3,3*tn],[G,1,pn]];function gn(Mt){return(Y(Mt){(function(e,n){typeof Bf=="object"&&typeof Dx!="undefined"?n(Bf):typeof define=="function"&&define.amd?define(["exports"],n):n(e.d3=e.d3||{})})(Bf,function(e){"use strict";var n=Array.prototype.slice;function i(q){return q}var u=1,s=2,h=3,d=4,v=1e-6;function x(q){return"translate("+(q+.5)+",0)"}function T(q){return"translate(0,"+(q+.5)+")"}function M(q){return function(oe){return+q(oe)}}function O(q){var oe=Math.max(0,q.bandwidth()-1)/2;return q.round()&&(oe=Math.round(oe)),function(ge){return+q(ge)+oe}}function te(){return!this.__axis}function ve(q,oe){var ge=[],Ue=null,de=null,c=6,g=6,k=3,E=q===u||q===d?-1:1,S=q===d||q===s?"x":"y",X=q===u||q===h?x:T;function m(A){var W=Ue??(oe.ticks?oe.ticks.apply(oe,ge):oe.domain()),he=de??(oe.tickFormat?oe.tickFormat.apply(oe,ge):i),Oe=Math.max(c,0)+k,fe=oe.range(),ne=+fe[0]+.5,We=+fe[fe.length-1]+.5,se=(oe.bandwidth?O:M)(oe.copy()),be=A.selection?A.selection():A,Ce=be.selectAll(".domain").data([null]),_e=be.selectAll(".tick").data(W,oe).order(),Re=_e.exit(),Ae=_e.enter().append("g").attr("class","tick"),Xe=_e.select("line"),re=_e.select("text");Ce=Ce.merge(Ce.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),_e=_e.merge(Ae),Xe=Xe.merge(Ae.append("line").attr("stroke","currentColor").attr(S+"2",E*c)),re=re.merge(Ae.append("text").attr("fill","currentColor").attr(S,E*Oe).attr("dy",q===u?"0em":q===h?"0.71em":"0.32em")),A!==be&&(Ce=Ce.transition(A),_e=_e.transition(A),Xe=Xe.transition(A),re=re.transition(A),Re=Re.transition(A).attr("opacity",v).attr("transform",function(me){return isFinite(me=se(me))?X(me):this.getAttribute("transform")}),Ae.attr("opacity",v).attr("transform",function(me){var Pe=this.parentNode.__axis;return X(Pe&&isFinite(Pe=Pe(me))?Pe:se(me))})),Re.remove(),Ce.attr("d",q===d||q==s?g?"M"+E*g+","+ne+"H0.5V"+We+"H"+E*g:"M0.5,"+ne+"V"+We:g?"M"+ne+","+E*g+"V0.5H"+We+"V"+E*g:"M"+ne+",0.5H"+We),_e.attr("opacity",1).attr("transform",function(me){return X(se(me))}),Xe.attr(S+"2",E*c),re.attr(S,E*Oe).text(he),be.filter(te).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",q===s?"start":q===d?"end":"middle"),be.each(function(){this.__axis=se})}return m.scale=function(A){return arguments.length?(oe=A,m):oe},m.ticks=function(){return ge=n.call(arguments),m},m.tickArguments=function(A){return arguments.length?(ge=A==null?[]:n.call(A),m):ge.slice()},m.tickValues=function(A){return arguments.length?(Ue=A==null?null:n.call(A),m):Ue&&Ue.slice()},m.tickFormat=function(A){return arguments.length?(de=A,m):de},m.tickSize=function(A){return arguments.length?(c=g=+A,m):c},m.tickSizeInner=function(A){return arguments.length?(c=+A,m):c},m.tickSizeOuter=function(A){return arguments.length?(g=+A,m):g},m.tickPadding=function(A){return arguments.length?(k=+A,m):k},m}function Ee(q){return ve(u,q)}function ie(q){return ve(s,q)}function I(q){return ve(h,q)}function D(q){return ve(d,q)}e.axisTop=Ee,e.axisRight=ie,e.axisBottom=I,e.axisLeft=D,Object.defineProperty(e,"__esModule",{value:!0})})});var Yf=xt((jf,Ax)=>{(function(e,n){typeof jf=="object"&&typeof Ax!="undefined"?n(jf):typeof define=="function"&&define.amd?define(["exports"],n):(e=e||self,n(e.d3=e.d3||{}))})(jf,function(e){"use strict";var n={value:function(){}};function i(){for(var v=0,x=arguments.length,T={},M;v=0&&(M=T.slice(O+1),T=T.slice(0,O)),T&&!x.hasOwnProperty(T))throw new Error("unknown type: "+T);return{type:T,name:M}})}u.prototype=i.prototype={constructor:u,on:function(v,x){var T=this._,M=s(v+"",T),O,te=-1,ve=M.length;if(arguments.length<2){for(;++te0)for(var T=new Array(O),M=0,O,te;M{(function(e,n){typeof qf=="object"&&typeof Ix!="undefined"?n(qf):typeof define=="function"&&define.amd?define(["exports"],n):(e=e||self,n(e.d3=e.d3||{}))})(qf,function(e){"use strict";var n=0,i=0,u=0,s=1e3,h,d,v=0,x=0,T=0,M=typeof performance=="object"&&performance.now?performance:Date,O=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(c){setTimeout(c,17)};function te(){return x||(O(ve),x=M.now()+T)}function ve(){x=0}function Ee(){this._call=this._time=this._next=null}Ee.prototype=ie.prototype={constructor:Ee,restart:function(c,g,k){if(typeof c!="function")throw new TypeError("callback is not a function");k=(k==null?te():+k)+(g==null?0:+g),!this._next&&d!==this&&(d?d._next=this:h=this,d=this),this._call=c,this._time=k,ge()},stop:function(){this._call&&(this._call=null,this._time=1/0,ge())}};function ie(c,g,k){var E=new Ee;return E.restart(c,g,k),E}function I(){te(),++n;for(var c=h,g;c;)(g=x-c._time)>=0&&c._call.call(null,g),c=c._next;--n}function D(){x=(v=M.now())+T,n=i=0;try{I()}finally{n=0,oe(),x=0}}function q(){var c=M.now(),g=c-v;g>s&&(T-=g,v=c)}function oe(){for(var c,g=h,k,E=1/0;g;)g._call?(E>g._time&&(E=g._time),c=g,g=g._next):(k=g._next,g._next=null,g=c?c._next=k:h=k);d=c,ge(E)}function ge(c){if(!n){i&&(i=clearTimeout(i));var g=c-x;g>24?(c<1/0&&(i=setTimeout(D,c-M.now()-T)),u&&(u=clearInterval(u))):(u||(v=M.now(),u=setInterval(q,s)),n=1,O(D))}}function Ue(c,g,k){var E=new Ee;return g=g==null?0:+g,E.restart(function(S){E.stop(),c(S+g)},g,k),E}function de(c,g,k){var E=new Ee,S=g;return g==null?(E.restart(c,g,k),E):(g=+g,k=k==null?te():+k,E.restart(function X(m){m+=S,E.restart(X,S+=g,k),c(m)},g,k),E)}e.interval=de,e.now=te,e.timeout=Ue,e.timer=ie,e.timerFlush=I,Object.defineProperty(e,"__esModule",{value:!0})})});var Fx=xt((Gf,Rx)=>{(function(e,n){typeof Gf=="object"&&typeof Rx!="undefined"?n(Gf):typeof define=="function"&&define.amd?define(["exports"],n):(e=e||self,n(e.d3=e.d3||{}))})(Gf,function(e){"use strict";function n(Q){return+Q}function i(Q){return Q*Q}function u(Q){return Q*(2-Q)}function s(Q){return((Q*=2)<=1?Q*Q:--Q*(2-Q)+1)/2}function h(Q){return Q*Q*Q}function d(Q){return--Q*Q*Q+1}function v(Q){return((Q*=2)<=1?Q*Q*Q:(Q-=2)*Q*Q+2)/2}var x=3,T=function Q(ee){ee=+ee;function ke(De){return Math.pow(De,ee)}return ke.exponent=Q,ke}(x),M=function Q(ee){ee=+ee;function ke(De){return 1-Math.pow(1-De,ee)}return ke.exponent=Q,ke}(x),O=function Q(ee){ee=+ee;function ke(De){return((De*=2)<=1?Math.pow(De,ee):2-Math.pow(2-De,ee))/2}return ke.exponent=Q,ke}(x),te=Math.PI,ve=te/2;function Ee(Q){return+Q==1?1:1-Math.cos(Q*ve)}function ie(Q){return Math.sin(Q*ve)}function I(Q){return(1-Math.cos(te*Q))/2}function D(Q){return(Math.pow(2,-10*Q)-.0009765625)*1.0009775171065494}function q(Q){return D(1-+Q)}function oe(Q){return 1-D(Q)}function ge(Q){return((Q*=2)<=1?D(1-Q):2-D(Q-1))/2}function Ue(Q){return 1-Math.sqrt(1-Q*Q)}function de(Q){return Math.sqrt(1- --Q*Q)}function c(Q){return((Q*=2)<=1?1-Math.sqrt(1-Q*Q):Math.sqrt(1-(Q-=2)*Q)+1)/2}var g=4/11,k=6/11,E=8/11,S=3/4,X=9/11,m=10/11,A=15/16,W=21/22,he=63/64,Oe=1/g/g;function fe(Q){return 1-ne(1-Q)}function ne(Q){return(Q=+Q){(function(e,n){typeof Vf=="object"&&typeof zx!="undefined"?n(Vf,ea(),Yf(),qp(),Ff(),If(),Fx()):typeof define=="function"&&define.amd?define(["exports","d3-selection","d3-dispatch","d3-timer","d3-interpolate","d3-color","d3-ease"],n):(e=e||self,n(e.d3=e.d3||{},e.d3,e.d3,e.d3,e.d3,e.d3,e.d3))})(Vf,function(e,n,i,u,s,h,d){"use strict";var v=i.dispatch("start","end","cancel","interrupt"),x=[],T=0,M=1,O=2,te=3,ve=4,Ee=5,ie=6;function I(N,L,Y,ce,xe,Fe){var ze=N.__transition;if(!ze)N.__transition={};else if(Y in ze)return;ge(N,Y,{name:L,index:ce,group:xe,on:v,tween:x,time:Fe.time,delay:Fe.delay,duration:Fe.duration,ease:Fe.ease,timer:null,state:T})}function D(N,L){var Y=oe(N,L);if(Y.state>T)throw new Error("too late; already scheduled");return Y}function q(N,L){var Y=oe(N,L);if(Y.state>te)throw new Error("too late; already running");return Y}function oe(N,L){var Y=N.__transition;if(!Y||!(Y=Y[L]))throw new Error("transition not found");return Y}function ge(N,L,Y){var ce=N.__transition,xe;ce[L]=Y,Y.timer=u.timer(Fe,0,Y.time);function Fe(et){Y.state=M,Y.timer.restart(ze,Y.delay,Y.time),Y.delay<=et&&ze(et-Y.delay)}function ze(et){var dt,It,Pt,St;if(Y.state!==M)return $e();for(dt in ce)if(St=ce[dt],St.name===Y.name){if(St.state===te)return u.timeout(ze);St.state===ve?(St.state=ie,St.timer.stop(),St.on.call("interrupt",N,N.__data__,St.index,St.group),delete ce[dt]):+dtO&&ce.state=0&&(L=L.slice(0,Y)),!L||L==="start"})}function it(N,L,Y){var ce,xe,Fe=De(L)?D:q;return function(){var ze=Fe(this,N),Ge=ze.on;Ge!==ce&&(xe=(ce=Ge).copy()).on(L,Y),ze.on=xe}}function Je(N,L){var Y=this._id;return arguments.length<2?oe(this.node(),Y).on.on(N):this.each(it(Y,N,L))}function Yt(N){return function(){var L=this.parentNode;for(var Y in this.__transition)if(+Y!==N)return;L&&L.removeChild(this)}}function Xt(){return this.on("end.remove",Yt(this._id))}function Dt(N){var L=this._name,Y=this._id;typeof N!="function"&&(N=n.selector(N));for(var ce=this._groups,xe=ce.length,Fe=new Array(xe),ze=0;zeM&&ce.name===L)return new Ct([[N]],F,L,+xe)}return null}e.active=V,e.interrupt=Ue,e.transition=zt,Object.defineProperty(e,"__esModule",{value:!0})})});var Ux=xt(($f,Wx)=>{(function(e,n){typeof $f=="object"&&typeof Wx!="undefined"?n($f):typeof define=="function"&&define.amd?define(["exports"],n):(e=e||self,n(e.d3=e.d3||{}))})($f,function(e){"use strict";var n=Math.PI,i=2*n,u=1e-6,s=i-u;function h(){this._x0=this._y0=this._x1=this._y1=null,this._=""}function d(){return new h}h.prototype=d.prototype={constructor:h,moveTo:function(v,x){this._+="M"+(this._x0=this._x1=+v)+","+(this._y0=this._y1=+x)},closePath:function(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},lineTo:function(v,x){this._+="L"+(this._x1=+v)+","+(this._y1=+x)},quadraticCurveTo:function(v,x,T,M){this._+="Q"+ +v+","+ +x+","+(this._x1=+T)+","+(this._y1=+M)},bezierCurveTo:function(v,x,T,M,O,te){this._+="C"+ +v+","+ +x+","+ +T+","+ +M+","+(this._x1=+O)+","+(this._y1=+te)},arcTo:function(v,x,T,M,O){v=+v,x=+x,T=+T,M=+M,O=+O;var te=this._x1,ve=this._y1,Ee=T-v,ie=M-x,I=te-v,D=ve-x,q=I*I+D*D;if(O<0)throw new Error("negative radius: "+O);if(this._x1===null)this._+="M"+(this._x1=v)+","+(this._y1=x);else if(q>u)if(!(Math.abs(D*Ee-ie*I)>u)||!O)this._+="L"+(this._x1=v)+","+(this._y1=x);else{var oe=T-te,ge=M-ve,Ue=Ee*Ee+ie*ie,de=oe*oe+ge*ge,c=Math.sqrt(Ue),g=Math.sqrt(q),k=O*Math.tan((n-Math.acos((Ue+q-de)/(2*c*g)))/2),E=k/g,S=k/c;Math.abs(E-1)>u&&(this._+="L"+(v+E*I)+","+(x+E*D)),this._+="A"+O+","+O+",0,0,"+ +(D*oe>I*ge)+","+(this._x1=v+S*Ee)+","+(this._y1=x+S*ie)}},arc:function(v,x,T,M,O,te){v=+v,x=+x,T=+T,te=!!te;var ve=T*Math.cos(M),Ee=T*Math.sin(M),ie=v+ve,I=x+Ee,D=1^te,q=te?M-O:O-M;if(T<0)throw new Error("negative radius: "+T);this._x1===null?this._+="M"+ie+","+I:(Math.abs(this._x1-ie)>u||Math.abs(this._y1-I)>u)&&(this._+="L"+ie+","+I),!!T&&(q<0&&(q=q%i+i),q>s?this._+="A"+T+","+T+",0,1,"+D+","+(v-ve)+","+(x-Ee)+"A"+T+","+T+",0,1,"+D+","+(this._x1=ie)+","+(this._y1=I):q>u&&(this._+="A"+T+","+T+",0,"+ +(q>=n)+","+D+","+(this._x1=v+T*Math.cos(O))+","+(this._y1=x+T*Math.sin(O))))},rect:function(v,x,T,M){this._+="M"+(this._x0=this._x1=+v)+","+(this._y0=this._y1=+x)+"h"+ +T+"v"+ +M+"h"+-T+"Z"},toString:function(){return this._}},e.path=d,Object.defineProperty(e,"__esModule",{value:!0})})});var jx=xt((Xf,Bx)=>{(function(e,n){typeof Xf=="object"&&typeof Bx!="undefined"?n(Xf,Ux()):typeof define=="function"&&define.amd?define(["exports","d3-path"],n):(e=e||self,n(e.d3=e.d3||{},e.d3))})(Xf,function(e,n){"use strict";function i(w){return function(){return w}}var u=Math.abs,s=Math.atan2,h=Math.cos,d=Math.max,v=Math.min,x=Math.sin,T=Math.sqrt,M=1e-12,O=Math.PI,te=O/2,ve=2*O;function Ee(w){return w>1?0:w<-1?O:Math.acos(w)}function ie(w){return w>=1?te:w<=-1?-te:Math.asin(w)}function I(w){return w.innerRadius}function D(w){return w.outerRadius}function q(w){return w.startAngle}function oe(w){return w.endAngle}function ge(w){return w&&w.padAngle}function Ue(w,z,U,ae,Me,ue,Ye,ye){var qe=U-w,ot=ae-z,ut=Ye-Me,wt=ye-ue,Et=wt*qe-ut*ot;if(!(Et*Etsi*si+fi*fi&&(li=br,hr=nr),{cx:li,cy:hr,x01:-ut,y01:-wt,x11:li*(Me/Sr-1),y11:hr*(Me/Sr-1)}}function c(){var w=I,z=D,U=i(0),ae=null,Me=q,ue=oe,Ye=ge,ye=null;function qe(){var ot,ut,wt=+w.apply(this,arguments),Et=+z.apply(this,arguments),Wt=Me.apply(this,arguments)-te,jt=ue.apply(this,arguments)-te,cn=u(jt-Wt),Vt=jt>Wt;if(ye||(ye=ot=n.path()),EtM))ye.moveTo(0,0);else if(cn>ve-M)ye.moveTo(Et*h(Wt),Et*x(Wt)),ye.arc(0,0,Et,Wt,jt,!Vt),wt>M&&(ye.moveTo(wt*h(jt),wt*x(jt)),ye.arc(0,0,wt,jt,Wt,Vt));else{var wn=Wt,Ln=jt,Mn=Wt,In=jt,Sr=cn,qn=cn,Qr=Ye.apply(this,arguments)/2,li=Qr>M&&(ae?+ae.apply(this,arguments):T(wt*wt+Et*Et)),hr=v(u(Et-wt)/2,+U.apply(this,arguments)),br=hr,nr=hr,Ot,Zt;if(li>M){var si=ie(li/wt*x(Qr)),fi=ie(li/Et*x(Qr));(Sr-=si*2)>M?(si*=Vt?1:-1,Mn+=si,In-=si):(Sr=0,Mn=In=(Wt+jt)/2),(qn-=fi*2)>M?(fi*=Vt?1:-1,wn+=fi,Ln-=fi):(qn=0,wn=Ln=(Wt+jt)/2)}var Zr=Et*h(wn),Hi=Et*x(wn),xo=wt*h(In),rr=wt*x(In);if(hr>M){var ta=Et*h(Ln),na=Et*x(Ln),_o=wt*h(Mn),ra=wt*x(Mn),Gn;if(cnM?nr>M?(Ot=de(_o,ra,Zr,Hi,Et,nr,Vt),Zt=de(ta,na,xo,rr,Et,nr,Vt),ye.moveTo(Ot.cx+Ot.x01,Ot.cy+Ot.y01),nrM)||!(Sr>M)?ye.lineTo(xo,rr):br>M?(Ot=de(xo,rr,ta,na,wt,-br,Vt),Zt=de(Zr,Hi,_o,ra,wt,-br,Vt),ye.lineTo(Ot.cx+Ot.x01,Ot.cy+Ot.y01),br=Et;--Wt)ye.point(Ln[Wt],Mn[Wt]);ye.lineEnd(),ye.areaEnd()}Vt&&(Ln[wt]=+w(cn,wt,ut),Mn[wt]=+U(cn,wt,ut),ye.point(z?+z(cn,wt,ut):Ln[wt],ae?+ae(cn,wt,ut):Mn[wt]))}if(wn)return ye=null,wn+""||null}function ot(){return X().defined(Me).curve(Ye).context(ue)}return qe.x=function(ut){return arguments.length?(w=typeof ut=="function"?ut:i(+ut),z=null,qe):w},qe.x0=function(ut){return arguments.length?(w=typeof ut=="function"?ut:i(+ut),qe):w},qe.x1=function(ut){return arguments.length?(z=ut==null?null:typeof ut=="function"?ut:i(+ut),qe):z},qe.y=function(ut){return arguments.length?(U=typeof ut=="function"?ut:i(+ut),ae=null,qe):U},qe.y0=function(ut){return arguments.length?(U=typeof ut=="function"?ut:i(+ut),qe):U},qe.y1=function(ut){return arguments.length?(ae=ut==null?null:typeof ut=="function"?ut:i(+ut),qe):ae},qe.lineX0=qe.lineY0=function(){return ot().x(w).y(U)},qe.lineY1=function(){return ot().x(w).y(ae)},qe.lineX1=function(){return ot().x(z).y(U)},qe.defined=function(ut){return arguments.length?(Me=typeof ut=="function"?ut:i(!!ut),qe):Me},qe.curve=function(ut){return arguments.length?(Ye=ut,ue!=null&&(ye=Ye(ue)),qe):Ye},qe.context=function(ut){return arguments.length?(ut==null?ue=ye=null:ye=Ye(ue=ut),qe):ue},qe}function A(w,z){return zw?1:z>=w?0:NaN}function W(w){return w}function he(){var w=W,z=A,U=null,ae=i(0),Me=i(ve),ue=i(0);function Ye(ye){var qe,ot=ye.length,ut,wt,Et=0,Wt=new Array(ot),jt=new Array(ot),cn=+ae.apply(this,arguments),Vt=Math.min(ve,Math.max(-ve,Me.apply(this,arguments)-cn)),wn,Ln=Math.min(Math.abs(Vt)/ot,ue.apply(this,arguments)),Mn=Ln*(Vt<0?-1:1),In;for(qe=0;qe0&&(Et+=In);for(z!=null?Wt.sort(function(Sr,qn){return z(jt[Sr],jt[qn])}):U!=null&&Wt.sort(function(Sr,qn){return U(ye[Sr],ye[qn])}),qe=0,wt=Et?(Vt-ot*Mn)/Et:0;qe0?In*wt:0)+Mn,jt[ut]={data:ye[ut],index:qe,value:In,startAngle:cn,endAngle:wn,padAngle:Ln};return jt}return Ye.value=function(ye){return arguments.length?(w=typeof ye=="function"?ye:i(+ye),Ye):w},Ye.sortValues=function(ye){return arguments.length?(z=ye,U=null,Ye):z},Ye.sort=function(ye){return arguments.length?(U=ye,z=null,Ye):U},Ye.startAngle=function(ye){return arguments.length?(ae=typeof ye=="function"?ye:i(+ye),Ye):ae},Ye.endAngle=function(ye){return arguments.length?(Me=typeof ye=="function"?ye:i(+ye),Ye):Me},Ye.padAngle=function(ye){return arguments.length?(ue=typeof ye=="function"?ye:i(+ye),Ye):ue},Ye}var Oe=ne(k);function fe(w){this._curve=w}fe.prototype={areaStart:function(){this._curve.areaStart()},areaEnd:function(){this._curve.areaEnd()},lineStart:function(){this._curve.lineStart()},lineEnd:function(){this._curve.lineEnd()},point:function(w,z){this._curve.point(z*Math.sin(w),z*-Math.cos(w))}};function ne(w){function z(U){return new fe(w(U))}return z._curve=w,z}function We(w){var z=w.curve;return w.angle=w.x,delete w.x,w.radius=w.y,delete w.y,w.curve=function(U){return arguments.length?z(ne(U)):z()._curve},w}function se(){return We(X().curve(Oe))}function be(){var w=m().curve(Oe),z=w.curve,U=w.lineX0,ae=w.lineX1,Me=w.lineY0,ue=w.lineY1;return w.angle=w.x,delete w.x,w.startAngle=w.x0,delete w.x0,w.endAngle=w.x1,delete w.x1,w.radius=w.y,delete w.y,w.innerRadius=w.y0,delete w.y0,w.outerRadius=w.y1,delete w.y1,w.lineStartAngle=function(){return We(U())},delete w.lineX0,w.lineEndAngle=function(){return We(ae())},delete w.lineX1,w.lineInnerRadius=function(){return We(Me())},delete w.lineY0,w.lineOuterRadius=function(){return We(ue())},delete w.lineY1,w.curve=function(Ye){return arguments.length?z(ne(Ye)):z()._curve},w}function Ce(w,z){return[(z=+z)*Math.cos(w-=Math.PI/2),z*Math.sin(w)]}var _e=Array.prototype.slice;function Re(w){return w.source}function Ae(w){return w.target}function Xe(w){var z=Re,U=Ae,ae=E,Me=S,ue=null;function Ye(){var ye,qe=_e.call(arguments),ot=z.apply(this,qe),ut=U.apply(this,qe);if(ue||(ue=ye=n.path()),w(ue,+ae.apply(this,(qe[0]=ot,qe)),+Me.apply(this,qe),+ae.apply(this,(qe[0]=ut,qe)),+Me.apply(this,qe)),ye)return ue=null,ye+""||null}return Ye.source=function(ye){return arguments.length?(z=ye,Ye):z},Ye.target=function(ye){return arguments.length?(U=ye,Ye):U},Ye.x=function(ye){return arguments.length?(ae=typeof ye=="function"?ye:i(+ye),Ye):ae},Ye.y=function(ye){return arguments.length?(Me=typeof ye=="function"?ye:i(+ye),Ye):Me},Ye.context=function(ye){return arguments.length?(ue=ye??null,Ye):ue},Ye}function re(w,z,U,ae,Me){w.moveTo(z,U),w.bezierCurveTo(z=(z+ae)/2,U,z,Me,ae,Me)}function me(w,z,U,ae,Me){w.moveTo(z,U),w.bezierCurveTo(z,U=(U+Me)/2,ae,U,ae,Me)}function Pe(w,z,U,ae,Me){var ue=Ce(z,U),Ye=Ce(z,U=(U+Me)/2),ye=Ce(ae,U),qe=Ce(ae,Me);w.moveTo(ue[0],ue[1]),w.bezierCurveTo(Ye[0],Ye[1],ye[0],ye[1],qe[0],qe[1])}function Q(){return Xe(re)}function ee(){return Xe(me)}function ke(){var w=Xe(Pe);return w.angle=w.x,delete w.x,w.radius=w.y,delete w.y,w}var De={draw:function(w,z){var U=Math.sqrt(z/O);w.moveTo(U,0),w.arc(0,0,U,0,ve)}},it={draw:function(w,z){var U=Math.sqrt(z/5)/2;w.moveTo(-3*U,-U),w.lineTo(-U,-U),w.lineTo(-U,-3*U),w.lineTo(U,-3*U),w.lineTo(U,-U),w.lineTo(3*U,-U),w.lineTo(3*U,U),w.lineTo(U,U),w.lineTo(U,3*U),w.lineTo(-U,3*U),w.lineTo(-U,U),w.lineTo(-3*U,U),w.closePath()}},Je=Math.sqrt(1/3),Yt=Je*2,Xt={draw:function(w,z){var U=Math.sqrt(z/Yt),ae=U*Je;w.moveTo(0,-U),w.lineTo(ae,0),w.lineTo(0,U),w.lineTo(-ae,0),w.closePath()}},Dt=.8908130915292852,Nt=Math.sin(O/10)/Math.sin(7*O/10),Gt=Math.sin(ve/10)*Nt,Rt=-Math.cos(ve/10)*Nt,Kt={draw:function(w,z){var U=Math.sqrt(z*Dt),ae=Gt*U,Me=Rt*U;w.moveTo(0,-U),w.lineTo(ae,Me);for(var ue=1;ue<5;++ue){var Ye=ve*ue/5,ye=Math.cos(Ye),qe=Math.sin(Ye);w.lineTo(qe*U,-ye*U),w.lineTo(ye*ae-qe*Me,qe*ae+ye*Me)}w.closePath()}},dn={draw:function(w,z){var U=Math.sqrt(z),ae=-U/2;w.rect(ae,ae,U,U)}},tn=Math.sqrt(3),pn={draw:function(w,z){var U=-Math.sqrt(z/(tn*3));w.moveTo(0,U*2),w.lineTo(-tn*U,-U),w.lineTo(tn*U,-U),w.closePath()}},R=-.5,B=Math.sqrt(3)/2,Ie=1/Math.sqrt(12),Ke=(Ie/2+1)*3,Be={draw:function(w,z){var U=Math.sqrt(z/Ke),ae=U/2,Me=U*Ie,ue=ae,Ye=U*Ie+U,ye=-ue,qe=Ye;w.moveTo(ae,Me),w.lineTo(ue,Ye),w.lineTo(ye,qe),w.lineTo(R*ae-B*Me,B*ae+R*Me),w.lineTo(R*ue-B*Ye,B*ue+R*Ye),w.lineTo(R*ye-B*qe,B*ye+R*qe),w.lineTo(R*ae+B*Me,R*Me-B*ae),w.lineTo(R*ue+B*Ye,R*Ye-B*ue),w.lineTo(R*ye+B*qe,R*qe-B*ye),w.closePath()}},P=[De,it,Xt,dn,Kt,pn,Be];function Z(){var w=i(De),z=i(64),U=null;function ae(){var Me;if(U||(U=Me=n.path()),w.apply(this,arguments).draw(U,+z.apply(this,arguments)),Me)return U=null,Me+""||null}return ae.type=function(Me){return arguments.length?(w=typeof Me=="function"?Me:i(Me),ae):w},ae.size=function(Me){return arguments.length?(z=typeof Me=="function"?Me:i(+Me),ae):z},ae.context=function(Me){return arguments.length?(U=Me??null,ae):U},ae}function Ne(){}function Te(w,z,U){w._context.bezierCurveTo((2*w._x0+w._x1)/3,(2*w._y0+w._y1)/3,(w._x0+2*w._x1)/3,(w._y0+2*w._y1)/3,(w._x0+4*w._x1+z)/6,(w._y0+4*w._y1+U)/6)}function ht(w){this._context=w}ht.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:Te(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(w,z){switch(w=+w,z=+z,this._point){case 0:this._point=1,this._line?this._context.lineTo(w,z):this._context.moveTo(w,z);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:Te(this,w,z);break}this._x0=this._x1,this._x1=w,this._y0=this._y1,this._y1=z}};function nt(w){return new ht(w)}function at(w){this._context=w}at.prototype={areaStart:Ne,areaEnd:Ne,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(w,z){switch(w=+w,z=+z,this._point){case 0:this._point=1,this._x2=w,this._y2=z;break;case 1:this._point=2,this._x3=w,this._y3=z;break;case 2:this._point=3,this._x4=w,this._y4=z,this._context.moveTo((this._x0+4*this._x1+w)/6,(this._y0+4*this._y1+z)/6);break;default:Te(this,w,z);break}this._x0=this._x1,this._x1=w,this._y0=this._y1,this._y1=z}};function vt(w){return new at(w)}function Ft(w){this._context=w}Ft.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(w,z){switch(w=+w,z=+z,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var U=(this._x0+4*this._x1+w)/6,ae=(this._y0+4*this._y1+z)/6;this._line?this._context.lineTo(U,ae):this._context.moveTo(U,ae);break;case 3:this._point=4;default:Te(this,w,z);break}this._x0=this._x1,this._x1=w,this._y0=this._y1,this._y1=z}};function Ct(w){return new Ft(w)}function zt(w,z){this._basis=new ht(w),this._beta=z}zt.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var w=this._x,z=this._y,U=w.length-1;if(U>0)for(var ae=w[0],Me=z[0],ue=w[U]-ae,Ye=z[U]-Me,ye=-1,qe;++ye<=U;)qe=ye/U,this._basis.point(this._beta*w[ye]+(1-this._beta)*(ae+qe*ue),this._beta*z[ye]+(1-this._beta)*(Me+qe*Ye));this._x=this._y=null,this._basis.lineEnd()},point:function(w,z){this._x.push(+w),this._y.push(+z)}};var Bt=function w(z){function U(ae){return z===1?new ht(ae):new zt(ae,z)}return U.beta=function(ae){return w(+ae)},U}(.85);function on(w,z,U){w._context.bezierCurveTo(w._x1+w._k*(w._x2-w._x0),w._y1+w._k*(w._y2-w._y0),w._x2+w._k*(w._x1-z),w._y2+w._k*(w._y1-U),w._x2,w._y2)}function vn(w,z){this._context=w,this._k=(1-z)/6}vn.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:on(this,this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(w,z){switch(w=+w,z=+z,this._point){case 0:this._point=1,this._line?this._context.lineTo(w,z):this._context.moveTo(w,z);break;case 1:this._point=2,this._x1=w,this._y1=z;break;case 2:this._point=3;default:on(this,w,z);break}this._x0=this._x1,this._x1=this._x2,this._x2=w,this._y0=this._y1,this._y1=this._y2,this._y2=z}};var G=function w(z){function U(ae){return new vn(ae,z)}return U.tension=function(ae){return w(+ae)},U}(0);function Le(w,z){this._context=w,this._k=(1-z)/6}Le.prototype={areaStart:Ne,areaEnd:Ne,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},point:function(w,z){switch(w=+w,z=+z,this._point){case 0:this._point=1,this._x3=w,this._y3=z;break;case 1:this._point=2,this._context.moveTo(this._x4=w,this._y4=z);break;case 2:this._point=3,this._x5=w,this._y5=z;break;default:on(this,w,z);break}this._x0=this._x1,this._x1=this._x2,this._x2=w,this._y0=this._y1,this._y1=this._y2,this._y2=z}};var F=function w(z){function U(ae){return new Le(ae,z)}return U.tension=function(ae){return w(+ae)},U}(0);function V(w,z){this._context=w,this._k=(1-z)/6}V.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(w,z){switch(w=+w,z=+z,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:on(this,w,z);break}this._x0=this._x1,this._x1=this._x2,this._x2=w,this._y0=this._y1,this._y1=this._y2,this._y2=z}};var N=function w(z){function U(ae){return new V(ae,z)}return U.tension=function(ae){return w(+ae)},U}(0);function L(w,z,U){var ae=w._x1,Me=w._y1,ue=w._x2,Ye=w._y2;if(w._l01_a>M){var ye=2*w._l01_2a+3*w._l01_a*w._l12_a+w._l12_2a,qe=3*w._l01_a*(w._l01_a+w._l12_a);ae=(ae*ye-w._x0*w._l12_2a+w._x2*w._l01_2a)/qe,Me=(Me*ye-w._y0*w._l12_2a+w._y2*w._l01_2a)/qe}if(w._l23_a>M){var ot=2*w._l23_2a+3*w._l23_a*w._l12_a+w._l12_2a,ut=3*w._l23_a*(w._l23_a+w._l12_a);ue=(ue*ot+w._x1*w._l23_2a-z*w._l12_2a)/ut,Ye=(Ye*ot+w._y1*w._l23_2a-U*w._l12_2a)/ut}w._context.bezierCurveTo(ae,Me,ue,Ye,w._x2,w._y2)}function Y(w,z){this._context=w,this._alpha=z}Y.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(w,z){if(w=+w,z=+z,this._point){var U=this._x2-w,ae=this._y2-z;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(U*U+ae*ae,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(w,z):this._context.moveTo(w,z);break;case 1:this._point=2;break;case 2:this._point=3;default:L(this,w,z);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=w,this._y0=this._y1,this._y1=this._y2,this._y2=z}};var ce=function w(z){function U(ae){return z?new Y(ae,z):new vn(ae,0)}return U.alpha=function(ae){return w(+ae)},U}(.5);function xe(w,z){this._context=w,this._alpha=z}xe.prototype={areaStart:Ne,areaEnd:Ne,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},point:function(w,z){if(w=+w,z=+z,this._point){var U=this._x2-w,ae=this._y2-z;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(U*U+ae*ae,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=w,this._y3=z;break;case 1:this._point=2,this._context.moveTo(this._x4=w,this._y4=z);break;case 2:this._point=3,this._x5=w,this._y5=z;break;default:L(this,w,z);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=w,this._y0=this._y1,this._y1=this._y2,this._y2=z}};var Fe=function w(z){function U(ae){return z?new xe(ae,z):new Le(ae,0)}return U.alpha=function(ae){return w(+ae)},U}(.5);function ze(w,z){this._context=w,this._alpha=z}ze.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(w,z){if(w=+w,z=+z,this._point){var U=this._x2-w,ae=this._y2-z;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(U*U+ae*ae,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:L(this,w,z);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=w,this._y0=this._y1,this._y1=this._y2,this._y2=z}};var Ge=function w(z){function U(ae){return z?new ze(ae,z):new V(ae,0)}return U.alpha=function(ae){return w(+ae)},U}(.5);function $e(w){this._context=w}$e.prototype={areaStart:Ne,areaEnd:Ne,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(w,z){w=+w,z=+z,this._point?this._context.lineTo(w,z):(this._point=1,this._context.moveTo(w,z))}};function et(w){return new $e(w)}function dt(w){return w<0?-1:1}function It(w,z,U){var ae=w._x1-w._x0,Me=z-w._x1,ue=(w._y1-w._y0)/(ae||Me<0&&-0),Ye=(U-w._y1)/(Me||ae<0&&-0),ye=(ue*Me+Ye*ae)/(ae+Me);return(dt(ue)+dt(Ye))*Math.min(Math.abs(ue),Math.abs(Ye),.5*Math.abs(ye))||0}function Pt(w,z){var U=w._x1-w._x0;return U?(3*(w._y1-w._y0)/U-z)/2:z}function St(w,z,U){var ae=w._x0,Me=w._y0,ue=w._x1,Ye=w._y1,ye=(ue-ae)/3;w._context.bezierCurveTo(ae+ye,Me+ye*z,ue-ye,Ye-ye*U,ue,Ye)}function sn(w){this._context=w}sn.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:St(this,this._t0,Pt(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(w,z){var U=NaN;if(w=+w,z=+z,!(w===this._x1&&z===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(w,z):this._context.moveTo(w,z);break;case 1:this._point=2;break;case 2:this._point=3,St(this,Pt(this,U=It(this,w,z)),U);break;default:St(this,this._t0,U=It(this,w,z));break}this._x0=this._x1,this._x1=w,this._y0=this._y1,this._y1=z,this._t0=U}}};function Tn(w){this._context=new Pn(w)}(Tn.prototype=Object.create(sn.prototype)).point=function(w,z){sn.prototype.point.call(this,z,w)};function Pn(w){this._context=w}Pn.prototype={moveTo:function(w,z){this._context.moveTo(z,w)},closePath:function(){this._context.closePath()},lineTo:function(w,z){this._context.lineTo(z,w)},bezierCurveTo:function(w,z,U,ae,Me,ue){this._context.bezierCurveTo(z,w,ae,U,ue,Me)}};function gn(w){return new sn(w)}function hn(w){return new Tn(w)}function Mt(w){this._context=w}Mt.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var w=this._x,z=this._y,U=w.length;if(U)if(this._line?this._context.lineTo(w[0],z[0]):this._context.moveTo(w[0],z[0]),U===2)this._context.lineTo(w[1],z[1]);else for(var ae=Lt(w),Me=Lt(z),ue=0,Ye=1;Ye=0;--z)Me[z]=(Ye[z]-Me[z+1])/ue[z];for(ue[U-1]=(w[U]+Me[U-1])/2,z=0;z=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(w,z){switch(w=+w,z=+z,this._point){case 0:this._point=1,this._line?this._context.lineTo(w,z):this._context.moveTo(w,z);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,z),this._context.lineTo(w,z);else{var U=this._x*(1-this._t)+w*this._t;this._context.lineTo(U,this._y),this._context.lineTo(U,z)}break}}this._x=w,this._y=z}};function j(w){return new Qt(w,.5)}function le(w){return new Qt(w,0)}function He(w){return new Qt(w,1)}function Qe(w,z){if((Ye=w.length)>1)for(var U=1,ae,Me,ue=w[z[0]],Ye,ye=ue.length;U=0;)U[z]=z;return U}function H(w,z){return w[z]}function K(){var w=i([]),z=b,U=Qe,ae=H;function Me(ue){var Ye=w.apply(this,arguments),ye,qe=ue.length,ot=Ye.length,ut=new Array(ot),wt;for(ye=0;ye0){for(var U,ae,Me=0,ue=w[0].length,Ye;Me0)for(var U,ae=0,Me,ue,Ye,ye,qe,ot=w[z[0]].length;ae0?(Me[0]=Ye,Me[1]=Ye+=ue):ue<0?(Me[1]=ye,Me[0]=ye+=ue):(Me[0]=0,Me[1]=ue)}function ct(w,z){if((Me=w.length)>0){for(var U=0,ae=w[z[0]],Me,ue=ae.length;U0)||!((ue=(Me=w[z[0]]).length)>0))){for(var U=0,ae=1,Me,ue,Ye;aeue&&(ue=Me,U=z);return U}function gt(w){var z=w.map(Xr);return b(w).sort(function(U,ae){return z[U]-z[ae]})}function Xr(w){for(var z=0,U=-1,ae=w.length,Me;++U{(function(e,n){typeof Kf=="object"&&typeof Yx!="undefined"?n(Kf):typeof define=="function"&&define.amd?define(["exports"],n):(e=typeof globalThis!="undefined"?globalThis:e||self,n(e.d3=e.d3||{}))})(Kf,function(e){"use strict";function n(c,g){var k=Object.keys(c);if(Object.getOwnPropertySymbols){var E=Object.getOwnPropertySymbols(c);g&&(E=E.filter(function(S){return Object.getOwnPropertyDescriptor(c,S).enumerable})),k.push.apply(k,E)}return k}function i(c){for(var g=1;gc.length)&&(g=c.length);for(var k=0,E=new Array(g);k=c.length?{done:!0}:{done:!1,value:c[E++]}},e:function(W){throw W},f:S}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var X=!0,m=!1,A;return{s:function(){k=k.call(c)},n:function(){var W=k.next();return X=W.done,W},e:function(W){m=!0,A=W},f:function(){try{!X&&k.return!=null&&k.return()}finally{if(m)throw A}}}}function T(c,g){var k=[],E=[];function S(X,m){if(X.length===1)k.push(X[0]),E.push(X[0]);else{for(var A=Array(X.length-1),W=0;W=3&&(g.x1=c[1][0],g.y1=c[1][1]),g.x=c[c.length-1][0],g.y=c[c.length-1][1],c.length===4?g.type="C":c.length===3?g.type="Q":g.type="L",g}function O(c,g){g=g||2;for(var k=[],E=c,S=1/g,X=0;X0?fe-=1:fe0&&(fe-=1))}return W[fe]=(W[fe]||0)+1,W},[]),A=m.reduce(function(W,he,Oe){if(Oe===c.length-1){var fe=ie(he,h({},c[c.length-1]));return fe[0].type==="M"&&fe.forEach(function(ne){ne.type="L"}),W.concat(fe)}return W.concat(q(c[Oe],c[Oe+1],he))},[]);return A.unshift(c[0]),A}function ge(c){for(var g=(c||"").match(ve)||[],k=[],E,S,X=0;X0&&E[E.length-1].type==="Z"&&E.pop(),S.length>0&&S[S.length-1].type==="Z"&&S.pop(),E.length?S.length||S.push(E[0]):E.push(S[0]);var he=Math.abs(S.length-E.length);he!==0&&(S.length>E.length?E=oe(E,S,m):S.length{(function(e,n){typeof Jf=="object"&&typeof Vx!="undefined"?n(Jf):typeof define=="function"&&define.amd?define(["exports"],n):(e=e||self,n(e.d3=e.d3||{}))})(Jf,function(e){"use strict";function n(c){var g=+this._x.call(null,c),k=+this._y.call(null,c);return i(this.cover(g,k),g,k,c)}function i(c,g,k,E){if(isNaN(g)||isNaN(k))return c;var S,X=c._root,m={data:E},A=c._x0,W=c._y0,he=c._x1,Oe=c._y1,fe,ne,We,se,be,Ce,_e,Re;if(!X)return c._root=m,c;for(;X.length;)if((be=g>=(fe=(A+he)/2))?A=fe:he=fe,(Ce=k>=(ne=(W+Oe)/2))?W=ne:Oe=ne,S=X,!(X=X[_e=Ce<<1|be]))return S[_e]=m,c;if(We=+c._x.call(null,X.data),se=+c._y.call(null,X.data),g===We&&k===se)return m.next=X,S?S[_e]=m:c._root=m,c;do S=S?S[_e]=new Array(4):c._root=new Array(4),(be=g>=(fe=(A+he)/2))?A=fe:he=fe,(Ce=k>=(ne=(W+Oe)/2))?W=ne:Oe=ne;while((_e=Ce<<1|be)==(Re=(se>=ne)<<1|We>=fe));return S[Re]=X,S[_e]=m,c}function u(c){var g,k,E=c.length,S,X,m=new Array(E),A=new Array(E),W=1/0,he=1/0,Oe=-1/0,fe=-1/0;for(k=0;kOe&&(Oe=S),Xfe&&(fe=X));if(W>Oe||he>fe)return this;for(this.cover(W,he).cover(Oe,fe),k=0;kc||c>=S||E>g||g>=X;)switch(he=(gOe||(A=se.y0)>fe||(W=se.x1)=_e)<<1|c>=Ce)&&(se=ne[ne.length-1],ne[ne.length-1]=ne[ne.length-1-be],ne[ne.length-1-be]=se)}else{var Re=c-+this._x.call(null,We.data),Ae=g-+this._y.call(null,We.data),Xe=Re*Re+Ae*Ae;if(Xe=(ne=(m+W)/2))?m=ne:W=ne,(be=fe>=(We=(A+he)/2))?A=We:he=We,g=k,!(k=k[Ce=be<<1|se]))return this;if(!k.length)break;(g[Ce+1&3]||g[Ce+2&3]||g[Ce+3&3])&&(E=g,_e=Ce)}for(;k.data!==c;)if(S=k,!(k=k.next))return this;return(X=k.next)&&delete k.next,S?(X?S.next=X:delete S.next,this):g?(X?g[Ce]=X:delete g[Ce],(k=g[0]||g[1]||g[2]||g[3])&&k===(g[3]||g[2]||g[1]||g[0])&&!k.length&&(E?E[_e]=k:this._root=k),this):(this._root=X,this)}function M(c){for(var g=0,k=c.length;g{(function(e,n){typeof ec=="object"&&typeof Xx!="undefined"?n(ec,$x(),Up(),Yf(),qp()):typeof define=="function"&&define.amd?define(["exports","d3-quadtree","d3-collection","d3-dispatch","d3-timer"],n):n(e.d3=e.d3||{},e.d3,e.d3,e.d3,e.d3)})(ec,function(e,n,i,u,s){"use strict";function h(c,g){var k;c==null&&(c=0),g==null&&(g=0);function E(){var S,X=k.length,m,A=0,W=0;for(S=0;Sfe.index){var ke=ne-Pe.x-Pe.vx,De=We-Pe.y-Pe.vy,it=ke*ke+De*De;itne+ee||reWe+ee||meW.r&&(W.r=W[he].r)}function A(){if(!!g){var W,he=g.length,Oe;for(k=new Array(he),W=0;W1?(be==null?A.remove(se):A.set(se,We(be)),g):A.get(se)},find:function(se,be,Ce){var _e=0,Re=c.length,Ae,Xe,re,me,Pe;for(Ce==null?Ce=1/0:Ce*=Ce,_e=0;_e1?(he.on(se,be),g):he.on(se)}}}function oe(){var c,g,k,E=d(-30),S,X=1,m=1/0,A=.81;function W(ne){var We,se=c.length,be=n.quadtree(c,Ee,ie).visitAfter(Oe);for(k=ne,We=0;We=m)return;(ne.data!==g||ne.next)&&(Ce===0&&(Ce=v(),Ae+=Ce*Ce),_e===0&&(_e=v(),Ae+=_e*_e),Ae{(function(e,n){typeof tc=="object"&&typeof Qx!="undefined"?n(tc,Yf(),ea()):typeof define=="function"&&define.amd?define(["exports","d3-dispatch","d3-selection"],n):(e=e||self,n(e.d3=e.d3||{},e.d3,e.d3))})(tc,function(e,n,i){"use strict";function u(){i.event.stopImmediatePropagation()}function s(){i.event.preventDefault(),i.event.stopImmediatePropagation()}function h(Ee){var ie=Ee.document.documentElement,I=i.select(Ee).on("dragstart.drag",s,!0);"onselectstart"in ie?I.on("selectstart.drag",s,!0):(ie.__noselect=ie.style.MozUserSelect,ie.style.MozUserSelect="none")}function d(Ee,ie){var I=Ee.document.documentElement,D=i.select(Ee).on("dragstart.drag",null);ie&&(D.on("click.drag",s,!0),setTimeout(function(){D.on("click.drag",null)},0)),"onselectstart"in I?D.on("selectstart.drag",null):(I.style.MozUserSelect=I.__noselect,delete I.__noselect)}function v(Ee){return function(){return Ee}}function x(Ee,ie,I,D,q,oe,ge,Ue,de,c){this.target=Ee,this.type=ie,this.subject=I,this.identifier=D,this.active=q,this.x=oe,this.y=ge,this.dx=Ue,this.dy=de,this._=c}x.prototype.on=function(){var Ee=this._.on.apply(this._,arguments);return Ee===this._?this:Ee};function T(){return!i.event.ctrlKey&&!i.event.button}function M(){return this.parentNode}function O(Ee){return Ee??{x:i.event.x,y:i.event.y}}function te(){return navigator.maxTouchPoints||"ontouchstart"in this}function ve(){var Ee=T,ie=M,I=O,D=te,q={},oe=n.dispatch("start","drag","end"),ge=0,Ue,de,c,g,k=0;function E(fe){fe.on("mousedown.drag",S).filter(D).on("touchstart.drag",A).on("touchmove.drag",W).on("touchend.drag touchcancel.drag",he).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function S(){if(!(g||!Ee.apply(this,arguments))){var fe=Oe("mouse",ie.apply(this,arguments),i.mouse,this,arguments);!fe||(i.select(i.event.view).on("mousemove.drag",X,!0).on("mouseup.drag",m,!0),h(i.event.view),u(),c=!1,Ue=i.event.clientX,de=i.event.clientY,fe("start"))}}function X(){if(s(),!c){var fe=i.event.clientX-Ue,ne=i.event.clientY-de;c=fe*fe+ne*ne>k}q.mouse("drag")}function m(){i.select(i.event.view).on("mousemove.drag mouseup.drag",null),d(i.event.view,c),s(),q.mouse("end")}function A(){if(!!Ee.apply(this,arguments)){var fe=i.event.changedTouches,ne=ie.apply(this,arguments),We=fe.length,se,be;for(se=0;se=0;M--){var O=u[M];O==="."?rp(u,M):O===".."?(rp(u,M),T++):T&&(rp(u,M),T--)}if(!d)for(;T--;T)u.unshift("..");d&&u[0]!==""&&(!u[0]||!pf(u[0]))&&u.unshift("");var te=u.join("/");return v&&te.substr(-1)!=="/"&&(te+="/"),te}var v1=fb;var cb=!0,ip="Invariant failed";function ui(e,n){if(!e){if(cb)throw new Error(ip);var i=typeof n=="function"?n():n,u=i?"".concat(ip,": ").concat(i):ip;throw new Error(u)}}function pl(e){return e.charAt(0)==="/"?e:"/"+e}function g1(e){return e.charAt(0)==="/"?e.substr(1):e}function hb(e,n){return e.toLowerCase().indexOf(n.toLowerCase())===0&&"/?#".indexOf(e.charAt(n.length))!==-1}function m1(e,n){return hb(e,n)?e.substr(n.length):e}function y1(e){return e.charAt(e.length-1)==="/"?e.slice(0,-1):e}function db(e){var n=e||"/",i="",u="",s=n.indexOf("#");s!==-1&&(u=n.substr(s),n=n.substr(0,s));var h=n.indexOf("?");return h!==-1&&(i=n.substr(h),n=n.substr(0,h)),{pathname:n,search:i==="?"?"":i,hash:u==="#"?"":u}}function fr(e){var n=e.pathname,i=e.search,u=e.hash,s=n||"/";return i&&i!=="?"&&(s+=i.charAt(0)==="?"?i:"?"+i),u&&u!=="#"&&(s+=u.charAt(0)==="#"?u:"#"+u),s}function _r(e,n,i,u){var s;typeof e=="string"?(s=db(e),s.state=n):(s=Fn({},e),s.pathname===void 0&&(s.pathname=""),s.search?s.search.charAt(0)!=="?"&&(s.search="?"+s.search):s.search="",s.hash?s.hash.charAt(0)!=="#"&&(s.hash="#"+s.hash):s.hash="",n!==void 0&&s.state===void 0&&(s.state=n));try{s.pathname=decodeURI(s.pathname)}catch(h){throw h instanceof URIError?new URIError('Pathname "'+s.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):h}return i&&(s.key=i),u?s.pathname?s.pathname.charAt(0)!=="/"&&(s.pathname=v1(s.pathname,u.pathname)):s.pathname=u.pathname:s.pathname||(s.pathname="/"),s}function op(){var e=null;function n(d){return e=d,function(){e===d&&(e=null)}}function i(d,v,x,T){if(e!=null){var M=typeof e=="function"?e(d,v):e;typeof M=="string"?typeof x=="function"?x(M,T):T(!0):T(M!==!1)}else T(!0)}var u=[];function s(d){var v=!0;function x(){v&&d.apply(void 0,arguments)}return u.push(x),function(){v=!1,u=u.filter(function(T){return T!==x})}}function h(){for(var d=arguments.length,v=new Array(d),x=0;xA?W.splice(A,W.length-A,S):W.push(S),M({action:E,location:S,index:A,entries:W})}})}function I(g,k){var E="REPLACE",S=_r(g,k,O(),c.location);T.confirmTransitionTo(S,E,i,function(X){!X||(c.entries[c.index]=S,M({action:E,location:S}))})}function D(g){var k=E1(c.index+g,0,c.entries.length-1),E="POP",S=c.entries[k];T.confirmTransitionTo(S,E,i,function(X){X?M({action:E,location:S,index:k}):M()})}function q(){D(-1)}function oe(){D(1)}function ge(g){var k=c.index+g;return k>=0&&k=0)&&(i[s]=e[s]);return i}var V1=$t(q1()),mp=1073741823,$1=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:{};function Wb(){var e="__global_unique_id__";return $1[e]=($1[e]||0)+1}function Ub(e,n){return e===n?e!==0||1/e==1/n:e!==e&&n!==n}function Bb(e){var n=[];return{on:function(u){n.push(u)},off:function(u){n=n.filter(function(s){return s!==u})},get:function(){return e},set:function(u,s){e=u,n.forEach(function(h){return h(e,s)})}}}function jb(e){return Array.isArray(e)?e[0]:e}function Yb(e,n){var i,u,s="__create-react-context-"+Wb()+"__",h=function(v){Wr(x,v);function x(){for(var M,O=arguments.length,te=new Array(O),ve=0;ve{fetch("https://github.com/api/readme").then(u=>u.text()).then(u=>{n((0,nw.default)(u.replace(/\[\/\/\](.*?)\(__repo__\)[\S\s]*/,"")))}).catch(console.error)},[]),(0,zi.useEffect)(()=>{[...i.current.querySelectorAll("a")].forEach(u=>u.setAttribute("target","_blank"))},[e]),zi.default.createElement("div",{ref:i,className:"document",dangerouslySetInnerHTML:{__html:e}})}var rw=iC;var bt=$t(bn());var yl=$t(bn());function Xa({checked:e,onChange:n}){return yl.default.createElement("div",{className:"checkbox",onClick:n},yl.default.createElement("svg",{width:9,height:9,viewBox:"0 0 80 80"},e&&yl.default.createElement("path",{d:"M14 30L0 44 37 76 80 11 65 0 34 50z"})),yl.default.createElement("input",{hidden:!0,"aria-hidden":"false",type:"checkbox",checked:e,onChange:n}))}var Ef=$t(bn());function oC(){return Ef.default.createElement("span",{className:"lock",title:"locked"},Ef.default.createElement("svg",{width:"10",height:"10",viewBox:"0 0 20 20"},Ef.default.createElement("path",{fill:"#07A",d:"m3,9h1V6a5,5 0 0,1 12,0V9h1v11H3M14,9V6a4,4 0 1,0-8,0v3"})))}var Mp=oC;var iw=$t(bn());function aC(){return iw.default.createElement("span",{className:"star",title:"starred"},"\u2605")}var Ep=aC;var $r=$t(bn()),pw=$t(wl()),K2=$t(dw());function Lp({value:e="",onChange:n,onSave:i,children:u,readOnly:s}){let h=(0,$r.useRef)(),d=(0,$r.useRef)(),v=(0,$r.useRef)();return(0,$r.useEffect)(()=>{let x=(0,pw.default)(h.current,{value:e,mode:"jsx",theme:"mdn-like",autofocus:!0,lineWrapping:!0,inputStyle:"contenteditable",lineNumbers:!0,gutters:["CodeMirror-linenumbers","breakpoints"]});d.current=e,v.current=x},[]),(0,$r.useEffect)(()=>{function x(T,[{origin:M}]){let O=v.current.getValue();M!=="setValue"&&n(O),d.current=O}return v.current.on("changes",x),()=>{v.current.off("changes",x)}},[n]),(0,$r.useEffect)(()=>{v.current.setOption("extraKeys",{"Ctrl-S":i})},[i]),(0,$r.useEffect)(()=>{v.current.setOption("readOnly",s)},[s]),(0,$r.useEffect)(()=>{d.current!==e&&v.current.setValue(e)},[e]),$r.default.createElement("div",{ref:h,className:"cmd-editor"},u)}var Ka=$t(bn());var Zo=$t(bn());function uC({commands:e}){let n=(0,Zo.useRef)(),[{height:i},u]=(0,Zo.useState)({}),[s,h]=(0,Zo.useState)(0),{length:d}=e,v=20,x=d*v;return(0,Zo.useEffect)(()=>{let T=()=>u(n.current.getBoundingClientRect());T(),window.addEventListener("resize",T);let M=O=>h(O.target.scrollTop);return n.current.addEventListener("scroll",M),()=>{window.removeEventListener("resize",T),n.current.removeEventListener("scroll",M)}},[]),Ka.default.createElement("div",{className:"cmd-list",ref:n},Ka.default.createElement("div",{style:{height:x}},e.map((T,M)=>{let O=M*v,te=O+v>s,ve=O-v{let s=localStorage.getItem(e);return s?JSON.parse(s):n});return(0,Nf.useEffect)(()=>{localStorage.setItem(e,JSON.stringify(i))},[i]),[i,u]}function Jo(){let[e,n]=gw("password",""),[i,u]=gw("admin",!1);return{fetchAPI:(h,d={})=>new Promise((v,x)=>{let T={...d,headers:{"X-Authorization":`Basic ${btoa(`web:${e}`)}`,"Content-Type":"application/json"},body:d.body&&JSON.stringify(d.body)};fetch(`/api/${h}`,T).then(M=>M.json()).then(v).catch(x)}),password:e,setPassword:n,admin:i,setAdmin:u}}function Dp(){let{fetchAPI:e,password:n,setPassword:i,admin:u,setAdmin:s}=Jo();return(0,go.useEffect)(()=>{e("is-admin").then(s).catch(console.error)},[n]),go.default.createElement("div",{className:"cmd-default"},go.default.createElement("input",{type:"password",placeholder:"admin pwd",value:n,className:u?"admin":"error",onChange:h=>i(h.target.value)}),go.default.createElement("p",null,"an interface for manipulating commands"),go.default.createElement("p",null,"alternatively, try the"," ",go.default.createElement("a",{href:"https://www.github.com/kirjavascript/nibblrjr.vim",target:"_blank"},"vim plugin")))}var _w=$t(yw()),kw=$t(xw());function Op({command:e}){return bt.default.createElement(bt.default.Fragment,null,e.name," ",e.starred&&bt.default.createElement(Ep,null)," ",e.locked&&bt.default.createElement(Mp,null),e.event&&bt.default.createElement("span",{className:"event"}," (event)"))}function sC({history:e}){let[n,i]=(0,bt.useState)([]),[u,s]=(0,bt.useState)(""),[h,d]=(0,bt.useState)(!1),[v,x]=(0,bt.useState)(!1),[T,M]=(0,bt.useState)(""),{fetchAPI:O,admin:te}=Jo(),ve=(0,bt.useCallback)(()=>{O("command/list").then(i).catch(console.error)},[]);(0,bt.useEffect)(ve,[]);let Ee;try{Ee=new RegExp(u)}catch{}let ie=n.filter(g=>(g.starred&&h||!h)&&(g.locked&&v||!v)),I=ie.filter(g=>!u||g.name.match(Ee)),D=n.some(g=>g.name===T),{root:q}=(0,kw.parseCommand)({text:T}),oe=n.find(g=>g.name===q),ge=oe&&oe.locked,de=!_w.default.includes(T)&&!D&&(!ge||te),c=(0,bt.useCallback)(g=>{if(g.keyCode===13&&de){let k=encodeURIComponent(T);O(`command/new/${k}`,{method:"POST"}).then(()=>{M(""),ve(),e.push(`/cmds/${k}`)}).catch(console.error)}},[T]);return bt.default.createElement(bt.default.Fragment,null,bt.default.createElement("div",{className:"cmd-menu"},bt.default.createElement("div",null,bt.default.createElement("input",{type:"text",placeholder:"new command",className:!de&&T?"invalid":"",value:T,onChange:g=>M(g.target.value.replace(/\s+/g,"")),onKeyDown:c}),bt.default.createElement("input",{type:"text",placeholder:"search commands (regex)",value:u,onChange:g=>{s(g.target.value)}}),bt.default.createElement("div",{className:"cmd-filter"},bt.default.createElement("span",null," ",I.length," / ",ie.length," "),bt.default.createElement("div",{className:"cmd-toggle"},bt.default.createElement(Ep,null),bt.default.createElement(Xa,{checked:h,onChange:()=>d(!h)}),bt.default.createElement(Mp,null),bt.default.createElement(Xa,{checked:v,onChange:()=>x(!v)})))),bt.default.createElement(vw,{commands:I})),bt.default.createElement(Fi,{exact:!0,path:"/cmds/:name",render:g=>bt.default.createElement(fC,{updateList:ve,...g})}),bt.default.createElement(Fi,{exact:!0,path:"/cmds",component:Dp}))}var Tw="/* loading ... */";function fC({updateList:e,history:n,match:{params:i}}){let{fetchAPI:u,admin:s}=Jo(),[h,d]=(0,bt.useState)({command:Tw}),[v,x]=(0,bt.useState)(Tw),[T,M]=(0,bt.useState)(!1),[O,te]=(0,bt.useState)("delete");function ve(){u("command/get/"+i.name).then(g=>{d(g),x(g.command)}).catch(console.error),te("delete")}(0,bt.useEffect)(ve,[i.name]);let Ee=g=>{let k={method:"POST",body:{[g]:!h[g]}};u("command/set-config/"+i.name,k).then(E=>{E.error||(ve(),e())}).catch(console.error)},ie=()=>{M(!0);let g={method:"POST",body:{command:h.command}};u("command/set/"+i.name,g).then(k=>{k.error?alert(k.error):x(h.command),M(!1)}).catch(console.error)},I=()=>{O!=="confirm?"?te("confirm?"):u("command/delete/"+i.name,{method:"POST"}).then(g=>{g.error?te(g.error):(e(),n.push("/cmds"))}).catch(console.error)},D=h.error?`/* error: ${h.error} */`:h.command,{locked:q,starred:oe,event:ge}=h,Ue=T?"saving":h.command===v?"saved":"save",de=s,c=h.locked&&!de;return bt.default.createElement(Lp,{value:D,readOnly:c,onSave:ie,onChange:g=>{d({...h,command:g})}},bt.default.createElement("div",{className:"cmd-options"},bt.default.createElement("span",{className:"cmd-name"},bt.default.createElement(Op,{command:h})),!!h.name&&bt.default.createElement("div",null,!c&&bt.default.createElement(bt.default.Fragment,null,bt.default.createElement("button",{type:"button",onClick:ie},Ue),de&&bt.default.createElement(bt.default.Fragment,null,bt.default.createElement("button",{type:"button",onClick:()=>{Ee("locked")}},q?"unlock":"lock"),bt.default.createElement("button",{type:"button",onClick:()=>{Ee("starred")}},oe?"unstar":"star"),bt.default.createElement("button",{type:"button",onClick:()=>{Ee("event")}},ge?"unevent":"as event")),bt.default.createElement("button",{type:"button",onClick:I},O)))))}var Sw=sC;var en=$t(bn());var kr=$t(bn());var Qa=$t(bn());function xl({items:e,...n}){return Qa.default.createElement("div",{className:"select"},Qa.default.createElement("select",{...n},e.map(({label:i,value:u})=>Qa.default.createElement("option",{value:u,key:u},i))),Qa.default.createElement("svg",{className:"arrow",width:"12",height:"12",viewBox:"0 0 100 50"},Qa.default.createElement("path",{d:"M0,0H100L50,50z"})))}var Wp=$t(hx()),wx=$t(yx());function PM({onMonth:e,onChange:n,base:i,history:u,location:s}){let h=(0,kr.useMemo)(()=>s.pathname.split("/"),[]),[d,v]=(0,kr.useState)(h[2]||""),[x,T]=(0,kr.useState)(decodeURIComponent(h[3]||"")),[M,O]=(0,kr.useState)(h[4]||"");(0,kr.useEffect)(()=>{u.replace(["/stats",d||x||M?"/":"",d,x||M?"/":"",encodeURIComponent(x),M?"/":"",M].join("")),n({server:d,channel:x,month:M})},[d,x,M]),(0,kr.useEffect)(()=>{e({server:d,channel:x,month:M})},[M]);let te=i.servers.map(({server:ie})=>({label:ie,value:ie})),ve=i.servers.reduce((ie,I)=>((d===""||I.server===d)&&ie.push(...I.channels.map(D=>({label:D,value:D}))),ie),[]).filter((ie,I,D)=>D.findIndex(q=>q.value==ie.value)===I),Ee=Array.from({length:12},(ie,I)=>{let D=(0,wx.default)(new Date,I+1);return{label:(0,Wp.default)(D,"MMMM YYYY").toLowerCase(),value:(0,Wp.default)(D,"YYYY-MM")}});return(0,kr.useEffect)(()=>{(d||x||M)&&s.pathname==="/stats"&&(v(""),T(""),O(""))},[s.pathname]),kr.default.createElement("div",{className:"stats-filter"},kr.default.createElement(xl,{value:d,items:[{label:"servers",value:""},...te],onChange:ie=>{v(ie.target.value),ie.target.value&&T("")}}),kr.default.createElement(xl,{value:x,items:[{label:"channels",value:""},...ve],onChange:ie=>T(ie.target.value)}),kr.default.createElement(xl,{value:M,items:[{label:"this month",value:""},...Ee],onChange:ie=>O(ie.target.value)}))}var xx=PM;var mo=$t(bn()),_l=Object.assign({},ea(),jp(),Yp(),Gp());function Vp({x:e,y:n,width:i,height:u,radius:s=3}){return s>u&&(s=u),i0&&r.prevInput=="\u200B"?zn(a,eg)(a):$e++<10?o.detectingSelectAll=setTimeout(Ze,500):(o.selForContextMenu=null,o.input.reset())};o.detectingSelectAll=setTimeout(Ze,200)}}if(d&&p>=9&&be(),c){tn(t);var ze=function(){pe(window,"mouseup",ze),setTimeout(ke,20)};M(window,"mouseup",ze)}else setTimeout(ke,50)},bn.prototype.readOnlyChanged=function(t){t||this.reset(),this.textarea.disabled=t=="nocursor",this.textarea.readOnly=!!t},bn.prototype.setUneditable=function(){},bn.prototype.needsContentAttribute=!1;function Wk(t,r){if(r=r?he(r):{},r.value=t.value,!r.tabindex&&t.tabIndex&&(r.tabindex=t.tabIndex),!r.placeholder&&t.placeholder&&(r.placeholder=t.placeholder),r.autofocus==null){var a=_e();r.autofocus=a==t||t.getAttribute("autofocus")!=null&&a==document.body}function o(){t.value=y.getValue()}var l;if(t.form&&(M(t.form,"submit",o),!r.leaveSubmitMethodAlone)){var f=t.form;l=f.submit;try{var v=f.submit=function(){o(),f.submit=l,f.submit(),f.submit=v}}catch{}}r.finishInit=function(_){_.save=o,_.getTextArea=function(){return t},_.toTextArea=function(){_.toTextArea=isNaN,o(),t.parentNode.removeChild(_.getWrapperElement()),t.style.display="",t.form&&(pe(t.form,"submit",o),!r.leaveSubmitMethodAlone&&typeof t.form.submit=="function"&&(t.form.submit=l))}},t.style.display="none";var y=vn(function(_){return t.parentNode.insertBefore(_,t.nextSibling)},r);return y}function Uk(t){t.off=pe,t.on=M,t.wheelEventPixels=V_,t.Doc=hr,t.splitLines=O,t.countColumn=ye,t.findColumn=Re,t.isWordChar=Lt,t.Pass=We,t.signal=Be,t.Line=fi,t.changeEnd=Yi,t.scrollbarModel=Pv,t.Pos=W,t.cmpPos=ie,t.modes=De,t.mimeModes=Ge,t.resolveMode=ut,t.getMode=Pt,t.modeExtensions=Et,t.extendMode=It,t.copyState=fn,t.startState=Sn,t.innerMode=_n,t.commands=xu,t.keyMap=Ci,t.keyName=gg,t.isModifierKey=pg,t.lookupKey=da,t.normalizeKeyMap=gk,t.StringStream=Wt,t.SharedTextMarker=mu,t.TextMarker=Gi,t.LineWidget=gu,t.e_preventDefault=St,t.e_stopPropagation=At,t.e_stop=tn,t.addClass=Ne,t.contains=Z,t.rmClass=k,t.keyNames=$i}Ok(vn),Rk(vn);var Bk="iter insert remove copy getEditor constructor".split(" ");for(var Gl in hr.prototype)hr.prototype.hasOwnProperty(Gl)&&ge(Bk,Gl)<0&&(vn.prototype[Gl]=function(t){return function(){return t.apply(this.doc,arguments)}}(hr.prototype[Gl]));return mt(hr),vn.inputStyles={textarea:bn,contenteditable:rn},vn.defineMode=function(t){!vn.defaults.mode&&t!="null"&&(vn.defaults.mode=t),Ve.apply(this,arguments)},vn.defineMIME=Qe,vn.defineMode("null",function(){return{token:function(t){return t.skipToEnd()}}}),vn.defineMIME("text/plain","null"),vn.defineExtension=function(t,r){vn.prototype[t]=r},vn.defineDocExtension=function(t,r){hr.prototype[t]=r},vn.fromTextArea=Wk,Uk(vn),vn.version="5.59.2",vn})});var lw=yt((aw,uw)=>{(function(e){typeof aw=="object"&&typeof uw=="object"?e(wl()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)})(function(e){"use strict";var n={autoSelfClosers:{area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0,menuitem:!0},implicitlyClosed:{dd:!0,li:!0,optgroup:!0,option:!0,p:!0,rp:!0,rt:!0,tbody:!0,td:!0,tfoot:!0,th:!0,tr:!0},contextGrabbers:{dd:{dd:!0,dt:!0},dt:{dd:!0,dt:!0},li:{li:!0},option:{option:!0,optgroup:!0},optgroup:{optgroup:!0},p:{address:!0,article:!0,aside:!0,blockquote:!0,dir:!0,div:!0,dl:!0,fieldset:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,menu:!0,nav:!0,ol:!0,p:!0,pre:!0,section:!0,table:!0,ul:!0},rp:{rp:!0,rt:!0},rt:{rp:!0,rt:!0},tbody:{tbody:!0,tfoot:!0},td:{td:!0,th:!0},tfoot:{tbody:!0},th:{td:!0,th:!0},thead:{tbody:!0,tfoot:!0},tr:{tr:!0}},doNotIndent:{pre:!0},allowUnquoted:!0,allowMissing:!0,caseFold:!0},i={autoSelfClosers:{},implicitlyClosed:{},contextGrabbers:{},doNotIndent:{},allowUnquoted:!1,allowMissing:!1,allowMissingTagName:!1,caseFold:!1};e.defineMode("xml",function(u,s){var h=u.indentUnit,d={},p=s.htmlMode?n:i;for(var b in p)d[b]=p[b];for(var b in s)d[b]=s[b];var T,E;function I(w,F){function L(Ne){return F.tokenize=Ne,Ne(w,F)}var Z=w.next();if(Z=="<")return w.eat("!")?w.eat("[")?w.match("CDATA[")?L(Me("atom","]]>")):null:w.match("--")?L(Me("comment","-->")):w.match("DOCTYPE",!0,!0)?(w.eatWhile(/[\w\._\-]/),L(ne(1))):null:w.eat("?")?(w.eatWhile(/[\w\._\-]/),F.tokenize=Me("meta","?>"),"meta"):(T=w.eat("/")?"closeTag":"openTag",F.tokenize=oe,"tag bracket");if(Z=="&"){var _e;return w.eat("#")?w.eat("x")?_e=w.eatWhile(/[a-fA-F\d]/)&&w.eat(";"):_e=w.eatWhile(/[\d]/)&&w.eat(";"):_e=w.eatWhile(/[\w\.\-:]/)&&w.eat(";"),_e?"atom":"error"}else return w.eatWhile(/[^&<]/),null}I.isInText=!0;function oe(w,F){var L=w.next();if(L==">"||L=="/"&&w.eat(">"))return F.tokenize=I,T=L==">"?"endTag":"selfcloseTag","tag bracket";if(L=="=")return T="equals",null;if(L=="<"){F.tokenize=I,F.state=se,F.tagName=F.tagStart=null;var Z=F.tokenize(w,F);return Z?Z+" tag error":"tag error"}else return/[\'\"]/.test(L)?(F.tokenize=ve(L),F.stringStartCol=w.column(),F.tokenize(w,F)):(w.match(/^[^\s\u00a0=<>\"\']*[^\s\u00a0=<>\"\'\/]/),"word")}function ve(w){var F=function(L,Z){for(;!L.eol();)if(L.next()==w){Z.tokenize=oe;break}return"string"};return F.isInAttribute=!0,F}function Me(w,F){return function(L,Z){for(;!L.eol();){if(L.match(F)){Z.tokenize=I;break}L.next()}return w}}function ne(w){return function(F,L){for(var Z;(Z=F.next())!=null;){if(Z=="<")return L.tokenize=ne(w+1),L.tokenize(F,L);if(Z==">")if(w==1){L.tokenize=I;break}else return L.tokenize=ne(w-1),L.tokenize(F,L)}return"meta"}}function H(w,F,L){this.prev=w.context,this.tagName=F||"",this.indent=w.indented,this.startOfLine=L,(d.doNotIndent.hasOwnProperty(F)||w.context&&w.context.noIndent)&&(this.noIndent=!0)}function R(w){w.context&&(w.context=w.context.prev)}function j(w,F){for(var L;;){if(!w.context||(L=w.context.tagName,!d.contextGrabbers.hasOwnProperty(L)||!d.contextGrabbers[L].hasOwnProperty(F)))return;R(w)}}function se(w,F,L){return w=="openTag"?(L.tagStart=F.column(),we):w=="closeTag"?Oe:se}function we(w,F,L){return w=="word"?(L.tagName=F.current(),E="tag",g):d.allowMissingTagName&&w=="endTag"?(E="tag bracket",g(w,F,L)):(E="error",we)}function Oe(w,F,L){if(w=="word"){var Z=F.current();return L.context&&L.context.tagName!=Z&&d.implicitlyClosed.hasOwnProperty(L.context.tagName)&&R(L),L.context&&L.context.tagName==Z||d.matchClosing===!1?(E="tag",Y):(E="tag error",c)}else return d.allowMissingTagName&&w=="endTag"?(E="tag bracket",Y(w,F,L)):(E="error",c)}function Y(w,F,L){return w!="endTag"?(E="error",Y):(R(L),se)}function c(w,F,L){return E="error",Y(w,F,L)}function g(w,F,L){if(w=="word")return E="attribute",k;if(w=="endTag"||w=="selfcloseTag"){var Z=L.tagName,_e=L.tagStart;return L.tagName=L.tagStart=null,w=="selfcloseTag"||d.autoSelfClosers.hasOwnProperty(Z)?j(L,Z):(j(L,Z),L.context=new H(L,Z,_e==L.indented)),se}return E="error",g}function k(w,F,L){return w=="equals"?S:(d.allowMissing||(E="error"),g(w,F,L))}function S(w,F,L){return w=="string"?N:w=="word"&&d.allowUnquoted?(E="string",g):(E="error",g(w,F,L))}function N(w,F,L){return w=="string"?N:g(w,F,L)}return{startState:function(w){var F={tokenize:I,state:se,indented:w||0,tagName:null,tagStart:null,context:null};return w!=null&&(F.baseIndent=w),F},token:function(w,F){if(!F.tagName&&w.sol()&&(F.indented=w.indentation()),w.eatSpace())return null;T=null;var L=F.tokenize(w,F);return(L||T)&&L!="comment"&&(E=null,F.state=F.state(T||L,w,F),E&&(L=E=="error"?L+" error":E)),L},indent:function(w,F,L){var Z=w.context;if(w.tokenize.isInAttribute)return w.tagStart==w.indented?w.stringStartCol+1:w.indented+h;if(Z&&Z.noIndent)return e.Pass;if(w.tokenize!=oe&&w.tokenize!=I)return L?L.match(/^(\s*)/)[0].length:0;if(w.tagName)return d.multilineTagIndentPastTag!==!1?w.tagStart+w.tagName.length+2:w.tagStart+h*(d.multilineTagIndentFactor||1);if(d.alignCDATA&&/$/,blockCommentStart:"",configuration:d.htmlMode?"html":"xml",helperType:d.htmlMode?"html":"xml",skipAttribute:function(w){w.state==S&&(w.state=g)},xmlCurrentTag:function(w){return w.tagName?{name:w.tagName,close:w.type=="closeTag"}:null},xmlCurrentContext:function(w){for(var F=[],L=w.context;L;L=L.prev)F.push(L.tagName);return F.reverse()}}}),e.defineMIME("text/xml","xml"),e.defineMIME("application/xml","xml"),e.mimeModes.hasOwnProperty("text/html")||e.defineMIME("text/html",{name:"xml",htmlMode:!0})})});var cw=yt((sw,fw)=>{(function(e){typeof sw=="object"&&typeof fw=="object"?e(wl()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)})(function(e){"use strict";e.defineMode("javascript",function(n,i){var u=n.indentUnit,s=i.statementIndent,h=i.jsonld,d=i.json||h,p=i.typescript,b=i.wordCharacters||/[\w$\xa1-\uffff]/,T=function(){function m(ct){return{type:ct,style:"keyword"}}var D=m("keyword a"),W=m("keyword b"),ie=m("keyword c"),Ye=m("keyword d"),et=m("operator"),Xe={type:"atom",style:"atom"};return{if:m("if"),while:D,with:D,else:W,do:W,try:W,finally:W,return:Ye,break:Ye,continue:Ye,new:m("new"),delete:ie,void:ie,throw:ie,debugger:m("debugger"),var:m("var"),const:m("var"),let:m("var"),function:m("function"),catch:m("catch"),for:m("for"),switch:m("switch"),case:m("case"),default:m("default"),in:et,typeof:et,instanceof:et,true:Xe,false:Xe,null:Xe,undefined:Xe,NaN:Xe,Infinity:Xe,this:m("this"),class:m("class"),super:m("atom"),yield:ie,export:m("export"),import:m("import"),extends:ie,await:ie}}(),E=/[+\-*&%=<>!?|~^@]/,I=/^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/;function oe(m){for(var D=!1,W,ie=!1;(W=m.next())!=null;){if(!D){if(W=="/"&&!ie)return;W=="["?ie=!0:ie&&W=="]"&&(ie=!1)}D=!D&&W=="\\"}}var ve,Me;function ne(m,D,W){return ve=m,Me=W,D}function H(m,D){var W=m.next();if(W=='"'||W=="'")return D.tokenize=R(W),D.tokenize(m,D);if(W=="."&&m.match(/^\d[\d_]*(?:[eE][+\-]?[\d_]+)?/))return ne("number","number");if(W=="."&&m.match(".."))return ne("spread","meta");if(/[\[\]{}\(\),;\:\.]/.test(W))return ne(W);if(W=="="&&m.eat(">"))return ne("=>","operator");if(W=="0"&&m.match(/^(?:x[\dA-Fa-f_]+|o[0-7_]+|b[01_]+)n?/))return ne("number","number");if(/\d/.test(W))return m.match(/^[\d_]*(?:n|(?:\.[\d_]*)?(?:[eE][+\-]?[\d_]+)?)?/),ne("number","number");if(W=="/")return m.eat("*")?(D.tokenize=j,j(m,D)):m.eat("/")?(m.skipToEnd(),ne("comment","comment")):q(m,D,1)?(oe(m),m.match(/^\b(([gimyus])(?![gimyus]*\2))+\b/),ne("regexp","string-2")):(m.eat("="),ne("operator","operator",m.current()));if(W=="`")return D.tokenize=se,se(m,D);if(W=="#"&&m.peek()=="!")return m.skipToEnd(),ne("meta","meta");if(W=="#"&&m.eatWhile(b))return ne("variable","property");if(W=="<"&&m.match("!--")||W=="-"&&m.match("->")&&!/\S/.test(m.string.slice(0,m.start)))return m.skipToEnd(),ne("comment","comment");if(E.test(W))return(W!=">"||!D.lexical||D.lexical.type!=">")&&(m.eat("=")?(W=="!"||W=="=")&&m.eat("="):/[<>*+\-|&?]/.test(W)&&(m.eat(W),W==">"&&m.eat(W))),W=="?"&&m.eat(".")?ne("."):ne("operator","operator",m.current());if(b.test(W)){m.eatWhile(b);var ie=m.current();if(D.lastType!="."){if(T.propertyIsEnumerable(ie)){var Ye=T[ie];return ne(Ye.type,Ye.style,ie)}if(ie=="async"&&m.match(/^(\s|\/\*([^*]|\*(?!\/))*?\*\/)*[\[\(\w]/,!1))return ne("async","keyword",ie)}return ne("variable","variable",ie)}}function R(m){return function(D,W){var ie=!1,Ye;if(h&&D.peek()=="@"&&D.match(I))return W.tokenize=H,ne("jsonld-keyword","meta");for(;(Ye=D.next())!=null&&!(Ye==m&&!ie);)ie=!ie&&Ye=="\\";return ie||(W.tokenize=H),ne("string","string")}}function j(m,D){for(var W=!1,ie;ie=m.next();){if(ie=="/"&&W){D.tokenize=H;break}W=ie=="*"}return ne("comment","comment")}function se(m,D){for(var W=!1,ie;(ie=m.next())!=null;){if(!W&&(ie=="`"||ie=="$"&&m.eat("{"))){D.tokenize=H;break}W=!W&&ie=="\\"}return ne("quasi","string-2",m.current())}var we="([{}])";function Oe(m,D){D.fatArrowAt&&(D.fatArrowAt=null);var W=m.string.indexOf("=>",m.start);if(!(W<0)){if(p){var ie=/:\s*(?:\w+(?:<[^>]*>|\[\])?|\{[^}]*\})\s*$/.exec(m.string.slice(m.start,W));ie&&(W=ie.index)}for(var Ye=0,et=!1,Xe=W-1;Xe>=0;--Xe){var ct=m.string.charAt(Xe),wt=we.indexOf(ct);if(wt>=0&&wt<3){if(!Ye){++Xe;break}if(--Ye==0){ct=="("&&(et=!0);break}}else if(wt>=3&&wt<6)++Ye;else if(b.test(ct))et=!0;else if(/["'\/`]/.test(ct))for(;;--Xe){if(Xe==0)return;var lt=m.string.charAt(Xe-1);if(lt==ct&&m.string.charAt(Xe-2)!="\\"){Xe--;break}}else if(et&&!Ye){++Xe;break}}et&&!Ye&&(D.fatArrowAt=Xe)}}var Y={atom:!0,number:!0,variable:!0,string:!0,regexp:!0,this:!0,"jsonld-keyword":!0};function c(m,D,W,ie,Ye,et){this.indented=m,this.column=D,this.type=W,this.prev=Ye,this.info=et,ie!=null&&(this.align=ie)}function g(m,D){for(var W=m.localVars;W;W=W.next)if(W.name==D)return!0;for(var ie=m.context;ie;ie=ie.prev)for(var W=ie.vars;W;W=W.next)if(W.name==D)return!0}function k(m,D,W,ie,Ye){var et=m.cc;for(S.state=m,S.stream=Ye,S.marked=null,S.cc=et,S.style=D,m.lexical.hasOwnProperty("align")||(m.lexical.align=!0);;){var Xe=et.length?et.pop():d?J:We;if(Xe(W,ie)){for(;et.length&&et[et.length-1].lex;)et.pop()();return S.marked?S.marked:W=="variable"&&g(m,ie)?"variable-2":D}}}var S={state:null,column:null,marked:null,cc:null};function N(){for(var m=arguments.length-1;m>=0;m--)S.cc.push(arguments[m])}function w(){return N.apply(null,arguments),!0}function F(m,D){for(var W=D;W;W=W.next)if(W.name==m)return!0;return!1}function L(m){var D=S.state;if(S.marked="def",D.context){if(D.lexical.info=="var"&&D.context&&D.context.block){var W=Z(m,D.context);if(W!=null){D.context=W;return}}else if(!F(m,D.localVars)){D.localVars=new Te(m,D.localVars);return}}i.globalVars&&!F(m,D.globalVars)&&(D.globalVars=new Te(m,D.globalVars))}function Z(m,D){if(D)if(D.block){var W=Z(m,D.prev);return W?W==D.prev?D:new Ne(W,D.vars,!0):null}else return F(m,D.vars)?D:new Ne(D.prev,new Te(m,D.vars),!1);else return null}function _e(m){return m=="public"||m=="private"||m=="protected"||m=="abstract"||m=="readonly"}function Ne(m,D,W){this.prev=m,this.vars=D,this.block=W}function Te(m,D){this.name=m,this.next=D}var ue=new Te("this",new Te("arguments",null));function Ie(){S.state.context=new Ne(S.state.context,S.state.localVars,!1),S.state.localVars=ue}function he(){S.state.context=new Ne(S.state.context,S.state.localVars,!0),S.state.localVars=null}function ye(){S.state.localVars=S.state.context.vars,S.state.context=S.state.context.prev}ye.lex=!0;function de(m,D){var W=function(){var ie=S.state,Ye=ie.indented;if(ie.lexical.type=="stat")Ye=ie.lexical.indented;else for(var et=ie.lexical;et&&et.type==")"&&et.align;et=et.prev)Ye=et.indented;ie.lexical=new c(Ye,S.stream.column(),m,null,ie.lexical,D)};return W.lex=!0,W}function ge(){var m=S.state;m.lexical.prev&&(m.lexical.type==")"&&(m.indented=m.lexical.indented),m.lexical=m.lexical.prev)}ge.lex=!0;function He(m){function D(W){return W==m?w():m==";"||W=="}"||W==")"||W=="]"?N():w(D)}return D}function We(m,D){return m=="var"?w(de("vardef",D),tn,He(";"),ge):m=="keyword a"?w(de("form"),Re,We,ge):m=="keyword b"?w(de("form"),We,ge):m=="keyword d"?S.stream.match(/^\s*$/,!1)?w():w(de("stat"),re,He(";"),ge):m=="debugger"?w(He(";")):m=="{"?w(de("}"),he,Le,ge,ye):m==";"?w():m=="if"?(S.state.lexical.info=="else"&&S.state.cc[S.state.cc.length-1]==ge&&S.state.cc.pop()(),w(de("form"),Re,We,ge,$)):m=="function"?w(fe):m=="for"?w(de("form"),P,We,ge):m=="class"||p&&D=="interface"?(S.marked="keyword",w(de("form",m=="class"?m:D),Ve,ge)):m=="variable"?p&&D=="declare"?(S.marked="keyword",w(We)):p&&(D=="module"||D=="enum"||D=="type")&&S.stream.match(/^\s*\w/,!1)?(S.marked="keyword",D=="enum"?w(nn):D=="type"?w(Ae,He("operator"),pe,He(";")):w(de("form"),Yt,He("{"),de("}"),Le,ge,ge)):p&&D=="namespace"?(S.marked="keyword",w(de("form"),J,We,ge)):p&&D=="abstract"?(S.marked="keyword",w(We)):w(de("stat"),zt):m=="switch"?w(de("form"),Re,He("{"),de("}","switch"),he,Le,ge,ge,ye):m=="case"?w(J,He(":")):m=="default"?w(He(":")):m=="catch"?w(de("form"),Ie,it,We,ge,ye):m=="export"?w(de("stat"),Et,ge):m=="import"?w(de("stat"),fn,ge):m=="async"?w(We):D=="@"?w(J,We):N(de("stat"),J,He(";"),ge)}function it(m){if(m=="(")return w(De,He(")"))}function J(m,D){return Q(m,D,!1)}function Se(m,D){return Q(m,D,!0)}function Re(m){return m!="("?N():w(de(")"),re,He(")"),ge)}function Q(m,D,W){if(S.state.fatArrowAt==S.stream.start){var ie=W?Gt:jt;if(m=="(")return w(Ie,de(")"),A(De,")"),ge,He("=>"),ie,ye);if(m=="variable")return N(Ie,Yt,He("=>"),ie,ye)}var Ye=W?Pe:ce;return Y.hasOwnProperty(m)?w(Ye):m=="function"?w(fe,Ye):m=="class"||p&&D=="interface"?(S.marked="keyword",w(de("form"),Ge,ge)):m=="keyword c"||m=="async"?w(W?Se:J):m=="("?w(de(")"),re,He(")"),ge,Ye):m=="operator"||m=="spread"?w(W?Se:J):m=="["?w(de("]"),bt,ge,Ye):m=="{"?V(sn,"}",null,Ye):m=="quasi"?N(rt,Ye):m=="new"?w(Lt(W)):m=="import"?w(J):w()}function re(m){return m.match(/[;\}\)\],]/)?N():N(J)}function ce(m,D){return m==","?w(re):Pe(m,D,!1)}function Pe(m,D,W){var ie=W==!1?ce:Pe,Ye=W==!1?J:Se;if(m=="=>")return w(Ie,W?Gt:jt,ye);if(m=="operator")return/\+\+|--/.test(D)||p&&D=="!"?w(ie):p&&D=="<"&&S.stream.match(/^([^<>]|<[^<>]*>)*>\s*\(/,!1)?w(de(">"),A(pe,">"),ge,ie):D=="?"?w(J,He(":"),Ye):w(Ye);if(m=="quasi")return N(rt,ie);if(m!=";"){if(m=="(")return V(Se,")","call",ie);if(m==".")return w(Xt,ie);if(m=="[")return w(de("]"),re,He("]"),ge,ie);if(p&&D=="as")return S.marked="keyword",w(pe,ie);if(m=="regexp")return S.state.lastType=S.marked="operator",S.stream.backUp(S.stream.pos-S.stream.start-1),w(Ye)}}function rt(m,D){return m!="quasi"?N():D.slice(D.length-2)!="${"?w(rt):w(J,dt)}function dt(m){if(m=="}")return S.marked="string-2",S.state.tokenize=se,w(rt)}function jt(m){return Oe(S.stream,S.state),N(m=="{"?We:J)}function Gt(m){return Oe(S.stream,S.state),N(m=="{"?We:Se)}function Lt(m){return function(D){return D=="."?w(m?Bt:Mt):D=="variable"&&p?w(St,m?Pe:ce):N(m?Se:J)}}function Mt(m,D){if(D=="target")return S.marked="keyword",w(ce)}function Bt(m,D){if(D=="target")return S.marked="keyword",w(Pe)}function zt(m){return m==":"?w(ge,We):N(ce,He(";"),ge)}function Xt(m){if(m=="variable")return S.marked="property",w()}function sn(m,D){if(m=="async")return S.marked="property",w(sn);if(m=="variable"||S.style=="keyword"){if(S.marked="property",D=="get"||D=="set")return w(Kt);var W;return p&&S.state.fatArrowAt==S.stream.start&&(W=S.stream.match(/^\s*:\s*/,!1))&&(S.state.fatArrowAt=S.stream.pos+W[0].length),w(an)}else{if(m=="number"||m=="string")return S.marked=h?"property":S.style+" property",w(an);if(m=="jsonld-keyword")return w(an);if(p&&_e(D))return S.marked="keyword",w(sn);if(m=="[")return w(J,qe,He("]"),an);if(m=="spread")return w(Se,an);if(D=="*")return S.marked="keyword",w(sn);if(m==":")return N(an)}}function Kt(m){return m!="variable"?N(an):(S.marked="property",w(fe))}function an(m){if(m==":")return w(Se);if(m=="(")return N(fe)}function A(m,D,W){function ie(Ye,et){if(W?W.indexOf(Ye)>-1:Ye==","){var Xe=S.state.lexical;return Xe.info=="call"&&(Xe.pos=(Xe.pos||0)+1),w(function(ct,wt){return ct==D||wt==D?N():N(m)},ie)}return Ye==D||et==D?w():W&&W.indexOf(";")>-1?N(m):w(He(D))}return function(Ye,et){return Ye==D||et==D?w():N(m,ie)}}function V(m,D,W){for(var ie=3;ie"),pe)}function Be(m){if(m=="=>")return w(pe)}function Ke(m){return m.match(/[\}\)\]]/)?w():m==","||m==";"?w(Ke):N(st,Ke)}function st(m,D){if(m=="variable"||S.style=="keyword")return S.marked="property",w(st);if(D=="?"||m=="number"||m=="string")return w(st);if(m==":")return w(pe);if(m=="[")return w(He("variable"),Ue,He("]"),st);if(m=="(")return N(me,st);if(!m.match(/[;\}\)\],]/))return w()}function ht(m,D){return m=="variable"&&S.stream.match(/^\s*[?:]/,!1)||D=="?"?w(ht):m==":"?w(pe):m=="spread"?w(ht):N(pe)}function mt(m,D){if(D=="<")return w(de(">"),A(pe,">"),ge,mt);if(D=="|"||m=="."||D=="&")return w(pe);if(m=="[")return w(pe,He("]"),mt);if(D=="extends"||D=="implements")return S.marked="keyword",w(pe);if(D=="?")return w(pe,He(":"),pe)}function St(m,D){if(D=="<")return w(de(">"),A(pe,">"),ge,mt)}function At(){return N(pe,en)}function en(m,D){if(D=="=")return w(pe)}function tn(m,D){return D=="enum"?(S.marked="keyword",w(nn)):N(Yt,qe,Ee,z)}function Yt(m,D){if(p&&_e(D))return S.marked="keyword",w(Yt);if(m=="variable")return L(D),w();if(m=="spread")return w(Yt);if(m=="[")return V(X,"]");if(m=="{")return V(pn,"}")}function pn(m,D){return m=="variable"&&!S.stream.match(/^\s*:/,!1)?(L(D),w(Ee)):(m=="variable"&&(S.marked="property"),m=="spread"?w(Yt):m=="}"?N():m=="["?w(J,He("]"),He(":"),pn):w(He(":"),Yt,Ee))}function X(){return N(Yt,Ee)}function Ee(m,D){if(D=="=")return w(Se)}function z(m){if(m==",")return w(tn)}function $(m,D){if(m=="keyword b"&&D=="else")return w(de("form","else"),We,ge)}function P(m,D){if(D=="await")return w(P);if(m=="(")return w(de(")"),O,ge)}function O(m){return m=="var"?w(tn,G):m=="variable"?w(G):N(G)}function G(m,D){return m==")"?w():m==";"?w(G):D=="in"||D=="of"?(S.marked="keyword",w(J,G)):N(J,G)}function fe(m,D){if(D=="*")return S.marked="keyword",w(fe);if(m=="variable")return L(D),w(fe);if(m=="(")return w(Ie,de(")"),A(De,")"),ge,M,We,ye);if(p&&D=="<")return w(de(">"),A(At,">"),ge,fe)}function me(m,D){if(D=="*")return S.marked="keyword",w(me);if(m=="variable")return L(D),w(me);if(m=="(")return w(Ie,de(")"),A(De,")"),ge,M,ye);if(p&&D=="<")return w(de(">"),A(At,">"),ge,me)}function Ae(m,D){if(m=="keyword"||m=="variable")return S.marked="type",w(Ae);if(D=="<")return w(de(">"),A(At,">"),ge)}function De(m,D){return D=="@"&&w(J,De),m=="spread"?w(De):p&&_e(D)?(S.marked="keyword",w(De)):p&&m=="this"?w(qe,Ee):N(Yt,qe,Ee)}function Ge(m,D){return m=="variable"?Ve(m,D):Qe(m,D)}function Ve(m,D){if(m=="variable")return L(D),w(Qe)}function Qe(m,D){if(D=="<")return w(de(">"),A(At,">"),ge,Qe);if(D=="extends"||D=="implements"||p&&m==",")return D=="implements"&&(S.marked="keyword"),w(p?pe:J,Qe);if(m=="{")return w(de("}"),ut,ge)}function ut(m,D){if(m=="async"||m=="variable"&&(D=="static"||D=="get"||D=="set"||p&&_e(D))&&S.stream.match(/^\s+[\w$\xa1-\uffff]/,!1))return S.marked="keyword",w(ut);if(m=="variable"||S.style=="keyword")return S.marked="property",w(Pt,ut);if(m=="number"||m=="string")return w(Pt,ut);if(m=="[")return w(J,qe,He("]"),Pt,ut);if(D=="*")return S.marked="keyword",w(ut);if(p&&m=="(")return N(me,ut);if(m==";"||m==",")return w(ut);if(m=="}")return w();if(D=="@")return w(J,ut)}function Pt(m,D){if(D=="?")return w(Pt);if(m==":")return w(pe,Ee);if(D=="=")return w(Se);var W=S.state.lexical.prev,ie=W&&W.info=="interface";return N(ie?me:fe)}function Et(m,D){return D=="*"?(S.marked="keyword",w(ft,He(";"))):D=="default"?(S.marked="keyword",w(J,He(";"))):m=="{"?w(A(It,"}"),ft,He(";")):N(We)}function It(m,D){if(D=="as")return S.marked="keyword",w(He("variable"));if(m=="variable")return N(Se,It)}function fn(m){return m=="string"?w():m=="("?N(J):N(_n,Sn,ft)}function _n(m,D){return m=="{"?V(_n,"}"):(m=="variable"&&L(D),D=="*"&&(S.marked="keyword"),w(Wt))}function Sn(m){if(m==",")return w(_n,Sn)}function Wt(m,D){if(D=="as")return S.marked="keyword",w(_n)}function ft(m,D){if(D=="from")return S.marked="keyword",w(J)}function bt(m){return m=="]"?w():N(A(Se,"]"))}function nn(){return N(de("form"),Yt,He("{"),de("}"),A(Qt,"}"),ge,ge)}function Qt(){return N(Yt,Ee)}function Tt(m,D){return m.lastType=="operator"||m.lastType==","||E.test(D.charAt(0))||/[,.]/.test(D.charAt(0))}function q(m,D,W){return D.tokenize==H&&/^(?:operator|sof|keyword [bcd]|case|new|export|default|spread|[\[{}\(,;:]|=>)$/.test(D.lastType)||D.lastType=="quasi"&&/\{\s*$/.test(m.string.slice(0,m.pos-(W||0)))}return{startState:function(m){var D={tokenize:H,lastType:"sof",cc:[],lexical:new c((m||0)-u,0,"block",!1),localVars:i.localVars,context:i.localVars&&new Ne(null,null,!1),indented:m||0};return i.globalVars&&typeof i.globalVars=="object"&&(D.globalVars=i.globalVars),D},token:function(m,D){if(m.sol()&&(D.lexical.hasOwnProperty("align")||(D.lexical.align=!1),D.indented=m.indentation(),Oe(m,D)),D.tokenize!=j&&m.eatSpace())return null;var W=D.tokenize(m,D);return ve=="comment"?W:(D.lastType=ve=="operator"&&(Me=="++"||Me=="--")?"incdec":ve,k(D,W,ve,Me,m))},indent:function(m,D){if(m.tokenize==j||m.tokenize==se)return e.Pass;if(m.tokenize!=H)return 0;var W=D&&D.charAt(0),ie=m.lexical,Ye;if(!/^\s*else\b/.test(D))for(var et=m.cc.length-1;et>=0;--et){var Xe=m.cc[et];if(Xe==ge)ie=ie.prev;else if(Xe!=$)break}for(;(ie.type=="stat"||ie.type=="form")&&(W=="}"||(Ye=m.cc[m.cc.length-1])&&(Ye==ce||Ye==Pe)&&!/^[,\.=+\-*:?[\(]/.test(D));)ie=ie.prev;s&&ie.type==")"&&ie.prev.type=="stat"&&(ie=ie.prev);var ct=ie.type,wt=W==ct;return ct=="vardef"?ie.indented+(m.lastType=="operator"||m.lastType==","?ie.info.length+1:0):ct=="form"&&W=="{"?ie.indented:ct=="form"?ie.indented+u:ct=="stat"?ie.indented+(Tt(m,D)?s||u:0):ie.info=="switch"&&!wt&&i.doubleIndentSwitch!=!1?ie.indented+(/^(?:case|default)\b/.test(D)?u:2*u):ie.align?ie.column+(wt?0:1):ie.indented+(wt?0:u)},electricInput:/^\s*(?:case .*?:|default:|\{|\})$/,blockCommentStart:d?null:"/*",blockCommentEnd:d?null:"*/",blockCommentContinue:d?null:" * ",lineComment:d?null:"//",fold:"brace",closeBrackets:"()[]{}''\"\"``",helperType:d?"json":"javascript",jsonldMode:h,jsonMode:d,expressionAllowed:q,skipExpression:function(m){var D=m.cc[m.cc.length-1];(D==J||D==Se)&&m.cc.pop()}}}),e.registerHelper("wordChars","javascript",/[\w$]/),e.defineMIME("text/javascript","javascript"),e.defineMIME("text/ecmascript","javascript"),e.defineMIME("application/javascript","javascript"),e.defineMIME("application/x-javascript","javascript"),e.defineMIME("application/ecmascript","javascript"),e.defineMIME("application/json",{name:"javascript",json:!0}),e.defineMIME("application/x-json",{name:"javascript",json:!0}),e.defineMIME("application/manifest+json",{name:"javascript",json:!0}),e.defineMIME("application/ld+json",{name:"javascript",jsonld:!0}),e.defineMIME("text/typescript",{name:"javascript",typescript:!0}),e.defineMIME("application/typescript",{name:"javascript",typescript:!0})})});var pw=yt((hw,dw)=>{(function(e){typeof hw=="object"&&typeof dw=="object"?e(wl(),lw(),cw()):typeof define=="function"&&define.amd?define(["../../lib/codemirror","../xml/xml","../javascript/javascript"],e):e(CodeMirror)})(function(e){"use strict";function n(u,s,h,d){this.state=u,this.mode=s,this.depth=h,this.prev=d}function i(u){return new n(e.copyState(u.mode,u.state),u.mode,u.depth,u.prev&&i(u.prev))}e.defineMode("jsx",function(u,s){var h=e.getMode(u,{name:"xml",allowMissing:!0,multilineTagIndentPastTag:!1,allowMissingTagName:!0}),d=e.getMode(u,s&&s.base||"javascript");function p(I){var oe=I.tagName;I.tagName=null;var ve=h.indent(I,"","");return I.tagName=oe,ve}function b(I,oe){return oe.context.mode==h?T(I,oe,oe.context):E(I,oe,oe.context)}function T(I,oe,ve){if(ve.depth==2)return I.match(/^.*?\*\//)?ve.depth=1:I.skipToEnd(),"comment";if(I.peek()=="{"){h.skipAttribute(ve.state);var Me=p(ve.state),ne=ve.state.context;if(ne&&I.match(/^[^>]*>\s*$/,!1)){for(;ne.prev&&!ne.startOfLine;)ne=ne.prev;ne.startOfLine?Me-=u.indentUnit:ve.prev.state.lexical&&(Me=ve.prev.state.lexical.indented)}else ve.depth==1&&(Me+=u.indentUnit);return oe.context=new n(e.startState(d,Me),d,0,oe.context),null}if(ve.depth==1){if(I.peek()=="<")return h.skipAttribute(ve.state),oe.context=new n(e.startState(h,p(ve.state)),h,0,oe.context),null;if(I.match("//"))return I.skipToEnd(),"comment";if(I.match("/*"))return ve.depth=2,b(I,oe)}var H=h.token(I,ve.state),R=I.current(),j;return/\btag\b/.test(H)?/>$/.test(R)?ve.state.context?ve.depth=0:oe.context=oe.context.prev:/^-1&&I.backUp(R.length-j),H}function E(I,oe,ve){if(I.peek()=="<"&&d.expressionAllowed(I,ve.state))return d.skipExpression(ve.state),oe.context=new n(e.startState(h,d.indent(ve.state,"","")),h,0,oe.context),null;var Me=d.token(I,ve.state);if(!Me&&ve.depth!=null){var ne=I.current();ne=="{"?ve.depth++:ne=="}"&&--ve.depth==0&&(oe.context=oe.context.prev)}return Me}return{startState:function(){return{context:new n(e.startState(d),d)}},copyState:function(I){return{context:i(I.context)}},token:b,indent:function(I,oe,ve){return I.context.mode.indent(I.context.state,oe,ve)},innerMode:function(I){return I.context}}},"xml","javascript"),e.defineMIME("text/jsx","jsx"),e.defineMIME("text/typescript-jsx",{name:"jsx",base:{name:"javascript",typescript:!0}})})});var ww=yt((cE,yw)=>{yw.exports=[">",">>","#","%"]});var _w=yt((hE,xw)=>{function lC({trigger:e="",text:n}){let i=n.slice(e.length).match(/(^\S*\((.*?)\)|^\S*)/),u=n.slice(e.length+i[1].length+1),s=i[2],h=s?s.split(","):[],d=i[1].slice(0,i[1].length-(typeof s!="undefined"?s.length+2:0)),p=d.split(".");return{path:d,list:p,params:h,root:p[0],input:u}}xw.exports={parseCommand:lC}});var Ew=yt((TE,Mw)=>{var Cw=6e4;Mw.exports=function(n){var i=new Date(n.getTime()),u=i.getTimezoneOffset();i.setSeconds(0,0);var s=i.getTime()%Cw;return u*Cw+s}});var Ap=yt((SE,Nw)=>{function cC(e){return e instanceof Date}Nw.exports=cC});var _i=yt((bE,Lw)=>{var Ip=Ew(),hC=Ap(),Rp=36e5,Fp=6e4,dC=2,pC=/[T ]/,vC=/:/,gC=/^(\d{2})$/,mC=[/^([+-]\d{2})$/,/^([+-]\d{3})$/,/^([+-]\d{4})$/],yC=/^(\d{4})/,wC=[/^([+-]\d{4})/,/^([+-]\d{5})/,/^([+-]\d{6})/],xC=/^-(\d{2})$/,_C=/^-?(\d{3})$/,kC=/^-?(\d{2})-?(\d{2})$/,TC=/^-?W(\d{2})$/,SC=/^-?W(\d{2})-?(\d{1})$/,bC=/^(\d{2}([.,]\d*)?)$/,CC=/^(\d{2}):?(\d{2}([.,]\d*)?)$/,MC=/^(\d{2}):?(\d{2}):?(\d{2}([.,]\d*)?)$/,EC=/([Z+-].*)$/,NC=/^(Z)$/,PC=/^([+-])(\d{2})$/,LC=/^([+-])(\d{2}):?(\d{2})$/;function OC(e,n){if(hC(e))return new Date(e.getTime());if(typeof e!="string")return new Date(e);var i=n||{},u=i.additionalDigits;u==null?u=dC:u=Number(u);var s=DC(e),h=AC(s.date,u),d=h.year,p=h.restDateString,b=IC(p,d);if(b){var T=b.getTime(),E=0,I;if(s.time&&(E=RC(s.time)),s.timezone)I=FC(s.timezone)*Fp;else{var oe=T+E,ve=new Date(oe);I=Ip(ve);var Me=new Date(oe);Me.setDate(ve.getDate()+1);var ne=Ip(Me)-Ip(ve);ne>0&&(I+=ne)}return new Date(T+E+I)}else return new Date(e)}function DC(e){var n={},i=e.split(pC),u;if(vC.test(i[0])?(n.date=null,u=i[0]):(n.date=i[0],u=i[1]),u){var s=EC.exec(u);s?(n.time=u.replace(s[1],""),n.timezone=s[1]):n.time=u}return n}function AC(e,n){var i=mC[n],u=wC[n],s;if(s=yC.exec(e)||u.exec(e),s){var h=s[1];return{year:parseInt(h,10),restDateString:e.slice(h.length)}}if(s=gC.exec(e)||i.exec(e),s){var d=s[1];return{year:parseInt(d,10)*100,restDateString:e.slice(d.length)}}return{year:null}}function IC(e,n){if(n===null)return null;var i,u,s,h;if(e.length===0)return u=new Date(0),u.setUTCFullYear(n),u;if(i=xC.exec(e),i)return u=new Date(0),s=parseInt(i[1],10)-1,u.setUTCFullYear(n,s),u;if(i=_C.exec(e),i){u=new Date(0);var d=parseInt(i[1],10);return u.setUTCFullYear(n,0,d),u}if(i=kC.exec(e),i){u=new Date(0),s=parseInt(i[1],10)-1;var p=parseInt(i[2],10);return u.setUTCFullYear(n,s,p),u}if(i=TC.exec(e),i)return h=parseInt(i[1],10)-1,Pw(n,h);if(i=SC.exec(e),i){h=parseInt(i[1],10)-1;var b=parseInt(i[2],10)-1;return Pw(n,h,b)}return null}function RC(e){var n,i,u;if(n=bC.exec(e),n)return i=parseFloat(n[1].replace(",",".")),i%24*Rp;if(n=CC.exec(e),n)return i=parseInt(n[1],10),u=parseFloat(n[2].replace(",",".")),i%24*Rp+u*Fp;if(n=MC.exec(e),n){i=parseInt(n[1],10),u=parseInt(n[2],10);var s=parseFloat(n[3].replace(",","."));return i%24*Rp+u*Fp+s*1e3}return null}function FC(e){var n,i;return n=NC.exec(e),n?0:(n=PC.exec(e),n?(i=parseInt(n[2],10)*60,n[1]==="+"?-i:i):(n=LC.exec(e),n?(i=parseInt(n[2],10)*60+parseInt(n[3],10),n[1]==="+"?-i:i):0))}function Pw(e,n,i){n=n||0,i=i||0;var u=new Date(0);u.setUTCFullYear(e,0,4);var s=u.getUTCDay()||7,h=n*7+i+1-s;return u.setUTCDate(u.getUTCDate()+h),u}Lw.exports=OC});var Dw=yt((CE,Ow)=>{var zC=_i();function HC(e){var n=zC(e),i=new Date(0);return i.setFullYear(n.getFullYear(),0,1),i.setHours(0,0,0,0),i}Ow.exports=HC});var Iw=yt((ME,Aw)=>{var WC=_i();function UC(e){var n=WC(e);return n.setHours(0,0,0,0),n}Aw.exports=UC});var Hw=yt((EE,zw)=>{var Rw=Iw(),Fw=6e4,BC=864e5;function jC(e,n){var i=Rw(e),u=Rw(n),s=i.getTime()-i.getTimezoneOffset()*Fw,h=u.getTime()-u.getTimezoneOffset()*Fw;return Math.round((s-h)/BC)}zw.exports=jC});var Uw=yt((NE,Ww)=>{var YC=_i(),qC=Dw(),GC=Hw();function $C(e){var n=YC(e),i=GC(n,qC(n)),u=i+1;return u}Ww.exports=$C});var jw=yt((PE,Bw)=>{var VC=_i();function XC(e,n){var i=n&&Number(n.weekStartsOn)||0,u=VC(e),s=u.getDay(),h=(s{var KC=jw();function QC(e){return KC(e,{weekStartsOn:1})}Yw.exports=QC});var zp=yt((OE,Gw)=>{var ZC=_i(),qw=Lf();function JC(e){var n=ZC(e),i=n.getFullYear(),u=new Date(0);u.setFullYear(i+1,0,4),u.setHours(0,0,0,0);var s=qw(u),h=new Date(0);h.setFullYear(i,0,4),h.setHours(0,0,0,0);var d=qw(h);return n.getTime()>=s.getTime()?i+1:n.getTime()>=d.getTime()?i:i-1}Gw.exports=JC});var Vw=yt((DE,$w)=>{var eM=zp(),tM=Lf();function nM(e){var n=eM(e),i=new Date(0);i.setFullYear(n,0,4),i.setHours(0,0,0,0);var u=tM(i);return u}$w.exports=nM});var Kw=yt((AE,Xw)=>{var rM=_i(),iM=Lf(),oM=Vw(),aM=6048e5;function uM(e){var n=rM(e),i=iM(n).getTime()-oM(n).getTime();return Math.round(i/aM)+1}Xw.exports=uM});var Zw=yt((IE,Qw)=>{var lM=Ap();function sM(e){if(lM(e))return!isNaN(e);throw new TypeError(toString.call(e)+" is not an instance of Date")}Qw.exports=sM});var ex=yt((RE,Jw)=>{function fM(){var e={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}};function n(i,u,s){s=s||{};var h;return typeof e[i]=="string"?h=e[i]:u===1?h=e[i].one:h=e[i].other.replace("{{count}}",u),s.addSuffix?s.comparison>0?"in "+h:h+" ago":h}return{localize:n}}Jw.exports=fM});var nx=yt((FE,tx)=>{var cM=["M","MM","Q","D","DD","DDD","DDDD","d","E","W","WW","YY","YYYY","GG","GGGG","H","HH","h","hh","m","mm","s","ss","S","SS","SSS","Z","ZZ","X","x"];function hM(e){var n=[];for(var i in e)e.hasOwnProperty(i)&&n.push(i);var u=cM.concat(n).sort().reverse(),s=new RegExp("(\\[[^\\[]*\\])|(\\\\)?("+u.join("|")+"|.)","g");return s}tx.exports=hM});var ix=yt((zE,rx)=>{var dM=nx();function pM(){var e=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],n=["January","February","March","April","May","June","July","August","September","October","November","December"],i=["Su","Mo","Tu","We","Th","Fr","Sa"],u=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],s=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],h=["AM","PM"],d=["am","pm"],p=["a.m.","p.m."],b={MMM:function(E){return e[E.getMonth()]},MMMM:function(E){return n[E.getMonth()]},dd:function(E){return i[E.getDay()]},ddd:function(E){return u[E.getDay()]},dddd:function(E){return s[E.getDay()]},A:function(E){return E.getHours()/12>=1?h[1]:h[0]},a:function(E){return E.getHours()/12>=1?d[1]:d[0]},aa:function(E){return E.getHours()/12>=1?p[1]:p[0]}},T=["M","D","DDD","d","Q","W"];return T.forEach(function(E){b[E+"o"]=function(I,oe){return vM(oe[E](I))}}),{formatters:b,formattingTokensRegExp:dM(b)}}function vM(e){var n=e%100;if(n>20||n<10)switch(n%10){case 1:return e+"st";case 2:return e+"nd";case 3:return e+"rd"}return e+"th"}rx.exports=pM});var ax=yt((HE,ox)=>{var gM=ex(),mM=ix();ox.exports={distanceInWords:gM(),format:mM()}});var dx=yt((WE,hx)=>{var ux=Uw(),lx=Kw(),sx=zp(),yM=_i(),wM=Zw(),fx=ax();function xM(e,n,i){var u=n?String(n):"YYYY-MM-DDTHH:mm:ss.SSSZ",s=i||{},h=s.locale,d=fx.format.formatters,p=fx.format.formattingTokensRegExp;h&&h.format&&h.format.formatters&&(d=h.format.formatters,h.format.formattingTokensRegExp&&(p=h.format.formattingTokensRegExp));var b=yM(e);if(!wM(b))return"Invalid Date";var T=_M(u,d,p);return T(b)}var Hp={M:function(e){return e.getMonth()+1},MM:function(e){return Or(e.getMonth()+1,2)},Q:function(e){return Math.ceil((e.getMonth()+1)/3)},D:function(e){return e.getDate()},DD:function(e){return Or(e.getDate(),2)},DDD:function(e){return ux(e)},DDDD:function(e){return Or(ux(e),3)},d:function(e){return e.getDay()},E:function(e){return e.getDay()||7},W:function(e){return lx(e)},WW:function(e){return Or(lx(e),2)},YY:function(e){return Or(e.getFullYear(),4).substr(2)},YYYY:function(e){return Or(e.getFullYear(),4)},GG:function(e){return String(sx(e)).substr(2)},GGGG:function(e){return sx(e)},H:function(e){return e.getHours()},HH:function(e){return Or(e.getHours(),2)},h:function(e){var n=e.getHours();return n===0?12:n>12?n%12:n},hh:function(e){return Or(Hp.h(e),2)},m:function(e){return e.getMinutes()},mm:function(e){return Or(e.getMinutes(),2)},s:function(e){return e.getSeconds()},ss:function(e){return Or(e.getSeconds(),2)},S:function(e){return Math.floor(e.getMilliseconds()/100)},SS:function(e){return Or(Math.floor(e.getMilliseconds()/10),2)},SSS:function(e){return Or(e.getMilliseconds(),3)},Z:function(e){return cx(e.getTimezoneOffset(),":")},ZZ:function(e){return cx(e.getTimezoneOffset())},X:function(e){return Math.floor(e.getTime()/1e3)},x:function(e){return e.getTime()}};function _M(e,n,i){var u=e.match(i),s=u.length,h,d;for(h=0;h0?"-":"+",u=Math.abs(e),s=Math.floor(u/60),h=u%60;return i+Or(s,2)+n+Or(h,2)}function Or(e,n){for(var i=Math.abs(e).toString();i.length{var TM=_i();function SM(e){var n=TM(e),i=n.getFullYear(),u=n.getMonth(),s=new Date(0);return s.setFullYear(i,u+1,0),s.setHours(0,0,0,0),s.getDate()}px.exports=SM});var mx=yt((BE,gx)=>{var bM=_i(),CM=vx();function MM(e,n){var i=bM(e),u=Number(n),s=i.getMonth()+u,h=new Date(0);h.setFullYear(i.getFullYear(),s,1),h.setHours(0,0,0,0);var d=CM(h);return i.setMonth(s,Math.min(d,i.getDate())),i}gx.exports=MM});var wx=yt((jE,yx)=>{var EM=mx();function NM(e,n){var i=Number(n);return EM(e,-i)}yx.exports=NM});var Jo=yt((Of,kx)=>{(function(e,n){typeof Of=="object"&&typeof kx!="undefined"?n(Of):typeof define=="function"&&define.amd?define(["exports"],n):(e=e||self,n(e.d3=e.d3||{}))})(Of,function(e){"use strict";var n="http://www.w3.org/1999/xhtml",i={svg:"http://www.w3.org/2000/svg",xhtml:n,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function u(q){var m=q+="",D=m.indexOf(":");return D>=0&&(m=q.slice(0,D))!=="xmlns"&&(q=q.slice(D+1)),i.hasOwnProperty(m)?{space:i[m],local:q}:q}function s(q){return function(){var m=this.ownerDocument,D=this.namespaceURI;return D===n&&m.documentElement.namespaceURI===n?m.createElement(q):m.createElementNS(D,q)}}function h(q){return function(){return this.ownerDocument.createElementNS(q.space,q.local)}}function d(q){var m=u(q);return(m.local?h:s)(m)}function p(){}function b(q){return q==null?p:function(){return this.querySelector(q)}}function T(q){typeof q!="function"&&(q=b(q));for(var m=this._groups,D=m.length,W=new Array(D),ie=0;ie=U&&(U=x+1);!(ae=Ti[U])&&++U=0;)(et=W[ie])&&(Ye&&et.compareDocumentPosition(Ye)^4&&Ye.parentNode.insertBefore(et,Ye),Ye=et);return this}function N(q){q||(q=w);function m(Fn,Yn){return Fn&&Yn?q(Fn.__data__,Yn.__data__):!Fn-!Yn}for(var D=this._groups,W=D.length,ie=new Array(W),Ye=0;Yem?1:q>=m?0:NaN}function F(){var q=arguments[0];return arguments[0]=this,q.apply(null,arguments),this}function L(){var q=new Array(this.size()),m=-1;return this.each(function(){q[++m]=this}),q}function Z(){for(var q=this._groups,m=0,D=q.length;m1?this.each((m==null?it:typeof m=="function"?Se:J)(q,m,D??"")):Q(this.node(),q)}function Q(q,m){return q.style.getPropertyValue(m)||We(q).getComputedStyle(q,null).getPropertyValue(m)}function re(q){return function(){delete this[q]}}function ce(q,m){return function(){this[q]=m}}function Pe(q,m){return function(){var D=m.apply(this,arguments);D==null?delete this[q]:this[q]=D}}function rt(q,m){return arguments.length>1?this.each((m==null?re:typeof m=="function"?Pe:ce)(q,m)):this.node()[q]}function dt(q){return q.trim().split(/^|\s+/)}function jt(q){return q.classList||new Gt(q)}function Gt(q){this._node=q,this._names=dt(q.getAttribute("class")||"")}Gt.prototype={add:function(q){var m=this._names.indexOf(q);m<0&&(this._names.push(q),this._node.setAttribute("class",this._names.join(" ")))},remove:function(q){var m=this._names.indexOf(q);m>=0&&(this._names.splice(m,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(q){return this._names.indexOf(q)>=0}};function Lt(q,m){for(var D=jt(q),W=-1,ie=m.length;++W=0&&(D=m.slice(W+1),m=m.slice(0,W)),{type:m,name:D}})}function O(q){return function(){var m=this.__on;if(!!m){for(var D=0,W=-1,ie=m.length,Ye;D{(function(e,n){typeof Df=="object"&&typeof Tx!="undefined"?n(Df):typeof define=="function"&&define.amd?define(["exports"],n):n(e.d3=e.d3||{})})(Df,function(e){"use strict";var n="$";function i(){}i.prototype=u.prototype={constructor:i,has:function(ne){return n+ne in this},get:function(ne){return this[n+ne]},set:function(ne,H){return this[n+ne]=H,this},remove:function(ne){var H=n+ne;return H in this&&delete this[H]},clear:function(){for(var ne in this)ne[0]===n&&delete this[ne]},keys:function(){var ne=[];for(var H in this)H[0]===n&&ne.push(H.slice(1));return ne},values:function(){var ne=[];for(var H in this)H[0]===n&&ne.push(this[H]);return ne},entries:function(){var ne=[];for(var H in this)H[0]===n&&ne.push({key:H.slice(1),value:this[H]});return ne},size:function(){var ne=0;for(var H in this)H[0]===n&&++ne;return ne},empty:function(){for(var ne in this)if(ne[0]===n)return!1;return!0},each:function(ne){for(var H in this)H[0]===n&&ne(this[H],H.slice(1),this)}};function u(ne,H){var R=new i;if(ne instanceof i)ne.each(function(Y,c){R.set(c,Y)});else if(Array.isArray(ne)){var j=-1,se=ne.length,we;if(H==null)for(;++j=ne.length)return R!=null&&Y.sort(R),j!=null?j(Y):Y;for(var S=-1,N=Y.length,w=ne[c++],F,L,Z=u(),_e,Ne=g();++Sne.length)return Y;var g,k=H[c-1];return j!=null&&c>=ne.length?g=Y.entries():(g=[],Y.each(function(S,N){g.push({key:N,values:Oe(S,c)})})),k!=null?g.sort(function(S,N){return k(S.key,N.key)}):g}return se={object:function(Y){return we(Y,0,h,d)},map:function(Y){return we(Y,0,p,b)},entries:function(Y){return Oe(we(Y,0,p,b),0)},key:function(Y){return ne.push(Y),se},sortKeys:function(Y){return H[ne.length-1]=Y,se},sortValues:function(Y){return R=Y,se},rollup:function(Y){return j=Y,se}}}function h(){return{}}function d(ne,H,R){ne[H]=R}function p(){return u()}function b(ne,H,R){ne.set(H,R)}function T(){}var E=u.prototype;T.prototype=I.prototype={constructor:T,has:E.has,add:function(ne){return ne+="",this[n+ne]=ne,this},remove:E.remove,clear:E.clear,values:E.keys,size:E.size,empty:E.empty,each:E.each};function I(ne,H){var R=new T;if(ne instanceof T)ne.each(function(we){R.add(we)});else if(ne){var j=-1,se=ne.length;if(H==null)for(;++j{(function(e,n){typeof Af=="object"&&typeof Sx!="undefined"?n(Af):typeof define=="function"&&define.amd?define(["exports"],n):n(e.d3=e.d3||{})})(Af,function(e){"use strict";function n(J,Se){return JSe?1:J>=Se?0:NaN}function i(J){return J.length===1&&(J=u(J)),{left:function(Se,Re,Q,re){for(Q==null&&(Q=0),re==null&&(re=Se.length);Q>>1;J(Se[ce],Re)<0?Q=ce+1:re=ce}return Q},right:function(Se,Re,Q,re){for(Q==null&&(Q=0),re==null&&(re=Se.length);Q>>1;J(Se[ce],Re)>0?re=ce:Q=ce+1}return Q}}}function u(J){return function(Se,Re){return n(J(Se),Re)}}var s=i(n),h=s.right,d=s.left;function p(J,Se){Se==null&&(Se=b);for(var Re=0,Q=J.length-1,re=J[0],ce=new Array(Q<0?0:Q);ReJ?1:Se>=J?0:NaN}function I(J){return J===null?NaN:+J}function oe(J,Se){var Re=J.length,Q=0,re=-1,ce=0,Pe,rt,dt=0;if(Se==null)for(;++re1)return dt/(Q-1)}function ve(J,Se){var Re=oe(J,Se);return Re&&Math.sqrt(Re)}function Me(J,Se){var Re=J.length,Q=-1,re,ce,Pe;if(Se==null){for(;++Q=re)for(ce=Pe=re;++Qre&&(ce=re),Pe=re)for(ce=Pe=re;++Qre&&(ce=re),Pe0)return[J];if((Q=Se0)for(J=Math.ceil(J/rt),Se=Math.floor(Se/rt),Pe=new Array(ce=Math.ceil(Se-J+1));++re=0?(ce>=Oe?10:ce>=Y?5:ce>=c?2:1)*Math.pow(10,re):-Math.pow(10,-re)/(ce>=Oe?10:ce>=Y?5:ce>=c?2:1)}function S(J,Se,Re){var Q=Math.abs(Se-J)/Math.max(0,Re),re=Math.pow(10,Math.floor(Math.log(Q)/Math.LN10)),ce=Q/re;return ce>=Oe?re*=10:ce>=Y?re*=5:ce>=c&&(re*=2),SeLt;)Mt.pop(),--Bt;var zt=new Array(Bt+1),Xt;for(ce=0;ce<=Bt;++ce)Xt=zt[ce]=[],Xt.x0=ce>0?Mt[ce-1]:Gt,Xt.x1=ce=1)return+Re(J[Q-1],Q-1,J);var Q,re=(Q-1)*Se,ce=Math.floor(re),Pe=+Re(J[ce],ce,J),rt=+Re(J[ce+1],ce+1,J);return Pe+(rt-Pe)*(re-ce)}}function L(J,Se,Re){return J=R.call(J,I).sort(n),Math.ceil((Re-Se)/(2*(F(J,.75)-F(J,.25))*Math.pow(J.length,-1/3)))}function Z(J,Se,Re){return Math.ceil((Re-Se)/(3.5*ve(J)*Math.pow(J.length,-1/3)))}function _e(J,Se){var Re=J.length,Q=-1,re,ce;if(Se==null){for(;++Q=re)for(ce=re;++Qce&&(ce=re)}else for(;++Q=re)for(ce=re;++Qce&&(ce=re);return ce}function Ne(J,Se){var Re=J.length,Q=Re,re=-1,ce,Pe=0;if(Se==null)for(;++re=0;)for(Pe=J[Se],Re=Pe.length;--Re>=0;)ce[--re]=Pe[Re];return ce}function Ie(J,Se){var Re=J.length,Q=-1,re,ce;if(Se==null){for(;++Q=re)for(ce=re;++Qre&&(ce=re)}else for(;++Q=re)for(ce=re;++Qre&&(ce=re);return ce}function he(J,Se){for(var Re=Se.length,Q=new Array(Re);Re--;)Q[Re]=J[Se[Re]];return Q}function ye(J,Se){if(!!(Re=J.length)){var Re,Q=0,re=0,ce,Pe=J[re];for(Se==null&&(Se=n);++Q{(function(e,n){typeof If=="object"&&typeof Cx!="undefined"?n(If):typeof define=="function"&&define.amd?define(["exports"],n):(e=e||self,n(e.d3=e.d3||{}))})(If,function(e){"use strict";function n(M,te,pe){M.prototype=te.prototype=pe,pe.constructor=M}function i(M,te){var pe=Object.create(M.prototype);for(var Be in te)pe[Be]=te[Be];return pe}function u(){}var s=.7,h=1/s,d="\\s*([+-]?\\d+)\\s*",p="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",b="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",T=/^#([0-9a-f]{3,8})$/,E=new RegExp("^rgb\\("+[d,d,d]+"\\)$"),I=new RegExp("^rgb\\("+[b,b,b]+"\\)$"),oe=new RegExp("^rgba\\("+[d,d,d,p]+"\\)$"),ve=new RegExp("^rgba\\("+[b,b,b,p]+"\\)$"),Me=new RegExp("^hsl\\("+[p,b,b]+"\\)$"),ne=new RegExp("^hsla\\("+[p,b,b,p]+"\\)$"),H={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};n(u,we,{copy:function(M){return Object.assign(new this.constructor,this,M)},displayable:function(){return this.rgb().displayable()},hex:R,formatHex:R,formatHsl:j,formatRgb:se,toString:se});function R(){return this.rgb().formatHex()}function j(){return L(this).formatHsl()}function se(){return this.rgb().formatRgb()}function we(M){var te,pe;return M=(M+"").trim().toLowerCase(),(te=T.exec(M))?(pe=te[1].length,te=parseInt(te[1],16),pe===6?Oe(te):pe===3?new k(te>>8&15|te>>4&240,te>>4&15|te&240,(te&15)<<4|te&15,1):pe===8?Y(te>>24&255,te>>16&255,te>>8&255,(te&255)/255):pe===4?Y(te>>12&15|te>>8&240,te>>8&15|te>>4&240,te>>4&15|te&240,((te&15)<<4|te&15)/255):null):(te=E.exec(M))?new k(te[1],te[2],te[3],1):(te=I.exec(M))?new k(te[1]*255/100,te[2]*255/100,te[3]*255/100,1):(te=oe.exec(M))?Y(te[1],te[2],te[3],te[4]):(te=ve.exec(M))?Y(te[1]*255/100,te[2]*255/100,te[3]*255/100,te[4]):(te=Me.exec(M))?F(te[1],te[2]/100,te[3]/100,1):(te=ne.exec(M))?F(te[1],te[2]/100,te[3]/100,te[4]):H.hasOwnProperty(M)?Oe(H[M]):M==="transparent"?new k(NaN,NaN,NaN,0):null}function Oe(M){return new k(M>>16&255,M>>8&255,M&255,1)}function Y(M,te,pe,Be){return Be<=0&&(M=te=pe=NaN),new k(M,te,pe,Be)}function c(M){return M instanceof u||(M=we(M)),M?(M=M.rgb(),new k(M.r,M.g,M.b,M.opacity)):new k}function g(M,te,pe,Be){return arguments.length===1?c(M):new k(M,te,pe,Be??1)}function k(M,te,pe,Be){this.r=+M,this.g=+te,this.b=+pe,this.opacity=+Be}n(k,g,i(u,{brighter:function(M){return M=M==null?h:Math.pow(h,M),new k(this.r*M,this.g*M,this.b*M,this.opacity)},darker:function(M){return M=M==null?s:Math.pow(s,M),new k(this.r*M,this.g*M,this.b*M,this.opacity)},rgb:function(){return this},displayable:function(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:S,formatHex:S,formatRgb:N,toString:N}));function S(){return"#"+w(this.r)+w(this.g)+w(this.b)}function N(){var M=this.opacity;return M=isNaN(M)?1:Math.max(0,Math.min(1,M)),(M===1?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(M===1?")":", "+M+")")}function w(M){return M=Math.max(0,Math.min(255,Math.round(M)||0)),(M<16?"0":"")+M.toString(16)}function F(M,te,pe,Be){return Be<=0?M=te=pe=NaN:pe<=0||pe>=1?M=te=NaN:te<=0&&(M=NaN),new _e(M,te,pe,Be)}function L(M){if(M instanceof _e)return new _e(M.h,M.s,M.l,M.opacity);if(M instanceof u||(M=we(M)),!M)return new _e;if(M instanceof _e)return M;M=M.rgb();var te=M.r/255,pe=M.g/255,Be=M.b/255,Ke=Math.min(te,pe,Be),st=Math.max(te,pe,Be),ht=NaN,mt=st-Ke,St=(st+Ke)/2;return mt?(te===st?ht=(pe-Be)/mt+(pe0&&St<1?0:ht,new _e(ht,mt,St,M.opacity)}function Z(M,te,pe,Be){return arguments.length===1?L(M):new _e(M,te,pe,Be??1)}function _e(M,te,pe,Be){this.h=+M,this.s=+te,this.l=+pe,this.opacity=+Be}n(_e,Z,i(u,{brighter:function(M){return M=M==null?h:Math.pow(h,M),new _e(this.h,this.s,this.l*M,this.opacity)},darker:function(M){return M=M==null?s:Math.pow(s,M),new _e(this.h,this.s,this.l*M,this.opacity)},rgb:function(){var M=this.h%360+(this.h<0)*360,te=isNaN(M)||isNaN(this.s)?0:this.s,pe=this.l,Be=pe+(pe<.5?pe:1-pe)*te,Ke=2*pe-Be;return new k(Ne(M>=240?M-240:M+120,Ke,Be),Ne(M,Ke,Be),Ne(M<120?M+240:M-120,Ke,Be),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl:function(){var M=this.opacity;return M=isNaN(M)?1:Math.max(0,Math.min(1,M)),(M===1?"hsl(":"hsla(")+(this.h||0)+", "+(this.s||0)*100+"%, "+(this.l||0)*100+"%"+(M===1?")":", "+M+")")}}));function Ne(M,te,pe){return(M<60?te+(pe-te)*M/60:M<180?pe:M<240?te+(pe-te)*(240-M)/60:te)*255}var Te=Math.PI/180,ue=180/Math.PI,Ie=18,he=.96422,ye=1,de=.82521,ge=4/29,He=6/29,We=3*He*He,it=He*He*He;function J(M){if(M instanceof Q)return new Q(M.l,M.a,M.b,M.opacity);if(M instanceof Lt)return Mt(M);M instanceof k||(M=c(M));var te=rt(M.r),pe=rt(M.g),Be=rt(M.b),Ke=re((.2225045*te+.7168786*pe+.0606169*Be)/ye),st,ht;return te===pe&&pe===Be?st=ht=Ke:(st=re((.4360747*te+.3850649*pe+.1430804*Be)/he),ht=re((.0139322*te+.0971045*pe+.7141733*Be)/de)),new Q(116*Ke-16,500*(st-Ke),200*(Ke-ht),M.opacity)}function Se(M,te){return new Q(M,0,0,te??1)}function Re(M,te,pe,Be){return arguments.length===1?J(M):new Q(M,te,pe,Be??1)}function Q(M,te,pe,Be){this.l=+M,this.a=+te,this.b=+pe,this.opacity=+Be}n(Q,Re,i(u,{brighter:function(M){return new Q(this.l+Ie*(M??1),this.a,this.b,this.opacity)},darker:function(M){return new Q(this.l-Ie*(M??1),this.a,this.b,this.opacity)},rgb:function(){var M=(this.l+16)/116,te=isNaN(this.a)?M:M+this.a/500,pe=isNaN(this.b)?M:M-this.b/200;return te=he*ce(te),M=ye*ce(M),pe=de*ce(pe),new k(Pe(3.1338561*te-1.6168667*M-.4906146*pe),Pe(-.9787684*te+1.9161415*M+.033454*pe),Pe(.0719453*te-.2289914*M+1.4052427*pe),this.opacity)}}));function re(M){return M>it?Math.pow(M,1/3):M/We+ge}function ce(M){return M>He?M*M*M:We*(M-ge)}function Pe(M){return 255*(M<=.0031308?12.92*M:1.055*Math.pow(M,1/2.4)-.055)}function rt(M){return(M/=255)<=.04045?M/12.92:Math.pow((M+.055)/1.055,2.4)}function dt(M){if(M instanceof Lt)return new Lt(M.h,M.c,M.l,M.opacity);if(M instanceof Q||(M=J(M)),M.a===0&&M.b===0)return new Lt(NaN,0{(function(e,n){typeof Ff=="object"&&typeof Mx!="undefined"?n(Ff,Rf()):typeof define=="function"&&define.amd?define(["exports","d3-color"],n):(e=e||self,n(e.d3=e.d3||{},e.d3))})(Ff,function(e,n){"use strict";function i(A,V,Le,qe,Ue){var M=A*A,te=M*A;return((1-3*A+3*M-te)*V+(4-6*M+3*te)*Le+(1+3*A+3*M-3*te)*qe+te*Ue)/6}function u(A){var V=A.length-1;return function(Le){var qe=Le<=0?Le=0:Le>=1?(Le=1,V-1):Math.floor(Le*V),Ue=A[qe],M=A[qe+1],te=qe>0?A[qe-1]:2*Ue-M,pe=qe180||Le<-180?Le-360*Math.round(Le/360):Le):h(isNaN(A)?V:A)}function T(A){return(A=+A)==1?E:function(V,Le){return Le-V?p(V,Le,A):h(isNaN(V)?Le:V)}}function E(A,V){var Le=V-A;return Le?d(A,Le):h(isNaN(A)?V:A)}var I=function A(V){var Le=T(V);function qe(Ue,M){var te=Le((Ue=n.rgb(Ue)).r,(M=n.rgb(M)).r),pe=Le(Ue.g,M.g),Be=Le(Ue.b,M.b),Ke=E(Ue.opacity,M.opacity);return function(st){return Ue.r=te(st),Ue.g=pe(st),Ue.b=Be(st),Ue.opacity=Ke(st),Ue+""}}return qe.gamma=A,qe}(1);function oe(A){return function(V){var Le=V.length,qe=new Array(Le),Ue=new Array(Le),M=new Array(Le),te,pe;for(te=0;teLe&&(M=V.slice(Le,M),pe[te]?pe[te]+=M:pe[++te]=M),(qe=qe[0])===(Ue=Ue[0])?pe[te]?pe[te]+=Ue:pe[++te]=Ue:(pe[++te]=null,Be.push({i:te,x:we(qe,Ue)})),Le=c.lastIndex;return Le180?st+=360:st-Ke>180&&(Ke+=360),mt.push({i:ht.push(Ue(ht)+"rotate(",null,qe)-2,x:we(Ke,st)})):st&&ht.push(Ue(ht)+"rotate("+st+qe)}function pe(Ke,st,ht,mt){Ke!==st?mt.push({i:ht.push(Ue(ht)+"skewX(",null,qe)-2,x:we(Ke,st)}):st&&ht.push(Ue(ht)+"skewX("+st+qe)}function Be(Ke,st,ht,mt,St,At){if(Ke!==ht||st!==mt){var en=St.push(Ue(St)+"scale(",null,",",null,")");At.push({i:en-4,x:we(Ke,ht)},{i:en-2,x:we(st,mt)})}else(ht!==1||mt!==1)&&St.push(Ue(St)+"scale("+ht+","+mt+")")}return function(Ke,st){var ht=[],mt=[];return Ke=A(Ke),st=A(st),M(Ke.translateX,Ke.translateY,st.translateX,st.translateY,ht,mt),te(Ke.rotate,st.rotate,ht,mt),pe(Ke.skewX,st.skewX,ht,mt),Be(Ke.scaleX,Ke.scaleY,st.scaleX,st.scaleY,ht,mt),Ke=st=null,function(St){for(var At=-1,en=mt.length,tn;++At{(function(e,n){typeof Hf=="object"&&typeof Ex!="undefined"?n(Hf):typeof define=="function"&&define.amd?define(["exports"],n):(e=typeof globalThis!="undefined"?globalThis:e||self,n(e.d3=e.d3||{}))})(Hf,function(e){"use strict";function n(c){return Math.abs(c=Math.round(c))>=1e21?c.toLocaleString("en").replace(/,/g,""):c.toString(10)}function i(c,g){if((k=(c=g?c.toExponential(g-1):c.toExponential()).indexOf("e"))<0)return null;var k,S=c.slice(0,k);return[S.length>1?S[0]+S.slice(2):S,+c.slice(k+1)]}function u(c){return c=i(Math.abs(c)),c?c[1]:NaN}function s(c,g){return function(k,S){for(var N=k.length,w=[],F=0,L=c[0],Z=0;N>0&&L>0&&(Z+L+1>S&&(L=Math.max(1,S-Z)),w.push(k.substring(N-=L,N+L)),!((Z+=L+1)>S));)L=c[F=(F+1)%c.length];return w.reverse().join(g)}}function h(c){return function(g){return g.replace(/[0-9]/g,function(k){return c[+k]})}}var d=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function p(c){if(!(g=d.exec(c)))throw new Error("invalid format: "+c);var g;return new b({fill:g[1],align:g[2],sign:g[3],symbol:g[4],zero:g[5],width:g[6],comma:g[7],precision:g[8]&&g[8].slice(1),trim:g[9],type:g[10]})}p.prototype=b.prototype;function b(c){this.fill=c.fill===void 0?" ":c.fill+"",this.align=c.align===void 0?">":c.align+"",this.sign=c.sign===void 0?"-":c.sign+"",this.symbol=c.symbol===void 0?"":c.symbol+"",this.zero=!!c.zero,this.width=c.width===void 0?void 0:+c.width,this.comma=!!c.comma,this.precision=c.precision===void 0?void 0:+c.precision,this.trim=!!c.trim,this.type=c.type===void 0?"":c.type+""}b.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function T(c){e:for(var g=c.length,k=1,S=-1,N;k0&&(S=0);break}return S>0?c.slice(0,S)+c.slice(N+1):c}var E;function I(c,g){var k=i(c,g);if(!k)return c+"";var S=k[0],N=k[1],w=N-(E=Math.max(-8,Math.min(8,Math.floor(N/3)))*3)+1,F=S.length;return w===F?S:w>F?S+new Array(w-F+1).join("0"):w>0?S.slice(0,w)+"."+S.slice(w):"0."+new Array(1-w).join("0")+i(c,Math.max(0,g+w-1))[0]}function oe(c,g){var k=i(c,g);if(!k)return c+"";var S=k[0],N=k[1];return N<0?"0."+new Array(-N).join("0")+S:S.length>N+1?S.slice(0,N+1)+"."+S.slice(N+1):S+new Array(N-S.length+2).join("0")}var ve={"%":function(c,g){return(c*100).toFixed(g)},b:function(c){return Math.round(c).toString(2)},c:function(c){return c+""},d:n,e:function(c,g){return c.toExponential(g)},f:function(c,g){return c.toFixed(g)},g:function(c,g){return c.toPrecision(g)},o:function(c){return Math.round(c).toString(8)},p:function(c,g){return oe(c*100,g)},r:oe,s:I,X:function(c){return Math.round(c).toString(16).toUpperCase()},x:function(c){return Math.round(c).toString(16)}};function Me(c){return c}var ne=Array.prototype.map,H=["y","z","a","f","p","n","\xB5","m","","k","M","G","T","P","E","Z","Y"];function R(c){var g=c.grouping===void 0||c.thousands===void 0?Me:s(ne.call(c.grouping,Number),c.thousands+""),k=c.currency===void 0?"":c.currency[0]+"",S=c.currency===void 0?"":c.currency[1]+"",N=c.decimal===void 0?".":c.decimal+"",w=c.numerals===void 0?Me:h(ne.call(c.numerals,String)),F=c.percent===void 0?"%":c.percent+"",L=c.minus===void 0?"-":c.minus+"",Z=c.nan===void 0?"NaN":c.nan+"";function _e(Te){Te=p(Te);var ue=Te.fill,Ie=Te.align,he=Te.sign,ye=Te.symbol,de=Te.zero,ge=Te.width,He=Te.comma,We=Te.precision,it=Te.trim,J=Te.type;J==="n"?(He=!0,J="g"):ve[J]||(We===void 0&&(We=12),it=!0,J="g"),(de||ue==="0"&&Ie==="=")&&(de=!0,ue="0",Ie="=");var Se=ye==="$"?k:ye==="#"&&/[boxX]/.test(J)?"0"+J.toLowerCase():"",Re=ye==="$"?S:/[%p]/.test(J)?F:"",Q=ve[J],re=/[defgprs%]/.test(J);We=We===void 0?6:/[gprs]/.test(J)?Math.max(1,Math.min(21,We)):Math.max(0,Math.min(20,We));function ce(Pe){var rt=Se,dt=Re,jt,Gt,Lt;if(J==="c")dt=Q(Pe)+dt,Pe="";else{Pe=+Pe;var Mt=Pe<0||1/Pe<0;if(Pe=isNaN(Pe)?Z:Q(Math.abs(Pe),We),it&&(Pe=T(Pe)),Mt&&+Pe==0&&he!=="+"&&(Mt=!1),rt=(Mt?he==="("?he:L:he==="-"||he==="("?"":he)+rt,dt=(J==="s"?H[8+E/3]:"")+dt+(Mt&&he==="("?")":""),re){for(jt=-1,Gt=Pe.length;++jtLt||Lt>57){dt=(Lt===46?N+Pe.slice(jt+1):Pe.slice(jt))+dt,Pe=Pe.slice(0,jt);break}}}He&&!de&&(Pe=g(Pe,1/0));var Bt=rt.length+Pe.length+dt.length,zt=Bt>1)+rt+Pe+dt+zt.slice(Bt);break;default:Pe=zt+rt+Pe+dt;break}return w(Pe)}return ce.toString=function(){return Te+""},ce}function Ne(Te,ue){var Ie=_e((Te=p(Te),Te.type="f",Te)),he=Math.max(-8,Math.min(8,Math.floor(u(ue)/3)))*3,ye=Math.pow(10,-he),de=H[8+he/3];return function(ge){return Ie(ye*ge)+de}}return{format:_e,formatPrefix:Ne}}var j;se({decimal:".",thousands:",",grouping:[3],currency:["$",""],minus:"-"});function se(c){return j=R(c),e.format=j.format,e.formatPrefix=j.formatPrefix,j}function we(c){return Math.max(0,-u(Math.abs(c)))}function Oe(c,g){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(u(g)/3)))*3-u(Math.abs(c)))}function Y(c,g){return c=Math.abs(c),g=Math.abs(g)-c,Math.max(0,u(g)-u(c))+1}e.FormatSpecifier=b,e.formatDefaultLocale=se,e.formatLocale=R,e.formatSpecifier=p,e.precisionFixed=we,e.precisionPrefix=Oe,e.precisionRound=Y,Object.defineProperty(e,"__esModule",{value:!0})})});var Bp=yt((Wf,Px)=>{(function(e,n){typeof Wf=="object"&&typeof Px!="undefined"?n(Wf):typeof define=="function"&&define.amd?define(["exports"],n):(e=e||self,n(e.d3=e.d3||{}))})(Wf,function(e){"use strict";var n=new Date,i=new Date;function u(A,V,Le,qe){function Ue(M){return A(M=arguments.length===0?new Date:new Date(+M)),M}return Ue.floor=function(M){return A(M=new Date(+M)),M},Ue.ceil=function(M){return A(M=new Date(M-1)),V(M,1),A(M),M},Ue.round=function(M){var te=Ue(M),pe=Ue.ceil(M);return M-te0))return Be;do Be.push(Ke=new Date(+M)),V(M,pe),A(M);while(Ke=te)for(;A(te),!M(te);)te.setTime(te-1)},function(te,pe){if(te>=te)if(pe<0)for(;++pe<=0;)for(;V(te,-1),!M(te););else for(;--pe>=0;)for(;V(te,1),!M(te););})},Le&&(Ue.count=function(M,te){return n.setTime(+M),i.setTime(+te),A(n),A(i),Math.floor(Le(n,i))},Ue.every=function(M){return M=Math.floor(M),!isFinite(M)||!(M>0)?null:M>1?Ue.filter(qe?function(te){return qe(te)%M==0}:function(te){return Ue.count(0,te)%M==0}):Ue}),Ue}var s=u(function(){},function(A,V){A.setTime(+A+V)},function(A,V){return V-A});s.every=function(A){return A=Math.floor(A),!isFinite(A)||!(A>0)?null:A>1?u(function(V){V.setTime(Math.floor(V/A)*A)},function(V,Le){V.setTime(+V+Le*A)},function(V,Le){return(Le-V)/A}):s};var h=s.range,d=1e3,p=6e4,b=36e5,T=864e5,E=6048e5,I=u(function(A){A.setTime(A-A.getMilliseconds())},function(A,V){A.setTime(+A+V*d)},function(A,V){return(V-A)/d},function(A){return A.getUTCSeconds()}),oe=I.range,ve=u(function(A){A.setTime(A-A.getMilliseconds()-A.getSeconds()*d)},function(A,V){A.setTime(+A+V*p)},function(A,V){return(V-A)/p},function(A){return A.getMinutes()}),Me=ve.range,ne=u(function(A){A.setTime(A-A.getMilliseconds()-A.getSeconds()*d-A.getMinutes()*p)},function(A,V){A.setTime(+A+V*b)},function(A,V){return(V-A)/b},function(A){return A.getHours()}),H=ne.range,R=u(function(A){A.setHours(0,0,0,0)},function(A,V){A.setDate(A.getDate()+V)},function(A,V){return(V-A-(V.getTimezoneOffset()-A.getTimezoneOffset())*p)/T},function(A){return A.getDate()-1}),j=R.range;function se(A){return u(function(V){V.setDate(V.getDate()-(V.getDay()+7-A)%7),V.setHours(0,0,0,0)},function(V,Le){V.setDate(V.getDate()+Le*7)},function(V,Le){return(Le-V-(Le.getTimezoneOffset()-V.getTimezoneOffset())*p)/E})}var we=se(0),Oe=se(1),Y=se(2),c=se(3),g=se(4),k=se(5),S=se(6),N=we.range,w=Oe.range,F=Y.range,L=c.range,Z=g.range,_e=k.range,Ne=S.range,Te=u(function(A){A.setDate(1),A.setHours(0,0,0,0)},function(A,V){A.setMonth(A.getMonth()+V)},function(A,V){return V.getMonth()-A.getMonth()+(V.getFullYear()-A.getFullYear())*12},function(A){return A.getMonth()}),ue=Te.range,Ie=u(function(A){A.setMonth(0,1),A.setHours(0,0,0,0)},function(A,V){A.setFullYear(A.getFullYear()+V)},function(A,V){return V.getFullYear()-A.getFullYear()},function(A){return A.getFullYear()});Ie.every=function(A){return!isFinite(A=Math.floor(A))||!(A>0)?null:u(function(V){V.setFullYear(Math.floor(V.getFullYear()/A)*A),V.setMonth(0,1),V.setHours(0,0,0,0)},function(V,Le){V.setFullYear(V.getFullYear()+Le*A)})};var he=Ie.range,ye=u(function(A){A.setUTCSeconds(0,0)},function(A,V){A.setTime(+A+V*p)},function(A,V){return(V-A)/p},function(A){return A.getUTCMinutes()}),de=ye.range,ge=u(function(A){A.setUTCMinutes(0,0,0)},function(A,V){A.setTime(+A+V*b)},function(A,V){return(V-A)/b},function(A){return A.getUTCHours()}),He=ge.range,We=u(function(A){A.setUTCHours(0,0,0,0)},function(A,V){A.setUTCDate(A.getUTCDate()+V)},function(A,V){return(V-A)/T},function(A){return A.getUTCDate()-1}),it=We.range;function J(A){return u(function(V){V.setUTCDate(V.getUTCDate()-(V.getUTCDay()+7-A)%7),V.setUTCHours(0,0,0,0)},function(V,Le){V.setUTCDate(V.getUTCDate()+Le*7)},function(V,Le){return(Le-V)/E})}var Se=J(0),Re=J(1),Q=J(2),re=J(3),ce=J(4),Pe=J(5),rt=J(6),dt=Se.range,jt=Re.range,Gt=Q.range,Lt=re.range,Mt=ce.range,Bt=Pe.range,zt=rt.range,Xt=u(function(A){A.setUTCDate(1),A.setUTCHours(0,0,0,0)},function(A,V){A.setUTCMonth(A.getUTCMonth()+V)},function(A,V){return V.getUTCMonth()-A.getUTCMonth()+(V.getUTCFullYear()-A.getUTCFullYear())*12},function(A){return A.getUTCMonth()}),sn=Xt.range,Kt=u(function(A){A.setUTCMonth(0,1),A.setUTCHours(0,0,0,0)},function(A,V){A.setUTCFullYear(A.getUTCFullYear()+V)},function(A,V){return V.getUTCFullYear()-A.getUTCFullYear()},function(A){return A.getUTCFullYear()});Kt.every=function(A){return!isFinite(A=Math.floor(A))||!(A>0)?null:u(function(V){V.setUTCFullYear(Math.floor(V.getUTCFullYear()/A)*A),V.setUTCMonth(0,1),V.setUTCHours(0,0,0,0)},function(V,Le){V.setUTCFullYear(V.getUTCFullYear()+Le*A)})};var an=Kt.range;e.timeDay=R,e.timeDays=j,e.timeFriday=k,e.timeFridays=_e,e.timeHour=ne,e.timeHours=H,e.timeInterval=u,e.timeMillisecond=s,e.timeMilliseconds=h,e.timeMinute=ve,e.timeMinutes=Me,e.timeMonday=Oe,e.timeMondays=w,e.timeMonth=Te,e.timeMonths=ue,e.timeSaturday=S,e.timeSaturdays=Ne,e.timeSecond=I,e.timeSeconds=oe,e.timeSunday=we,e.timeSundays=N,e.timeThursday=g,e.timeThursdays=Z,e.timeTuesday=Y,e.timeTuesdays=F,e.timeWednesday=c,e.timeWednesdays=L,e.timeWeek=we,e.timeWeeks=N,e.timeYear=Ie,e.timeYears=he,e.utcDay=We,e.utcDays=it,e.utcFriday=Pe,e.utcFridays=Bt,e.utcHour=ge,e.utcHours=He,e.utcMillisecond=s,e.utcMilliseconds=h,e.utcMinute=ye,e.utcMinutes=de,e.utcMonday=Re,e.utcMondays=jt,e.utcMonth=Xt,e.utcMonths=sn,e.utcSaturday=rt,e.utcSaturdays=zt,e.utcSecond=I,e.utcSeconds=oe,e.utcSunday=Se,e.utcSundays=dt,e.utcThursday=ce,e.utcThursdays=Mt,e.utcTuesday=Q,e.utcTuesdays=Gt,e.utcWednesday=re,e.utcWednesdays=Lt,e.utcWeek=Se,e.utcWeeks=dt,e.utcYear=Kt,e.utcYears=an,Object.defineProperty(e,"__esModule",{value:!0})})});var Ox=yt((Uf,Lx)=>{(function(e,n){typeof Uf=="object"&&typeof Lx!="undefined"?n(Uf,Bp()):typeof define=="function"&&define.amd?define(["exports","d3-time"],n):(e=e||self,n(e.d3=e.d3||{},e.d3))})(Uf,function(e,n){"use strict";function i(z){if(0<=z.y&&z.y<100){var $=new Date(-1,z.m,z.d,z.H,z.M,z.S,z.L);return $.setFullYear(z.y),$}return new Date(z.y,z.m,z.d,z.H,z.M,z.S,z.L)}function u(z){if(0<=z.y&&z.y<100){var $=new Date(Date.UTC(-1,z.m,z.d,z.H,z.M,z.S,z.L));return $.setUTCFullYear(z.y),$}return new Date(Date.UTC(z.y,z.m,z.d,z.H,z.M,z.S,z.L))}function s(z,$,P){return{y:z,m:$,d:P,H:0,M:0,S:0,L:0}}function h(z){var $=z.dateTime,P=z.date,O=z.time,G=z.periods,fe=z.days,me=z.shortDays,Ae=z.months,De=z.shortMonths,Ge=oe(G),Ve=ve(G),Qe=oe(fe),ut=ve(fe),Pt=oe(me),Et=ve(me),It=oe(Ae),fn=ve(Ae),_n=oe(De),Sn=ve(De),Wt={a:ct,A:wt,b:lt,B:Fn,c:null,d:Te,e:Te,f:de,g:Pe,G:dt,H:ue,I:Ie,j:he,L:ye,m:ge,M:He,p:Yn,q:cn,Q:mt,s:St,S:We,u:it,U:J,V:Re,w:Q,W:re,x:null,X:null,y:ce,Y:rt,Z:jt,"%":ht},ft={a:Dn,A:ki,b:Ti,B:Zr,c:null,d:Gt,e:Gt,f:Xt,g:pe,G:Ke,H:Lt,I:Mt,j:Bt,L:zt,m:sn,M:Kt,p:x,q:U,Q:mt,s:St,S:an,u:A,U:V,V:qe,w:Ue,W:M,x:null,X:null,y:te,Y:Be,Z:st,"%":ht},bt={a:m,A:D,b:W,B:ie,c:Ye,d:g,e:g,f:L,g:we,G:se,H:S,I:S,j:k,L:F,m:c,M:N,p:q,q:Y,Q:_e,s:Ne,S:w,u:ne,U:H,V:R,w:Me,W:j,x:et,X:Xe,y:we,Y:se,Z:Oe,"%":Z};Wt.x=nn(P,Wt),Wt.X=nn(O,Wt),Wt.c=nn($,Wt),ft.x=nn(P,ft),ft.X=nn(O,ft),ft.c=nn($,ft);function nn(B,ae){return function(Ce){var le=[],Fe=-1,xe=0,je=B.length,nt,Je,gt;for(Ce instanceof Date||(Ce=new Date(+Ce));++Fe53)return null;"w"in le||(le.w=1),"Z"in le?(xe=u(s(le.y,0,1)),je=xe.getUTCDay(),xe=je>4||je===0?n.utcMonday.ceil(xe):n.utcMonday(xe),xe=n.utcDay.offset(xe,(le.V-1)*7),le.y=xe.getUTCFullYear(),le.m=xe.getUTCMonth(),le.d=xe.getUTCDate()+(le.w+6)%7):(xe=i(s(le.y,0,1)),je=xe.getDay(),xe=je>4||je===0?n.timeMonday.ceil(xe):n.timeMonday(xe),xe=n.timeDay.offset(xe,(le.V-1)*7),le.y=xe.getFullYear(),le.m=xe.getMonth(),le.d=xe.getDate()+(le.w+6)%7)}else("W"in le||"U"in le)&&("w"in le||(le.w="u"in le?le.u%7:"W"in le?1:0),je="Z"in le?u(s(le.y,0,1)).getUTCDay():i(s(le.y,0,1)).getDay(),le.m=0,le.d="W"in le?(le.w+6)%7+le.W*7-(je+5)%7:le.w+le.U*7-(je+6)%7);return"Z"in le?(le.H+=le.Z/100|0,le.M+=le.Z%100,u(le)):i(le)}}function Tt(B,ae,Ce,le){for(var Fe=0,xe=ae.length,je=Ce.length,nt,Je;Fe=je)return-1;if(nt=ae.charCodeAt(Fe++),nt===37){if(nt=ae.charAt(Fe++),Je=bt[nt in d?ae.charAt(Fe++):nt],!Je||(le=Je(B,Ce,le))<0)return-1}else if(nt!=Ce.charCodeAt(le++))return-1}return le}function q(B,ae,Ce){var le=Ge.exec(ae.slice(Ce));return le?(B.p=Ve[le[0].toLowerCase()],Ce+le[0].length):-1}function m(B,ae,Ce){var le=Pt.exec(ae.slice(Ce));return le?(B.w=Et[le[0].toLowerCase()],Ce+le[0].length):-1}function D(B,ae,Ce){var le=Qe.exec(ae.slice(Ce));return le?(B.w=ut[le[0].toLowerCase()],Ce+le[0].length):-1}function W(B,ae,Ce){var le=_n.exec(ae.slice(Ce));return le?(B.m=Sn[le[0].toLowerCase()],Ce+le[0].length):-1}function ie(B,ae,Ce){var le=It.exec(ae.slice(Ce));return le?(B.m=fn[le[0].toLowerCase()],Ce+le[0].length):-1}function Ye(B,ae,Ce){return Tt(B,$,ae,Ce)}function et(B,ae,Ce){return Tt(B,P,ae,Ce)}function Xe(B,ae,Ce){return Tt(B,O,ae,Ce)}function ct(B){return me[B.getDay()]}function wt(B){return fe[B.getDay()]}function lt(B){return De[B.getMonth()]}function Fn(B){return Ae[B.getMonth()]}function Yn(B){return G[+(B.getHours()>=12)]}function cn(B){return 1+~~(B.getMonth()/3)}function Dn(B){return me[B.getUTCDay()]}function ki(B){return fe[B.getUTCDay()]}function Ti(B){return De[B.getUTCMonth()]}function Zr(B){return Ae[B.getUTCMonth()]}function x(B){return G[+(B.getUTCHours()>=12)]}function U(B){return 1+~~(B.getUTCMonth()/3)}return{format:function(B){var ae=nn(B+="",Wt);return ae.toString=function(){return B},ae},parse:function(B){var ae=Qt(B+="",!1);return ae.toString=function(){return B},ae},utcFormat:function(B){var ae=nn(B+="",ft);return ae.toString=function(){return B},ae},utcParse:function(B){var ae=Qt(B+="",!0);return ae.toString=function(){return B},ae}}}var d={"-":"",_:" ","0":"0"},p=/^\s*\d+/,b=/^%/,T=/[\\^$*+?|[\]().{}]/g;function E(z,$,P){var O=z<0?"-":"",G=(O?-z:z)+"",fe=G.length;return O+(fe68?1900:2e3),P+O[0].length):-1}function Oe(z,$,P){var O=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec($.slice(P,P+6));return O?(z.Z=O[1]?0:-(O[2]+(O[3]||"00")),P+O[0].length):-1}function Y(z,$,P){var O=p.exec($.slice(P,P+1));return O?(z.q=O[0]*3-3,P+O[0].length):-1}function c(z,$,P){var O=p.exec($.slice(P,P+2));return O?(z.m=O[0]-1,P+O[0].length):-1}function g(z,$,P){var O=p.exec($.slice(P,P+2));return O?(z.d=+O[0],P+O[0].length):-1}function k(z,$,P){var O=p.exec($.slice(P,P+3));return O?(z.m=0,z.d=+O[0],P+O[0].length):-1}function S(z,$,P){var O=p.exec($.slice(P,P+2));return O?(z.H=+O[0],P+O[0].length):-1}function N(z,$,P){var O=p.exec($.slice(P,P+2));return O?(z.M=+O[0],P+O[0].length):-1}function w(z,$,P){var O=p.exec($.slice(P,P+2));return O?(z.S=+O[0],P+O[0].length):-1}function F(z,$,P){var O=p.exec($.slice(P,P+3));return O?(z.L=+O[0],P+O[0].length):-1}function L(z,$,P){var O=p.exec($.slice(P,P+6));return O?(z.L=Math.floor(O[0]/1e3),P+O[0].length):-1}function Z(z,$,P){var O=b.exec($.slice(P,P+1));return O?P+O[0].length:-1}function _e(z,$,P){var O=p.exec($.slice(P));return O?(z.Q=+O[0],P+O[0].length):-1}function Ne(z,$,P){var O=p.exec($.slice(P));return O?(z.s=+O[0],P+O[0].length):-1}function Te(z,$){return E(z.getDate(),$,2)}function ue(z,$){return E(z.getHours(),$,2)}function Ie(z,$){return E(z.getHours()%12||12,$,2)}function he(z,$){return E(1+n.timeDay.count(n.timeYear(z),z),$,3)}function ye(z,$){return E(z.getMilliseconds(),$,3)}function de(z,$){return ye(z,$)+"000"}function ge(z,$){return E(z.getMonth()+1,$,2)}function He(z,$){return E(z.getMinutes(),$,2)}function We(z,$){return E(z.getSeconds(),$,2)}function it(z){var $=z.getDay();return $===0?7:$}function J(z,$){return E(n.timeSunday.count(n.timeYear(z)-1,z),$,2)}function Se(z){var $=z.getDay();return $>=4||$===0?n.timeThursday(z):n.timeThursday.ceil(z)}function Re(z,$){return z=Se(z),E(n.timeThursday.count(n.timeYear(z),z)+(n.timeYear(z).getDay()===4),$,2)}function Q(z){return z.getDay()}function re(z,$){return E(n.timeMonday.count(n.timeYear(z)-1,z),$,2)}function ce(z,$){return E(z.getFullYear()%100,$,2)}function Pe(z,$){return z=Se(z),E(z.getFullYear()%100,$,2)}function rt(z,$){return E(z.getFullYear()%1e4,$,4)}function dt(z,$){var P=z.getDay();return z=P>=4||P===0?n.timeThursday(z):n.timeThursday.ceil(z),E(z.getFullYear()%1e4,$,4)}function jt(z){var $=z.getTimezoneOffset();return($>0?"-":($*=-1,"+"))+E($/60|0,"0",2)+E($%60,"0",2)}function Gt(z,$){return E(z.getUTCDate(),$,2)}function Lt(z,$){return E(z.getUTCHours(),$,2)}function Mt(z,$){return E(z.getUTCHours()%12||12,$,2)}function Bt(z,$){return E(1+n.utcDay.count(n.utcYear(z),z),$,3)}function zt(z,$){return E(z.getUTCMilliseconds(),$,3)}function Xt(z,$){return zt(z,$)+"000"}function sn(z,$){return E(z.getUTCMonth()+1,$,2)}function Kt(z,$){return E(z.getUTCMinutes(),$,2)}function an(z,$){return E(z.getUTCSeconds(),$,2)}function A(z){var $=z.getUTCDay();return $===0?7:$}function V(z,$){return E(n.utcSunday.count(n.utcYear(z)-1,z),$,2)}function Le(z){var $=z.getUTCDay();return $>=4||$===0?n.utcThursday(z):n.utcThursday.ceil(z)}function qe(z,$){return z=Le(z),E(n.utcThursday.count(n.utcYear(z),z)+(n.utcYear(z).getUTCDay()===4),$,2)}function Ue(z){return z.getUTCDay()}function M(z,$){return E(n.utcMonday.count(n.utcYear(z)-1,z),$,2)}function te(z,$){return E(z.getUTCFullYear()%100,$,2)}function pe(z,$){return z=Le(z),E(z.getUTCFullYear()%100,$,2)}function Be(z,$){return E(z.getUTCFullYear()%1e4,$,4)}function Ke(z,$){var P=z.getUTCDay();return z=P>=4||P===0?n.utcThursday(z):n.utcThursday.ceil(z),E(z.getUTCFullYear()%1e4,$,4)}function st(){return"+0000"}function ht(){return"%"}function mt(z){return+z}function St(z){return Math.floor(+z/1e3)}var At;en({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function en(z){return At=h(z),e.timeFormat=At.format,e.timeParse=At.parse,e.utcFormat=At.utcFormat,e.utcParse=At.utcParse,At}var tn="%Y-%m-%dT%H:%M:%S.%LZ";function Yt(z){return z.toISOString()}var pn=Date.prototype.toISOString?Yt:e.utcFormat(tn);function X(z){var $=new Date(z);return isNaN($)?null:$}var Ee=+new Date("2000-01-01T00:00:00.000Z")?X:e.utcParse(tn);e.isoFormat=pn,e.isoParse=Ee,e.timeFormatDefaultLocale=en,e.timeFormatLocale=h,Object.defineProperty(e,"__esModule",{value:!0})})});var jp=yt((Bf,Dx)=>{(function(e,n){typeof Bf=="object"&&typeof Dx!="undefined"?n(Bf,Up(),bx(),zf(),Nx(),Bp(),Ox()):typeof define=="function"&&define.amd?define(["exports","d3-collection","d3-array","d3-interpolate","d3-format","d3-time","d3-time-format"],n):n(e.d3=e.d3||{},e.d3,e.d3,e.d3,e.d3,e.d3,e.d3)})(Bf,function(e,n,i,u,s,h,d){"use strict";function p(X,Ee){switch(arguments.length){case 0:break;case 1:this.range(X);break;default:this.range(Ee).domain(X);break}return this}function b(X,Ee){switch(arguments.length){case 0:break;case 1:this.interpolator(X);break;default:this.interpolator(Ee).domain(X);break}return this}var T=Array.prototype,E=T.map,I=T.slice,oe={name:"implicit"};function ve(){var X=n.map(),Ee=[],z=[],$=oe;function P(O){var G=O+"",fe=X.get(G);if(!fe){if($!==oe)return $;X.set(G,fe=Ee.push(O))}return z[(fe-1)%z.length]}return P.domain=function(O){if(!arguments.length)return Ee.slice();Ee=[],X=n.map();for(var G=-1,fe=O.length,me,Ae;++Gz&&($=Ee,Ee=z,z=$),function(P){return Math.max(Ee,Math.min(z,P))}}function c(X,Ee,z){var $=X[0],P=X[1],O=Ee[0],G=Ee[1];return P<$?($=Oe(P,$),O=z(G,O)):($=Oe($,P),O=z(O,G)),function(fe){return O($(fe))}}function g(X,Ee,z){var $=Math.min(X.length,Ee.length)-1,P=new Array($),O=new Array($),G=-1;for(X[$]2?g:c,me=Ae=null,Ge}function Ge(Ve){return isNaN(Ve=+Ve)?O:(me||(me=fe(X.map($),Ee,z)))($(G(Ve)))}return Ge.invert=function(Ve){return G(P((Ae||(Ae=fe(Ee,X.map($),u.interpolateNumber)))(Ve)))},Ge.domain=function(Ve){return arguments.length?(X=E.call(Ve,j),G===we||(G=Y(X)),De()):X.slice()},Ge.range=function(Ve){return arguments.length?(Ee=I.call(Ve),De()):Ee.slice()},Ge.rangeRound=function(Ve){return Ee=I.call(Ve),z=u.interpolateRound,De()},Ge.clamp=function(Ve){return arguments.length?(G=Ve?Y(X):we,Ge):G!==we},Ge.interpolate=function(Ve){return arguments.length?(z=Ve,De()):z},Ge.unknown=function(Ve){return arguments.length?(O=Ve,Ge):O},function(Ve,Qe){return $=Ve,P=Qe,De()}}function N(X,Ee){return S()(X,Ee)}function w(X,Ee,z,$){var P=i.tickStep(X,Ee,z),O;switch($=s.formatSpecifier($??",f"),$.type){case"s":{var G=Math.max(Math.abs(X),Math.abs(Ee));return $.precision==null&&!isNaN(O=s.precisionPrefix(P,G))&&($.precision=O),s.formatPrefix($,G)}case"":case"e":case"g":case"p":case"r":{$.precision==null&&!isNaN(O=s.precisionRound(P,Math.max(Math.abs(X),Math.abs(Ee))))&&($.precision=O-($.type==="e"));break}case"f":case"%":{$.precision==null&&!isNaN(O=s.precisionFixed(P))&&($.precision=O-($.type==="%")*2);break}}return s.format($)}function F(X){var Ee=X.domain;return X.ticks=function(z){var $=Ee();return i.ticks($[0],$[$.length-1],z??10)},X.tickFormat=function(z,$){var P=Ee();return w(P[0],P[P.length-1],z??10,$)},X.nice=function(z){z==null&&(z=10);var $=Ee(),P=0,O=$.length-1,G=$[P],fe=$[O],me;return fe0?(G=Math.floor(G/me)*me,fe=Math.ceil(fe/me)*me,me=i.tickIncrement(G,fe,z)):me<0&&(G=Math.ceil(G*me)/me,fe=Math.floor(fe*me)/me,me=i.tickIncrement(G,fe,z)),me>0?($[P]=Math.floor(G/me)*me,$[O]=Math.ceil(fe/me)*me,Ee($)):me<0&&($[P]=Math.ceil(G*me)/me,$[O]=Math.floor(fe*me)/me,Ee($)),X},X}function L(){var X=N(we,we);return X.copy=function(){return k(X,L())},p.apply(X,arguments),F(X)}function Z(X){var Ee;function z($){return isNaN($=+$)?Ee:$}return z.invert=z,z.domain=z.range=function($){return arguments.length?(X=E.call($,j),z):X.slice()},z.unknown=function($){return arguments.length?(Ee=$,z):Ee},z.copy=function(){return Z(X).unknown(Ee)},X=arguments.length?E.call(X,j):[0,1],F(z)}function _e(X,Ee){X=X.slice();var z=0,$=X.length-1,P=X[z],O=X[$],G;return O0){for(;VeDe)break;fn.push(Et)}}else for(;Ve=1;--Pt)if(Et=ut*Pt,!(EtDe)break;fn.push(Et)}}else fn=i.ticks(Ve,Qe,Math.min(Qe-Ve,It)).map(O);return Ge?fn.reverse():fn},Ee.tickFormat=function(fe,me){if(me==null&&(me=$===10?".0e":","),typeof me!="function"&&(me=s.format(me)),fe===1/0)return me;fe==null&&(fe=10);var Ae=Math.max(1,$*fe/Ee.ticks().length);return function(De){var Ge=De/O(Math.round(P(De)));return Ge*$<$-.5&&(Ge*=$),Ge<=Ae?me(De):""}},Ee.nice=function(){return z(_e(z(),{floor:function(fe){return O(Math.floor(P(fe)))},ceil:function(fe){return O(Math.ceil(P(fe)))}}))},Ee}function We(){var X=He(S()).domain([1,10]);return X.copy=function(){return k(X,We()).base(X.base())},p.apply(X,arguments),X}function it(X){return function(Ee){return Math.sign(Ee)*Math.log1p(Math.abs(Ee/X))}}function J(X){return function(Ee){return Math.sign(Ee)*Math.expm1(Math.abs(Ee))*X}}function Se(X){var Ee=1,z=X(it(Ee),J(Ee));return z.constant=function($){return arguments.length?X(it(Ee=+$),J(Ee)):Ee},F(z)}function Re(){var X=Se(S());return X.copy=function(){return k(X,Re()).constant(X.constant())},p.apply(X,arguments)}function Q(X){return function(Ee){return Ee<0?-Math.pow(-Ee,X):Math.pow(Ee,X)}}function re(X){return X<0?-Math.sqrt(-X):Math.sqrt(X)}function ce(X){return X<0?-X*X:X*X}function Pe(X){var Ee=X(we,we),z=1;function $(){return z===1?X(we,we):z===.5?X(re,ce):X(Q(z),Q(1/z))}return Ee.exponent=function(P){return arguments.length?(z=+P,$()):z},F(Ee)}function rt(){var X=Pe(S());return X.copy=function(){return k(X,rt()).exponent(X.exponent())},p.apply(X,arguments),X}function dt(){return rt.apply(null,arguments).exponent(.5)}function jt(){var X=[],Ee=[],z=[],$;function P(){var G=0,fe=Math.max(1,Ee.length);for(z=new Array(fe-1);++G0?z[fe-1]:X[0],fe=z?[$[z-1],Ee]:[$[Ae-1],$[Ae]]},G.unknown=function(me){return arguments.length&&(O=me),G},G.thresholds=function(){return $.slice()},G.copy=function(){return Gt().domain([X,Ee]).range(P).unknown(O)},p.apply(F(G),arguments)}function Lt(){var X=[.5],Ee=[0,1],z,$=1;function P(O){return O<=O?Ee[i.bisect(X,O,0,$)]:z}return P.domain=function(O){return arguments.length?(X=I.call(O),$=Math.min(X.length,Ee.length-1),P):X.slice()},P.range=function(O){return arguments.length?(Ee=I.call(O),$=Math.min(X.length,Ee.length-1),P):Ee.slice()},P.invertExtent=function(O){var G=Ee.indexOf(O);return[X[G-1],X[G]]},P.unknown=function(O){return arguments.length?(z=O,P):z},P.copy=function(){return Lt().domain(X).range(Ee).unknown(z)},p.apply(P,arguments)}var Mt=1e3,Bt=Mt*60,zt=Bt*60,Xt=zt*24,sn=Xt*7,Kt=Xt*30,an=Xt*365;function A(X){return new Date(X)}function V(X){return X instanceof Date?+X:+new Date(+X)}function Le(X,Ee,z,$,P,O,G,fe,me){var Ae=N(we,we),De=Ae.invert,Ge=Ae.domain,Ve=me(".%L"),Qe=me(":%S"),ut=me("%I:%M"),Pt=me("%I %p"),Et=me("%a %d"),It=me("%b %d"),fn=me("%B"),_n=me("%Y"),Sn=[[G,1,Mt],[G,5,5*Mt],[G,15,15*Mt],[G,30,30*Mt],[O,1,Bt],[O,5,5*Bt],[O,15,15*Bt],[O,30,30*Bt],[P,1,zt],[P,3,3*zt],[P,6,6*zt],[P,12,12*zt],[$,1,Xt],[$,2,2*Xt],[z,1,sn],[Ee,1,Kt],[Ee,3,3*Kt],[X,1,an]];function Wt(bt){return(G(bt){(function(e,n){typeof jf=="object"&&typeof Ax!="undefined"?n(jf):typeof define=="function"&&define.amd?define(["exports"],n):n(e.d3=e.d3||{})})(jf,function(e){"use strict";var n=Array.prototype.slice;function i(j){return j}var u=1,s=2,h=3,d=4,p=1e-6;function b(j){return"translate("+(j+.5)+",0)"}function T(j){return"translate(0,"+(j+.5)+")"}function E(j){return function(se){return+j(se)}}function I(j){var se=Math.max(0,j.bandwidth()-1)/2;return j.round()&&(se=Math.round(se)),function(we){return+j(we)+se}}function oe(){return!this.__axis}function ve(j,se){var we=[],Oe=null,Y=null,c=6,g=6,k=3,S=j===u||j===d?-1:1,N=j===d||j===s?"x":"y",w=j===u||j===h?b:T;function F(L){var Z=Oe??(se.ticks?se.ticks.apply(se,we):se.domain()),_e=Y??(se.tickFormat?se.tickFormat.apply(se,we):i),Ne=Math.max(c,0)+k,Te=se.range(),ue=+Te[0]+.5,Ie=+Te[Te.length-1]+.5,he=(se.bandwidth?I:E)(se.copy()),ye=L.selection?L.selection():L,de=ye.selectAll(".domain").data([null]),ge=ye.selectAll(".tick").data(Z,se).order(),He=ge.exit(),We=ge.enter().append("g").attr("class","tick"),it=ge.select("line"),J=ge.select("text");de=de.merge(de.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),ge=ge.merge(We),it=it.merge(We.append("line").attr("stroke","currentColor").attr(N+"2",S*c)),J=J.merge(We.append("text").attr("fill","currentColor").attr(N,S*Ne).attr("dy",j===u?"0em":j===h?"0.71em":"0.32em")),L!==ye&&(de=de.transition(L),ge=ge.transition(L),it=it.transition(L),J=J.transition(L),He=He.transition(L).attr("opacity",p).attr("transform",function(Se){return isFinite(Se=he(Se))?w(Se):this.getAttribute("transform")}),We.attr("opacity",p).attr("transform",function(Se){var Re=this.parentNode.__axis;return w(Re&&isFinite(Re=Re(Se))?Re:he(Se))})),He.remove(),de.attr("d",j===d||j==s?g?"M"+S*g+","+ue+"H0.5V"+Ie+"H"+S*g:"M0.5,"+ue+"V"+Ie:g?"M"+ue+","+S*g+"V0.5H"+Ie+"V"+S*g:"M"+ue+",0.5H"+Ie),ge.attr("opacity",1).attr("transform",function(Se){return w(he(Se))}),it.attr(N+"2",S*c),J.attr(N,S*Ne).text(_e),ye.filter(oe).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",j===s?"start":j===d?"end":"middle"),ye.each(function(){this.__axis=he})}return F.scale=function(L){return arguments.length?(se=L,F):se},F.ticks=function(){return we=n.call(arguments),F},F.tickArguments=function(L){return arguments.length?(we=L==null?[]:n.call(L),F):we.slice()},F.tickValues=function(L){return arguments.length?(Oe=L==null?null:n.call(L),F):Oe&&Oe.slice()},F.tickFormat=function(L){return arguments.length?(Y=L,F):Y},F.tickSize=function(L){return arguments.length?(c=g=+L,F):c},F.tickSizeInner=function(L){return arguments.length?(c=+L,F):c},F.tickSizeOuter=function(L){return arguments.length?(g=+L,F):g},F.tickPadding=function(L){return arguments.length?(k=+L,F):k},F}function Me(j){return ve(u,j)}function ne(j){return ve(s,j)}function H(j){return ve(h,j)}function R(j){return ve(d,j)}e.axisTop=Me,e.axisRight=ne,e.axisBottom=H,e.axisLeft=R,Object.defineProperty(e,"__esModule",{value:!0})})});var qf=yt((Yf,Ix)=>{(function(e,n){typeof Yf=="object"&&typeof Ix!="undefined"?n(Yf):typeof define=="function"&&define.amd?define(["exports"],n):(e=e||self,n(e.d3=e.d3||{}))})(Yf,function(e){"use strict";var n={value:function(){}};function i(){for(var p=0,b=arguments.length,T={},E;p=0&&(E=T.slice(I+1),T=T.slice(0,I)),T&&!b.hasOwnProperty(T))throw new Error("unknown type: "+T);return{type:T,name:E}})}u.prototype=i.prototype={constructor:u,on:function(p,b){var T=this._,E=s(p+"",T),I,oe=-1,ve=E.length;if(arguments.length<2){for(;++oe0)for(var T=new Array(I),E=0,I,oe;E{(function(e,n){typeof Gf=="object"&&typeof Rx!="undefined"?n(Gf):typeof define=="function"&&define.amd?define(["exports"],n):(e=e||self,n(e.d3=e.d3||{}))})(Gf,function(e){"use strict";var n=0,i=0,u=0,s=1e3,h,d,p=0,b=0,T=0,E=typeof performance=="object"&&performance.now?performance:Date,I=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(c){setTimeout(c,17)};function oe(){return b||(I(ve),b=E.now()+T)}function ve(){b=0}function Me(){this._call=this._time=this._next=null}Me.prototype=ne.prototype={constructor:Me,restart:function(c,g,k){if(typeof c!="function")throw new TypeError("callback is not a function");k=(k==null?oe():+k)+(g==null?0:+g),!this._next&&d!==this&&(d?d._next=this:h=this,d=this),this._call=c,this._time=k,we()},stop:function(){this._call&&(this._call=null,this._time=1/0,we())}};function ne(c,g,k){var S=new Me;return S.restart(c,g,k),S}function H(){oe(),++n;for(var c=h,g;c;)(g=b-c._time)>=0&&c._call.call(null,g),c=c._next;--n}function R(){b=(p=E.now())+T,n=i=0;try{H()}finally{n=0,se(),b=0}}function j(){var c=E.now(),g=c-p;g>s&&(T-=g,p=c)}function se(){for(var c,g=h,k,S=1/0;g;)g._call?(S>g._time&&(S=g._time),c=g,g=g._next):(k=g._next,g._next=null,g=c?c._next=k:h=k);d=c,we(S)}function we(c){if(!n){i&&(i=clearTimeout(i));var g=c-b;g>24?(c<1/0&&(i=setTimeout(R,c-E.now()-T)),u&&(u=clearInterval(u))):(u||(p=E.now(),u=setInterval(j,s)),n=1,I(R))}}function Oe(c,g,k){var S=new Me;return g=g==null?0:+g,S.restart(function(N){S.stop(),c(N+g)},g,k),S}function Y(c,g,k){var S=new Me,N=g;return g==null?(S.restart(c,g,k),S):(g=+g,k=k==null?oe():+k,S.restart(function w(F){F+=N,S.restart(w,N+=g,k),c(F)},g,k),S)}e.interval=Y,e.now=oe,e.timeout=Oe,e.timer=ne,e.timerFlush=H,Object.defineProperty(e,"__esModule",{value:!0})})});var zx=yt(($f,Fx)=>{(function(e,n){typeof $f=="object"&&typeof Fx!="undefined"?n($f):typeof define=="function"&&define.amd?define(["exports"],n):(e=e||self,n(e.d3=e.d3||{}))})($f,function(e){"use strict";function n(Q){return+Q}function i(Q){return Q*Q}function u(Q){return Q*(2-Q)}function s(Q){return((Q*=2)<=1?Q*Q:--Q*(2-Q)+1)/2}function h(Q){return Q*Q*Q}function d(Q){return--Q*Q*Q+1}function p(Q){return((Q*=2)<=1?Q*Q*Q:(Q-=2)*Q*Q+2)/2}var b=3,T=function Q(re){re=+re;function ce(Pe){return Math.pow(Pe,re)}return ce.exponent=Q,ce}(b),E=function Q(re){re=+re;function ce(Pe){return 1-Math.pow(1-Pe,re)}return ce.exponent=Q,ce}(b),I=function Q(re){re=+re;function ce(Pe){return((Pe*=2)<=1?Math.pow(Pe,re):2-Math.pow(2-Pe,re))/2}return ce.exponent=Q,ce}(b),oe=Math.PI,ve=oe/2;function Me(Q){return+Q==1?1:1-Math.cos(Q*ve)}function ne(Q){return Math.sin(Q*ve)}function H(Q){return(1-Math.cos(oe*Q))/2}function R(Q){return(Math.pow(2,-10*Q)-.0009765625)*1.0009775171065494}function j(Q){return R(1-+Q)}function se(Q){return 1-R(Q)}function we(Q){return((Q*=2)<=1?R(1-Q):2-R(Q-1))/2}function Oe(Q){return 1-Math.sqrt(1-Q*Q)}function Y(Q){return Math.sqrt(1- --Q*Q)}function c(Q){return((Q*=2)<=1?1-Math.sqrt(1-Q*Q):Math.sqrt(1-(Q-=2)*Q)+1)/2}var g=4/11,k=6/11,S=8/11,N=3/4,w=9/11,F=10/11,L=15/16,Z=21/22,_e=63/64,Ne=1/g/g;function Te(Q){return 1-ue(1-Q)}function ue(Q){return(Q=+Q){(function(e,n){typeof Vf=="object"&&typeof Hx!="undefined"?n(Vf,Jo(),qf(),qp(),zf(),Rf(),zx()):typeof define=="function"&&define.amd?define(["exports","d3-selection","d3-dispatch","d3-timer","d3-interpolate","d3-color","d3-ease"],n):(e=e||self,n(e.d3=e.d3||{},e.d3,e.d3,e.d3,e.d3,e.d3,e.d3))})(Vf,function(e,n,i,u,s,h,d){"use strict";var p=i.dispatch("start","end","cancel","interrupt"),b=[],T=0,E=1,I=2,oe=3,ve=4,Me=5,ne=6;function H(P,O,G,fe,me,Ae){var De=P.__transition;if(!De)P.__transition={};else if(G in De)return;we(P,G,{name:O,index:fe,group:me,on:p,tween:b,time:Ae.time,delay:Ae.delay,duration:Ae.duration,ease:Ae.ease,timer:null,state:T})}function R(P,O){var G=se(P,O);if(G.state>T)throw new Error("too late; already scheduled");return G}function j(P,O){var G=se(P,O);if(G.state>oe)throw new Error("too late; already running");return G}function se(P,O){var G=P.__transition;if(!G||!(G=G[O]))throw new Error("transition not found");return G}function we(P,O,G){var fe=P.__transition,me;fe[O]=G,G.timer=u.timer(Ae,0,G.time);function Ae(Qe){G.state=E,G.timer.restart(De,G.delay,G.time),G.delay<=Qe&&De(Qe-G.delay)}function De(Qe){var ut,Pt,Et,It;if(G.state!==E)return Ve();for(ut in fe)if(It=fe[ut],It.name===G.name){if(It.state===oe)return u.timeout(De);It.state===ve?(It.state=ne,It.timer.stop(),It.on.call("interrupt",P,P.__data__,It.index,It.group),delete fe[ut]):+utI&&fe.state=0&&(O=O.slice(0,G)),!O||O==="start"})}function rt(P,O,G){var fe,me,Ae=Pe(O)?R:j;return function(){var De=Ae(this,P),Ge=De.on;Ge!==fe&&(me=(fe=Ge).copy()).on(O,G),De.on=me}}function dt(P,O){var G=this._id;return arguments.length<2?se(this.node(),G).on.on(P):this.each(rt(G,P,O))}function jt(P){return function(){var O=this.parentNode;for(var G in this.__transition)if(+G!==P)return;O&&O.removeChild(this)}}function Gt(){return this.on("end.remove",jt(this._id))}function Lt(P){var O=this._name,G=this._id;typeof P!="function"&&(P=n.selector(P));for(var fe=this._groups,me=fe.length,Ae=new Array(me),De=0;DeE&&fe.name===O)return new At([[P]],z,O,+me)}return null}e.active=$,e.interrupt=Oe,e.transition=en,Object.defineProperty(e,"__esModule",{value:!0})})});var Bx=yt((Xf,Ux)=>{(function(e,n){typeof Xf=="object"&&typeof Ux!="undefined"?n(Xf):typeof define=="function"&&define.amd?define(["exports"],n):(e=e||self,n(e.d3=e.d3||{}))})(Xf,function(e){"use strict";var n=Math.PI,i=2*n,u=1e-6,s=i-u;function h(){this._x0=this._y0=this._x1=this._y1=null,this._=""}function d(){return new h}h.prototype=d.prototype={constructor:h,moveTo:function(p,b){this._+="M"+(this._x0=this._x1=+p)+","+(this._y0=this._y1=+b)},closePath:function(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},lineTo:function(p,b){this._+="L"+(this._x1=+p)+","+(this._y1=+b)},quadraticCurveTo:function(p,b,T,E){this._+="Q"+ +p+","+ +b+","+(this._x1=+T)+","+(this._y1=+E)},bezierCurveTo:function(p,b,T,E,I,oe){this._+="C"+ +p+","+ +b+","+ +T+","+ +E+","+(this._x1=+I)+","+(this._y1=+oe)},arcTo:function(p,b,T,E,I){p=+p,b=+b,T=+T,E=+E,I=+I;var oe=this._x1,ve=this._y1,Me=T-p,ne=E-b,H=oe-p,R=ve-b,j=H*H+R*R;if(I<0)throw new Error("negative radius: "+I);if(this._x1===null)this._+="M"+(this._x1=p)+","+(this._y1=b);else if(j>u)if(!(Math.abs(R*Me-ne*H)>u)||!I)this._+="L"+(this._x1=p)+","+(this._y1=b);else{var se=T-oe,we=E-ve,Oe=Me*Me+ne*ne,Y=se*se+we*we,c=Math.sqrt(Oe),g=Math.sqrt(j),k=I*Math.tan((n-Math.acos((Oe+j-Y)/(2*c*g)))/2),S=k/g,N=k/c;Math.abs(S-1)>u&&(this._+="L"+(p+S*H)+","+(b+S*R)),this._+="A"+I+","+I+",0,0,"+ +(R*se>H*we)+","+(this._x1=p+N*Me)+","+(this._y1=b+N*ne)}},arc:function(p,b,T,E,I,oe){p=+p,b=+b,T=+T,oe=!!oe;var ve=T*Math.cos(E),Me=T*Math.sin(E),ne=p+ve,H=b+Me,R=1^oe,j=oe?E-I:I-E;if(T<0)throw new Error("negative radius: "+T);this._x1===null?this._+="M"+ne+","+H:(Math.abs(this._x1-ne)>u||Math.abs(this._y1-H)>u)&&(this._+="L"+ne+","+H),!!T&&(j<0&&(j=j%i+i),j>s?this._+="A"+T+","+T+",0,1,"+R+","+(p-ve)+","+(b-Me)+"A"+T+","+T+",0,1,"+R+","+(this._x1=ne)+","+(this._y1=H):j>u&&(this._+="A"+T+","+T+",0,"+ +(j>=n)+","+R+","+(this._x1=p+T*Math.cos(I))+","+(this._y1=b+T*Math.sin(I))))},rect:function(p,b,T,E){this._+="M"+(this._x0=this._x1=+p)+","+(this._y0=this._y1=+b)+"h"+ +T+"v"+ +E+"h"+-T+"Z"},toString:function(){return this._}},e.path=d,Object.defineProperty(e,"__esModule",{value:!0})})});var Yx=yt((Kf,jx)=>{(function(e,n){typeof Kf=="object"&&typeof jx!="undefined"?n(Kf,Bx()):typeof define=="function"&&define.amd?define(["exports","d3-path"],n):(e=e||self,n(e.d3=e.d3||{},e.d3))})(Kf,function(e,n){"use strict";function i(x){return function(){return x}}var u=Math.abs,s=Math.atan2,h=Math.cos,d=Math.max,p=Math.min,b=Math.sin,T=Math.sqrt,E=1e-12,I=Math.PI,oe=I/2,ve=2*I;function Me(x){return x>1?0:x<-1?I:Math.acos(x)}function ne(x){return x>=1?oe:x<=-1?-oe:Math.asin(x)}function H(x){return x.innerRadius}function R(x){return x.outerRadius}function j(x){return x.startAngle}function se(x){return x.endAngle}function we(x){return x&&x.padAngle}function Oe(x,U,B,ae,Ce,le,Fe,xe){var je=B-x,nt=ae-U,Je=Fe-Ce,gt=xe-le,Nt=gt*je-Je*nt;if(!(Nt*NtSi*Si+si*si&&(Dr=fr,Qn=Tr),{cx:Dr,cy:Qn,x01:-Je,y01:-gt,x11:Dr*(Ce/kr-1),y11:Qn*(Ce/kr-1)}}function c(){var x=H,U=R,B=i(0),ae=null,Ce=j,le=se,Fe=we,xe=null;function je(){var nt,Je,gt=+x.apply(this,arguments),Nt=+U.apply(this,arguments),qt=Ce.apply(this,arguments)-oe,Rt=le.apply(this,arguments)-oe,dn=u(Rt-qt),$t=Rt>qt;if(xe||(xe=nt=n.path()),NtE))xe.moveTo(0,0);else if(dn>ve-E)xe.moveTo(Nt*h(qt),Nt*b(qt)),xe.arc(0,0,Nt,qt,Rt,!$t),gt>E&&(xe.moveTo(gt*h(Rt),gt*b(Rt)),xe.arc(0,0,gt,Rt,qt,$t));else{var An=qt,Mn=Rt,gn=qt,En=Rt,kr=dn,Kn=dn,Jr=Fe.apply(this,arguments)/2,Dr=Jr>E&&(ae?+ae.apply(this,arguments):T(gt*gt+Nt*Nt)),Qn=p(u(Nt-gt)/2,+B.apply(this,arguments)),fr=Qn,Tr=Qn,Dt,Vt;if(Dr>E){var Si=ne(Dr/gt*b(Jr)),si=ne(Dr/Nt*b(Jr));(kr-=Si*2)>E?(Si*=$t?1:-1,gn+=Si,En-=Si):(kr=0,gn=En=(qt+Rt)/2),(Kn-=si*2)>E?(si*=$t?1:-1,An+=si,Mn-=si):(Kn=0,An=Mn=(qt+Rt)/2)}var Zn=Nt*h(An),Hi=Nt*b(An),ea=gt*h(En),Wi=gt*b(En);if(Qn>E){var xo=Nt*h(Mn),Ar=Nt*b(Mn),_o=gt*h(gn),Ir=gt*b(gn),Sr;if(dnE?Tr>E?(Dt=Y(_o,Ir,Zn,Hi,Nt,Tr,$t),Vt=Y(xo,Ar,ea,Wi,Nt,Tr,$t),xe.moveTo(Dt.cx+Dt.x01,Dt.cy+Dt.y01),TrE)||!(kr>E)?xe.lineTo(ea,Wi):fr>E?(Dt=Y(ea,Wi,xo,Ar,gt,-fr,$t),Vt=Y(Zn,Hi,_o,Ir,gt,-fr,$t),xe.lineTo(Dt.cx+Dt.x01,Dt.cy+Dt.y01),fr=Nt;--qt)xe.point(Mn[qt],gn[qt]);xe.lineEnd(),xe.areaEnd()}$t&&(Mn[gt]=+x(dn,gt,Je),gn[gt]=+B(dn,gt,Je),xe.point(U?+U(dn,gt,Je):Mn[gt],ae?+ae(dn,gt,Je):gn[gt]))}if(An)return xe=null,An+""||null}function nt(){return w().defined(Ce).curve(Fe).context(le)}return je.x=function(Je){return arguments.length?(x=typeof Je=="function"?Je:i(+Je),U=null,je):x},je.x0=function(Je){return arguments.length?(x=typeof Je=="function"?Je:i(+Je),je):x},je.x1=function(Je){return arguments.length?(U=Je==null?null:typeof Je=="function"?Je:i(+Je),je):U},je.y=function(Je){return arguments.length?(B=typeof Je=="function"?Je:i(+Je),ae=null,je):B},je.y0=function(Je){return arguments.length?(B=typeof Je=="function"?Je:i(+Je),je):B},je.y1=function(Je){return arguments.length?(ae=Je==null?null:typeof Je=="function"?Je:i(+Je),je):ae},je.lineX0=je.lineY0=function(){return nt().x(x).y(B)},je.lineY1=function(){return nt().x(x).y(ae)},je.lineX1=function(){return nt().x(U).y(B)},je.defined=function(Je){return arguments.length?(Ce=typeof Je=="function"?Je:i(!!Je),je):Ce},je.curve=function(Je){return arguments.length?(Fe=Je,le!=null&&(xe=Fe(le)),je):Fe},je.context=function(Je){return arguments.length?(Je==null?le=xe=null:xe=Fe(le=Je),je):le},je}function L(x,U){return Ux?1:U>=x?0:NaN}function Z(x){return x}function _e(){var x=Z,U=L,B=null,ae=i(0),Ce=i(ve),le=i(0);function Fe(xe){var je,nt=xe.length,Je,gt,Nt=0,qt=new Array(nt),Rt=new Array(nt),dn=+ae.apply(this,arguments),$t=Math.min(ve,Math.max(-ve,Ce.apply(this,arguments)-dn)),An,Mn=Math.min(Math.abs($t)/nt,le.apply(this,arguments)),gn=Mn*($t<0?-1:1),En;for(je=0;je0&&(Nt+=En);for(U!=null?qt.sort(function(kr,Kn){return U(Rt[kr],Rt[Kn])}):B!=null&&qt.sort(function(kr,Kn){return B(xe[kr],xe[Kn])}),je=0,gt=Nt?($t-nt*gn)/Nt:0;je0?En*gt:0)+gn,Rt[Je]={data:xe[Je],index:je,value:En,startAngle:dn,endAngle:An,padAngle:Mn};return Rt}return Fe.value=function(xe){return arguments.length?(x=typeof xe=="function"?xe:i(+xe),Fe):x},Fe.sortValues=function(xe){return arguments.length?(U=xe,B=null,Fe):U},Fe.sort=function(xe){return arguments.length?(B=xe,U=null,Fe):B},Fe.startAngle=function(xe){return arguments.length?(ae=typeof xe=="function"?xe:i(+xe),Fe):ae},Fe.endAngle=function(xe){return arguments.length?(Ce=typeof xe=="function"?xe:i(+xe),Fe):Ce},Fe.padAngle=function(xe){return arguments.length?(le=typeof xe=="function"?xe:i(+xe),Fe):le},Fe}var Ne=ue(k);function Te(x){this._curve=x}Te.prototype={areaStart:function(){this._curve.areaStart()},areaEnd:function(){this._curve.areaEnd()},lineStart:function(){this._curve.lineStart()},lineEnd:function(){this._curve.lineEnd()},point:function(x,U){this._curve.point(U*Math.sin(x),U*-Math.cos(x))}};function ue(x){function U(B){return new Te(x(B))}return U._curve=x,U}function Ie(x){var U=x.curve;return x.angle=x.x,delete x.x,x.radius=x.y,delete x.y,x.curve=function(B){return arguments.length?U(ue(B)):U()._curve},x}function he(){return Ie(w().curve(Ne))}function ye(){var x=F().curve(Ne),U=x.curve,B=x.lineX0,ae=x.lineX1,Ce=x.lineY0,le=x.lineY1;return x.angle=x.x,delete x.x,x.startAngle=x.x0,delete x.x0,x.endAngle=x.x1,delete x.x1,x.radius=x.y,delete x.y,x.innerRadius=x.y0,delete x.y0,x.outerRadius=x.y1,delete x.y1,x.lineStartAngle=function(){return Ie(B())},delete x.lineX0,x.lineEndAngle=function(){return Ie(ae())},delete x.lineX1,x.lineInnerRadius=function(){return Ie(Ce())},delete x.lineY0,x.lineOuterRadius=function(){return Ie(le())},delete x.lineY1,x.curve=function(Fe){return arguments.length?U(ue(Fe)):U()._curve},x}function de(x,U){return[(U=+U)*Math.cos(x-=Math.PI/2),U*Math.sin(x)]}var ge=Array.prototype.slice;function He(x){return x.source}function We(x){return x.target}function it(x){var U=He,B=We,ae=S,Ce=N,le=null;function Fe(){var xe,je=ge.call(arguments),nt=U.apply(this,je),Je=B.apply(this,je);if(le||(le=xe=n.path()),x(le,+ae.apply(this,(je[0]=nt,je)),+Ce.apply(this,je),+ae.apply(this,(je[0]=Je,je)),+Ce.apply(this,je)),xe)return le=null,xe+""||null}return Fe.source=function(xe){return arguments.length?(U=xe,Fe):U},Fe.target=function(xe){return arguments.length?(B=xe,Fe):B},Fe.x=function(xe){return arguments.length?(ae=typeof xe=="function"?xe:i(+xe),Fe):ae},Fe.y=function(xe){return arguments.length?(Ce=typeof xe=="function"?xe:i(+xe),Fe):Ce},Fe.context=function(xe){return arguments.length?(le=xe??null,Fe):le},Fe}function J(x,U,B,ae,Ce){x.moveTo(U,B),x.bezierCurveTo(U=(U+ae)/2,B,U,Ce,ae,Ce)}function Se(x,U,B,ae,Ce){x.moveTo(U,B),x.bezierCurveTo(U,B=(B+Ce)/2,ae,B,ae,Ce)}function Re(x,U,B,ae,Ce){var le=de(U,B),Fe=de(U,B=(B+Ce)/2),xe=de(ae,B),je=de(ae,Ce);x.moveTo(le[0],le[1]),x.bezierCurveTo(Fe[0],Fe[1],xe[0],xe[1],je[0],je[1])}function Q(){return it(J)}function re(){return it(Se)}function ce(){var x=it(Re);return x.angle=x.x,delete x.x,x.radius=x.y,delete x.y,x}var Pe={draw:function(x,U){var B=Math.sqrt(U/I);x.moveTo(B,0),x.arc(0,0,B,0,ve)}},rt={draw:function(x,U){var B=Math.sqrt(U/5)/2;x.moveTo(-3*B,-B),x.lineTo(-B,-B),x.lineTo(-B,-3*B),x.lineTo(B,-3*B),x.lineTo(B,-B),x.lineTo(3*B,-B),x.lineTo(3*B,B),x.lineTo(B,B),x.lineTo(B,3*B),x.lineTo(-B,3*B),x.lineTo(-B,B),x.lineTo(-3*B,B),x.closePath()}},dt=Math.sqrt(1/3),jt=dt*2,Gt={draw:function(x,U){var B=Math.sqrt(U/jt),ae=B*dt;x.moveTo(0,-B),x.lineTo(ae,0),x.lineTo(0,B),x.lineTo(-ae,0),x.closePath()}},Lt=.8908130915292852,Mt=Math.sin(I/10)/Math.sin(7*I/10),Bt=Math.sin(ve/10)*Mt,zt=-Math.cos(ve/10)*Mt,Xt={draw:function(x,U){var B=Math.sqrt(U*Lt),ae=Bt*B,Ce=zt*B;x.moveTo(0,-B),x.lineTo(ae,Ce);for(var le=1;le<5;++le){var Fe=ve*le/5,xe=Math.cos(Fe),je=Math.sin(Fe);x.lineTo(je*B,-xe*B),x.lineTo(xe*ae-je*Ce,je*ae+xe*Ce)}x.closePath()}},sn={draw:function(x,U){var B=Math.sqrt(U),ae=-B/2;x.rect(ae,ae,B,B)}},Kt=Math.sqrt(3),an={draw:function(x,U){var B=-Math.sqrt(U/(Kt*3));x.moveTo(0,B*2),x.lineTo(-Kt*B,-B),x.lineTo(Kt*B,-B),x.closePath()}},A=-.5,V=Math.sqrt(3)/2,Le=1/Math.sqrt(12),qe=(Le/2+1)*3,Ue={draw:function(x,U){var B=Math.sqrt(U/qe),ae=B/2,Ce=B*Le,le=ae,Fe=B*Le+B,xe=-le,je=Fe;x.moveTo(ae,Ce),x.lineTo(le,Fe),x.lineTo(xe,je),x.lineTo(A*ae-V*Ce,V*ae+A*Ce),x.lineTo(A*le-V*Fe,V*le+A*Fe),x.lineTo(A*xe-V*je,V*xe+A*je),x.lineTo(A*ae+V*Ce,A*Ce-V*ae),x.lineTo(A*le+V*Fe,A*Fe-V*le),x.lineTo(A*xe+V*je,A*je-V*xe),x.closePath()}},M=[Pe,rt,Gt,sn,Xt,an,Ue];function te(){var x=i(Pe),U=i(64),B=null;function ae(){var Ce;if(B||(B=Ce=n.path()),x.apply(this,arguments).draw(B,+U.apply(this,arguments)),Ce)return B=null,Ce+""||null}return ae.type=function(Ce){return arguments.length?(x=typeof Ce=="function"?Ce:i(Ce),ae):x},ae.size=function(Ce){return arguments.length?(U=typeof Ce=="function"?Ce:i(+Ce),ae):U},ae.context=function(Ce){return arguments.length?(B=Ce??null,ae):B},ae}function pe(){}function Be(x,U,B){x._context.bezierCurveTo((2*x._x0+x._x1)/3,(2*x._y0+x._y1)/3,(x._x0+2*x._x1)/3,(x._y0+2*x._y1)/3,(x._x0+4*x._x1+U)/6,(x._y0+4*x._y1+B)/6)}function Ke(x){this._context=x}Ke.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:Be(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(x,U){switch(x=+x,U=+U,this._point){case 0:this._point=1,this._line?this._context.lineTo(x,U):this._context.moveTo(x,U);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:Be(this,x,U);break}this._x0=this._x1,this._x1=x,this._y0=this._y1,this._y1=U}};function st(x){return new Ke(x)}function ht(x){this._context=x}ht.prototype={areaStart:pe,areaEnd:pe,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(x,U){switch(x=+x,U=+U,this._point){case 0:this._point=1,this._x2=x,this._y2=U;break;case 1:this._point=2,this._x3=x,this._y3=U;break;case 2:this._point=3,this._x4=x,this._y4=U,this._context.moveTo((this._x0+4*this._x1+x)/6,(this._y0+4*this._y1+U)/6);break;default:Be(this,x,U);break}this._x0=this._x1,this._x1=x,this._y0=this._y1,this._y1=U}};function mt(x){return new ht(x)}function St(x){this._context=x}St.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(x,U){switch(x=+x,U=+U,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var B=(this._x0+4*this._x1+x)/6,ae=(this._y0+4*this._y1+U)/6;this._line?this._context.lineTo(B,ae):this._context.moveTo(B,ae);break;case 3:this._point=4;default:Be(this,x,U);break}this._x0=this._x1,this._x1=x,this._y0=this._y1,this._y1=U}};function At(x){return new St(x)}function en(x,U){this._basis=new Ke(x),this._beta=U}en.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var x=this._x,U=this._y,B=x.length-1;if(B>0)for(var ae=x[0],Ce=U[0],le=x[B]-ae,Fe=U[B]-Ce,xe=-1,je;++xe<=B;)je=xe/B,this._basis.point(this._beta*x[xe]+(1-this._beta)*(ae+je*le),this._beta*U[xe]+(1-this._beta)*(Ce+je*Fe));this._x=this._y=null,this._basis.lineEnd()},point:function(x,U){this._x.push(+x),this._y.push(+U)}};var tn=function x(U){function B(ae){return U===1?new Ke(ae):new en(ae,U)}return B.beta=function(ae){return x(+ae)},B}(.85);function Yt(x,U,B){x._context.bezierCurveTo(x._x1+x._k*(x._x2-x._x0),x._y1+x._k*(x._y2-x._y0),x._x2+x._k*(x._x1-U),x._y2+x._k*(x._y1-B),x._x2,x._y2)}function pn(x,U){this._context=x,this._k=(1-U)/6}pn.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:Yt(this,this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(x,U){switch(x=+x,U=+U,this._point){case 0:this._point=1,this._line?this._context.lineTo(x,U):this._context.moveTo(x,U);break;case 1:this._point=2,this._x1=x,this._y1=U;break;case 2:this._point=3;default:Yt(this,x,U);break}this._x0=this._x1,this._x1=this._x2,this._x2=x,this._y0=this._y1,this._y1=this._y2,this._y2=U}};var X=function x(U){function B(ae){return new pn(ae,U)}return B.tension=function(ae){return x(+ae)},B}(0);function Ee(x,U){this._context=x,this._k=(1-U)/6}Ee.prototype={areaStart:pe,areaEnd:pe,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},point:function(x,U){switch(x=+x,U=+U,this._point){case 0:this._point=1,this._x3=x,this._y3=U;break;case 1:this._point=2,this._context.moveTo(this._x4=x,this._y4=U);break;case 2:this._point=3,this._x5=x,this._y5=U;break;default:Yt(this,x,U);break}this._x0=this._x1,this._x1=this._x2,this._x2=x,this._y0=this._y1,this._y1=this._y2,this._y2=U}};var z=function x(U){function B(ae){return new Ee(ae,U)}return B.tension=function(ae){return x(+ae)},B}(0);function $(x,U){this._context=x,this._k=(1-U)/6}$.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(x,U){switch(x=+x,U=+U,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:Yt(this,x,U);break}this._x0=this._x1,this._x1=this._x2,this._x2=x,this._y0=this._y1,this._y1=this._y2,this._y2=U}};var P=function x(U){function B(ae){return new $(ae,U)}return B.tension=function(ae){return x(+ae)},B}(0);function O(x,U,B){var ae=x._x1,Ce=x._y1,le=x._x2,Fe=x._y2;if(x._l01_a>E){var xe=2*x._l01_2a+3*x._l01_a*x._l12_a+x._l12_2a,je=3*x._l01_a*(x._l01_a+x._l12_a);ae=(ae*xe-x._x0*x._l12_2a+x._x2*x._l01_2a)/je,Ce=(Ce*xe-x._y0*x._l12_2a+x._y2*x._l01_2a)/je}if(x._l23_a>E){var nt=2*x._l23_2a+3*x._l23_a*x._l12_a+x._l12_2a,Je=3*x._l23_a*(x._l23_a+x._l12_a);le=(le*nt+x._x1*x._l23_2a-U*x._l12_2a)/Je,Fe=(Fe*nt+x._y1*x._l23_2a-B*x._l12_2a)/Je}x._context.bezierCurveTo(ae,Ce,le,Fe,x._x2,x._y2)}function G(x,U){this._context=x,this._alpha=U}G.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(x,U){if(x=+x,U=+U,this._point){var B=this._x2-x,ae=this._y2-U;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(B*B+ae*ae,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(x,U):this._context.moveTo(x,U);break;case 1:this._point=2;break;case 2:this._point=3;default:O(this,x,U);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=x,this._y0=this._y1,this._y1=this._y2,this._y2=U}};var fe=function x(U){function B(ae){return U?new G(ae,U):new pn(ae,0)}return B.alpha=function(ae){return x(+ae)},B}(.5);function me(x,U){this._context=x,this._alpha=U}me.prototype={areaStart:pe,areaEnd:pe,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},point:function(x,U){if(x=+x,U=+U,this._point){var B=this._x2-x,ae=this._y2-U;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(B*B+ae*ae,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=x,this._y3=U;break;case 1:this._point=2,this._context.moveTo(this._x4=x,this._y4=U);break;case 2:this._point=3,this._x5=x,this._y5=U;break;default:O(this,x,U);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=x,this._y0=this._y1,this._y1=this._y2,this._y2=U}};var Ae=function x(U){function B(ae){return U?new me(ae,U):new Ee(ae,0)}return B.alpha=function(ae){return x(+ae)},B}(.5);function De(x,U){this._context=x,this._alpha=U}De.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(x,U){if(x=+x,U=+U,this._point){var B=this._x2-x,ae=this._y2-U;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(B*B+ae*ae,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:O(this,x,U);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=x,this._y0=this._y1,this._y1=this._y2,this._y2=U}};var Ge=function x(U){function B(ae){return U?new De(ae,U):new $(ae,0)}return B.alpha=function(ae){return x(+ae)},B}(.5);function Ve(x){this._context=x}Ve.prototype={areaStart:pe,areaEnd:pe,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(x,U){x=+x,U=+U,this._point?this._context.lineTo(x,U):(this._point=1,this._context.moveTo(x,U))}};function Qe(x){return new Ve(x)}function ut(x){return x<0?-1:1}function Pt(x,U,B){var ae=x._x1-x._x0,Ce=U-x._x1,le=(x._y1-x._y0)/(ae||Ce<0&&-0),Fe=(B-x._y1)/(Ce||ae<0&&-0),xe=(le*Ce+Fe*ae)/(ae+Ce);return(ut(le)+ut(Fe))*Math.min(Math.abs(le),Math.abs(Fe),.5*Math.abs(xe))||0}function Et(x,U){var B=x._x1-x._x0;return B?(3*(x._y1-x._y0)/B-U)/2:U}function It(x,U,B){var ae=x._x0,Ce=x._y0,le=x._x1,Fe=x._y1,xe=(le-ae)/3;x._context.bezierCurveTo(ae+xe,Ce+xe*U,le-xe,Fe-xe*B,le,Fe)}function fn(x){this._context=x}fn.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:It(this,this._t0,Et(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(x,U){var B=NaN;if(x=+x,U=+U,!(x===this._x1&&U===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(x,U):this._context.moveTo(x,U);break;case 1:this._point=2;break;case 2:this._point=3,It(this,Et(this,B=Pt(this,x,U)),B);break;default:It(this,this._t0,B=Pt(this,x,U));break}this._x0=this._x1,this._x1=x,this._y0=this._y1,this._y1=U,this._t0=B}}};function _n(x){this._context=new Sn(x)}(_n.prototype=Object.create(fn.prototype)).point=function(x,U){fn.prototype.point.call(this,U,x)};function Sn(x){this._context=x}Sn.prototype={moveTo:function(x,U){this._context.moveTo(U,x)},closePath:function(){this._context.closePath()},lineTo:function(x,U){this._context.lineTo(U,x)},bezierCurveTo:function(x,U,B,ae,Ce,le){this._context.bezierCurveTo(U,x,ae,B,le,Ce)}};function Wt(x){return new fn(x)}function ft(x){return new _n(x)}function bt(x){this._context=x}bt.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var x=this._x,U=this._y,B=x.length;if(B)if(this._line?this._context.lineTo(x[0],U[0]):this._context.moveTo(x[0],U[0]),B===2)this._context.lineTo(x[1],U[1]);else for(var ae=nn(x),Ce=nn(U),le=0,Fe=1;Fe=0;--U)Ce[U]=(Fe[U]-Ce[U+1])/le[U];for(le[B-1]=(x[B]+Ce[B-1])/2,U=0;U=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(x,U){switch(x=+x,U=+U,this._point){case 0:this._point=1,this._line?this._context.lineTo(x,U):this._context.moveTo(x,U);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,U),this._context.lineTo(x,U);else{var B=this._x*(1-this._t)+x*this._t;this._context.lineTo(B,this._y),this._context.lineTo(B,U)}break}}this._x=x,this._y=U}};function q(x){return new Tt(x,.5)}function m(x){return new Tt(x,0)}function D(x){return new Tt(x,1)}function W(x,U){if((Fe=x.length)>1)for(var B=1,ae,Ce,le=x[U[0]],Fe,xe=le.length;B=0;)B[U]=U;return B}function Ye(x,U){return x[U]}function et(){var x=i([]),U=ie,B=W,ae=Ye;function Ce(le){var Fe=x.apply(this,arguments),xe,je=le.length,nt=Fe.length,Je=new Array(nt),gt;for(xe=0;xe0){for(var B,ae,Ce=0,le=x[0].length,Fe;Ce0)for(var B,ae=0,Ce,le,Fe,xe,je,nt=x[U[0]].length;ae0?(Ce[0]=Fe,Ce[1]=Fe+=le):le<0?(Ce[1]=xe,Ce[0]=xe+=le):(Ce[0]=0,Ce[1]=le)}function wt(x,U){if((Ce=x.length)>0){for(var B=0,ae=x[U[0]],Ce,le=ae.length;B0)||!((le=(Ce=x[U[0]]).length)>0))){for(var B=0,ae=1,Ce,le,Fe;aele&&(le=Ce,B=U);return B}function cn(x){var U=x.map(Dn);return ie(x).sort(function(B,ae){return U[B]-U[ae]})}function Dn(x){for(var U=0,B=-1,ae=x.length,Ce;++B{(function(e,n){typeof Qf=="object"&&typeof qx!="undefined"?n(Qf):typeof define=="function"&&define.amd?define(["exports"],n):(e=e||self,n(e.d3=e.d3||{}))})(Qf,function(e){"use strict";function n(Y,c,g){return c in Y?Object.defineProperty(Y,c,{value:g,enumerable:!0,configurable:!0,writable:!0}):Y[c]=g,Y}function i(){return i=Object.assign||function(Y){for(var c=1;cY.length)&&(c=Y.length);for(var g=0,k=new Array(c);g=Y.length?{done:!0}:{done:!1,value:Y[k++]}},e:function(L){throw L},f:S}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var N=!0,w=!1,F;return{s:function(){g=Y[Symbol.iterator]()},n:function(){var L=g.next();return N=L.done,L},e:function(L){w=!0,F=L},f:function(){try{!N&&g.return!=null&&g.return()}finally{if(w)throw F}}}}function b(Y,c){var g=[],k=[];function S(N,w){if(N.length===1)g.push(N[0]),k.push(N[0]);else{for(var F=Array(N.length-1),L=0;L=3&&(c.x1=Y[1][0],c.y1=Y[1][1]),c.x=Y[Y.length-1][0],c.y=Y[Y.length-1][1],Y.length===4?c.type="C":Y.length===3?c.type="Q":c.type="L",c}function E(Y,c){c=c||2;for(var g=[],k=Y,S=1/c,N=0;N0?Ne-=1:Ne0&&(Ne-=1))}return L[Ne]=(L[Ne]||0)+1,L},[]),F=w.reduce(function(L,Z,_e){if(_e===Y.length-1){var Ne=Me(Z,i({},Y[Y.length-1]));return Ne[0].type==="M"&&Ne.forEach(function(Te){Te.type="L"}),L.concat(Ne)}return L.concat(R(Y[_e],Y[_e+1],Z))},[]);return F.unshift(Y[0]),F}function se(Y){for(var c=(Y||"").match(oe)||[],g=[],k,S,N=0;N0&&k[k.length-1].type==="Z"&&k.pop(),S.length>0&&S[S.length-1].type==="Z"&&S.pop(),k.length?S.length||S.push(k[0]):k.push(S[0]);var w=Math.abs(S.length-k.length);w!==0&&(S.length>k.length?k=j(k,S,g):S.length0)for(var _e=0;_e{(function(e,n){typeof ec=="object"&&typeof Vx!="undefined"?n(ec):typeof define=="function"&&define.amd?define(["exports"],n):(e=e||self,n(e.d3=e.d3||{}))})(ec,function(e){"use strict";function n(c){var g=+this._x.call(null,c),k=+this._y.call(null,c);return i(this.cover(g,k),g,k,c)}function i(c,g,k,S){if(isNaN(g)||isNaN(k))return c;var N,w=c._root,F={data:S},L=c._x0,Z=c._y0,_e=c._x1,Ne=c._y1,Te,ue,Ie,he,ye,de,ge,He;if(!w)return c._root=F,c;for(;w.length;)if((ye=g>=(Te=(L+_e)/2))?L=Te:_e=Te,(de=k>=(ue=(Z+Ne)/2))?Z=ue:Ne=ue,N=w,!(w=w[ge=de<<1|ye]))return N[ge]=F,c;if(Ie=+c._x.call(null,w.data),he=+c._y.call(null,w.data),g===Ie&&k===he)return F.next=w,N?N[ge]=F:c._root=F,c;do N=N?N[ge]=new Array(4):c._root=new Array(4),(ye=g>=(Te=(L+_e)/2))?L=Te:_e=Te,(de=k>=(ue=(Z+Ne)/2))?Z=ue:Ne=ue;while((ge=de<<1|ye)==(He=(he>=ue)<<1|Ie>=Te));return N[He]=w,N[ge]=F,c}function u(c){var g,k,S=c.length,N,w,F=new Array(S),L=new Array(S),Z=1/0,_e=1/0,Ne=-1/0,Te=-1/0;for(k=0;kNe&&(Ne=N),w<_e&&(_e=w),w>Te&&(Te=w));if(Z>Ne||_e>Te)return this;for(this.cover(Z,_e).cover(Ne,Te),k=0;kc||c>=N||S>g||g>=w;)switch(_e=(gNe||(L=he.y0)>Te||(Z=he.x1)=ge)<<1|c>=de)&&(he=ue[ue.length-1],ue[ue.length-1]=ue[ue.length-1-ye],ue[ue.length-1-ye]=he)}else{var He=c-+this._x.call(null,Ie.data),We=g-+this._y.call(null,Ie.data),it=He*He+We*We;if(it=(ue=(F+Z)/2))?F=ue:Z=ue,(ye=Te>=(Ie=(L+_e)/2))?L=Ie:_e=Ie,g=k,!(k=k[de=ye<<1|he]))return this;if(!k.length)break;(g[de+1&3]||g[de+2&3]||g[de+3&3])&&(S=g,ge=de)}for(;k.data!==c;)if(N=k,!(k=k.next))return this;return(w=k.next)&&delete k.next,N?(w?N.next=w:delete N.next,this):g?(w?g[de]=w:delete g[de],(k=g[0]||g[1]||g[2]||g[3])&&k===(g[3]||g[2]||g[1]||g[0])&&!k.length&&(S?S[ge]=k:this._root=k),this):(this._root=w,this)}function E(c){for(var g=0,k=c.length;g{(function(e,n){typeof tc=="object"&&typeof Kx!="undefined"?n(tc,Xx(),Up(),qf(),qp()):typeof define=="function"&&define.amd?define(["exports","d3-quadtree","d3-collection","d3-dispatch","d3-timer"],n):n(e.d3=e.d3||{},e.d3,e.d3,e.d3,e.d3)})(tc,function(e,n,i,u,s){"use strict";function h(c,g){var k;c==null&&(c=0),g==null&&(g=0);function S(){var N,w=k.length,F,L=0,Z=0;for(N=0;NTe.index){var ce=ue-Re.x-Re.vx,Pe=Ie-Re.y-Re.vy,rt=ce*ce+Pe*Pe;rtue+re||JIe+re||SeZ.r&&(Z.r=Z[_e].r)}function L(){if(!!g){var Z,_e=g.length,Ne;for(k=new Array(_e),Z=0;Z<_e;++Z)Ne=g[Z],k[Ne.index]=+c(Ne,Z,g)}}return w.initialize=function(Z){g=Z,L()},w.iterations=function(Z){return arguments.length?(N=+Z,w):N},w.strength=function(Z){return arguments.length?(S=+Z,w):S},w.radius=function(Z){return arguments.length?(c=typeof Z=="function"?Z:d(+Z),L(),w):c},w}function I(c){return c.index}function oe(c,g){var k=c.get(g);if(!k)throw new Error("missing: "+g);return k}function ve(c){var g=I,k=Ne,S,N=d(30),w,F,L,Z,_e=1;c==null&&(c=[]);function Ne(ye){return 1/Math.min(L[ye.source.index],L[ye.target.index])}function Te(ye){for(var de=0,ge=c.length;de<_e;++de)for(var He=0,We,it,J,Se,Re,Q,re;He1?(ye==null?L.remove(he):L.set(he,Ie(ye)),g):L.get(he)},find:function(he,ye,de){var ge=0,He=c.length,We,it,J,Se,Re;for(de==null?de=1/0:de*=de,ge=0;ge1?(_e.on(he,ye),g):_e.on(he)}}}function se(){var c,g,k,S=d(-30),N,w=1,F=1/0,L=.81;function Z(ue){var Ie,he=c.length,ye=n.quadtree(c,Me,ne).visitAfter(Ne);for(k=ue,Ie=0;Ie=F)return;(ue.data!==g||ue.next)&&(de===0&&(de=p(),We+=de*de),ge===0&&(ge=p(),We+=ge*ge),We{(function(e,n){typeof nc=="object"&&typeof Zx!="undefined"?n(nc,qf(),Jo()):typeof define=="function"&&define.amd?define(["exports","d3-dispatch","d3-selection"],n):(e=e||self,n(e.d3=e.d3||{},e.d3,e.d3))})(nc,function(e,n,i){"use strict";function u(){i.event.stopImmediatePropagation()}function s(){i.event.preventDefault(),i.event.stopImmediatePropagation()}function h(Me){var ne=Me.document.documentElement,H=i.select(Me).on("dragstart.drag",s,!0);"onselectstart"in ne?H.on("selectstart.drag",s,!0):(ne.__noselect=ne.style.MozUserSelect,ne.style.MozUserSelect="none")}function d(Me,ne){var H=Me.document.documentElement,R=i.select(Me).on("dragstart.drag",null);ne&&(R.on("click.drag",s,!0),setTimeout(function(){R.on("click.drag",null)},0)),"onselectstart"in H?R.on("selectstart.drag",null):(H.style.MozUserSelect=H.__noselect,delete H.__noselect)}function p(Me){return function(){return Me}}function b(Me,ne,H,R,j,se,we,Oe,Y,c){this.target=Me,this.type=ne,this.subject=H,this.identifier=R,this.active=j,this.x=se,this.y=we,this.dx=Oe,this.dy=Y,this._=c}b.prototype.on=function(){var Me=this._.on.apply(this._,arguments);return Me===this._?this:Me};function T(){return!i.event.ctrlKey&&!i.event.button}function E(){return this.parentNode}function I(Me){return Me??{x:i.event.x,y:i.event.y}}function oe(){return navigator.maxTouchPoints||"ontouchstart"in this}function ve(){var Me=T,ne=E,H=I,R=oe,j={},se=n.dispatch("start","drag","end"),we=0,Oe,Y,c,g,k=0;function S(Te){Te.on("mousedown.drag",N).filter(R).on("touchstart.drag",L).on("touchmove.drag",Z).on("touchend.drag touchcancel.drag",_e).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function N(){if(!(g||!Me.apply(this,arguments))){var Te=Ne("mouse",ne.apply(this,arguments),i.mouse,this,arguments);!Te||(i.select(i.event.view).on("mousemove.drag",w,!0).on("mouseup.drag",F,!0),h(i.event.view),u(),c=!1,Oe=i.event.clientX,Y=i.event.clientY,Te("start"))}}function w(){if(s(),!c){var Te=i.event.clientX-Oe,ue=i.event.clientY-Y;c=Te*Te+ue*ue>k}j.mouse("drag")}function F(){i.select(i.event.view).on("mousemove.drag mouseup.drag",null),d(i.event.view,c),s(),j.mouse("end")}function L(){if(!!Me.apply(this,arguments)){var Te=i.event.changedTouches,ue=ne.apply(this,arguments),Ie=Te.length,he,ye;for(he=0;he=0;E--){var I=u[E];I==="."?ip(u,E):I===".."?(ip(u,E),T++):T&&(ip(u,E),T--)}if(!d)for(;T--;T)u.unshift("..");d&&u[0]!==""&&(!u[0]||!vf(u[0]))&&u.unshift("");var oe=u.join("/");return p&&oe.substr(-1)!=="/"&&(oe+="/"),oe}var v1=lb;var sb=!0,g1="Invariant failed";function fb(e,n){if(!e)throw sb?new Error(g1):new Error(g1+": "+(n||""))}var li=fb;function dl(e){return e.charAt(0)==="/"?e:"/"+e}function m1(e){return e.charAt(0)==="/"?e.substr(1):e}function cb(e,n){return e.toLowerCase().indexOf(n.toLowerCase())===0&&"/?#".indexOf(e.charAt(n.length))!==-1}function y1(e,n){return cb(e,n)?e.substr(n.length):e}function w1(e){return e.charAt(e.length-1)==="/"?e.slice(0,-1):e}function hb(e){var n=e||"/",i="",u="",s=n.indexOf("#");s!==-1&&(u=n.substr(s),n=n.substr(0,s));var h=n.indexOf("?");return h!==-1&&(i=n.substr(h),n=n.substr(0,h)),{pathname:n,search:i==="?"?"":i,hash:u==="#"?"":u}}function jr(e){var n=e.pathname,i=e.search,u=e.hash,s=n||"/";return i&&i!=="?"&&(s+=i.charAt(0)==="?"?i:"?"+i),u&&u!=="#"&&(s+=u.charAt(0)==="#"?u:"#"+u),s}function wr(e,n,i,u){var s;typeof e=="string"?(s=hb(e),s.state=n):(s=Rn({},e),s.pathname===void 0&&(s.pathname=""),s.search?s.search.charAt(0)!=="?"&&(s.search="?"+s.search):s.search="",s.hash?s.hash.charAt(0)!=="#"&&(s.hash="#"+s.hash):s.hash="",n!==void 0&&s.state===void 0&&(s.state=n));try{s.pathname=decodeURI(s.pathname)}catch(h){throw h instanceof URIError?new URIError('Pathname "'+s.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):h}return i&&(s.key=i),u?s.pathname?s.pathname.charAt(0)!=="/"&&(s.pathname=v1(s.pathname,u.pathname)):s.pathname=u.pathname:s.pathname||(s.pathname="/"),s}function op(){var e=null;function n(d){return e=d,function(){e===d&&(e=null)}}function i(d,p,b,T){if(e!=null){var E=typeof e=="function"?e(d,p):e;typeof E=="string"?typeof b=="function"?b(E,T):T(!0):T(E!==!1)}else T(!0)}var u=[];function s(d){var p=!0;function b(){p&&d.apply(void 0,arguments)}return u.push(b),function(){p=!1,u=u.filter(function(T){return T!==b})}}function h(){for(var d=arguments.length,p=new Array(d),b=0;bL?Z.splice(L,Z.length-L,N):Z.push(N),E({action:S,location:N,index:L,entries:Z})}})}function H(g,k){var S="REPLACE",N=wr(g,k,I(),c.location);T.confirmTransitionTo(N,S,i,function(w){!w||(c.entries[c.index]=N,E({action:S,location:N}))})}function R(g){var k=N1(c.index+g,0,c.entries.length-1),S="POP",N=c.entries[k];T.confirmTransitionTo(N,S,i,function(w){w?E({action:S,location:N,index:k}):E()})}function j(){R(-1)}function se(){R(1)}function we(g){var k=c.index+g;return k>=0&&k=0)&&(i[s]=e[s]);return i}var X1=Ut($1()),qb=function(n){var i=sp();return i.displayName=n,i},Gb=qb("Router-History"),$b=function(n){var i=sp();return i.displayName=n,i},vo=$b("Router"),Ya=function(e){Lr(n,e),n.computeRootMatch=function(s){return{path:"/",url:"/",params:{},isExact:s==="/"}};function n(u){var s;return s=e.call(this,u)||this,s.state={location:u.history.location},s._isMounted=!1,s._pendingLocation=null,u.staticContext||(s.unlisten=u.history.listen(function(h){s._isMounted?s.setState({location:h}):s._pendingLocation=h})),s}var i=n.prototype;return i.componentDidMount=function(){this._isMounted=!0,this._pendingLocation&&this.setState({location:this._pendingLocation})},i.componentWillUnmount=function(){this.unlisten&&this.unlisten()},i.render=function(){return On.default.createElement(vo.Provider,{value:{history:this.props.history,location:this.state.location,match:n.computeRootMatch(this.state.location.pathname),staticContext:this.props.staticContext}},On.default.createElement(Gb.Provider,{children:this.props.children||null,value:this.props.history}))},n}(On.default.Component),Vb=function(e){Lr(n,e);function n(){for(var u,s=arguments.length,h=new Array(s),d=0;d{fetch("https://github.com/api/readme").then(u=>u.text()).then(u=>{n((0,rw.default)(u.replace(/\[\/\/\](.*?)\(__repo__\)[\S\s]*/,"")))}).catch(console.error)},[]),(0,zi.useEffect)(()=>{[...i.current.querySelectorAll("a")].forEach(u=>u.setAttribute("target","_blank"))},[e]),zi.default.createElement("div",{ref:i,className:"document",dangerouslySetInnerHTML:{__html:e}})}var iw=iC;var Ct=Ut(yn());var yl=Ut(yn());function Ga({checked:e,onChange:n}){return yl.default.createElement("div",{className:"checkbox",onClick:n},yl.default.createElement("svg",{width:9,height:9,viewBox:"0 0 80 80"},e&&yl.default.createElement("path",{d:"M14 30L0 44 37 76 80 11 65 0 34 50z"})),yl.default.createElement("input",{hidden:!0,"aria-hidden":"false",type:"checkbox",checked:e,onChange:n}))}var Nf=Ut(yn());function oC(){return Nf.default.createElement("span",{className:"lock",title:"locked"},Nf.default.createElement("svg",{width:"10",height:"10",viewBox:"0 0 20 20"},Nf.default.createElement("path",{fill:"#07A",d:"m3,9h1V6a5,5 0 0,1 12,0V9h1v11H3M14,9V6a4,4 0 1,0-8,0v3"})))}var Mp=oC;var ow=Ut(yn());function aC(){return ow.default.createElement("span",{className:"star",title:"starred"},"\u2605")}var Ep=aC;var Qr=Ut(yn()),vw=Ut(wl()),rE=Ut(pw());function Lp({value:e="",onChange:n,onSave:i,children:u,readOnly:s}){let h=(0,Qr.useRef)(),d=(0,Qr.useRef)(),p=(0,Qr.useRef)();return(0,Qr.useEffect)(()=>{let b=(0,vw.default)(h.current,{value:e,mode:"jsx",theme:"mdn-like",autofocus:!0,lineWrapping:!0,inputStyle:"contenteditable",lineNumbers:!0,gutters:["CodeMirror-linenumbers","breakpoints"]});d.current=e,p.current=b},[]),(0,Qr.useEffect)(()=>{function b(T,[{origin:E}]){let I=p.current.getValue();E!=="setValue"&&n(I),d.current=I}return p.current.on("changes",b),()=>{p.current.off("changes",b)}},[n]),(0,Qr.useEffect)(()=>{p.current.setOption("extraKeys",{"Ctrl-S":i})},[i]),(0,Qr.useEffect)(()=>{p.current.setOption("readOnly",s)},[s]),(0,Qr.useEffect)(()=>{d.current!==e&&p.current.setValue(e)},[e]),Qr.default.createElement("div",{ref:h,className:"cmd-editor"},u)}var $a=Ut(yn());var Qo=Ut(yn());function uC({commands:e}){let n=(0,Qo.useRef)(),[{height:i},u]=(0,Qo.useState)({}),[s,h]=(0,Qo.useState)(0),{length:d}=e,p=20,b=d*p;return(0,Qo.useEffect)(()=>{let T=()=>u(n.current.getBoundingClientRect());T(),window.addEventListener("resize",T);let E=I=>h(I.target.scrollTop);return n.current.addEventListener("scroll",E),()=>{window.removeEventListener("resize",T),n.current.removeEventListener("scroll",E)}},[]),$a.default.createElement("div",{className:"cmd-list",ref:n},$a.default.createElement("div",{style:{height:b}},e.map((T,E)=>{let I=E*p,oe=I+p>s,ve=I-p{let s=localStorage.getItem(e);return s?JSON.parse(s):n});return(0,Pf.useEffect)(()=>{localStorage.setItem(e,JSON.stringify(i))},[i]),[i,u]}function Zo(){let[e,n]=mw("password",""),[i,u]=mw("admin",!1);return{fetchAPI:(h,d={})=>new Promise((p,b)=>{let T={...d,headers:{"X-Authorization":`Basic ${btoa(`web:${e}`)}`,"Content-Type":"application/json"},body:d.body&&JSON.stringify(d.body)};fetch(`/api/${h}`,T).then(E=>E.json()).then(p).catch(b)}),password:e,setPassword:n,admin:i,setAdmin:u}}function Dp(){let{fetchAPI:e,password:n,setPassword:i,admin:u,setAdmin:s}=Zo();return(0,go.useEffect)(()=>{e("is-admin").then(s).catch(console.error)},[n]),go.default.createElement("div",{className:"cmd-default"},go.default.createElement("input",{type:"password",placeholder:"admin pwd",value:n,className:u?"admin":"error",onChange:h=>i(h.target.value)}),go.default.createElement("p",null,"an interface for manipulating commands"),go.default.createElement("p",null,"alternatively, try the"," ",go.default.createElement("a",{href:"https://www.github.com/kirjavascript/nibblrjr.vim",target:"_blank"},"vim plugin")))}var kw=Ut(ww()),Tw=Ut(_w());function Op({command:e}){return Ct.default.createElement(Ct.default.Fragment,null,e.name," ",e.starred&&Ct.default.createElement(Ep,null)," ",e.locked&&Ct.default.createElement(Mp,null),e.event&&Ct.default.createElement("span",{className:"event"}," (event)"))}function sC({history:e}){let[n,i]=(0,Ct.useState)([]),[u,s]=(0,Ct.useState)(""),[h,d]=(0,Ct.useState)(!1),[p,b]=(0,Ct.useState)(!1),[T,E]=(0,Ct.useState)(""),{fetchAPI:I,admin:oe}=Zo(),ve=(0,Ct.useCallback)(()=>{I("command/list").then(i).catch(console.error)},[]);(0,Ct.useEffect)(ve,[]);let Me;try{Me=new RegExp(u)}catch{}let ne=n.filter(g=>(g.starred&&h||!h)&&(g.locked&&p||!p)),H=ne.filter(g=>!u||g.name.match(Me)),R=n.some(g=>g.name===T),{root:j}=(0,Tw.parseCommand)({text:T}),se=n.find(g=>g.name===j),we=se&&se.locked,Y=!kw.default.includes(T)&&!R&&(!we||oe),c=(0,Ct.useCallback)(g=>{if(g.keyCode===13&&Y){let k=encodeURIComponent(T);I(`command/new/${k}`,{method:"POST"}).then(()=>{E(""),ve(),e.push(`/cmds/${k}`)}).catch(console.error)}},[T]);return Ct.default.createElement(Ct.default.Fragment,null,Ct.default.createElement("div",{className:"cmd-menu"},Ct.default.createElement("div",null,Ct.default.createElement("input",{type:"text",placeholder:"new command",className:!Y&&T?"invalid":"",value:T,onChange:g=>E(g.target.value.replace(/\s+/g,"")),onKeyDown:c}),Ct.default.createElement("input",{type:"text",placeholder:"search commands (regex)",value:u,onChange:g=>{s(g.target.value)}}),Ct.default.createElement("div",{className:"cmd-filter"},Ct.default.createElement("span",null," ",H.length," / ",ne.length," "),Ct.default.createElement("div",{className:"cmd-toggle"},Ct.default.createElement(Ep,null),Ct.default.createElement(Ga,{checked:h,onChange:()=>d(!h)}),Ct.default.createElement(Mp,null),Ct.default.createElement(Ga,{checked:p,onChange:()=>b(!p)})))),Ct.default.createElement(gw,{commands:H})),Ct.default.createElement(Fi,{exact:!0,path:"/cmds/:name",render:g=>Ct.default.createElement(fC,{updateList:ve,...g})}),Ct.default.createElement(Fi,{exact:!0,path:"/cmds",component:Dp}))}var Sw="/* loading ... */";function fC({updateList:e,history:n,match:{params:i}}){let{fetchAPI:u,admin:s}=Zo(),[h,d]=(0,Ct.useState)({command:Sw}),[p,b]=(0,Ct.useState)(Sw),[T,E]=(0,Ct.useState)(!1),[I,oe]=(0,Ct.useState)("delete");function ve(){u("command/get/"+i.name).then(g=>{d(g),b(g.command)}).catch(console.error),oe("delete")}(0,Ct.useEffect)(ve,[i.name]);let Me=g=>{let k={method:"POST",body:{[g]:!h[g]}};u("command/set-config/"+i.name,k).then(S=>{S.error||(ve(),e())}).catch(console.error)},ne=()=>{E(!0);let g={method:"POST",body:{command:h.command}};u("command/set/"+i.name,g).then(k=>{k.error?alert(k.error):b(h.command),E(!1)}).catch(console.error)},H=()=>{I!=="confirm?"?oe("confirm?"):u("command/delete/"+i.name,{method:"POST"}).then(g=>{g.error?oe(g.error):(e(),n.push("/cmds"))}).catch(console.error)},R=h.error?`/* error: ${h.error} */`:h.command,{locked:j,starred:se,event:we}=h,Oe=T?"saving":h.command===p?"saved":"save",Y=s,c=h.locked&&!Y;return Ct.default.createElement(Lp,{value:R,readOnly:c,onSave:ne,onChange:g=>{d({...h,command:g})}},Ct.default.createElement("div",{className:"cmd-options"},Ct.default.createElement("span",{className:"cmd-name"},Ct.default.createElement(Op,{command:h})),!!h.name&&Ct.default.createElement("div",null,!c&&Ct.default.createElement(Ct.default.Fragment,null,Ct.default.createElement("button",{type:"button",onClick:ne},Oe),Y&&Ct.default.createElement(Ct.default.Fragment,null,Ct.default.createElement("button",{type:"button",onClick:()=>{Me("locked")}},j?"unlock":"lock"),Ct.default.createElement("button",{type:"button",onClick:()=>{Me("starred")}},se?"unstar":"star"),Ct.default.createElement("button",{type:"button",onClick:()=>{Me("event")}},we?"unevent":"as event")),Ct.default.createElement("button",{type:"button",onClick:H},I)))))}var bw=sC;var Jt=Ut(yn());var xr=Ut(yn());var Va=Ut(yn());function xl({items:e,...n}){return Va.default.createElement("div",{className:"select"},Va.default.createElement("select",{...n},e.map(({label:i,value:u})=>Va.default.createElement("option",{value:u,key:u},i))),Va.default.createElement("svg",{className:"arrow",width:"12",height:"12",viewBox:"0 0 100 50"},Va.default.createElement("path",{d:"M0,0H100L50,50z"})))}var Wp=Ut(dx()),xx=Ut(wx());function PM({onMonth:e,onChange:n,base:i,history:u,location:s}){let h=(0,xr.useMemo)(()=>s.pathname.split("/"),[]),[d,p]=(0,xr.useState)(h[2]||""),[b,T]=(0,xr.useState)(decodeURIComponent(h[3]||"")),[E,I]=(0,xr.useState)(h[4]||"");(0,xr.useEffect)(()=>{u.replace(["/stats",d||b||E?"/":"",d,b||E?"/":"",encodeURIComponent(b),E?"/":"",E].join("")),n({server:d,channel:b,month:E})},[d,b,E]),(0,xr.useEffect)(()=>{e({server:d,channel:b,month:E})},[E]);let oe=i.servers.map(({server:ne})=>({label:ne,value:ne})),ve=i.servers.reduce((ne,H)=>((d===""||H.server===d)&&ne.push(...H.channels.map(R=>({label:R,value:R}))),ne),[]).filter((ne,H,R)=>R.findIndex(j=>j.value==ne.value)===H),Me=Array.from({length:12},(ne,H)=>{let R=(0,xx.default)(new Date,H+1);return{label:(0,Wp.default)(R,"MMMM YYYY").toLowerCase(),value:(0,Wp.default)(R,"YYYY-MM")}});return(0,xr.useEffect)(()=>{(d||b||E)&&s.pathname==="/stats"&&(p(""),T(""),I(""))},[s.pathname]),xr.default.createElement("div",{className:"stats-filter"},xr.default.createElement(xl,{value:d,items:[{label:"servers",value:""},...oe],onChange:ne=>{p(ne.target.value),ne.target.value&&T("")}}),xr.default.createElement(xl,{value:b,items:[{label:"channels",value:""},...ve],onChange:ne=>T(ne.target.value)}),xr.default.createElement(xl,{value:E,items:[{label:"this month",value:""},...Me],onChange:ne=>I(ne.target.value)}))}var _x=PM;var mo=Ut(yn()),_l=Object.assign({},Jo(),jp(),Yp(),Gp());function $p({x:e,y:n,width:i,height:u,radius:s=3}){return s>u&&(s=u),i{s.current||(s.current=new Hx(u.current)),s.current.data(e,n).render(!0)},[e]),(0,mo.useEffect)(()=>()=>s.current.destroy(),[]),mo.default.createElement("div",{ref:u,...i})}var Hx=class{config={margin:{top:5,right:20,bottom:40,left:60},height:400,data:void 0,accessor:n=>n.label};get dimensions(){let{top:n,right:i,bottom:u,left:s}=this.config.margin;return{width:this.outerWidth-s-i,height:this.config.height-n-u,top:n,right:i,bottom:u,left:s}}container;svg;main;contents;xAxisG;yAxisG;outerWidth;constructor(n){this.container=_l.select(n),this.container.selectAll("*").remove(),this.svg=this.container.append("svg"),this.main=this.svg.append("g"),this.contents=this.main.append("g"),this.xAxisG=this.main.append("g").attr("transform",`translate(0, ${this.dimensions.height})`).attr("class","axis x"),this.yAxisG=this.main.append("g").attr("class","axis y"),window.addEventListener("resize",this.resize)}destroy=()=>{window.removeEventListener("resize",this.resize),this.container.selectAll("*").remove()};data=(n,i)=>(this.config.data=n,this.config.accessor=i,this);resize=()=>{this.render()};render=(n=!1)=>{this.outerWidth=this.container.node().getBoundingClientRect().width;let{width:i,height:u,top:s,right:h,bottom:d,left:v}=this.dimensions,x=D=>n?D.transition():D;this.svg.attr("width",i+v+h).attr("height",u+s+d),this.main.attr("transform",`translate(${[v,s]})`);let T=this.config.data.reduce((D,q)=>Math.max(D,q.count),0),M=_l.scaleLinear().domain([0,T]).range([u,0]),O=_l.scaleBand().paddingInner(1/3).paddingOuter(1/6).rangeRound([0,i]).domain(this.config.data.map(this.config.accessor)),te=_l.axisBottom(O).tickSize(10);x(this.xAxisG).attr("transform",`translate(0,${u})`).call(te).selectAll("text").style("text-anchor","end").attr("dx","-.8em").attr("dy",".55em").attr("transform","rotate(-14)");let ve=_l.axisLeft(M).tickSize(10).ticks(12);x(this.yAxisG).call(ve);let Ee=this.contents.selectAll(".bar").data(this.config.data,this.config.accessor);Ee.exit().attr("opacity",1).transition().attr("opacity",0).attr("d",Vp({x:O.bandwidth(),width:O.bandwidth(),height:0,y:u})).remove();let I=Ee.enter().append("path").classed("bar",1).attr("d",D=>Vp({x:O(this.config.accessor(D)),width:O.bandwidth(),height:0,y:u})).merge(Ee);x(I).attr("d",D=>Vp({x:O(this.config.accessor(D)),width:O.bandwidth(),height:Math.abs(M(D.count)-M(0)),y:M(Math.max(0,D.count))}))}};var yo=$t(bn()),wo=Object.assign({},ea(),jp(),Yp(),jx(),Gp(),qx());function Qf({items:e=[],accessor:n,...i}){let u=(0,yo.useRef)(),s=(0,yo.useRef)();return(0,yo.useEffect)(()=>{s.current||(s.current=new Gx(u.current,i)),s.current.data(e,n).render(!0)},[e]),(0,yo.useEffect)(()=>()=>s.current.destroy(),[]),yo.default.createElement("div",{ref:u})}var Gx=class{config={margin:{top:5,right:20,bottom:40,left:60},height:400,data:void 0,accessor:n=>n.label,tickFormatX:void 0};get dimensions(){let{top:n,right:i,bottom:u,left:s}=this.config.margin;return{width:this.outerWidth-s-i,height:this.config.height-n-u,top:n,right:i,bottom:u,left:s}}container;svg;main;contents;xAxisG;yAxisG;outerWidth;constructor(n,i={}){this.container=wo.select(n),this.container.selectAll("*").remove(),Object.assign(this.config,i),this.svg=this.container.append("svg"),this.main=this.svg.append("g"),this.contents=this.main.append("g"),this.xAxisG=this.main.append("g").attr("transform",`translate(0, ${this.dimensions.height})`).attr("class","axis x"),this.yAxisG=this.main.append("g").attr("class","axis y"),window.addEventListener("resize",this.resize)}destroy=()=>{window.removeEventListener("resize",this.resize),this.container.selectAll("*").remove()};data=(n,i)=>(this.config.data=n,this.config.accessor=i,this);resize=()=>{this.render()};render=(n=!1)=>{this.outerWidth=this.container.node().getBoundingClientRect().width;let{width:i,height:u,top:s,right:h,bottom:d,left:v}=this.dimensions,x=D=>n?D.transition():D;this.svg.attr("width",i+v+h).attr("height",u+s+d),this.main.attr("transform",`translate(${[v,s]})`);let T=this.config.data.reduce((D,q)=>Math.max(D,q.count),0),M=wo.scaleLinear().domain([0,T]).range([u,0]),O=wo.scalePoint().domain(this.config.data.map(this.config.accessor)).rangeRound([0,i]),te=wo.axisBottom(O).tickSize(10).tickFormat(this.config.tickFormatX);x(this.xAxisG).attr("transform",`translate(0,${u})`).call(te).selectAll("text").attr("dy","1em");let ve=wo.axisLeft(M).tickSize(10).ticks(12);x(this.yAxisG).call(ve);let Ee=wo.line().x(D=>O(this.config.accessor(D))).y(D=>M(D.count)),ie=this.contents.selectAll(".line").data([this.config.data]),I=ie.enter().append("path").attr("class","line").merge(ie);n?I.transition().attrTween("d",function(D){let q=wo.select(this).attr("d");return wo.interpolatePath(q,Ee(D))}):I.attr("d",Ee)}};var Tr=$t(bn());var Za=$t(If()),Xp=$t(Ff()),LM=(0,Xp.interpolateCubehelixLong)((0,Za.cubehelix)(-100,.75,.35),(0,Za.cubehelix)(80,1.5,.8)),OM=(0,Xp.interpolateCubehelixLong)((0,Za.cubehelix)(260,.75,.35),(0,Za.cubehelix)(80,1.5,.8)),Zf=(0,Za.cubehelix)();function Kp(e){(e<0||e>1)&&(e-=Math.floor(e));var n=Math.abs(e-.5);return Zf.h=360*e-100,Zf.s=1.5-1.5*n,Zf.l=.8-.9*n,Zf+""}function DM(e){let[n,i]=[...e].reduce(([u,s],h)=>{let d=(u+h.charCodeAt())%65521;return[d,(s+d)%65521]},[1,0]);return i<<16|n}function Qp(e){return Kp(DM(e)/32640)}var kn=Object.assign({},ea(),Kx(),Zx());Object.defineProperty(kn,"event",{get:()=>ea().event});function Zp({items:e=[]}){let n=(0,Tr.useRef)(),i=(0,Tr.useRef)(),[u,s]=(0,Tr.useState)(!1);return(0,Tr.useEffect)(()=>{let h=e.reduce((x,[T,M]=[])=>(M.forEach(({user:O,count:te},ve)=>{x[O]={count:te,index:ve}}),x),{}),d=[];e.forEach(([x,T,M])=>{Object.entries(M).forEach(([O,te])=>{Object.entries(te).forEach(([ve,Ee])=>{d.push({source:O,target:ve,count:Ee,server:x,activity:h[O]})})})});let v=d.map(x=>[x.source,x.server]).concat(d.map(x=>[x.target,x.server])).map(([x,T])=>[`${x}-${T}`,x,T]).filter((x,T,M)=>M.findIndex(O=>O[0]===x[0])===T).map(([x,T,M])=>({id:x,name:T,server:M,activity:h[T]}));d.forEach(x=>{x.source=x.source+"-"+x.server,x.target=x.target+"-"+x.server}),v.forEach(x=>{let T=M=>d.filter(O=>O[M]===x.id).length;x.activity&&(x.activity.from=T("target"),x.activity.to=T("source"))}),i.current||(i.current=new Jx(n.current)),i.current.data(d,v)},[e]),(0,Tr.useEffect)(()=>{i.current.orbit(u),i.current.render()},[u]),(0,Tr.useEffect)(()=>()=>i.current.destroy(),[]),Tr.default.createElement(Tr.default.Fragment,null,Tr.default.createElement("div",{className:"canvas",ref:n}),Tr.default.createElement("div",{className:"hud"},"orbiters",Tr.default.createElement(Xa,{checked:u,onChange:()=>s(!u)})))}var Jx=class{config={orbit:!1};constructor(n){this.container=kn.select(n),this.container.selectAll("*").remove(),this.canvas=this.container.append("canvas"),window.addEventListener("resize",this.resize),this.ctx=this.canvas.node().getContext("2d"),this.simulation=kn.forceSimulation().on("tick",this.render),this.setSize();let{width:i,height:u}=this;this.canvas.attr("width",i).attr("height",u).call(kn.drag().container(this.canvas.node()).subject(()=>this.simulation.find(kn.event.x,kn.event.y)).on("start",()=>{kn.event.active||this.simulation.alphaTarget(.3).restart(),kn.event.subject.fx=kn.event.subject.x,kn.event.subject.fy=kn.event.subject.y}).on("drag",()=>{kn.event.subject.fx=kn.event.x,kn.event.subject.fy=kn.event.y}).on("end",()=>{kn.event.active||this.simulation.alphaTarget(0),kn.event.subject.fx=null,kn.event.subject.fy=null})),this.container.style("position","relative"),this.popup=this.container.append("div").classed("popup",!0)}destroy=()=>{this.simulation.stop(),window.removeEventListener("resize",this.resize),this.container.selectAll("*").remove()};setSize=()=>{this.width=this.container.node().getBoundingClientRect().width,this.height=800;let{width:n,height:i}=this;Object.assign(this.canvas.node(),{width:n,height:i}),this.setOrbitCharge(),this.simulation.force("center",kn.forceCenter(n/2,i/2))};setOrbitCharge=()=>{let n=this.width<650;this.simulation.force("x",kn.forceX().strength(n?.2:.1)).force("y",kn.forceY().strength(n?.1:.2)).force("charge",kn.forceManyBody().strength(()=>-(this.width/(this.config.orbit?3:7))))};orbit=n=>{this.config.orbit=n,this.setOrbitCharge(),this.simulation.alphaTarget(.1).restart()};data=(n,i)=>{Object.assign(this.config,{links:n,nodes:i}),this.simulation.nodes(i).force("link",kn.forceLink(n).id(s=>s.id)).alphaTarget(.1).restart();let u;return this.focusedNode=void 0,this.canvas.on("mousemove",()=>{let[s,h]=kn.mouse(this.canvas.node()),d=this.simulation.find(s,h);d&&u!==d.id&&(u=d.id,i.forEach(v=>{v.focused=v.id===u}),n.forEach(v=>{v.from=v.source.id===u,v.to=v.target.id===u}),this.focusedNode=d),this.render()}),this};resize=()=>{this.setSize(),this.simulation.alphaTarget(.1).restart(),this.render()};render=()=>{let{width:n,height:i,ctx:u}=this,{links:s=[],nodes:h=[],orbit:d}=this.config,v=d?h:h.filter(({activity:T})=>!!T),x=d?s:s.filter(({activity:T})=>!!T);if(this.focusedNode&&this.focusedNode.activity){let{x:T,y:M,name:O,server:te,activity:{count:ve,index:Ee,to:ie,from:I}}=this.focusedNode;this.popup.classed("visible",!0).style("left",`${T+5}px`).style("top",`${M-18}px`).selectAll("div").data([["name",[O,te]],["stat rank",["rank",Ee+1]],["stat msgs",["msgs",ve]],["stat sent",["sent",ie]],["stat recv",["recv",I]]]).join("div").attr("class",([D])=>D).selectAll("span").data(([D,q])=>q).join("span").text(D=>D)}else this.popup.classed("visible",!1);u.clearRect(0,0,n,i),u.beginPath(),x.forEach(T=>{!T.to&&!T.from&&(u.moveTo(T.source.x,T.source.y),u.lineTo(T.target.x,T.target.y))}),u.strokeStyle="rgba(0, 255, 255, 0.2)",u.stroke(),u.beginPath(),u.strokeStyle="rgba(235, 51, 110, 0.8)",x.forEach(T=>{T.from&&(u.moveTo(T.source.x,T.source.y),u.quadraticCurveTo(T.source.x-10,T.target.y+10,T.target.x,T.target.y))}),u.stroke(),u.beginPath(),u.strokeStyle="rgba(0, 255, 255, 1)",x.forEach(T=>{T.to&&(u.moveTo(T.source.x,T.source.y),u.quadraticCurveTo(T.target.x+10,T.source.y-10,T.target.x,T.target.y))}),u.stroke(),u.beginPath(),v.forEach(T=>{let M=T.focused?8:6;u.moveTo(T.x+M,T.y),u.arc(T.x,T.y,M,0,2*Math.PI)}),u.fillStyle="limegreen",u.fill(),u.fillStyle="black",u.font="12px Hack",v.forEach(T=>{(!T.focused||!T.activity)&&u.fillText(T.name,T.x,T.y)})}};var Yn=$t(bn());function e_(e){return e==1?"once":e==2?"twice":`${e} times`}function AM(e,n){return e+(n>1?"s":"")}function Ja({items:e}){return e.map(n=>Yn.default.createElement("span",{key:n.user,className:"name",style:{color:Qp(n.user)}},n.user)).reduce((n,i,u,s)=>[n,u==s.length-1?(u-1?",":"")+" and ":", ",i])}function IM({stats:e}){let{shouting:n=[],questions:i=[],kicks:u=[],kicked:s=[],avgLineLengthLow:h=[],avgLineLengthHigh:d=[]}=e;return Yn.default.createElement("div",{className:"factoids"},!!n.length&&Yn.default.createElement("p",{className:"factoid"},Yn.default.createElement(Ja,{items:n})," shouted in ",Yn.default.createElement("span",{className:"fact-type"},"ALL CAPS")," "+e_(n[0].count)),!!i.length&&Yn.default.createElement("p",{className:"factoid"},Yn.default.createElement(Ja,{items:i})," asked "+i[0].count+" ",Yn.default.createElement("span",{className:"fact-type"},AM("question",i[0].count))),!!u.length&&Yn.default.createElement("p",{className:"factoid"},Yn.default.createElement(Ja,{items:u}),Yn.default.createElement("span",{className:"fact-type"}," kicked "),u[0].count+" ",u[0].count>1?" people":" person"),!!s.length&&Yn.default.createElement("p",{className:"factoid"},Yn.default.createElement(Ja,{items:s}),Yn.default.createElement("span",{className:"fact-type"}," got kicked "),e_(s[0].count)),!!d.length&&Yn.default.createElement("p",{className:"factoid"},"for ",Yn.default.createElement("span",{className:"fact-type"}," average line length "),Yn.default.createElement(Ja,{items:d})," had "+(0|d[0].average)+" and ",Yn.default.createElement(Ja,{items:h})," had "+(0|h[0].average)))}var t_=IM;function RM({history:e,location:n}){let{fetchAPI:i}=Jo(),[u,s]=(0,en.useState)({servers:[]}),[h,d]=(0,en.useState)({}),[v,x]=(0,en.useState)(!1);return en.default.createElement(en.default.Fragment,null,en.default.createElement(xx,{history:e,location:n,base:u,ready:v,onChange:({month:T,server:M,channel:O})=>{let te=setTimeout(()=>x(!1),150);i("stats/all",{body:{month:T,server:M,channel:O},method:"POST"}).then(ve=>{d(ve),clearTimeout(te),x(!0)}).catch(console.error)},onMonth:({month:T})=>{i("stats/base",{body:{month:T},method:"POST"}).then(s).catch(console.error)}}),en.default.createElement("div",{className:`stats-container${v?"":" loading"}`},en.default.createElement("div",{className:"stats"},en.default.createElement("div",{className:"row"},en.default.createElement("div",{className:"base"},en.default.createElement("span",null,"updated hourly"),en.default.createElement("div",{className:"uptime"},en.default.createElement("h4",null,"uptime"," "),en.default.createElement("span",null,u.uptime||"0","h"))),en.default.createElement("div",{className:"command-chart"},en.default.createElement("h3",{className:"title"},"most used commands"),en.default.createElement($p,{items:h.commands,accessor:T=>T.command}))),en.default.createElement("div",{className:"row"},en.default.createElement("div",{className:"half"},en.default.createElement("h3",{className:"title"},"activity / days"),en.default.createElement(Qf,{items:h.activityDays,accessor:T=>T.day,tickFormatX:T=>+T.slice(8)})),en.default.createElement("div",{className:"half"},en.default.createElement("h3",{className:"title"},"activity / hours"),en.default.createElement(Qf,{items:h.activityHours,accessor:T=>T.hour}))),en.default.createElement(t_,{stats:h})),en.default.createElement("div",{className:"stats-forcesim"},en.default.createElement("h4",null," network graph "),en.default.createElement("span",null,"tracking who talks to popular users"),en.default.createElement("div",{className:"sim"},en.default.createElement(Zp,{items:h.links})))))}var n_=RM;var eu=$t(bn()),r_=$t(Cp());function FM(){let[e,n]=(0,eu.useState)("");return(0,eu.useEffect)(()=>{fetch("https://github.com/api/docs").then(i=>i.text()).then(i=>{n((0,r_.default)(i.split("(__docs__)").pop())),window.location.hash.length&&window.location.replace(window.location.hash)}).catch(console.error)},[]),eu.default.createElement("div",{className:"document",dangerouslySetInnerHTML:{__html:e}})}var i_=FM;var zM=xp(({location:e})=>{let n=e.pathname.split("/")[1];return cr.default.createElement(cr.default.Fragment,null,cr.default.createElement("div",{className:"menu"},cr.default.createElement("h1",null,"nibblr",cr.default.createElement("span",{className:"jr"},"jr")),["cmds","docs","stats"].map(i=>cr.default.createElement(ml,{className:n===i?"active":"",key:i,to:"/"+i},i)),cr.default.createElement("a",{target:"_blank",rel:"noopener",href:"https://www.github.com/kirjavascript/nibblrjr"},"src^")),cr.default.createElement("main",{className:`main-${n}`},cr.default.createElement(Fi,{exact:!0,path:"/",component:rw}),cr.default.createElement(Fi,{path:"/cmds",component:Sw}),cr.default.createElement(Fi,{path:"/stats",component:n_}),cr.default.createElement(Fi,{exact:!0,path:"/docs",component:i_})),cr.default.createElement("img",{src:"/nibblr.gif",className:"nibblr"}))});(0,o_.render)(cr.default.createElement(ew,null,cr.default.createElement(zM,null)),document.body.appendChild(document.createElement("div"))); + `.replace(/\s\s+/g," ")}function Vp({items:e=[],accessor:n,...i}){let u=(0,mo.useRef)(),s=(0,mo.useRef)();return(0,mo.useEffect)(()=>{s.current||(s.current=new Wx(u.current)),s.current.data(e,n).render(!0)},[e]),(0,mo.useEffect)(()=>()=>s.current.destroy(),[]),mo.default.createElement("div",{ref:u,...i})}var Wx=class{config={margin:{top:5,right:20,bottom:40,left:60},height:400,data:void 0,accessor:n=>n.label};get dimensions(){let{top:n,right:i,bottom:u,left:s}=this.config.margin;return{width:this.outerWidth-s-i,height:this.config.height-n-u,top:n,right:i,bottom:u,left:s}}container;svg;main;contents;xAxisG;yAxisG;outerWidth;constructor(n){this.container=_l.select(n),this.container.selectAll("*").remove(),this.svg=this.container.append("svg"),this.main=this.svg.append("g"),this.contents=this.main.append("g"),this.xAxisG=this.main.append("g").attr("transform",`translate(0, ${this.dimensions.height})`).attr("class","axis x"),this.yAxisG=this.main.append("g").attr("class","axis y"),window.addEventListener("resize",this.resize)}destroy=()=>{window.removeEventListener("resize",this.resize),this.container.selectAll("*").remove()};data=(n,i)=>(this.config.data=n,this.config.accessor=i,this);resize=()=>{this.render()};render=(n=!1)=>{this.outerWidth=this.container.node().getBoundingClientRect().width;let{width:i,height:u,top:s,right:h,bottom:d,left:p}=this.dimensions,b=R=>n?R.transition():R;this.svg.attr("width",i+p+h).attr("height",u+s+d),this.main.attr("transform",`translate(${[p,s]})`);let T=this.config.data.reduce((R,j)=>Math.max(R,j.count),0),E=_l.scaleLinear().domain([0,T]).range([u,0]),I=_l.scaleBand().paddingInner(1/3).paddingOuter(1/6).rangeRound([0,i]).domain(this.config.data.map(this.config.accessor)),oe=_l.axisBottom(I).tickSize(10);b(this.xAxisG).attr("transform",`translate(0,${u})`).call(oe).selectAll("text").style("text-anchor","end").attr("dx","-.8em").attr("dy",".55em").attr("transform","rotate(-14)");let ve=_l.axisLeft(E).tickSize(10).ticks(12);b(this.yAxisG).call(ve);let Me=this.contents.selectAll(".bar").data(this.config.data,this.config.accessor);Me.exit().attr("opacity",1).transition().attr("opacity",0).attr("d",$p({x:I.bandwidth(),width:I.bandwidth(),height:0,y:u})).remove();let H=Me.enter().append("path").classed("bar",1).attr("d",R=>$p({x:I(this.config.accessor(R)),width:I.bandwidth(),height:0,y:u})).merge(Me);b(H).attr("d",R=>$p({x:I(this.config.accessor(R)),width:I.bandwidth(),height:Math.abs(E(R.count)-E(0)),y:E(Math.max(0,R.count))}))}};var yo=Ut(yn()),wo=Object.assign({},Jo(),jp(),Yp(),Yx(),Gp(),Gx());function Zf({items:e=[],accessor:n,...i}){let u=(0,yo.useRef)(),s=(0,yo.useRef)();return(0,yo.useEffect)(()=>{s.current||(s.current=new $x(u.current,i)),s.current.data(e,n).render(!0)},[e]),(0,yo.useEffect)(()=>()=>s.current.destroy(),[]),yo.default.createElement("div",{ref:u})}var $x=class{config={margin:{top:5,right:20,bottom:40,left:60},height:400,data:void 0,accessor:n=>n.label,tickFormatX:void 0};get dimensions(){let{top:n,right:i,bottom:u,left:s}=this.config.margin;return{width:this.outerWidth-s-i,height:this.config.height-n-u,top:n,right:i,bottom:u,left:s}}container;svg;main;contents;xAxisG;yAxisG;outerWidth;constructor(n,i={}){this.container=wo.select(n),this.container.selectAll("*").remove(),Object.assign(this.config,i),this.svg=this.container.append("svg"),this.main=this.svg.append("g"),this.contents=this.main.append("g"),this.xAxisG=this.main.append("g").attr("transform",`translate(0, ${this.dimensions.height})`).attr("class","axis x"),this.yAxisG=this.main.append("g").attr("class","axis y"),window.addEventListener("resize",this.resize)}destroy=()=>{window.removeEventListener("resize",this.resize),this.container.selectAll("*").remove()};data=(n,i)=>(this.config.data=n,this.config.accessor=i,this);resize=()=>{this.render()};render=(n=!1)=>{this.outerWidth=this.container.node().getBoundingClientRect().width;let{width:i,height:u,top:s,right:h,bottom:d,left:p}=this.dimensions,b=R=>n?R.transition():R;this.svg.attr("width",i+p+h).attr("height",u+s+d),this.main.attr("transform",`translate(${[p,s]})`);let T=this.config.data.reduce((R,j)=>Math.max(R,j.count),0),E=wo.scaleLinear().domain([0,T]).range([u,0]),I=wo.scalePoint().domain(this.config.data.map(this.config.accessor)).rangeRound([0,i]),oe=wo.axisBottom(I).tickSize(10).tickFormat(this.config.tickFormatX);b(this.xAxisG).attr("transform",`translate(0,${u})`).call(oe).selectAll("text").attr("dy","1em");let ve=wo.axisLeft(E).tickSize(10).ticks(12);b(this.yAxisG).call(ve);let Me=wo.line().x(R=>I(this.config.accessor(R))).y(R=>E(R.count)),ne=this.contents.selectAll(".line").data([this.config.data]),H=ne.enter().append("path").attr("class","line").merge(ne);n?H.transition().attrTween("d",function(R){let j=wo.select(this).attr("d");return wo.interpolatePath(j,Me(R))}):H.attr("d",Me)}};var _r=Ut(yn());var Xa=Ut(Rf()),Xp=Ut(zf()),LM=(0,Xp.interpolateCubehelixLong)((0,Xa.cubehelix)(-100,.75,.35),(0,Xa.cubehelix)(80,1.5,.8)),OM=(0,Xp.interpolateCubehelixLong)((0,Xa.cubehelix)(260,.75,.35),(0,Xa.cubehelix)(80,1.5,.8)),Jf=(0,Xa.cubehelix)();function Kp(e){(e<0||e>1)&&(e-=Math.floor(e));var n=Math.abs(e-.5);return Jf.h=360*e-100,Jf.s=1.5-1.5*n,Jf.l=.8-.9*n,Jf+""}function DM(e){let[n,i]=[...e].reduce(([u,s],h)=>{let d=(u+h.charCodeAt())%65521;return[d,(s+d)%65521]},[1,0]);return i<<16|n}function Qp(e){return Kp(DM(e)/32640)}var xn=Object.assign({},Jo(),Qx(),Jx());Object.defineProperty(xn,"event",{get:()=>Jo().event});function Zp({items:e=[]}){let n=(0,_r.useRef)(),i=(0,_r.useRef)(),[u,s]=(0,_r.useState)(!1);return(0,_r.useEffect)(()=>{let h=e.reduce((b,[T,E]=[])=>(E.forEach(({user:I,count:oe},ve)=>{b[I]={count:oe,index:ve}}),b),{}),d=[];e.forEach(([b,T,E])=>{Object.entries(E).forEach(([I,oe])=>{Object.entries(oe).forEach(([ve,Me])=>{d.push({source:I,target:ve,count:Me,server:b,activity:h[I]})})})});let p=d.map(b=>[b.source,b.server]).concat(d.map(b=>[b.target,b.server])).map(([b,T])=>[`${b}-${T}`,b,T]).filter((b,T,E)=>E.findIndex(I=>I[0]===b[0])===T).map(([b,T,E])=>({id:b,name:T,server:E,activity:h[T]}));d.forEach(b=>{b.source=b.source+"-"+b.server,b.target=b.target+"-"+b.server}),p.forEach(b=>{let T=E=>d.filter(I=>I[E]===b.id).length;b.activity&&(b.activity.from=T("target"),b.activity.to=T("source"))}),i.current||(i.current=new e_(n.current)),i.current.data(d,p)},[e]),(0,_r.useEffect)(()=>{i.current.orbit(u),i.current.render()},[u]),(0,_r.useEffect)(()=>()=>i.current.destroy(),[]),_r.default.createElement(_r.default.Fragment,null,_r.default.createElement("div",{className:"canvas",ref:n}),_r.default.createElement("div",{className:"hud"},"orbiters",_r.default.createElement(Ga,{checked:u,onChange:()=>s(!u)})))}var e_=class{config={orbit:!1};constructor(n){this.container=xn.select(n),this.container.selectAll("*").remove(),this.canvas=this.container.append("canvas"),window.addEventListener("resize",this.resize),this.ctx=this.canvas.node().getContext("2d"),this.simulation=xn.forceSimulation().on("tick",this.render),this.setSize();let{width:i,height:u}=this;this.canvas.attr("width",i).attr("height",u).call(xn.drag().container(this.canvas.node()).subject(()=>this.simulation.find(xn.event.x,xn.event.y)).on("start",()=>{xn.event.active||this.simulation.alphaTarget(.3).restart(),xn.event.subject.fx=xn.event.subject.x,xn.event.subject.fy=xn.event.subject.y}).on("drag",()=>{xn.event.subject.fx=xn.event.x,xn.event.subject.fy=xn.event.y}).on("end",()=>{xn.event.active||this.simulation.alphaTarget(0),xn.event.subject.fx=null,xn.event.subject.fy=null})),this.container.style("position","relative"),this.popup=this.container.append("div").classed("popup",!0)}destroy=()=>{this.simulation.stop(),window.removeEventListener("resize",this.resize),this.container.selectAll("*").remove()};setSize=()=>{this.width=this.container.node().getBoundingClientRect().width,this.height=800;let{width:n,height:i}=this;Object.assign(this.canvas.node(),{width:n,height:i}),this.setOrbitCharge(),this.simulation.force("center",xn.forceCenter(n/2,i/2))};setOrbitCharge=()=>{let n=this.width<650;this.simulation.force("x",xn.forceX().strength(n?.2:.1)).force("y",xn.forceY().strength(n?.1:.2)).force("charge",xn.forceManyBody().strength(()=>-(this.width/(this.config.orbit?3:7))))};orbit=n=>{this.config.orbit=n,this.setOrbitCharge(),this.simulation.alphaTarget(.1).restart()};data=(n,i)=>{Object.assign(this.config,{links:n,nodes:i}),this.simulation.nodes(i).force("link",xn.forceLink(n).id(s=>s.id)).alphaTarget(.1).restart();let u;return this.focusedNode=void 0,this.canvas.on("mousemove",()=>{let[s,h]=xn.mouse(this.canvas.node()),d=this.simulation.find(s,h);d&&u!==d.id&&(u=d.id,i.forEach(p=>{p.focused=p.id===u}),n.forEach(p=>{p.from=p.source.id===u,p.to=p.target.id===u}),this.focusedNode=d),this.render()}),this};resize=()=>{this.setSize(),this.simulation.alphaTarget(.1).restart(),this.render()};render=()=>{let{width:n,height:i,ctx:u}=this,{links:s=[],nodes:h=[],orbit:d}=this.config,p=d?h:h.filter(({activity:T})=>!!T),b=d?s:s.filter(({activity:T})=>!!T);if(this.focusedNode&&this.focusedNode.activity){let{x:T,y:E,name:I,server:oe,activity:{count:ve,index:Me,to:ne,from:H}}=this.focusedNode;this.popup.classed("visible",!0).style("left",`${T+5}px`).style("top",`${E-18}px`).selectAll("div").data([["name",[I,oe]],["stat rank",["rank",Me+1]],["stat msgs",["msgs",ve]],["stat sent",["sent",ne]],["stat recv",["recv",H]]]).join("div").attr("class",([R])=>R).selectAll("span").data(([R,j])=>j).join("span").text(R=>R)}else this.popup.classed("visible",!1);u.clearRect(0,0,n,i),u.beginPath(),b.forEach(T=>{!T.to&&!T.from&&(u.moveTo(T.source.x,T.source.y),u.lineTo(T.target.x,T.target.y))}),u.strokeStyle="rgba(0, 255, 255, 0.2)",u.stroke(),u.beginPath(),u.strokeStyle="rgba(235, 51, 110, 0.8)",b.forEach(T=>{T.from&&(u.moveTo(T.source.x,T.source.y),u.quadraticCurveTo(T.source.x-10,T.target.y+10,T.target.x,T.target.y))}),u.stroke(),u.beginPath(),u.strokeStyle="rgba(0, 255, 255, 1)",b.forEach(T=>{T.to&&(u.moveTo(T.source.x,T.source.y),u.quadraticCurveTo(T.target.x+10,T.source.y-10,T.target.x,T.target.y))}),u.stroke(),u.beginPath(),p.forEach(T=>{let E=T.focused?8:6;u.moveTo(T.x+E,T.y),u.arc(T.x,T.y,E,0,2*Math.PI)}),u.fillStyle="limegreen",u.fill(),u.fillStyle="black",u.font="12px Hack",p.forEach(T=>{(!T.focused||!T.activity)&&u.fillText(T.name,T.x,T.y)})}};var jn=Ut(yn());function t_(e){return e==1?"once":e==2?"twice":`${e} times`}function AM(e,n){return e+(n>1?"s":"")}function Ka({items:e}){return e.map(n=>jn.default.createElement("span",{key:n.user,className:"name",style:{color:Qp(n.user)}},n.user)).reduce((n,i,u,s)=>[n,u==s.length-1?(u-1?",":"")+" and ":", ",i])}function IM({stats:e}){let{shouting:n=[],questions:i=[],kicks:u=[],kicked:s=[],avgLineLengthLow:h=[],avgLineLengthHigh:d=[]}=e;return jn.default.createElement("div",{className:"factoids"},!!n.length&&jn.default.createElement("p",{className:"factoid"},jn.default.createElement(Ka,{items:n})," shouted in ",jn.default.createElement("span",{className:"fact-type"},"ALL CAPS")," "+t_(n[0].count)),!!i.length&&jn.default.createElement("p",{className:"factoid"},jn.default.createElement(Ka,{items:i})," asked "+i[0].count+" ",jn.default.createElement("span",{className:"fact-type"},AM("question",i[0].count))),!!u.length&&jn.default.createElement("p",{className:"factoid"},jn.default.createElement(Ka,{items:u}),jn.default.createElement("span",{className:"fact-type"}," kicked "),u[0].count+" ",u[0].count>1?" people":" person"),!!s.length&&jn.default.createElement("p",{className:"factoid"},jn.default.createElement(Ka,{items:s}),jn.default.createElement("span",{className:"fact-type"}," got kicked "),t_(s[0].count)),!!d.length&&jn.default.createElement("p",{className:"factoid"},"for ",jn.default.createElement("span",{className:"fact-type"}," average line length "),jn.default.createElement(Ka,{items:d})," had "+(0|d[0].average)+" and ",jn.default.createElement(Ka,{items:h})," had "+(0|h[0].average)))}var n_=IM;function RM({history:e,location:n}){let{fetchAPI:i}=Zo(),[u,s]=(0,Jt.useState)({servers:[]}),[h,d]=(0,Jt.useState)({}),[p,b]=(0,Jt.useState)(!1);return Jt.default.createElement(Jt.default.Fragment,null,Jt.default.createElement(_x,{history:e,location:n,base:u,ready:p,onChange:({month:T,server:E,channel:I})=>{let oe=setTimeout(()=>b(!1),150);i("stats/all",{body:{month:T,server:E,channel:I},method:"POST"}).then(ve=>{d(ve),clearTimeout(oe),b(!0)}).catch(console.error)},onMonth:({month:T})=>{i("stats/base",{body:{month:T},method:"POST"}).then(s).catch(console.error)}}),Jt.default.createElement("div",{className:`stats-container${p?"":" loading"}`},Jt.default.createElement("div",{className:"stats"},Jt.default.createElement("div",{className:"row"},Jt.default.createElement("div",{className:"base"},Jt.default.createElement("span",null,"updated hourly"),Jt.default.createElement("div",{className:"uptime"},Jt.default.createElement("h4",null,"uptime"," "),Jt.default.createElement("span",null,u.uptime||"0","h"))),Jt.default.createElement("div",{className:"command-chart"},Jt.default.createElement("h3",{className:"title"},"most used commands"),Jt.default.createElement(Vp,{items:h.commands,accessor:T=>T.command}))),Jt.default.createElement("div",{className:"row"},Jt.default.createElement("div",{className:"half"},Jt.default.createElement("h3",{className:"title"},"activity / days"),Jt.default.createElement(Zf,{items:h.activityDays,accessor:T=>T.day,tickFormatX:T=>+T.slice(8)})),Jt.default.createElement("div",{className:"half"},Jt.default.createElement("h3",{className:"title"},"activity / hours"),Jt.default.createElement(Zf,{items:h.activityHours,accessor:T=>T.hour}))),Jt.default.createElement(n_,{stats:h})),Jt.default.createElement("div",{className:"stats-forcesim"},Jt.default.createElement("h4",null," network graph "),Jt.default.createElement("span",null,"tracking who talks to popular users"),Jt.default.createElement("div",{className:"sim"},Jt.default.createElement(Zp,{items:h.links})))))}var r_=RM;var Qa=Ut(yn()),i_=Ut(Cp());function FM(){let[e,n]=(0,Qa.useState)("");return(0,Qa.useEffect)(()=>{fetch("https://github.com/api/docs").then(i=>i.text()).then(i=>{n((0,i_.default)(i.split("(__docs__)").pop())),window.location.hash.length&&window.location.replace(window.location.hash)}).catch(console.error)},[]),Qa.default.createElement("div",{className:"document",dangerouslySetInnerHTML:{__html:e}})}var o_=FM;var zM=_p(({location:e})=>{let n=e.pathname.split("/")[1];return sr.default.createElement(sr.default.Fragment,null,sr.default.createElement("div",{className:"menu"},sr.default.createElement("h1",null,"nibblr",sr.default.createElement("span",{className:"jr"},"jr")),["cmds","docs","stats"].map(i=>sr.default.createElement(ml,{className:n===i?"active":"",key:i,to:"/"+i},i)),sr.default.createElement("a",{target:"_blank",rel:"noopener",href:"https://www.github.com/kirjavascript/nibblrjr"},"src^")),sr.default.createElement("main",{className:`main-${n}`},sr.default.createElement(Fi,{exact:!0,path:"/",component:iw}),sr.default.createElement(Fi,{path:"/cmds",component:bw}),sr.default.createElement(Fi,{path:"/stats",component:r_}),sr.default.createElement(Fi,{exact:!0,path:"/docs",component:o_})),sr.default.createElement("img",{src:"/nibblr.gif",className:"nibblr"}))});(0,a_.render)(sr.default.createElement(ew,null,sr.default.createElement(zM,null)),document.body.appendChild(document.createElement("div"))); /* object-assign (c) Sindre Sorhus diff --git a/yarn.lock b/yarn.lock index 9c29e5c..d9bf8ab 100644 --- a/yarn.lock +++ b/yarn.lock @@ -14,113 +14,100 @@ resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== -"@gar/promisify@^1.1.3": +"@gar/promisify@^1.0.1": version "1.1.3" resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6" integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw== -"@isaacs/string-locale-compare@*", "@isaacs/string-locale-compare@^1.1.0": +"@isaacs/string-locale-compare@^1.0.1", "@isaacs/string-locale-compare@^1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@isaacs/string-locale-compare/-/string-locale-compare-1.1.0.tgz#291c227e93fd407a96ecd59879a35809120e432b" integrity sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ== -"@npmcli/arborist@*", "@npmcli/arborist@^5.6.2": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@npmcli/arborist/-/arborist-5.6.2.tgz#552b554f34777e5dcc8e68ad86cdaeebc0788790" - integrity sha512-Lyj2g+foWKzrwW2bT/RGO982VR9vb5tlvfD88n4PwWJRrDttQbJoIdcQzN9b+NIBhI1/8iEhC5b8far9U0fQxA== +"@npmcli/arborist@^2.3.0", "@npmcli/arborist@^2.5.0", "@npmcli/arborist@^2.9.0": + version "2.10.0" + resolved "https://registry.yarnpkg.com/@npmcli/arborist/-/arborist-2.10.0.tgz#424c2d73a7ae59c960b0cc7f74fed043e4316c2c" + integrity sha512-CLnD+zXG9oijEEzViimz8fbOoFVb7hoypiaf7p6giJhvYtrxLAyY3cZAMPIFQvsG731+02eMDp3LqVBNo7BaZA== dependencies: - "@isaacs/string-locale-compare" "^1.1.0" + "@isaacs/string-locale-compare" "^1.0.1" "@npmcli/installed-package-contents" "^1.0.7" - "@npmcli/map-workspaces" "^2.0.3" - "@npmcli/metavuln-calculator" "^3.0.1" - "@npmcli/move-file" "^2.0.0" + "@npmcli/map-workspaces" "^1.0.2" + "@npmcli/metavuln-calculator" "^1.1.0" + "@npmcli/move-file" "^1.1.0" "@npmcli/name-from-folder" "^1.0.1" - "@npmcli/node-gyp" "^2.0.0" - "@npmcli/package-json" "^2.0.0" - "@npmcli/query" "^1.2.0" - "@npmcli/run-script" "^4.1.3" - bin-links "^3.0.3" - cacache "^16.1.3" + "@npmcli/node-gyp" "^1.0.1" + "@npmcli/package-json" "^1.0.1" + "@npmcli/run-script" "^1.8.2" + bin-links "^2.2.1" + cacache "^15.0.3" common-ancestor-path "^1.0.1" json-parse-even-better-errors "^2.3.1" json-stringify-nice "^1.1.4" - minimatch "^5.1.0" mkdirp "^1.0.4" mkdirp-infer-owner "^2.0.0" - nopt "^6.0.0" - npm-install-checks "^5.0.0" - npm-package-arg "^9.0.0" - npm-pick-manifest "^7.0.2" - npm-registry-fetch "^13.0.0" - npmlog "^6.0.2" - pacote "^13.6.1" - parse-conflict-json "^2.0.1" - proc-log "^2.0.0" + npm-install-checks "^4.0.0" + npm-package-arg "^8.1.5" + npm-pick-manifest "^6.1.0" + npm-registry-fetch "^11.0.0" + pacote "^11.3.5" + parse-conflict-json "^1.1.1" + proc-log "^1.0.0" promise-all-reject-late "^1.0.0" promise-call-limit "^1.0.1" read-package-json-fast "^2.0.2" readdir-scoped-modules "^1.1.0" rimraf "^3.0.2" - semver "^7.3.7" - ssri "^9.0.0" - treeverse "^2.0.0" + semver "^7.3.5" + ssri "^8.0.1" + treeverse "^1.0.4" walk-up-path "^1.0.0" -"@npmcli/ci-detect@*": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@npmcli/ci-detect/-/ci-detect-3.0.0.tgz#13195718f652fa2177421948132510ca9f55ca89" - integrity sha512-d6eGMbZ2j6n2b1KpGNbTsKNpCe3NU7xe7stzeXu6BJyLbMZ/FGHnSuwozcHEckGRKF06RO+Z8FpHg7nAbBmuUw== - -"@npmcli/ci-detect@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@npmcli/ci-detect/-/ci-detect-2.0.0.tgz#e63c91bcd4185ac1e85720a34fc48e164ece5b89" - integrity sha512-8yQtQ9ArHh/TzdUDKQwEvwCgpDuhSWTDAbiKMl3854PcT+Dk4UmWaiawuFTLy9n5twzXOBXVflWe+90/ffXQrA== +"@npmcli/ci-detect@^1.2.0", "@npmcli/ci-detect@^1.3.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@npmcli/ci-detect/-/ci-detect-1.4.0.tgz#18478bbaa900c37bfbd8a2006a6262c62e8b0fe1" + integrity sha512-3BGrt6FLjqM6br5AhWRKTr3u5GIVkjRYeAFrMp3HjnfICrg4xOrVRwFavKT6tsp++bq5dluL5t8ME/Nha/6c1Q== -"@npmcli/config@*": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@npmcli/config/-/config-5.0.0.tgz#c15214cbc225bd3cb0a93ea396d84c11fa0d07be" - integrity sha512-TfJ3IRw5eKtzvzCxWbmy74KfO1ikKoWr2oPzpugo3RqSneAF/PNFZuSAuubvyv5qKjAj0hU4BC7VI2o3eOAT2A== +"@npmcli/config@^2.3.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@npmcli/config/-/config-2.4.0.tgz#1447b0274f9502871dabd3ab1d8302472d515b1f" + integrity sha512-fwxu/zaZnvBJohXM3igzqa3P1IVYWi5N343XcKvKkJbAx+rTqegS5tAul4NLiMPQh6WoS5a4er6oo/ieUx1f4g== dependencies: - "@npmcli/map-workspaces" "^2.0.2" - ini "^3.0.0" + ini "^2.0.0" mkdirp-infer-owner "^2.0.0" - nopt "^6.0.0" - proc-log "^2.0.0" - read-package-json-fast "^2.0.3" - semver "^7.3.5" + nopt "^5.0.0" + semver "^7.3.4" walk-up-path "^1.0.0" -"@npmcli/disparity-colors@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@npmcli/disparity-colors/-/disparity-colors-2.0.0.tgz#cb518166ee21573b96241a3613fef70acb2a60ba" - integrity sha512-FFXGrIjhvd2qSZ8iS0yDvbI7nbjdyT2VNO7wotosjYZM2p2r8PN3B7Om3M5NO9KqW/OVzfzLB3L0V5Vo5QXC7A== +"@npmcli/disparity-colors@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@npmcli/disparity-colors/-/disparity-colors-1.0.1.tgz#b23c864c9658f9f0318d5aa6d17986619989535c" + integrity sha512-kQ1aCTTU45mPXN+pdAaRxlxr3OunkyztjbbxDY/aIcPS5CnCUrx+1+NvA6pTcYR7wmLZe37+Mi5v3nfbwPxq3A== dependencies: ansi-styles "^4.3.0" -"@npmcli/fs@^2.1.0", "@npmcli/fs@^2.1.1": - version "2.1.2" - resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-2.1.2.tgz#a9e2541a4a2fec2e69c29b35e6060973da79b865" - integrity sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ== +"@npmcli/fs@^1.0.0": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-1.1.1.tgz#72f719fe935e687c56a4faecf3c03d06ba593257" + integrity sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ== dependencies: - "@gar/promisify" "^1.1.3" + "@gar/promisify" "^1.0.1" semver "^7.3.5" -"@npmcli/git@^3.0.0": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@npmcli/git/-/git-3.0.2.tgz#5c5de6b4d70474cf2d09af149ce42e4e1dacb931" - integrity sha512-CAcd08y3DWBJqJDpfuVL0uijlq5oaXaOJEKHKc4wqrjd00gkvTZB+nFuLn+doOOKddaQS9JfqtNoFCO2LCvA3w== +"@npmcli/git@^2.0.7", "@npmcli/git@^2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@npmcli/git/-/git-2.1.0.tgz#2fbd77e147530247d37f325930d457b3ebe894f6" + integrity sha512-/hBFX/QG1b+N7PZBFs0bi+evgRZcK9nWBxQKZkGoXUT5hJSwl5c4d7y8/hm+NQZRPhQ67RzFaj5UM9YeyKoryw== dependencies: - "@npmcli/promise-spawn" "^3.0.0" - lru-cache "^7.4.4" + "@npmcli/promise-spawn" "^1.3.2" + lru-cache "^6.0.0" mkdirp "^1.0.4" - npm-pick-manifest "^7.0.0" - proc-log "^2.0.0" + npm-pick-manifest "^6.1.1" promise-inflight "^1.0.1" promise-retry "^2.0.1" semver "^7.3.5" which "^2.0.2" -"@npmcli/installed-package-contents@^1.0.7": +"@npmcli/installed-package-contents@^1.0.6", "@npmcli/installed-package-contents@^1.0.7": version "1.0.7" resolved "https://registry.yarnpkg.com/@npmcli/installed-package-contents/-/installed-package-contents-1.0.7.tgz#ab7408c6147911b970a8abe261ce512232a3f4fa" integrity sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw== @@ -128,30 +115,29 @@ npm-bundled "^1.1.1" npm-normalize-package-bin "^1.0.1" -"@npmcli/map-workspaces@*", "@npmcli/map-workspaces@^2.0.2", "@npmcli/map-workspaces@^2.0.3": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@npmcli/map-workspaces/-/map-workspaces-2.0.4.tgz#9e5e8ab655215a262aefabf139782b894e0504fc" - integrity sha512-bMo0aAfwhVwqoVM5UzX1DJnlvVvzDCHae821jv48L1EsrYwfOZChlqWYXEtto/+BkBXetPbEWgau++/brh4oVg== +"@npmcli/map-workspaces@^1.0.2", "@npmcli/map-workspaces@^1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@npmcli/map-workspaces/-/map-workspaces-1.0.4.tgz#915708b55afa25e20bc2c14a766c124c2c5d4cab" + integrity sha512-wVR8QxhyXsFcD/cORtJwGQodeeaDf0OxcHie8ema4VgFeqwYkFsDPnSrIRSytX8xR6nKPAH89WnwTcaU608b/Q== dependencies: "@npmcli/name-from-folder" "^1.0.1" - glob "^8.0.1" - minimatch "^5.0.1" - read-package-json-fast "^2.0.3" + glob "^7.1.6" + minimatch "^3.0.4" + read-package-json-fast "^2.0.1" -"@npmcli/metavuln-calculator@^3.0.1": - version "3.1.1" - resolved "https://registry.yarnpkg.com/@npmcli/metavuln-calculator/-/metavuln-calculator-3.1.1.tgz#9359bd72b400f8353f6a28a25c8457b562602622" - integrity sha512-n69ygIaqAedecLeVH3KnO39M6ZHiJ2dEv5A7DGvcqCB8q17BGUgW8QaanIkbWUo2aYGZqJaOORTLAlIvKjNDKA== +"@npmcli/metavuln-calculator@^1.1.0": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@npmcli/metavuln-calculator/-/metavuln-calculator-1.1.1.tgz#2f95ff3c6d88b366dd70de1c3f304267c631b458" + integrity sha512-9xe+ZZ1iGVaUovBVFI9h3qW+UuECUzhvZPxK9RaEA2mjU26o5D0JloGYWwLYvQELJNmBdQB6rrpuN8jni6LwzQ== dependencies: - cacache "^16.0.0" - json-parse-even-better-errors "^2.3.1" - pacote "^13.0.3" - semver "^7.3.5" + cacache "^15.0.5" + pacote "^11.1.11" + semver "^7.3.2" -"@npmcli/move-file@^2.0.0": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-2.0.1.tgz#26f6bdc379d87f75e55739bab89db525b06100e4" - integrity sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ== +"@npmcli/move-file@^1.0.1", "@npmcli/move-file@^1.1.0": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.1.2.tgz#1a82c3e372f7cae9253eb66d72543d6b8685c674" + integrity sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg== dependencies: mkdirp "^1.0.4" rimraf "^3.0.2" @@ -161,51 +147,41 @@ resolved "https://registry.yarnpkg.com/@npmcli/name-from-folder/-/name-from-folder-1.0.1.tgz#77ecd0a4fcb772ba6fe927e2e2e155fbec2e6b1a" integrity sha512-qq3oEfcLFwNfEYOQ8HLimRGKlD8WSeGEdtUa7hmzpR8Sa7haL1KVQrvgO6wqMjhWFFVjgtrh1gIxDz+P8sjUaA== -"@npmcli/node-gyp@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@npmcli/node-gyp/-/node-gyp-2.0.0.tgz#8c20e53e34e9078d18815c1d2dda6f2420d75e35" - integrity sha512-doNI35wIe3bBaEgrlPfdJPaCpUR89pJWep4Hq3aRdh6gKazIVWfs0jHttvSSoq47ZXgC7h73kDsUl8AoIQUB+A== +"@npmcli/node-gyp@^1.0.1", "@npmcli/node-gyp@^1.0.2": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@npmcli/node-gyp/-/node-gyp-1.0.3.tgz#a912e637418ffc5f2db375e93b85837691a43a33" + integrity sha512-fnkhw+fmX65kiLqk6E3BFLXNC26rUhK90zVwe2yncPliVT/Qos3xjhTLE59Df8KnPlcwIERXKVlU1bXoUQ+liA== -"@npmcli/package-json@*", "@npmcli/package-json@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@npmcli/package-json/-/package-json-2.0.0.tgz#3bbcf4677e21055adbe673d9f08c9f9cde942e4a" - integrity sha512-42jnZ6yl16GzjWSH7vtrmWyJDGVa/LXPdpN2rcUWolFjc9ON2N3uz0qdBbQACfmhuJZ2lbKYtmK5qx68ZPLHMA== +"@npmcli/package-json@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@npmcli/package-json/-/package-json-1.0.1.tgz#1ed42f00febe5293c3502fd0ef785647355f6e89" + integrity sha512-y6jnu76E9C23osz8gEMBayZmaZ69vFOIk8vR1FJL/wbEJ54+9aVG9rLTjQKSXfgYZEr50nw1txBBFfBZZe+bYg== dependencies: json-parse-even-better-errors "^2.3.1" -"@npmcli/promise-spawn@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@npmcli/promise-spawn/-/promise-spawn-3.0.0.tgz#53283b5f18f855c6925f23c24e67c911501ef573" - integrity sha512-s9SgS+p3a9Eohe68cSI3fi+hpcZUmXq5P7w0kMlAsWVtR7XbK3ptkZqKT2cK1zLDObJ3sR+8P59sJE0w/KTL1g== +"@npmcli/promise-spawn@^1.2.0", "@npmcli/promise-spawn@^1.3.2": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@npmcli/promise-spawn/-/promise-spawn-1.3.2.tgz#42d4e56a8e9274fba180dabc0aea6e38f29274f5" + integrity sha512-QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg== dependencies: infer-owner "^1.0.4" -"@npmcli/query@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@npmcli/query/-/query-1.2.0.tgz#46468d583cf013aa92102970700f9555314aabe4" - integrity sha512-uWglsUM3PjBLgTSmZ3/vygeGdvWEIZ3wTUnzGFbprC/RtvQSaT+GAXu1DXmSFj2bD3oOZdcRm1xdzsV2z1YWdw== - dependencies: - npm-package-arg "^9.1.0" - postcss-selector-parser "^6.0.10" - semver "^7.3.7" - -"@npmcli/run-script@*", "@npmcli/run-script@^4.1.0", "@npmcli/run-script@^4.1.3", "@npmcli/run-script@^4.2.0": - version "4.2.1" - resolved "https://registry.yarnpkg.com/@npmcli/run-script/-/run-script-4.2.1.tgz#c07c5c71bc1c70a5f2a06b0d4da976641609b946" - integrity sha512-7dqywvVudPSrRCW5nTHpHgeWnbBtz8cFkOuKrecm6ih+oO9ciydhWt6OF7HlqupRRmB8Q/gECVdB9LMfToJbRg== +"@npmcli/run-script@^1.8.2", "@npmcli/run-script@^1.8.3", "@npmcli/run-script@^1.8.4", "@npmcli/run-script@^1.8.6": + version "1.8.6" + resolved "https://registry.yarnpkg.com/@npmcli/run-script/-/run-script-1.8.6.tgz#18314802a6660b0d4baa4c3afe7f1ad39d8c28b7" + integrity sha512-e42bVZnC6VluBZBAFEr3YrdqSspG3bgilyg4nSLBJ7TRGNCzxHa92XAHxQBLYg0BmgwO4b2mf3h/l5EkEWRn3g== dependencies: - "@npmcli/node-gyp" "^2.0.0" - "@npmcli/promise-spawn" "^3.0.0" - node-gyp "^9.0.0" - read-package-json-fast "^2.0.3" - which "^2.0.2" + "@npmcli/node-gyp" "^1.0.2" + "@npmcli/promise-spawn" "^1.3.2" + node-gyp "^7.1.0" + read-package-json-fast "^2.0.1" -"@tootallnate/once@2": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf" - integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A== +"@tootallnate/once@1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" + integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== -abbrev@*, abbrev@^1.0.0: +abbrev@1, abbrev@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== @@ -225,7 +201,7 @@ agent-base@6, agent-base@^6.0.2: dependencies: debug "4" -agentkeepalive@^4.2.1: +agentkeepalive@^4.1.3: version "4.2.1" resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.2.1.tgz#a7975cbb9f83b367f06c90cc51ff28fe7d499717" integrity sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA== @@ -242,6 +218,26 @@ aggregate-error@^3.0.0: clean-stack "^2.0.0" indent-string "^4.0.0" +ajv@^6.12.3: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + integrity sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA== + +ansi-regex@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.1.tgz#123d6479e92ad45ad897d4054e3c7ca7db4944e1" + integrity sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw== + ansi-regex@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" @@ -254,12 +250,12 @@ ansi-styles@^4.1.0, ansi-styles@^4.3.0: dependencies: color-convert "^2.0.1" -ansicolors@*: +ansicolors@~0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/ansicolors/-/ansicolors-0.3.2.tgz#665597de86a9ffe3aa9bfbe6cae5c6ea426b4979" integrity sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg== -ansistyles@*: +ansistyles@~0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/ansistyles/-/ansistyles-0.1.3.tgz#5de60415bda071bb37127854c864f41b23254539" integrity sha512-6QWEyvMgIXX0eO972y7YPBLSBsq7UWKFAoNNTLGaOJ9bstcEL9sCbcjf96dVfNDdUsRoGOK82vWFJlKApXds7g== @@ -272,24 +268,37 @@ anymatch@~3.1.1: normalize-path "^3.0.0" picomatch "^2.0.4" +aproba@^1.0.3: + version "1.2.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" + integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== + "aproba@^1.0.3 || ^2.0.0", aproba@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== -archy@*: +archy@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" integrity sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw== -are-we-there-yet@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz#679df222b278c64f2cdba1175cdc00b0d96164bd" - integrity sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg== +are-we-there-yet@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz#372e0e7bd279d8e94c653aaa1f67200884bf3e1c" + integrity sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw== dependencies: delegates "^1.0.0" readable-stream "^3.6.0" +are-we-there-yet@~1.1.2: + version "1.1.7" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz#b15474a932adab4ff8a50d9adfa7e4e926f21146" + integrity sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g== + dependencies: + delegates "^1.0.0" + readable-stream "^2.0.6" + array-flatten@1.1.1: version "1.1.1" resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz" @@ -300,6 +309,18 @@ asap@^2.0.0: resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== +asn1@~0.2.3: + version "0.2.6" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d" + integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ== + dependencies: + safer-buffer "~2.1.0" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== + asynckit@^0.4.0: version "0.4.0" resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" @@ -310,6 +331,16 @@ at-least-node@^1.0.0: resolved "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz" integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + integrity sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA== + +aws4@^1.8.0: + version "1.11.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" + integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== + balanced-match@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz" @@ -320,6 +351,13 @@ base64-js@^1.3.1: resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== +bcrypt-pbkdf@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + integrity sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w== + dependencies: + tweetnacl "^0.14.3" + better-sqlite3@^7.5.0: version "7.6.2" resolved "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-7.6.2.tgz" @@ -328,17 +366,17 @@ better-sqlite3@^7.5.0: bindings "^1.5.0" prebuild-install "^7.1.0" -bin-links@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/bin-links/-/bin-links-3.0.3.tgz#3842711ef3db2cd9f16a5f404a996a12db355a6e" - integrity sha512-zKdnMPWEdh4F5INR07/eBrodC7QrF5JKvqskjz/ZZRXg5YSAZIbn8zGhbhUrElzHBZ2fvEQdOU59RHcTG3GiwA== +bin-links@^2.2.1: + version "2.3.0" + resolved "https://registry.yarnpkg.com/bin-links/-/bin-links-2.3.0.tgz#1ff241c86d2c29b24ae52f49544db5d78a4eb967" + integrity sha512-JzrOLHLwX2zMqKdyYZjkDgQGT+kHDkIhv2/IK2lJ00qLxV4TmFoHi8drDBb6H5Zrz1YfgHkai4e2MGPqnoUhqA== dependencies: - cmd-shim "^5.0.0" + cmd-shim "^4.0.1" mkdirp-infer-owner "^2.0.0" - npm-normalize-package-bin "^2.0.0" - read-cmd-shim "^3.0.0" + npm-normalize-package-bin "^1.0.0" + read-cmd-shim "^2.0.0" rimraf "^3.0.0" - write-file-atomic "^4.0.0" + write-file-atomic "^3.0.3" binary-extensions@^2.0.0, binary-extensions@^2.2.0: version "2.2.0" @@ -385,13 +423,6 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" -brace-expansion@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" - integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== - dependencies: - balanced-match "^1.0.0" - braces@~3.0.2: version "3.0.2" resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" @@ -407,48 +438,46 @@ buffer@^5.5.0: base64-js "^1.3.1" ieee754 "^1.1.13" -builtins@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/builtins/-/builtins-5.0.1.tgz#87f6db9ab0458be728564fa81d876d8d74552fa9" - integrity sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ== - dependencies: - semver "^7.0.0" +builtins@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" + integrity sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ== bytes@3.1.0: version "3.1.0" resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz" integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== -cacache@*, cacache@^16.0.0, cacache@^16.1.0, cacache@^16.1.3: - version "16.1.3" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-16.1.3.tgz#a02b9f34ecfaf9a78c9f4bc16fceb94d5d67a38e" - integrity sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ== +cacache@^15.0.3, cacache@^15.0.5, cacache@^15.2.0, cacache@^15.3.0: + version "15.3.0" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.3.0.tgz#dc85380fb2f556fe3dda4c719bfa0ec875a7f1eb" + integrity sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ== dependencies: - "@npmcli/fs" "^2.1.0" - "@npmcli/move-file" "^2.0.0" + "@npmcli/fs" "^1.0.0" + "@npmcli/move-file" "^1.0.1" chownr "^2.0.0" - fs-minipass "^2.1.0" - glob "^8.0.1" + fs-minipass "^2.0.0" + glob "^7.1.4" infer-owner "^1.0.4" - lru-cache "^7.7.1" - minipass "^3.1.6" + lru-cache "^6.0.0" + minipass "^3.1.1" minipass-collect "^1.0.2" minipass-flush "^1.0.5" - minipass-pipeline "^1.2.4" - mkdirp "^1.0.4" + minipass-pipeline "^1.2.2" + mkdirp "^1.0.3" p-map "^4.0.0" promise-inflight "^1.0.1" rimraf "^3.0.2" - ssri "^9.0.0" - tar "^6.1.11" - unique-filename "^2.0.0" + ssri "^8.0.1" + tar "^6.0.2" + unique-filename "^1.1.1" -chalk@*: - version "5.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.1.2.tgz#d957f370038b75ac572471e83be4c5ca9f8e8c45" - integrity sha512-E5CkT4jWURs1Vy5qGJye+XwCkNj7Od3Af7CP6SujMetSMkLs8Do2RWJK5yx1wamHV/op8Rz+9rltjaTQWDnEFQ== +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== -chalk@^4.0.0, chalk@^4.1.0: +chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== @@ -476,37 +505,37 @@ chardet@^1.2.1: optionalDependencies: fsevents "~2.3.1" -chownr@*, chownr@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" - integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== - chownr@^1.1.1: version "1.1.4" resolved "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz" integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== -cidr-regex@4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/cidr-regex/-/cidr-regex-4.0.2.tgz#ca8216d1761eed0bd9c4f5e8740f2d7363dd05bb" - integrity sha512-xvqVyyE8emYjipWVxsA+Vcsbt8TbJJsTHbOeMMA5qsmXUu5VZJzNBGwI4rr1IZ0FQI2z7bfry4NNACP5Cf67CA== +chownr@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" + integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== + +cidr-regex@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/cidr-regex/-/cidr-regex-3.1.1.tgz#ba1972c57c66f61875f18fd7dd487469770b571d" + integrity sha512-RBqYd32aDwbCMFJRL6wHOlDNYJsPNTt8vC82ErHF5vKt8QQzxm1FrkW8s/R5pVrXMf17sba09Uoy91PKiddAsw== dependencies: - ip-regex "^5.0.0" + ip-regex "^4.1.0" clean-stack@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== -cli-columns@*: - version "4.0.0" - resolved "https://registry.yarnpkg.com/cli-columns/-/cli-columns-4.0.0.tgz#9fe4d65975238d55218c41bd2ed296a7fa555646" - integrity sha512-XW2Vg+w+L9on9wtwKpyzluIPCWXjaBahI7mTcYjx+BVIYD9c3yqcv/yKC7CmdCZat4rq2yiE1UMSJC5ivKfMtQ== +cli-columns@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/cli-columns/-/cli-columns-3.1.2.tgz#6732d972979efc2ae444a1f08e08fa139c96a18e" + integrity sha512-iQYpDgpPPmCjn534ikQOhi+ydP6uMar+DtJ6a0In4aGL/PKqWfao75s6eF81quQQaz7isGz+goNECLARRZswdg== dependencies: - string-width "^4.2.3" - strip-ansi "^6.0.1" + string-width "^2.0.0" + strip-ansi "^3.0.1" -cli-table3@*: +cli-table3@^0.6.0: version "0.6.3" resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.3.tgz#61ab765aac156b52f222954ffc607a6f01dbeeb2" integrity sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg== @@ -520,13 +549,18 @@ clone@^1.0.2: resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== -cmd-shim@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-5.0.0.tgz#8d0aaa1a6b0708630694c4dbde070ed94c707724" - integrity sha512-qkCtZ59BidfEwHltnJwkyVZn+XQojdAySM1D1gSeh11Z4pW1Kpolkyo53L5noc0nrxmIvyFwTmJRo4xs7FFLPw== +cmd-shim@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-4.1.0.tgz#b3a904a6743e9fede4148c6f3800bf2a08135bdd" + integrity sha512-lb9L7EM4I/ZRVuljLPEtUJOP+xiQVknZ4ZMpMgEp4JzNldPb27HU03hi6K1/6CoIuit/Zm/LQXySErFeXxDprw== dependencies: mkdirp-infer-owner "^2.0.0" +code-point-at@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + integrity sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA== + codemirror@^5.52.2: version "5.59.2" resolved "https://registry.npmjs.org/codemirror/-/codemirror-5.59.2.tgz" @@ -544,20 +578,20 @@ color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -color-support@^1.1.3: +color-support@^1.1.2: version "1.1.3" resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== -columnify@*: - version "1.6.0" - resolved "https://registry.yarnpkg.com/columnify/-/columnify-1.6.0.tgz#6989531713c9008bb29735e61e37acf5bd553cf3" - integrity sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q== +columnify@~1.5.4: + version "1.5.4" + resolved "https://registry.yarnpkg.com/columnify/-/columnify-1.5.4.tgz#4737ddf1c7b69a8a7c340570782e947eec8e78bb" + integrity sha512-rFl+iXVT1nhLQPfGDw+3WcS8rmm7XsLKUmhsGE3ihzzpIikeGrTaZPIRKYWeLsLBypsHzjXIvYEltVUZS84XxQ== dependencies: - strip-ansi "^6.0.1" + strip-ansi "^3.0.0" wcwidth "^1.0.0" -combined-stream@^1.0.8: +combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: version "1.0.8" resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== @@ -579,7 +613,7 @@ concat-map@0.0.1: resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= -console-control-strings@^1.1.0: +console-control-strings@^1.0.0, console-control-strings@^1.1.0, console-control-strings@~1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz" integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= @@ -606,6 +640,16 @@ cookie@0.4.0: resolved "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz" integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== +core-util-is@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== + +core-util-is@~1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + css-tree@^1.1.2: version "1.1.3" resolved "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz" @@ -614,11 +658,6 @@ css-tree@^1.1.2: mdn-data "2.0.14" source-map "^0.6.1" -cssesc@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" - integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== - d3-array@1, d3-array@^1.1.1, d3-array@^1.2.0: version "1.2.4" resolved "https://registry.npmjs.org/d3-array/-/d3-array-1.2.4.tgz" @@ -872,6 +911,13 @@ d3@^5.15.1: d3-voronoi "1" d3-zoom "1" +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + integrity sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g== + dependencies: + assert-plus "^1.0.0" + date-fns@^1.29.0: version "1.30.1" resolved "https://registry.npmjs.org/date-fns/-/date-fns-1.30.1.tgz" @@ -948,11 +994,19 @@ dezalgo@^1.0.0: asap "^2.0.0" wrappy "1" -diff@^5.1.0: +diff@^5.0.0: version "5.1.0" resolved "https://registry.yarnpkg.com/diff/-/diff-5.1.0.tgz#bc52d298c5ea8df9194800224445ed43ffc87e40" integrity sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw== +ecc-jsbn@~0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + integrity sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw== + dependencies: + jsbn "~0.1.0" + safer-buffer "^2.1.0" + ee-first@1.1.1: version "1.1.1" resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" @@ -968,7 +1022,7 @@ encodeurl@~1.0.2: resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz" integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= -encoding@^0.1.13: +encoding@^0.1.12: version "0.1.13" resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== @@ -1161,7 +1215,32 @@ express@^4.16.2: utils-merge "1.0.1" vary "~1.1.2" -fastest-levenshtein@*: +extend@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + +extsprintf@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + integrity sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g== + +extsprintf@^1.2.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07" + integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== + +fast-deep-equal@^3.1.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fastest-levenshtein@^1.0.12: version "1.0.16" resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz#210e61b6ff181de91ea9b3d1b84fdedd47e034e5" integrity sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg== @@ -1191,6 +1270,11 @@ finalhandler@~1.1.2: statuses "~1.5.0" unpipe "~1.0.0" +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw== + form-data@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/form-data/-/form-data-3.0.0.tgz" @@ -1200,6 +1284,15 @@ form-data@^3.0.0: combined-stream "^1.0.8" mime-types "^2.1.12" +form-data@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + forwarded@~0.1.2: version "0.1.2" resolved "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz" @@ -1247,19 +1340,41 @@ function-bind@^1.1.1: resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== -gauge@^4.0.3: - version "4.0.4" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-4.0.4.tgz#52ff0652f2bbf607a989793d53b751bef2328dce" - integrity sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg== +gauge@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-3.0.2.tgz#03bf4441c044383908bcfa0656ad91803259b395" + integrity sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q== dependencies: aproba "^1.0.3 || ^2.0.0" - color-support "^1.1.3" - console-control-strings "^1.1.0" + color-support "^1.1.2" + console-control-strings "^1.0.0" has-unicode "^2.0.1" - signal-exit "^3.0.7" + object-assign "^4.1.1" + signal-exit "^3.0.0" string-width "^4.2.3" strip-ansi "^6.0.1" - wide-align "^1.1.5" + wide-align "^1.1.2" + +gauge@~2.7.3: + version "2.7.4" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" + integrity sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg== + dependencies: + aproba "^1.0.3" + console-control-strings "^1.0.0" + has-unicode "^2.0.0" + object-assign "^4.1.0" + signal-exit "^3.0.0" + string-width "^1.0.1" + strip-ansi "^3.0.1" + wide-align "^1.1.0" + +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + integrity sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng== + dependencies: + assert-plus "^1.0.0" github-from-package@0.0.0: version "0.0.0" @@ -1273,15 +1388,15 @@ glob-parent@~5.1.0: dependencies: is-glob "^4.0.1" -glob@*, glob@^7.1.4: - version "7.2.0" - resolved "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz" - integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== +glob@^7.1.1, glob@^7.1.6, glob@^7.2.0: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" inherits "2" - minimatch "^3.0.4" + minimatch "^3.1.1" once "^1.3.0" path-is-absolute "^1.0.0" @@ -1297,18 +1412,19 @@ glob@^7.1.3: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^8.0.1: - version "8.0.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-8.0.3.tgz#415c6eb2deed9e502c68fa44a272e6da6eeca42e" - integrity sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ== +glob@^7.1.4: + version "7.2.0" + resolved "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz" + integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" inherits "2" - minimatch "^5.0.1" + minimatch "^3.0.4" once "^1.3.0" + path-is-absolute "^1.0.0" -graceful-fs@*, graceful-fs@^4.1.2, graceful-fs@^4.2.6: +graceful-fs@^4.1.2, graceful-fs@^4.2.3, graceful-fs@^4.2.8: version "4.2.10" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== @@ -1318,12 +1434,25 @@ graceful-fs@^4.1.6, graceful-fs@^4.2.0: resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz" integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + integrity sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q== + +har-validator@~5.1.3: + version "5.1.5" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" + integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== + dependencies: + ajv "^6.12.3" + har-schema "^2.0.0" + has-flag@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has-unicode@^2.0.1: +has-unicode@^2.0.0, has-unicode@^2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz" integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= @@ -1354,19 +1483,12 @@ hoist-non-react-statics@^3.1.0: dependencies: react-is "^16.7.0" -hosted-git-info@*: - version "6.0.0" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-6.0.0.tgz#2e9b726a8ac0d68a907c6a8dc4abecac5e0ed69a" - integrity sha512-NURrKJX36ihI69iCqcvN4uuIk9fHcc1C+uax/5fPh4Tr5WJnATir+QM/CMJNKrcOOvxQDsAdS5C9oJliM80X7g== - dependencies: - lru-cache "^7.5.1" - -hosted-git-info@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-5.1.0.tgz#9786123f92ef3627f24abc3f15c20d98ec4a6594" - integrity sha512-Ek+QmMEqZF8XrbFdwoDjSbm7rT23pCgEMOJmz6GPk/s4yH//RQfNPArhIxbguNxROq/+5lNBwCDHMhA903Kx1Q== +hosted-git-info@^4.0.1, hosted-git-info@^4.0.2: + version "4.1.0" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.1.0.tgz#827b82867e9ff1c8d0c4d9d53880397d2c86d224" + integrity sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA== dependencies: - lru-cache "^7.5.1" + lru-cache "^6.0.0" http-cache-semantics@^4.1.0: version "4.1.0" @@ -1384,15 +1506,24 @@ http-errors@1.7.2, http-errors@~1.7.2: statuses ">= 1.5.0 < 2" toidentifier "1.0.0" -http-proxy-agent@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz#5129800203520d434f142bc78ff3c170800f2b43" - integrity sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w== +http-proxy-agent@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a" + integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg== dependencies: - "@tootallnate/once" "2" + "@tootallnate/once" "1" agent-base "6" debug "4" +http-signature@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + integrity sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ== + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + https-proxy-agent@^5.0.0: version "5.0.1" resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" @@ -1427,12 +1558,12 @@ ieee754@^1.1.13: resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== -ignore-walk@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-5.0.1.tgz#5f199e23e1288f518d90358d461387788a154776" - integrity sha512-yemi4pMf51WKT7khInJqAvsIGzoqYXblnsz0ql8tM+yi1EKYTY1evX4NAbJrLL/Aanr2HyZeluqU+Oi7MGHokw== +ignore-walk@^3.0.3: + version "3.0.4" + resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.4.tgz#c9a09f69b7c7b479a5d74ac1a3c0d4236d2a6335" + integrity sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ== dependencies: - minimatch "^5.0.1" + minimatch "^3.0.4" immutable@^4.0.0: version "4.1.0" @@ -1462,7 +1593,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@^2.0.3, inherits@^2.0.4: +inherits@2, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: version "2.0.4" resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -1472,33 +1603,33 @@ inherits@2.0.3: resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= -ini@*, ini@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/ini/-/ini-3.0.1.tgz#c76ec81007875bc44d544ff7a11a55d12294102d" - integrity sha512-it4HyVAUTKBc6m8e1iXWvXSTdndF7HbdN713+kvLrymxTaU4AUBWrJ4vEooP+V7fexnVD3LKcBshjGGPefSMUQ== +ini@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" + integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== ini@~1.3.0: version "1.3.8" resolved "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== -init-package-json@*: - version "3.0.2" - resolved "https://registry.yarnpkg.com/init-package-json/-/init-package-json-3.0.2.tgz#f5bc9bac93f2bdc005778bc2271be642fecfcd69" - integrity sha512-YhlQPEjNFqlGdzrBfDNRLhvoSgX7iQRgSxgsNknRQ9ITXFT7UMfVMWhBTOh2Y+25lRnGrv5Xz8yZwQ3ACR6T3A== +init-package-json@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/init-package-json/-/init-package-json-2.0.5.tgz#78b85f3c36014db42d8f32117252504f68022646" + integrity sha512-u1uGAtEFu3VA6HNl/yUWw57jmKEMx8SKOxHhxjGnOFUiIlFnohKDFg4ZrPpv9wWqk44nDxGJAtqjdQFm+9XXQA== dependencies: - npm-package-arg "^9.0.1" + npm-package-arg "^8.1.5" promzard "^0.3.0" - read "^1.0.7" - read-package-json "^5.0.0" + read "~1.0.1" + read-package-json "^4.1.1" semver "^7.3.5" validate-npm-package-license "^3.0.4" - validate-npm-package-name "^4.0.0" + validate-npm-package-name "^3.0.0" -ip-regex@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-5.0.0.tgz#cd313b2ae9c80c07bd3851e12bf4fa4dc5480632" - integrity sha512-fOCG6lhoKKakwv+C6KdsOnGvgXnmgfmp0myi3bcNwj3qfwPAxRKWEuFhvEFF7ceYIz6+1jRZ+yguLFAmUNPEfw== +ip-regex@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-4.3.0.tgz#687275ab0f57fa76978ff8f4dddc8a23d5990db5" + integrity sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q== ip@^2.0.0: version "2.0.0" @@ -1532,17 +1663,17 @@ is-binary-path@~2.1.0: dependencies: binary-extensions "^2.0.0" -is-cidr@*: - version "5.0.2" - resolved "https://registry.yarnpkg.com/is-cidr/-/is-cidr-5.0.2.tgz#8805dce4ac503dcb3270aa7e8987fcc6f400fa58" - integrity sha512-cCaw4czL00EUoO+mbOt2cUSFq8DQ/3rfWw6foy48TI52+j/tKTtlUet14UnWryHfY9bNbpHLqXkd/jnF600PPQ== +is-cidr@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/is-cidr/-/is-cidr-4.0.2.tgz#94c7585e4c6c77ceabf920f8cde51b8c0fda8814" + integrity sha512-z4a1ENUajDbEl/Q6/pVBpTR1nBjjEE1X7qb7bmWYanNnPoKAvUCPFKeXV6Fe4mgTkWKBqiHIcwsI3SndiO5FeA== dependencies: - cidr-regex "4.0.2" + cidr-regex "^3.1.1" -is-core-module@^2.8.1: - version "2.10.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.10.0.tgz#9012ede0a91c69587e647514e1d5277019e728ed" - integrity sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg== +is-core-module@^2.5.0: + version "2.11.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144" + integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw== dependencies: has "^1.0.3" @@ -1551,6 +1682,18 @@ is-extglob@^2.1.1: resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + integrity sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw== + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + integrity sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w== + is-fullwidth-code-point@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" @@ -1573,41 +1716,71 @@ is-number@^7.0.0: resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== +is-typedarray@^1.0.0, is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== + isarray@0.0.1: version "0.0.1" resolved "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= +isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== + isexe@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= -isolated-vm@^4.3.5: - version "4.4.1" - resolved "https://registry.npmjs.org/isolated-vm/-/isolated-vm-4.4.1.tgz" - integrity sha512-5aDwxQGm78vHS+qJeUli2ILroG7OS/k3D/Mc0kcT9vyujiL4bV7PYYix1mAvuBm3v44nz2qcfAOqgAbhuACc/w== +isolated-vm@^4.4.1: + version "4.4.2" + resolved "https://registry.yarnpkg.com/isolated-vm/-/isolated-vm-4.4.2.tgz#d5cf66f8751e9824cf0710d1a41022a1a60d29b7" + integrity sha512-4ObzqZWZTS3bQtavzgoCMsOxpQt3hMeenkPavx2Razig3wX3fAkXZ3XpmqXKoJu6KMl4egBI1MfSg0BnxZ/rfg== + +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== "js-tokens@^3.0.0 || ^4.0.0": version "4.0.0" resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -json-parse-even-better-errors@*, json-parse-even-better-errors@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.0.tgz#2cb2ee33069a78870a0c7e3da560026b89669cf7" - integrity sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA== +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" + integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== + json-stringify-nice@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/json-stringify-nice/-/json-stringify-nice-1.1.4.tgz#2c937962b80181d3f317dd39aa323e14f5a60a67" integrity sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw== +json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== + jsonfile@^6.0.1: version "6.1.0" resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz" @@ -1622,128 +1795,135 @@ jsonparse@^1.3.1: resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== -just-diff-apply@^5.2.0: - version "5.4.1" - resolved "https://registry.yarnpkg.com/just-diff-apply/-/just-diff-apply-5.4.1.tgz#1debed059ad009863b4db0e8d8f333d743cdd83b" - integrity sha512-AAV5Jw7tsniWwih8Ly3fXxEZ06y+6p5TwQMsw0dzZ/wPKilzyDgdAnL0Ug4NNIquPUOh1vfFWEHbmXUqM5+o8g== +jsprim@^1.2.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.2.tgz#712c65533a15c878ba59e9ed5f0e26d5b77c5feb" + integrity sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw== + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.4.0" + verror "1.10.0" -just-diff@^5.0.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/just-diff/-/just-diff-5.1.1.tgz#8da6414342a5ed6d02ccd64f5586cbbed3146202" - integrity sha512-u8HXJ3HlNrTzY7zrYYKjNEfBlyjqhdBkoyTVdjtn7p02RJD5NvR8rIClzeGA7t+UYP1/7eAkWNLU0+P3QrEqKQ== +just-diff-apply@^3.0.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/just-diff-apply/-/just-diff-apply-3.1.2.tgz#710d8cda00c65dc4e692df50dbe9bac5581c2193" + integrity sha512-TCa7ZdxCeq6q3Rgms2JCRHTCfWAETPZ8SzYUbkYF6KR3I03sN29DaOIC+xyWboIcMvjAsD5iG2u/RWzHD8XpgQ== -libnpmaccess@*: - version "6.0.4" - resolved "https://registry.yarnpkg.com/libnpmaccess/-/libnpmaccess-6.0.4.tgz#2dd158bd8a071817e2207d3b201d37cf1ad6ae6b" - integrity sha512-qZ3wcfIyUoW0+qSFkMBovcTrSGJ3ZeyvpR7d5N9pEYv/kXs8sHP2wiqEIXBKLFrZlmM0kR0RJD7mtfLngtlLag== +just-diff@^3.0.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/just-diff/-/just-diff-3.1.1.tgz#d50c597c6fd4776495308c63bdee1b6839082647" + integrity sha512-sdMWKjRq8qWZEjDcVA6llnUT8RDEBIfOiGpYFPYa9u+2c39JCsejktSP7mj5eRid5EIvTzIpQ2kDOCw1Nq9BjQ== + +libnpmaccess@^4.0.2: + version "4.0.3" + resolved "https://registry.yarnpkg.com/libnpmaccess/-/libnpmaccess-4.0.3.tgz#dfb0e5b0a53c315a2610d300e46b4ddeb66e7eec" + integrity sha512-sPeTSNImksm8O2b6/pf3ikv4N567ERYEpeKRPSmqlNt1dTZbvgpJIzg5vAhXHpw2ISBsELFRelk0jEahj1c6nQ== dependencies: aproba "^2.0.0" minipass "^3.1.1" - npm-package-arg "^9.0.1" - npm-registry-fetch "^13.0.0" + npm-package-arg "^8.1.2" + npm-registry-fetch "^11.0.0" -libnpmdiff@*: - version "4.0.5" - resolved "https://registry.yarnpkg.com/libnpmdiff/-/libnpmdiff-4.0.5.tgz#ffaf93fa9440ea759444b8830fdb5c661b09a7c0" - integrity sha512-9fICQIzmH892UwHHPmb+Seup50UIBWcMIK2FdxvlXm9b4kc1nSH0b/BuY1mORJQtB6ydPMnn+BLzOTmd/SKJmw== +libnpmdiff@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/libnpmdiff/-/libnpmdiff-2.0.4.tgz#bb1687992b1a97a8ea4a32f58ad7c7f92de53b74" + integrity sha512-q3zWePOJLHwsLEUjZw3Kyu/MJMYfl4tWCg78Vl6QGSfm4aXBUSVzMzjJ6jGiyarsT4d+1NH4B1gxfs62/+y9iQ== dependencies: - "@npmcli/disparity-colors" "^2.0.0" + "@npmcli/disparity-colors" "^1.0.1" "@npmcli/installed-package-contents" "^1.0.7" binary-extensions "^2.2.0" - diff "^5.1.0" - minimatch "^5.0.1" - npm-package-arg "^9.0.1" - pacote "^13.6.1" + diff "^5.0.0" + minimatch "^3.0.4" + npm-package-arg "^8.1.1" + pacote "^11.3.0" tar "^6.1.0" -libnpmexec@*: - version "4.0.13" - resolved "https://registry.yarnpkg.com/libnpmexec/-/libnpmexec-4.0.13.tgz#6688bd6c02cac31a32d2e56680c3884948cbf453" - integrity sha512-MGi6eD6zqZ1V8VCJenWRc2+rWaFiW/Vkr5Aa/cQAd3duWNvXen9sm101M6ww5ER5PmsT+qX2aZOA3A9ZPfJQXg== +libnpmexec@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/libnpmexec/-/libnpmexec-2.0.1.tgz#729ae3e15a3ba225964ccf248117a75d311eeb73" + integrity sha512-4SqBB7eJvJWmUKNF42Q5qTOn20DRjEE4TgvEh2yneKlAiRlwlhuS9MNR45juWwmoURJlf2K43bozlVt7OZiIOw== dependencies: - "@npmcli/arborist" "^5.6.2" - "@npmcli/ci-detect" "^2.0.0" - "@npmcli/fs" "^2.1.1" - "@npmcli/run-script" "^4.2.0" + "@npmcli/arborist" "^2.3.0" + "@npmcli/ci-detect" "^1.3.0" + "@npmcli/run-script" "^1.8.4" chalk "^4.1.0" mkdirp-infer-owner "^2.0.0" - npm-package-arg "^9.0.1" - npmlog "^6.0.2" - pacote "^13.6.1" - proc-log "^2.0.0" + npm-package-arg "^8.1.2" + pacote "^11.3.1" + proc-log "^1.0.0" read "^1.0.7" read-package-json-fast "^2.0.2" - semver "^7.3.7" walk-up-path "^1.0.0" -libnpmfund@*: - version "3.0.4" - resolved "https://registry.yarnpkg.com/libnpmfund/-/libnpmfund-3.0.4.tgz#be1fd46bcfa9432660f98d935135d7ee3e620239" - integrity sha512-azKUVFkL27AsvzEzLKMHX/L8j/GE2TL6eZ6KIdc9hsvleoNLT+Y6XO9w9v7JWwg03smZK9dbqwvnYZzO3vzrIA== +libnpmfund@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/libnpmfund/-/libnpmfund-1.1.0.tgz#ee91313905b3194b900530efa339bc3f9fc4e5c4" + integrity sha512-Kfmh3pLS5/RGKG5WXEig8mjahPVOxkik6lsbH4iX0si1xxNi6eeUh/+nF1MD+2cgalsQif3O5qyr6mNz2ryJrQ== dependencies: - "@npmcli/arborist" "^5.6.2" + "@npmcli/arborist" "^2.5.0" -libnpmhook@*: - version "8.0.4" - resolved "https://registry.yarnpkg.com/libnpmhook/-/libnpmhook-8.0.4.tgz#6c58e5fe763ff5d600ae9c20457ea9a69d1f7d87" - integrity sha512-nuD6e+Nx0OprjEi0wOeqASMl6QIH235th/Du2/8upK3evByFhzIgdfOeP1OhstavW4xtsl0hk5Vw4fAWWuSUgA== +libnpmhook@^6.0.2: + version "6.0.3" + resolved "https://registry.yarnpkg.com/libnpmhook/-/libnpmhook-6.0.3.tgz#1d7f0d7e6a7932fbf7ce0881fdb0ed8bf8748a30" + integrity sha512-3fmkZJibIybzmAvxJ65PeV3NzRc0m4xmYt6scui5msocThbEp4sKFT80FhgrCERYDjlUuFahU6zFNbJDHbQ++g== dependencies: aproba "^2.0.0" - npm-registry-fetch "^13.0.0" + npm-registry-fetch "^11.0.0" -libnpmorg@*: - version "4.0.4" - resolved "https://registry.yarnpkg.com/libnpmorg/-/libnpmorg-4.0.4.tgz#2a01d49372cf0df90d79a61e69bddaf2ed704311" - integrity sha512-1bTpD7iub1rDCsgiBguhJhiDufLQuc8DEti20euqsXz9O0ncXVpCYqf2SMmHR4GEdmAvAj2r7FMiyA9zGdaTpA== +libnpmorg@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/libnpmorg/-/libnpmorg-2.0.3.tgz#4e605d4113dfa16792d75343824a0625c76703bc" + integrity sha512-JSGl3HFeiRFUZOUlGdiNcUZOsUqkSYrg6KMzvPZ1WVZ478i47OnKSS0vkPmX45Pai5mTKuwIqBMcGWG7O8HfdA== dependencies: aproba "^2.0.0" - npm-registry-fetch "^13.0.0" + npm-registry-fetch "^11.0.0" -libnpmpack@*: - version "4.1.3" - resolved "https://registry.yarnpkg.com/libnpmpack/-/libnpmpack-4.1.3.tgz#025cfe39829acd8260662bf259e3a9331fc1e4b2" - integrity sha512-rYP4X++ME3ZiFO+2iN3YnXJ4LB4Gsd0z5cgszWJZxaEpDN4lRIXirSyynGNsN/hn4taqnlxD+3DPlFDShvRM8w== +libnpmpack@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/libnpmpack/-/libnpmpack-2.0.1.tgz#d3eac25cc8612f4e7cdeed4730eee339ba51c643" + integrity sha512-He4/jxOwlaQ7YG7sIC1+yNeXeUDQt8RLBvpI68R3RzPMZPa4/VpxhlDo8GtBOBDYoU8eq6v1wKL38sq58u4ibQ== dependencies: - "@npmcli/run-script" "^4.1.3" - npm-package-arg "^9.0.1" - pacote "^13.6.1" + "@npmcli/run-script" "^1.8.3" + npm-package-arg "^8.1.0" + pacote "^11.2.6" -libnpmpublish@*: - version "6.0.5" - resolved "https://registry.yarnpkg.com/libnpmpublish/-/libnpmpublish-6.0.5.tgz#5a894f3de2e267d62f86be2a508e362599b5a4b1" - integrity sha512-LUR08JKSviZiqrYTDfywvtnsnxr+tOvBU0BF8H+9frt7HMvc6Qn6F8Ubm72g5hDTHbq8qupKfDvDAln2TVPvFg== +libnpmpublish@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/libnpmpublish/-/libnpmpublish-4.0.2.tgz#be77e8bf5956131bcb45e3caa6b96a842dec0794" + integrity sha512-+AD7A2zbVeGRCFI2aO//oUmapCwy7GHqPXFJh3qpToSRNU+tXKJ2YFUgjt04LPPAf2dlEH95s6EhIHM1J7bmOw== dependencies: - normalize-package-data "^4.0.0" - npm-package-arg "^9.0.1" - npm-registry-fetch "^13.0.0" - semver "^7.3.7" - ssri "^9.0.0" + normalize-package-data "^3.0.2" + npm-package-arg "^8.1.2" + npm-registry-fetch "^11.0.0" + semver "^7.1.3" + ssri "^8.0.1" -libnpmsearch@*: - version "5.0.4" - resolved "https://registry.yarnpkg.com/libnpmsearch/-/libnpmsearch-5.0.4.tgz#b32aa2b23051c00cdcc0912274d0d416e6655d81" - integrity sha512-XHDmsvpN5+pufvGnfLRqpy218gcGGbbbXR6wPrDJyd1em6agKdYByzU5ccskDHH9iVm2UeLydpDsW1ksYuU0cg== +libnpmsearch@^3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/libnpmsearch/-/libnpmsearch-3.1.2.tgz#aee81b9e4768750d842b627a3051abc89fdc15f3" + integrity sha512-BaQHBjMNnsPYk3Bl6AiOeVuFgp72jviShNBw5aHaHNKWqZxNi38iVNoXbo6bG/Ccc/m1To8s0GtMdtn6xZ1HAw== dependencies: - npm-registry-fetch "^13.0.0" + npm-registry-fetch "^11.0.0" -libnpmteam@*: - version "4.0.4" - resolved "https://registry.yarnpkg.com/libnpmteam/-/libnpmteam-4.0.4.tgz#ac26068808d93b1051d926457db14e4b3ff669ef" - integrity sha512-rzKSwi6MLzwwevbM/vl+BBQTErgn24tCfgPUdzBlszrw3j5necOu7WnTzgvZMDv6maGUwec6Ut1rxszOgH0l+Q== +libnpmteam@^2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/libnpmteam/-/libnpmteam-2.0.4.tgz#9dbe2e18ae3cb97551ec07d2a2daf9944f3edc4c" + integrity sha512-FPrVJWv820FZFXaflAEVTLRWZrerCvfe7ZHSMzJ/62EBlho2KFlYKjyNEsPW3JiV7TLSXi3vo8u0gMwIkXSMTw== dependencies: aproba "^2.0.0" - npm-registry-fetch "^13.0.0" + npm-registry-fetch "^11.0.0" -libnpmversion@*: - version "3.0.7" - resolved "https://registry.yarnpkg.com/libnpmversion/-/libnpmversion-3.0.7.tgz#e4c6c07ee28cf351ce1e2293a5ac9922b09ea94d" - integrity sha512-O0L4eNMUIMQ+effi1HsZPKp2N6wecwqGqB8PvkvmLPWN7EsdabdzAVG48nv0p/OjlbIai5KQg/L+qMMfCA4ZjA== +libnpmversion@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/libnpmversion/-/libnpmversion-1.2.1.tgz#689aa7fe0159939b3cbbf323741d34976f4289e9" + integrity sha512-AA7x5CFgBFN+L4/JWobnY5t4OAHjQuPbAwUYJ7/NtHuyLut5meb+ne/aj0n7PWNiTGCJcRw/W6Zd2LoLT7EZuQ== dependencies: - "@npmcli/git" "^3.0.0" - "@npmcli/run-script" "^4.1.3" + "@npmcli/git" "^2.0.7" + "@npmcli/run-script" "^1.8.4" json-parse-even-better-errors "^2.3.1" - proc-log "^2.0.0" - semver "^7.3.7" + semver "^7.3.5" + stringify-package "^1.0.1" loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.1, loose-envify@^1.4.0: version "1.4.0" @@ -1759,32 +1939,27 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" -lru-cache@^7.4.4, lru-cache@^7.5.1, lru-cache@^7.7.1: - version "7.14.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.14.0.tgz#21be64954a4680e303a09e9468f880b98a0b3c7f" - integrity sha512-EIRtP1GrSJny0dqb50QXRUNBxHJhcpxHC++M5tD7RYbvLLn5KVWKsbyswSSqDuU15UFi3bgTQIY8nhDMeF6aDQ== - -make-fetch-happen@*, make-fetch-happen@^10.0.3, make-fetch-happen@^10.0.6: - version "10.2.1" - resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz#f5e3835c5e9817b617f2770870d9492d28678164" - integrity sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w== +make-fetch-happen@^9.0.1, make-fetch-happen@^9.1.0: + version "9.1.0" + resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz#53085a09e7971433e6765f7971bf63f4e05cb968" + integrity sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg== dependencies: - agentkeepalive "^4.2.1" - cacache "^16.1.0" + agentkeepalive "^4.1.3" + cacache "^15.2.0" http-cache-semantics "^4.1.0" - http-proxy-agent "^5.0.0" + http-proxy-agent "^4.0.1" https-proxy-agent "^5.0.0" is-lambda "^1.0.1" - lru-cache "^7.7.1" - minipass "^3.1.6" + lru-cache "^6.0.0" + minipass "^3.1.3" minipass-collect "^1.0.2" - minipass-fetch "^2.0.3" + minipass-fetch "^1.3.2" minipass-flush "^1.0.5" minipass-pipeline "^1.2.4" - negotiator "^0.6.3" + negotiator "^0.6.2" promise-retry "^2.0.1" - socks-proxy-agent "^7.0.0" - ssri "^9.0.0" + socks-proxy-agent "^6.0.0" + ssri "^8.0.0" marked@^0.7.0: version "0.7.0" @@ -1816,6 +1991,11 @@ mime-db@1.45.0: resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.45.0.tgz" integrity sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w== +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + mime-types@^2.1.12, mime-types@~2.1.24: version "2.1.28" resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.28.tgz" @@ -1823,6 +2003,13 @@ mime-types@^2.1.12, mime-types@~2.1.24: dependencies: mime-db "1.45.0" +mime-types@~2.1.19: + version "2.1.35" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + mime@1.6.0: version "1.6.0" resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz" @@ -1848,12 +2035,12 @@ minimatch@^3.0.4: dependencies: brace-expansion "^1.1.7" -minimatch@^5.0.1, minimatch@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.0.tgz#1717b464f4971b144f6aabe8f2d0b8e4511e09c7" - integrity sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg== +minimatch@^3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== dependencies: - brace-expansion "^2.0.1" + brace-expansion "^1.1.7" minimist@^1.2.0, minimist@^1.2.3: version "1.2.5" @@ -1867,16 +2054,16 @@ minipass-collect@^1.0.2: dependencies: minipass "^3.0.0" -minipass-fetch@^2.0.3: - version "2.1.2" - resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-2.1.2.tgz#95560b50c472d81a3bc76f20ede80eaed76d8add" - integrity sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA== +minipass-fetch@^1.3.0, minipass-fetch@^1.3.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-1.4.1.tgz#d75e0091daac1b0ffd7e9d41629faff7d0c1f1b6" + integrity sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw== dependencies: - minipass "^3.1.6" + minipass "^3.1.0" minipass-sized "^1.0.3" - minizlib "^2.1.2" + minizlib "^2.0.0" optionalDependencies: - encoding "^0.1.13" + encoding "^0.1.12" minipass-flush@^1.0.5: version "1.0.5" @@ -1893,7 +2080,7 @@ minipass-json-stream@^1.0.1: jsonparse "^1.3.1" minipass "^3.0.0" -minipass-pipeline@*, minipass-pipeline@^1.2.4: +minipass-pipeline@^1.2.2, minipass-pipeline@^1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c" integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== @@ -1907,14 +2094,28 @@ minipass-sized@^1.0.3: dependencies: minipass "^3.0.0" -minipass@*, minipass@^3.0.0, minipass@^3.1.1, minipass@^3.1.6: +minipass@^3.0.0, minipass@^3.1.1: version "3.3.4" resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.4.tgz#ca99f95dd77c43c7a76bf51e6d200025eee0ffae" integrity sha512-I9WPbWHCGu8W+6k1ZiGpPu0GkoKBeorkfKNuAFBNS1HNFJvke82sxvI5bzcCNpWPorkOO5QQ+zomzzwRxejXiw== dependencies: yallist "^4.0.0" -minizlib@^2.1.1, minizlib@^2.1.2: +minipass@^3.1.0, minipass@^3.1.3: + version "3.3.6" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.6.tgz#7bba384db3a1520d18c9c0e5251c3444e95dd94a" + integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw== + dependencies: + yallist "^4.0.0" + +minipass@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-4.0.0.tgz#7cebb0f9fa7d56f0c5b17853cbe28838a8dbbd3b" + integrity sha512-g2Uuh2jEKoht+zvO6vJqXmYpflPqzRBT+Th2h01DKh5z7wbY/AZ2gCQ78cP70YoHPyFdY30YBV5WxgLOEwOykw== + dependencies: + yallist "^4.0.0" + +minizlib@^2.0.0, minizlib@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== @@ -1927,7 +2128,7 @@ mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3: resolved "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz" integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== -mkdirp-infer-owner@*, mkdirp-infer-owner@^2.0.0: +mkdirp-infer-owner@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/mkdirp-infer-owner/-/mkdirp-infer-owner-2.0.0.tgz#55d3b368e7d89065c38f32fd38e638f0ab61d316" integrity sha512-sdqtiFt3lkOaYvTXSRIUjkIdPTcxgv5+fgqYE/5qgwdw12cOrAuzzgzvVExIkH/ul1oeHN3bCLOWSG3XOqbKKw== @@ -1936,16 +2137,11 @@ mkdirp-infer-owner@*, mkdirp-infer-owner@^2.0.0: infer-owner "^1.0.4" mkdirp "^1.0.3" -mkdirp@*, mkdirp@^1.0.3, mkdirp@^1.0.4: +mkdirp@^1.0.3, mkdirp@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== -ms@*, ms@^2.0.0: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - ms@2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" @@ -1961,6 +2157,11 @@ ms@2.1.2: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== +ms@^2.0.0, ms@^2.1.2: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + mute-stream@~0.0.4: version "0.0.8" resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" @@ -1976,7 +2177,7 @@ negotiator@0.6.2: resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz" integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== -negotiator@^0.6.3: +negotiator@^0.6.2: version "0.6.3" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== @@ -1988,53 +2189,55 @@ node-abi@^3.3.0: dependencies: semver "^7.3.5" -node-fetch@^2.2.0: - version "2.6.1" - resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz" - integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== +node-fetch@^2.6.7: + version "2.6.7" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" + integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== + dependencies: + whatwg-url "^5.0.0" -node-gyp@*, node-gyp@^9.0.0: - version "9.3.0" - resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-9.3.0.tgz#f8eefe77f0ad8edb3b3b898409b53e697642b319" - integrity sha512-A6rJWfXFz7TQNjpldJ915WFb1LnhO4lIve3ANPbWreuEoLoKlFT3sxIepPBkLhM27crW8YmN+pjlgbasH6cH/Q== +node-gyp@^7.1.0, node-gyp@^7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-7.1.2.tgz#21a810aebb187120251c3bcec979af1587b188ae" + integrity sha512-CbpcIo7C3eMu3dL1c3d0xw449fHIGALIJsRP4DDPHpyiW8vcriNY7ubh9TE4zEKfSxscY7PjeFnshE7h75ynjQ== dependencies: env-paths "^2.2.0" glob "^7.1.4" - graceful-fs "^4.2.6" - make-fetch-happen "^10.0.3" - nopt "^6.0.0" - npmlog "^6.0.0" + graceful-fs "^4.2.3" + nopt "^5.0.0" + npmlog "^4.1.2" + request "^2.88.2" rimraf "^3.0.2" - semver "^7.3.5" - tar "^6.1.2" + semver "^7.3.2" + tar "^6.0.2" which "^2.0.2" -nopt@*, nopt@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-6.0.0.tgz#245801d8ebf409c6df22ab9d95b65e1309cdb16d" - integrity sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g== +nopt@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-5.0.0.tgz#530942bb58a512fccafe53fe210f13a25355dc88" + integrity sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ== dependencies: - abbrev "^1.0.0" + abbrev "1" -normalize-package-data@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-4.0.1.tgz#b46b24e0616d06cadf9d5718b29b6d445a82a62c" - integrity sha512-EBk5QKKuocMJhB3BILuKhmaPjI8vNRSpIfO9woLC6NyHVkKKdVEdAO1mrT0ZfxNR1lKwCcTkuZfmGIFdizZ8Pg== +normalize-package-data@^3.0.0, normalize-package-data@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-3.0.3.tgz#dbcc3e2da59509a0983422884cd172eefdfa525e" + integrity sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA== dependencies: - hosted-git-info "^5.0.0" - is-core-module "^2.8.1" - semver "^7.3.5" - validate-npm-package-license "^3.0.4" + hosted-git-info "^4.0.1" + is-core-module "^2.5.0" + semver "^7.3.4" + validate-npm-package-license "^3.0.1" normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== -npm-audit-report@*: - version "3.0.0" - resolved "https://registry.yarnpkg.com/npm-audit-report/-/npm-audit-report-3.0.0.tgz#1bf3e531208b5f77347c8d00c3d9badf5be30cd6" - integrity sha512-tWQzfbwz1sc4244Bx2BVELw0EmZlCsCF0X93RDcmmwhonCsPMoEviYsi+32R+mdRvOWXolPce9zo64n2xgPESw== +npm-audit-report@^2.1.5: + version "2.1.5" + resolved "https://registry.yarnpkg.com/npm-audit-report/-/npm-audit-report-2.1.5.tgz#a5b8850abe2e8452fce976c8960dd432981737b5" + integrity sha512-YB8qOoEmBhUH1UJgh1xFAv7Jg1d+xoNhsDYiFQlEFThEBui0W1vIz2ZK6FVg4WZjwEdl7uBQlm1jy3MUfyHeEw== dependencies: chalk "^4.0.0" @@ -2045,89 +2248,67 @@ npm-bundled@^1.1.1: dependencies: npm-normalize-package-bin "^1.0.1" -npm-bundled@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-2.0.1.tgz#94113f7eb342cd7a67de1e789f896b04d2c600f4" - integrity sha512-gZLxXdjEzE/+mOstGDqR6b0EkhJ+kM6fxM6vUuckuctuVPh80Q6pw/rSZj9s4Gex9GxWtIicO1pc8DB9KZWudw== - dependencies: - npm-normalize-package-bin "^2.0.0" - -npm-install-checks@*, npm-install-checks@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/npm-install-checks/-/npm-install-checks-5.0.0.tgz#5ff27d209a4e3542b8ac6b0c1db6063506248234" - integrity sha512-65lUsMI8ztHCxFz5ckCEC44DRvEGdZX5usQFriauxHEwt7upv1FKaQEmAtU0YnOAdwuNWCmk64xYiQABNrEyLA== +npm-install-checks@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/npm-install-checks/-/npm-install-checks-4.0.0.tgz#a37facc763a2fde0497ef2c6d0ac7c3fbe00d7b4" + integrity sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w== dependencies: semver "^7.1.1" -npm-normalize-package-bin@^1.0.1: +npm-normalize-package-bin@^1.0.0, npm-normalize-package-bin@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2" integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA== -npm-normalize-package-bin@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-2.0.0.tgz#9447a1adaaf89d8ad0abe24c6c84ad614a675fff" - integrity sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ== - -npm-package-arg@*, npm-package-arg@^9.0.0, npm-package-arg@^9.0.1, npm-package-arg@^9.1.0: - version "9.1.2" - resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-9.1.2.tgz#fc8acecb00235f42270dda446f36926ddd9ac2bc" - integrity sha512-pzd9rLEx4TfNJkovvlBSLGhq31gGu2QDexFPWT19yCDh0JgnRhlBLNo5759N0AJmBk+kQ9Y/hXoLnlgFD+ukmg== - dependencies: - hosted-git-info "^5.0.0" - proc-log "^2.0.1" - semver "^7.3.5" - validate-npm-package-name "^4.0.0" - -npm-packlist@^5.1.0: - version "5.1.3" - resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-5.1.3.tgz#69d253e6fd664b9058b85005905012e00e69274b" - integrity sha512-263/0NGrn32YFYi4J533qzrQ/krmmrWwhKkzwTuM4f/07ug51odoaNjUexxO4vxlzURHcmYMH1QjvHjsNDKLVg== +npm-package-arg@^8.0.0, npm-package-arg@^8.0.1, npm-package-arg@^8.1.0, npm-package-arg@^8.1.1, npm-package-arg@^8.1.2, npm-package-arg@^8.1.5: + version "8.1.5" + resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-8.1.5.tgz#3369b2d5fe8fdc674baa7f1786514ddc15466e44" + integrity sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q== dependencies: - glob "^8.0.1" - ignore-walk "^5.0.1" - npm-bundled "^2.0.0" - npm-normalize-package-bin "^2.0.0" + hosted-git-info "^4.0.1" + semver "^7.3.4" + validate-npm-package-name "^3.0.0" -npm-packlist@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-7.0.0.tgz#d451b7d797d4b05128796d9573d69be51fdf8f31" - integrity sha512-8GRMzWQmFdUrRmc6tPPCd9Umm9g2qDR6X6Rik+9nYvoDQTLs/0IcCKv6iUdAmgr9sgJCm24QovwozCHWMDriOg== +npm-packlist@^2.1.4: + version "2.2.2" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-2.2.2.tgz#076b97293fa620f632833186a7a8f65aaa6148c8" + integrity sha512-Jt01acDvJRhJGthnUJVF/w6gumWOZxO7IkpY/lsX9//zqQgnF7OJaxgQXcerd4uQOLu7W5bkb4mChL9mdfm+Zg== dependencies: - ignore-walk "^5.0.1" + glob "^7.1.6" + ignore-walk "^3.0.3" + npm-bundled "^1.1.1" + npm-normalize-package-bin "^1.0.1" -npm-pick-manifest@*, npm-pick-manifest@^7.0.0, npm-pick-manifest@^7.0.2: - version "7.0.2" - resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-7.0.2.tgz#1d372b4e7ea7c6712316c0e99388a73ed3496e84" - integrity sha512-gk37SyRmlIjvTfcYl6RzDbSmS9Y4TOBXfsPnoYqTHARNgWbyDiCSMLUpmALDj4jjcTZpURiEfsSHJj9k7EV4Rw== +npm-pick-manifest@^6.0.0, npm-pick-manifest@^6.1.0, npm-pick-manifest@^6.1.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-6.1.1.tgz#7b5484ca2c908565f43b7f27644f36bb816f5148" + integrity sha512-dBsdBtORT84S8V8UTad1WlUyKIY9iMsAmqxHbLdeEeBNMLQDlDWWra3wYUx9EBEIiG/YwAy0XyNHDd2goAsfuA== dependencies: - npm-install-checks "^5.0.0" - npm-normalize-package-bin "^2.0.0" - npm-package-arg "^9.0.0" - semver "^7.3.5" + npm-install-checks "^4.0.0" + npm-normalize-package-bin "^1.0.1" + npm-package-arg "^8.1.2" + semver "^7.3.4" -npm-profile@*: - version "7.0.0" - resolved "https://registry.yarnpkg.com/npm-profile/-/npm-profile-7.0.0.tgz#795552ddb8d9b605ceac9063d1dbff982aa2cab0" - integrity sha512-/WbM1IJzmOECMOsxx75kgpKCn6v2doXsvv2/FQeSmSuHxN2IzeLqqjrsQU2lBOf0fZIbyoR5vxLrnI8vvnXd0A== +npm-profile@^5.0.3: + version "5.0.4" + resolved "https://registry.yarnpkg.com/npm-profile/-/npm-profile-5.0.4.tgz#73e5bd1d808edc2c382d7139049cc367ac43161b" + integrity sha512-OKtU7yoAEBOnc8zJ+/uo5E4ugPp09sopo+6y1njPp+W99P8DvQon3BJYmpvyK2Bf1+3YV5LN1bvgXRoZ1LUJBA== dependencies: - npm-registry-fetch "^13.0.1" - proc-log "^2.0.0" + npm-registry-fetch "^11.0.0" -npm-registry-fetch@*, npm-registry-fetch@^13.0.0, npm-registry-fetch@^13.0.1: - version "13.3.1" - resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-13.3.1.tgz#bb078b5fa6c52774116ae501ba1af2a33166af7e" - integrity sha512-eukJPi++DKRTjSBRcDZSDDsGqRK3ehbxfFUcgaRd0Yp6kRwOwh2WVn0r+8rMB4nnuzvAk6rQVzl6K5CkYOmnvw== +npm-registry-fetch@^11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-11.0.0.tgz#68c1bb810c46542760d62a6a965f85a702d43a76" + integrity sha512-jmlgSxoDNuhAtxUIG6pVwwtz840i994dL14FoNVZisrmZW5kWd63IUTNv1m/hyRSGSqWjCUp/YZlS1BJyNp9XA== dependencies: - make-fetch-happen "^10.0.6" - minipass "^3.1.6" - minipass-fetch "^2.0.3" + make-fetch-happen "^9.0.1" + minipass "^3.1.3" + minipass-fetch "^1.3.0" minipass-json-stream "^1.0.1" - minizlib "^2.1.2" - npm-package-arg "^9.0.1" - proc-log "^2.0.0" + minizlib "^2.0.0" + npm-package-arg "^8.0.0" -npm-user-validate@*: +npm-user-validate@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/npm-user-validate/-/npm-user-validate-1.0.1.tgz#31428fc5475fe8416023f178c0ab47935ad8c561" integrity sha512-uQwcd/tY+h1jnEaze6cdX/LrhWhoBxfSknxentoqmIuStxUExxjWd3ULMLFPiFUrZKbOVMowH6Jq2FRWfmhcEw== @@ -2208,17 +2389,37 @@ npm@7.24.2: which "^2.0.2" write-file-atomic "^3.0.3" -npmlog@*, npmlog@^6.0.0, npmlog@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-6.0.2.tgz#c8166017a42f2dea92d6453168dd865186a70830" - integrity sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg== +npmlog@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" + integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== + dependencies: + are-we-there-yet "~1.1.2" + console-control-strings "~1.1.0" + gauge "~2.7.3" + set-blocking "~2.0.0" + +npmlog@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-5.0.1.tgz#f06678e80e29419ad67ab964e0fa69959c1eb8b0" + integrity sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw== dependencies: - are-we-there-yet "^3.0.0" + are-we-there-yet "^2.0.0" console-control-strings "^1.1.0" - gauge "^4.0.3" + gauge "^3.0.0" set-blocking "^2.0.0" -object-assign@^4.1.1: +number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + integrity sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ== + +oauth-sign@~0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== + +object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= @@ -2237,7 +2438,7 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0: dependencies: wrappy "1" -opener@*: +opener@^1.5.2: version "1.5.2" resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== @@ -2249,68 +2450,39 @@ p-map@^4.0.0: dependencies: aggregate-error "^3.0.0" -pacote@*: - version "14.0.0" - resolved "https://registry.yarnpkg.com/pacote/-/pacote-14.0.0.tgz#aff1d9ac0fb420eb79187b291ecded20b370d8d3" - integrity sha512-SYXfAQi7Bj+suydMz7lVnEF4/xNIvP+uobXGPwIUdFPkUxoOBHYxCakMXHGQQZ9lIHLj2IXTJ6BeWSe6U/uAYg== +pacote@^11.1.11, pacote@^11.2.6, pacote@^11.3.0, pacote@^11.3.1, pacote@^11.3.5: + version "11.3.5" + resolved "https://registry.yarnpkg.com/pacote/-/pacote-11.3.5.tgz#73cf1fc3772b533f575e39efa96c50be8c3dc9d2" + integrity sha512-fT375Yczn4zi+6Hkk2TBe1x1sP8FgFsEIZ2/iWaXY2r/NkhDJfxbcn5paz1+RTFCyNf+dPnaoBDJoAxXSU8Bkg== dependencies: - "@npmcli/git" "^3.0.0" - "@npmcli/installed-package-contents" "^1.0.7" - "@npmcli/promise-spawn" "^3.0.0" - "@npmcli/run-script" "^4.1.0" - cacache "^16.0.0" - chownr "^2.0.0" - fs-minipass "^2.1.0" - infer-owner "^1.0.4" - minipass "^3.1.6" - mkdirp "^1.0.4" - npm-package-arg "^9.0.0" - npm-packlist "^7.0.0" - npm-pick-manifest "^7.0.0" - npm-registry-fetch "^13.0.1" - proc-log "^2.0.0" - promise-retry "^2.0.1" - read-package-json "^5.0.0" - read-package-json-fast "^2.0.3" - rimraf "^3.0.2" - ssri "^9.0.0" - tar "^6.1.11" - -pacote@^13.0.3, pacote@^13.6.1: - version "13.6.2" - resolved "https://registry.yarnpkg.com/pacote/-/pacote-13.6.2.tgz#0d444ba3618ab3e5cd330b451c22967bbd0ca48a" - integrity sha512-Gu8fU3GsvOPkak2CkbojR7vjs3k3P9cA6uazKTHdsdV0gpCEQq2opelnEv30KRQWgVzP5Vd/5umjcedma3MKtg== - dependencies: - "@npmcli/git" "^3.0.0" - "@npmcli/installed-package-contents" "^1.0.7" - "@npmcli/promise-spawn" "^3.0.0" - "@npmcli/run-script" "^4.1.0" - cacache "^16.0.0" + "@npmcli/git" "^2.1.0" + "@npmcli/installed-package-contents" "^1.0.6" + "@npmcli/promise-spawn" "^1.2.0" + "@npmcli/run-script" "^1.8.2" + cacache "^15.0.5" chownr "^2.0.0" fs-minipass "^2.1.0" infer-owner "^1.0.4" - minipass "^3.1.6" - mkdirp "^1.0.4" - npm-package-arg "^9.0.0" - npm-packlist "^5.1.0" - npm-pick-manifest "^7.0.0" - npm-registry-fetch "^13.0.1" - proc-log "^2.0.0" + minipass "^3.1.3" + mkdirp "^1.0.3" + npm-package-arg "^8.0.1" + npm-packlist "^2.1.4" + npm-pick-manifest "^6.0.0" + npm-registry-fetch "^11.0.0" promise-retry "^2.0.1" - read-package-json "^5.0.0" - read-package-json-fast "^2.0.3" + read-package-json-fast "^2.0.1" rimraf "^3.0.2" - ssri "^9.0.0" - tar "^6.1.11" + ssri "^8.0.1" + tar "^6.1.0" -parse-conflict-json@*, parse-conflict-json@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/parse-conflict-json/-/parse-conflict-json-2.0.2.tgz#3d05bc8ffe07d39600dc6436c6aefe382033d323" - integrity sha512-jDbRGb00TAPFsKWCpZZOT93SxVP9nONOSgES3AevqRq/CHvavEBvKAjxX9p5Y5F0RZLxH9Ufd9+RwtCsa+lFDA== +parse-conflict-json@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/parse-conflict-json/-/parse-conflict-json-1.1.1.tgz#54ec175bde0f2d70abf6be79e0e042290b86701b" + integrity sha512-4gySviBiW5TRl7XHvp1agcS7SOe0KZOjC//71dzZVWJrY9hCrgtvl5v3SyIxCZ4fZF47TxD9nfzmxcx76xmbUw== dependencies: - json-parse-even-better-errors "^2.3.1" - just-diff "^5.0.1" - just-diff-apply "^5.2.0" + json-parse-even-better-errors "^2.3.0" + just-diff "^3.0.1" + just-diff-apply "^3.0.0" parse-package-name@^0.1.0: version "0.1.0" @@ -2339,19 +2511,16 @@ path-to-regexp@^1.7.0: dependencies: isarray "0.0.1" +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== + picomatch@^2.0.4, picomatch@^2.2.1: version "2.2.2" resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz" integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== -postcss-selector-parser@^6.0.10: - version "6.0.10" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz#79b61e2c0d1bfc2602d549e11d0876256f8df88d" - integrity sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w== - dependencies: - cssesc "^3.0.0" - util-deprecate "^1.0.2" - prebuild-install@^7.1.0: version "7.1.1" resolved "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.1.tgz" @@ -2370,10 +2539,15 @@ prebuild-install@^7.1.0: tar-fs "^2.0.0" tunnel-agent "^0.6.0" -proc-log@^2.0.0, proc-log@^2.0.1: +proc-log@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/proc-log/-/proc-log-1.0.0.tgz#0d927307401f69ed79341e83a0b2c9a13395eb77" + integrity sha512-aCk8AO51s+4JyuYGg3Q/a6gnrlDO09NpVWePtjp7xwphcoQ04x5WAfCyugcsbLooWcMJ87CLkD4+604IckEdhg== + +process-nextick-args@~2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/proc-log/-/proc-log-2.0.1.tgz#8f3f69a1f608de27878f91f5c688b225391cb685" - integrity sha512-Kcmo2FhfDTXdcbfDH76N7uBYHINxc/8GW7UAVuVP9I+Va3uHSerrnKV6dLooga/gh7GlgzuCCr/eoldnL1muGw== + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== promise-all-reject-late@^1.0.0: version "1.0.1" @@ -2422,6 +2596,11 @@ proxy-addr@~2.0.5: forwarded "~0.1.2" ipaddr.js "1.9.1" +psl@^1.1.28: + version "1.9.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" + integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== + pump@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz" @@ -2430,7 +2609,12 @@ pump@^3.0.0: end-of-stream "^1.1.0" once "^1.3.1" -qrcode-terminal@*: +punycode@^2.1.0, punycode@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +qrcode-terminal@^0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz#bb5b699ef7f9f0505092a3748be4464fe71b5819" integrity sha512-EXtzRZmC+YGmGlDFbXKxQiMZNwCLEO6BANKXG4iCtSIM0yqc/pappSx3RIKr4r0uh5JsBckOXeKrB3Iz7mdQpQ== @@ -2440,6 +2624,11 @@ qs@6.7.0: resolved "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz" integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== +qs@~6.5.2: + version "6.5.3" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" + integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== + range-parser@~1.2.1: version "1.2.1" resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz" @@ -2518,20 +2707,12 @@ react@^16.13.1: object-assign "^4.1.1" prop-types "^15.6.2" -read-cmd-shim@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/read-cmd-shim/-/read-cmd-shim-3.0.1.tgz#868c235ec59d1de2db69e11aec885bc095aea087" - integrity sha512-kEmDUoYf/CDy8yZbLTmhB1X9kkjf9Q80PCNsDMb7ufrGd6zZSQA1+UyjrO+pZm5K/S4OXCWJeiIt1JA8kAsa6g== - -read-package-json-fast@*: - version "3.0.0" - resolved "https://registry.yarnpkg.com/read-package-json-fast/-/read-package-json-fast-3.0.0.tgz#1931be7e06ab0e1e11223f5bb4ce0da2d4dbcc36" - integrity sha512-dVZMRA86XfZYNxQu18el+HG18L92Rn9CyOhOiQRPFR6ygigZwnmPg1DEVPNFBesp8JeISYYLvvD8DaEkUSTFkQ== - dependencies: - json-parse-even-better-errors "^3.0.0" - npm-normalize-package-bin "^2.0.0" +read-cmd-shim@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-cmd-shim/-/read-cmd-shim-2.0.0.tgz#4a50a71d6f0965364938e9038476f7eede3928d9" + integrity sha512-HJpV9bQpkl6KwjxlJcBoqu9Ba0PQg8TqSNIOrulGt54a0uup0HtevreFHzYzkm0lpnleRdNBzXznKrgxglEHQw== -read-package-json-fast@^2.0.2, read-package-json-fast@^2.0.3: +read-package-json-fast@^2.0.1, read-package-json-fast@^2.0.2, read-package-json-fast@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/read-package-json-fast/-/read-package-json-fast-2.0.3.tgz#323ca529630da82cb34b36cc0b996693c98c2b83" integrity sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ== @@ -2539,23 +2720,36 @@ read-package-json-fast@^2.0.2, read-package-json-fast@^2.0.3: json-parse-even-better-errors "^2.3.0" npm-normalize-package-bin "^1.0.1" -read-package-json@*, read-package-json@^5.0.0: - version "5.0.2" - resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-5.0.2.tgz#b8779ccfd169f523b67208a89cc912e3f663f3fa" - integrity sha512-BSzugrt4kQ/Z0krro8zhTwV1Kd79ue25IhNN/VtHFy1mG/6Tluyi+msc0UpwaoQzxSHa28mntAjIZY6kEgfR9Q== +read-package-json@^4.1.1: + version "4.1.2" + resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-4.1.2.tgz#b444d047de7c75d4a160cb056d00c0693c1df703" + integrity sha512-Dqer4pqzamDE2O4M55xp1qZMuLPqi4ldk2ya648FOMHRjwMzFhuxVrG04wd0c38IsvkVdr3vgHI6z+QTPdAjrQ== dependencies: - glob "^8.0.1" - json-parse-even-better-errors "^2.3.1" - normalize-package-data "^4.0.0" - npm-normalize-package-bin "^2.0.0" + glob "^7.1.1" + json-parse-even-better-errors "^2.3.0" + normalize-package-data "^3.0.0" + npm-normalize-package-bin "^1.0.0" -read@*, read@1, read@^1.0.7: +read@1, read@^1.0.7, read@~1.0.1, read@~1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/read/-/read-1.0.7.tgz#b3da19bd052431a97671d44a42634adf710b40c4" integrity sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ== dependencies: mute-stream "~0.0.4" +readable-stream@^2.0.6: + version "2.3.7" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" + integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: version "3.6.0" resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz" @@ -2565,7 +2759,7 @@ readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: string_decoder "^1.1.1" util-deprecate "^1.0.1" -readdir-scoped-modules@*, readdir-scoped-modules@^1.1.0: +readdir-scoped-modules@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz#8d45407b4f870a0dcaebc0e28670d18e74514309" integrity sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw== @@ -2587,6 +2781,32 @@ regenerator-runtime@^0.13.4: resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz" integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== +request@^2.88.2: + version "2.88.2" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" + integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.8.0" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~2.3.2" + har-validator "~5.1.3" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + oauth-sign "~0.9.0" + performance-now "^2.1.0" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.5.0" + tunnel-agent "^0.6.0" + uuid "^3.3.2" + resolve-pathname@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz" @@ -2597,7 +2817,7 @@ retry@^0.12.0: resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== -rimraf@*, rimraf@^3.0.0, rimraf@^3.0.2: +rimraf@^3.0.0, rimraf@^3.0.2: version "3.0.2" resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== @@ -2609,12 +2829,17 @@ rw@1: resolved "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz" integrity sha1-P4Yt+pGrdmsUiF700BEkv9oHT7Q= -safe-buffer@5.1.2, safe-buffer@^5.0.1, safe-buffer@~5.1.0: +safe-buffer@5.1.2, safe-buffer@^5.0.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": +safe-buffer@^5.1.2: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: version "2.1.2" resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== @@ -2636,14 +2861,14 @@ scheduler@^0.19.1: loose-envify "^1.1.0" object-assign "^4.1.1" -semver@*, semver@^7.1.1: +semver@^7.1.1: version "7.3.5" resolved "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz" integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== dependencies: lru-cache "^6.0.0" -semver@^7.0.0, semver@^7.3.5, semver@^7.3.7: +semver@^7.1.3, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5: version "7.3.8" resolved "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz" integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== @@ -2679,7 +2904,7 @@ serve-static@1.14.1: parseurl "~1.3.3" send "0.17.1" -set-blocking@^2.0.0: +set-blocking@^2.0.0, set-blocking@~2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz" integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= @@ -2689,7 +2914,7 @@ setprototypeof@1.1.1: resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz" integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== -signal-exit@^3.0.7: +signal-exit@^3.0.0, signal-exit@^3.0.2: version "3.0.7" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== @@ -2713,10 +2938,10 @@ smart-buffer@^4.2.0: resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== -socks-proxy-agent@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz#dc069ecf34436621acb41e3efa66ca1b5fed15b6" - integrity sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww== +socks-proxy-agent@^6.0.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz#2687a31f9d7185e38d530bef1944fe1f1496d6ce" + integrity sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ== dependencies: agent-base "^6.0.2" debug "^4.3.3" @@ -2771,10 +2996,25 @@ sqlite-parser@^1.0.1: resolved "https://registry.npmjs.org/sqlite-parser/-/sqlite-parser-1.0.1.tgz" integrity sha512-/es+YmgQG+VFbwAQD0Nd0Mdzgky8rW3M85zcy2+Vtk3Sj5ydaMl/lopWPehsjsByGw/swVuXSBeMJFh47doRUw== -ssri@*, ssri@^9.0.0: - version "9.0.1" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-9.0.1.tgz#544d4c357a8d7b71a19700074b6883fcb4eae057" - integrity sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q== +sshpk@^1.7.0: + version "1.17.0" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.17.0.tgz#578082d92d4fe612b13007496e543fa0fbcbe4c5" + integrity sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ== + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + bcrypt-pbkdf "^1.0.0" + dashdash "^1.12.0" + ecc-jsbn "~0.1.1" + getpass "^0.1.1" + jsbn "~0.1.0" + safer-buffer "^2.0.2" + tweetnacl "~0.14.0" + +ssri@^8.0.0, ssri@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.1.tgz#638e4e439e2ffbd2cd289776d5ca457c4f51a2af" + integrity sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ== dependencies: minipass "^3.1.1" @@ -2783,6 +3023,15 @@ ssri@*, ssri@^9.0.0: resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz" integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= +string-width@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + integrity sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw== + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" @@ -2792,13 +3041,40 @@ ssri@*, ssri@^9.0.0: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" -string_decoder@^1.1.1: +string-width@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +string_decoder@^1.1.1, string_decoder@~1.1.1: version "1.1.1" resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== dependencies: safe-buffer "~5.1.0" +stringify-package@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/stringify-package/-/stringify-package-1.0.1.tgz#e5aa3643e7f74d0f28628b72f3dad5cecfc3ba85" + integrity sha512-sa4DUQsYciMP1xhKWGuFM04fB0LG/9DlluZoSVywUMRNvzid6XucHK0/90xGxRoHrAaROrcHK1aPKaijCtSrhg== + +strip-ansi@^3.0.0, strip-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + integrity sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg== + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + integrity sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow== + dependencies: + ansi-regex "^3.0.0" + strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" @@ -2839,7 +3115,19 @@ tar-stream@^2.1.4: inherits "^2.0.3" readable-stream "^3.1.1" -tar@*, tar@^6.1.0, tar@^6.1.11, tar@^6.1.2: +tar@^6.0.2: + version "6.1.13" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.13.tgz#46e22529000f612180601a6fe0680e7da508847b" + integrity sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw== + dependencies: + chownr "^2.0.0" + fs-minipass "^2.0.0" + minipass "^4.0.0" + minizlib "^2.1.1" + mkdirp "^1.0.3" + yallist "^4.0.0" + +tar@^6.1.0, tar@^6.1.11: version "6.1.11" resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.11.tgz#6760a38f003afa1b2ffd0ffe9e9abbd0eab3d621" integrity sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA== @@ -2851,7 +3139,7 @@ tar@*, tar@^6.1.0, tar@^6.1.11, tar@^6.1.2: mkdirp "^1.0.3" yallist "^4.0.0" -text-table@*: +text-table@~0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== @@ -2861,7 +3149,7 @@ tiny-invariant@^1.0.2: resolved "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.1.0.tgz" integrity sha512-ytxQvrb1cPc9WBEI/HSeYYoGD0kWnGEOR8RY6KomWLBVhqz0RgTwVO9dLrGz7dC+nN9llyI7OKAgRq8Vq4ZBSw== -tiny-relative-date@*: +tiny-relative-date@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/tiny-relative-date/-/tiny-relative-date-1.3.0.tgz#fa08aad501ed730f31cc043181d995c39a935e07" integrity sha512-MOQHpzllWxDCHHaDno30hhLfbouoYlOI8YlMNtvKe1zXbjEVhbcEovQxvZrPvtiYW630GQDoMMarCnjfyfHA+A== @@ -2890,10 +3178,23 @@ toidentifier@1.0.0: resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz" integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== -treeverse@*, treeverse@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/treeverse/-/treeverse-2.0.0.tgz#036dcef04bc3fd79a9b79a68d4da03e882d8a9ca" - integrity sha512-N5gJCkLu1aXccpOTtqV6ddSEi6ZmGkh3hjmbu1IjcavJK4qyOVQmi0myQKM7z5jVGmD68SJoliaVrMmVObhj6A== +tough-cookie@~2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" + integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== + dependencies: + psl "^1.1.28" + punycode "^2.1.1" + +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== + +treeverse@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/treeverse/-/treeverse-1.0.4.tgz#a6b0ebf98a1bca6846ddc7ecbc900df08cb9cd5f" + integrity sha512-whw60l7r+8ZU8Tu/Uc2yxtc4ZTZbR/PF3u1IPNKGQ6p8EICLb3Z2lAgoqw9bqYd8IkgnsaOcLzYHFckjqNsf0g== tunnel-agent@^0.6.0: version "0.6.0" @@ -2902,6 +3203,11 @@ tunnel-agent@^0.6.0: dependencies: safe-buffer "^5.0.1" +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA== + type-is@~1.6.17, type-is@~1.6.18: version "1.6.18" resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz" @@ -2910,17 +3216,24 @@ type-is@~1.6.17, type-is@~1.6.18: media-typer "0.3.0" mime-types "~2.1.24" -unique-filename@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-2.0.1.tgz#e785f8675a9a7589e0ac77e0b5c34d2eaeac6da2" - integrity sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A== +typedarray-to-buffer@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" + integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== dependencies: - unique-slug "^3.0.0" + is-typedarray "^1.0.0" -unique-slug@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-3.0.0.tgz#6d347cf57c8a7a7a6044aabd0e2d74e4d76dc7c9" - integrity sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w== +unique-filename@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" + integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== + dependencies: + unique-slug "^2.0.0" + +unique-slug@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" + integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== dependencies: imurmurhash "^0.1.4" @@ -2934,7 +3247,14 @@ unpipe@1.0.0, unpipe@~1.0.0: resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= -util-deprecate@^1.0.1, util-deprecate@^1.0.2: +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= @@ -2944,7 +3264,12 @@ utils-merge@1.0.1: resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz" integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= -validate-npm-package-license@^3.0.4: +uuid@^3.3.2: + version "3.4.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== + +validate-npm-package-license@^3.0.1, validate-npm-package-license@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== @@ -2952,12 +3277,12 @@ validate-npm-package-license@^3.0.4: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" -validate-npm-package-name@*, validate-npm-package-name@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-4.0.0.tgz#fe8f1c50ac20afdb86f177da85b3600f0ac0d747" - integrity sha512-mzR0L8ZDktZjpX4OB46KT+56MAhl4EIazWP/+G/HPGuvfdaqg4YsCdtOm6U9+LOFyYDoh4dpnpxZRB9MQQns5Q== +validate-npm-package-name@^3.0.0, validate-npm-package-name@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz#5fa912d81eb7d0c74afc140de7317f0ca7df437e" + integrity sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw== dependencies: - builtins "^5.0.0" + builtins "^1.0.3" value-equal@^1.0.1: version "1.0.1" @@ -2969,6 +3294,15 @@ vary@~1.1.2: resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz" integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= +verror@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + integrity sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw== + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + walk-up-path@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/walk-up-path/-/walk-up-path-1.0.0.tgz#d4745e893dd5fd0dbb58dd0a4c6a33d9c9fec53e" @@ -2981,14 +3315,27 @@ wcwidth@^1.0.0: dependencies: defaults "^1.0.3" -which@*, which@^2.0.2: +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== + +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + +which@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== dependencies: isexe "^2.0.0" -wide-align@^1.1.5: +wide-align@^1.1.0, wide-align@^1.1.2: version "1.1.5" resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3" integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== @@ -3000,13 +3347,15 @@ wrappy@1: resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= -write-file-atomic@*, write-file-atomic@^4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.2.tgz#a9df01ae5b77858a027fd2e80768ee433555fcfd" - integrity sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg== +write-file-atomic@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" + integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== dependencies: imurmurhash "^0.1.4" - signal-exit "^3.0.7" + is-typedarray "^1.0.0" + signal-exit "^3.0.2" + typedarray-to-buffer "^3.1.5" yallist@^4.0.0: version "4.0.0" From 633ec63c2bd0ca23df867cd983df49fd16850a0c Mon Sep 17 00:00:00 2001 From: kirjavascript Date: Sat, 14 Jan 2023 01:21:15 +0000 Subject: [PATCH 64/94] pastebin template --- TODO | 13 ++++------ web/server/index.js | 6 ++++- web/server/pasta/index.html | 47 +++++++++++++++++++++++++++++++++++++ web/server/pasta/index.js | 11 +++++++++ 4 files changed, 67 insertions(+), 10 deletions(-) create mode 100644 web/server/pasta/index.html create mode 100644 web/server/pasta/index.js diff --git a/TODO b/TODO index ec7f7f1..72f825e 100644 --- a/TODO +++ b/TODO @@ -7,27 +7,22 @@ https://libredirect.github.io/ cache image recog results -~log tap - walmartian not appearing in logs const SQL = IRC.getNamespace(); (so you only have to do it once...) -02:24 <+KLARSTRUP> ~> global.Buffer={isBuffer:()=>true},(m=>(m.seed("gnu, for 2FA there's google authenticator, twillio authy or duo mobile that works great, and most password managers supports 2FA too"),m.respond("for")))(require('markov')()) -02:24 <+CuteServ> [ 'too', 'supports 2FA', 'password managers', 'gnu, for', 'and most', '2FA there\'s', 'works great,', 'google authenticator,', 'mobile that', 'twillio authy', 'or duo' ] - https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe + + + + + diff --git a/web/server/pasta/index.js b/web/server/pasta/index.js new file mode 100644 index 0000000..ca939c8 --- /dev/null +++ b/web/server/pasta/index.js @@ -0,0 +1,11 @@ + + +module.exports = () => { + + app.get('/html', (_req, res) => { + res.send(); + + }); + + +}; From c2544a73014244c89b380b748c482b6be2a96eac Mon Sep 17 00:00:00 2001 From: kirjavascript Date: Sun, 15 Jan 2023 21:46:46 +0000 Subject: [PATCH 65/94] loading / saving pasta --- base/index.js | 1 + database/pasta.js | 25 +++++++++++++++++++++++++ database/server/worker.js | 2 +- web/server/index.js | 12 +++++------- web/server/pasta/index.html | 18 ++++++------------ web/server/pasta/index.js | 11 +++++++++-- web/static/index.html | 2 -- 7 files changed, 47 insertions(+), 24 deletions(-) create mode 100644 database/pasta.js diff --git a/base/index.js b/base/index.js index 2523b44..e84316f 100644 --- a/base/index.js +++ b/base/index.js @@ -13,6 +13,7 @@ process.on('uncaughtException', console.error); 'storage', 'storage/server', 'storage/namespace', + 'storage/pasta', ].forEach((dir) => { const path = join(__dirname, '..', dir); if (!fs.existsSync(path)) { diff --git a/database/pasta.js b/database/pasta.js new file mode 100644 index 0000000..0ca8d0e --- /dev/null +++ b/database/pasta.js @@ -0,0 +1,25 @@ +// check bytes +const fs = require('fs').promises; +const path = require('path'); +const { commandHash } = require('../commands'); + +function getFilename(commandName, name) { + const namespace = commandHash(commandName); + const cleanName = commandHash(name); + return path.join(__dirname, `../storage/pasta/${namespace}/${cleanName}`); +} + +async function loadPasta(commandName, pastaName) { + const filename = getFilename(commandName, pastaName); + if (!await fs.exists(filename)) return; + return await fs.readFile(filename, 'utf8'); +} +async function savePasta(commandName, pastaName, content) { + const filename = getFilename(commandName, pastaName); + if (typeof content !== 'string') throw new Error('content must be a string'); + if (!content.length) throw new Error('string cannot be length zero'); + if (content.length > 1048576) throw new Error('paste size limit is 1MB'); + return await writeFile(filename); +} + +module.exports = { loadPasta, savePasta }; diff --git a/database/server/worker.js b/database/server/worker.js index 338b4f9..6756845 100644 --- a/database/server/worker.js +++ b/database/server/worker.js @@ -64,7 +64,7 @@ const set = (namespace, key, value) => { // update / add data else if (!hasData) { if (String(value).length > 1048576) { - throw new Error('Store size limit is 1MB'); + throw new Error('store size limit is 1MB'); } setInsertQuery.run(String(value), namespace, key); } diff --git a/web/server/index.js b/web/server/index.js index 0b0c1ff..b14d5d2 100644 --- a/web/server/index.js +++ b/web/server/index.js @@ -1,4 +1,4 @@ -const { readFile } = require('fs'); +const { readFileSync } = require('fs'); const express = require('express'); const bodyParser = require('body-parser'); const initAPI = require('./api'); @@ -19,7 +19,7 @@ function initWeb(parent) { }); initAPI({ parent, app }); - initPasta({ parent, app }); + initPasta({ parent, app }); // html page hosting // load esbuild middleware @@ -51,14 +51,12 @@ function initWeb(parent) { app.use('/', express.static(__dirname + '/../static')); - // html pasta - // wildcard defaulting + const homepage = readFileSync(__dirname + '/../static/index.html', 'utf8'); + app.use('*', (_req, res) => { - readFile(__dirname + '/../static/index.html', 'utf8', (err, out) => { - res.send(out); - }); + res.send(homepage); }); return server; diff --git a/web/server/pasta/index.html b/web/server/pasta/index.html index 09e9bb1..1da617a 100644 --- a/web/server/pasta/index.html +++ b/web/server/pasta/index.html @@ -3,12 +3,7 @@ - - - + pasta - + diff --git a/web/server/pasta/index.js b/web/server/pasta/index.js index ca939c8..a4140a4 100644 --- a/web/server/pasta/index.js +++ b/web/server/pasta/index.js @@ -1,11 +1,18 @@ +const { readFileSync } = require('fs'); +module.exports = ({ app, parent }) => { -module.exports = () => { + const htmlTemplate = readFileSync(__dirname + '/index.html', 'utf8'); - app.get('/html', (_req, res) => { + app.get('/html/:cmd/:name', (_req, res) => { + // handle 404 res.send(); }); + // IRC.copypasta + app.get('/text/:cmd/:name', (_req, res) => { + res.send(); + }); }; diff --git a/web/static/index.html b/web/static/index.html index d9dc212..154e400 100644 --- a/web/static/index.html +++ b/web/static/index.html @@ -3,8 +3,6 @@ - - 𝚗𝚒𝚋𝚋𝚕𝚛𝚓𝚛 From 53506a5574d1e9921fa90e12aa209afe3b36dd31 Mon Sep 17 00:00:00 2001 From: kirjavascript Date: Sun, 15 Jan 2023 23:23:56 +0000 Subject: [PATCH 66/94] pasta API --- database/index.js | 6 ++++++ database/pasta.js | 7 +++---- web/server/pasta/index.html | 2 +- web/server/pasta/index.js | 25 +++++++++++++++---------- 4 files changed, 25 insertions(+), 15 deletions(-) diff --git a/database/index.js b/database/index.js index c2b2bde..90c3ecf 100644 --- a/database/index.js +++ b/database/index.js @@ -1,11 +1,17 @@ const { createCommandDB } = require('./commands'); const { createServerDB } = require('./server'); const { useSQLDB, waitSQLClose } = require('./sql'); +const { loadPasta, savePasta } = require('./pasta'); class Database { constructor(parent) { this.commands = createCommandDB(parent); + this.pasta = { + load: loadPasta, + save: savePasta, + }; + // references to db runtime are stored here, // so flushing the require cache has no unintended consequences diff --git a/database/pasta.js b/database/pasta.js index 0ca8d0e..6d297a0 100644 --- a/database/pasta.js +++ b/database/pasta.js @@ -1,7 +1,6 @@ -// check bytes const fs = require('fs').promises; const path = require('path'); -const { commandHash } = require('../commands'); +const { commandHash } = require('./commands'); function getFilename(commandName, name) { const namespace = commandHash(commandName); @@ -11,7 +10,7 @@ function getFilename(commandName, name) { async function loadPasta(commandName, pastaName) { const filename = getFilename(commandName, pastaName); - if (!await fs.exists(filename)) return; + if (!await fs.access(filename)) return; return await fs.readFile(filename, 'utf8'); } async function savePasta(commandName, pastaName, content) { @@ -19,7 +18,7 @@ async function savePasta(commandName, pastaName, content) { if (typeof content !== 'string') throw new Error('content must be a string'); if (!content.length) throw new Error('string cannot be length zero'); if (content.length > 1048576) throw new Error('paste size limit is 1MB'); - return await writeFile(filename); + return await fs.writeFile(filename, content, 'utf8'); } module.exports = { loadPasta, savePasta }; diff --git a/web/server/pasta/index.html b/web/server/pasta/index.html index 1da617a..5ac68e1 100644 --- a/web/server/pasta/index.html +++ b/web/server/pasta/index.html @@ -31,7 +31,7 @@ - +