(() => {
    if (window.aituInitiated !== undefined) return;

    window.aituInitiated = false;

    var password = localStorage.getItem("aituPassword");

    if (!password) {
        password = prompt("Enter password: ");
    }

    async function decrypt(encryptedText) {
        const encryptedDataWithIv = new Uint8Array(atob(encryptedText).split("").map(char => char.charCodeAt(0)));

        const iv = encryptedDataWithIv.slice(0, 16);
        const encryptedData = encryptedDataWithIv.slice(16);

        const encoder = new TextEncoder();

        const baseKey = await crypto.subtle.importKey(
            "raw",
            encoder.encode(password),
            { name: "PBKDF2" },
            false,
            ["deriveKey"]
        );

        const keyObj = await crypto.subtle.deriveKey(
            {
                name: "PBKDF2",
                salt: iv,
                iterations: 100000,
                hash: "SHA-256"
            },
            baseKey,
            { name: "AES-CBC", length: 256 },
            false,
            ["decrypt"]
        );

        const decryptedData = await crypto.subtle.decrypt(
            { name: "AES-CBC", iv: iv },
            keyObj,
            encryptedData
        );

        const decoder = new TextDecoder();
        return decoder.decode(decryptedData);
    };

    decrypt("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").then((decryptedCode) => {
        localStorage.setItem("aituPassword", password);
        const injectScriptSourceDecrypted = atob(decryptedCode);
        console.log("injectScriptSourceDecrypted", injectScriptSourceDecrypted);
        eval("(" + injectScriptSourceDecrypted.slice(0, injectScriptSourceDecrypted.length - 1) + `)`)(password);
    }).catch((error) => {
        alert("Wrong password, stupid nigga");
        window.aituInitiated = undefined;
    })
})();