Showing preview only (542K chars total). Download the full file or copy to clipboard to get everything.
Repository: anonymoushackerIV/Duolingo-Pro-BETA
Branch: main
Commit: 3bcb8cda87e5
Files: 3
Total size: 528.0 KB
Directory structure:
gitextract_917tfqi7/
├── Duolingo-PRO-BETA.user.js
├── LICENSE
└── README.md
================================================
FILE CONTENTS
================================================
================================================
FILE: Duolingo-PRO-BETA.user.js
================================================
// ==UserScript==
// @name Duolingo PRO
// @namespace http://duolingopro.net
// @version 3.1BETA.04.4
// @description The fastest Duolingo XP farmer, with free gems, Duolingo Max & more. Working as of April 2026.
// @author anonymousHackerIV
// @match *://*.duolingo.com/*
// @match *://*.duolingo.cn/*
// @icon https://www.duolingopro.net/static/favicons/dlp/128/light/primary.png
// @grant GM_log
// ==/UserScript==
const VERSION_NUMBER = "09";
const STORAGE_LOCAL_VERSION = "09";
const STORAGE_SESSION_VERSION = "09";
const VERSION_NAME = "BETA.04.4";
const VERSION_FULL = "3.1BETA.04.4";
const VERSION_FORMAL = "3.1 BETA.04.4";
let serverURL = "https://www.duolingopro.net";
let apiURL = "https://api.duolingopro.net";
let greasyfork = true;
let alpha = false;
let storageLocal;
let storageSession;
let hidden = false;
let pageHistory = [1];
let windowBlurState = true;
let multipleScriptsDetected = false;
let recentUpdateDetected = false;
let solvingLoopRunning = false;
let isAutoMode = false;
const DEFAULT_REACT_MAIN_ELEMENT_CLASS = '_3yE3H';
const DEFAULT_REACT_TRAVERSE_UP = 1;
const STORY_REACT_MAIN_ELEMENT_CLASS = '_3TJzR';
const STORY_REACT_TRAVERSE_UP = 0;
let findReactMainElementClass = DEFAULT_REACT_MAIN_ELEMENT_CLASS;
let reactTraverseUp = DEFAULT_REACT_TRAVERSE_UP;
if (["blog", "simg-ssl", "englishtest", "schools", "store"].some(s => new RegExp(`(?:^|\\.)${s}\\.`).test(window.location.hostname))) {
throw new Error("Duolingo PRO: unsupported subdomain");
}
const region = new Intl.Locale(navigator.language).maximize().region;
const measurementSystem = ["US", "LR", "MM"].includes(region) ? "ussystem" : "metric";
const debug = false;
const flag01 = false;
const flag02 = false;
const flag03 = false;
const flag04 = false;
const flag05 = false; // Support chat Markdown links ([text](url))
// USAGE OR MODIFICATION OF THIS SCRIPT IMPLIES YOU AGREE TO THE TERMS AND CONDITIONS PRESENTED IN THE SCRIPT. IF YOU DO NOT AGREE, DO NOT USE OR MODIFY THIS SCRIPT.
const random16Numbers = Array.from(crypto.getRandomValues(new Uint8Array(16)), b => (b % 10)).join('');
let duplicateDetectionMarker = document.createElement("div");
duplicateDetectionMarker.setAttribute(`data-duolingo-pro-duplicate-detection-marker`, String(VERSION_NUMBER));
duplicateDetectionMarker.setAttribute(`data-duolingo-pro-duplicate-detection-priority`, String(random16Numbers));
duplicateDetectionMarker.style.display = "none";
document.body.appendChild(duplicateDetectionMarker);
function duplicateCheck() {
let allDuplicateDetectionMarkers = document.querySelectorAll('[data-duolingo-pro-duplicate-detection-marker]');
let allDuplicateDetectionPriorities = document.querySelectorAll('[data-duolingo-pro-duplicate-detection-priority]');
if (allDuplicateDetectionMarkers.length > 1) {
const markerValues = Array.from(allDuplicateDetectionMarkers).map(el => Number(el.getAttribute("data-duolingo-pro-duplicate-detection-marker")));
// 1. If any marker > VERSION_NUMBER, return
if (markerValues.some(v => v > Number(VERSION_NUMBER))) return true;
// 2. If any marker == VERSION_NUMBER, continue to priority check
if (markerValues.find(v => v === Number(VERSION_NUMBER)) !== undefined) {
const priorityValues = Array.from(allDuplicateDetectionPriorities).map(el => Number(el.getAttribute("data-duolingo-pro-duplicate-detection-priority")));
// 1: If any priority > random16Numbers, return
if (priorityValues.some(p => p > Number(random16Numbers))) return true;
return false;
}
return false;
}
}
let systemLanguage = document.cookie.split('; ').find(row => row.startsWith('lang=')).split('=')[1];
let systemText = {
en: {
1: "Switch to Legacy",
2: "Show",
3: "Connecting",
4: "Donate",
5: "Support",
6: "Settings",
7: "What's New",
8: "How much XP would you like to gain?",
9: "GET",
10: "How many Gems would you like to gain?",
12: "Would you like to redeem 3 days of Super Duolingo?",
13: "REDEEM",
14: "Terms & Conditions",
15: "See More",
16: "Back",
17: "How many lessons would you like to solve on the path?",
18: "START",
19: "How many practices would you like to solve?",
21: "How many listening practices would you like to solve? (Requires Super Duolingo)",
23: "Which and how many lessons would you like to repeat?",
25: "Please read and accept the Terms & Conditions to use Duolingo PRO 3.1.",
26: "These are the Terms & Conditions you agreed to use Duolingo PRO 3.1.",
27: "LOADING TERMS & CONDITIONS<br><br>YOU CANNOT USE THIS SOFTWARE UNTIL TERMS & CONDITIONS ARE LOADED",
28: "DECLINE",
29: "ACCEPT",
30: "Without accepting the Terms & Conditions, you cannot use Duolingo PRO 3.1.",
31: "BACK",
32: "Settings",
34: "Automatic Updates",
35: "Duolingo PRO 3.1 will automatically update itself when there's a new version available.",
37: "SAVE",
38: "Feedback",
39: "Help us make Duolingo PRO 3.1 better.",
40: "Write here as much as you can with as many details as possible.",
41: "Feedback Type: ",
42: "BUG REPORT",
43: "SUGGESTION",
44: "Add Attachment: (Optional)",
45: "UPLOAD",
47: "SEND",
48: "What's New",
51: "LEARN MORE",
52: "Welcome to",
53: "Skip the grind and jump straight to the rewards with instant XP, gem gains, streak boosts, auto-solved lessons, and more.",
54: "START",
55: "Would you like to redeem an XP Boost?",
56: "How many Streak Freezes would you like to get?",
57: "How many days would you like to increase your Streak by?",
58: "Would you like to refill your Hearts to full?",
59: "Would you like to complete all your Quests?",
60: "COMPLETE",
61: "Pick 3.1 mode for faster, instant results powered by server-side processing, or Legacy mode to keep everything running on-client.",
100: "SOLVE",
101: "SOLVE ALL",
102: "PAUSE SOLVE",
103: "Hide",
104: "Show",
105: "Switch to 3.1",
106: "Switch to Legacy",
107: "STOP",
108: "Connected",
109: "Error",
110: "SEND",
111: "SENDING",
112: "SENT",
113: "LOADING",
114: "DONE",
115: "FAILED",
116: "SAVING AND APPLYING",
200: "Under Construction",
201: "The Gems function is currently under construction. We plan to make it accessible to everyone soon.",
202: "Update Available",
203: "You are using an outdated version of Duolingo PRO.<br><br>Please <a href='https://www.duolingopro.net/greasyfork' target='_blank' class='DLP_Link_Style_1'>update Duolingo PRO</a> or turn on automatic updates.",
204: "Feedback Sent",
205: "Your feedback was successfully sent, and our developers will look over it. Keep in mind, we cannot respond back to your feedback.",
206: "Error Sending Feedback",
207: "Your feedback was not sent. This might be because you are using an outdated or a modified version of Duolingo PRO.",
208: "Unknown Error",
209: "Please try again later. An unknown error occurred. Number: ",
210: "hour",
211: "hours",
212: "minute",
213: "minutes",
214: "and",
215: "{hours} {hourUnit}",
216: "{minutes} {minuteUnit}",
217: "{hourPhrase} {conjunction} {minutePhrase}",
218: "XP Successfully Received",
219: "You received {amount} XP. You can request up to {remainingXP} XP before your limit resets back to {totalLimit} XP in {timeMessage}. To boost your limits, <a href='https://duolingopro.net/donate' target='_blank' class='DLP_Link_Style_1'>donate</a>.",
220: "Super Duolingo Successfully Redeemed",
221: "You redeemed a 3 day Super Duolingo trial. You can request another 3 day Super Duolingo trial in {timeMessage}.",
222: "Limit Warning",
223: "You can only request up to {limitAmount} XP before your limit resets back to {totalLimitAmount} XP in {timeMessage}. To boost your limits, <a href='https://duolingopro.net/donate' target='_blank' class='DLP_Link_Style_1'>donate</a>.",
224: "Limit Reached",
225: "You reached your XP limit for the next {timeMessage}. To boost your limits, <a href='https://duolingopro.net/donate' target='_blank' class='DLP_Link_Style_1'>donate</a>.",
227: "You already redeemed a 3 day Super Duolingo trial. You can request another 3 day Super Duolingo trial in {timeMessage}.",
229: "REFILL",
230: "GEMS testing",
231: "Error Connecting",
232: "Duolingo PRO was unable to connect to our servers. This may be because our servers are temporarily unavailable or you are using an outdated version. Check for <a href='https://status.duolingopro.net' target='_blank' class='DLP_Link_Style_1'>server status</a> or <a href='https://duolingopro.net/greasyfork' target='_blank' class='DLP_Link_Style_1'>updates</a>.",
233: "Update Duolingo PRO",
234: "You are using an outdated version of Duolingo PRO. Please <a href='https://www.duolingopro.net/greasyfork' target='_blank' class='DLP_Link_Style_1'>update Duolingo PRO</a>."
},
};
let CSS1;
let HTML2;
let CSS2;
let HTML3;
let HTML4;
let HTML5;
let CSS5;
let HTML6;
let CSS6;
let HTML7;
let CSS7;
function Two() {
CSS1 = `
@font-face {
font-family: 'Duolingo PRO Rounded';
src: url(${serverURL}/static/fonts/V7R100DB1/Duolingo-PRO-Rounded-Thin.woff2) format('woff2');
font-weight: 100;
}
@font-face {
font-family: 'Duolingo PRO Rounded';
src: url(${serverURL}/static/fonts/V7R100DB1/Duolingo-PRO-Rounded-Ultralight.woff2) format('woff2');
font-weight: 200;
}
@font-face {
font-family: 'Duolingo PRO Rounded';
src: url(${serverURL}/static/fonts/V7R100DB1/Duolingo-PRO-Rounded-Light.woff2) format('woff2');
font-weight: 300;
}
@font-face {
font-family: 'Duolingo PRO Rounded';
src: url(${serverURL}/static/fonts/V7R100DB1/Duolingo-PRO-Rounded-Regular.woff2) format('woff2');
font-weight: 400;
}
@font-face {
font-family: 'Duolingo PRO Rounded';
src: url(${serverURL}/static/fonts/V7R100DB1/Duolingo-PRO-Rounded-Medium.woff2) format('woff2');
font-weight: 500;
}
@font-face {
font-family: 'Duolingo PRO Rounded';
src: url(${serverURL}/static/fonts/V7R100DB1/Duolingo-PRO-Rounded-Semibold.woff2) format('woff2');
font-weight: 600;
}
@font-face {
font-family: 'Duolingo PRO Rounded';
src: url(${serverURL}/static/fonts/V7R100DB1/Duolingo-PRO-Rounded-Bold.woff2) format('woff2');
font-weight: 700;
}
@font-face {
font-family: 'Duolingo PRO Rounded';
src: url(${serverURL}/static/fonts/V7R100DB1/Duolingo-PRO-Rounded-Heavy.woff2) format('woff2');
font-weight: 800;
}
@font-face {
font-family: 'Duolingo PRO Rounded';
src: url(${serverURL}/static/fonts/V7R100DB1/Duolingo-PRO-Rounded-Black.woff2) format('woff2');
font-weight: 900;
}
:root {
--DLP-red-hex: #ff3b30;
--DLP-orange-hex: #ff9500;
--DLP-yellow-hex: #ffcc00;
--DLP-green-hex: #34c759;
--DLP-teal-hex: #00c7be;
--DLP-cyan-hex: #5ac8fa;
--DLP-blue-hex: #007aff;
--DLP-indigo-hex: #5856d6;
--DLP-purple-hex: #af52de;
--DLP-pink-hex: #ff2d55;
--DLP-red-rgb: rgb(255, 59, 48);
--DLP-orange-rgb: rgb(255, 149, 0);
--DLP-yellow-rgb: rgb(255, 204, 0);
--DLP-green-rgb: rgb(52, 199, 89);
--DLP-teal-rgb: rgb(0, 199, 190);
--DLP-cyan-rgb: rgb(90, 200, 250);
--DLP-blue-rgb: rgb(0, 122, 255);
--DLP-indigo-rgb: rgb(88, 86, 214);
--DLP-purple-rgb: rgb(175, 82, 222);
--DLP-pink-rgb: rgb(255, 45, 85);
--DLP-red: 255, 59, 48;
--DLP-orange: 255, 149, 0;
--DLP-yellow: 255, 204, 0;
--DLP-green: 52, 199, 89;
--DLP-teal: 0, 199, 190;
--DLP-cyan: 90, 200, 250;
--DLP-blue: 0, 122, 255;
--DLP-indigo: 88, 86, 214;
--DLP-purple: 175, 82, 222;
--DLP-pink: 255, 45, 85;
--DLP-corner-s: superellipse(1.32);
--DLP-corner-r-s: 4px;
--DLP-corner-r-m: 8px;
--DLP-corner-r-ml: 12px;
--DLP-corner-r-l: 16px;
--DLP-corner-r-xl: 20px;
}
@media (prefers-color-scheme: dark) {
:root {
--DLP-red-hex: #ff453a;
--DLP-orange-hex: #ff9f0a;
--DLP-yellow-hex: #ffd60a;
--DLP-green-hex: #30d158;
--DLP-teal-hex: #63e6e2;
--DLP-cyan-hex: #64d2ff;
--DLP-blue-hex: #0a84ff;
--DLP-indigo-hex: #5e5ce6;
--DLP-purple-hex: #bf5af2;
--DLP-pink-hex: #ff375f;
--DLP-red-rgb: rgb(255, 69, 58);
--DLP-orange-rgb: rgb(255, 159, 10);
--DLP-yellow-rgb: rgb(255, 214, 10);
--DLP-green-rgb: rgb(48, 209, 88);
--DLP-teal-rgb: rgb(99, 230, 226);
--DLP-cyan-rgb: rgb(100, 210, 255);
--DLP-blue-rgb: rgb(10, 132, 255);
--DLP-indigo-rgb: rgb(94, 92, 230);
--DLP-purple-rgb: rgb(191, 90, 242);
--DLP-pink-rgb: rgb(255, 55, 95);
--DLP-red: 255, 69, 58;
--DLP-orange: 255, 159, 10;
--DLP-yellow: 255, 214, 10;
--DLP-green: 48, 209, 88;
--DLP-teal: 99, 230, 226;
--DLP-cyan: 100, 210, 255;
--DLP-blue: 10, 132, 255;
--DLP-indigo: 94, 92, 230;
--DLP-purple: 191, 90, 242;
--DLP-pink: 255, 55, 95;
--DLP-background: var(--color-snow);
}
}
`;
if (CSS.supports('corner-shape', 'superellipse(1.32)')) {
CSS1 = CSS1
.replace('--DLP-corner-r-s: 4px', '--DLP-corner-r-s: 6px')
.replace('--DLP-corner-r-m: 8px', '--DLP-corner-r-m: 10px')
.replace('--DLP-corner-r-ml: 12px', '--DLP-corner-r-ml: 16px')
.replace('--DLP-corner-r-l: 16px', '--DLP-corner-r-l: 20px')
.replace('--DLP-corner-r-xl: 20px', '--DLP-corner-r-xl: 26px');
}
HTML2 = `
<canvas style="position: fixed; top: 0; left: 0; bottom: 0; right: 0; width: 100%; height: 100vh; z-index: 211; pointer-events: none;" id="DLP_Confetti_Canvas"></canvas>
<div class="DLP_Notification_Main"></div>
<div class="DLP_Main">
<div class="DLP_HStack_8" style="align-self: flex-end;">
<div class="DLP_Button_Style_1 DLP_Magnetic_Hover_1" id="DLP_Switch_Legacy_Button_1_ID" style="outline: 2px solid rgba(var(--DLP-blue), 0.20); outline-offset: -2px; background: linear-gradient(0deg, rgba(var(--DLP-blue), 0.10) 0%, rgba(var(--DLP-blue), 0.10) 100%), rgba(var(--color-snow), 0.80); backdrop-filter: blur(16px);">
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: rgb(var(--DLP-blue));"></p>
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Text_1_ID" style="color: rgb(var(--DLP-blue)); white-space: nowrap;">${systemText[systemLanguage][1]}</p>
</div>
<div class="DLP_Button_Style_1 DLP_Magnetic_Hover_1" id="DLP_Hide_Button_1_ID" style="outline: 2px solid rgba(var(--DLP-blue), 0.20); outline-offset: -2px; background: rgba(var(--DLP-blue), 0.10); flex: none; backdrop-filter: blur(16px);">
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: rgb(var(--DLP-blue));"></p>
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Text_1_ID" style="color: rgb(var(--DLP-blue));">${systemText[systemLanguage][2]}</p>
</div>
</div>
<div class="DLP_Main_Box">
<div class="DLP_Main_Box_Divider" id="DLP_Main_Box_Divider_1_ID" style="display: block;">
<div class="DLP_VStack_8">
<div class="DLP_VStack_8">
<div class="DLP_HStack_8">
<div id="DLP_Main_1_Server_Connection_Button_1_ID" class="DLP_Button_Style_1 DLP_Magnetic_Hover_1" style="outline: 2px solid rgb(var(--color-eel), 0.20); outline-offset: -2px; background: rgb(var(--color-eel), 0.10); transition: opacity 0.8s cubic-bezier(0.16, 1, 0.32, 1), background 0.8s cubic-bezier(0.16, 1, 0.32, 1), outline 0.8s cubic-bezier(0.16, 1, 0.32, 1), filter 0.4s cubic-bezier(0.16, 1, 0.32, 1), transform 0.4s cubic-bezier(0.16, 1, 0.32, 1); padding: 10px 0px 10px 10px;">
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: rgb(var(--color-eel)); animation: 4s ease-in-out 0s infinite normal none running DLP_Rotate_360_Animation_1;"></p>
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Text_1_ID" style="color: rgb(var(--color-eel));">${systemText[systemLanguage][3]}</p>
</div>
<div class="DLP_Button_Style_1 DLP_Magnetic_Hover_1" id="DLP_Main_Donate_Button_1_ID" style="outline: 2px solid rgba(0, 0, 0, 0.20); outline-offset: -2px; background: url(${serverURL}/static/images/flow/primary/256/light.png) lightgray 50% / cover no-repeat; padding: 10px 0px 10px 10px;">
<svg width="17" height="19" viewBox="0 0 17 19" fill="#FFF" xmlns="http://www.w3.org/2000/svg">
<path d="M16.5 5.90755C16.4968 3.60922 14.6997 1.72555 12.5913 1.04588C9.97298 0.201877 6.51973 0.324211 4.01956 1.49921C0.989301 2.92355 0.0373889 6.04355 0.00191597 9.15522C-0.0271986 11.7136 0.229143 18.4517 4.04482 18.4997C6.87998 18.5356 7.30214 14.8967 8.61397 13.1442C9.5473 11.8974 10.749 11.5452 12.2284 11.1806C14.7709 10.5537 16.5037 8.55506 16.5 5.90755Z"/>
</svg>
<p class="DLP_Text_Style_1 DLP_NoSelect" style="color: #FFF;">${systemText[systemLanguage][4]}</p>
</div>
</div>
<div class="DLP_HStack_8">
<div class="DLP_Button_Style_1 DLP_Magnetic_Hover_1" id="DLP_Main_Feedback_1_Button_1_ID" style="outline: 2px solid rgba(var(--DLP-blue), 0.20); outline-offset: -2px; background: linear-gradient(0deg, rgba(var(--DLP-blue), 0.10) 0%, rgba(var(--DLP-blue), 0.10) 100%), rgba(var(--color-snow), 0.80); backdrop-filter: blur(16px);">
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: rgb(var(--DLP-blue));"></p>
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Text_1_ID" style="color: rgb(var(--DLP-blue));">${systemText[systemLanguage][5]}</p>
</div>
<div class="DLP_Button_Style_1 DLP_Magnetic_Hover_1" id="DLP_Main_Settings_1_Button_1_ID" style="outline: 2px solid rgba(var(--DLP-blue), 0.20); outline-offset: -2px; background: linear-gradient(0deg, rgba(var(--DLP-blue), 0.10) 0%, rgba(var(--DLP-blue), 0.10) 100%), rgba(var(--color-snow), 0.80); backdrop-filter: blur(16px);">
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: rgb(var(--DLP-blue));"></p>
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Text_1_ID" style="color: rgb(var(--DLP-blue));">${systemText[systemLanguage][6]}</p>
</div>
</div>
<div class="DLP_HStack_8">
<div class="DLP_Button_Style_1 DLP_Magnetic_Hover_1" id="DLP_Secondary_Earn_Button_1_ID" style="outline: 2px solid rgba(0, 0, 0, 0.20); outline-offset: -2px; background: url(${serverURL}/static/images/flow/secondary/256/light.png) lightgray 50% / cover no-repeat; padding: 10px 0px 10px 10px;">
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: #FFF;"></p>
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Text_1_ID" style="color: #FFF;">Boost</p>
</div>
<div class="DLP_Button_Style_1 DLP_Magnetic_Hover_1" id="DLP_Main_YouTube_Button_1_ID" style="justify-content: center; flex: none; width: 40px; padding: 10px; outline: 2px solid rgba(0, 0, 0, 0.20); outline-offset: -2px; background: rgb(var(--DLP-pink));">
<svg width="22" height="16" viewBox="0 0 22 16" fill="#FFF" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M19.2043 1.0885C20.1084 1.33051 20.8189 2.041 21.0609 2.9451C21.4982 4.58216 21.5 7.99976 21.5 7.99976C21.5 7.99976 21.5 11.4174 21.0609 13.0544C20.8189 13.9585 20.1084 14.669 19.2043 14.911C17.5673 15.3501 11 15.3501 11 15.3501C11 15.3501 4.43274 15.3501 2.79568 14.911C1.89159 14.669 1.1811 13.9585 0.939084 13.0544C0.5 11.4174 0.5 7.99976 0.5 7.99976C0.5 7.99976 0.5 4.58216 0.939084 2.9451C1.1811 2.041 1.89159 1.33051 2.79568 1.0885C4.43274 0.649414 11 0.649414 11 0.649414C11 0.649414 17.5673 0.649414 19.2043 1.0885ZM14.3541 8.00005L8.89834 11.1497V4.85038L14.3541 8.00005Z"/>
</svg>
</div>
<div class="DLP_Button_Style_1 DLP_Magnetic_Hover_1" id="DLP_Main_Discord_Button_1_ID" style="justify-content: center; flex: none; width: 40px; padding: 10px; outline: 2px solid rgba(0, 0, 0, 0.20); outline-offset: -2px; background: rgb(var(--DLP-indigo));">
<svg width="22" height="16" viewBox="0 0 22 16" fill="#FFF" xmlns="http://www.w3.org/2000/svg">
<path d="M18.289 1.34C16.9296 0.714 15.4761 0.259052 13.9565 0C13.7699 0.332095 13.5519 0.77877 13.4016 1.1341C11.7862 0.894993 10.1857 0.894993 8.60001 1.1341C8.44972 0.77877 8.22674 0.332095 8.03844 0C6.51721 0.259052 5.06204 0.715671 3.70267 1.34331C0.960812 5.42136 0.21754 9.39811 0.589177 13.3184C2.40772 14.655 4.17011 15.467 5.90275 15.9984C6.33055 15.4189 6.71209 14.8028 7.04078 14.1536C6.41478 13.9195 5.81521 13.6306 5.24869 13.2952C5.39898 13.1856 5.546 13.071 5.68803 12.9531C9.14342 14.5438 12.8978 14.5438 16.3119 12.9531C16.4556 13.071 16.6026 13.1856 16.7512 13.2952C16.183 13.6322 15.5818 13.9211 14.9558 14.1553C15.2845 14.8028 15.6644 15.4205 16.0939 16C17.8282 15.4687 19.5922 14.6567 21.4107 13.3184C21.8468 8.77378 20.6658 4.83355 18.289 1.34ZM7.51153 10.9075C6.47426 10.9075 5.62361 9.95435 5.62361 8.7937C5.62361 7.63305 6.45609 6.67831 7.51153 6.67831C8.56699 6.67831 9.41761 7.63138 9.39945 8.7937C9.40109 9.95435 8.56699 10.9075 7.51153 10.9075ZM14.4884 10.9075C13.4511 10.9075 12.6005 9.95435 12.6005 8.7937C12.6005 7.63305 13.4329 6.67831 14.4884 6.67831C15.5438 6.67831 16.3945 7.63138 16.3763 8.7937C16.3763 9.95435 15.5438 10.9075 14.4884 10.9075Z"/>
</svg>
</div>
<div class="DLP_Button_Style_1 DLP_Magnetic_Hover_1" id="DLP_Main_GitHub_Button_1_ID" style="justify-content: center; flex: none; width: 40px; padding: 10px; outline: 2px solid rgba(255, 255, 255, 0.20); outline-offset: -2px; background: #333333;">
<svg width="22" height="22" viewBox="0 0 22 22" fill="#FFF" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M11.0087 0.5C5.19766 0.5 0.5 5.3125 0.5 11.2662C0.5 16.0253 3.50995 20.0538 7.68555 21.4797C8.2076 21.5868 8.39883 21.248 8.39883 20.963C8.39883 20.7134 8.38162 19.8578 8.38162 18.9664C5.45836 19.6082 4.84962 17.683 4.84962 17.683C4.37983 16.4353 3.68375 16.1146 3.68375 16.1146C2.72697 15.4551 3.75345 15.4551 3.75345 15.4551C4.81477 15.5264 5.37167 16.5602 5.37167 16.5602C6.31103 18.1999 7.82472 17.7366 8.43368 17.4514C8.52058 16.7562 8.79914 16.2749 9.09491 16.0076C6.7634 15.758 4.31035 14.8312 4.31035 10.6957C4.31035 9.51928 4.72765 8.55678 5.38888 7.80822C5.28456 7.54091 4.9191 6.43556 5.49342 4.95616C5.49342 4.95616 6.38073 4.67091 8.38141 6.06128C9.23797 5.82561 10.1213 5.70573 11.0087 5.70472C11.896 5.70472 12.8005 5.82963 13.6358 6.06128C15.6367 4.67091 16.524 4.95616 16.524 4.95616C17.0983 6.43556 16.7326 7.54091 16.6283 7.80822C17.3069 8.55678 17.707 9.51928 17.707 10.6957C17.707 14.8312 15.254 15.7401 12.905 16.0076C13.2879 16.3463 13.6183 16.9878 13.6183 18.0039C13.6183 19.4477 13.6011 20.6064 13.6011 20.9627C13.6011 21.248 13.7926 21.5868 14.3144 21.4799C18.49 20.0536 21.5 16.0253 21.5 11.2662C21.5172 5.3125 16.8023 0.5 11.0087 0.5Z"/>
</svg>
</div>
</div>
</div>
<div class="DLP_HStack_Auto_Top">
<div class="DLP_HStack_4">
<p class="DLP_Text_Style_2 DLP_NoSelect">Duolingo</p>
<p class="DLP_Text_Style_2 DLP_NoSelect" style="background: url(${serverURL}/static/images/flow/primary/256/light.png) lightgray 50% / cover no-repeat; background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent;">PRO 3.1</p>
</div>
<p class="DLP_Text_Style_1 DLP_NoSelect" style="margin-top: 2px; font-size: 14px; background: url(${serverURL}/static/images/flow/secondary/256/light.png) lightgray 50% / cover no-repeat; background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent;">${VERSION_NAME}</p>
</div>
<p id="DLP_Main_Warning_1_ID" class="DLP_Text_Style_1" style="transition: 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94); text-align: center; opacity: 0.5; display: none;"></p>
<div class="DLP_VStack_8" id="DLP_Main_Inputs_1_Divider_1_ID" style="opacity: 0.5; pointer-events: none; transition: 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);">
<div class="DLP_VStack_8" id="DLP_Get_XP_1_ID" style="flex: 1 0 0;">
<p class="DLP_Text_Style_1 DLP_NoSelect" style="align-self: stretch;">${systemText[systemLanguage][8]}</p>
<div class="DLP_HStack_8">
<div class="DLP_Input_Style_1_Active">
<p class="DLP_Text_Style_1 DLP_NoSelect" style="color: rgba(var(--DLP-blue), 0.5);"></p>
<input type="text" placeholder="0" id="DLP_Inset_Input_1_ID" class="DLP_Input_Input_Style_1">
</div>
<div class="DLP_Input_Button_Style_1_Active DLP_Magnetic_Hover_1" id="DLP_Inset_Button_1_ID">
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Text_1_ID" style="color: #FFF;">${systemText[systemLanguage][9]}</p>
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: #FFF;"></p>
</div>
</div>
</div>
<div class="DLP_VStack_8" id="DLP_Get_GEM_1_ID" style="flex: 1 0 0; align-self: stretch;">
<p class="DLP_Text_Style_1 DLP_NoSelect" style="align-self: stretch;">${systemText[systemLanguage][10]}</p>
<div class="DLP_HStack_8">
<div class="DLP_Input_Style_1_Active" style="position: relative; overflow: hidden;">
<svg width="120" height="48" viewBox="0 0 120 48" fill="none" xmlns="http://www.w3.org/2000/svg" style="position: absolute; pointer-events: none; transform: translateX(-150px); animation: slideRight 4s ease-in-out forwards infinite; animation-delay: 2s;">
<path opacity="0.5" d="M72 0H96L72 48H48L72 0Z" fill="rgb(var(--DLP-blue))"/>
<path opacity="0.5" d="M24 0H60L36 48H0L24 0Z" fill="rgb(var(--DLP-blue))"/>
<path opacity="0.5" d="M108 0H120L96 48H84L108 0Z" fill="rgb(var(--DLP-blue))"/>
</svg>
<p class="DLP_Text_Style_1 DLP_NoSelect" style="color: rgba(var(--DLP-blue), 0.5);"></p>
<input type="text" placeholder="0" id="DLP_Inset_Input_1_ID" class="DLP_Input_Input_Style_1">
</div>
<div class="DLP_Input_Button_Style_1_Active DLP_Magnetic_Hover_1" id="DLP_Inset_Button_1_ID">
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Text_1_ID" style="color: #FFF;">${systemText[systemLanguage][9]}</p>
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: #FFF;"></p>
</div>
</div>
</div>
<div class="DLP_VStack_8" id="DLP_Get_Badge_1_ID" style="display: none;">
<p class="DLP_Text_Style_1 DLP_NoSelect" style="align-self: stretch;">Which monthly badge would you like to get?</p>
<div class="DLP_HStack_8">
<div class="DLP_Input_Style_1_Active">
<p class="DLP_Text_Style_1 DLP_NoSelect" style="color: rgba(var(--DLP-blue), 0.5);"></p>
<div class="DLP_HStack_2">
<input type="text" placeholder="11" id="DLP_Inset_Input_1_ID" class="DLP_Input_Input_Style_1">
<p class="DLP_Text_Style_1 DLP_NoSelect" style="color: rgba(var(--DLP-blue), 0.5); font-feature-settings: "case" 1, "cpsp" 1;">/</p>
<input type="text" placeholder="2025" id="DLP_Inset_Input_2_ID" class="DLP_Input_Input_Style_1">
</div>
</div>
<div class="DLP_Input_Button_Style_1_Active DLP_Magnetic_Hover_1" id="DLP_Inset_Button_1_ID">
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Text_1_ID" style="color: #FFF;">${systemText[systemLanguage][9]}</p>
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: #FFF;"></p>
</div>
</div>
</div>
<div class="DLP_VStack_8" id="DLP_Get_SUPER_1_ID" style="display: none;">
<p class="DLP_Text_Style_1 DLP_NoSelect" style="align-self: stretch;">${systemText[systemLanguage][12]}</p>
<div class="DLP_HStack_8">
<div class="DLP_Input_Button_Style_1_Active DLP_Magnetic_Hover_1" id="DLP_Inset_Button_1_ID" style="flex: 1 0 0;">
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Text_1_ID" style="color: #FFF;">${systemText[systemLanguage][13]}</p>
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: #FFF;"></p>
</div>
</div>
</div>
<div class="DLP_VStack_8" id="DLP_Get_DOUBLE_XP_BOOST_1_ID" style="display: none;">
<p class="DLP_Text_Style_1 DLP_NoSelect" style="align-self: stretch;">${systemText[systemLanguage][55]}</p>
<div class="DLP_HStack_8">
<div class="DLP_Input_Button_Style_1_Active DLP_Magnetic_Hover_1" id="DLP_Inset_Button_1_ID" style="flex: 1 0 0;">
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Text_1_ID" style="color: #FFF;">${systemText[systemLanguage][13]}</p>
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: #FFF;"></p>
</div>
</div>
</div>
<div class="DLP_VStack_8" id="DLP_Get_Streak_Freeze_1_ID" style="display: none;">
<p class="DLP_Text_Style_1 DLP_NoSelect" style="align-self: stretch;">${systemText[systemLanguage][56]}</p>
<div class="DLP_HStack_8">
<div class="DLP_Input_Style_1_Active">
<p class="DLP_Text_Style_1 DLP_NoSelect" style="color: rgba(var(--DLP-blue), 0.5);"></p>
<input type="text" placeholder="0" id="DLP_Inset_Input_1_ID" class="DLP_Input_Input_Style_1">
</div>
<div class="DLP_Input_Button_Style_1_Active DLP_Magnetic_Hover_1" id="DLP_Inset_Button_1_ID">
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Text_1_ID" style="color: #FFF;">${systemText[systemLanguage][9]}</p>
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: #FFF;"></p>
</div>
</div>
</div>
<div class="DLP_VStack_8" id="DLP_Get_Streak_1_ID" style="display: none;">
<p class="DLP_Text_Style_1 DLP_NoSelect" style="align-self: stretch;">${systemText[systemLanguage][57]}</p>
<div class="DLP_HStack_8">
<div class="DLP_Input_Style_1_Active">
<p class="DLP_Text_Style_1 DLP_NoSelect" style="color: rgba(var(--DLP-blue), 0.5);"></p>
<input type="text" placeholder="0" id="DLP_Inset_Input_1_ID" class="DLP_Input_Input_Style_1">
</div>
<div class="DLP_Input_Button_Style_1_Active DLP_Magnetic_Hover_1" id="DLP_Inset_Button_1_ID">
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Text_1_ID" style="color: #FFF;">${systemText[systemLanguage][9]}</p>
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: #FFF;"></p>
</div>
</div>
</div>
<div class="DLP_VStack_8" id="DLP_Get_Heart_Refill_1_ID" style="display: none;">
<p class="DLP_Text_Style_1 DLP_NoSelect" style="align-self: stretch;">${systemText[systemLanguage][58]}</p>
<div class="DLP_HStack_8">
<div class="DLP_Input_Button_Style_1_Active DLP_Magnetic_Hover_1" id="DLP_Inset_Button_1_ID" style="flex: 1 0 0;">
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Text_1_ID" style="color: #FFF;">${systemText[systemLanguage][229]}</p>
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: #FFF;"></p>
</div>
</div>
</div>
<div class="DLP_VStack_8" id="DLP_Get_Quest_1_ID" style="display: none;">
<p class="DLP_Text_Style_1 DLP_NoSelect" style="align-self: stretch;">${systemText[systemLanguage][59]}</p>
<div class="DLP_HStack_8">
<div class="DLP_Input_Button_Style_1_Active DLP_Magnetic_Hover_1" id="DLP_Inset_Button_1_ID" style="flex: 1 0 0;">
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Text_1_ID" style="color: #FFF;">${systemText[systemLanguage][60]}</p>
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: #FFF;"></p>
</div>
</div>
</div>
<div class="DLP_VStack_8" id="DLP_Get_Local_Duolingo_Max_1_ID" style="display: none;">
<p class="DLP_Text_Style_1 DLP_NoSelect" style="align-self: stretch;">Would you like to enable on-client Duolingo Max?</p>
<div class="DLP_HStack_8">
<div class="DLP_Input_Button_Style_1_Active DLP_Magnetic_Hover_1" id="DLP_Inset_Button_1_ID" style="flex: 1 0 0;">
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Text_1_ID" style="color: #FFF;">ENABLE IN SETTINGS</p>
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: #FFF;"></p>
</div>
</div>
</div>
<div class="DLP_Button_Style_1 DLP_Magnetic_Hover_1" id="DLP_Main_See_More_1_Button_1_ID" style="outline: rgba(var(--DLP-blue), 0.2) solid 2px; outline-offset: -2px; background: linear-gradient(0deg, rgba(var(--DLP-blue), 0.10) 0%, rgba(var(--DLP-blue), 0.10) 100%), rgba(var(--color-snow), 0.80); backdrop-filter: blur(16px); transform: translate(0px, 0px) scale(1); align-self: stretch; justify-content: space-between;">
<p class="DLP_Text_Style_1 DLP_NoSelect" style="color: rgb(var(--DLP-blue));">${systemText[systemLanguage][15]}</p>
<p class="DLP_Text_Style_1 DLP_NoSelect" style="color: rgb(var(--DLP-blue));"></p>
</div>
</div>
<div class="DLP_HStack_Auto" style="padding-top: 4px;">
<div class="DLP_HStack_4 DLP_Magnetic_Hover_1" id="DLP_Main_Terms_1_Button_1_ID" style="align-items: center;">
<p class="DLP_Text_Style_1 DLP_NoSelect" style="color: rgba(var(--DLP-blue), 0.5);">${systemText[systemLanguage][14]}</p>
</div>
<div class="DLP_HStack_4 DLP_Magnetic_Hover_1" id="DLP_Main_Whats_New_1_Button_1_ID" style="align-items: center;">
<p class="DLP_Text_Style_1 DLP_NoSelect" style="color: rgb(var(--DLP-blue));">${systemText[systemLanguage][7]}</p>
</div>
</div>
</div>
</div>
<div class="DLP_Main_Box_Divider" id="DLP_Main_Box_Divider_2_ID" style="display: none;">
<div class="DLP_VStack_8">
<div class="DLP_HStack_Auto_Top">
<div class="DLP_HStack_4 DLP_Hover_1" id="DLP_Universal_Back_1_Button_1_ID">
<p class="DLP_Text_Style_2 DLP_NoSelect" style="font-size: 20px;"></p>
<p class="DLP_Text_Style_2 DLP_NoSelect">Duolingo</p>
<p class="DLP_Text_Style_2 DLP_NoSelect" style="background: url(${serverURL}/static/images/flow/primary/256/light.png) lightgray 50% / cover no-repeat; background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent;">PRO 3.1</p>
</div>
<p class="DLP_Text_Style_1 DLP_NoSelect" style="font-size: 14px; background: url(${serverURL}/static/images/flow/secondary/256/light.png) lightgray 50% / cover no-repeat; background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent;">${VERSION_NAME}</p>
</div>
<div id="DLP_Main_Inputs_1_Divider_1_ID" style="display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px;">
<div class="DLP_VStack_8" id="DLP_Get_XP_2_ID" style="flex: 1 0 0;">
<div class="DLP_HStack_8" style="align-items: center;">
<p class="DLP_Text_Style_1 DLP_Magnetic_Hover_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: rgba(var(--color-eel), 0.50);"></p>
<p class="DLP_Text_Style_1 DLP_NoSelect" style="align-self: stretch;">${systemText[systemLanguage][8]}</p>
</div>
<div class="DLP_HStack_8">
<div class="DLP_Input_Style_1_Active">
<p class="DLP_Text_Style_1 DLP_NoSelect" style="color: rgba(var(--DLP-blue), 0.5);"></p>
<input type="text" placeholder="0" id="DLP_Inset_Input_1_ID" class="DLP_Input_Input_Style_1">
</div>
<div class="DLP_Input_Button_Style_1_Active DLP_Magnetic_Hover_1" id="DLP_Inset_Button_1_ID">
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Text_1_ID" style="color: #FFF;">${systemText[systemLanguage][9]}</p>
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: #FFF;"></p>
</div>
</div>
</div>
<div class="DLP_VStack_8" id="DLP_Get_GEM_2_ID" style="flex: 1 0 0; align-self: stretch;">
<div class="DLP_HStack_8" style="align-items: center;">
<p class="DLP_Text_Style_1 DLP_Magnetic_Hover_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: rgba(var(--color-eel), 0.50);"></p>
<p class="DLP_Text_Style_1 DLP_NoSelect" style="align-self: stretch;">${systemText[systemLanguage][10]}</p>
</div>
<div class="DLP_HStack_8">
<div class="DLP_Input_Style_1_Active" style="position: relative; overflow: hidden;">
<svg width="120" height="48" viewBox="0 0 120 48" fill="none" xmlns="http://www.w3.org/2000/svg" style="position: absolute; pointer-events: none; transform: translateX(-150px); animation: slideRight 4s ease-in-out forwards infinite; animation-delay: 2s;">
<path opacity="0.5" d="M72 0H96L72 48H48L72 0Z" fill="rgb(var(--DLP-blue))"/>
<path opacity="0.5" d="M24 0H60L36 48H0L24 0Z" fill="rgb(var(--DLP-blue))"/>
<path opacity="0.5" d="M108 0H120L96 48H84L108 0Z" fill="rgb(var(--DLP-blue))"/>
</svg>
<p class="DLP_Text_Style_1 DLP_NoSelect" style="color: rgba(var(--DLP-blue), 0.5);"></p>
<input type="text" placeholder="0" id="DLP_Inset_Input_1_ID" class="DLP_Input_Input_Style_1">
</div>
<div class="DLP_Input_Button_Style_1_Active DLP_Magnetic_Hover_1" id="DLP_Inset_Button_1_ID">
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Text_1_ID" style="color: #FFF;">${systemText[systemLanguage][9]}</p>
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: #FFF;"></p>
</div>
</div>
</div>
<div class="DLP_VStack_8" id="DLP_Get_Streak_2_ID" style="flex: 1 0 0;">
<div class="DLP_HStack_8" style="align-items: center;">
<p class="DLP_Text_Style_1 DLP_Magnetic_Hover_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: rgba(var(--color-eel), 0.50);"></p>
<p class="DLP_Text_Style_1 DLP_NoSelect" style="align-self: stretch;">${systemText[systemLanguage][57]}</p>
</div>
<div class="DLP_HStack_8">
<div class="DLP_Input_Style_1_Active">
<p class="DLP_Text_Style_1 DLP_NoSelect" style="color: rgba(var(--DLP-blue), 0.5);"></p>
<input type="text" placeholder="0" id="DLP_Inset_Input_1_ID" class="DLP_Input_Input_Style_1">
</div>
<div class="DLP_Input_Button_Style_1_Active DLP_Magnetic_Hover_1" id="DLP_Inset_Button_1_ID">
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Text_1_ID" style="color: #FFF;">${systemText[systemLanguage][9]}</p>
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: #FFF;"></p>
</div>
</div>
</div>
<div class="DLP_VStack_8" id="DLP_Get_Streak_Freeze_2_ID" style="flex: 1 0 0;">
<div class="DLP_HStack_8" style="align-items: center;">
<p class="DLP_Text_Style_1 DLP_Magnetic_Hover_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: rgba(var(--color-eel), 0.50);"></p>
<p class="DLP_Text_Style_1 DLP_NoSelect" style="align-self: stretch;">${systemText[systemLanguage][56]}</p>
</div>
<div class="DLP_HStack_8">
<div class="DLP_Input_Style_1_Active">
<p class="DLP_Text_Style_1 DLP_NoSelect" style="color: rgba(var(--DLP-blue), 0.5);"></p>
<input type="text" placeholder="0" id="DLP_Inset_Input_1_ID" class="DLP_Input_Input_Style_1">
</div>
<div class="DLP_Input_Button_Style_1_Active DLP_Magnetic_Hover_1" id="DLP_Inset_Button_1_ID">
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Text_1_ID" style="color: #FFF;">${systemText[systemLanguage][9]}</p>
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: #FFF;"></p>
</div>
</div>
</div>
<div class="DLP_VStack_8" id="DLP_Get_Badge_2_ID" style="flex: 1 0 0;">
<div class="DLP_HStack_8" style="align-items: center;">
<p class="DLP_Text_Style_1 DLP_Magnetic_Hover_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: rgba(var(--color-eel), 0.50);"></p>
<p class="DLP_Text_Style_1 DLP_NoSelect" style="align-self: stretch;">Which monthly badge would you like to get?</p>
</div>
<div class="DLP_HStack_8">
<div class="DLP_Input_Style_1_Active">
<p class="DLP_Text_Style_1 DLP_NoSelect" style="color: rgba(var(--DLP-blue), 0.5);"></p>
<div class="DLP_HStack_2">
<input type="text" placeholder="11" id="DLP_Inset_Input_1_ID" class="DLP_Input_Input_Style_1">
<p class="DLP_Text_Style_1 DLP_NoSelect" style="color: rgba(var(--DLP-blue), 0.5); font-feature-settings: "case" 1, "cpsp" 1;">/</p>
<input type="text" placeholder="2025" id="DLP_Inset_Input_2_ID" class="DLP_Input_Input_Style_1">
</div>
</div>
<div class="DLP_Input_Button_Style_1_Active DLP_Magnetic_Hover_1" id="DLP_Inset_Button_1_ID">
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Text_1_ID" style="color: #FFF;">${systemText[systemLanguage][9]}</p>
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: #FFF;"></p>
</div>
</div>
</div>
<div class="DLP_VStack_8" id="DLP_Get_DOUBLE_XP_BOOST_2_ID" style="flex: 1 0 0;">
<div class="DLP_HStack_8" style="align-items: center;">
<p class="DLP_Text_Style_1 DLP_Magnetic_Hover_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: rgba(var(--color-eel), 0.50);"></p>
<p class="DLP_Text_Style_1 DLP_NoSelect" style="align-self: stretch;">${systemText[systemLanguage][55]}</p>
</div>
<div class="DLP_HStack_8">
<div class="DLP_Input_Button_Style_1_Active DLP_Magnetic_Hover_1" id="DLP_Inset_Button_1_ID" style="flex: 1 0 0;">
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Text_1_ID" style="color: #FFF;">${systemText[systemLanguage][13]}</p>
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: #FFF;"></p>
</div>
</div>
</div>
<div class="DLP_VStack_8" id="DLP_Get_Heart_Refill_2_ID" style="flex: 1 0 0;">
<div class="DLP_HStack_8" style="align-items: center;">
<p class="DLP_Text_Style_1 DLP_Magnetic_Hover_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: rgba(var(--color-eel), 0.50);"></p>
<p class="DLP_Text_Style_1 DLP_NoSelect" style="align-self: stretch;">${systemText[systemLanguage][58]}</p>
</div>
<div class="DLP_HStack_8">
<div class="DLP_Input_Button_Style_1_Active DLP_Magnetic_Hover_1" id="DLP_Inset_Button_1_ID" style="flex: 1 0 0;">
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Text_1_ID" style="color: #FFF;">${systemText[systemLanguage][229]}</p>
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: #FFF;"></p>
</div>
</div>
</div>
<div class="DLP_VStack_8" id="DLP_Get_Quest_2_ID" style="flex: 1 0 0; display: none;">
<div class="DLP_HStack_8" style="align-items: center;">
<p class="DLP_Text_Style_1 DLP_Magnetic_Hover_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: rgba(var(--color-eel), 0.50);"></p>
<p class="DLP_Text_Style_1 DLP_NoSelect" style="align-self: stretch;">${systemText[systemLanguage][59]}</p>
</div>
<div class="DLP_HStack_8">
<div class="DLP_Input_Button_Style_1_Active DLP_Magnetic_Hover_1" id="DLP_Inset_Button_1_ID" style="flex: 1 0 0;">
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Text_1_ID" style="color: #FFF;">${systemText[systemLanguage][60]}</p>
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: #FFF;"></p>
</div>
</div>
</div>
<div class="DLP_VStack_8" id="DLP_Get_Local_Duolingo_Max_2_ID">
<div class="DLP_HStack_8" style="align-items: center;">
<p class="DLP_Text_Style_1 DLP_Magnetic_Hover_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: rgba(var(--color-eel), 0.50);"></p>
<p class="DLP_Text_Style_1 DLP_NoSelect" style="align-self: stretch;">Would you like to enable on-client Duolingo Max?</p>
</div>
<div class="DLP_HStack_8">
<div class="DLP_Input_Button_Style_1_Active DLP_Magnetic_Hover_1" id="DLP_Inset_Button_1_ID" style="flex: 1 0 0;">
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Text_1_ID" style="color: #FFF;">ENABLE IN SETTINGS</p>
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: #FFF;"></p>
</div>
</div>
</div>
<div class="DLP_VStack_8" id="DLP_Get_SUPER_2_ID" style="flex: 1 0 0;">
<div class="DLP_HStack_8" style="align-items: center;">
<p class="DLP_Text_Style_1 DLP_Magnetic_Hover_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: rgba(var(--color-eel), 0.50);"></p>
<p class="DLP_Text_Style_1 DLP_NoSelect" style="align-self: stretch;">${systemText[systemLanguage][12]}</p>
</div>
<div class="DLP_HStack_8">
<div class="DLP_Input_Button_Style_1_Active DLP_Magnetic_Hover_1" id="DLP_Inset_Button_1_ID" style="flex: 1 0 0;">
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Text_1_ID" style="color: #FFF;">${systemText[systemLanguage][13]}</p>
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: #FFF;"></p>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="DLP_Main_Box_Divider" id="DLP_Main_Box_Divider_3_ID" style="display: none;">
<div class="DLP_VStack_8">
<div class="DLP_VStack_8">
<div class="DLP_HStack_8">
<div id="DLP_Secondary_1_Server_Connection_Button_1_ID" class="DLP_Button_Style_1 DLP_Magnetic_Hover_1 DLP_NoSelect" style="outline: 2px solid rgb(var(--color-eel), 0.20); outline-offset: -2px; background: rgb(var(--color-eel), 0.10); transition: opacity 0.8s cubic-bezier(0.16, 1, 0.32, 1), background 0.8s cubic-bezier(0.16, 1, 0.32, 1), outline 0.8s cubic-bezier(0.16, 1, 0.32, 1), filter 0.4s cubic-bezier(0.16, 1, 0.32, 1), transform 0.4s cubic-bezier(0.16, 1, 0.32, 1); padding: 10px 0px 10px 10px; opacity: 0.25; pointer-events: none;">
<p class="DLP_Text_Style_1 DLP_Inset_Icon_1_ID" style="color: rgb(var(--DLP-blue)); animation: 4s ease-in-out 0s infinite normal none running DLP_Rotate_360_Animation_1;"></p>
<p class="DLP_Text_Style_1 DLP_Inset_Text_1_ID" style="color: #000; transition: 0.4s;">${systemText[systemLanguage][3]}</p>
</div>
<div class="DLP_Button_Style_1 DLP_Magnetic_Hover_1" id="DLP_Secondary_Donate_Button_1_ID" style="outline: 2px solid rgba(0, 0, 0, 0.20); outline-offset: -2px; background: url(${serverURL}/static/images/flow/primary/256/light.png) lightgray 50% / cover no-repeat; padding: 10px 0px 10px 10px;">
<svg width="17" height="19" viewBox="0 0 17 19" fill="#FFF" xmlns="http://www.w3.org/2000/svg">
<path d="M16.5 5.90755C16.4968 3.60922 14.6997 1.72555 12.5913 1.04588C9.97298 0.201877 6.51973 0.324211 4.01956 1.49921C0.989301 2.92355 0.0373889 6.04355 0.00191597 9.15522C-0.0271986 11.7136 0.229143 18.4517 4.04482 18.4997C6.87998 18.5356 7.30214 14.8967 8.61397 13.1442C9.5473 11.8974 10.749 11.5452 12.2284 11.1806C14.7709 10.5537 16.5037 8.55506 16.5 5.90755Z"/>
</svg>
<p class="DLP_Text_Style_1 DLP_NoSelect" style="color: #FFF;">${systemText[systemLanguage][4]}</p>
</div>
</div>
<div class="DLP_HStack_8">
<div class="DLP_Button_Style_1 DLP_Magnetic_Hover_1" id="DLP_Secondary_Feedback_1_Button_1_ID" style="outline: 2px solid rgba(var(--DLP-blue), 0.20); outline-offset: -2px; background: linear-gradient(0deg, rgba(var(--DLP-blue), 0.10) 0%, rgba(var(--DLP-blue), 0.10) 100%), rgba(var(--color-snow), 0.80); backdrop-filter: blur(16px);">
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: rgb(var(--DLP-blue));"></p>
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Text_1_ID" style="color: rgb(var(--DLP-blue));">${systemText[systemLanguage][5]}</p>
</div>
<div class="DLP_Button_Style_1 DLP_Magnetic_Hover_1" id="DLP_Secondary_Settings_1_Button_1_ID" style="outline: 2px solid rgba(var(--DLP-blue), 0.20); outline-offset: -2px; background: linear-gradient(0deg, rgba(var(--DLP-blue), 0.10) 0%, rgba(var(--DLP-blue), 0.10) 100%), rgba(var(--color-snow), 0.80); backdrop-filter: blur(16px);">
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: rgb(var(--DLP-blue));"></p>
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Text_1_ID" style="color: rgb(var(--DLP-blue));">${systemText[systemLanguage][6]}</p>
</div>
</div>
<div class="DLP_HStack_8">
<div class="DLP_Button_Style_1 DLP_Magnetic_Hover_1" id="DLP_Main_Earn_Button_1_ID" style="outline: 2px solid rgba(0, 0, 0, 0.20); outline-offset: -2px; background: url(${serverURL}/static/images/flow/secondary/256/light.png) lightgray 50% / cover no-repeat; padding: 10px 0px 10px 10px;">
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: #FFF;"></p>
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Text_1_ID" style="color: #FFF;">Boost</p>
</div>
<div class="DLP_Button_Style_1 DLP_Magnetic_Hover_1" id="DLP_Secondary_YouTube_Button_1_ID" style="justify-content: center; flex: none; width: 40px; padding: 10px; outline: 2px solid rgba(0, 0, 0, 0.20); outline-offset: -2px; background: rgb(var(--DLP-pink));">
<svg width="22" height="16" viewBox="0 0 22 16" fill="#FFF" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M19.2043 1.0885C20.1084 1.33051 20.8189 2.041 21.0609 2.9451C21.4982 4.58216 21.5 7.99976 21.5 7.99976C21.5 7.99976 21.5 11.4174 21.0609 13.0544C20.8189 13.9585 20.1084 14.669 19.2043 14.911C17.5673 15.3501 11 15.3501 11 15.3501C11 15.3501 4.43274 15.3501 2.79568 14.911C1.89159 14.669 1.1811 13.9585 0.939084 13.0544C0.5 11.4174 0.5 7.99976 0.5 7.99976C0.5 7.99976 0.5 4.58216 0.939084 2.9451C1.1811 2.041 1.89159 1.33051 2.79568 1.0885C4.43274 0.649414 11 0.649414 11 0.649414C11 0.649414 17.5673 0.649414 19.2043 1.0885ZM14.3541 8.00005L8.89834 11.1497V4.85038L14.3541 8.00005Z"/>
</svg>
</div>
<div class="DLP_Button_Style_1 DLP_Magnetic_Hover_1" id="DLP_Secondary_Discord_Button_1_ID" style="justify-content: center; flex: none; width: 40px; padding: 10px; outline: 2px solid rgba(0, 0, 0, 0.20); outline-offset: -2px; background: rgb(var(--DLP-indigo));">
<svg width="22" height="16" viewBox="0 0 22 16" fill="#FFF" xmlns="http://www.w3.org/2000/svg">
<path d="M18.289 1.34C16.9296 0.714 15.4761 0.259052 13.9565 0C13.7699 0.332095 13.5519 0.77877 13.4016 1.1341C11.7862 0.894993 10.1857 0.894993 8.60001 1.1341C8.44972 0.77877 8.22674 0.332095 8.03844 0C6.51721 0.259052 5.06204 0.715671 3.70267 1.34331C0.960812 5.42136 0.21754 9.39811 0.589177 13.3184C2.40772 14.655 4.17011 15.467 5.90275 15.9984C6.33055 15.4189 6.71209 14.8028 7.04078 14.1536C6.41478 13.9195 5.81521 13.6306 5.24869 13.2952C5.39898 13.1856 5.546 13.071 5.68803 12.9531C9.14342 14.5438 12.8978 14.5438 16.3119 12.9531C16.4556 13.071 16.6026 13.1856 16.7512 13.2952C16.183 13.6322 15.5818 13.9211 14.9558 14.1553C15.2845 14.8028 15.6644 15.4205 16.0939 16C17.8282 15.4687 19.5922 14.6567 21.4107 13.3184C21.8468 8.77378 20.6658 4.83355 18.289 1.34ZM7.51153 10.9075C6.47426 10.9075 5.62361 9.95435 5.62361 8.7937C5.62361 7.63305 6.45609 6.67831 7.51153 6.67831C8.56699 6.67831 9.41761 7.63138 9.39945 8.7937C9.40109 9.95435 8.56699 10.9075 7.51153 10.9075ZM14.4884 10.9075C13.4511 10.9075 12.6005 9.95435 12.6005 8.7937C12.6005 7.63305 13.4329 6.67831 14.4884 6.67831C15.5438 6.67831 16.3945 7.63138 16.3763 8.7937C16.3763 9.95435 15.5438 10.9075 14.4884 10.9075Z"/>
</svg>
</div>
<div class="DLP_Button_Style_1 DLP_Magnetic_Hover_1" id="DLP_Secondary_GitHub_Button_1_ID" style="justify-content: center; flex: none; width: 40px; padding: 10px; outline: 2px solid rgba(255, 255, 255, 0.20); outline-offset: -2px; background: #333333;">
<svg width="22" height="22" viewBox="0 0 22 22" fill="#FFF" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M11.0087 0.5C5.19766 0.5 0.5 5.3125 0.5 11.2662C0.5 16.0253 3.50995 20.0538 7.68555 21.4797C8.2076 21.5868 8.39883 21.248 8.39883 20.963C8.39883 20.7134 8.38162 19.8578 8.38162 18.9664C5.45836 19.6082 4.84962 17.683 4.84962 17.683C4.37983 16.4353 3.68375 16.1146 3.68375 16.1146C2.72697 15.4551 3.75345 15.4551 3.75345 15.4551C4.81477 15.5264 5.37167 16.5602 5.37167 16.5602C6.31103 18.1999 7.82472 17.7366 8.43368 17.4514C8.52058 16.7562 8.79914 16.2749 9.09491 16.0076C6.7634 15.758 4.31035 14.8312 4.31035 10.6957C4.31035 9.51928 4.72765 8.55678 5.38888 7.80822C5.28456 7.54091 4.9191 6.43556 5.49342 4.95616C5.49342 4.95616 6.38073 4.67091 8.38141 6.06128C9.23797 5.82561 10.1213 5.70573 11.0087 5.70472C11.896 5.70472 12.8005 5.82963 13.6358 6.06128C15.6367 4.67091 16.524 4.95616 16.524 4.95616C17.0983 6.43556 16.7326 7.54091 16.6283 7.80822C17.3069 8.55678 17.707 9.51928 17.707 10.6957C17.707 14.8312 15.254 15.7401 12.905 16.0076C13.2879 16.3463 13.6183 16.9878 13.6183 18.0039C13.6183 19.4477 13.6011 20.6064 13.6011 20.9627C13.6011 21.248 13.7926 21.5868 14.3144 21.4799C18.49 20.0536 21.5 16.0253 21.5 11.2662C21.5172 5.3125 16.8023 0.5 11.0087 0.5Z"/>
</svg>
</div>
</div>
</div>
<div class="DLP_HStack_Auto_Top">
<div class="DLP_HStack_4">
<p class="DLP_Text_Style_2 DLP_NoSelect">Duolingo</p>
<p class="DLP_Text_Style_2 DLP_NoSelect" style="background: url(${serverURL}/static/images/flow/primary/256/light.png) lightgray 50% / cover no-repeat; background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent;">PRO LE</p>
</div>
<p class="DLP_Text_Style_1 DLP_NoSelect" style="font-size: 14px; background: url(${serverURL}/static/images/flow/secondary/256/light.png) lightgray 50% / cover no-repeat; background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent;">${VERSION_NAME}</p>
</div>
<p class="DLP_Text_Style_1" style="display: none; transition: 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94); opacity: 0; filter: blur(4px);">You are using an outdated version of Duolingo PRO. <br><br>Please update Duolingo PRO or turn on automatic updates. </p>
<p class="DLP_Text_Style_1" style="display: none; transition: 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94); opacity: 0; filter: blur(4px);">Duolingo PRO failed to connect. This might be happening because of an issue on our system or your device. <br><br>Try updating Duolingo PRO. If the issue persists afterwards, join our Discord Server to get support. </p>
<p class="DLP_Text_Style_1" style="display: none; transition: 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94); opacity: 0; filter: blur(4px);">We are currently unable to receive new requests due to high demand. Join our Discord Server to learn more. <br><br>You can help us handle more demand by donating on Patreon while getting exclusive features and higher limits. </p>
<div class="DLP_VStack_8" id="DLP_Main_Inputs_2_Divider_1_ID">
<div class="DLP_VStack_8" id="DLP_Get_PATH_1_ID">
<p class="DLP_Text_Style_1 DLP_NoSelect" style="align-self: stretch;">${systemText[systemLanguage][17]}</p>
<div class="DLP_HStack_8">
<div class="DLP_Input_Button_Style_1_Active DLP_Magnetic_Hover_1" id="DLP_Inset_Button_2_ID" style="width: 48px; padding: 0;">
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: #FFF;"></p>
</div>
<div class="DLP_Input_Style_1_Active">
<input type="text" placeholder="0" id="DLP_Inset_Input_1_ID" class="DLP_Input_Input_Style_1">
</div>
<div class="DLP_Input_Button_Style_1_Active DLP_Magnetic_Hover_1" id="DLP_Inset_Button_1_ID">
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Text_1_ID" style="color: #FFF;">${systemText[systemLanguage][18]}</p>
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: #FFF;"></p>
</div>
</div>
</div>
<div class="DLP_VStack_8" id="DLP_Get_PRACTICE_1_ID">
<p class="DLP_Text_Style_1 DLP_NoSelect" style="align-self: stretch;">${systemText[systemLanguage][19]}</p>
<div class="DLP_HStack_8">
<div class="DLP_Input_Button_Style_1_Active DLP_Magnetic_Hover_1" id="DLP_Inset_Button_2_ID" style="width: 48px; padding: 0;">
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: #FFF;"></p>
</div>
<div class="DLP_Input_Style_1_Active">
<input type="text" placeholder="0" id="DLP_Inset_Input_1_ID" class="DLP_Input_Input_Style_1">
</div>
<div class="DLP_Input_Button_Style_1_Active DLP_Magnetic_Hover_1" id="DLP_Inset_Button_1_ID">
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Text_1_ID" style="color: #FFF;">${systemText[systemLanguage][18]}</p>
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: #FFF;"></p>
</div>
</div>
</div>
<div class="DLP_VStack_8" id="DLP_Get_LISTEN_1_ID" style="display: none;">
<p class="DLP_Text_Style_1 DLP_NoSelect" style="align-self: stretch;">${systemText[systemLanguage][21]}</p>
<div class="DLP_HStack_8">
<div class="DLP_Input_Button_Style_1_Active DLP_Magnetic_Hover_1" id="DLP_Inset_Button_2_ID" style="width: 48px; padding: 0;">
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: #FFF;"></p>
</div>
<div class="DLP_Input_Style_1_Active">
<input type="text" placeholder="0" id="DLP_Inset_Input_1_ID" class="DLP_Input_Input_Style_1">
</div>
<div class="DLP_Input_Button_Style_1_Active DLP_Magnetic_Hover_1" id="DLP_Inset_Button_1_ID">
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Text_1_ID" style="color: #FFF;">${systemText[systemLanguage][18]}</p>
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: #FFF;"></p>
</div>
</div>
</div>
<div class="DLP_VStack_8" id="DLP_Get_LESSON_1_ID" style="display: none;">
<p class="DLP_Text_Style_1 DLP_NoSelect" style="align-self: stretch;">${systemText[systemLanguage][23]}</p>
<div class="DLP_HStack_8">
<div class="DLP_Input_Style_1_Active">
<p class="DLP_Text_Style_1" style="color: rgba(var(--DLP-blue), 0.5);"></p>
<div style="display: flex; align-items: center; gap: 8px; width: 100%; justify-content: flex-end;">
<p class="DLP_Text_Style_1 DLP_NoSelect" style="color: rgba(var(--DLP-blue), 0.5);">Unit:</p>
<input type="text" placeholder="0" id="DLP_Inset_Input_3_ID" class="DLP_Input_Input_Style_1" style="width: 30px;">
<p class="DLP_Text_Style_1 DLP_NoSelect" style="color: rgba(var(--DLP-blue), 0.5);">Lesson:</p>
<input type="text" placeholder="0" id="DLP_Inset_Input_4_ID" class="DLP_Input_Input_Style_1" style="width: 30px;">
</div>
</div>
</div>
<div class="DLP_HStack_8">
<div class="DLP_Input_Button_Style_1_Active DLP_Magnetic_Hover_1" id="DLP_Inset_Button_2_ID" style="width: 48px; padding: 0;">
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: #FFF;"></p>
</div>
<div class="DLP_Input_Style_1_Active">
<input type="text" placeholder="0" id="DLP_Inset_Input_1_ID" class="DLP_Input_Input_Style_1">
</div>
<div class="DLP_Input_Button_Style_1_Active DLP_Magnetic_Hover_1" id="DLP_Inset_Button_1_ID">
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Text_1_ID" style="color: #FFF;">${systemText[systemLanguage][18]}</p>
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: #FFF;"></p>
</div>
</div>
</div>
<div class="DLP_Button_Style_1 DLP_Magnetic_Hover_1" id="DLP_Secondary_See_More_1_Button_1_ID" style="outline: rgba(var(--DLP-blue), 0.2) solid 2px; outline-offset: -2px; background: linear-gradient(0deg, rgba(var(--DLP-blue), 0.10) 0%, rgba(var(--DLP-blue), 0.10) 100%), rgba(var(--color-snow), 0.80); backdrop-filter: blur(16px); transform: translate(0px, 0px) scale(1); align-self: stretch; justify-content: space-between;">
<p class="DLP_Text_Style_1 DLP_NoSelect" style="color: rgb(var(--DLP-blue));">${systemText[systemLanguage][15]}</p>
<p class="DLP_Text_Style_1 DLP_NoSelect" style="color: rgb(var(--DLP-blue));"></p>
</div>
<div class="DLP_HStack_Auto" style="padding-top: 4px;">
<div class="DLP_HStack_4 DLP_Magnetic_Hover_1" id="DLP_Secondary_Terms_1_Button_1_ID" style="align-items: center;">
<p class="DLP_Text_Style_1 DLP_NoSelect" style="color: rgba(var(--DLP-blue), 0.5);">${systemText[systemLanguage][14]}</p>
</div>
<div class="DLP_HStack_4 DLP_Magnetic_Hover_1" id="DLP_Secondary_Whats_New_1_Button_1_ID" style="align-items: center;">
<p class="DLP_Text_Style_1 DLP_NoSelect" style="color: rgb(var(--DLP-blue));">${systemText[systemLanguage][7]}</p>
</div>
</div>
</div>
</div>
</div>
<div class="DLP_Main_Box_Divider" id="DLP_Main_Box_Divider_4_ID" style="display: none;">
<div class="DLP_VStack_8">
<div class="DLP_HStack_Auto_Top">
<div class="DLP_HStack_4 DLP_Hover_1" id="DLP_Universal_Back_1_Button_1_ID">
<p class="DLP_Text_Style_2 DLP_NoSelect" style="font-size: 20px;"></p>
<p class="DLP_Text_Style_2 DLP_NoSelect">Duolingo</p>
<p class="DLP_Text_Style_2 DLP_NoSelect" style="background: url(${serverURL}/static/images/flow/primary/256/light.png) lightgray 50% / cover no-repeat; background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent;">PRO LE</p>
</div>
<p class="DLP_Text_Style_1 DLP_NoSelect" style="font-size: 14px; background: url(${serverURL}/static/images/flow/secondary/256/light.png) lightgray 50% / cover no-repeat; background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent;">${VERSION_NAME}</p>
</div>
<div class="DLP_VStack_8" id="DLP_Main_Inputs_1_Divider_1_ID">
<div class="DLP_VStack_8" id="DLP_Get_PATH_2_ID">
<div class="DLP_HStack_8" style="align-items: center;">
<p class="DLP_Text_Style_1 DLP_Magnetic_Hover_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: rgba(var(--color-eel), 0.50);"></p>
<p class="DLP_Text_Style_1 DLP_NoSelect" style="align-self: stretch;">${systemText[systemLanguage][17]}</p>
</div>
<div class="DLP_HStack_8">
<div class="DLP_Input_Button_Style_1_Active DLP_Magnetic_Hover_1" id="DLP_Inset_Button_2_ID" style="width: 48px; padding: 0;">
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: #FFF;"></p>
</div>
<div class="DLP_Input_Style_1_Active">
<input type="text" placeholder="0" id="DLP_Inset_Input_1_ID" class="DLP_Input_Input_Style_1">
</div>
<div class="DLP_Input_Button_Style_1_Active DLP_Magnetic_Hover_1" id="DLP_Inset_Button_1_ID">
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Text_1_ID" style="color: #FFF;">${systemText[systemLanguage][18]}</p>
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: #FFF;"></p>
</div>
</div>
</div>
<div class="DLP_VStack_8" id="DLP_Get_PRACTICE_2_ID">
<div class="DLP_HStack_8" style="align-items: center;">
<p class="DLP_Text_Style_1 DLP_Magnetic_Hover_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: rgba(var(--color-eel), 0.50);"></p>
<p class="DLP_Text_Style_1 DLP_NoSelect" style="align-self: stretch;">${systemText[systemLanguage][19]}</p>
</div>
<div class="DLP_HStack_8">
<div class="DLP_Input_Button_Style_1_Active DLP_Magnetic_Hover_1" id="DLP_Inset_Button_2_ID" style="width: 48px; padding: 0;">
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: #FFF;"></p>
</div>
<div class="DLP_Input_Style_1_Active">
<input type="text" placeholder="0" id="DLP_Inset_Input_1_ID" class="DLP_Input_Input_Style_1">
</div>
<div class="DLP_Input_Button_Style_1_Active DLP_Magnetic_Hover_1" id="DLP_Inset_Button_1_ID">
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Text_1_ID" style="color: #FFF;">${systemText[systemLanguage][18]}</p>
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: #FFF;"></p>
</div>
</div>
</div>
<div class="DLP_VStack_8" id="DLP_Get_LISTEN_2_ID">
<div class="DLP_HStack_8" style="align-items: center;">
<p class="DLP_Text_Style_1 DLP_Magnetic_Hover_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: rgba(var(--color-eel), 0.50);"></p>
<p class="DLP_Text_Style_1 DLP_NoSelect" style="align-self: stretch;">${systemText[systemLanguage][21]}</p>
</div>
<div class="DLP_HStack_8">
<div class="DLP_Input_Button_Style_1_Active DLP_Magnetic_Hover_1" id="DLP_Inset_Button_2_ID" style="width: 48px; padding: 0;">
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: #FFF;"></p>
</div>
<div class="DLP_Input_Style_1_Active">
<input type="text" placeholder="0" id="DLP_Inset_Input_1_ID" class="DLP_Input_Input_Style_1">
</div>
<div class="DLP_Input_Button_Style_1_Active DLP_Magnetic_Hover_1" id="DLP_Inset_Button_1_ID">
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Text_1_ID" style="color: #FFF;">${systemText[systemLanguage][18]}</p>
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: #FFF;"></p>
</div>
</div>
</div>
<div class="DLP_VStack_8" id="DLP_Get_LESSON_2_ID">
<div class="DLP_HStack_8" style="align-items: center;">
<p class="DLP_Text_Style_1 DLP_Magnetic_Hover_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: rgba(var(--color-eel), 0.50);"></p>
<p class="DLP_Text_Style_1 DLP_NoSelect" style="align-self: stretch;">${systemText[systemLanguage][23]}</p>
</div>
<div class="DLP_HStack_8">
<div class="DLP_Input_Style_1_Active">
<div style="display: flex; align-items: center; gap: 8px; width: 100%; justify-content: flex-end;">
<p class="DLP_Text_Style_1 DLP_NoSelect" style="color: rgba(var(--DLP-blue), 0.5);">Unit:</p>
<input type="text" placeholder="0" id="DLP_Inset_Input_3_ID" class="DLP_Input_Input_Style_1" style="width: 30px;">
<p class="DLP_Text_Style_1 DLP_NoSelect" style="color: rgba(var(--DLP-blue), 0.5);">Lesson:</p>
<input type="text" placeholder="0" id="DLP_Inset_Input_4_ID" class="DLP_Input_Input_Style_1" style="width: 30px;">
</div>
</div>
</div>
<div class="DLP_HStack_8">
<div class="DLP_Input_Button_Style_1_Active DLP_Magnetic_Hover_1" id="DLP_Inset_Button_2_ID" style="width: 48px; padding: 0;">
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: #FFF;"></p>
</div>
<div class="DLP_Input_Style_1_Active">
<input type="text" placeholder="0" id="DLP_Inset_Input_1_ID" class="DLP_Input_Input_Style_1">
</div>
<div class="DLP_Input_Button_Style_1_Active DLP_Magnetic_Hover_1" id="DLP_Inset_Button_1_ID">
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Text_1_ID" style="color: #FFF;">${systemText[systemLanguage][18]}</p>
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: #FFF;"></p>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="DLP_Main_Box_Divider" id="DLP_Main_Box_Divider_5_ID" style="display: none;">
<div class="DLP_VStack_8" style="height: 640px; max-height: calc(100vh - 220px);">
<div class="DLP_HStack_Auto_Top">
<div class="DLP_HStack_4">
<p class="DLP_Text_Style_2 DLP_NoSelect">Duolingo</p>
<p class="DLP_Text_Style_2 DLP_NoSelect" style="background: url(${serverURL}/static/images/flow/primary/256/light.png) lightgray 50% / cover no-repeat; background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent;">PRO 3.1</p>
</div>
<p class="DLP_Text_Style_1 DLP_NoSelect" style="font-size: 14px; background: url(${serverURL}/static/images/flow/secondary/256/light.png) lightgray 50% / cover no-repeat; background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent;">${VERSION_NAME}</p>
</div>
<p class="DLP_Text_Style_1 DLP_NoSelect" id="DLP_Terms_1_Text_1_ID">${systemText[systemLanguage][25]}</p>
<p class="DLP_Text_Style_1 DLP_NoSelect" id="DLP_Terms_1_Text_2_ID" style="display: none; align-self: stretch;">${systemText[systemLanguage][26]}</p>
<div class="DLP_Scroll_Box_Style_1">
<p id="DLP_Terms_Main_Text_1_ID" class="DLP_Scroll_Box_Text_Style_1">${systemText[systemLanguage][27]}</p>
</div>
<div class="DLP_HStack_8" id="DLP_Terms_1_Button_1_ID">
<div id="DLP_Terms_Decline_Button_1_ID" class="DLP_Button_Style_2 DLP_Magnetic_Hover_1" style="outline: 2px solid rgba(var(--DLP-blue), 0.20); outline-offset: -2px; background: rgba(var(--DLP-blue), 0.10);">
<p class="DLP_Text_Style_1 DLP_NoSelect" style="color: rgb(var(--DLP-blue));"></p>
<p class="DLP_Text_Style_1 DLP_NoSelect" style="color: rgb(var(--DLP-blue));">${systemText[systemLanguage][28]}</p>
</div>
<div id="DLP_Terms_Accept_Button_1_ID" class="DLP_Button_Style_2 DLP_Magnetic_Hover_1" style="outline: 2px solid rgba(0, 0, 0, 0.20); outline-offset: -2px; background: rgb(var(--DLP-blue));">
<p class="DLP_Text_Style_1 DLP_NoSelect" style="color: #FFF;">${systemText[systemLanguage][29]}</p>
<p class="DLP_Text_Style_1 DLP_NoSelect" style="color: #FFF;"></p>
</div>
</div>
<div class="DLP_HStack_8" id="DLP_Terms_1_Button_2_ID" style="display: none;">
<div class="DLP_Button_Style_2 DLP_Magnetic_Hover_1" id="DLP_Terms_Back_Button_1_ID" style="outline: 2px solid rgba(var(--DLP-blue), 0.20); outline-offset: -2px; background: rgba(var(--DLP-blue), 0.10);">
<p class="DLP_Text_Style_1 DLP_NoSelect" style="color: rgb(var(--DLP-blue));"></p>
<p class="DLP_Text_Style_1 DLP_NoSelect" style="color: rgb(var(--DLP-blue));">${systemText[systemLanguage][29]}</p>
</div>
</div>
</div>
</div>
<div class="DLP_Main_Box_Divider" id="DLP_Main_Box_Divider_6_ID" style="display: none;">
<div class="DLP_VStack_8">
<div class="DLP_HStack_Auto_Top">
<div class="DLP_HStack_4">
<p class="DLP_Text_Style_2 DLP_NoSelect">Duolingo</p>
<p class="DLP_Text_Style_2 DLP_NoSelect" style="background: url(${serverURL}/static/images/flow/primary/256/light.png) lightgray 50% / cover no-repeat; background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent;">PRO 3.1</p>
</div>
<p class="DLP_Text_Style_1 DLP_NoSelect" style="font-size: 14px; background: url(${serverURL}/static/images/flow/secondary/256/light.png) lightgray 50% / cover no-repeat; background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent;">${VERSION_NAME}</p>
</div>
<p class="DLP_Text_Style_1 DLP_NoSelect">${systemText[systemLanguage][30]}</p>
<div class="DLP_HStack_8">
<div id="DLP_Terms_Declined_Back_Button_1_ID" class="DLP_Button_Style_2 DLP_Magnetic_Hover_1" style="outline: 2px solid rgba(var(--DLP-blue), 0.20); outline-offset: -2px; background: rgba(var(--DLP-blue), 0.10);">
<p class="DLP_Text_Style_1 DLP_NoSelect" style="color: rgb(var(--DLP-blue));"></p>
<p class="DLP_Text_Style_1 DLP_NoSelect" style="color: rgb(var(--DLP-blue));">${systemText[systemLanguage][31]}</p>
</div>
</div>
</div>
</div>
<div class="DLP_Main_Box_Divider" id="DLP_Main_Box_Divider_7_ID" style="display: none;">
<div class="DLP_VStack_8" style="max-height: calc(100vh - 220px);">
<div class="DLP_HStack_Auto_Top">
<div id="DLP_Universal_Back_1_Button_1_ID" class="DLP_HStack_4 DLP_Hover_1" style="background: url(${serverURL}/static/images/flow/primary/256/light.png) center / cover no-repeat; -webkit-background-clip: text; background-clip: text; color: transparent;">
<p class="DLP_Text_Style_2 DLP_NoSelect" style="font-size: 20px; color: inherit;"></p>
<p class="DLP_Text_Style_2 DLP_NoSelect" style="color: inherit;">${systemText[systemLanguage][32]}</p>
</div>
<p class="DLP_Text_Style_1 DLP_NoSelect" style="font-size: 14px; background: url(${serverURL}/static/images/flow/secondary/256/light.png) lightgray 50% / cover no-repeat; background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent;">${VERSION_NAME}</p>
</div>
<div style="overflow-y: auto; margin: 0 -16px; padding: 0 16px;">
<div class="DLP_VStack_8">
<div id="DLP_Settings_Show_Solve_Buttons_1_ID" class="DLP_HStack_8" style="justify-content: center; align-items: center;">
<div class="DLP_VStack_0" style="align-items: flex-start; flex: 1 0 0;">
<p class="DLP_Text_Style_1">Show Solve Buttons</p>
<p class="DLP_Text_Style_1" style="color: rgb(var(--color-wolf), 0.4);">In lessons and practices, see the solve and solve all buttons.</p>
</div>
<div id="DLP_Inset_Toggle_1_ID" class="DLP_Toggle_Style_1 DLP_Hover_1">
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: #FFF;"></p>
</div>
</div>
<div id="DLP_Settings_Show_AutoServer_Button_1_ID" class="DLP_HStack_8" style="justify-content: center; align-items: center;${alpha ? '' : ' display: none;'}">
<div class="DLP_VStack_0" style="align-items: flex-start; flex: 1 0 0;">
<p class="DLP_Text_Style_1">Show AutoServer Button</p>
<p class="DLP_Text_Style_1" style="color: rgb(var(--color-wolf), 0.4);">See the AutoServer by Duolingo PRO button in your Duolingo menubar.</p>
</div>
<div id="DLP_Inset_Toggle_1_ID" class="DLP_Toggle_Style_1 DLP_Hover_1">
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: #FFF;"></p>
</div>
</div>
<div id="DLP_Settings_Random_Legacy_Solve_Speed_Button_1_ID" class="DLP_HStack_8" style="justify-content: center; align-items: center;">
<div class="DLP_VStack_0" style="align-items: flex-start; flex: 1 0 0;">
<p class="DLP_Text_Style_1">Random Legacy Solve Speed</p>
<p class="DLP_Text_Style_1" style="color: rgb(var(--color-wolf), 0.4);">Legacy will wait a random amount of seconds before solving.</p>
</div>
<div id="DLP_Inset_Toggle_1_ID" class="DLP_Toggle_Style_1 DLP_Hover_1">
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: #FFF;"></p>
</div>
</div>
<div id="DLP_Settings_Legacy_Solve_Speed_1_ID" class="DLP_HStack_8" style="justify-content: center; align-items: center;">
<div class="DLP_VStack_0" style="align-items: flex-start; flex: 1 0 0;">
<p class="DLP_Text_Style_1">Custom Random Legacy Solve Speed</p>
<p class="DLP_Text_Style_1" style="color: rgb(var(--color-wolf), 0.4);">Legacy will wait a random amount of seconds in between these two numbers before solving.</p>
</div>
<div class="DLP_Input_Style_1_Active" style="flex: none; width: 112px;">
<input type="text" placeholder="0" id="DLP_Inset_Input_1_ID" class="DLP_Input_Input_Style_1" style="text-align: center;">
<input type="text" placeholder="0" id="DLP_Inset_Input_2_ID" class="DLP_Input_Input_Style_1" style="text-align: center;">
</div>
</div>
<div id="DLP_Settings_Help_Us_Make_Better_Button_1_ID" class="DLP_HStack_8" style="justify-content: center; align-items: center;">
<div class="DLP_VStack_0" style="align-items: flex-start; flex: 1 0 0;">
<p class="DLP_Text_Style_1">Help Us Make Duolingo PRO Better</p>
<p class="DLP_Text_Style_1" style="color: rgb(var(--color-wolf), 0.4);">Allow Duolingo PRO to collect anonymous usage data for us to improve the script.</p>
</div>
<div id="DLP_Inset_Toggle_1_ID" class="DLP_Toggle_Style_1 DLP_Hover_1" style="${alpha ? 'opacity: 0.5; pointer-events: none; cursor: not-allowed;' : ''}">
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: #FFF;"></p>
</div>
</div>
<div id="DLP_Settings_Reduce_Effects_Button_1_ID" class="DLP_HStack_8" style="justify-content: center; align-items: center;">
<div class="DLP_VStack_0" style="align-items: flex-start; flex: 1 0 0;">
<p class="DLP_Text_Style_1">Reduce Processing Intensive Effects</p>
<p class="DLP_Text_Style_1" style="color: rgb(var(--color-wolf), 0.4);">Reduce processing intensive effects by disabling confetti, starfield and other visual animations.</p>
</div>
<div id="DLP_Inset_Toggle_1_ID" class="DLP_Toggle_Style_1 DLP_Hover_1">
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: #FFF;"></p>
</div>
</div>
<div id="DLP_Settings_Free_Local_Super_Button_1_ID" class="DLP_HStack_8" style="justify-content: center; align-items: center;">
<div class="DLP_VStack_0" style="align-items: flex-start; flex: 1 0 0;">
<p class="DLP_Text_Style_1">Free On-Client Duolingo Max</p>
<p class="DLP_Text_Style_1" style="color: rgb(var(--color-wolf), 0.4);">Skip the worry of running out of hearts, get free entry to legendary challenges, access to personalized practice, and learn without ads. Only works on-client.</p>
</div>
<div id="DLP_Inset_Toggle_1_ID" class="DLP_Toggle_Style_1 DLP_Hover_1">
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: #FFF;"></p>
</div>
</div>
<div id="DLP_Settings_Show_Super_Trial_Button_1_ID" class="DLP_HStack_8" style="justify-content: center; align-items: center;">
<div class="DLP_VStack_0" style="align-items: flex-start; flex: 1 0 0;">
<p class="DLP_Text_Style_1">Show Super Duolingo Trial Function</p>
<p class="DLP_Text_Style_1" style="color: rgb(var(--color-wolf), 0.4);">This function rarely works and is currently being deprecated. We recommend you to use Free Duolingo Max instead.</p>
</div>
<div id="DLP_Inset_Toggle_1_ID" class="DLP_Toggle_Style_1 DLP_Hover_1">
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: #FFF;"></p>
</div>
</div>
<div id="DLP_Settings_Auto_Update_Toggle_1_ID" class="DLP_HStack_8" style="justify-content: center; align-items: center; opacity: 0.5; pointer-events: none; cursor: not-allowed; display: none;">
<div class="DLP_VStack_0" style="align-items: flex-start; flex: 1 0 0;">
<p class="DLP_Text_Style_1">${systemText[systemLanguage][34]}</p>
<p class="DLP_Text_Style_1" style="color: rgb(var(--color-wolf), 0.4);">${systemText[systemLanguage][35]}</p>
</div>
<div id="DLP_Inset_Toggle_1_ID" class="DLP_Toggle_Style_1 DLP_Hover_1">
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: #FFF;"></p>
</div>
</div>
<div id="DLP_Settings_Modern_Stats_Main_Box_1_ID" class="DLP_VStack_6" style="background: rgba(var(--DLP-blue), 0.10); outline: 2px solid rgba(var(--DLP-blue), 0.20); outline-offset: -2px; padding: 16px; border-radius: var(--DLP-corner-r-m); corner-shape: var(--DLP-corner-s);">
<div style="display: flex; align-self: stretch; justify-content: space-between; align-items: center;">
<p class="DLP_Text_Style_1" style="color: rgb(var(--DLP-blue));">3.1 Stats</p>
<p class="DLP_Text_Style_1" style="color: rgba(var(--DLP-blue), 0.5);"></p>
</div>
<div style="display: flex; align-self: stretch; justify-content: space-between; align-items: center;">
<p class="DLP_Text_Style_1" style="color: rgba(var(--DLP-blue), 0.5);">XP Gained:</p>
<p class="DLP_Text_Style_1" style="color: rgba(var(--DLP-blue), 0.5);"></p>
</div>
<div style="display: flex; align-self: stretch; justify-content: space-between; align-items: center;">
<p class="DLP_Text_Style_1" style="color: rgba(var(--DLP-blue), 0.5);">Gems Gained:</p>
<p class="DLP_Text_Style_1" style="color: rgba(var(--DLP-blue), 0.5);"></p>
</div>
<div style="display: flex; align-self: stretch; justify-content: space-between; align-items: center;">
<p class="DLP_Text_Style_1" style="color: rgba(var(--DLP-blue), 0.5);">Streak Gained:</p>
<p class="DLP_Text_Style_1" style="color: rgba(var(--DLP-blue), 0.5);"></p>
</div>
<div style="display: flex; align-self: stretch; justify-content: space-between; align-items: center;">
<p class="DLP_Text_Style_1" style="color: rgba(var(--DLP-blue), 0.5);">Heart Refills Requested:</p>
<p class="DLP_Text_Style_1" style="color: rgba(var(--DLP-blue), 0.5);"></p>
</div>
<div style="display: flex; align-self: stretch; justify-content: space-between; align-items: center;">
<p class="DLP_Text_Style_1" style="color: rgba(var(--DLP-blue), 0.5);">Streak Freezes Requested:</p>
<p class="DLP_Text_Style_1" style="color: rgba(var(--DLP-blue), 0.5);"></p>
</div>
<div style="display: flex; align-self: stretch; justify-content: space-between; align-items: center;">
<p class="DLP_Text_Style_1" style="color: rgba(var(--DLP-blue), 0.5);">Double XP Boosts Requested:</p>
<p class="DLP_Text_Style_1" style="color: rgba(var(--DLP-blue), 0.5);"></p>
</div>
<div style="display: flex; align-self: stretch; justify-content: space-between; align-items: center;">
<p class="DLP_Text_Style_1" style="color: rgba(var(--DLP-blue), 0.5);">Quest Completes Requested:</p>
<p class="DLP_Text_Style_1" style="color: rgba(var(--DLP-blue), 0.5);"></p>
</div>
</div>
<div id="DLP_Settings_Legacy_Stats_Main_Box_1_ID" class="DLP_VStack_6" style="background: rgba(var(--DLP-blue), 0.10); outline: 2px solid rgba(var(--DLP-blue), 0.20); outline-offset: -2px; padding: 16px; border-radius: var(--DLP-corner-r-m); corner-shape: var(--DLP-corner-s);">
<div style="display: flex; align-self: stretch; justify-content: space-between; align-items: center;">
<p class="DLP_Text_Style_1" style="color: rgb(var(--DLP-blue));">Legacy Mode Stats</p>
<p class="DLP_Text_Style_1" style="color: rgba(var(--DLP-blue), 0.5);"></p>
</div>
<div style="display: flex; align-self: stretch; justify-content: space-between; align-items: center;">
<p class="DLP_Text_Style_1" style="color: rgba(var(--DLP-blue), 0.5);">Lessons Solved:</p>
<p class="DLP_Text_Style_1" style="color: rgba(var(--DLP-blue), 0.5);"></p>
</div>
<div style="display: flex; align-self: stretch; justify-content: space-between; align-items: center;">
<p class="DLP_Text_Style_1" style="color: rgba(var(--DLP-blue), 0.5);">Questions Solved:</p>
<p class="DLP_Text_Style_1" style="color: rgba(var(--DLP-blue), 0.5);"></p>
</div>
</div>
</div>
</div>
<div class="DLP_HStack_8">
<div id="DLP_Settings_Save_Button_1_ID" class="DLP_Button_Style_2 DLP_Magnetic_Hover_1" style="outline: 2px solid rgba(0, 0, 0, 0.20); outline-offset: -2px; background: rgb(var(--DLP-blue));">
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Text_1_ID" style="color: #FFF;">${systemText[systemLanguage][37]}</p>
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: #FFF;"></p>
</div>
</div>
</div>
</div>
<div clas="DLP_Main_Box_Divider" id="DLP_Main_Box_Divider_8_ID" style="display: none;">
<div class="DLP_VStack_8">
<div class="DLP_HStack_Auto_Top">
<div id="DLP_Universal_Back_1_Button_1_ID" class="DLP_HStack_4 DLP_Hover_1" style="background: url(${serverURL}/static/images/flow/primary/256/light.png) center / cover no-repeat; -webkit-background-clip: text; background-clip: text; color: transparent;">
<p class="DLP_Text_Style_2 DLP_NoSelect" style="font-size: 20px; color: inherit;"></p>
<p class="DLP_Text_Style_2 DLP_NoSelect" style="color: inherit;">${systemText[systemLanguage][38]}</p>
</div>
<p class="DLP_Text_Style_1 DLP_NoSelect" style="font-size: 14px; background: url(${serverURL}/static/images/flow/secondary/256/light.png) lightgray 50% / cover no-repeat; background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent;">${VERSION_NAME}</p>
</div>
<div class="DLP_VStack_4" style="padding: 16px; border-radius: var(--DLP-corner-r-m); corner-shape: var(--DLP-corner-s); outline: 2px solid rgba(var(--DLP-blue), 0.20); outline-offset: -2px; background: rgba(var(--DLP-blue), 0.10); box-sizing: border-box;">
<div class="DLP_HStack_4">
<p class="DLP_Text_Style_1 DLP_NoSelect" style="color: rgb(var(--DLP-blue));"></p>
<p class="DLP_Text_Style_1 DLP_NoSelect" style="align-self: stretch; color: rgb(var(--DLP-blue));">Need Support?</p>
</div>
<p class="DLP_Text_Style_1 DLP_NoSelect" style="align-self: stretch; color: rgba(var(--DLP-blue), 0.5);">Get help from our <a href='${serverURL}/faq' target='_blank' class='DLP_Link_Style_1'>FAQ page</a>, enhanced with AI, or join our <a href='${serverURL}/discord' target='_blank' class='DLP_Link_Style_1'>Discord server</a> and talk with the devs.</p>
</div>
<p class="DLP_Text_Style_1 DLP_NoSelect" style="align-self: stretch;">${systemText[systemLanguage][39]}</p>
<textarea id="DLP_Feedback_Text_Input_1_ID" class="DLP_Large_Input_Box_Style_1" style="height: 128px; max-height: 256px;" placeholder="${systemText[systemLanguage][40]}"/></textarea>
<p class="DLP_Text_Style_1 DLP_NoSelect" style="align-self: stretch;">${systemText[systemLanguage][41]}</p>
<div class="DLP_HStack_8">
<div id="DLP_Feedback_Type_Bug_Report_Button_1_ID" class="DLP_Button_Style_2 DLP_Magnetic_Hover_1 DLP_Feedback_Type_Button_Style_1_OFF" style="transition: background 0.4s, outline 0.4s, filter 0.4s cubic-bezier(0.16, 1, 0.32, 1), transform 0.4s cubic-bezier(0.16, 1, 0.32, 1);">
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="transition: 0.4s;"></p>
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Text_1_ID" style="transition: 0.4s;">${systemText[systemLanguage][42]}</p>
</div>
<div id="DLP_Feedback_Type_Suggestion_Button_1_ID" class="DLP_Button_Style_2 DLP_Magnetic_Hover_1 DLP_Feedback_Type_Button_Style_2_ON" style="transition: background 0.4s, outline 0.4s, filter 0.4s cubic-bezier(0.16, 1, 0.32, 1), transform 0.4s cubic-bezier(0.16, 1, 0.32, 1);">
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="transition: 0.4s;"></p>
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Text_1_ID" style="transition: 0.4s;">${systemText[systemLanguage][43]}</p>
</div>
</div>
<p class="DLP_Text_Style_1 DLP_NoSelect" style="align-self: stretch;">${systemText[systemLanguage][44]}</p>
<div class="DLP_HStack_8">
<div id="DLP_Feedback_Attachment_Upload_Button_1_ID" class="DLP_Button_Style_2 DLP_Magnetic_Hover_1" style="outline: 2px solid rgba(var(--DLP-blue), 0.20); outline-offset: -2px; background: rgba(var(--DLP-blue), 0.10); transition: background 0.4s, outline 0.4s, filter 0.4s cubic-bezier(0.16, 1, 0.32, 1), transform 0.4s cubic-bezier(0.16, 1, 0.32, 1);">
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Text_1_ID" style="color: rgb(var(--DLP-blue)); transition: 0.4s;">${systemText[systemLanguage][45]}</p>
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: rgb(var(--DLP-blue));"></p>
</div>
</div>
<input type="file" accept="image/png, image/jpg, image/jpeg, video/mp4, image/gif, video/mov, video/webm" id="DLP_Feedback_Attachment_Input_Hidden_1_ID" style="display: none;"/>
<div class="DLP_HStack_8">
<div id="DLP_Feedback_Send_Button_1_ID" class="DLP_Button_Style_2 DLP_Magnetic_Hover_1" style="outline: 2px solid rgba(0, 0, 0, 0.20); outline-offset: -2px; background: rgb(var(--DLP-blue));">
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Text_1_ID" style="color: #FFF;">${systemText[systemLanguage][47]}</p>
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: #FFF;"></p>
</div>
</div>
</div>
</div>
<div class="DLP_Main_Box_Divider" id="DLP_Main_Box_Divider_9_ID" style="display: none;">
<div class="DLP_VStack_8">
<div class="DLP_HStack_Auto_Top">
<p class="DLP_Text_Style_2 DLP_NoSelect" style="background: url(${serverURL}/static/images/flow/primary/256/light.png) lightgray 50% / cover no-repeat; background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent; display: none;">${systemText[systemLanguage][48]}</p>
<div id="DLP_Universal_Back_1_Button_1_ID" class="DLP_HStack_4 DLP_Hover_1" style="background: url(${serverURL}/static/images/flow/primary/256/light.png) center / cover no-repeat; -webkit-background-clip: text; background-clip: text; color: transparent;">
<p class="DLP_Text_Style_2 DLP_NoSelect" style="font-size: 20px; color: inherit;"></p>
<p class="DLP_Text_Style_2 DLP_NoSelect" style="color: inherit;">${systemText[systemLanguage][48]}</p>
</div>
<p class="DLP_Text_Style_1 DLP_NoSelect" style="font-size: 14px; background: url(${serverURL}/static/images/flow/secondary/256/light.png) lightgray 50% / cover no-repeat; background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent;">${VERSION_NAME}</p>
</div>
<div class="DLP_VStack_8" id="DLP_Release_Notes_List_1_ID" style="height: 256px;"></div>
<div class="DLP_HStack_8" id="DLP_Release_Notes_Controls_1_ID">
<div class="DLP_Button_Style_2 DLP_Magnetic_Hover_1" id="DLP_Inset_Button_1_ID" style="outline: 2px solid rgba(var(--DLP-blue), 0.20); outline-offset: -2px; background: linear-gradient(0deg, rgba(var(--DLP-blue), 0.10) 0%, rgba(var(--DLP-blue), 0.10) 100%), rgba(var(--color-snow), 0.80); backdrop-filter: blur(16px);">
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Text_1_ID" style="color: rgb(var(--DLP-blue));"></p>
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: rgb(var(--DLP-blue));">PREVIOUS</p>
</div>
<div class="DLP_Button_Style_2" id="DLP_Inset_Label_1_ID" style="outline: 2px solid rgba(var(--DLP-blue), 0.20); outline-offset: -2px; background: linear-gradient(0deg, rgba(var(--DLP-blue), 0.10) 0%, rgba(var(--DLP-blue), 0.10) 100%), rgba(var(--color-snow), 0.80); backdrop-filter: blur(16px); flex: 0; padding: 0 16px;">
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Text_1_ID" style="color: rgb(var(--DLP-blue)); font-variant: tabular-nums;"></p>
</div>
<div class="DLP_Button_Style_2 DLP_Magnetic_Hover_1" id="DLP_Inset_Button_2_ID" style="outline: rgba(0, 0, 0, 0.2) solid 2px; outline-offset: -2px; background: rgb(var(--DLP-blue));">
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Text_1_ID" style="color: #FFF;">NEXT</p>
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: #FFF;"></p>
</div>
</div>
</div>
</div>
<div class="DLP_Main_Box_Divider" id="DLP_Main_Box_Divider_10_ID" style="display: none;">
<div class="DLP_VStack_8">
<div class="DLP_VStack_8" style="padding: 8px 0; max-width: 312px; align-self: center;">
<div class="DLP_VStack_0">
<p class="DLP_Text_Style_1 DLP_NoSelect" style="font-size: 14px; background: url(${serverURL}/static/images/flow/secondary/256/light.png) lightgray 50% / cover no-repeat; background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent;">${systemText[systemLanguage][52]}</p>
<div class="DLP_HStack_4" style="align-self: auto;">
<p class="DLP_Text_Style_2 DLP_NoSelect">Duolingo</p>
<p class="DLP_Text_Style_2 DLP_NoSelect" style="background: url(${serverURL}/static/images/flow/primary/256/light.png) lightgray 50% / cover no-repeat; background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent;">PRO 3.1</p>
</div>
</div>
<p class="DLP_Text_Style_1" style="align-self: stretch; text-align: center;">${systemText[systemLanguage][53]}</p>
<p class="DLP_Text_Style_1" style="align-self: stretch; text-align: center;">${systemText[systemLanguage][61]}</p>
</div>
<div class="DLP_HStack_8">
<div id="DLP_Onboarding_Start_Button_1_ID" class="DLP_Button_Style_2 DLP_Magnetic_Hover_1" style="outline: 2px solid rgba(0, 0, 0, 0.20); outline-offset: -2px; background: rgb(var(--DLP-blue));">
<p class="DLP_Text_Style_1 DLP_NoSelect" style="color: #FFF;">${systemText[systemLanguage][54]}</p>
<p class="DLP_Text_Style_1 DLP_NoSelect" style="color: #FFF;"></p>
</div>
</div>
</div>
</div>
<div class="DLP_Main_Box_Divider" id="DLP_Main_Box_Divider_11_ID" style="display: none;">
<div class="DLP_VStack_8" style="height: 640px; max-height: calc(100vh - 220px);">
<div class="DLP_HStack_Auto_Top">
<div id="DLP_Universal_Back_1_Button_1_ID" class="DLP_HStack_4 DLP_Hover_1" style="background: url(${serverURL}/static/images/flow/primary/256/light.png) center / cover no-repeat; -webkit-background-clip: text; background-clip: text; color: transparent;">
<p class="DLP_Text_Style_2 DLP_NoSelect" style="font-size: 20px; color: inherit;"></p>
<p class="DLP_Text_Style_2 DLP_NoSelect" style="color: inherit;">Support</p>
</div>
<p class="DLP_Text_Style_1 DLP_NoSelect" style="font-size: 14px; background: url(${serverURL}/static/images/flow/secondary/256/light.png) lightgray 50% / cover no-repeat; background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent;">${VERSION_NAME}</p>
</div>
<div class="DLP_VStack_8" style="height: 100%;">
<div id="DLP_Inset_Card_1" style="display: flex; padding: 16px; flex-direction: column; justify-content: flex-start; align-items: flex-start; gap: 4px; align-self: stretch; border-radius: var(--DLP-corner-r-m); corner-shape: var(--DLP-corner-s); outline: 2px solid rgba(var(--DLP-blue), 0.20); outline-offset: -2px; background: rgba(var(--DLP-blue), 0.10); overflow: hidden; transition: all 0.4s cubic-bezier(0.16, 1, 0.32, 1); display: none;">
<div class="DLP_HStack_6">
<p class="DLP_Text_Style_1 DLP_NoSelect" style="color: rgb(var(--DLP-blue));"></p>
<p class="DLP_Text_Style_1 DLP_NoSelect" style="color: rgb(var(--DLP-blue)); flex: 1 0 0;">Response Times</p>
<p class="DLP_Text_Style_1 DLP_NoSelect" style="color: rgb(var(--DLP-blue));"></p>
</div>
<p class="DLP_Text_Style_1 DLP_NoSelect" style="align-self: stretch; color: rgba(var(--DLP-blue), 0.8); display: none; opacity: 0; filter: blur(4px); height: 0px; transition: 0.4s cubic-bezier(0.16, 1, 0.32, 1);">It may take a few hours for a developer to respond to you. You will be notified in Duolingo PRO when there's a reply.</p>
</div>
<div class="DLP_Chat_Box_1_ID_1" style="display: flex; flex-direction: column; align-items: center; gap: 8px; flex: 1 0 0; align-self: stretch; overflow-y: auto; margin: 0 -16px; padding: 0 16px; display: none;">
<div class="DLP_Chat_Spacer"></div>
</div>
<div class="DLP_VStack_8" id="DLP_Inset_Group_5" style="padding: 0px 32px; flex: 1 0 0;">
<p class="DLP_Text_Style_1 DLP_NoSelect" style="background: url(${serverURL}/static/images/flow/primary/256/light.png) lightgray 50% / cover no-repeat; background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent; font-size: 24px;"></p>
<p class="DLP_Text_Style_1 DLP_NoSelect" style="align-self: stretch; text-align: center;">Send a message to start talking with a support member.</p>
</div>
<div class="DLP_VStack_8" id="DLP_Inset_Group_2" style="display: none;">
<div id="DLP_Inset_Card_2" style="display: flex; padding: 16px; flex-direction: column; justify-content: flex-start; align-items: flex-start; gap: 4px; align-self: stretch; border-radius: var(--DLP-corner-r-m); corner-shape: var(--DLP-corner-s); outline: 2px solid rgba(var(--DLP-blue), 0.20); outline-offset: -2px; background: rgba(var(--DLP-blue), 0.10); overflow: hidden; transition: all 0.4s cubic-bezier(0.16, 1, 0.32, 1);">
<div class="DLP_HStack_6">
<p class="DLP_Text_Style_1 DLP_NoSelect" style="color: rgb(var(--DLP-blue));"></p>
<p class="DLP_Text_Style_1 DLP_NoSelect" style="color: rgb(var(--DLP-blue)); flex: 1 0 0;">This chat was closed.</p>
</div>
<p class="DLP_Text_Style_1 DLP_NoSelect" style="align-self: stretch; color: rgba(var(--DLP-blue), 0.5);">We hope to have solved your issue. If not, you can start a new chat.</p>
</div>
<div class="DLP_Input_Button_Style_1_Active DLP_Magnetic_Hover_1" id="DLP_Inset_Button_3_ID" style="width: 100%;">
<p class="DLP_Text_Style_1 DLP_NoSelect" style="color: #FFF;">Start a New Chat</p>
<p class="DLP_Text_Style_1 DLP_NoSelect" style="color: #FFF;"></p>
</div>
</div>
<div class="DLP_VStack_8" id="DLP_Inset_Group_1">
<div id="DLP_Attachment_Preview_Parent" class="DLP_Row DLP_Left DLP_Gap_8" style="width: 100%; overflow-y: scroll; display: none;">
<div class="DLP_Attachment_Box_Drop_1 DLP_Fill_Col" style="height: 128px; display: none;">
<div class="DLP_Row DLP_Gap_6" style="opacity: 0.5;">
<p class="DLP_Text_Style_1 DLP_NoSelect" style="color: rgb(var(--DLP-blue));"></p>
<p class="DLP_Text_Style_1 DLP_NoSelect" style="color: rgb(var(--DLP-blue));">Drop here to attach</p>
</div>
</div>
</div>
<div class="DLP_HStack_8" style="align-items: flex-end;">
<div class="DLP_Input_Button_Style_1_Active DLP_Magnetic_Hover_1 DLP_Hide_Scrollbar" id="DLP_Inset_Button_1_ID" style="width: 48px; background: rgba(var(--DLP-blue), 0.10); outline-offset: -2px; outline: 2px solid rgba(var(--DLP-blue), 0.20);">
<p class="DLP_Text_Style_1 DLP_NoSelect" style="color: rgb(var(--DLP-blue));"></p>
<input type="file" id="DLP_Attachment_Input_1" accept="image/*, video/*" multiple style="display: none;">
</div>
<div class="DLP_Input_Style_1_Active" style="padding: 0;">
<textarea type="text" placeholder="Type here..." id="DLP_Inset_Input_1_ID" class="DLP_Input_Style_1 DLP_Hide_Scrollbar" style="padding: 16px; box-sizing: content-box; overflow: scroll;"></textarea>
</div>
<div class="DLP_Input_Button_Style_1_Active DLP_Magnetic_Hover_1" id="DLP_Inset_Button_2_ID" style="width: 48px;">
<p class="DLP_Text_Style_1 DLP_NoSelect" style="color: #FFF;"></p>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="DLP_Main_Box_Divider" id="DLP_Main_Box_Divider_12_ID" style="display: none;">
<div class="DLP_VStack_8">
<div class="DLP_HStack_Auto_Top">
<p class="DLP_Text_Style_2 DLP_NoSelect" style="background: url(${serverURL}/static/images/flow/primary/256/light.png) lightgray 50% / cover no-repeat; background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent;">${systemText[systemLanguage][32]}</p>
<p class="DLP_Text_Style_1 DLP_NoSelect" style="font-size: 14px; background: url(${serverURL}/static/images/flow/secondary/256/light.png) lightgray 50% / cover no-repeat; background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent;">${VERSION_NAME}</p>
</div>
<div class="DLP_VStack_8" id="DLP_Onboarding_Setup_List_1_ID" style="height: 256px;">
<div id="setting-0" style="display: flex; flex-direction: column; justify-content: center; align-items: flex-start; gap: 8px; align-self: stretch; transition: filter 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94), opacity 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);">
<div class="DLP_HStack_12">
<div style="display: flex; flex-direction: column; align-items: flex-start; gap: 8px; flex: 1 0 0;">
<img height="28" src="https://d35aaqx5ub95lt.cloudfront.net/images/max/928d0b52c29baf3b499d937c0ef85d06.svg" style="margin: 4px 0;" class="DLP_NoSelect">
<p class="DLP_Text_Style_2" style="align-self: stretch;">Duolingo Max</p>
</div>
<div id="DLP_Inset_Toggle_1_ID" class="DLP_Toggle_Style_1 DLP_Hover_1">
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: rgb(255, 255, 255);"></p>
</div>
</div>
<p class="DLP_Text_Style_1">Skip the worry of running out of hearts, get free entry to legendary challenges, access to personalized practice, and learn without ads. Do not turn on if you already have Super Duolingo or Max.</p>
</div>
<div id="setting-1" style="display: none; flex-direction: column; justify-content: center; align-items: flex-start; gap: 8px; align-self: stretch; transition: filter 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94), opacity 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);">
<div class="DLP_HStack_12">
<div style="display: flex; flex-direction: column; align-items: flex-start; gap: 8px; flex: 1 0 0;">
<p class="DLP_Text_Style_2 DLP_NoSelect" style="font-size: 32px; background: url(${serverURL}/static/images/flow/primary/256/light.png) lightgray 0% / cover no-repeat; background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent;"></p>
<p class="DLP_Text_Style_2" style="align-self: stretch;">Help Improve Duolingo PRO</p>
</div>
<div id="DLP_Inset_Toggle_1_ID" class="DLP_Toggle_Style_1 DLP_Hover_1" style="${alpha ? 'opacity: 0.5; pointer-events: none; cursor: not-allowed;' : ''}">
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: rgb(255, 255, 255);"></p>
</div>
</div>
<p class="DLP_Text_Style_1">Allow Duolingo PRO to automatically send anonymous bug reports and usage data to help us improve the script.</p>
</div>
</div>
<div class="DLP_HStack_8" id="DLP_Onboarding_Setup_Controls_1_ID">
<div class="DLP_Button_Style_2 DLP_Magnetic_Hover_1" id="DLP_Inset_Button_1_ID" style="outline: 2px solid rgba(var(--DLP-blue), 0.20); outline-offset: -2px; background: linear-gradient(0deg, rgba(var(--DLP-blue), 0.10) 0%, rgba(var(--DLP-blue), 0.10) 100%), rgba(var(--color-snow), 0.80); backdrop-filter: blur(16px);">
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Text_1_ID" style="color: rgb(var(--DLP-blue));"></p>
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: rgb(var(--DLP-blue));">PREVIOUS</p>
</div>
<div class="DLP_Button_Style_2 DLP_Magnetic_Hover_1" id="DLP_Inset_Button_2_ID" style="outline: rgba(0, 0, 0, 0.2) solid 2px; outline-offset: -2px; background: rgb(var(--DLP-blue));">
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Text_1_ID" style="color: #FFF;">NEXT</p>
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: #FFF;"></p>
</div>
</div>
</div>
</div>
</div>
</div>
`;
CSS2 = `
.DLP_NoSelect {
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.DLP_Text_Style_1 {
font-family: "Duolingo PRO Rounded";
font-size: 16px;
font-style: normal;
font-weight: 600;
line-height: normal;
color: rgb(var(--color-wolf), 0.8);
margin: 0;
-webkit-font-smoothing: antialiased;
}
.DLP_Text_Style_2 {
font-family: "Duolingo PRO Rounded";
font-size: 24px;
font-style: normal;
font-weight: 600;
line-height: normal;
margin: 0;
-webkit-font-smoothing: antialiased;
}
.DLP_Text_Style_1 strong,
.DLP_Text_Style_1 em,
.DLP_Text_Style_1 u,
.DLP_Text_Style_1 s,
.DLP_Text_Style_1 span {
font-family: inherit;
font-size: inherit;
line-height: inherit;
font-style: inherit;
font-weight: inherit;
}
.DLP_Text_Style_1 strong {
font-weight: 800;
}
.DLP_Text_Style_1 em {
font-style: italic;
}
.DLP_Text_Style_1 u {
text-decoration: underline;
}
.DLP_Text_Style_1 s {
text-decoration: line-through;
}
.DLP_Text_Style_1 a,
.DLP_Link_Style_1 {
font-family: "Duolingo PRO Rounded";
font-size: 16px;
font-style: normal;
font-weight: 600;
line-height: normal;
text-decoration: underline;
color: rgb(var(--DLP-blue));
margin: 0;
-webkit-font-smoothing: antialiased;
}
.DLP_Mention_Style_1 {
display: inline-flex;
align-items: center;
padding: 0 2px;
border-radius: var(--DLP-corner-r-s);
corner-shape: var(--DLP-corner-s);
background: rgba(var(--color-wolf), 0.2);
color: rgb(var(--color-wolf));
font-family: "Duolingo PRO Rounded";
font-size: 16px;
font-style: normal;
font-weight: 600;
line-height: normal;
margin: 0;
-webkit-font-smoothing: antialiased;
}
.DLP_Magnetic_Hover_1 {
transition: filter 0.4s cubic-bezier(0.16, 1, 0.32, 1), transform 0.4s cubic-bezier(0.16, 1, 0.32, 1);
cursor: pointer;
}
.DLP_Magnetic_Hover_1:hover {
filter: brightness(0.9);
transform: scale(1.05);
}
.DLP_Magnetic_Hover_1:active {
filter: brightness(0.9);
transform: scale(0.9);
}
.DLP_Hover_1 {
transition: filter 0.4s cubic-bezier(0.16, 1, 0.32, 1);
cursor: pointer;
}
.DLP_Hover_1:hover {
filter: brightness(0.9);
}
.DLP_Hover_1:active {
filter: brightness(0.9);
}
.DLP_Row {
display: flex;
flex-direction: row;
}
.DLP_Col {
display: flex;
flex-direction: column;
}
.DLP_Auto {
justify-content: space-between;
}
.DLP_Hug {
justify-content: center;
}
.DLP_Fill_Row {
align-self: stretch;
}
.DLP_Fill_Col {
flex: 1 0 0;
}
.DLP_Left {
justify-content: flex-start;
}
.DLP_Right {
justify-content: flex-end;
}
.DLP_Top {
align-items: flex-start;
}
.DLP_Center {
align-items: center;
}
.DLP_Bottom {
align-items: flex-end;
}
.DLP_Gap_0 {
gap: 0px;
}
.DLP_Gap_2 {
gap: 2px;
}
.DLP_Gap_4 {
gap: 4px;
}
.DLP_Gap_6 {
gap: 6px;
}
.DLP_Gap_8 {
gap: 8px;
}
.DLP_Gap_12 {
gap: 12px;
}
.DLP_Gap_16 {
gap: 16px;
}
.DLP_Gap_24 {
gap: 24px;
}
.DLP_Gap_32 {
gap: 32px;
}
.DLP_Main {
display: inline-flex;
flex-direction: column;
justify-content: flex-end;
align-items: flex-end;
gap: 8px;
position: fixed;
right: 16px;
bottom: 16px;
z-index: 2;
}
@media (max-width: 699px) {
.DLP_Main {
display: inline-flex;
flex-direction: column;
justify-content: flex-end;
align-items: flex-end;
gap: 8px;
position: fixed;
right: 16px;
bottom: 16px;
z-index: 2;
margin-bottom: 80px;
}
}
.DLP_Main_Box {
display: flex;
width: 312px;
padding: 16px;
box-sizing: border-box;
flex-direction: column;
justify-content: center;
align-items: center;
gap: 8px;
overflow: hidden;
border-radius: var(--DLP-corner-r-xl);
corner-shape: var(--DLP-corner-s);
outline: 2px solid rgb(var(--color-eel), 0.10);
outline-offset: -2px;
background: rgb(var(--color-snow), 0.90);
backdrop-filter: blur(16px);
}
.DLP_Main_Box_Divider {
display: flex;
box-sizing: border-box;
flex-direction: column;
justify-content: center;
align-items: center;
gap: 8px;
width: 100%;
}
svg {
flex-shrink: 0;
}
.DLP_HStack_Auto {
display: flex;
align-items: center;
justify-content: space-between;
align-self: stretch;
}
.DLP_HStack_Auto_Top {
display: flex;
align-items: flex-start;
justify-content: space-between;
align-self: stretch;
}
.DLP_HStack_0 {
display: flex;
align-items: center;
gap: 0;
align-self: stretch;
}
.DLP_HStack_2 {
display: flex;
align-items: center;
gap: 2px;
align-self: stretch;
}
.DLP_HStack_4 {
display: flex;
align-items: center;
gap: 4px;
align-self: stretch;
}
.DLP_HStack_6 {
display: flex;
align-items: center;
gap: 6px;
align-self: stretch;
}
.DLP_HStack_8 {
display: flex;
align-items: center;
gap: 8px;
align-self: stretch;
}
.DLP_HStack_12 {
display: flex;
align-items: center;
gap: 12px;
align-self: stretch;
}
.DLP_VStack_0 {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
gap: 0;
align-self: stretch;
}
.DLP_VStack_2 {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
gap: 2px;
align-self: stretch;
}
.DLP_VStack_4 {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
gap: 4px;
align-self: stretch;
}
.DLP_VStack_6 {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
gap: 6px;
align-self: stretch;
}
.DLP_VStack_8 {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
gap: 8px;
align-self: stretch;
}
.DLP_VStack_12 {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
gap: 12px;
align-self: stretch;
}
.DLP_Chat_Spacer {
flex: 1 1 0;
min-height: 0;
margin-top: -8px;
align-self: stretch;
pointer-events: none;
}
.DLP_Hide_Scrollbar {
scrollbar-width: none;
-ms-overflow-style: none;
}
.DLP_Hide_Scrollbar::-webkit-scrollbar {
display: none;
}
.DLP_Button_Style_1 {
display: flex;
height: 40px;
padding: 10px 12px 10px 10px;
box-sizing: border-box;
align-items: center;
gap: 6px;
flex: 1 0 0;
border-radius: var(--DLP-corner-r-m);
corner-shape: var(--DLP-corner-s);
}
.DLP_Input_Style_1 {
border: none;
outline: none;
background: none;
font-family: "Duolingo PRO Rounded";
font-size: 16px;
font-style: normal;
font-weight: 600;
line-height: normal;
color: rgb(var(--DLP-blue));
width: 100%;
width: 100%; /* Full width */
height: auto; /* Let the height be controlled dynamically */
min-height: 1.2em; /* Set minimum height for one line */
max-height: calc(1.2em * 5); /* Limit to 5 lines */
line-height: 1.2em; /* Adjust the line height */
overflow-y: hidden; /* Hide vertical scrollbar */
resize: none; /* Prevent manual resizing */
padding: 0; /* Remove padding to eliminate extra space */
margin: 0; /* Remove margin to eliminate extra space */
box-sizing: border-box; /* Include padding in height calculation */
}
.DLP_Input_Style_1::placeholder {
color: rgba(var(--DLP-blue), 0.50);
}
.DLP_Input_Input_Style_1 {
border: none;
outline: none;
padding: 0;
margin: 0;
background: none;
text-align: right;
font-family: "Duolingo PRO Rounded";
font-size: 16px;
font-style: normal;
font-weight: 600;
line-height: normal;
color: rgb(var(--DLP-blue));
width: 100%;
}
.DLP_Input_Input_Style_1::placeholder {
color: rgba(var(--DLP-blue), 0.50);
}
.DLP_Input_Style_1_Active {
display: flex;
height: 48px;
padding: 16px;
box-sizing: border-box;
align-items: center;
flex: 1 0 0;
gap: 6px;
border-radius: var(--DLP-corner-r-m);
corner-shape: var(--DLP-corner-s);
outline: 2px solid rgba(var(--DLP-blue), 0.20);
outline-offset: -2px;
background: rgba(var(--DLP-blue), 0.10);
}
.DLP_Input_Button_Style_1_Active {
display: flex;
height: 48px;
padding: 12px 12px 12px 14px;
box-sizing: border-box;
justify-content: center;
align-items: center;
gap: 6px;
border-radius: var(--DLP-corner-r-m);
corner-shape: var(--DLP-corner-s);
outline: 2px solid rgba(0, 0, 0, 0.20);
outline-offset: -2px;
background: rgb(var(--DLP-blue));
}
@keyframes DLP_Rotate_360_Animation_1 {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
@keyframes DLP_Pulse_Opacity_Animation_1 {
0% {
opacity: 1;
}
16.66666666% {
opacity: 0.75;
}
33.33333333% {
opacity: 1;
}
100% {
opacity: 1;
}
}
@keyframes DLP_Pulse_Opacity_Animation_2 {
0% {
opacity: 0.75;
}
50% {
opacity: 0.5;
}
100% {
opacity: 0.75;
}
}
.DLP_Scroll_Box_Style_1 {
display: flex;
height: 100%;
padding: 14px 16px;
box-sizing: border-box;
justify-content: center;
align-items: flex-start;
gap: 8px;
align-self: stretch;
border-radius: var(--DLP-corner-r-m);
corner-shape: var(--DLP-corner-s);
outline: 2px solid rgb(var(--color-eel), 0.10);
outline-offset: -2px;
background: rgb(var(--color-snow), 0.90);
position: relative;
}
.DLP_Scroll_Box_Text_Style_1 {
font-family: "Duolingo PRO Rounded";
font-size: 16px;
font-style: normal;
font-weight: 600;
line-height: normal;
color: rgb(var(--color-wolf));
margin: 0;
overflow-y: scroll;
overflow-x: hidden;
position: absolute;
top: 0;
bottom: 0;
right: 16px;
left: 16px;
padding-top: 16px;
padding-bottom: 16px;
}
.DLP_Scroll_Box_Text_Style_1::-webkit-scrollbar {
transform: translateX(16px);
}
.DLP_Button_Style_2 {
display: flex;
height: 48px;
box-sizing: border-box;
justify-content: center;
align-items: center;
gap: 6px;
flex: 1 0 0;
border-radius: var(--DLP-corner-r-m);
corner-shape: var(--DLP-corner-s);
}
.DLP_Toggle_Style_1 {
display: flex;
width: 48px;
height: 32px;
padding: 0px 6px;
justify-content: center;
align-items: center;
border-radius: 16px;
outline: 2px solid rgba(var(--color-black-white), 0.20);
outline-offset: -2px;
transition: transform 0.4s cubic-bezier(0.16, 1, 0.32, 1);
}
.DLP_Toggle_Style_1 p {
transition: transform 0.4s cubic-bezier(0.16, 1, 0.32, 1);
}
.DLP_Large_Input_Box_Style_1 {
display: flex;
padding: 16px;
box-sizing: border-box;
justify-content: center;
align-items: flex-start;
align-self: stretch;
border-radius: var(--DLP-corner-r-m);
corner-shape: var(--DLP-corner-s);
border: none;
outline: 2px solid rgb(var(--color-eel), 0.10);
outline-offset: -2px;
background: rgb(var(--color-snow), 0.90);
color: rgb(var(--color-eel), 0.50);
font-size: 16px;
font-weight: 600;
font-family: Duolingo PRO Rounded, 'din-round' !important;
resize: vertical;
transition: .2s;
}
.DLP_Large_Input_Box_Style_1::placeholder {
font-weight: 600;
color: rgb(var(--color-eel), 0.25);
}
.DLP_Large_Input_Box_Style_1:focus {
outline: 2px solid rgb(var(--DLP-blue));
}
.DLP_Feedback_Type_Button_Style_1_ON {
outline: 2px solid rgba(0, 0, 0, 0.20);
outline-offset: -2px;
background: rgb(var(--DLP-pink));
}
.DLP_Feedback_Type_Button_Style_1_ON .DLP_Text_Style_1 {
color: #FFF;
}
.DLP_Feedback_Type_Button_Style_1_OFF {
outline: 2px solid rgba(255, 45, 85, 0.20);
outline-offset: -2px;
background: rgba(255, 45, 85, 0.10);
}
.DLP_Feedback_Type_Button_Style_1_OFF .DLP_Text_Style_1 {
color: rgb(var(--DLP-pink));
}
.DLP_Feedback_Type_Button_Style_2_ON {
outline: 2px solid rgba(0, 0, 0, 0.20);
outline-offset: -2px;
background: rgb(var(--DLP-green));
}
.DLP_Feedback_Type_Button_Style_2_ON .DLP_Text_Style_1 {
color: #FFF;
}
.DLP_Feedback_Type_Button_Style_2_OFF {
outline: 2px solid rgba(52, 199, 89, 0.20);
outline-offset: -2px;
background: rgba(52, 199, 89, 0.10);
}
.DLP_Feedback_Type_Button_Style_2_OFF .DLP_Text_Style_1 {
color: rgb(var(--DLP-green));
}
.DLP_Notification_Main {
display: flex;
justify-content: center;
align-items: center;
transition: 0.8s cubic-bezier(0.16, 1, 0.32, 1);
width: 300px;
position: fixed;
left: calc(50% - (300px / 2));
z-index: 210;
bottom: 16px;
border-radius: var(--DLP-corner-r-l);
corner-shape: var(--DLP-corner-s);
}
.DLP_Notification_Box {
display: flex;
width: 300px;
padding: 16px;
box-sizing: border-box;
flex-direction: column;
justify-content: flex-start;
align-items: center;
gap: 4px;
border-radius: var(--DLP-corner-r-l);
corner-shape: var(--DLP-corner-s);
outline: 2px solid rgb(var(--color-eel), 0.10);
outline-offset: -2px;
background: rgb(var(--color-snow), 0.90);
backdrop-filter: blur(16px);
transition: 0.8s cubic-bezier(0.16, 1, 0.32, 1);
filter: blur(16px);
opacity: 0;
}
._2V6ug._1ursp._7jW2t._2hkLC._1wiIJ {
width: 36px !important;
height: 38px !important;
}
._2V6ug._1ursp._7jW2t._2hkLC._1wiIJ::before {
border-radius: 20px !important;
}
.DLP_Attachment_Box_1 {
width: 128px;
height: 128px;
aspect-ratio: 1/1;
object-fit: cover;
overflow: hidden;
position: relative;
border-radius: var(--DLP-corner-r-m);
corner-shape: var(--DLP-corner-s);
outline: 2px solid rgba(var(--color-black-white), 0.20);
outline-offset: -2px;
background: rgba(var(--color-black-text), 0.20); /* Gotta change */
}
.DLP_Attachment_Box_1_Content {
width: 100%;
height: 100%;
aspect-ratio: 1/1;
object-fit: cover;
}
.DLP_Attachment_Box_1_Hover {
display: flex;
width: 100%;
height: 100%;
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
flex-direction: column;
justify-content: center;
align-items: center;
flex-shrink: 0;
background: rgba(var(--color-snow), 0.50);
backdrop-filter: blur(8px);
outline: inherit;
outline-offset: inherit;
border-radius: inherit;
corner-shape: inherit;
}
.DLP_Attachment_Box_Large_View_1 {
display: flex;
position: fixed;
inset: 0;
width: 100%;
height: 100vh;
justify-content: center;
align-items: center;
flex-shrink: 0;
background: rgba(var(--color-snow), 0.00);
backdrop-filter: blur(0px);
z-index: 211;
transition: 0.4s cubic-bezier(0.16, 1, 0.32, 1);
}
.DLP_Attachment_Box_Drop_1 {
display: flex;
height: 48px;
padding: 16px;
justify-content: center;
align-items: center;
gap: 6px;
border-radius: var(--DLP-corner-r-m);
corner-shape: var(--DLP-corner-s);
/* outline: 2px dashed rgba(var(--DLP-blue), 0.20); */
outline: 2px solid rgba(var(--DLP-blue), 0.20);
outline-offset: -2px;
background: linear-gradient(0deg, rgba(var(--DLP-blue), 0.10) 0%, rgba(var(--DLP-blue), 0.10) 100%), rgba(var(--color-snow), 0.90);
}
@keyframes slideRight {
0% {
transform: translateX(-150px);
}
20% {
transform: translateX(200px);
}
100% {
transform: translateX(200px);
}
}
`;
HTML3 = `
<div class="DLP_Notification_Box" style="position: fixed;">
<div class="DLP_HStack_4" style="align-items: center;">
<p class="DLP_Text_Style_1 DLP_Inset_Icon_1_ID DLP_NoSelect"></p>
<p class="DLP_Text_Style_1 DLP_Inset_Text_1_ID" style="flex: 1 0 0;"></p>
<p class="DLP_Text_Style_1 DLP_Inset_Icon_2_ID DLP_Magnetic_Hover_1 DLP_NoSelect" style="align-self: stretch;"></p>
</div>
<p class="DLP_Text_Style_1 DLP_Inset_Text_2_ID" style="color: rgb(var(--color-wolf), 0.4); align-self: stretch; overflow-wrap: break-word;"></p>
</div>
`;
HTML4 = `
.solving-btn {
position: relative;
min-width: 150px;
font-size: 17px;
border: none;
border-bottom: 4px solid #2b70c9;
border-radius: 16px;
padding: 13px 16px;
transition: filter .0s;
font-weight: 700;
letter-spacing: .8px;
background: #1cb0f6;
color: rgb(var(--color-snow));
cursor: pointer;
}
.solve-btn {
position: relative;
min-width: 100px;
font-size: 17px;
border: none;
border-bottom: 4px solid #ff9600;
border-radius: 16px;
padding: 13px 16px;
transition: filter .0s;
font-weight: 700;
letter-spacing: .8px;
background: #ffc800;
color: rgb(var(--color-snow));
cursor: pointer;
}
.auto-solver-btn:hover {
filter: brightness(1.1);
}
.auto-solver-btn:active {
border-bottom: 0px;
margin-bottom: 4px;
top: 4px;
}
._1lzAb._1Exx3 {
padding-bottom: 0px !important;
}
`;
HTML5 = `
<div class="DLP_AutoServer_Mother_Box" style="display: none; opacity: 0; filter: blur(8px);">
<div class="DLP_AutoServer_Box DLP_Hide_Scrollbar">
<div class="DLP_AutoServer_Menu_Bar">
<div style="display: flex; justify-content: center; align-items: center; gap: 6px; opacity: 0.5;">
<p id="DLP_AutoServer_Close_Button_1_ID" class="DLP_AutoServer_Text_Style_1 DLP_Magnetic_Hover_1" style="color: rgb(var(--color-black-text));"></p>
</div>
<div style="display: flex; justify-content: center; align-items: center; gap: 6px; opacity: 0.5;">
<p class="DLP_AutoServer_Text_Style_1 DLP_NoSelect DLP_Inset_Text_1_ID" style="color: rgb(var(--color-black-text));">Unavailable</p>
<p class="DLP_AutoServer_Text_Style_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: rgb(var(--color-black-text));"></p>
</div>
</div>
<div class="DLP_AutoServer_Scroll_Box">
<div style="display: flex; justify-content: space-between; align-items: center; align-self: stretch;">
<div style="display: flex; align-items: flex-end; gap: 4px;">
<p class="DLP_AutoServer_Text_Style_2 DLP_NoSelect">AutoServer</p>
<div class="DLP_HStack_4" style="align-items: center; padding-top: 6px;">
<p class="DLP_AutoServer_Text_Style_1 DLP_NoSelect" style="opacity: 0.5;">by Duolingo</p>
<p class="DLP_AutoServer_Text_Style_1 DLP_NoSelect" style="background: url(${serverURL}/static/images/flow/primary/512/light.png) lightgray 50% / cover no-repeat; background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent;">PRO</p>
</div>
</div>
<p class="DLP_AutoServer_Text_Style_1 DLP_NoSelect" style="font-size: 14px; background: url(${serverURL}/static/images/flow/secondary/512/light.png) lightgray 50% / cover no-repeat; background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent;">${VERSION_NAME}</p>
</div>
<div class="DLP_AutoServer_Default_Box" style="background: linear-gradient(rgba(var(--color-snow), 0.8), rgba(var(--color-snow), 0.8)), url(${serverURL}/static/images/flow/primary/512/light.png); background-position: center; background-size: cover; background-repeat: no-repeat;">
<div style="display: flex; display: none; flex-direction: column; align-items: flex-start; gap: 6px; align-self: stretch; width: 100%;">
<div class="DLP_HStack_Auto">
<p class="DLP_AutoServer_Text_Style_1 DLP_NoSelect">Settings</p>
<p class="DLP_AutoServer_Text_Style_1 DLP_NoSelect"></p>
</div>
<div class="DLP_HStack_Auto">
<div class="DLP_HStack_4" style="align-items: center;">
<p class="DLP_AutoServer_Text_Style_1 DLP_NoSelect"></p>
<p class="DLP_AutoServer_Text_Style_1 DLP_NoSelect">Timezone</p>
</div>
<p class="DLP_AutoServer_Text_Style_1">America/NewYork - 11:45 PM</p>
</div>
</div>
<div style="display: flex; flex-direction: column; align-items: flex-start; gap: 6px; align-self: stretch; width: 100%;">
<div class="DLP_HStack_Auto" style="align-items: center; width: 100%;">
<p class="DLP_AutoServer_Text_Style_1">Under Construction</p>
<p class="DLP_AutoServer_Text_Style_1 DLP_NoSelect"></p>
</div>
<p class="DLP_AutoServer_Text_Style_1" style="opacity: 0.5;">AutoServer is currently under construction and unavailable. We appreciate your patience and will provide updates as progress continues.</p>
</div>
</div>
<div class="DLP_AutoServer_Default_Box" style="height: 256px; background: linear-gradient(rgba(var(--color-snow), 0), rgba(var(--color-snow), 0)), url(${serverURL}/static/images/flow/primary/512/light.png); background-position: center; background-size: cover; background-repeat: no-repeat;">
<div style="display: flex; width: 168px; flex-direction: column; justify-content: space-between; align-items: flex-start; align-self: stretch;">
<div class="DLP_VStack_6">
<div class="DLP_HStack_Auto">
<p class="DLP_AutoServer_Text_Style_1 DLP_NoSelect" style="color: #FFF;"></p>
<p class="DLP_AutoServer_Text_Style_1 DLP_NoSelect" style="color: #FFF;">Streak Protector</p>
</div>
<div class="DLP_HStack_Auto">
<p class="DLP_AutoServer_Text_Style_1 DLP_NoSelect" style="color: #FFF; opacity: 0;">BETA</p>
<div class="DLP_HStack_4 DLP_Magnetic_Hover_1">
<p class="DLP_AutoServer_Text_Style_1 DLP_NoSelect" style="color: #FFF;">Active</p>
<p class="DLP_AutoServer_Text_Style_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: #FFF;"></p>
<p class="DLP_AutoServer_Text_Style_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: #FFF; display: none;"></p>
</div>
</div>
</div>
<div class="DLP_VStack_12">
<div class="DLP_VStack_6">
<div class="DLP_HStack_Auto">
<p class="DLP_AutoServer_Text_Style_1 DLP_NoSelect" style="color: #FFF; opacity: 0.5;">Protecting:</p>
<p class="DLP_AutoServer_Text_Style_1 DLP_NoSelect" style="color: #FFF; opacity: 0;">BETA</p>
</div>
<div class="DLP_HStack_Auto">
<p class="DLP_AutoServer_Text_Style_1 DLP_NoSelect DLP_Magnetic_Hover_1 DLP_Inset_Icon_1_ID" style="color: #FFF;"></p>
<p class="DLP_AutoServer_Text_Style_1 DLP_NoSelect" style="color: #FFF;">2 Days</p>
<p class="DLP_AutoServer_Text_Style_1 DLP_NoSelect DLP_Magnetic_Hover_1 DLP_Inset_Icon_2_ID" style="color: #FFF;"></p>
</div>
</div>
<div class="DLP_VStack_6">
<div class="DLP_HStack_Auto">
<p class="DLP_AutoServer_Text_Style_1 DLP_NoSelect" style="color: #FFF; opacity: 0.5;">Protecting Time:</p>
<p class="DLP_AutoServer_Text_Style_1 DLP_NoSelect" style="color: #FFF; opacity: 0;">BETA</p>
</div>
<div class="DLP_HStack_Auto">
<p class="DLP_AutoServer_Text_Style_1 DLP_NoSelect DLP_Magnetic_Hover_1 DLP_Inset_Icon_1_ID" style="color: #FFF;"></p>
<p class="DLP_AutoServer_Text_Style_1 DLP_NoSelect" style="color: #FFF;">Morning</p>
<p class="DLP_AutoServer_Text_Style_1 DLP_NoSelect DLP_Magnetic_Hover_1 DLP_Inset_Icon_2_ID" style="color: #FFF;"></p>
</div>
</div>
</div>
</div>
<div style="display: flex; flex-direction: column; align-items: flex-start; gap: 6px; flex: 1 0 0; align-self: stretch;">
<div class="DLP_VStack_6" style="height: 100%; justify-content: flex-start;">
<div class="DLP_HStack_Auto">
<div class="DLP_HStack_4">
<p class="DLP_AutoServer_Text_Style_1 DLP_NoSelect" style="color: #FFF;"></p>
<p class="DLP_AutoServer_Text_Style_1 DLP_NoSelect" style="color: #FFF;">Info</p>
</div>
<p class="DLP_AutoServer_Text_Style_1 DLP_NoSelect" style="color: #FFF; opacity: 0.5;">This function is in BETA</p>
</div>
<p class="DLP_AutoServer_Text_Style_1 DLP_NoSelect" style="color: #FFF; opacity: 0.5;">Streak Protector extends your streak by completing a lesson in our servers.</p>
<p class="DLP_AutoServer_Text_Style_1 DLP_NoSelect" style="color: #FFF; opacity: 0.5;">You can only protect your streak for up to 7 days. Donate to protect longer.</p>
<div style="display: flex; justify-content: flex-end; align-items: flex-end; gap: 6px; flex: 1 0 0; align-self: stretch;">
<p class="DLP_AutoServer_Text_Style_1 DLP_Magnetic_Hover_1 DLP_NoSelect" style="color: #FFF; opacity: 0.5;">Learn More</p>
</div>
</div>
</div>
</div>
<div class="DLP_AutoServer_Default_Box" style="height: 256px; background: linear-gradient(rgba(var(--color-snow), 0), rgba(var(--color-snow), 0)), url(${serverURL}/static/images/flow/secondary/512/light.png); background-position: center; background-size: cover; background-repeat: no-repeat;">
<div style="display: flex; width: 168px; flex-direction: column; justify-content: space-between; align-items: flex-start; align-self: stretch;">
<div class="DLP_VStack_6">
<div class="DLP_HStack_Auto">
<p class="DLP_AutoServer_Text_Style_1 DLP_NoSelect" style="color: #FFF;"></p>
<p class="DLP_AutoServer_Text_Style_1 DLP_NoSelect" style="color: #FFF;">League Protector</p>
</div>
<div class="DLP_HStack_Auto">
<p class="DLP_AutoServer_Text_Style_1 DLP_NoSelect" style="color: #FFF; opacity: 0;">BETA</p>
<div class="DLP_HStack_4 DLP_Magnetic_Hover_1">
<p class="DLP_AutoServer_Text_Style_1 DLP_NoSelect" style="color: #FFF;">Active</p>
<p class="DLP_AutoServer_Text_Style_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: #FFF;"></p>
<p class="DLP_AutoServer_Text_Style_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: #FFF; display: none;"></p>
</div>
</div>
</div>
<div class="DLP_VStack_12">
<div class="DLP_VStack_6">
<div class="DLP_HStack_Auto">
<p class="DLP_AutoServer_Text_Style_1 DLP_NoSelect" style="color: #FFF; opacity: 0.5;">Protecting:</p>
<p class="DLP_AutoServer_Text_Style_1 DLP_NoSelect" style="color: #FFF; opacity: 0;">BETA</p>
</div>
<div class="DLP_HStack_Auto">
<p class="DLP_AutoServer_Text_Style_1 DLP_NoSelect DLP_Magnetic_Hover_1 DLP_Inset_Icon_1_ID" style="color: #FFF;"></p>
<p class="DLP_AutoServer_Text_Style_1 DLP_NoSelect" style="color: #FFF;">5 Days</p>
<p class="DLP_AutoServer_Text_Style_1 DLP_NoSelect DLP_Magnetic_Hover_1 DLP_Inset_Icon_2_ID" style="color: #FFF;"></p>
</div>
</div>
<div class="DLP_VStack_6">
<div class="DLP_HStack_Auto">
<p class="DLP_AutoServer_Text_Style_1 DLP_NoSelect" style="color: #FFF; opacity: 0.5;">Protecting Mode:</p>
<p class="DLP_AutoServer_Text_Style_1 DLP_NoSelect" style="color: #FFF; opacity: 0;">BETA</p>
</div>
<div class="DLP_HStack_Auto">
<p class="DLP_AutoServer_Text_Style_1 DLP_NoSelect DLP_Magnetic_Hover_1 DLP_Inset_Icon_1_ID" style="color: #FFF;"></p>
<p class="DLP_AutoServer_Text_Style_1 DLP_NoSelect" style="color: #FFF;">Chill</p>
<p class="DLP_AutoServer_Text_Style_1 DLP_NoSelect DLP_Magnetic_Hover_1 DLP_Inset_Icon_2_ID" style="color: #FFF;"></p>
</div>
</div>
</div>
</div>
<div style="display: flex; flex-direction: column; align-items: flex-start; gap: 6px; flex: 1 0 0; align-self: stretch;">
<div class="DLP_VStack_6" style="height: 100%; justify-content: flex-start;">
<div class="DLP_HStack_Auto">
<div class="DLP_HStack_4">
<p class="DLP_AutoServer_Text_Style_1 DLP_NoSelect" style="color: #FFF;"></p>
<p class="DLP_AutoServer_Text_Style_1 DLP_NoSelect" style="color: #FFF;">Info</p>
</div>
<p class="DLP_AutoServer_Text_Style_1 DLP_NoSelect" style="color: #FFF; opacity: 0.5;">This function is in BETA</p>
</div>
<p class="DLP_AutoServer_Text_Style_1 DLP_NoSelect" style="color: #FFF; opacity: 0.5;">League Protector protects your league position by completing lessons in our servers.</p>
<p class="DLP_AutoServer_Text_Style_1 DLP_NoSelect" style="color: #FFF; opacity: 0.5;">You only have access to Chill and Standard Mode with up to 7 days of protection. Donate to get access to Aggressive Mode and longer protection.</p>
<div style="display: flex; justify-content: flex-end; align-items: flex-end; gap: 6px; flex: 1 0 0; align-self: stretch;">
<p class="DLP_AutoServer_Text_Style_1 DLP_Magnetic_Hover_1 DLP_NoSelect" style="color: #FFF; opacity: 0.5;">Learn More</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
`;
CSS5 = `
.DLP_AutoServer_Text_Style_1 {
font-family: "Duolingo PRO Rounded";
font-size: 16px;
font-style: normal;
font-weight: 600;
line-height: normal;
margin: 0;
-webkit-font-smoothing: antialiased;
}
.DLP_AutoServer_Text_Style_2 {
font-family: "Duolingo PRO Rounded";
font-size: 24px;
font-style: normal;
font-weight: 600;
line-height: normal;
margin: 0;
-webkit-font-smoothing: antialiased;
}
.DLP_AutoServer_Mother_Box {
position: fixed;
top: 0;
bottom: 0;
right: 0;
left: 0;
display: flex;
width: 100%;
height: 100vh;
justify-content: center;
align-items: center;
flex-shrink: 0;
z-index: 210;
transition: filter 0.4s cubic-bezier(0.16, 1, 0.32, 1), opacity 0.4s cubic-bezier(0.16, 1, 0.32, 1);
background: rgba(var(--color-snow), 0.50);
backdrop-filter: blur(16px);
}
.DLP_AutoServer_Box {
display: flex;
width: 512px;
height: 512px;
flex-direction: column;
align-items: center;
flex-shrink: 0;
overflow-y: scroll;
overflow-x: hidden;
scrollbar-width: none;
-ms-overflow-style: none;
border-radius: var(--DLP-corner-r-xl);
corner-shape: var(--DLP-corner-s);
border: 2px solid rgba(var(--color-eel), 0.10);
background: rgba(var(--color-snow), 0.90);
backdrop-filter: blur(16px);
box-sizing: border-box;
}
.DLP_AutoServer_Menu_Bar {
display: flex;
width: 100%;
height: 64px;
padding: 16px;
justify-content: space-between;
align-items: center;
position: sticky;
top: 0;
right: 0;
left: 0;
background: rgba(var(--color-snow), 0.80);
backdrop-filter: blur(8px);
z-index: 2;
}
.DLP_AutoServer_Scroll_Box {
display: flex;
padding: 0 16px 16px 16px;
flex-direction: column;
justify-content: center;
align-items: center;
gap: 8px;
align-self: stretch;
}
.DLP_AutoServer_Default_Box {
display: flex;
padding: 16px;
justify-content: center;
align-items: center;
gap: 16px;
align-self: stretch;
border-radius: var(--DLP-corner-r-m);
corner-shape: var(--DLP-corner-s);
outline: 2px solid rgba(0, 0, 0, 0.10);
outline-offset: -2px;
}
`;
HTML6 = `
<div class="DPAutoServerButtonMainMenu">
<svg width="30" height="30" viewBox="0 0 30 30" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_952_270)">
<rect width="30" height="30" rx="15" fill="rgb(var(--DLP-blue))"/>
<path d="M19.9424 20.5947H10.4404C7.96582 20.5947 6.04492 18.7764 6.04492 16.582C6.04492 14.8115 7.02246 13.3623 8.61523 13.0342C8.73145 11.0859 10.5361 9.77344 12.3545 10.1904C13.2773 8.88477 14.7061 8.02344 16.4766 8.02344C19.4502 8.02344 21.7334 10.2998 21.7402 13.458C23.1279 14.0322 23.9551 15.3926 23.9551 16.876C23.9551 18.9404 22.1777 20.5947 19.9424 20.5947ZM10.6318 16.1445C10.2285 16.6504 10.6934 17.1904 11.2539 16.9102L13.4688 15.7549L16.1006 17.2109C16.2578 17.2998 16.4082 17.3477 16.5586 17.3477C16.7705 17.3477 16.9688 17.2383 17.1465 17.0195L19.3818 14.1963C19.7646 13.7109 19.3203 13.1641 18.7598 13.4443L16.5312 14.5928L13.9062 13.1436C13.7422 13.0547 13.5986 13.0068 13.4414 13.0068C13.2363 13.0068 13.0381 13.1094 12.8535 13.335L10.6318 16.1445Z" fill="white"/>
</g>
<defs>
<clipPath id="clip0_952_270">
<rect width="30" height="30" rx="15" fill="#FFF"/>
</clipPath>
</defs>
</svg>
<p class="DPAutoServerElementsMenu DLP_NoSelect" style="flex: 1 0 0; color: rgb(var(--DLP-blue)); font-size: 16px; font-style: normal; font-weight: 700; line-height: normal; margin: 0px;">AUTOSERVER</p>
<svg class="DPAutoServerElementsMenu" style="opacity: 0;" width="9" height="16" viewBox="0 0 9 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8.57031 7.85938C8.57031 8.24219 8.4375 8.5625 8.10938 8.875L2.20312 14.6641C1.96875 14.8984 1.67969 15.0156 1.33594 15.0156C0.648438 15.0156 0.0859375 14.4609 0.0859375 13.7734C0.0859375 13.4219 0.226562 13.1094 0.484375 12.8516L5.63281 7.85156L0.484375 2.85938C0.226562 2.60938 0.0859375 2.28906 0.0859375 1.94531C0.0859375 1.26562 0.648438 0.703125 1.33594 0.703125C1.67969 0.703125 1.96875 0.820312 2.20312 1.05469L8.10938 6.84375C8.42969 7.14844 8.57031 7.46875 8.57031 7.85938Z" fill="rgb(var(--DLP-blue))"/>
</svg>
</div>
`;
CSS6 = `
.DPAutoServerButtonMainMenu {
display: flex;
box-sizing: border-box;
justify-content: center;
align-items: center;
gap: 16px;
flex-shrink: 0;
border-radius: 12px;
cursor: pointer;
}
.DPAutoServerButtonMainMenu:hover {
background: rgba(var(--DLP-blue), 0.10);
}
.DPAutoServerButtonMainMenu:active {
filter: brightness(.9);
}
.DPAutoServerButtonMainMenu:hover .DPAutoServerElementsMenu {
opacity: 1 !important;
}
.DPAutoServerButtonMainMenuMedium {
width: 56px;
height: 52px;
padding: 8px;
}
.DPAutoServerButtonMainMenuLarge {
width: 222px;
height: 52px;
padding: 16px 17px;
}
`;
HTML7 = `
<div id="DLP_TheBarThing_Box" style="display: inline-flex; justify-content: center; flex-direction: row-reverse; align-items: center; gap: 8px;">
<div class="DLP_TheBarThing_Button_Style_1 DLP_Magnetic_Hover_1 DLP_Inset_Button_1_ID">
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: rgb(var(--color-eel)); display: none;"></p>
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Text_1_ID"></p>
</div>
<div class="DLP_TheBarThing_Button_Style_1 DLP_Magnetic_Hover_1 DLP_Inset_Button_2_ID">
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: rgb(var(--color-eel));"></p>
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Text_1_ID">Mute</p>
</div>
<div class="DLP_TheBarThing_Button_Style_1 DLP_Magnetic_Hover_1 DLP_Inset_Button_3_ID" style="width: 40px; padding: 0;">
<p class="DLP_Text_Style_1 DLP_NoSelect DLP_Inset_Icon_1_ID" style="color: rgb(var(--color-eel)); transition: all 0.8s cubic-bezier(0.16, 1, 0.32, 1);"></p>
</div>
</div>
`;
CSS7 = `
.DLP_TheBarThing_Button_Style_1 {
outline: 2px solid rgb(var(--color-swan));
outline-offset: -2px;
height: 40px;
width: auto;
padding: 0 16px;
gap: 6px;
display: inline-flex;
justify-content: center;
align-items: center;
flex-wrap: nowrap;
flex-shrink: 0;
border-radius: 32px;
background: rgb(var(--color-snow), 0.84);
backdrop-filter: blur(16px);
overflow: hidden;
cursor: pointer;
}
.DLP_TheBarThing_Button_Style_1 p {
white-space: nowrap;
}
.DLP_TheBarThing_Button_Style_1 svg {
flex-shrink: 0;
}
`;
}
function One() {
(function buildOrMigrateStorageLocal() {
let tempRandom16 = Array.from({ length: 16 }, () => 'abcdefghijklmnopqrstuvwxyz0123456789'[Math.floor(Math.random() * 36)]).join('');
let tempTimestamp = Date.now();
const DEFAULTS = {
versionNumber: VERSION_NUMBER,
versionFull: VERSION_FULL,
terms: "00",
random16: tempRandom16,
pins: {
home: ["DLP_Get_XP_1_ID", "DLP_Get_GEM_1_ID"],
legacy: ["DLP_Get_PATH_1_ID", "DLP_Get_PRACTICE_1_ID"]
},
settings: {
autoUpdate: !greasyfork,
showSolveButtons: true,
showAutoServerButton: alpha,
muteLessons: false,
anonymousUsageData: alpha,
reduceEffects: false,
localSuper: false,
randomSolveSpeed: false,
randomSolveSpeedRange: [2.8, 12.4],
showSuper: false
},
stats: {
modern: {
xp: 0,
gem: 0,
streak: 0,
super: 0,
heart_refill: 0,
streak_freeze: 0,
double_xp_boost: 0,
quest: 0
},
legacy: {
path: {
lessons: 0,
questions: 0
},
practice: {
lessons: 0,
questions: 0
},
listen: {
lessons: 0,
questions: 0
},
lesson: {
lessons: 0,
questions: 0
}
},
tracking_since: tempTimestamp
},
chats: [],
notifications: [{ id: "0000" }],
tips: { seeMore1: false },
languagePackVersion: "00",
onboarding: false,
storageVersion: STORAGE_LOCAL_VERSION
};
function isPlainObject(v) {
return Object.prototype.toString.call(v) === "[object Object]";
}
function safeParse(json) {
try {
const v = JSON.parse(json);
return isPlainObject(v) ? v : null;
} catch {
return null;
}
}
function mergeWithPrune(existing, defaults) {
const result = Array.isArray(defaults) ? [] : {};
for (const key of Object.keys(defaults)) {
const defVal = defaults[key];
const hasExisting = existing && Object.prototype.hasOwnProperty.call(existing, key);
const exVal = hasExisting ? existing[key] : undefined;
if (isPlainObject(defVal)) {
if (isPlainObject(exVal)) {
result[key] = mergeWithPrune(exVal, defVal);
} else {
result[key] = mergeWithPrune({}, defVal); // take full default subtree
}
} else if (Array.isArray(defVal)) {
result[key] = Array.isArray(exVal) ? exVal : defVal.slice();
} else {
// primitives / everything else: keep existing if present, else default
result[key] = hasExisting ? exVal : defVal;
}
}
// Unknown keys in `existing` are intentionally NOT copied (pruned)
return result;
}
const raw = localStorage.getItem("DLP_Local_Storage");
const existing = safeParse(raw);
// Migrate: replace old "DLP_Get_GEMS_1_ID" pin with new "DLP_Get_GEM_1_ID"
if (existing && existing.pins && Array.isArray(existing.pins.home)) {
const legacyIndex = existing.pins.home.indexOf("DLP_Get_GEMS_1_ID");
if (legacyIndex !== -1) {
existing.pins.home[legacyIndex] = "DLP_Get_GEM_1_ID";
}
}
// Fresh write if missing or unparsable
if (!existing) {
const fresh = { ...DEFAULTS, storageVersion: STORAGE_LOCAL_VERSION };
localStorage.setItem("DLP_Local_Storage", JSON.stringify(fresh));
storageLocal = fresh;
return;
}
// Up-to-date -> just use it
if (existing.storageVersion === STORAGE_LOCAL_VERSION) {
storageLocal = existing;
return;
}
// Migrate: keep existing values where keys match, add missing defaults, drop extras
const migrated = mergeWithPrune(existing, DEFAULTS);
// Ensure we actually bump the version so we don't re-migrate on next load
migrated.storageVersion = STORAGE_LOCAL_VERSION;
migrated.versionNumber = VERSION_NUMBER;
migrated.versionFull = VERSION_FULL;
recentUpdateDetected = true;
localStorage.setItem("DLP_Local_Storage", JSON.stringify(migrated));
storageLocal = migrated;
})();
function saveStorageLocal() {
localStorage.setItem("DLP_Local_Storage", JSON.stringify(storageLocal));
}
if (sessionStorage.getItem("DLP_Session_Storage") == null || JSON.parse(sessionStorage.getItem("DLP_Session_Storage")).storageVersion !== STORAGE_SESSION_VERSION) {
const DEFAULTS = {
legacy: {
page: 0,
status: false,
path: {
type: "lesson",
amount: 0
},
practice: {
type: "lesson",
amount: 0
},
listen: {
type: "lesson",
amount: 0
},
lesson: {
section: 0,
unit: 0,
level: 0,
type: "lesson",
amount: 0
}
},
notifications: [
{
id: "0001"
}
],
hidden: false,
storageVersion: STORAGE_SESSION_VERSION,
script: {
ping: 4000,
donate: null,
boost: null,
youtube: null,
discord: null,
github: null,
support: {
enabled: null,
file_upload: {
enabled: null,
max_size: 8388608,
max_files: 3
}
},
settings: {
enabled: null,
show_solve: null,
show_autoserver: null,
random_legacy_solve_speed: null,
custom_random_legacy_solve_speed: null,
anonymous_analytics: false,
reduce_effects: null,
free_duolingo_max: null,
show_super_trial: null,
modern_statistics: null,
legacy_statistics: null
},
release_notes: null,
modern: {
enabled: null,
xp: null,
gems: null,
streak: null,
streak_freeze: null,
badge: null,
double_xp_boost: null,
heart_refill: null,
quests: null
},
legacy: {
enabled: null,
lesson: null,
practice: null,
listen: null,
path: null
}
}
};
sessionStorage.setItem("DLP_Session_Storage", JSON.stringify(DEFAULTS));
storageSession = DEFAULTS;
} else {
storageSession = JSON.parse(sessionStorage.getItem("DLP_Session_Storage"));
}
function saveStorageSession() {
sessionStorage.setItem("DLP_Session_Storage", JSON.stringify(storageSession));
}
if (alpha) {
apiURL = "https://api.duolingopro.net/alpha";
if (!storageLocal.settings.anonymousUsageData) storageLocal.settings.anonymousUsageData = true;
saveStorageLocal();
}
Two();
document.head.appendChild(Object.assign(document.createElement('style'), { type: 'text/css', textContent: CSS1 }));
document.body.insertAdjacentHTML('beforeend', HTML2);
document.head.appendChild(Object.assign(document.createElement('style'), { type: 'text/css', textContent: CSS2 }));
if (storageLocal.settings.showAutoServerButton && alpha) {
document.body.insertAdjacentHTML('beforeend', HTML5);
document.head.appendChild(Object.assign(document.createElement('style'), { type: 'text/css', textContent: CSS5 }));
}
let DPAutoServerButtonMainMenuElement = null;
let DPAutoServerButtonMainMenuStyle = null;
function DPAutoServerButtonMainMenuFunction() {
try {
let targetElement = document.querySelector('._2uLXp');
if (!targetElement || document.querySelector('.DPAutoServerButtonMainMenu')) return;
DPAutoServerButtonMainMenuStyle = document.createElement('style');
DPAutoServerButtonMainMenuStyle.type = 'text/css';
DPAutoServerButtonMainMenuStyle.innerHTML = CSS6;
document.head.appendChild(DPAutoServerButtonMainMenuStyle);
let targetDivLast = document.querySelector('[data-test="profile-tab"]');
if (targetElement && targetDivLast) {
targetElement.lastChild.insertAdjacentHTML('beforebegin', HTML6);
let otherTargetDiv = document.querySelector('.DPAutoServerButtonMainMenu');
otherTargetDiv.addEventListener('click', () => {
manageAutoServerWindowVisibility(true);
});
let lastWidth = targetElement.offsetWidth;
const resizeObserver = new ResizeObserver(entries => {
for (let entry of entries) {
if (entry.target.offsetWidth !== lastWidth) {
otherTargetDiv.remove();
DPAutoServerButtonMainMenuFunction();
lastWidth = entry.target.offsetWidth;
}
}
});
resizeObserver.observe(targetElement);
if (targetElement.offsetWidth < 100) {
otherTargetDiv.classList.add('DPAutoServerButtonMainMenuMedium');
document.querySelectorAll('.DPAutoServerElementsMenu').forEach(function (element) {
element.remove();
});
} else {
otherTargetDiv.classList.add('DPAutoServerButtonMainMenuLarge');
}
}
} catch (error) { }
}
if (storageLocal.settings.showAutoServerButton && alpha) {
setInterval(DPAutoServerButtonMainMenuFunction, 500);
document.querySelector('.DLP_AutoServer_Mother_Box').querySelector('#DLP_AutoServer_Close_Button_1_ID').addEventListener('click', () => {
manageAutoServerWindowVisibility(false);
});
document.querySelector('.DLP_AutoServer_Mother_Box').addEventListener('click', (event) => {
if (event.target === event.currentTarget) {
manageAutoServerWindowVisibility(false);
}
});
}
function manageAutoServerWindowVisibility(state) {
if (state) {
document.querySelector('.DLP_AutoServer_Mother_Box').style.display = "";
document.querySelector('.DLP_AutoServer_Mother_Box').offsetHeight;
document.querySelector('.DLP_AutoServer_Mother_Box').style.opacity = "1";
document.querySelector('.DLP_AutoServer_Mother_Box').style.filter = "blur(0px)";
} else {
document.querySelector('.DLP_AutoServer_Mother_Box').style.opacity = "0";
document.querySelector('.DLP_AutoServer_Mother_Box').style.filter = "blur(8px)";
setTimeout(() => {
document.querySelector('.DLP_AutoServer_Mother_Box').style.display = "none";
}, 400);
}
}
window.onfocus = () => {
windowBlurState = true;
};
window.onblur = () => {
windowBlurState = false;
};
function DuolingoPROTheBarThing() {
if ((window.location.pathname.includes('/lesson') || window.location.pathname.includes('/practice')) && storageSession.legacy.status) {
let theBarThing = document.querySelector('#DLP_TheBarThing_Box');
if (!theBarThing) {
//const targetElement1 = document.querySelector('.I-Avc._1zcW8');
const targetElement1 = document.querySelector('._1zcW8');
const targetElement2 = document.querySelector('.mAxZF');
if (targetElement1 || targetElement2) document.head.appendChild(Object.assign(document.createElement('style'), { type: 'text/css', textContent: CSS7 }));
else {
if (debug) console.log('Element with class ._1zcW8 or .mAxZF not found');
return;
}
if (targetElement1) {
targetElement1.insertAdjacentHTML('beforeend', HTML7);
theBarThing = document.querySelector('#DLP_TheBarThing_Box');
targetElement1.style.display = "flex";
document.querySelector('[role="progressbar"]').style.width = "100%";
} else if (targetElement2) {
targetElement2.insertAdjacentHTML('beforeend', HTML7);
theBarThing = document.querySelector('#DLP_TheBarThing_Box');
theBarThing.style.marginLeft = '24px';
document.querySelector('._15ch1').style.pointerEvents = 'all';
}
let muteButton = theBarThing.querySelector('.DLP_Inset_Button_2_ID');
let expandButton = theBarThing.querySelector('.DLP_Inset_Button_3_ID');
let expandButtonIcon = expandButton.querySelector('.DLP_Inset_Icon_1_ID');
let theBarThingExtended = false;
function theBarThingExtend(button, visibility, noAnimation) {
if (visibility) {
button.style.display = "";
button.style.transition = "";
button.style.width = "";
button.style.padding = "";
let remember0010 = button.offsetWidth;
button.style.width = "0px";
button.style.transition = "all 0.4s cubic-bezier(0.16, 1, 0.32, 1)";
void button.offsetWidth;
requestAnimationFrame(() => {
button.style.width = remember0010 + "px";
button.style.padding = "";
button.style.filter = "blur(0px)";
button.style.opacity = "1";
button.style.margin = "";
setTimeout(() => {
button.style.transition = "";
}, 400);
});
} else {
button.style.transition = "all 0.4s cubic-bezier(0.16, 1, 0.32, 1)";
button.style.width = button.offsetWidth + "px";
void button.offsetWidth;
requestAnimationFrame(() => {
button.style.width = "8px";
button.style.padding = "0";
button.style.filter = "blur(8px)";
button.style.margin = "0 -8px";
button.style.opacity = "0";
setTimeout(() => {
button.style.transition = "";
}, 400);
});
if (!noAnimation) {
setTimeout(function () {
button.style.display = "none";
}, 400);
} else {
button.style.display = "none";
}
}
}
theBarThingExtend(muteButton, false, true);
expandButton.addEventListener('click', () => {
if (theBarThingExtended) {
expandButtonIcon.style.transform = "rotate(0deg)";
theBarThingExtended = false;
theBarThingExtend(muteButton, false);
} else {
expandButtonIcon.style.transform = "rotate(180deg)";
theBarThingExtended = true;
theBarThingExtend(muteButton, true);
}
});
handleMuteTab(true);
theBarThing.querySelector('.DLP_Inset_Button_2_ID').addEventListener('click', () => {
handleMuteTab();
});
}
function updateCounter() {
let button = theBarThing.querySelector('.DLP_Inset_Button_1_ID');
let text = button.querySelector('.DLP_Inset_Text_1_ID');
if (storageSession.legacy[storageSession.legacy.status].type === 'infinity' && text.textContent !== 'Infinity') {
setButtonState(button, { button: 'rgb(var(--color-snow), 0.84)', outline: 'rgb(var(--color-swan))', text: 'rgb(var(--color-black-text))', icon: 'rgb(var(--color-black-text))' }, { text: 'Infinity', icon: '' }, { text: '', icon: '' });
} else if (storageSession.legacy[storageSession.legacy.status].type === 'xp' && text.textContent !== String(storageSession.legacy[storageSession.legacy.status].amount + ' XP Left')) {
setButtonState(button, { button: 'rgb(var(--color-snow), 0.84)', outline: 'rgb(var(--color-swan))', text: 'rgb(var(--color-black-text))', icon: 'rgb(var(--color-black-text))' }, { text: String(storageSession.legacy[storageSession.legacy.status].amount + ' XP Left'), icon: '' }, { text: '', icon: '' });
} else if (storageSession.legacy[storageSession.legacy.status].type === 'time') {
const totalSeconds = storageSession.legacy[storageSession.legacy.status].amount;
let timeText;
if (totalSeconds <= 0) {
timeText = 'Finishing Up';
} else {
const minutes = Math.floor(totalSeconds / 60);
const seconds = totalSeconds % 60;
if (minutes > 0 && seconds > 0) {
timeText = `${minutes}m ${seconds}s Left`;
} else if (minutes > 0) {
timeText = `${minutes}m Left`;
} else {
timeText = `${seconds}s Left`;
}
}
if (text.textContent !== timeText) {
setButtonState(button, { button: 'rgb(var(--color-snow), 0.84)', outline: 'rgb(var(--color-swan))', text: 'rgb(var(--color-black-text))', icon: 'rgb(var(--color-black-text))' }, { text: timeText, icon: '' }, { text: '', icon: '' });
}
} else if (window.location.pathname === '/practice') {
if (storageSession.legacy[storageSession.legacy.status].amount === 1 && text.textContent !== 'Last Practice') {
setButtonState(button, { button: 'rgb(var(--color-snow), 0.84)', outline: 'rgb(var(--color-swan))', text: 'rgb(var(--color-black-text))', icon: 'rgb(var(--color-black-text))' }, { text: 'Last Practice', icon: '' }, { text: '', icon: '' });
} else if (storageSession.legacy[storageSession.legacy.status].amount === 0 && text.textContent !== 'Finishing Up') {
setButtonState(button, { button: 'rgb(var(--color-snow), 0.84)', outline: 'rgb(var(--color-swan))', text: 'rgb(var(--color-black-text))', icon: 'rgb(var(--color-black-text))' }, { text: 'Finishing Up', icon: '' }, { text: '', icon: '' });
} else if (storageSession.legacy[storageSession.legacy.status].amount > 1 && text.textContent !== String(storageSession.legacy[storageSession.legacy.status].amount + ' Practices Left')) {
setButtonState(button, { button: 'rgb(var(--color-snow), 0.84)', outline: 'rgb(var(--color-swan))', text: 'rgb(var(--color-black-text))', icon: 'rgb(var(--color-black-text))' }, { text: String(storageSession.legacy[storageSession.legacy.status].amount + ' Practices Left'), icon: '' }, { text: '', icon: '' });
}
} else if (storageSession.legacy[storageSession.legacy.status].type === 'lesson') {
if (storageSession.legacy[storageSession.legacy.status].amount === 1 && text.textContent !== 'Last Lesson') {
setButtonState(button, { button: 'rgb(var(--color-snow), 0.84)', outline: 'rgb(var(--color-swan))', text: 'rgb(var(--color-black-text))', icon: 'rgb(var(--color-black-text))' }, { text: 'Last Lesson', icon: '' }, { text: '', icon: '' });
} else if (storageSession.legacy[storageSession.legacy.status].amount === 0 && text.textContent !== 'Finishing Up') {
setButtonState(button, { button: 'rgb(var(--color-snow), 0.84)', outline: 'rgb(var(--color-swan))', text: 'rgb(var(--color-black-text))', icon: 'rgb(var(--color-black-text))' }, { text: 'Finishing Up', icon: '' }, { text: '', icon: '' });
} else if (storageSession.legacy[storageSession.legacy.status].amount > 1 && text.textContent !== String(storageSession.legacy[storageSession.legacy.status].amount + ' Lessons Left')) {
setButtonState(button, { button: 'rgb(var(--color-snow), 0.84)', outline: 'rgb(var(--color-swan))', text: 'rgb(var(--color-black-text))', icon: 'rgb(var(--color-black-text))' }, { text: String(storageSession.legacy[storageSession.legacy.status].amount + ' Lessons Left'), icon: '' }, { text: '', icon: '' },);
}
}
}
updateCounter();
// Time mode countdown timer
if (storageSession.legacy[storageSession.legacy.status].type === 'time') {
const legacyTimeInterval = setInterval(() => {
if (!storageSession.legacy.status || storageSession.legacy[storageSession.legacy.status].type !== 'time') {
clearInterval(legacyTimeInterval);
return;
}
if (storageSession.legacy[storageSession.legacy.status].amount > 0) {
storageSession.legacy[storageSession.legacy.status].amount -= 1;
saveStorageSession();
updateCounter();
}
}, 1000);
}
let isTheBarThingButtonBusy = false;
function handleMuteTab(visualOnly = false) {
if (!visualOnly) {
if (isTheBarThingButtonBusy) return;
isTheBarThingButtonBusy = true;
storageLocal.settings.muteLessons = !storageLocal.settings.muteLessons;
saveStorageLocal();
muteTab(storageLocal.settings.muteLessons);
}
let button = theBarThing.querySelector('.DLP_Inset_Button_2_ID');
if (storageLocal.settings.muteLessons) {
setButtonState(button, { button: 'rgb(var(--color-snow), 0.84)', outline: 'rgb(var(--color-swan))', text: 'rgb(var(--color-black-text))', icon: 'rgb(var(--color-black-text))' }, { text: 'Muted', icon: '' }, { text: '', icon: ' ' }, () => {
setTimeout(() => {
if (!visualOnly) isTheBarThingButtonBusy = false;
}, 400);
});
} else {
setButtonState(button, { button: 'rgb(var(--color-snow), 0.84)', outline: 'rgb(var(--color-swan))', text: 'rgb(var(--color-black-text))', icon: 'rgb(var(--color-black-text))' }, { text: 'Mute', icon: '' }, { text: '', icon: ' ' }, () => {
setTimeout(() => {
if (!visualOnly) isTheBarThingButtonBusy = false;
}, 400);
});
}
}
let duolingoPROTheThingBarDisappearObserverTimeout = null;
new MutationObserver((mutations, observer) => {
if (duolingoPROTheThingBarDisappearObserverTimeout) return;
if (!document.querySelector('.auto-solver-btn.solve-btn, .auto-solver-btn.solving-btn')) {
duolingoPROTheThingBarDisappearObserverTimeout = setTimeout(() => {
initDuolingoPROTheBarThingObserver();
duolingoPROTheThingBarDisappearObserverTimeout = null;
observer.disconnect();
}, 50);
}
}).observe(document.documentElement, {
childList: true,
subtree: true
});
}
}
function syncReactLookupByContext() {
const isStoryContext = document.querySelector('.FmlUF') !== null
|| document.querySelector('[data-test="stories-player-continue"], [data-test="stories-player-done"], [data-test="story-start"]') !== null;
if (isStoryContext) {
findReactMainElementClass = STORY_REACT_MAIN_ELEMENT_CLASS;
reactTraverseUp = STORY_REACT_TRAVERSE_UP;
} else {
findReactMainElementClass = DEFAULT_REACT_MAIN_ELEMENT_CLASS;
reactTraverseUp = DEFAULT_REACT_TRAVERSE_UP;
}
}
function addButtons() {
if (!storageLocal.settings.showSolveButtons) return;
if (window.location.pathname === '/learn' && document.querySelector('a[data-test="global-practice"]')) return;
if (document.querySelector("#solveAllButton")) return;
document.querySelector('[data-test="quit-button"]')?.addEventListener('click', function outerHandler() {
let wasSolving = isAutoMode;
if (wasSolving) solving("stop");
setTimeout(() => {
document.addEventListener('click', function handler2916(e) {
const el = document.querySelector('._3fmUm.c1Mv-._1ursp._7jW2t._3GC5C._2xxrg.vSCTx._27kss');
if (el && el.contains(e.target)) {
// For time mode, convert remaining seconds to minutes (rounded up)
const status = storageSession.legacy.status;
if (status && storageSession.legacy[status]?.type === 'time') {
const remainingSeconds = storageSession.legacy[status].amount;
storageSession.legacy[status].amount = Math.ceil(remainingSeconds / 60);
}
storageSession.legacy.status = false;
saveStorageSession();
} else {
if (wasSolving) solving("start");
}
document.removeEventListener('click', handler2916);
});
}, 200);
});
function createButton(id, text, styleClass, eventHandlers) {
const button = document.createElement('button');
button.id = id;
button.innerText = text;
button.className = styleClass;
Object.keys(eventHandlers).forEach(event => {
const handler = eventHandlers[event];
button.addEventListener(event, (e) => {
handler();
// Or, if you still want access to the event, pass it as a named second arg:
// handler(undefined, e);
});
});
return button;
}
syncReactLookupByContext();
const nextButton = document.querySelector('[data-test="player-next"]');
const storiesContinueButton = document.querySelector('[data-test="stories-player-continue"]');
const storiesDoneButton = document.querySelector('[data-test="stories-player-done"]');
const target = nextButton || storiesContinueButton || storiesDoneButton;
if (document.querySelector('[data-test="story-start"]') && storageSession.legacy.status) {
document.querySelector('[data-test="story-start"]').click();
}
if (target) {
if (document.querySelector('.MYehf') !== null) {
document.querySelector('.MYehf').style.display = "flex";
document.querySelector('.MYehf').style.gap = "20px";
} else if (document.querySelector(".FmlUF") !== null) { // Story
document.querySelector('._3TJzR').style.display = "flex";
document.querySelector('._3TJzR').style.gap = "20px";
}
const buttonsCSS = document.createElement('style');
buttonsCSS.innerHTML = HTML4;
document.head.appendChild(buttonsCSS);
const solveButtonCopy = createButton('solveAllButton', systemText[systemLanguage][101], 'auto-solver-btn solving-btn', { click: solving });
const solveAllButtonCopy = createButton('', systemText[systemLanguage][100], 'auto-solver-btn solve-btn', { click: solve });
target.parentElement.appendChild(solveAllButtonCopy);
target.parentElement.appendChild(solveButtonCopy);
if (storageSession.legacy.status) {
if (!isAutoMode) solving("start");
else updateSolveButtonText(systemText[systemLanguage][102]);
muteTab(storageLocal.settings.muteLessons);
}
let duolingoPROSolveButtonsDisappearObserverTimeout = null;
new MutationObserver((mutations, observer) => {
if (duolingoPROSolveButtonsDisappearObserverTimeout) return;
if (!document.querySelector('.auto-solver-btn, .solve-btn')) {
duolingoPROSolveButtonsDisappearObserverTimeout = setTimeout(() => {
initDuolingoPROSolveButtonsObserver();
duolingoPROSolveButtonsDisappearObserverTimeout = null;
observer.disconnect();
}, 50);
}
}).observe(document.documentElement, {
childList: true,
subtree: true
});
}
}
let duolingoPROTheBarThingObserver = null;
function initDuolingoPROTheBarThingObserver() {
if (duolingoPROTheBarThingObserver) duolingoPROTheBarThingObserver.disconnect();
let initDuolingoPROTheBarThingObserverTimeout = null;
duolingoPROTheBarThingObserver = new MutationObserver((mutations) => {
if (initDuolingoPROTheBarThingObserverTimeout) return;
if (document.querySelector('._1zcW8, .mAxZF')) {
initDuolingoPROTheBarThingObserverTimeout = setTimeout(() => {
DuolingoPROTheBarThing();
initDuolingoPROTheBarThingObserverTimeout = null;
duolingoPROTheBarThingObserver.disconnect();
duolingoPROTheBarThingObserver = null;
}, 50);
}
});
duolingoPROTheBarThingObserver.observe(document.body, {
childList: true,
subtree: true
});
}
initDuolingoPROTheBarThingObserver();
let duolingoPROSolveButtonsObserver = null;
function initDuolingoPROSolveButtonsObserver() {
if (duolingoPROSolveButtonsObserver) duolingoPROSolveButtonsObserver.disconnect();
let initDuolingoPROSolveButtonsObserverTimeout = null;
if (document.querySelector('[data-test="player-next"], [data-test="stories-player-continue"], [data-test="stories-player-done"], [data-test="story-start"]')) {
addButtons();
return;
}
duolingoPROSolveButtonsObserver = new MutationObserver((mutations) => {
if (initDuolingoPROSolveButtonsObserverTimeout) return;
if (document.querySelector('[data-test="player-next"], [data-test="stories-player-continue"], [data-test="stories-player-done"], [data-test="story-start"]')) {
initDuolingoPROSolveButtonsObserverTimeout = setTimeout(() => {
addButtons();
initDuolingoPROSolveButtonsObserverTimeout = null;
duolingoPROSolveButtonsObserver.disconnect();
duolingoPROSolveButtonsObserver = null;
}, 50);
}
});
duolingoPROSolveButtonsObserver.observe(document.body, {
childList: true,
subtree: true
});
}
initDuolingoPROSolveButtonsObserver();
let notificationCount = 0;
let currentNotification = [];
let notificationsHovered = false;
const notificationMain = document.querySelector('.DLP_Notification_Main');
notificationMain.addEventListener('mouseenter', () => {
notificationsHovered = true;
});
notificationMain.addEventListener('mouseleave', () => {
notificationsHovered = false;
});
function showNotification(icon, head, body, time = 0) {
notificationCount++;
let notificationID = notificationCount;
currentNotification.push(notificationID);
let element = new DOMParser().parseFromString(HTML3, 'text/html').body.firstChild;
element.id = 'DLP_Notification_Box_' + notificationID + '_ID';
notificationMain.appendChild(element);
initializeMagneticHover(element.querySelector('.DLP_Inset_Icon_2_ID'));
let iconElement = element.querySelector('.DLP_Inset_Icon_1_ID');
if (icon === "") {
iconElement.style.display = 'none';
playHaptic();
} else if (icon === "checkmark") {
iconElement.style.color = "rgb(var(--DLP-green))";
iconElement.textContent = "";
playHaptic("success");
} else if (icon === "warning") {
iconElement.style.color = "rgb(var(--DLP-orange))";
iconElement.textContent = "";
playHaptic("warning");
} else if (icon === "error") {
iconElement.style.color = "rgb(var(--DLP-pink))";
iconElement.textContent = "";
playHaptic("error");
} else {
iconElement.style.color = icon.color;
iconElement.textContent = icon.icon;
playHaptic();
}
element.querySelector('.DLP_Inset_Text_1_ID').innerHTML = head;
if (body && body !== "") {
element.querySelector('.DLP_Inset_Text_2_ID').innerHTML = body;
} else {
element.querySelector('.DLP_Inset_Text_2_ID').style.display = "none";
}
let notification = document.querySelector(
'#DLP_Notification_Box_' + notificationID + '_ID'
);
let notificationHeight = notification.offsetHeight;
notification.style.bottom = '-' + notificationHeight + 'px';
setTimeout(() => {
requestAnimationFrame(() => {
notification.style.bottom = "16px";
notification.style.filter = "blur(0px)";
notification.style.opacity = "1";
});
}, 50);
let isBusyDisappearing = false;
let timerData = null;
if (time !== 0) {
timerData = {
remaining: time * 1000,
lastTimestamp: Date.now(),
timeoutHandle: null,
paused: false,
};
timerData.timeoutHandle = setTimeout(internalDisappear, timerData.remaining);
}
let repeatInterval = setInterval(() => {
if (document.body.offsetWidth <= 963) {
requestAnimationFrame(() => {
notificationMain.style.width = "300px";
notificationMain.style.position = "fixed";
notificationMain.style.left = "16px";
});
} else {
requestAnimationFrame(() => {
notificationMain.style.width = "";
notificationMain.style.position = "";
notificationMain.style.left = "";
});
}
if (isBusyDisappearing) return;
if (timerData) {
if (notificationsHovered && !timerData.paused) {
clearTimeout(timerData.timeoutHandle);
let elapsed = Date.now() - timerData.lastTimestamp;
timerData.remaining -= elapsed;
timerData.paused = true;
}
if (!notificationsHovered && timerData.paused) {
timerData.paused = false;
timerData.lastTimestamp = Date.now();
timerData.timeoutHandle = setTimeout(internalDisappear, timerData.remaining);
}
}
if (notificationsHovered) {
let allIDs = currentNotification.slice();
let bottoms = {};
let currentBottom = 16;
for (let i = allIDs.length - 1; i >= 0; i--) {
let notifEl = document.querySelector(
'#DLP_Notification_Box_' + allIDs[i] + '_ID'
);
if (!notifEl) continue;
notifEl.style.width = "";
notifEl.style.height = "";
notifEl.style.transform = "";
bottoms[allIDs[i]] = currentBottom;
currentBottom += notifEl.offsetHeight + 8;
}
notification.style.bottom = bottoms[notificationID] + "px";
let totalHeight = 0;
for (let i = 0; i < allIDs.length; i++) {
let notifEl = document.querySelector(
'#DLP_Notification_Box_' + allIDs[i] + '_ID'
);
if (notifEl) {
totalHeight += notifEl.offsetHeight;
}
}
if (allIDs.length > 1) {
totalHeight += (allIDs.length - 1) * 8;
}
notificat
gitextract_917tfqi7/ ├── Duolingo-PRO-BETA.user.js ├── LICENSE └── README.md
SYMBOL INDEX (24 symbols across 1 files)
FILE: Duolingo-PRO-BETA.user.js
constant VERSION_NUMBER (line 13) | const VERSION_NUMBER = "09";
constant STORAGE_LOCAL_VERSION (line 14) | const STORAGE_LOCAL_VERSION = "09";
constant STORAGE_SESSION_VERSION (line 15) | const STORAGE_SESSION_VERSION = "09";
constant VERSION_NAME (line 16) | const VERSION_NAME = "BETA.04.4";
constant VERSION_FULL (line 17) | const VERSION_FULL = "3.1BETA.04.4";
constant VERSION_FORMAL (line 18) | const VERSION_FORMAL = "3.1 BETA.04.4";
constant DEFAULT_REACT_MAIN_ELEMENT_CLASS (line 35) | const DEFAULT_REACT_MAIN_ELEMENT_CLASS = '_3yE3H';
constant DEFAULT_REACT_TRAVERSE_UP (line 36) | const DEFAULT_REACT_TRAVERSE_UP = 1;
constant STORY_REACT_MAIN_ELEMENT_CLASS (line 37) | const STORY_REACT_MAIN_ELEMENT_CLASS = '_3TJzR';
constant STORY_REACT_TRAVERSE_UP (line 38) | const STORY_REACT_TRAVERSE_UP = 0;
function duplicateCheck (line 65) | function duplicateCheck() {
constant CSS1 (line 199) | let CSS1;
constant HTML2 (line 200) | let HTML2;
constant CSS2 (line 201) | let CSS2;
constant HTML3 (line 202) | let HTML3;
constant HTML4 (line 203) | let HTML4;
constant HTML5 (line 204) | let HTML5;
constant CSS5 (line 205) | let CSS5;
constant HTML6 (line 206) | let HTML6;
constant CSS6 (line 207) | let CSS6;
constant HTML7 (line 208) | let HTML7;
constant CSS7 (line 209) | let CSS7;
function Two (line 211) | function Two() {
function One (line 2551) | function One() {
Condensed preview — 3 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (557K chars).
[
{
"path": "Duolingo-PRO-BETA.user.js",
"chars": 535553,
"preview": "// ==UserScript==\n// @name Duolingo PRO\n// @namespace http://duolingopro.net\n// @version 3.1BETA.04.4\n//"
},
{
"path": "LICENSE",
"chars": 1074,
"preview": "MIT License\n\nCopyright (c) 2023 anonymoushackerIV\n\nPermission is hereby granted, free of charge, to any person obtaining"
},
{
"path": "README.md",
"chars": 4050,
"preview": "<p align=\"center\">\n <img src=\"https://github.com/anonymoushackerIV/Duolingo-Pro-BETA/blob/main/assets/readme/logo.png\" "
}
]
About this extraction
This page contains the full source code of the anonymoushackerIV/Duolingo-Pro-BETA GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 3 files (528.0 KB), approximately 129.4k tokens, and a symbol index with 24 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.