public static async Task Run()
        {
            foreach (string profileName in GenshinSharedUtils.ProfileNames)
            {
                try
                {
                    Console.WriteLine("Profile: " + profileName);

                    var profilePath = Paths.GetChromiumUserDataDir(profileName);
                    PptrUtils.ProfilePath = profilePath;
                    _page = PptrUtils.Page;

                    const string url = "https://webstatic-sea.mihoyo.com/ys/event/e20211203-album/index.html";
                    await _page.GoToAsync(url, WaitUntilNavigation.Load);

                    if (!await GenshinSharedUtils.CheckAuth(_page))
                    {
                        throw new Exception("Auth problem!");
                    }

                    Thread.Sleep(30000); /* wait animation */

                    await PptrUtils.WaitAndClick("div.main-button.main-button__left", PptrUtils.LongSelectorAwaiter);

                    Thread.Sleep(3000);

                    ElementHandle[] dayDivs = (await _page.QuerySelectorAllAsync("div"))
                                              .Where(div => div.EvaluateFunctionAsync <string>("e => e.className").Result.Contains("day-list-item"))
                                              .ToArray();

                    foreach (ElementHandle dayDiv in dayDivs)
                    {
                        await dayDiv.ClickAsync();

                        Thread.Sleep(1000);

                        ElementHandle[] getDivs = (await _page.QuerySelectorAllAsync("div"))
                                                  .Where(div => div.EvaluateFunctionAsync <string>("e => e.innerHTML").Result == "Получить")
                                                  .ToArray();

                        foreach (ElementHandle getDiv in getDivs)
                        {
                            await getDiv.ClickAsync();

                            Thread.Sleep(1000);
                        }
                    }

                    _page.QuerySelectorAsync("div[class^='components-topNav-assets-__topNav_---close-btn---']").Result
                    .ClickAsync().GetAwaiter().GetResult();
                    Thread.Sleep(3000);

                    await PptrUtils.WaitAndClick("div.main-button.main-button__right", PptrUtils.LongSelectorAwaiter);

                    Thread.Sleep(3000);

                    (await _page.QuerySelectorAllAsync("div"))
                    .FirstOrDefault(div => div.EvaluateFunctionAsync <string>("e => e.innerHTML").Result == "Отмена")
                    ?.ClickAsync().GetAwaiter().GetResult();
                    Thread.Sleep(1000);

                    await PptrUtils.WaitAndClick("div.button-spot__progress", PptrUtils.LongSelectorAwaiter);

                    Thread.Sleep(3000);

                    ElementHandle[] awardIcons = await _page.QuerySelectorAllAsync("div[class^='components-award-assets-__award_---icon---'");

                    foreach (ElementHandle awardIcon in awardIcons)
                    {
                        await awardIcon.ClickAsync();

                        Thread.Sleep(1000);

                        //grab award
                        (await _page.QuerySelectorAllAsync("div"))
                        .FirstOrDefault(div => div.EvaluateFunctionAsync <string>("e => e.innerHTML").Result == "Получить")
                        ?.ClickAsync().GetAwaiter().GetResult();
                        Thread.Sleep(1000);
                        await PptrUtils.ClickIfExists("div[class^='components-result-assets-__result_---click-close---'");
                    }

                    Console.WriteLine("debug");
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                }
                finally
                {
                    await PptrUtils.CloseAsync();
                }
            }
        }
        public static async Task Run()
        {
            await GrabAnswers();

            foreach (string profileName in GenshinSharedUtils.ProfileNames)
            {
                try
                {
                    Console.WriteLine("Profile: " + profileName);

                    var profilePath = Paths.GetChromiumUserDataDir(profileName);
                    PptrUtils.ProfilePath = profilePath;
                    _page = PptrUtils.Page;

                    const string url = "https://webstatic-sea.hoyoverse.com/ys/event/answer-question/index.html?activity_no=2f151b0c13924d49#";
                    await _page.GoToAsync(url, WaitUntilNavigation.Load);

                    Thread.Sleep(5310); //wait error message disappear

                    // if (!await GenshinSharedUtils.CheckAuth(_page)) throw new Exception("Auth problem!");

                    await PptrUtils.ClickIfExists("p.top-btn-title");

                    const string questionSelector = "p[class^='components-game-assets-qa-info___title--'] p[class^='components-game-assets-qa-info___text--']";
                    const string variantsSelector = "div[class^='components-game-assets-qa-info___options-item--'][class^='components-game-assets-qa-info___options-']";
                    var          variantCleaner   = new Regex(@"^[A-Z]+\.\s");

                    for (int i = 0; i < 11; i++)
                    {
                        Thread.Sleep(3555); //wait animation

                        var questionTag = await _page.QuerySelectorAsync(questionSelector);

                        if (questionTag == null)
                        {
                            continue;
                        }
                        var questionText = await questionTag.EvaluateFunctionAsync <string>("e => e.innerText");

                        questionText = ProcessString(questionText);

                        var answers = QaDict.Where(qa => qa[0] == questionText).ToList();

                        if (answers.Count == 0)
                        {
                            #if (DEBUG)
                            Console.WriteLine("Unknown question: " + questionText);
                            #endif

                            #if (!DEBUG)
                            throw new Exception("Unknown question: " + questionText);
                            #endif
                        }

                        var variants = await _page.QuerySelectorAllAsync(variantsSelector);

                        bool answered = false;
                        foreach (var variant in variants)
                        {
                            var variantText = await variant.EvaluateFunctionAsync <string>("e => e.innerText");

                            variantText = variantCleaner.Replace(variantText, "");
                            variantText = ProcessString(variantText);
                            bool isRight = answers.Any(qa => qa[1] == variantText);
                            if (!isRight)
                            {
                                continue;
                            }
                            answered = true;
                            await variant.ClickAsync();

                            break;
                        }
                        if (answered)
                        {
                            continue;
                        }
                        foreach (var variant in variants)
                        {
                            var variantText = await variant.EvaluateFunctionAsync <string>("e => e.innerText");

                            variantText = variantCleaner.Replace(variantText, "");
                            variantText = ProcessString(variantText);
                            bool isSimilar = answers.Any(qa => CalculateSimilarity(variantText, qa[1]) > 0.5);
                            if (!isSimilar)
                            {
                                continue;
                            }
                            await variant.ClickAsync();

                            break;
                        }
                    }
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                }
                finally
                {
                    await PptrUtils.CloseAsync();
                }
            }
        }