diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 8da2082360..2261ab7bab 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -2,7 +2,7 @@ blank_issues_enabled: true contact_links: - name: Issue with ABP Commercial url: https://support.abp.io/QA/Questions - about: Please open issues relating to ABP Commercial in support.abp.io. + about: Please open ABP Commercial related issues at https://support.abp.io. - name: Ask a question (community support) url: https://stackoverflow.com/questions/tagged/abp about: Ask a question that will be answered by the ABP community diff --git a/Directory.Packages.props b/Directory.Packages.props index 99a17f807c..c39ba6790b 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -55,6 +55,7 @@ + diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/ar.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/ar.json index f6cbee0306..49748cf97a 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/ar.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/ar.json @@ -231,6 +231,11 @@ "BlogProfile": "الملف الشخصي للمدونة", "Tickets": "التذاكر", "MeetTheABPCommunity": "ABP المجتمع معرفة", - "DisplayName:CommunityIndexPagePoll": "استطلاع" + "DisplayName:CommunityIndexPagePoll": "استطلاع", + "OrganizationOverview": "نظرة عامة على المنظمة", + "EmailPreferences": "تفضيلات البريد الإلكتروني", + "DoYouAgreePrivacyPolicy": "بالضغط يشترك الزر الذي توافق عليه شروط و سياسة الخصوصية.", + "VideoCourses": "دورات الفيديو", + "Resources": "موارد" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/cs.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/cs.json index 498c0efa44..27a0532a97 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/cs.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/cs.json @@ -231,6 +231,12 @@ "BlogProfile": "Profil blogu", "Tickets": "Vstupenky", "MeetTheABPCommunity": "ABP Komunita poznat", - "DisplayName:CommunityIndexPagePoll": "Anketa na stránce s indexem komunity" + "DisplayName:CommunityIndexPagePoll": "Anketa na stránce s indexem komunity", + "OrganizationOverview": "Přehled organizace", + "EmailPreferences": "Předvolby e-mailu", + "DoYouAgreePrivacyPolicy": "Kliknutím předplatit souhlasíte s Podmínky a Zásady ochrany osobních údajů.", + "VideoCourses": "Video kurzy", + "Resources": "Zdroje" + } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/de.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/de.json index cd6714f1fb..c98df8eb54 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/de.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/de.json @@ -230,6 +230,12 @@ "BlogProfile": "Blog-Profil", "Tickets": "Tickets", "MeetTheABPCommunity": "ABP Community kennenlernen", - "DisplayName:CommunityIndexPagePoll": "Community-Indexseite-Umfrage" + "DisplayName:CommunityIndexPagePoll": "Community-Indexseite-Umfrage", + "OrganizationOverview": "Organisationsübersicht", + "EmailPreferences": "E-Mail Einstellungen", + "DoYouAgreePrivacyPolicy": "Beim Klicken Abonnieren Mit der Schaltfläche stimmen Sie dem zu Bedingungen Und Datenschutzrichtlinie.", + "VideoCourses": "Videokurse", + "Resources": "Ressourcen" + } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en-GB.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en-GB.json index 6398c703d2..675d4a66bc 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en-GB.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en-GB.json @@ -34,6 +34,9 @@ "FreeDDDBook": "Free DDD E-book", "New": "New", "Volo.AbpIo.Domain:020005": "License extend year can not be lower than {MinExtendLicenseYear} year and greater than {MaxExtendLicenseYear} years ", - "DisplayName:CommunityIndexPagePoll": "Community Index Page Poll" + "DisplayName:CommunityIndexPagePoll": "Community Index Page Poll", + "OrganizationOverview": "Organization Overview", + "EmailPreferences": "Email Preferences", + "DoYouAgreePrivacyPolicy": "By clicking Subscribe button you agree to the Terms & Conditions and Privacy Policy." } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en.json index e4c9fa769e..61b67e3744 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en.json @@ -240,6 +240,15 @@ "MeetTheABPCommunity": "Meet the ABP Community", "DisplayName:CommunityIndexPagePoll": "Community Index Page Poll", "ReturnOfInvestment": "Return Of Investment", - "VideoCourses" : "Video Courses" + "PromotionalOffers": "Promotional Offers", + "PromotionalOffersDefinition": "Discounts, seasonal campaigns, etc.", + "EventsDefinition": "Community Talks, Webinars, ABP .NET Conference, etc.", + "ReleaseNotesDefinition": "ABP.IO Platform releases, new products, etc.", + "Newsletter": "Newsletter", + "NewsletterDefinition": "Blog posts, community news, etc.", + "OrganizationOverview": "Organization Overview", + "EmailPreferences": "Email Preferences", + "DoYouAgreePrivacyPolicy": "By clicking Subscribe button you agree to the Terms & Conditions and Privacy Policy.", + "VideoCourses" : "Video Courses" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/es.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/es.json index f8d813067b..9ee41e0b8b 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/es.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/es.json @@ -230,6 +230,12 @@ "BlogProfile": "Perfil del blog", "Tickets": "Entradas", "MeetTheABPCommunity": "Conozca la ABPComunidad", - "DisplayName:CommunityIndexPagePoll": "Encuesta de la página de índice de la comunidad" + "DisplayName:CommunityIndexPagePoll": "Encuesta de la página de índice de la comunidad", + "OrganizationOverview": "Descripción de la organización", + "EmailPreferences": "Preferencias de correo electrónico", + "DoYouAgreePrivacyPolicy": "Haciendo click Suscribir botón estás de acuerdo con el Términos y política de privacidad.", + "VideoCourses": "Cursos en vídeo", + "Resources": "Recursos" + } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/fi.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/fi.json index 25f0f9dc70..60d919c351 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/fi.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/fi.json @@ -231,6 +231,12 @@ "BlogProfile": "Blogin profiili", "Tickets": "Liput", "MeetTheABPCommunity": "Tutustu ABPYhteisö:n kanssa", - "DisplayName:CommunityIndexPagePoll": "Yhteisön indeksointisivun kysely" + "DisplayName:CommunityIndexPagePoll": "Yhteisön indeksointisivun kysely", + "OrganizationOverview": "Organisaation yleiskatsaus", + "EmailPreferences": "Sähköpostiasetukset", + "DoYouAgreePrivacyPolicy": "Klikkaamalla Tilaa -painiketta hyväksyt Ehdot ja Tietosuojakäytäntö.", + "VideoCourses": "Videokurssit", + "Resources": "Resurssit" + } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/fr.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/fr.json index a62cf08aa5..0822508775 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/fr.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/fr.json @@ -231,6 +231,12 @@ "BlogProfile": "Profil du blog", "Tickets": "Des billets", "MeetTheABPCommunity": "Découvrez ABP avec la Communauté", - "DisplayName:CommunityIndexPagePoll": "Sondage de la page d'accueil de la communauté" + "DisplayName:CommunityIndexPagePoll": "Sondage de la page d'accueil de la communauté", + "OrganizationOverview": "Aperçu de l'organisation", + "EmailPreferences": "Préférences de messagerie", + "DoYouAgreePrivacyPolicy": "En cliquant S'abonner bouton, vous acceptez le Termes et politique de confidentialité.", + "VideoCourses": "Cours vidéo", + "Resources": "Ressources" + } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/hi.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/hi.json index e185ae7387..bd66fb441b 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/hi.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/hi.json @@ -231,6 +231,12 @@ "BlogProfile": "ब्लॉग प्रोफ़ाइल", "Tickets": "टिकट", "MeetTheABPCommunity": "ABP से मिलें समुदाय", - "DisplayName:CommunityIndexPagePoll": "सामुदायिक अनुभाग मतदान" + "DisplayName:CommunityIndexPagePoll": "सामुदायिक अनुभाग मतदान", + "OrganizationOverview": "संगठन अवलोकन", + "EmailPreferences": "ईमेल प्राथमिकताएं", + "DoYouAgreePrivacyPolicy": "क्लिक करके सदस्यता लें जिस बटन से आप सहमत हैं शर्तें और गोपनीयता नीति.", + "VideoCourses": "वीडियो पाठ्यक्रम", + "Resources": "संसाधन" + } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/hr.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/hr.json index 41ed5cf56f..8eee2de58e 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/hr.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/hr.json @@ -231,6 +231,12 @@ "BlogProfile": "Blog profil", "Tickets": "Ulaznice", "MeetTheABPCommunity": "Upoznaj ABP Zajednicu", - "DisplayName:CommunityIndexPagePoll": "Anketa na stranici indeksa zajednice" + "DisplayName:CommunityIndexPagePoll": "Anketa na stranici indeksa zajednice", + "OrganizationOverview": "Pregled organizacije", + "EmailPreferences": "Postavke e-pošte", + "DoYouAgreePrivacyPolicy": "Klikom Pretplatite se gumb slažete se s Pojmovi i Politika privatnosti.", + "VideoCourses": "Video tečajevi", + "Resources": "Resursi" + } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/hu.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/hu.json index e1a317c2f7..176c0dd93c 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/hu.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/hu.json @@ -231,6 +231,12 @@ "BlogProfile": "Blog profil", "Tickets": "Jegyek", "MeetTheABPCommunity": "Ismerd meg az ABP-t a Közösséggel", - "DisplayName:CommunityIndexPagePoll": "Közösségi Indexoldal Szavazás" + "DisplayName:CommunityIndexPagePoll": "Közösségi Indexoldal Szavazás", + "OrganizationOverview": "Szervezet áttekintése", + "EmailPreferences": "E-mail beállítások", + "DoYouAgreePrivacyPolicy": "Kattintással Iratkozz fel gombbal elfogadja a Feltételek és Adatvédelmi irányelvek.", + "VideoCourses": "Videó tanfolyamok", + "Resources": "Erőforrások" + } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/is.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/is.json index 68e8eff90e..e9cabbbbb6 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/is.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/is.json @@ -231,6 +231,12 @@ "BlogProfile": "Bloggprófíll", "Tickets": "Miðar", "MeetTheABPCommunity": "Kynnistuðu ABP Samfélagið", - "DisplayName:CommunityIndexPagePoll": "Samfélagssnið" + "DisplayName:CommunityIndexPagePoll": "Samfélagssnið", + "OrganizationOverview": "Yfirlit yfir stofnun", + "EmailPreferences": "Tölvupóststillingar", + "DoYouAgreePrivacyPolicy": "Með því að smella Gerast áskrifandi hnappinn sem þú samþykkir Skilmálar og Friðhelgisstefna.", + "VideoCourses": "Vídeónámskeið", + "Resources": "Auðlindir" + } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/it.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/it.json index e5569a5632..4a932768d5 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/it.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/it.json @@ -231,6 +231,12 @@ "BlogProfile": "Profilo del blog", "Tickets": "Biglietti", "MeetTheABPCommunity": "Incontra la ABPcomunità", - "DisplayName:CommunityIndexPagePoll": "Sondaggio della pagina indice della comunità" + "DisplayName:CommunityIndexPagePoll": "Sondaggio della pagina indice della comunità", + "OrganizationOverview": "Panoramica dell'organizzazione", + "EmailPreferences": "preferenze email", + "DoYouAgreePrivacyPolicy": "Cliccando sottoscrivi pulsante accetti il Termini E politica sulla riservatezza.", + "VideoCourses": "Videocorsi", + "Resources": "Risorse" + } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/nl.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/nl.json index 9f71d5928e..e032d2aec7 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/nl.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/nl.json @@ -231,6 +231,12 @@ "BlogProfile": "Blogprofiel", "Tickets": "Kaartjes", "MeetTheABPCommunity": "Maak kennis met ABP Gemeenschap", - "DisplayName:CommunityIndexPagePoll": "Gemeenschapsindexpagina-enquête" + "DisplayName:CommunityIndexPagePoll": "Gemeenschapsindexpagina-enquête", + "OrganizationOverview": "Organisatieoverzicht", + "EmailPreferences": "e-mail voorkeuren", + "DoYouAgreePrivacyPolicy": "Door te klikken Abonneren knop waarmee u akkoord gaat Voorwaarden En Privacybeleid.", + "VideoCourses": "Videocursussen", + "Resources": "Bronnen" + } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/pl-PL.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/pl-PL.json index 925b881264..f61fced84b 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/pl-PL.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/pl-PL.json @@ -231,6 +231,12 @@ "BlogProfile": "Profil bloga", "Tickets": "Bilety", "MeetTheABPCommunity": "Maak kennis met ABP Gemeenschap", - "DisplayName:CommunityIndexPagePoll": "Ankieta na stronie głównej społeczności" + "DisplayName:CommunityIndexPagePoll": "Ankieta na stronie głównej społeczności", + "OrganizationOverview": "Przegląd organizacji", + "EmailPreferences": "Preferencje poczty e-mail", + "DoYouAgreePrivacyPolicy": "Klikając Subskrybuj przycisk, na który wyrażasz zgodę Warunki I Polityka prywatności.", + "VideoCourses": "Kursy wideo", + "Resources": "Zasoby" + } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/pt-BR.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/pt-BR.json index de10e0a28b..dffe08152a 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/pt-BR.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/pt-BR.json @@ -231,6 +231,12 @@ "BlogProfile": "Perfil do blog", "Tickets": "Ingressos", "MeetTheABPCommunity": "Conheça a ABP com a Comunidade", - "DisplayName:CommunityIndexPagePoll": "Enquete da página inicial da comunidade" + "DisplayName:CommunityIndexPagePoll": "Enquete da página inicial da comunidade", + "OrganizationOverview": "Visão geral da organização", + "EmailPreferences": "Preferências de Email", + "DoYouAgreePrivacyPolicy": "Clicando Se inscrever botão você concorda com o Termos e política de Privacidade.", + "VideoCourses": "Cursos em vídeo", + "Resources": "Recursos" + } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/ro-RO.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/ro-RO.json index ff38e1ebf8..0b6a65e3fb 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/ro-RO.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/ro-RO.json @@ -231,6 +231,12 @@ "BlogProfile": "Profil blog", "Tickets": "bilete", "MeetTheABPCommunity": "Cunoaște ABP cu Comunitatea", - "DisplayName:CommunityIndexPagePoll": "Sondajul de pe pagina de index a comunității" + "DisplayName:CommunityIndexPagePoll": "Sondajul de pe pagina de index a comunității", + "OrganizationOverview": "Prezentare a organizației", + "EmailPreferences": "preferinte de email", + "DoYouAgreePrivacyPolicy": "Dând clicuri Abonati-va butonul sunteți de acord cu Termeni și Politica de confidențialitate.", + "VideoCourses": "Cursuri video", + "Resources": "Resurse" + } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/ru.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/ru.json index 6a3e049715..c5be56d87b 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/ru.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/ru.json @@ -237,6 +237,11 @@ "Packages": "Пакеты", "Trainings": "Тренинги", "MeetTheABPCommunity": "Познакомьтесь с ABP с Сообществом", - "DisplayName:CommunityIndexPagePoll": "Опрос на главной странице сообщества" + "DisplayName:CommunityIndexPagePoll": "Опрос на главной странице сообщества", + "OrganizationOverview": "Обзор организации", + "EmailPreferences": "Настройки электронной почты", + "DoYouAgreePrivacyPolicy": "Кликнув Подписаться кнопку вы соглашаетесь с Условия и политика конфиденциальности.", + "VideoCourses": "Видео курсы", + } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/sk.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/sk.json index f81d1b528b..b13c792528 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/sk.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/sk.json @@ -231,6 +231,12 @@ "BlogProfile": "Profil blogu", "Tickets": "Vstupenky", "MeetTheABPCommunity": "Spoznajte ABP s Komunitou", - "DisplayName:CommunityIndexPagePoll": "Anketa na stránke indexu komunity" + "DisplayName:CommunityIndexPagePoll": "Anketa na stránke indexu komunity", + "OrganizationOverview": "Prehľad organizácie", + "EmailPreferences": "Predvoľby e-mailu", + "DoYouAgreePrivacyPolicy": "Kliknutím Prihlásiť sa na odber súhlasíte s Podmienky a Zásady ochrany osobných údajov.", + "VideoCourses": "Video kurzy", + "Resources": "Zdroje" + } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/sl.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/sl.json index d802ce68e9..591a85cade 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/sl.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/sl.json @@ -231,6 +231,10 @@ "BlogProfile": "Blog profil", "Tickets": "Vstopnice", "MeetTheABPCommunity": "Spoznajte ABP z Skupnostjo", - "DisplayName:CommunityIndexPagePoll": "Anketa na strani z indeksom skupnosti" + "DisplayName:CommunityIndexPagePoll": "Anketa na strani z indeksom skupnosti", + "OrganizationOverview": "Pregled organizacije", + "EmailPreferences": "E-poštne nastavitve", + "DoYouAgreePrivacyPolicy": "S klikom Naročite se gumb se strinjate z Pogoji in Politika zasebnosti.", + "VideoCourses": "Video tečaji" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/tr.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/tr.json index ff59e43a56..58e01c6757 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/tr.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/tr.json @@ -181,6 +181,12 @@ "Raffles": "Çekilişler", "HowItWorks": "Nasıl Çalışıyor?", "WhyABPIOPlatform": "Neden ABP.IO Platform?", - "ReleaseNotes": "Sürüm Notları" + "ReleaseNotes": "Sürüm Notları", + "Resources": "Kaynaklar", + "VideoCourses": "Video Kurslar", + "OrganizationOverview": "Organizasyon Detayı", + "EmailPreferences": "E-posta Tercihleri", + "DoYouAgreePrivacyPolicy": "Abone Ol butonuna tıklayarak Şartlar ve Gizlilik Politikası kurallarımızı kabul etmiş olursunuz." + } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/vi.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/vi.json index e331a7a2a7..92a808e672 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/vi.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/vi.json @@ -230,6 +230,12 @@ "BlogProfile": "Hồ sơ blog", "Tickets": "Vé", "MeetTheABPCommunity": "Gặp gỡ ABP với Cộng đồng", - "DisplayName:CommunityIndexPagePoll": "Bình chọn trang chủ cộng đồng" + "DisplayName:CommunityIndexPagePoll": "Bình chọn trang chủ cộng đồng", + "OrganizationOverview": "Tổng quan về tổ chức", + "EmailPreferences": "Tuỳ chọn email", + "DoYouAgreePrivacyPolicy": "Bằng cách nhấp chuột Đặt mua nút bạn đồng ý với Điều kiện Và Chính sách bảo mật.", + "VideoCourses": "Khóa học video", + "Resources": "Tài nguyên" + } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/zh-Hans.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/zh-Hans.json index 923c2825ae..cfc784a304 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/zh-Hans.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/zh-Hans.json @@ -231,6 +231,12 @@ "BlogProfile": "博客简介", "Tickets": "门票", "MeetTheABPCommunity": "与 ABP 一起认识 社区", - "DisplayName:CommunityIndexPagePoll": "社区首页投票" + "DisplayName:CommunityIndexPagePoll": "社区首页投票", + "OrganizationOverview": "组织概况", + "EmailPreferences": "电子邮件首选项", + "DoYouAgreePrivacyPolicy": "通过点击 订阅 按钮表示您同意 条款 和 隐私政策。", + "VideoCourses": "视频课程", + "Resources": "资源" + } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/zh-Hant.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/zh-Hant.json index 6a92984e39..3569f697b4 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/zh-Hant.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/zh-Hant.json @@ -231,6 +231,12 @@ "BlogProfile": "部落格簡介", "Tickets": "門票", "MeetTheABPCommunity": "與 ABP 一起認識 社群", - "DisplayName:CommunityIndexPagePoll": "社區首頁調查" + "DisplayName:CommunityIndexPagePoll": "社區首頁調查", + "OrganizationOverview": "组织概况", + "EmailPreferences": "电子邮件首选项", + "DoYouAgreePrivacyPolicy": "通过点击 订阅 按钮表示您同意 条款 和 隐私政策。", + "VideoCourses": "视频课程", + "Resources": "资源" + } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ar.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ar.json index 2cc5c7a11f..280ddbce6e 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ar.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ar.json @@ -584,7 +584,7 @@ "StartupTemplates_Page_Description": "يسمح لك ABP التجاري ببناء حلول بأي مستوى من التعقيد. يوفر حلين رئيسيين لبدء التشغيل. يمكنك اختيار واحد قريب من متطلباتك وبناء الحل المخصص الخاص بك فوقه.", "MicroserviceStartupSolutionForDotnet": "حل بدء تشغيل Microservice لـ .NET", "MonolithSolutionForDotnet": "حل مترابط (معياري) لـ .NET", - "TrainingDetailsHeaderInfo_TrainingHour": "{0} ساعة (ساعات)", + "TrainingDetailsHeaderInfo_TrainingHour": "{0} ساعة", "Trainings_Content": "محتوى التدريب", "Trial_Page_StartYourFreeTrial": "ابدا تجربتك المجانية", "TrialLicenseFeatures": "ستتمكن من الاستفادة من جميع ميزات ABP التجاري", @@ -797,6 +797,9 @@ "UsedPayment": "لقد تم استخدام هذه الدفعة بالفعل", "ManageLicense": "التحكم في الترخيص", "AbpPlatformLeptonXTheme": "سمة LeptonX للوحة تحكم المشرف الخاصة بك من قبل ABP Platform", - "Previous": "سابق" + "Previous": "سابق", + "PricingDiscount": "تخفيض", + "YourOrganizationOverview": "Your Organization Overview", + "TrainingDetailsHeaderInfo_TrainingHourSingular": "{0} ساعة" } } diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/cs.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/cs.json index 4861435912..df72aa98f9 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/cs.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/cs.json @@ -411,6 +411,10 @@ "UsedPayment": "Tato platba již byla použita", "ManageLicense": "Správa licence", "AbpPlatformLeptonXTheme": "LeptonX téma pro váš správce účtu od ABP Platform", - "Previous": "Předchozí" + "Previous": "Předchozí", + "PricingDiscount": "Sleva", + "YourOrganizationOverview": "Přehled vaší organizace", + "TrainingDetailsHeaderInfo_TrainingHourSingular": "{0} hodina", + "TrainingDetailsHeaderInfo_TrainingHour": "{0} hodin" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/de.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/de.json index 5d1f760655..b2e0fd88e8 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/de.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/de.json @@ -392,6 +392,10 @@ "UsedPayment": "Diese Zahlung wurde bereits verwendet", "ManageLicense": "Lizenz verwalten", "AbpPlatformLeptonXTheme": "LeptonX-Theme für Ihr Admin-Dashboard von ABP Platform", - "Previous": "Vorherige" + "Previous": "Vorherige", + "PricingDiscount": "Rabatt", + "YourOrganizationOverview": "Ihre Organisationsübersicht", + "TrainingDetailsHeaderInfo_TrainingHourSingular": "{0} Stunde", + "TrainingDetailsHeaderInfo_TrainingHour": "{0} Stunden" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en-GB.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en-GB.json index a4044de13f..474ca58f08 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en-GB.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en-GB.json @@ -114,6 +114,9 @@ "MultipleOrganizationInfo": "See All Your Organizations", "PaymentFailedInfo": "Sorry, payment failed! This could be due to insufficient funds, invalid credit card numbers or invalid pin", "UsedPayment": "This payment has been already used", - "Previous": "Previous" + "Previous": "Previous", + "YourOrganizationOverview": "Your Organization Overview", + "TrainingDetailsHeaderInfo_TrainingHourSingular": "{0} hour", + "TrainingDetailsHeaderInfo_TrainingHour": "{0} hours" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json index 0c4448e8a9..4dc7c395c3 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json @@ -610,7 +610,7 @@ "StartupTemplates_Page_Description": "ABP Commercial allows you to build solutions with any level of complexity. It provides two main pre-built startup solutions. You can select the one close to your requirements and build your own custom solution on top of it.", "MicroserviceStartupSolutionForDotnet": "Microservice Startup Solution for .NET", "MonolithSolutionForDotnet": "Monolith (modular) Solution for .NET", - "TrainingDetailsHeaderInfo_TrainingHour": "{0} hour(s)", + "TrainingDetailsHeaderInfo_TrainingHour": "{0} hours", "Trainings_Content": "Content of Training", "Trial_Page_StartYourFreeTrial": "Start Your Free Trial", "TrialLicenseFeatures": "You'll be able to benefit from all ABP commercial features", @@ -1181,6 +1181,13 @@ "LearnMore": "Learn More", "ReturnOfInvestment": "Return of Investment", "ReturnOfInvestment_Description": "Learn how to reduce your development costs by more than %50.", - "Previous": "Previous" + "Previous": "Previous", + "PricingDiscount": "Save", + "PricingTeamTitle": "Team", + "PricingBusinessTitle": "Business", + "PricingEnterpriseTitle": "Enterprise", + "SpecialDiscount": "Special Discount", + "YourOrganizationOverview": "Your Organization Overview", + "TrainingDetailsHeaderInfo_TrainingHourSingular": "{0} hour" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/es.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/es.json index 10875ea1b8..d6479c1cef 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/es.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/es.json @@ -392,6 +392,10 @@ "UsedPayment": "Este pago ya ha sido utilizado.", "ManageLicense": "Gestionar licencia", "AbpPlatformLeptonXTheme": "Tema LeptonX para su panel de administración por ABP Platform", - "Previous": "Anterior" + "Previous": "Anterior", + "PricingDiscount": "Descuento", + "YourOrganizationOverview": "Descripción general de su organización", + "TrainingDetailsHeaderInfo_TrainingHourSingular": "{0} hora", + "TrainingDetailsHeaderInfo_TrainingHour": "{0} horas" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/fi.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/fi.json index e303f60dbd..5b77250458 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/fi.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/fi.json @@ -607,7 +607,7 @@ "StartupTemplates_Page_Description": "ABP Commercialin avulla voit rakentaa minkä tahansa monimutkaisia ratkaisuja. Se tarjoaa kaksi pääasiallista valmiiksi rakennettua käynnistysratkaisua. Voit valita tarpeitasi vastaavan ja rakentaa oman mukautetun ratkaisun sen päälle.", "MicroserviceStartupSolutionForDotnet": "Mikropalvelu käynnistysmalli .NET:ille", "MonolithSolutionForDotnet": "Monoliitti (modulaarinen) Ratkaisu .NET:ille", - "TrainingDetailsHeaderInfo_TrainingHour": "{0} tunti(a)", + "TrainingDetailsHeaderInfo_TrainingHour": "{0} tuntia", "Trainings_Content": "Koulutuksen sisältö", "Trial_Page_StartYourFreeTrial": "Aloita ilmainen kokeilujaksosi", "TrialLicenseFeatures": "Voit hyötyä kaikista ABP:n kaupallisista ominaisuuksista", @@ -831,8 +831,11 @@ "MultipleOrganizationInfo": "Katso kaikki organisaatiosi", "PaymentFailedInfo": "Anteeksi, maksu epäonnistui! ", "UsedPayment": "Tämä maksu on jo käytetty", - "ManageLicense": "Hallinnoi lisenssiä", + "ManageLicense": "Hallinnoi lisenssiä", "AbpPlatformLeptonXTheme": "LeptonX-teema hallintapaneelillesi ABP Platformin toimesta ABP Platform", - "Previous": "Edellinen" + "Previous": "Edellinen", + "PricingDiscount": "Alennus", + "YourOrganizationOverview": "Organisaation yleiskatsaus", + "TrainingDetailsHeaderInfo_TrainingHourSingular": "{0} tunti" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/fr.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/fr.json index c7cae03c8c..76dd18270b 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/fr.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/fr.json @@ -411,6 +411,10 @@ "UsedPayment": "Ce paiement a déjà été utilisé", "ManageLicense": "Gérer la licence", "AbpPlatformLeptonXTheme": "Thème LeptonX pour votre tableau de bord administrateur par ABP Platform", - "Previous": "Précédent" + "Previous": "Précédent", + "PricingDiscount": "Rabais", + "YourOrganizationOverview": "Aperçu de votre organisation", + "TrainingDetailsHeaderInfo_TrainingHourSingular": "{0} heure", + "TrainingDetailsHeaderInfo_TrainingHour": "{0} heures" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hi.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hi.json index 36ac06ab07..9c5aed82b0 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hi.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hi.json @@ -410,6 +410,10 @@ "UsedPayment": "इस भुगतान का उपयोग पहले ही किया जा चुका है", "ManageLicense": "लाइसेंस प्रबंधन", "AbpPlatformLeptonXTheme": "ABP Platform द्वारा आपके व्यवस्थापक डैशबोर्ड के लिए LeptonX थीम", - "Previous": "पहले का" + "Previous": "पहले का", + "PricingDiscount": "छूट", + "YourOrganizationOverview": "आपके संगठन का अवलोकन", + "TrainingDetailsHeaderInfo_TrainingHourSingular": "{0} घंटा", + "TrainingDetailsHeaderInfo_TrainingHour": "{0} घंटे" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hr.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hr.json index d5f2ee2455..9bb94f3c09 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hr.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hr.json @@ -610,7 +610,7 @@ "StartupTemplates_Page_Description": "ABP Commercial omogućuje vam izradu rješenja bilo koje razine složenosti. Pruža dva glavna unaprijed izgrađena rješenja za pokretanje. Možete odabrati onaj koji je bliži vašim zahtjevima i na njemu izgraditi vlastito prilagođeno rješenje.", "MicroserviceStartupSolutionForDotnet": "Rješenje za pokretanje mikroservisa za .NET", "MonolithSolutionForDotnet": "Monolitno (modularno) rješenje za .NET", - "TrainingDetailsHeaderInfo_TrainingHour": "{0} sat(i)", + "TrainingDetailsHeaderInfo_TrainingHour": "{0} sati", "Trainings_Content": "Sadržaj obuke", "Trial_Page_StartYourFreeTrial": "Započnite besplatno probno razdoblje", "TrialLicenseFeatures": "Moći ćete imati koristi od svih ABP komercijalnih značajki", @@ -1089,6 +1089,9 @@ "UsedPayment": "Ovo plaćanje je već iskorišteno", "ManageLicense": "Upravljanje licencom", "AbpPlatformLeptonXTheme": "LeptonX Tema za vašu administratorsku nadzornu ploču od strane ABP Platform", - "Previous": "Prethodno" + "Previous": "Prethodno", + "PricingDiscount": "Popust", + "YourOrganizationOverview": "Pregled vaše organizacije", + "TrainingDetailsHeaderInfo_TrainingHourSingular": "{0} sat" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hu.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hu.json index 03c1fe410e..2b25d97256 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hu.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hu.json @@ -759,6 +759,9 @@ "UsedPayment": "Ezt a fizetést már felhasználták", "ManageLicense": "Licenc kezelése", "AbpPlatformLeptonXTheme": "LeptonX téma az Adminisztrációs Vezérlőpultjához az ABP Platform által", - "Previous": "Előző" + "Previous": "Előző", + "PricingDiscount": "Kedvezmény", + "YourOrganizationOverview": "Az Ön szervezetének áttekintése", + "TrainingDetailsHeaderInfo_TrainingHourSingular": "{0} óra" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/is.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/is.json index 6ddc3d9665..59d5cd2460 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/is.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/is.json @@ -389,6 +389,10 @@ "UsedPayment": "Þessi greiðsla hefur þegar verið notuð", "ManageLicense": "Stjórna leyfi", "AbpPlatformLeptonXTheme": "LeptonX Þema fyrir stjórnborð stjórnanda þíns af ABP Platform", - "Previous": "Fyrri" + "Previous": "Fyrri", + "PricingDiscount": "Afsláttur", + "YourOrganizationOverview": "Yfirlit yfir stofnunina þína", + "TrainingDetailsHeaderInfo_TrainingHourSingular": "{0} klukkustund", + "TrainingDetailsHeaderInfo_TrainingHour": "{0} klukkustundir" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/it.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/it.json index a29242c20e..9fbaee80dd 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/it.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/it.json @@ -410,6 +410,10 @@ "UsedPayment": "Questo pagamento è già stato utilizzato", "ManageLicense": "Gestisci la licenza", "AbpPlatformLeptonXTheme": "Tema LeptonX per la tua bacheca amministrativa di ABP Platform", - "Previous": "Precedente" + "Previous": "Precedente", + "PricingDiscount": "Sconto", + "YourOrganizationOverview": "Panoramica della tua organizzazione", + "TrainingDetailsHeaderInfo_TrainingHourSingular": "{0} ora", + "TrainingDetailsHeaderInfo_TrainingHour": "{0} ore" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/nl.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/nl.json index d4414aec51..cc27080803 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/nl.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/nl.json @@ -389,6 +389,10 @@ "UsedPayment": "Deze betaling is al gebruikt", "ManageLicense": "Licentie beheren", "AbpPlatformLeptonXTheme": "LeptonX-thema voor uw beheerdersdashboard door ABP Platform", - "Previous": "Vorig" + "Previous": "Vorig", + "PricingDiscount": "Korting", + "YourOrganizationOverview": "Uw organisatieoverzicht", + "TrainingDetailsHeaderInfo_TrainingHourSingular": "{0} uur", + "TrainingDetailsHeaderInfo_TrainingHour": "{0} uur" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/pl-PL.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/pl-PL.json index 15f305439b..ae428714dc 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/pl-PL.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/pl-PL.json @@ -389,6 +389,10 @@ "UsedPayment": "Ta płatność została już wykorzystana", "ManageLicense": "Zarządzaj licencją", "AbpPlatformLeptonXTheme": "Motyw LeptonX dla Twojej konsoli administracyjnej od ABP Platform", - "Previous": "Poprzedni" + "Previous": "Poprzedni", + "PricingDiscount": "Rabat", + "YourOrganizationOverview": "Przegląd Twojej organizacji", + "TrainingDetailsHeaderInfo_TrainingHourSingular": "{0} godzina", + "TrainingDetailsHeaderInfo_TrainingHour": "{0} godzin" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/pt-BR.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/pt-BR.json index 11866ee839..2b20c7f936 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/pt-BR.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/pt-BR.json @@ -412,6 +412,10 @@ "UsedPayment": "Este pagamento já foi usado", "ManageLicense": "Gerenciar Licença", "AbpPlatformLeptonXTheme": "Tema LeptonX para o seu Painel de Administração por ABP Platform", - "Previous": "Anterior" + "Previous": "Anterior", + "PricingDiscount": "Desconto", + "YourOrganizationOverview": "Visão geral da sua organização", + "TrainingDetailsHeaderInfo_TrainingHourSingular": "{0} hora", + "TrainingDetailsHeaderInfo_TrainingHour": "{0} horas" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ro-RO.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ro-RO.json index 731d2a7dc7..1596bd206c 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ro-RO.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ro-RO.json @@ -389,6 +389,10 @@ "UsedPayment": "Această plată a fost deja utilizată", "ManageLicense": "Administrare licență", "AbpPlatformLeptonXTheme": "Tema LeptonX pentru panoul tău de administrare de la ABP Platform", - "Previous": "Anterior" + "Previous": "Anterior", + "PricingDiscount": "Reducere", + "YourOrganizationOverview": "Prezentare generală a organizației dvs", + "TrainingDetailsHeaderInfo_TrainingHourSingular": "{0} oră", + "TrainingDetailsHeaderInfo_TrainingHour": "{0} ore" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ru.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ru.json index 7c504f57db..df98222203 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ru.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ru.json @@ -611,7 +611,7 @@ "StartupTemplates_Page_Description": "ABP Commercial позволяет создавать решения любого уровня сложности. ", "MicroserviceStartupSolutionForDotnet": "Решение для запуска микросервисов для .NET", "MonolithSolutionForDotnet": "Монолитное (модульное) решение для .NET", - "TrainingDetailsHeaderInfo_TrainingHour": "{0} час(а)", + "TrainingDetailsHeaderInfo_TrainingHour": "{0} часа", "Trainings_Content": "Содержание обучения", "Trial_Page_StartYourFreeTrial": "Начните свой Бесплатная пробная версия", "TrialLicenseFeatures": "Вы сможете воспользоваться всеми коммерческими функциями ABP.", @@ -1090,6 +1090,9 @@ "UsedPayment": "Этот платеж уже использован", "ManageLicense": "Управление лицензией", "AbpPlatformLeptonXTheme": "Тема LeptonX для вашей панели администратора от ABP Platform", - "Previous": "Предыдущий" + "Previous": "Предыдущий", + "PricingDiscount": "Скидка", + "YourOrganizationOverview": "Обзор вашей организации", + "TrainingDetailsHeaderInfo_TrainingHourSingular": "{0} час" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/sk.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/sk.json index d709d3a146..9b46fb47b9 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/sk.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/sk.json @@ -408,6 +408,10 @@ "UsedPayment": "Táto platba už bola použitá", "ManageLicense": "Spravovať licenciu", "AbpPlatformLeptonXTheme": "Téma LeptonX pre váš administratívny panel od ABP Platform", - "Previous": "Predchádzajúce" + "Previous": "Predchádzajúce", + "PricingDiscount": "Zľava", + "YourOrganizationOverview": "Prehľad vašej organizácie", + "TrainingDetailsHeaderInfo_TrainingHourSingular": "{0} hodina", + "TrainingDetailsHeaderInfo_TrainingHour": "{0} hodín" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/sl.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/sl.json index cc935ed0de..2576c1f003 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/sl.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/sl.json @@ -389,6 +389,10 @@ "UsedPayment": "To plačilo je že bilo uporabljeno", "ManageLicense": "Upravljanje licenco", "AbpPlatformLeptonXTheme": "LeptonX Tema za vaš upraviteljski nadzorni pult s strani ABP Platform", - "Previous": "Prejšnja" + "Previous": "Prejšnja", + "PricingDiscount": "Popust", + "YourOrganizationOverview": "Pregled vaše organizacije", + "TrainingDetailsHeaderInfo_TrainingHourSingular": "{0} ura", + "TrainingDetailsHeaderInfo_TrainingHour": "{0} ur" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/tr.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/tr.json index 11884275b4..8888697f08 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/tr.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/tr.json @@ -274,7 +274,7 @@ "LiveTrainingSupport": "Canlı eğitim ve destek", "AndMore": "ve dahası", "AdditionalDeveloperLicense": "Ek geliştirici lisansı", - "ProjectCount": "proje sayısı", + "ProjectCount": "Proje sayısı", "AllProModules": "Tüm profesyonel modüller", "AllProThemes": "Tüm profesyonel temalar", "AllProStartupTemplates": "Tüm profesyonel başlangıç şablonları", @@ -615,12 +615,12 @@ "TotalDeveloperPrice": "Toplam Geliştirici Fiyatı", "Purchase_PricePerDeveloper": "{0} geliştirici başına", "Purchase_IncludedDeveloperInfo": "{0} {1} dahil.", - "Purchase_LicenseExtraDeveloperPurchaseMessage": "{0} lisansı {1} geliştirici(ler) içerir. Şimdi veya daha sonra ek geliştiriciler ekleyebilirsiniz.", + "Purchase_LicenseExtraDeveloperPurchaseMessage": "{0} lisansı {1} geliştirici içerir. Şimdi veya daha sonra ek geliştirici ekleyebilirsiniz.", "StartupTemplates_Page_Title": "ABP Başlangıç Şablonları", "StartupTemplates_Page_Description": "ABP Commercial, her düzeyde karmaşıklığa sahip projeler oluşturmanıza olanak tanır. Önceden oluşturulmuş iki ana başlangıç projesi sunar. Gereksinimlerinize yakın olanı seçebilir ve bunun üzerine kendi özel projenizi oluşturabilirsiniz.", "MicroserviceStartupSolutionForDotnet": ".NET için Mikroservis Başlatma Projesi", "MonolithSolutionForDotnet": ".NET için Monolith (modüler) Proje", - "TrainingDetailsHeaderInfo_TrainingHour": "{0} saat(ler)", + "TrainingDetailsHeaderInfo_TrainingHour": "{0} saat", "Trainings_Content": "Eğitim İçeriği", "Trial_Page_StartYourFreeTrial": "Ücretsiz Denemenizi Başlatın", "TrialLicenseFeatures": "Tüm ABP Commercial özelliklerinden yararlanabileceksiniz", @@ -999,6 +999,9 @@ "MyOrganizations_Detail_LicenseExpiryDate": "Bitiş Tarihi", "ManageLicense": "Lisansı Yönet", "AbpPlatformLeptonXTheme": "ABP Platform Yönetici Kontrol Paneliniz için LeptonX Teması", - "Previous": "Önceki" + "Previous": "Önceki", + "PricingDiscount": "İndirim", + "YourOrganizationOverview": "Organizasyon Detayı", + "TrainingDetailsHeaderInfo_TrainingHourSingular": "{0} saat" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/vi.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/vi.json index 77d8968c5c..1e51907ccc 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/vi.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/vi.json @@ -389,6 +389,10 @@ "UsedPayment": "Khoản thanh toán này đã được sử dụng", "ManageLicense": "Quản lý Giấy phép", "AbpPlatformLeptonXTheme": "Chủ đề LeptonX cho Bảng điều khiển quản trị của bạn bởi ABP Platform", - "Previous": "Trước" + "Previous": "Trước", + "PricingDiscount": "Popust", + "YourOrganizationOverview": "Tổng quan về tổ chức của bạn", + "TrainingDetailsHeaderInfo_TrainingHourSingular": "{0} giờ", + "TrainingDetailsHeaderInfo_TrainingHour": "{0} giờ" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hans.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hans.json index 0d65066fc5..a2f9ee058e 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hans.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hans.json @@ -1091,6 +1091,9 @@ "UsedPayment": "该付款已被使用", "ManageLicense": "管理许可证", "AbpPlatformLeptonXTheme": "由 ABP Platform 提供的您的管理仪表板的 LeptonX 主题", - "Previous": "以前的" + "Previous": "以前的", + "PricingDiscount": "折扣", + "YourOrganizationOverview": "您的组织概览", + "TrainingDetailsHeaderInfo_TrainingHourSingular": "{0} 小时" } } diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hant.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hant.json index b495b690dd..491e473353 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hant.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hant.json @@ -1080,6 +1080,9 @@ "UsedPayment": "该付款已被使用", "ManageLicense": "管理許可證", "AbpPlatformLeptonXTheme": "由 ABP Platform 提供的您的管理儀表板的 LeptonX 主題", - "Previous": "以前的" + "Previous": "以前的", + "PricingDiscount": "折扣", + "YourOrganizationOverview": "您的组织概览", + "TrainingDetailsHeaderInfo_TrainingHourSingular": "{0} 小时" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/ar.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/ar.json index 3a9d58167f..65f57cc2ef 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/ar.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/ar.json @@ -468,6 +468,7 @@ "TitlePlaceholder": "مطور برامج، مدير تكنولوجيا المعلومات، إلخ.", "Characters": "الأحرف", "ABPTestimonialDescription": "ABP Framework: دعونا نسمع شهادتك", - "LeaveUsReview": "ترك لنا المراجعة" + "LeaveUsReview": "ترك لنا المراجعة", + "DocumentationButtonTitle": "توثيق" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/cs.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/cs.json index 5432cbefd5..da4d79f97f 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/cs.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/cs.json @@ -468,6 +468,7 @@ "TitlePlaceholder": "Vývojář softwaru, CTO atd.", "Characters": "znaky", "ABPTestimonialDescription": "ABP Framework: Pojďme slyšet vaši referenci", - "LeaveUsReview": "Zanechte nám recenzi" + "LeaveUsReview": "Zanechte nám recenzi", + "DocumentationButtonTitle": "Dokumentace" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/de.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/de.json index f8f840a142..c686991906 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/de.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/de.json @@ -468,6 +468,7 @@ "TitlePlaceholder": "Softwareentwickler, CTO usw.", "Characters": "zeichen", "ABPTestimonialDescription": "ABP Framework: Lass uns deine Bewertung hören", - "LeaveUsReview": "Hinterlassen Sie uns eine Bewertung" + "LeaveUsReview": "Hinterlassen Sie uns eine Bewertung", + "DocumentationButtonTitle": "Dokumentation" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json index 5878d498ec..93a97f6d37 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json @@ -481,6 +481,8 @@ "GenderRequired": "The Gender field is required.", "LeaveUsReview": "Leave us review", "ABPVideoCoursesDescription": "Learn the basics of the ABP Framework through video courses created by the ABP team.", - "ABPVideoCoursesPageDescription": "Learn the basics of the ABP Framework through video courses created by the ABP team. In this video series, you will learn the essential topics of the ABP Framework. The numbers on each video are written according to the learning flow." + "ABPVideoCoursesPageDescription": "Learn the basics of the ABP Framework through video courses created by the ABP team. In this video series, you will learn the essential topics of the ABP Framework. The numbers on each video are written according to the learning flow.", + "DocumentationButtonTitle": "Documentation" + } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/es.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/es.json index fbe8ab3a1e..36383f5609 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/es.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/es.json @@ -468,6 +468,7 @@ "TitlePlaceholder": "Desarrollador de software, CTO, etc.", "Characters": "caracteres", "ABPTestimonialDescription": "ABP Framework: Escuchemos tu testimonio", - "LeaveUsReview": "Déjanos tu reseña" + "LeaveUsReview": "Déjanos tu reseña", + "DocumentationButtonTitle": "Documentación" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/fi.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/fi.json index 5454a6c485..3ff9261f08 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/fi.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/fi.json @@ -468,6 +468,7 @@ "TitlePlaceholder": "Ohjelmistokehittäjä, CTO, jne.", "Characters": "hahmot", "ABPTestimonialDescription": "ABP Framework: Kuunnellaanpa sinun suosittelua", - "LeaveUsReview": "Jätä meille arvostelu" + "LeaveUsReview": "Jätä meille arvostelu", + "DocumentationButtonTitle": "Dokumentointi" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/fr.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/fr.json index eb17992bf7..bdd51a098f 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/fr.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/fr.json @@ -468,6 +468,7 @@ "TitlePlaceholder": "Développeur de logiciels, CTO, etc.", "Characters": "caractères", "ABPTestimonialDescription": "ABP Framework : Écoutons votre témoignage", - "LeaveUsReview": "Laissez-nous votre avis" + "LeaveUsReview": "Laissez-nous votre avis", + "DocumentationButtonTitle": "Documentation" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/hi.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/hi.json index e049190196..50c5795260 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/hi.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/hi.json @@ -468,6 +468,7 @@ "TitlePlaceholder": "सॉफ़्टवेयर डेवेलपर, सीटीओ, आदि।", "Characters": "अक्षर", "ABPTestimonialDescription": "ABP Framework: आइए आपका प्रशंसापत्र सुनें", - "LeaveUsReview": "हमें समीक्षा छोड़ें" + "LeaveUsReview": "हमें समीक्षा छोड़ें", + "DocumentationButtonTitle": "प्रलेखन" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/hr.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/hr.json index 3a169c1aff..91207b8f6d 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/hr.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/hr.json @@ -468,6 +468,7 @@ "TitlePlaceholder": "Razvojni inženjer, CTO, itd.", "Characters": "znakovi", "ABPTestimonialDescription": "ABP Framework: Hajde da čujemo tvoje iskustvo", - "LeaveUsReview": "Ostavite nam recenziju" + "LeaveUsReview": "Ostavite nam recenziju", + "DocumentationButtonTitle": "Dokumentacija" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/hu.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/hu.json index e77d99e5ac..6929ab29b7 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/hu.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/hu.json @@ -468,6 +468,7 @@ "TitlePlaceholder": "Szoftvertervező, CTO, stb.", "Characters": "karakterek", "ABPTestimonialDescription": "ABP Framework: Halljuk az Ön beszámolóját", - "LeaveUsReview": "Hagyjon véleményt nekünk" + "LeaveUsReview": "Hagyjon véleményt nekünk", + "DocumentationButtonTitle": "Dokumentáció" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/is.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/is.json index 0da65b363a..d0fbf07384 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/is.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/is.json @@ -468,6 +468,7 @@ "TitlePlaceholder": "Hugbúnaðarþróunarmiðill, CTO o.s.frv.", "Characters": "stafir", "ABPTestimonialDescription": "ABP Framework: Við skulum heyra vitnisburð þinn", - "LeaveUsReview": "Skildu eftir okkur umsögn" + "LeaveUsReview": "Skildu eftir okkur umsögn", + "DocumentationButtonTitle": "Skjöl" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/it.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/it.json index 3feb80b6da..f6560d9156 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/it.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/it.json @@ -468,6 +468,7 @@ "TitlePlaceholder": "Sviluppatore di software, CTO ecc.", "Characters": "caratteri", "ABPTestimonialDescription": "ABP Framework: Ascoltiamo la tua testimonianza", - "LeaveUsReview": "Lasciaci una recensione" + "LeaveUsReview": "Lasciaci una recensione", + "DocumentationButtonTitle": "Documentazione" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/nl.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/nl.json index 6cc299f032..62fd15013b 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/nl.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/nl.json @@ -468,6 +468,7 @@ "TitlePlaceholder": "Softwareontwikkelaar, CTO enz.", "Characters": "tekens", "ABPTestimonialDescription": "ABP Framework: Laten we uw getuigenis horen", - "LeaveUsReview": "Laat ons een beoordeling achter" + "LeaveUsReview": "Laat ons een beoordeling achter", + "DocumentationButtonTitle": "Documentatie" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/pl-PL.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/pl-PL.json index 8b4da70fad..a1d443825e 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/pl-PL.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/pl-PL.json @@ -468,6 +468,7 @@ "TitlePlaceholder": "Programista, CTO itp.", "Characters": "znaki", "ABPTestimonialDescription": "Struktura ABP: Posłuchajmy Twojej opinii", - "LeaveUsReview": "Zostaw nam recenzję" + "LeaveUsReview": "Zostaw nam recenzję", + "DocumentationButtonTitle": "Dokumentacja" } } diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/pt-BR.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/pt-BR.json index 6b6d7d4a89..045302df5f 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/pt-BR.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/pt-BR.json @@ -468,6 +468,7 @@ "TitlePlaceholder": "Desenvolvedor de software, CTO etc.", "Characters": "caracteres", "ABPTestimonialDescription": "Estrutura ABP: vamos ouvir seu depoimento", - "LeaveUsReview": "Deixe-nos uma avaliação" + "LeaveUsReview": "Deixe-nos uma avaliação", + "DocumentationButtonTitle": "Documentação" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/ro-RO.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/ro-RO.json index ee67921a5a..eafff77f9f 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/ro-RO.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/ro-RO.json @@ -468,6 +468,7 @@ "TitlePlaceholder": "Dezvoltator software, CTO etc.", "Characters": "caractere", "ABPTestimonialDescription": "Cadrul ABP: Haideți să vă ascultăm mărturia", - "LeaveUsReview": "Lasă-ne o recenzie" + "LeaveUsReview": "Lasă-ne o recenzie", + "DocumentationButtonTitle": "Documentație" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/ru.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/ru.json index a2de5e0520..2407f88cac 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/ru.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/ru.json @@ -466,6 +466,7 @@ "TitlePlaceholder": "Разработчик программного обеспечения, технический директор и т. д.", "Characters": "Символы", "ABPTestimonialDescription": "ABP Framework: давайте послушаем ваш отзыв", - "LeaveUsReview": "Оставьте нам отзыв" + "LeaveUsReview": "Оставьте нам отзыв", + "DocumentationButtonTitle": "Документация" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/sk.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/sk.json index 861ae3ad7e..b3089d7717 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/sk.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/sk.json @@ -468,6 +468,7 @@ "TitlePlaceholder": "Vývojár softvéru, CTO atď.", "Characters": "znaky", "ABPTestimonialDescription": "Rámec ABP: Vypočujme si vaše svedectvo", - "LeaveUsReview": "Zanechajte nám recenziu" + "LeaveUsReview": "Zanechajte nám recenziu", + "DocumentationButtonTitle": "Dokumentácia" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/sl.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/sl.json index 5673f8e5b3..50b755e1dc 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/sl.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/sl.json @@ -468,6 +468,7 @@ "TitlePlaceholder": "Razvijalec programske opreme, tehnični direktor itd.", "Characters": "znaki", "ABPTestimonialDescription": "Ogrodje ABP: poslušajmo vaše pričevanje", - "LeaveUsReview": "Pustite nam oceno" + "LeaveUsReview": "Pustite nam oceno", + "DocumentationButtonTitle": "Dokumentacija" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/tr.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/tr.json index a309e0bbdb..f8d50ff079 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/tr.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/tr.json @@ -154,7 +154,7 @@ "AndMore": "ve dahası...", "Code": "Kod", "Result": "Sonuç", - "SeeTheDocumentForMoreInformation": "Daha fazlası için {0} dökümantasyonuna göz atın.", + "SeeTheDocumentForMoreInformation": "Daha fazlası için {0} dokümantasyonuna göz atın.", "IndexPageHeroSection": "open sourceWeb Application
Framework
for asp.net core", "UiFramework": "UI Framework", "EmailAddress": "E-Posta Adresi", @@ -178,7 +178,7 @@ "ProgressiveWebApplication": "Progresif Web Uygulaması", "UseslatestPreVersion": "En son yayın öncesi sürümünü kullanır", "ReadTheDocumentation": "Belgeleri okuyun", - "Documentation": "Dökümanlar", + "Documentation": "Dokümanlar", "GettingStartedTutorial": "Başlarken Eğitimi", "ApplicationDevelopmentTutorial": "Uygulama Geliştirme Eğitimi", "TheStartupTemplate": "Başlangıç Şablonu", @@ -214,7 +214,7 @@ "Packages": "Paketler", "NugetPackages": "Nuget Paketleri", "NPMPackages": "NPM Paketleri", - "SeeDocs": "Dökümanı Görüntüle", + "SeeDocs": "Dokümanı Görüntüle", "None": "Hiçbiri", "Application": "Uygulama", "ApplicationExplanation": "Domain Driven Design pratikleri üzerine oluşturulmuş çok katmanlı bir çözüm oluşturur. Bakıma ve geliştirmeye açık kod tabanına ihtiyaç duyan uzun süreli projeler için önerilir.", @@ -227,7 +227,7 @@ "License": "Lisans", "ProjectCreationSuccessMessage": "Projeniz başarıyla oluşturulmuştur", "HowToRunSolution": "Uygulamayı Nasıl Çalıştırabiliriz?", - "GettingStartedMessage": "Uygulamanızı nasıl yapılandıracağınızı ve çalıştıracağınızı öğrenmek için başlanıç dökümanına bakınız.", + "GettingStartedMessage": "Uygulamanızı nasıl yapılandıracağınızı ve çalıştıracağınızı öğrenmek için başlanıç dokümanına bakınız.", "WebAppDevTutorial": "Web Uygulaması Geliştirme Öğreticisi", "WebAppDevTutorialMessage": "Adım adım web uygulaması geliştirme örneği için web uygulaması geliştirme öğreticisine bakınız.", "CommunityPosts": "Topluluk Makaleleri", @@ -238,7 +238,6 @@ "ClientSideDevelopmentDocumentationMessage": "Kullanıcı arayüzü (istemci tarafı) geliştirmeyle ilgili temel noktaları öğrenmek için {0} belgesine bakın.", "DatabaseProviderDocumentationMessage": "Veritabanı katmanı geliştirmeyle ilgili temel noktaları öğrenmek için {0} belgesine bakın.", "ABPCommercialExplanationMessage": "ABP Commercial, ABP Framework için premium modüller, temalar, araçlar ve destek sağlar.", - "ImplementingDDD": "Domain Driven Design'ı Uygulayın", "DDDBookExplanation": "ABP Framework ile Domain Driven Design'ın uygulanması için pratik bir kılavuz.", "Overview": "Genel Bakış", "DDDBookPracticalGuide": "Bu kitap Domain Driven Design'ın uygulanması için pratik bir kılavuz görevi görür. Uygulama ayrıntıları ABP Framework altyapısına dayanırken, temel kavramlar, prensipler ve modeller bir .NET çözümü olmasa bile her türlü çözümde uygulanabilir.", @@ -290,7 +289,7 @@ "AbpNewCommandExplanation": "ABP başlangıç şablonlarını kullanarak yeni çözümler oluşturur.", "AbpAddModuleCommandExplanation": "Çözümünüze önceden oluşturulmuş uygulama modülleri yükler", "ExploreAllCLICommands": "Tüm CLI komutlarını keşfedin", - "ExploreDocumentationAndGuides": "Kapsamlı belge ve kılavuzları keşfedin.", + "ExploreDocumentationAndGuides": "Kapsamlı doküman ve kılavuzları keşfedin.", "Documentations": "Belgeler", "Views": "Görünümler", "ReadMore": "Daha fazla oku", @@ -428,6 +427,10 @@ "PasswordRequired": "Şifre alanı zorunludur.", "AddressLength": "Adres alanı maksimum uzunluğu 255 karakter olmalıdır.", "GenderRequired": "Cinsiyet alanı zorunludur.", - "LeaveUsReview": "Yorumunuzu paylaşın" + "LeaveUsReview": "Yorumunuzu paylaşın", + "BuildingMicroserviceSolutionsShortDescription": "Bu kitap, ABP Framework kullanarak mikroservis tabanlı uygulamalar geliştirmek ve yönetmek için bir başvuru rehberidir.", + "VideoCourses": "Video Kurslar", + "DocumentationButtonTitle": "Dokümantasyon" + } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/vi.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/vi.json index 76a93b26bb..c8734fd4f5 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/vi.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/vi.json @@ -468,6 +468,8 @@ "TitlePlaceholder": "Nhà phát triển phần mềm, CTO, v.v.", "Characters": "Ký tự", "ABPTestimonialDescription": "Khung ABP: Hãy nghe lời chứng thực của bạn", - "LeaveUsReview": "Để lại cho chúng tôi xem xét" + "LeaveUsReview": "Để lại cho chúng tôi xem xét", + "DocumentationButtonTitle": "Tài liệu" + } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/zh-Hans.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/zh-Hans.json index c595374c85..ff81945a6e 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/zh-Hans.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/zh-Hans.json @@ -470,6 +470,7 @@ "TitlePlaceholder": "软件开发人员、CTO等", "Characters": "字符", "ABPTestimonialDescription": "ABP 框架:让我们听听您的感言", - "LeaveUsReview": "给我们留下评论" + "LeaveUsReview": "给我们留下评论", + "DocumentationButtonTitle": "文档" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/zh-Hant.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/zh-Hant.json index 83396cf8c2..1873ceb441 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/zh-Hant.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/zh-Hant.json @@ -470,6 +470,7 @@ "TitlePlaceholder": "软件开发人员、CTO等", "Characters": "字符", "ABPTestimonialDescription": "ABP 框架:让我们听听您的感言", - "LeaveUsReview": "给我们留下评论" + "LeaveUsReview": "给我们留下评论", + "DocumentationButtonTitle": "文档" } } \ No newline at end of file diff --git a/docs/cs/Best-Practices/images/postgresql-delete-initial-migrations.png b/docs/cs/Best-Practices/images/postgresql-delete-initial-migrations.png index 39d9e6dedf..14788c5fb8 100644 Binary files a/docs/cs/Best-Practices/images/postgresql-delete-initial-migrations.png and b/docs/cs/Best-Practices/images/postgresql-delete-initial-migrations.png differ diff --git a/docs/cs/Best-Practices/images/postgresql-update-database.png b/docs/cs/Best-Practices/images/postgresql-update-database.png index 02b61ef6a3..30a5f3abe1 100644 Binary files a/docs/cs/Best-Practices/images/postgresql-update-database.png and b/docs/cs/Best-Practices/images/postgresql-update-database.png differ diff --git a/docs/cs/images/MonthlyProfitWidgetFiles.png b/docs/cs/images/MonthlyProfitWidgetFiles.png index e1e9d316f5..c3e4d6f1ab 100644 Binary files a/docs/cs/images/MonthlyProfitWidgetFiles.png and b/docs/cs/images/MonthlyProfitWidgetFiles.png differ diff --git a/docs/cs/images/authorization-new-permission-ui-hierarcy.png b/docs/cs/images/authorization-new-permission-ui-hierarcy.png index 078d67d50f..07abfc7132 100644 Binary files a/docs/cs/images/authorization-new-permission-ui-hierarcy.png and b/docs/cs/images/authorization-new-permission-ui-hierarcy.png differ diff --git a/docs/cs/images/authorization-new-permission-ui-localized.png b/docs/cs/images/authorization-new-permission-ui-localized.png index 610ce39faf..948fd618d9 100644 Binary files a/docs/cs/images/authorization-new-permission-ui-localized.png and b/docs/cs/images/authorization-new-permission-ui-localized.png differ diff --git a/docs/cs/images/authorization-new-permission-ui.png b/docs/cs/images/authorization-new-permission-ui.png index 554f27e78d..1190f04b70 100644 Binary files a/docs/cs/images/authorization-new-permission-ui.png and b/docs/cs/images/authorization-new-permission-ui.png differ diff --git a/docs/cs/images/bookstore-apis.png b/docs/cs/images/bookstore-apis.png index aedd79c7f1..b7928c9637 100644 Binary files a/docs/cs/images/bookstore-apis.png and b/docs/cs/images/bookstore-apis.png differ diff --git a/docs/cs/images/bookstore-create-template.png b/docs/cs/images/bookstore-create-template.png index 7cc96c8c94..bae34a3b64 100644 Binary files a/docs/cs/images/bookstore-create-template.png and b/docs/cs/images/bookstore-create-template.png differ diff --git a/docs/cs/images/bookstore-homepage.png b/docs/cs/images/bookstore-homepage.png index 5e5b512220..dc015aa67d 100644 Binary files a/docs/cs/images/bookstore-homepage.png and b/docs/cs/images/bookstore-homepage.png differ diff --git a/docs/cs/images/bookstore-swagger-ui-host.png b/docs/cs/images/bookstore-swagger-ui-host.png index 74ff73f7e3..7ebd8d8e37 100644 Binary files a/docs/cs/images/bookstore-swagger-ui-host.png and b/docs/cs/images/bookstore-swagger-ui-host.png differ diff --git a/docs/cs/images/bookstore-user-management-v2.png b/docs/cs/images/bookstore-user-management-v2.png index dd95740754..cd66010e05 100644 Binary files a/docs/cs/images/bookstore-user-management-v2.png and b/docs/cs/images/bookstore-user-management-v2.png differ diff --git a/docs/cs/images/bookstore-visual-studio-solution-for-spa.png b/docs/cs/images/bookstore-visual-studio-solution-for-spa.png index 5a5a283c7d..d114ed188c 100644 Binary files a/docs/cs/images/bookstore-visual-studio-solution-for-spa.png and b/docs/cs/images/bookstore-visual-studio-solution-for-spa.png differ diff --git a/docs/cs/images/bookstore-visual-studio-solution-tiered.png b/docs/cs/images/bookstore-visual-studio-solution-tiered.png index 19662bf731..9affe841aa 100644 Binary files a/docs/cs/images/bookstore-visual-studio-solution-tiered.png and b/docs/cs/images/bookstore-visual-studio-solution-tiered.png differ diff --git a/docs/cs/images/bookstore-visual-studio-solution-v3.png b/docs/cs/images/bookstore-visual-studio-solution-v3.png index 307e3516a5..ce821eba72 100644 Binary files a/docs/cs/images/bookstore-visual-studio-solution-v3.png and b/docs/cs/images/bookstore-visual-studio-solution-v3.png differ diff --git a/docs/cs/images/build-action-embedded-resource-sample.png b/docs/cs/images/build-action-embedded-resource-sample.png index d001c5d19f..700e9921f4 100644 Binary files a/docs/cs/images/build-action-embedded-resource-sample.png and b/docs/cs/images/build-action-embedded-resource-sample.png differ diff --git a/docs/cs/images/create-aspnet-core-application.png b/docs/cs/images/create-aspnet-core-application.png index 5813cf38e9..03fde7e38a 100644 Binary files a/docs/cs/images/create-aspnet-core-application.png and b/docs/cs/images/create-aspnet-core-application.png differ diff --git a/docs/cs/images/create-new-aspnet-core-application-v2.png b/docs/cs/images/create-new-aspnet-core-application-v2.png index f8274ae2a4..d2bce84775 100644 Binary files a/docs/cs/images/create-new-aspnet-core-application-v2.png and b/docs/cs/images/create-new-aspnet-core-application-v2.png differ diff --git a/docs/cs/images/create-new-aspnet-core-application.png b/docs/cs/images/create-new-aspnet-core-application.png index fe78b9051d..2c38289810 100644 Binary files a/docs/cs/images/create-new-aspnet-core-application.png and b/docs/cs/images/create-new-aspnet-core-application.png differ diff --git a/docs/cs/images/create-new-net-core-console-application.png b/docs/cs/images/create-new-net-core-console-application.png index c5f39bfb37..0c2b3dbcb8 100644 Binary files a/docs/cs/images/create-new-net-core-console-application.png and b/docs/cs/images/create-new-net-core-console-application.png differ diff --git a/docs/cs/images/dashboard1.png b/docs/cs/images/dashboard1.png index 4102bbd4c1..8c542b8786 100644 Binary files a/docs/cs/images/dashboard1.png and b/docs/cs/images/dashboard1.png differ diff --git a/docs/cs/images/db-migrator-app.png b/docs/cs/images/db-migrator-app.png index ace6abb226..d2248d4588 100644 Binary files a/docs/cs/images/db-migrator-app.png and b/docs/cs/images/db-migrator-app.png differ diff --git a/docs/cs/images/docs-create-project.jpg b/docs/cs/images/docs-create-project.jpg index 742f5e307f..d2baa3242a 100644 Binary files a/docs/cs/images/docs-create-project.jpg and b/docs/cs/images/docs-create-project.jpg differ diff --git a/docs/cs/images/docs-module_download-new-abp-project.png b/docs/cs/images/docs-module_download-new-abp-project.png index 0da3b7a67a..bc7aaacbd6 100644 Binary files a/docs/cs/images/docs-module_download-new-abp-project.png and b/docs/cs/images/docs-module_download-new-abp-project.png differ diff --git a/docs/cs/images/docs-module_download-sample-navigation-menu.png b/docs/cs/images/docs-module_download-sample-navigation-menu.png index 9a1232f198..8d8eb42d52 100644 Binary files a/docs/cs/images/docs-module_download-sample-navigation-menu.png and b/docs/cs/images/docs-module_download-sample-navigation-menu.png differ diff --git a/docs/cs/images/docs-module_solution-explorer.png b/docs/cs/images/docs-module_solution-explorer.png index cafc38f0b0..97bd3fc18e 100644 Binary files a/docs/cs/images/docs-module_solution-explorer.png and b/docs/cs/images/docs-module_solution-explorer.png differ diff --git a/docs/cs/images/docs-section-ui.png b/docs/cs/images/docs-section-ui.png index 7856454e5d..1c63d1ad3a 100644 Binary files a/docs/cs/images/docs-section-ui.png and b/docs/cs/images/docs-section-ui.png differ diff --git a/docs/cs/images/github-access-token-private-repo.jpg b/docs/cs/images/github-access-token-private-repo.jpg index 5bc53cc63d..cb74f1eea3 100644 Binary files a/docs/cs/images/github-access-token-private-repo.jpg and b/docs/cs/images/github-access-token-private-repo.jpg differ diff --git a/docs/cs/images/github-access-token-public-repo.jpg b/docs/cs/images/github-access-token-public-repo.jpg index b909c2cfe5..d091a6d511 100644 Binary files a/docs/cs/images/github-access-token-public-repo.jpg and b/docs/cs/images/github-access-token-public-repo.jpg differ diff --git a/docs/cs/images/github-myusername.jpg b/docs/cs/images/github-myusername.jpg index 4ac57eeed4..a723c17713 100644 Binary files a/docs/cs/images/github-myusername.jpg and b/docs/cs/images/github-myusername.jpg differ diff --git a/docs/cs/images/issuemanagement-module-solution.png b/docs/cs/images/issuemanagement-module-solution.png index 181924dd90..d5f64b01d2 100644 Binary files a/docs/cs/images/issuemanagement-module-solution.png and b/docs/cs/images/issuemanagement-module-solution.png differ diff --git a/docs/cs/images/layered-project-dependencies-module.png b/docs/cs/images/layered-project-dependencies-module.png index 7592f49878..de3b7a412f 100644 Binary files a/docs/cs/images/layered-project-dependencies-module.png and b/docs/cs/images/layered-project-dependencies-module.png differ diff --git a/docs/cs/images/layered-project-dependencies.png b/docs/cs/images/layered-project-dependencies.png index c5fd1b3504..ed3e03fe4d 100644 Binary files a/docs/cs/images/layered-project-dependencies.png and b/docs/cs/images/layered-project-dependencies.png differ diff --git a/docs/cs/images/localization-resource-json-files.png b/docs/cs/images/localization-resource-json-files.png index bbbd78c320..1a1d43403c 100644 Binary files a/docs/cs/images/localization-resource-json-files.png and b/docs/cs/images/localization-resource-json-files.png differ diff --git a/docs/cs/images/microservice-sample-authserver-home.png b/docs/cs/images/microservice-sample-authserver-home.png index 7ae62ad6d5..684fdb1a5a 100644 Binary files a/docs/cs/images/microservice-sample-authserver-home.png and b/docs/cs/images/microservice-sample-authserver-home.png differ diff --git a/docs/cs/images/microservice-sample-authserver-login.png b/docs/cs/images/microservice-sample-authserver-login.png index f6e8dfaa9f..99d898ccd2 100644 Binary files a/docs/cs/images/microservice-sample-authserver-login.png and b/docs/cs/images/microservice-sample-authserver-login.png differ diff --git a/docs/cs/images/microservice-sample-backend-ui-permissions.png b/docs/cs/images/microservice-sample-backend-ui-permissions.png index 02769be3e5..3e1610294f 100644 Binary files a/docs/cs/images/microservice-sample-backend-ui-permissions.png and b/docs/cs/images/microservice-sample-backend-ui-permissions.png differ diff --git a/docs/cs/images/microservice-sample-backend-ui.png b/docs/cs/images/microservice-sample-backend-ui.png index 0935a6047a..e649c8da59 100644 Binary files a/docs/cs/images/microservice-sample-backend-ui.png and b/docs/cs/images/microservice-sample-backend-ui.png differ diff --git a/docs/cs/images/microservice-sample-blogservice-permission-in-database.png b/docs/cs/images/microservice-sample-blogservice-permission-in-database.png index f99cd39893..45d7f2b115 100644 Binary files a/docs/cs/images/microservice-sample-blogservice-permission-in-database.png and b/docs/cs/images/microservice-sample-blogservice-permission-in-database.png differ diff --git a/docs/cs/images/microservice-sample-diagram-2.png b/docs/cs/images/microservice-sample-diagram-2.png index 17aea07098..414a942aca 100644 Binary files a/docs/cs/images/microservice-sample-diagram-2.png and b/docs/cs/images/microservice-sample-diagram-2.png differ diff --git a/docs/cs/images/microservice-sample-diagram.png b/docs/cs/images/microservice-sample-diagram.png index b1d9f6c66e..47e6443852 100644 Binary files a/docs/cs/images/microservice-sample-diagram.png and b/docs/cs/images/microservice-sample-diagram.png differ diff --git a/docs/cs/images/microservice-sample-kibana-1.png b/docs/cs/images/microservice-sample-kibana-1.png index f3a51bd349..51777f6bd7 100644 Binary files a/docs/cs/images/microservice-sample-kibana-1.png and b/docs/cs/images/microservice-sample-kibana-1.png differ diff --git a/docs/cs/images/microservice-sample-kibana-2.png b/docs/cs/images/microservice-sample-kibana-2.png index 31b281486c..cb1d0b748c 100644 Binary files a/docs/cs/images/microservice-sample-kibana-2.png and b/docs/cs/images/microservice-sample-kibana-2.png differ diff --git a/docs/cs/images/microservice-sample-product-module-in-solution.png b/docs/cs/images/microservice-sample-product-module-in-solution.png index 27e841cdd5..2c07ad4b99 100644 Binary files a/docs/cs/images/microservice-sample-product-module-in-solution.png and b/docs/cs/images/microservice-sample-product-module-in-solution.png differ diff --git a/docs/cs/images/microservice-sample-public-product-list.png b/docs/cs/images/microservice-sample-public-product-list.png index cf8649bbe5..932b0b531c 100644 Binary files a/docs/cs/images/microservice-sample-public-product-list.png and b/docs/cs/images/microservice-sample-public-product-list.png differ diff --git a/docs/cs/images/microservice-sample-solution.png b/docs/cs/images/microservice-sample-solution.png index 4c8344ed68..d1497d9be2 100644 Binary files a/docs/cs/images/microservice-sample-solution.png and b/docs/cs/images/microservice-sample-solution.png differ diff --git a/docs/cs/images/microservice-sample-update-database-authserver.png b/docs/cs/images/microservice-sample-update-database-authserver.png index 689019b587..094fd20fa6 100644 Binary files a/docs/cs/images/microservice-sample-update-database-authserver.png and b/docs/cs/images/microservice-sample-update-database-authserver.png differ diff --git a/docs/cs/images/microservice-sample-update-database-products.png b/docs/cs/images/microservice-sample-update-database-products.png index b49c2a8f8e..32a0927c1f 100644 Binary files a/docs/cs/images/microservice-sample-update-database-products.png and b/docs/cs/images/microservice-sample-update-database-products.png differ diff --git a/docs/cs/images/night-build-add-nuget-package.png b/docs/cs/images/night-build-add-nuget-package.png index c3621ef7d9..f475d3aaa0 100644 Binary files a/docs/cs/images/night-build-add-nuget-package.png and b/docs/cs/images/night-build-add-nuget-package.png differ diff --git a/docs/cs/images/night-build-add-nuget-source.png b/docs/cs/images/night-build-add-nuget-source.png index 8fd4b9365a..df3176aa12 100644 Binary files a/docs/cs/images/night-build-add-nuget-source.png and b/docs/cs/images/night-build-add-nuget-source.png differ diff --git a/docs/cs/images/pcm-update-database-v2.png b/docs/cs/images/pcm-update-database-v2.png index d5bb9c2975..72d02e9186 100644 Binary files a/docs/cs/images/pcm-update-database-v2.png and b/docs/cs/images/pcm-update-database-v2.png differ diff --git a/docs/cs/images/pcm-update-database.png b/docs/cs/images/pcm-update-database.png index ac53f0db4f..a9379d2571 100644 Binary files a/docs/cs/images/pcm-update-database.png and b/docs/cs/images/pcm-update-database.png differ diff --git a/docs/cs/images/select-empty-web-application-v2.png b/docs/cs/images/select-empty-web-application-v2.png index da32f71857..9bfd2ec6a8 100644 Binary files a/docs/cs/images/select-empty-web-application-v2.png and b/docs/cs/images/select-empty-web-application-v2.png differ diff --git a/docs/cs/images/select-empty-web-application.png b/docs/cs/images/select-empty-web-application.png index b0cd89a27a..f4b884140d 100644 Binary files a/docs/cs/images/select-empty-web-application.png and b/docs/cs/images/select-empty-web-application.png differ diff --git a/docs/cs/images/set-as-startup-project.png b/docs/cs/images/set-as-startup-project.png index 13da5caf6c..8a5445bf38 100644 Binary files a/docs/cs/images/set-as-startup-project.png and b/docs/cs/images/set-as-startup-project.png differ diff --git a/docs/cs/images/tiered-solution-applications.png b/docs/cs/images/tiered-solution-applications.png index fb6ede7ac5..df8d2b5f4a 100644 Binary files a/docs/cs/images/tiered-solution-applications.png and b/docs/cs/images/tiered-solution-applications.png differ diff --git a/docs/cs/images/tiered-solution-servers.png b/docs/cs/images/tiered-solution-servers.png index 3c999b4b45..68e72990d7 100644 Binary files a/docs/cs/images/tiered-solution-servers.png and b/docs/cs/images/tiered-solution-servers.png differ diff --git a/docs/cs/images/volodocs-iis-add-website.png b/docs/cs/images/volodocs-iis-add-website.png index 878b3e8f0c..aa7da8095b 100644 Binary files a/docs/cs/images/volodocs-iis-add-website.png and b/docs/cs/images/volodocs-iis-add-website.png differ diff --git a/docs/cs/images/volodocs-iis-application-pool.png b/docs/cs/images/volodocs-iis-application-pool.png index cc5186f50b..28ccfa5c42 100644 Binary files a/docs/cs/images/volodocs-iis-application-pool.png and b/docs/cs/images/volodocs-iis-application-pool.png differ diff --git a/docs/cs/images/widget-basic-files.png b/docs/cs/images/widget-basic-files.png index bf5f122d42..c692abd9e0 100644 Binary files a/docs/cs/images/widget-basic-files.png and b/docs/cs/images/widget-basic-files.png differ diff --git a/docs/en/API/Static-CSharp-API-Clients.md b/docs/en/API/Static-CSharp-API-Clients.md index 85ffb3e213..5bcbc252c7 100644 --- a/docs/en/API/Static-CSharp-API-Clients.md +++ b/docs/en/API/Static-CSharp-API-Clients.md @@ -65,8 +65,9 @@ Now, it's ready to configure the application for the static client proxy generat ````csharp [DependsOn( - typeof(AbpHttpClientModule) //used to create client proxies - )] + typeof(AbpHttpClientModule), //used to create client proxies + typeof(AbpVirtualFileSystemModule) //virtual file system +)] public class MyClientAppModule : AbpModule { public override void ConfigureServices(ServiceConfigurationContext context) @@ -75,6 +76,12 @@ public class MyClientAppModule : AbpModule context.Services.AddStaticHttpClientProxies( typeof(MyClientAppModule).Assembly ); + + // Include the generated app-generate-proxy.json in the virtual file system + Configure(options => + { + options.FileSets.AddEmbedded(); + }); } } ```` @@ -84,8 +91,9 @@ public class MyClientAppModule : AbpModule ````csharp [DependsOn( typeof(AbpHttpClientModule), //used to create client proxies + typeof(AbpVirtualFileSystemModule), //virtual file system typeof(BookStoreApplicationContractsModule) //contains the application service interfaces - )] +)] public class MyClientAppModule : AbpModule { public override void ConfigureServices(ServiceConfigurationContext context) @@ -94,6 +102,12 @@ public class MyClientAppModule : AbpModule context.Services.AddStaticHttpClientProxies( typeof(BookStoreApplicationContractsModule).Assembly ); + + // Include the generated app-generate-proxy.json in the virtual file system + Configure(options => + { + options.FileSets.AddEmbedded(); + }); } } ```` @@ -139,7 +153,7 @@ This command should generate the following files under the `ClientProxies` folde * `BookClientProxy.Generated.cs` is the actual generated proxy class in this example. `BookClientProxy` is a `partial` class * where you can write your custom code (ABP won't override it). * `IBookAppService.cs` is the app service. * `BookDto.cs` is the Dto class which uses by app service. -* `app-generate-proxy.json` contains information about the remote HTTP endpoint, so ABP can properly perform HTTP requests. +* `app-generate-proxy.json` contains information about the remote HTTP endpoint, so ABP can properly perform HTTP requests. This file must be configured as an embedded resource in your project, so that it can be found by the virtual file system. #### Without Contracts @@ -152,7 +166,7 @@ This command should generate the following files under the `ClientProxies` folde ![generated-static-client-proxies](../images/generated-static-client-proxies-without-contracts.png) * `BookClientProxy.Generated.cs` is the actual generated proxy class in this example. `BookClientProxy` is a `partial` class where you can write your custom code (ABP won't override it). -* `app-generate-proxy.json` contains information about the remote HTTP endpoint, so ABP can properly perform HTTP requests. +* `app-generate-proxy.json` contains information about the remote HTTP endpoint, so ABP can properly perform HTTP requests. This file must be configured as an embedded resource in your project, so that it can be found by the virtual file system. > `generate-proxy` command generates proxies for only the APIs you've defined in your application. If you are developing a modular application, you can specify the `-m` (or `--module`) parameter to specify the module you want to generate proxies. See the *generate-proxy* section in the [ABP CLI](../CLI.md) documentation for other options. diff --git a/docs/en/Best-Practices/images/postgresql-delete-initial-migrations.png b/docs/en/Best-Practices/images/postgresql-delete-initial-migrations.png index 39d9e6dedf..14788c5fb8 100644 Binary files a/docs/en/Best-Practices/images/postgresql-delete-initial-migrations.png and b/docs/en/Best-Practices/images/postgresql-delete-initial-migrations.png differ diff --git a/docs/en/Best-Practices/images/postgresql-update-database.png b/docs/en/Best-Practices/images/postgresql-update-database.png index 02b61ef6a3..30a5f3abe1 100644 Binary files a/docs/en/Best-Practices/images/postgresql-update-database.png and b/docs/en/Best-Practices/images/postgresql-update-database.png differ diff --git a/docs/en/Blog-Posts/2018-09-24-Announcement/dynamic-forms.png b/docs/en/Blog-Posts/2018-09-24-Announcement/dynamic-forms.png index d0c3b8f250..22911d4b72 100644 Binary files a/docs/en/Blog-Posts/2018-09-24-Announcement/dynamic-forms.png and b/docs/en/Blog-Posts/2018-09-24-Announcement/dynamic-forms.png differ diff --git a/docs/en/Blog-Posts/2019-06-19 v0_18_Release/mvc-template-solution.png b/docs/en/Blog-Posts/2019-06-19 v0_18_Release/mvc-template-solution.png index 307e3516a5..ce821eba72 100644 Binary files a/docs/en/Blog-Posts/2019-06-19 v0_18_Release/mvc-template-solution.png and b/docs/en/Blog-Posts/2019-06-19 v0_18_Release/mvc-template-solution.png differ diff --git a/docs/en/Blog-Posts/2019-10-22 v1_0_Release/banner.jpg b/docs/en/Blog-Posts/2019-10-22 v1_0_Release/banner.jpg index 4794366142..c1fc4b42c1 100644 Binary files a/docs/en/Blog-Posts/2019-10-22 v1_0_Release/banner.jpg and b/docs/en/Blog-Posts/2019-10-22 v1_0_Release/banner.jpg differ diff --git a/docs/en/Blog-Posts/2019-10-22 v1_0_Release/contribution-graph.png b/docs/en/Blog-Posts/2019-10-22 v1_0_Release/contribution-graph.png index 7043401fa2..abb137846f 100644 Binary files a/docs/en/Blog-Posts/2019-10-22 v1_0_Release/contribution-graph.png and b/docs/en/Blog-Posts/2019-10-22 v1_0_Release/contribution-graph.png differ diff --git a/docs/en/Blog-Posts/2020-01-15 v2_0_Release/abp-commercial-demo.png b/docs/en/Blog-Posts/2020-01-15 v2_0_Release/abp-commercial-demo.png index caddce27ab..9153adeb86 100644 Binary files a/docs/en/Blog-Posts/2020-01-15 v2_0_Release/abp-commercial-demo.png and b/docs/en/Blog-Posts/2020-01-15 v2_0_Release/abp-commercial-demo.png differ diff --git a/docs/en/Blog-Posts/2020-01-15 v2_0_Release/abp-io-abpcommercial-release.png b/docs/en/Blog-Posts/2020-01-15 v2_0_Release/abp-io-abpcommercial-release.png index 4366ceb986..6d993b303c 100644 Binary files a/docs/en/Blog-Posts/2020-01-15 v2_0_Release/abp-io-abpcommercial-release.png and b/docs/en/Blog-Posts/2020-01-15 v2_0_Release/abp-io-abpcommercial-release.png differ diff --git a/docs/en/Blog-Posts/2020-01-15 v2_0_Release/lepton-theme-material.png b/docs/en/Blog-Posts/2020-01-15 v2_0_Release/lepton-theme-material.png index 72cb5c0639..279f4b2cf1 100644 Binary files a/docs/en/Blog-Posts/2020-01-15 v2_0_Release/lepton-theme-material.png and b/docs/en/Blog-Posts/2020-01-15 v2_0_Release/lepton-theme-material.png differ diff --git a/docs/en/Blog-Posts/2020-01-15 v2_0_Release/ndc-2020-volosoft-booth-wall.png b/docs/en/Blog-Posts/2020-01-15 v2_0_Release/ndc-2020-volosoft-booth-wall.png index 70fb9d54f7..428ecc284d 100644 Binary files a/docs/en/Blog-Posts/2020-01-15 v2_0_Release/ndc-2020-volosoft-booth-wall.png and b/docs/en/Blog-Posts/2020-01-15 v2_0_Release/ndc-2020-volosoft-booth-wall.png differ diff --git a/docs/en/Blog-Posts/2020-03-19 v2_3_Release/react-native-ui.png b/docs/en/Blog-Posts/2020-03-19 v2_3_Release/react-native-ui.png index 47d889413c..ab054e7cb0 100644 Binary files a/docs/en/Blog-Posts/2020-03-19 v2_3_Release/react-native-ui.png and b/docs/en/Blog-Posts/2020-03-19 v2_3_Release/react-native-ui.png differ diff --git a/docs/en/Blog-Posts/2020-05-08 v2_7_Release/abp-commercial-ui-extensions.png b/docs/en/Blog-Posts/2020-05-08 v2_7_Release/abp-commercial-ui-extensions.png index 52fe37a712..252af6b9e4 100644 Binary files a/docs/en/Blog-Posts/2020-05-08 v2_7_Release/abp-commercial-ui-extensions.png and b/docs/en/Blog-Posts/2020-05-08 v2_7_Release/abp-commercial-ui-extensions.png differ diff --git a/docs/en/Blog-Posts/2020-05-08 v2_7_Release/audit-log-entity-changes.png b/docs/en/Blog-Posts/2020-05-08 v2_7_Release/audit-log-entity-changes.png index e06b3300ee..6a1ec44810 100644 Binary files a/docs/en/Blog-Posts/2020-05-08 v2_7_Release/audit-log-entity-changes.png and b/docs/en/Blog-Posts/2020-05-08 v2_7_Release/audit-log-entity-changes.png differ diff --git a/docs/en/Blog-Posts/2020-05-08 v2_7_Release/easy-crm.png b/docs/en/Blog-Posts/2020-05-08 v2_7_Release/easy-crm.png index e40f399525..2bfa53cbcc 100644 Binary files a/docs/en/Blog-Posts/2020-05-08 v2_7_Release/easy-crm.png and b/docs/en/Blog-Posts/2020-05-08 v2_7_Release/easy-crm.png differ diff --git a/docs/en/Blog-Posts/2020-05-08 v2_7_Release/github-contribution-graph.png b/docs/en/Blog-Posts/2020-05-08 v2_7_Release/github-contribution-graph.png index ff3db2ad22..e624e75e38 100644 Binary files a/docs/en/Blog-Posts/2020-05-08 v2_7_Release/github-contribution-graph.png and b/docs/en/Blog-Posts/2020-05-08 v2_7_Release/github-contribution-graph.png differ diff --git a/docs/en/Blog-Posts/2020-05-08 v2_7_Release/tenant-entity-changes.png b/docs/en/Blog-Posts/2020-05-08 v2_7_Release/tenant-entity-changes.png index 4cd573c588..31524187b0 100644 Binary files a/docs/en/Blog-Posts/2020-05-08 v2_7_Release/tenant-entity-changes.png and b/docs/en/Blog-Posts/2020-05-08 v2_7_Release/tenant-entity-changes.png differ diff --git a/docs/en/Blog-Posts/2020-05-08 v2_7_Release/text-template-content-ui.png b/docs/en/Blog-Posts/2020-05-08 v2_7_Release/text-template-content-ui.png index 037e3e4d8b..99c7972da3 100644 Binary files a/docs/en/Blog-Posts/2020-05-08 v2_7_Release/text-template-content-ui.png and b/docs/en/Blog-Posts/2020-05-08 v2_7_Release/text-template-content-ui.png differ diff --git a/docs/en/Blog-Posts/2020-05-22 v2_8_Release/abp-chat-module.png b/docs/en/Blog-Posts/2020-05-22 v2_8_Release/abp-chat-module.png index 88509b6022..5ae351ebba 100644 Binary files a/docs/en/Blog-Posts/2020-05-22 v2_8_Release/abp-chat-module.png and b/docs/en/Blog-Posts/2020-05-22 v2_8_Release/abp-chat-module.png differ diff --git a/docs/en/Blog-Posts/2020-05-22 v2_8_Release/lepton-abp-default-theme.png b/docs/en/Blog-Posts/2020-05-22 v2_8_Release/lepton-abp-default-theme.png index 93e94e5a67..f3c3d16581 100644 Binary files a/docs/en/Blog-Posts/2020-05-22 v2_8_Release/lepton-abp-default-theme.png and b/docs/en/Blog-Posts/2020-05-22 v2_8_Release/lepton-abp-default-theme.png differ diff --git a/docs/en/Blog-Posts/2020-05-22 v2_8_Release/lepton-abp-material-theme.png b/docs/en/Blog-Posts/2020-05-22 v2_8_Release/lepton-abp-material-theme.png index c78dc96245..e22c3003d9 100644 Binary files a/docs/en/Blog-Posts/2020-05-22 v2_8_Release/lepton-abp-material-theme.png and b/docs/en/Blog-Posts/2020-05-22 v2_8_Release/lepton-abp-material-theme.png differ diff --git a/docs/en/Blog-Posts/2020-05-22 v2_8_Release/rtl-ui.png b/docs/en/Blog-Posts/2020-05-22 v2_8_Release/rtl-ui.png index 0e1a162eb1..34cd6581dd 100644 Binary files a/docs/en/Blog-Posts/2020-05-22 v2_8_Release/rtl-ui.png and b/docs/en/Blog-Posts/2020-05-22 v2_8_Release/rtl-ui.png differ diff --git a/docs/en/Blog-Posts/2020-05-22 v2_8_Release/signalr-chat-demo.png b/docs/en/Blog-Posts/2020-05-22 v2_8_Release/signalr-chat-demo.png index e5f647b79c..c93595511a 100644 Binary files a/docs/en/Blog-Posts/2020-05-22 v2_8_Release/signalr-chat-demo.png and b/docs/en/Blog-Posts/2020-05-22 v2_8_Release/signalr-chat-demo.png differ diff --git a/docs/en/Blog-Posts/2020-06-05 v2_9_Release/abp-chat-module.png b/docs/en/Blog-Posts/2020-06-05 v2_9_Release/abp-chat-module.png index 88509b6022..5ae351ebba 100644 Binary files a/docs/en/Blog-Posts/2020-06-05 v2_9_Release/abp-chat-module.png and b/docs/en/Blog-Posts/2020-06-05 v2_9_Release/abp-chat-module.png differ diff --git a/docs/en/Blog-Posts/2020-06-05 v2_9_Release/easy-crm.png b/docs/en/Blog-Posts/2020-06-05 v2_9_Release/easy-crm.png index 829f7b366f..07d7a2b54d 100644 Binary files a/docs/en/Blog-Posts/2020-06-05 v2_9_Release/easy-crm.png and b/docs/en/Blog-Posts/2020-06-05 v2_9_Release/easy-crm.png differ diff --git a/docs/en/Blog-Posts/2020-06-05 v2_9_Release/lepton-theme.png b/docs/en/Blog-Posts/2020-06-05 v2_9_Release/lepton-theme.png index d471078deb..f6a85115e0 100644 Binary files a/docs/en/Blog-Posts/2020-06-05 v2_9_Release/lepton-theme.png and b/docs/en/Blog-Posts/2020-06-05 v2_9_Release/lepton-theme.png differ diff --git a/docs/en/Blog-Posts/2020-06-05 v2_9_Release/organization-units.png b/docs/en/Blog-Posts/2020-06-05 v2_9_Release/organization-units.png index 57d0399860..2a6ad72ffb 100644 Binary files a/docs/en/Blog-Posts/2020-06-05 v2_9_Release/organization-units.png and b/docs/en/Blog-Posts/2020-06-05 v2_9_Release/organization-units.png differ diff --git a/docs/en/Blog-Posts/2020-06-05 v2_9_Release/signalr-tiered-demo.png b/docs/en/Blog-Posts/2020-06-05 v2_9_Release/signalr-tiered-demo.png index bb81ddf37a..c4ca5e2b14 100644 Binary files a/docs/en/Blog-Posts/2020-06-05 v2_9_Release/signalr-tiered-demo.png and b/docs/en/Blog-Posts/2020-06-05 v2_9_Release/signalr-tiered-demo.png differ diff --git a/docs/en/Blog-Posts/2020-06-05 v2_9_Release/suite.png b/docs/en/Blog-Posts/2020-06-05 v2_9_Release/suite.png index fb5eac6012..7e08cb3ef3 100644 Binary files a/docs/en/Blog-Posts/2020-06-05 v2_9_Release/suite.png and b/docs/en/Blog-Posts/2020-06-05 v2_9_Release/suite.png differ diff --git a/docs/en/Blog-Posts/2020-06-05 v2_9_Release/virtual-file-explorer-1.png b/docs/en/Blog-Posts/2020-06-05 v2_9_Release/virtual-file-explorer-1.png index 99cc1bb49d..0db07459ca 100644 Binary files a/docs/en/Blog-Posts/2020-06-05 v2_9_Release/virtual-file-explorer-1.png and b/docs/en/Blog-Posts/2020-06-05 v2_9_Release/virtual-file-explorer-1.png differ diff --git a/docs/en/Blog-Posts/2020-06-05 v2_9_Release/virtual-file-explorer-2.png b/docs/en/Blog-Posts/2020-06-05 v2_9_Release/virtual-file-explorer-2.png index cac68ae661..5d4d85755d 100644 Binary files a/docs/en/Blog-Posts/2020-06-05 v2_9_Release/virtual-file-explorer-2.png and b/docs/en/Blog-Posts/2020-06-05 v2_9_Release/virtual-file-explorer-2.png differ diff --git a/docs/en/Blog-Posts/2020-07-01 v3_0_Release/file-management-ui.png b/docs/en/Blog-Posts/2020-07-01 v3_0_Release/file-management-ui.png index b5d5ea54e4..3dd42f950d 100644 Binary files a/docs/en/Blog-Posts/2020-07-01 v3_0_Release/file-management-ui.png and b/docs/en/Blog-Posts/2020-07-01 v3_0_Release/file-management-ui.png differ diff --git a/docs/en/Blog-Posts/2020-08-20 v3_1_Release/email-phone-verification.png b/docs/en/Blog-Posts/2020-08-20 v3_1_Release/email-phone-verification.png index 226c93668d..2b4c5ac335 100644 Binary files a/docs/en/Blog-Posts/2020-08-20 v3_1_Release/email-phone-verification.png and b/docs/en/Blog-Posts/2020-08-20 v3_1_Release/email-phone-verification.png differ diff --git a/docs/en/Blog-Posts/2020-08-20 v3_1_Release/forgot-password.png b/docs/en/Blog-Posts/2020-08-20 v3_1_Release/forgot-password.png index 4bf2570a88..c4bc8bff1d 100644 Binary files a/docs/en/Blog-Posts/2020-08-20 v3_1_Release/forgot-password.png and b/docs/en/Blog-Posts/2020-08-20 v3_1_Release/forgot-password.png differ diff --git a/docs/en/Blog-Posts/2020-08-20 v3_1_Release/ldap-settings-ui.png b/docs/en/Blog-Posts/2020-08-20 v3_1_Release/ldap-settings-ui.png index a88ca9fbcd..da77f3bfeb 100644 Binary files a/docs/en/Blog-Posts/2020-08-20 v3_1_Release/ldap-settings-ui.png and b/docs/en/Blog-Posts/2020-08-20 v3_1_Release/ldap-settings-ui.png differ diff --git a/docs/en/Blog-Posts/2020-08-20 v3_1_Release/my-security-logs.png b/docs/en/Blog-Posts/2020-08-20 v3_1_Release/my-security-logs.png index fb5fa8a454..10ac509e14 100644 Binary files a/docs/en/Blog-Posts/2020-08-20 v3_1_Release/my-security-logs.png and b/docs/en/Blog-Posts/2020-08-20 v3_1_Release/my-security-logs.png differ diff --git a/docs/en/Blog-Posts/2020-08-20 v3_1_Release/reset-password.png b/docs/en/Blog-Posts/2020-08-20 v3_1_Release/reset-password.png index 5fefe36b01..0dd9c94880 100644 Binary files a/docs/en/Blog-Posts/2020-08-20 v3_1_Release/reset-password.png and b/docs/en/Blog-Posts/2020-08-20 v3_1_Release/reset-password.png differ diff --git a/docs/en/Blog-Posts/2020-08-20 v3_1_Release/security-logs-ui.png b/docs/en/Blog-Posts/2020-08-20 v3_1_Release/security-logs-ui.png index 5f005b5c55..65c7380a86 100644 Binary files a/docs/en/Blog-Posts/2020-08-20 v3_1_Release/security-logs-ui.png and b/docs/en/Blog-Posts/2020-08-20 v3_1_Release/security-logs-ui.png differ diff --git a/docs/en/Blog-Posts/2020-08-20 v3_1_Release/user-lock.png b/docs/en/Blog-Posts/2020-08-20 v3_1_Release/user-lock.png index 363c657376..f176bf067a 100644 Binary files a/docs/en/Blog-Posts/2020-08-20 v3_1_Release/user-lock.png and b/docs/en/Blog-Posts/2020-08-20 v3_1_Release/user-lock.png differ diff --git a/docs/en/Blog-Posts/2020-09-07 Angular-Service-Proxies/swagger-book-list.png b/docs/en/Blog-Posts/2020-09-07 Angular-Service-Proxies/swagger-book-list.png index a0a062f636..1cd24d3ec2 100644 Binary files a/docs/en/Blog-Posts/2020-09-07 Angular-Service-Proxies/swagger-book-list.png and b/docs/en/Blog-Posts/2020-09-07 Angular-Service-Proxies/swagger-book-list.png differ diff --git a/docs/en/Blog-Posts/2020-09-17 v3_2_Preview/blazor-role-management.png b/docs/en/Blog-Posts/2020-09-17 v3_2_Preview/blazor-role-management.png index e00d66e9d0..520ba18b0c 100644 Binary files a/docs/en/Blog-Posts/2020-09-17 v3_2_Preview/blazor-role-management.png and b/docs/en/Blog-Posts/2020-09-17 v3_2_Preview/blazor-role-management.png differ diff --git a/docs/en/Blog-Posts/2020-09-17 v3_2_Preview/blazorise-github.png b/docs/en/Blog-Posts/2020-09-17 v3_2_Preview/blazorise-github.png index 1c8490f605..b5ded34da0 100644 Binary files a/docs/en/Blog-Posts/2020-09-17 v3_2_Preview/blazorise-github.png and b/docs/en/Blog-Posts/2020-09-17 v3_2_Preview/blazorise-github.png differ diff --git a/docs/en/Blog-Posts/2020-09-17 v3_2_Preview/file-management-module-angular.png b/docs/en/Blog-Posts/2020-09-17 v3_2_Preview/file-management-module-angular.png index e370c0d5bc..e424056917 100644 Binary files a/docs/en/Blog-Posts/2020-09-17 v3_2_Preview/file-management-module-angular.png and b/docs/en/Blog-Posts/2020-09-17 v3_2_Preview/file-management-module-angular.png differ diff --git a/docs/en/Blog-Posts/2020-09-17 v3_2_Preview/host-features.png b/docs/en/Blog-Posts/2020-09-17 v3_2_Preview/host-features.png index c803f8599b..dbfed05104 100644 Binary files a/docs/en/Blog-Posts/2020-09-17 v3_2_Preview/host-features.png and b/docs/en/Blog-Posts/2020-09-17 v3_2_Preview/host-features.png differ diff --git a/docs/en/Blog-Posts/2020-09-17 v3_2_Preview/visual-studio-solution-with-blazor.png b/docs/en/Blog-Posts/2020-09-17 v3_2_Preview/visual-studio-solution-with-blazor.png index c4c018e842..097f726bf0 100644 Binary files a/docs/en/Blog-Posts/2020-09-17 v3_2_Preview/visual-studio-solution-with-blazor.png and b/docs/en/Blog-Posts/2020-09-17 v3_2_Preview/visual-studio-solution-with-blazor.png differ diff --git a/docs/en/Blog-Posts/2020-10-15 v3_3_Preview/abp-blazor-ui.png b/docs/en/Blog-Posts/2020-10-15 v3_3_Preview/abp-blazor-ui.png index ea61f2a488..cfe00ac859 100644 Binary files a/docs/en/Blog-Posts/2020-10-15 v3_3_Preview/abp-blazor-ui.png and b/docs/en/Blog-Posts/2020-10-15 v3_3_Preview/abp-blazor-ui.png differ diff --git a/docs/en/Blog-Posts/2020-10-15 v3_3_Preview/abp-commercial-blazor-ui.png b/docs/en/Blog-Posts/2020-10-15 v3_3_Preview/abp-commercial-blazor-ui.png index 8da48af76e..920585fbd4 100644 Binary files a/docs/en/Blog-Posts/2020-10-15 v3_3_Preview/abp-commercial-blazor-ui.png and b/docs/en/Blog-Posts/2020-10-15 v3_3_Preview/abp-commercial-blazor-ui.png differ diff --git a/docs/en/Blog-Posts/2020-10-15 v3_3_Preview/abp-commercial-linked-users.png b/docs/en/Blog-Posts/2020-10-15 v3_3_Preview/abp-commercial-linked-users.png index ef957aecd5..0aaeffc6bc 100644 Binary files a/docs/en/Blog-Posts/2020-10-15 v3_3_Preview/abp-commercial-linked-users.png and b/docs/en/Blog-Posts/2020-10-15 v3_3_Preview/abp-commercial-linked-users.png differ diff --git a/docs/en/Blog-Posts/2020-10-15 v3_3_Preview/abp-commercial-setting-account-external-logins.png b/docs/en/Blog-Posts/2020-10-15 v3_3_Preview/abp-commercial-setting-account-external-logins.png index 8be08af686..c40b961beb 100644 Binary files a/docs/en/Blog-Posts/2020-10-15 v3_3_Preview/abp-commercial-setting-account-external-logins.png and b/docs/en/Blog-Posts/2020-10-15 v3_3_Preview/abp-commercial-setting-account-external-logins.png differ diff --git a/docs/en/Blog-Posts/2020-11-12 v4_0_Preview/abp-suite-auto-complete-dropdown.png b/docs/en/Blog-Posts/2020-11-12 v4_0_Preview/abp-suite-auto-complete-dropdown.png index 2021ef42bd..d349bf0375 100644 Binary files a/docs/en/Blog-Posts/2020-11-12 v4_0_Preview/abp-suite-auto-complete-dropdown.png and b/docs/en/Blog-Posts/2020-11-12 v4_0_Preview/abp-suite-auto-complete-dropdown.png differ diff --git a/docs/en/Blog-Posts/2020-12-04 v4_0_Release_Stable/abp-contribution-graph-4-years.png b/docs/en/Blog-Posts/2020-12-04 v4_0_Release_Stable/abp-contribution-graph-4-years.png index cb778d8dfe..5c92fb4f5e 100644 Binary files a/docs/en/Blog-Posts/2020-12-04 v4_0_Release_Stable/abp-contribution-graph-4-years.png and b/docs/en/Blog-Posts/2020-12-04 v4_0_Release_Stable/abp-contribution-graph-4-years.png differ diff --git a/docs/en/Blog-Posts/2020-12-04 v4_0_Release_Stable/ddd-implementation-guide-sample.png b/docs/en/Blog-Posts/2020-12-04 v4_0_Release_Stable/ddd-implementation-guide-sample.png index 3aab36e979..050ed1249e 100644 Binary files a/docs/en/Blog-Posts/2020-12-04 v4_0_Release_Stable/ddd-implementation-guide-sample.png and b/docs/en/Blog-Posts/2020-12-04 v4_0_Release_Stable/ddd-implementation-guide-sample.png differ diff --git a/docs/en/Blog-Posts/2020-12-18 v4_1_Preview/abp-commercial-public-website.png b/docs/en/Blog-Posts/2020-12-18 v4_1_Preview/abp-commercial-public-website.png index 8f01a9b385..478c8f4f33 100644 Binary files a/docs/en/Blog-Posts/2020-12-18 v4_1_Preview/abp-commercial-public-website.png and b/docs/en/Blog-Posts/2020-12-18 v4_1_Preview/abp-commercial-public-website.png differ diff --git a/docs/en/Blog-Posts/2020-12-18 v4_1_Preview/blazor-identityserver-ui.png b/docs/en/Blog-Posts/2020-12-18 v4_1_Preview/blazor-identityserver-ui.png index 8bb53d5d6b..947e4720af 100644 Binary files a/docs/en/Blog-Posts/2020-12-18 v4_1_Preview/blazor-identityserver-ui.png and b/docs/en/Blog-Posts/2020-12-18 v4_1_Preview/blazor-identityserver-ui.png differ diff --git a/docs/en/Blog-Posts/2020-12-18 v4_1_Preview/blazor-organization-units.png b/docs/en/Blog-Posts/2020-12-18 v4_1_Preview/blazor-organization-units.png index 5db13d61a2..45bd98ecd1 100644 Binary files a/docs/en/Blog-Posts/2020-12-18 v4_1_Preview/blazor-organization-units.png and b/docs/en/Blog-Posts/2020-12-18 v4_1_Preview/blazor-organization-units.png differ diff --git a/docs/en/Blog-Posts/2020-12-18 v4_1_Preview/spanish-commercial-translation.png b/docs/en/Blog-Posts/2020-12-18 v4_1_Preview/spanish-commercial-translation.png index ab6ca06719..d324f29f11 100644 Binary files a/docs/en/Blog-Posts/2020-12-18 v4_1_Preview/spanish-commercial-translation.png and b/docs/en/Blog-Posts/2020-12-18 v4_1_Preview/spanish-commercial-translation.png differ diff --git a/docs/en/Blog-Posts/2020-12-18 v4_1_Preview/type-ahead.png b/docs/en/Blog-Posts/2020-12-18 v4_1_Preview/type-ahead.png index 7eabb748fd..35bca6a495 100644 Binary files a/docs/en/Blog-Posts/2020-12-18 v4_1_Preview/type-ahead.png and b/docs/en/Blog-Posts/2020-12-18 v4_1_Preview/type-ahead.png differ diff --git a/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/easy-crm.png b/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/easy-crm.png index 02c47777a4..72413c382c 100644 Binary files a/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/easy-crm.png and b/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/easy-crm.png differ diff --git a/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/microservice-template-diagram.png b/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/microservice-template-diagram.png index 2c6df5ab74..f9e3a4f861 100644 Binary files a/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/microservice-template-diagram.png and b/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/microservice-template-diagram.png differ diff --git a/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/swagger-authorize-modal.png b/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/swagger-authorize-modal.png index 52b43f248e..583bebb4d1 100644 Binary files a/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/swagger-authorize-modal.png and b/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/swagger-authorize-modal.png differ diff --git a/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/swagger-authorize.png b/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/swagger-authorize.png index 650a212fe5..20d5065b20 100644 Binary files a/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/swagger-authorize.png and b/docs/en/Blog-Posts/2021-01-14 v4_2_Preview/swagger-authorize.png differ diff --git a/docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/abp-suite-separate-tenant-schema.png b/docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/abp-suite-separate-tenant-schema.png index ae80e744f4..4d5d22e1e9 100644 Binary files a/docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/abp-suite-separate-tenant-schema.png and b/docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/abp-suite-separate-tenant-schema.png differ diff --git a/docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/account-lepton-source.png b/docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/account-lepton-source.png index befdc83eb4..0547e418a9 100644 Binary files a/docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/account-lepton-source.png and b/docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/account-lepton-source.png differ diff --git a/docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/cms-kit-menu.png b/docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/cms-kit-menu.png index e8120946f4..034782e3f9 100644 Binary files a/docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/cms-kit-menu.png and b/docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/cms-kit-menu.png differ diff --git a/docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/cms-kit-selection.png b/docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/cms-kit-selection.png index 47552a3e25..79d8e3d321 100644 Binary files a/docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/cms-kit-selection.png and b/docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/cms-kit-selection.png differ diff --git a/docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/enable-disable-features.png b/docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/enable-disable-features.png index 9718c806f7..f6077bb4cc 100644 Binary files a/docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/enable-disable-features.png and b/docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/enable-disable-features.png differ diff --git a/docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/forms-answer.png b/docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/forms-answer.png index 0a3c3318d6..c6e1679151 100644 Binary files a/docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/forms-answer.png and b/docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/forms-answer.png differ diff --git a/docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/forms-edit-report.png b/docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/forms-edit-report.png index 670e5883b9..ab8a21eb34 100644 Binary files a/docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/forms-edit-report.png and b/docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/forms-edit-report.png differ diff --git a/docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/new-tenant-modal.png b/docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/new-tenant-modal.png index ff7777dfe8..96081e817d 100644 Binary files a/docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/new-tenant-modal.png and b/docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/new-tenant-modal.png differ diff --git a/docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/tenant-db-migrate.png b/docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/tenant-db-migrate.png index 59efac5add..a94cde1266 100644 Binary files a/docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/tenant-db-migrate.png and b/docs/en/Blog-Posts/2021-03-31 v4_3 Commercial Preview/tenant-db-migrate.png differ diff --git a/docs/en/Blog-Posts/2021-03-31 v4_3 Preview/email-settings-page.png b/docs/en/Blog-Posts/2021-03-31 v4_3 Preview/email-settings-page.png index d2eda14b2a..4e5d2677ca 100644 Binary files a/docs/en/Blog-Posts/2021-03-31 v4_3 Preview/email-settings-page.png and b/docs/en/Blog-Posts/2021-03-31 v4_3 Preview/email-settings-page.png differ diff --git a/docs/en/Blog-Posts/2021-04-05 CmsKit/cms-kit-menu.png b/docs/en/Blog-Posts/2021-04-05 CmsKit/cms-kit-menu.png index 3f187c9a9d..24b97e46c6 100644 Binary files a/docs/en/Blog-Posts/2021-04-05 CmsKit/cms-kit-menu.png and b/docs/en/Blog-Posts/2021-04-05 CmsKit/cms-kit-menu.png differ diff --git a/docs/en/Blog-Posts/2021-05-24-LeptonX/default-layout.png b/docs/en/Blog-Posts/2021-05-24-LeptonX/default-layout.png index 91e3ce214c..84ef243e52 100644 Binary files a/docs/en/Blog-Posts/2021-05-24-LeptonX/default-layout.png and b/docs/en/Blog-Posts/2021-05-24-LeptonX/default-layout.png differ diff --git a/docs/en/Blog-Posts/2021-05-24-LeptonX/leptonx-intro-cover-image.png b/docs/en/Blog-Posts/2021-05-24-LeptonX/leptonx-intro-cover-image.png index 46faaf13e6..a7649c1599 100644 Binary files a/docs/en/Blog-Posts/2021-05-24-LeptonX/leptonx-intro-cover-image.png and b/docs/en/Blog-Posts/2021-05-24-LeptonX/leptonx-intro-cover-image.png differ diff --git a/docs/en/Blog-Posts/2021-05-24-LeptonX/mobiles.png b/docs/en/Blog-Posts/2021-05-24-LeptonX/mobiles.png index 5e25afb845..5c90a36376 100644 Binary files a/docs/en/Blog-Posts/2021-05-24-LeptonX/mobiles.png and b/docs/en/Blog-Posts/2021-05-24-LeptonX/mobiles.png differ diff --git a/docs/en/Blog-Posts/2021-05-24-LeptonX/tablets.png b/docs/en/Blog-Posts/2021-05-24-LeptonX/tablets.png index e9944e15f7..79dd826a3a 100644 Binary files a/docs/en/Blog-Posts/2021-05-24-LeptonX/tablets.png and b/docs/en/Blog-Posts/2021-05-24-LeptonX/tablets.png differ diff --git a/docs/en/Blog-Posts/2021-05-24-LeptonX/top-menu-layout.png b/docs/en/Blog-Posts/2021-05-24-LeptonX/top-menu-layout.png index b0edab8974..751504bf10 100644 Binary files a/docs/en/Blog-Posts/2021-05-24-LeptonX/top-menu-layout.png and b/docs/en/Blog-Posts/2021-05-24-LeptonX/top-menu-layout.png differ diff --git a/docs/en/Blog-Posts/2021-06-28 v4_4 Preview/abp-44-cover.png b/docs/en/Blog-Posts/2021-06-28 v4_4 Preview/abp-44-cover.png index 1f231aac00..aeaeefa19f 100644 Binary files a/docs/en/Blog-Posts/2021-06-28 v4_4 Preview/abp-44-cover.png and b/docs/en/Blog-Posts/2021-06-28 v4_4 Preview/abp-44-cover.png differ diff --git a/docs/en/Blog-Posts/2021-06-28 v4_4 Preview/dotnetfoundation-sponsor-volosoft.png b/docs/en/Blog-Posts/2021-06-28 v4_4 Preview/dotnetfoundation-sponsor-volosoft.png index e1f70929f4..87fd79109a 100644 Binary files a/docs/en/Blog-Posts/2021-06-28 v4_4 Preview/dotnetfoundation-sponsor-volosoft.png and b/docs/en/Blog-Posts/2021-06-28 v4_4 Preview/dotnetfoundation-sponsor-volosoft.png differ diff --git a/docs/en/Blog-Posts/2021-06-28 v4_4 Preview/leptonx.png b/docs/en/Blog-Posts/2021-06-28 v4_4 Preview/leptonx.png index 46faaf13e6..a7649c1599 100644 Binary files a/docs/en/Blog-Posts/2021-06-28 v4_4 Preview/leptonx.png and b/docs/en/Blog-Posts/2021-06-28 v4_4 Preview/leptonx.png differ diff --git a/docs/en/Blog-Posts/2021-06-28 v4_4 Preview/menu-items-admin.png b/docs/en/Blog-Posts/2021-06-28 v4_4 Preview/menu-items-admin.png index 63075eed70..d344f432bc 100644 Binary files a/docs/en/Blog-Posts/2021-06-28 v4_4 Preview/menu-items-admin.png and b/docs/en/Blog-Posts/2021-06-28 v4_4 Preview/menu-items-admin.png differ diff --git a/docs/en/Blog-Posts/2021-07-08 Introducing_the_eShopOnAbp/overall-solution.png b/docs/en/Blog-Posts/2021-07-08 Introducing_the_eShopOnAbp/overall-solution.png index e3ef175316..738194b19c 100644 Binary files a/docs/en/Blog-Posts/2021-07-08 Introducing_the_eShopOnAbp/overall-solution.png and b/docs/en/Blog-Posts/2021-07-08 Introducing_the_eShopOnAbp/overall-solution.png differ diff --git a/docs/en/Blog-Posts/2021-07-28-lepton-x-release/lepton-x-lite-dashboard.png b/docs/en/Blog-Posts/2021-07-28-lepton-x-release/lepton-x-lite-dashboard.png index 6c1ed170fc..03547aed6b 100644 Binary files a/docs/en/Blog-Posts/2021-07-28-lepton-x-release/lepton-x-lite-dashboard.png and b/docs/en/Blog-Posts/2021-07-28-lepton-x-release/lepton-x-lite-dashboard.png differ diff --git a/docs/en/Blog-Posts/2021-07-28-lepton-x-release/lepton-x-lite-menu-collapsed.png b/docs/en/Blog-Posts/2021-07-28-lepton-x-release/lepton-x-lite-menu-collapsed.png index 36cc5014d3..d45a41008e 100644 Binary files a/docs/en/Blog-Posts/2021-07-28-lepton-x-release/lepton-x-lite-menu-collapsed.png and b/docs/en/Blog-Posts/2021-07-28-lepton-x-release/lepton-x-lite-menu-collapsed.png differ diff --git a/docs/en/Blog-Posts/2021-11-18 v5_0_Preview/community-talks.png b/docs/en/Blog-Posts/2021-11-18 v5_0_Preview/community-talks.png index 4056d1afb8..545cd61071 100644 Binary files a/docs/en/Blog-Posts/2021-11-18 v5_0_Preview/community-talks.png and b/docs/en/Blog-Posts/2021-11-18 v5_0_Preview/community-talks.png differ diff --git a/docs/en/Blog-Posts/2021-11-18 v5_0_Preview/cover-50.png b/docs/en/Blog-Posts/2021-11-18 v5_0_Preview/cover-50.png index bd343e70b0..36862e2a2f 100644 Binary files a/docs/en/Blog-Posts/2021-11-18 v5_0_Preview/cover-50.png and b/docs/en/Blog-Posts/2021-11-18 v5_0_Preview/cover-50.png differ diff --git a/docs/en/Blog-Posts/2021-11-18 v5_0_Preview/csharp-proxies.png b/docs/en/Blog-Posts/2021-11-18 v5_0_Preview/csharp-proxies.png index 1805b5238e..5bc167a388 100644 Binary files a/docs/en/Blog-Posts/2021-11-18 v5_0_Preview/csharp-proxies.png and b/docs/en/Blog-Posts/2021-11-18 v5_0_Preview/csharp-proxies.png differ diff --git a/docs/en/Blog-Posts/2021-11-18 v5_0_Preview/email-settings.png b/docs/en/Blog-Posts/2021-11-18 v5_0_Preview/email-settings.png index 438696e170..74574fbd2d 100644 Binary files a/docs/en/Blog-Posts/2021-11-18 v5_0_Preview/email-settings.png and b/docs/en/Blog-Posts/2021-11-18 v5_0_Preview/email-settings.png differ diff --git a/docs/en/Blog-Posts/2021-11-18 v5_0_Preview/enable-email-tenant.png b/docs/en/Blog-Posts/2021-11-18 v5_0_Preview/enable-email-tenant.png index 90e747cc76..d35cda4713 100644 Binary files a/docs/en/Blog-Posts/2021-11-18 v5_0_Preview/enable-email-tenant.png and b/docs/en/Blog-Posts/2021-11-18 v5_0_Preview/enable-email-tenant.png differ diff --git a/docs/en/Blog-Posts/2021-11-18 v5_0_Preview/hangfire-dashboard.png b/docs/en/Blog-Posts/2021-11-18 v5_0_Preview/hangfire-dashboard.png index a7df71a3e3..671a018dda 100644 Binary files a/docs/en/Blog-Posts/2021-11-18 v5_0_Preview/hangfire-dashboard.png and b/docs/en/Blog-Posts/2021-11-18 v5_0_Preview/hangfire-dashboard.png differ diff --git a/docs/en/Blog-Posts/2021-11-18 v5_0_Preview/js-proxies.png b/docs/en/Blog-Posts/2021-11-18 v5_0_Preview/js-proxies.png index 4cc9e41308..5494ad125b 100644 Binary files a/docs/en/Blog-Posts/2021-11-18 v5_0_Preview/js-proxies.png and b/docs/en/Blog-Posts/2021-11-18 v5_0_Preview/js-proxies.png differ diff --git a/docs/en/Blog-Posts/2021-11-18 v5_0_Preview/tenant-features.png b/docs/en/Blog-Posts/2021-11-18 v5_0_Preview/tenant-features.png index 8146f45992..b851173ab1 100644 Binary files a/docs/en/Blog-Posts/2021-11-18 v5_0_Preview/tenant-features.png and b/docs/en/Blog-Posts/2021-11-18 v5_0_Preview/tenant-features.png differ diff --git a/docs/en/Blog-Posts/2021-11-18 v5_0_Preview/use-preview-visual-studio.png b/docs/en/Blog-Posts/2021-11-18 v5_0_Preview/use-preview-visual-studio.png index 317cf1d209..8bcb525e59 100644 Binary files a/docs/en/Blog-Posts/2021-11-18 v5_0_Preview/use-preview-visual-studio.png and b/docs/en/Blog-Posts/2021-11-18 v5_0_Preview/use-preview-visual-studio.png differ diff --git a/docs/en/Blog-Posts/2021-11-18 v5_0_Preview/user-active.png b/docs/en/Blog-Posts/2021-11-18 v5_0_Preview/user-active.png index 07cb5c7dca..9df561568c 100644 Binary files a/docs/en/Blog-Posts/2021-11-18 v5_0_Preview/user-active.png and b/docs/en/Blog-Posts/2021-11-18 v5_0_Preview/user-active.png differ diff --git a/docs/en/Blog-Posts/2021-12-15 v5_0_Release_Stable/community-talks.png b/docs/en/Blog-Posts/2021-12-15 v5_0_Release_Stable/community-talks.png index 4056d1afb8..545cd61071 100644 Binary files a/docs/en/Blog-Posts/2021-12-15 v5_0_Release_Stable/community-talks.png and b/docs/en/Blog-Posts/2021-12-15 v5_0_Release_Stable/community-talks.png differ diff --git a/docs/en/Blog-Posts/2022-01-11 v5_1_Release_Stable/abp-community-talks-2022-1.png b/docs/en/Blog-Posts/2022-01-11 v5_1_Release_Stable/abp-community-talks-2022-1.png index 92a137e5ac..75e93a6fdd 100644 Binary files a/docs/en/Blog-Posts/2022-01-11 v5_1_Release_Stable/abp-community-talks-2022-1.png and b/docs/en/Blog-Posts/2022-01-11 v5_1_Release_Stable/abp-community-talks-2022-1.png differ diff --git a/docs/en/Blog-Posts/2022-01-11 v5_1_Release_Stable/new-abp-io-design.png b/docs/en/Blog-Posts/2022-01-11 v5_1_Release_Stable/new-abp-io-design.png index c6bc8e14cf..98057eb97c 100644 Binary files a/docs/en/Blog-Posts/2022-01-11 v5_1_Release_Stable/new-abp-io-design.png and b/docs/en/Blog-Posts/2022-01-11 v5_1_Release_Stable/new-abp-io-design.png differ diff --git a/docs/en/Blog-Posts/2022-01-11 v5_1_Release_Stable/url-forward.png b/docs/en/Blog-Posts/2022-01-11 v5_1_Release_Stable/url-forward.png index 8400ff522f..4c489854f0 100644 Binary files a/docs/en/Blog-Posts/2022-01-11 v5_1_Release_Stable/url-forward.png and b/docs/en/Blog-Posts/2022-01-11 v5_1_Release_Stable/url-forward.png differ diff --git a/docs/en/Blog-Posts/2022-03-08 v5_2_Preview/cms-kit-global-resources.png b/docs/en/Blog-Posts/2022-03-08 v5_2_Preview/cms-kit-global-resources.png index 9090c97412..ffd64b4ec0 100644 Binary files a/docs/en/Blog-Posts/2022-03-08 v5_2_Preview/cms-kit-global-resources.png and b/docs/en/Blog-Posts/2022-03-08 v5_2_Preview/cms-kit-global-resources.png differ diff --git a/docs/en/Blog-Posts/2022-03-08 v5_2_Preview/libs-folder.png b/docs/en/Blog-Posts/2022-03-08 v5_2_Preview/libs-folder.png index 5830f39bb3..61f3f3edf5 100644 Binary files a/docs/en/Blog-Posts/2022-03-08 v5_2_Preview/libs-folder.png and b/docs/en/Blog-Posts/2022-03-08 v5_2_Preview/libs-folder.png differ diff --git a/docs/en/Blog-Posts/2022-03-08 v5_2_Preview/single-layer-solution.png b/docs/en/Blog-Posts/2022-03-08 v5_2_Preview/single-layer-solution.png index 8ec9d0370e..6005edde7f 100644 Binary files a/docs/en/Blog-Posts/2022-03-08 v5_2_Preview/single-layer-solution.png and b/docs/en/Blog-Posts/2022-03-08 v5_2_Preview/single-layer-solution.png differ diff --git a/docs/en/Blog-Posts/2022-03-08 v5_2_Preview/suite-many-to-many-entity-relation.png b/docs/en/Blog-Posts/2022-03-08 v5_2_Preview/suite-many-to-many-entity-relation.png index d32a13b2bc..a0cf54ee9a 100644 Binary files a/docs/en/Blog-Posts/2022-03-08 v5_2_Preview/suite-many-to-many-entity-relation.png and b/docs/en/Blog-Posts/2022-03-08 v5_2_Preview/suite-many-to-many-entity-relation.png differ diff --git a/docs/en/Blog-Posts/2022-05-09 v5_3_Preview/app-nolayers-get-started.png b/docs/en/Blog-Posts/2022-05-09 v5_3_Preview/app-nolayers-get-started.png index e030dc50b9..736d3b7a88 100644 Binary files a/docs/en/Blog-Posts/2022-05-09 v5_3_Preview/app-nolayers-get-started.png and b/docs/en/Blog-Posts/2022-05-09 v5_3_Preview/app-nolayers-get-started.png differ diff --git a/docs/en/Blog-Posts/2022-05-09 v5_3_Preview/cover-53.png b/docs/en/Blog-Posts/2022-05-09 v5_3_Preview/cover-53.png index d30f63b3a4..3efb3f5a42 100644 Binary files a/docs/en/Blog-Posts/2022-05-09 v5_3_Preview/cover-53.png and b/docs/en/Blog-Posts/2022-05-09 v5_3_Preview/cover-53.png differ diff --git a/docs/en/Blog-Posts/2022-05-09 v5_3_Preview/deployment-documentation.png b/docs/en/Blog-Posts/2022-05-09 v5_3_Preview/deployment-documentation.png index 3dde546b15..1015f7ce18 100644 Binary files a/docs/en/Blog-Posts/2022-05-09 v5_3_Preview/deployment-documentation.png and b/docs/en/Blog-Posts/2022-05-09 v5_3_Preview/deployment-documentation.png differ diff --git a/docs/en/Blog-Posts/2022-05-09 v5_3_Preview/gdpr-personal-data-page.png b/docs/en/Blog-Posts/2022-05-09 v5_3_Preview/gdpr-personal-data-page.png index 2a85dade63..5beb5551ac 100644 Binary files a/docs/en/Blog-Posts/2022-05-09 v5_3_Preview/gdpr-personal-data-page.png and b/docs/en/Blog-Posts/2022-05-09 v5_3_Preview/gdpr-personal-data-page.png differ diff --git a/docs/en/Blog-Posts/2022-05-09 v5_3_Preview/gdpr-user-menu.png b/docs/en/Blog-Posts/2022-05-09 v5_3_Preview/gdpr-user-menu.png index 5366014b0c..c617f9348a 100644 Binary files a/docs/en/Blog-Posts/2022-05-09 v5_3_Preview/gdpr-user-menu.png and b/docs/en/Blog-Posts/2022-05-09 v5_3_Preview/gdpr-user-menu.png differ diff --git a/docs/en/Blog-Posts/2022-05-09 v5_3_Preview/leptonx-lite-documentations.png b/docs/en/Blog-Posts/2022-05-09 v5_3_Preview/leptonx-lite-documentations.png index 4186dc99a1..124aa35ecf 100644 Binary files a/docs/en/Blog-Posts/2022-05-09 v5_3_Preview/leptonx-lite-documentations.png and b/docs/en/Blog-Posts/2022-05-09 v5_3_Preview/leptonx-lite-documentations.png differ diff --git a/docs/en/Blog-Posts/2022-05-09 v5_3_Preview/poll-new-question.png b/docs/en/Blog-Posts/2022-05-09 v5_3_Preview/poll-new-question.png index aeec85e5ee..73cadda6c1 100644 Binary files a/docs/en/Blog-Posts/2022-05-09 v5_3_Preview/poll-new-question.png and b/docs/en/Blog-Posts/2022-05-09 v5_3_Preview/poll-new-question.png differ diff --git a/docs/en/Blog-Posts/2022-05-09 v5_3_Preview/poll-question-example.png b/docs/en/Blog-Posts/2022-05-09 v5_3_Preview/poll-question-example.png index 130586ab29..1f048819b3 100644 Binary files a/docs/en/Blog-Posts/2022-05-09 v5_3_Preview/poll-question-example.png and b/docs/en/Blog-Posts/2022-05-09 v5_3_Preview/poll-question-example.png differ diff --git a/docs/en/Blog-Posts/2022-05-09 v5_3_Preview/poll-questions.png b/docs/en/Blog-Posts/2022-05-09 v5_3_Preview/poll-questions.png index 969ffd6fdb..bee6caac75 100644 Binary files a/docs/en/Blog-Posts/2022-05-09 v5_3_Preview/poll-questions.png and b/docs/en/Blog-Posts/2022-05-09 v5_3_Preview/poll-questions.png differ diff --git a/docs/en/Blog-Posts/2022-07-26 v6_0_Preview/blazor-chat-module-1.png b/docs/en/Blog-Posts/2022-07-26 v6_0_Preview/blazor-chat-module-1.png index 6d847c9065..00ba2882d2 100644 Binary files a/docs/en/Blog-Posts/2022-07-26 v6_0_Preview/blazor-chat-module-1.png and b/docs/en/Blog-Posts/2022-07-26 v6_0_Preview/blazor-chat-module-1.png differ diff --git a/docs/en/Blog-Posts/2022-07-26 v6_0_Preview/blazor-chat-module-2.png b/docs/en/Blog-Posts/2022-07-26 v6_0_Preview/blazor-chat-module-2.png index 24f0688319..0fbc244b04 100644 Binary files a/docs/en/Blog-Posts/2022-07-26 v6_0_Preview/blazor-chat-module-2.png and b/docs/en/Blog-Posts/2022-07-26 v6_0_Preview/blazor-chat-module-2.png differ diff --git a/docs/en/Blog-Posts/2022-07-26 v6_0_Preview/cms-blog-blazor.png b/docs/en/Blog-Posts/2022-07-26 v6_0_Preview/cms-blog-blazor.png index 5d169aa322..37c428b75e 100644 Binary files a/docs/en/Blog-Posts/2022-07-26 v6_0_Preview/cms-blog-blazor.png and b/docs/en/Blog-Posts/2022-07-26 v6_0_Preview/cms-blog-blazor.png differ diff --git a/docs/en/Blog-Posts/2022-07-26 v6_0_Preview/cms-blog-post-blazor.png b/docs/en/Blog-Posts/2022-07-26 v6_0_Preview/cms-blog-post-blazor.png index 1722a85b10..badedb60d5 100644 Binary files a/docs/en/Blog-Posts/2022-07-26 v6_0_Preview/cms-blog-post-blazor.png and b/docs/en/Blog-Posts/2022-07-26 v6_0_Preview/cms-blog-post-blazor.png differ diff --git a/docs/en/Blog-Posts/2022-07-26 v6_0_Preview/cookie-banner.png b/docs/en/Blog-Posts/2022-07-26 v6_0_Preview/cookie-banner.png index cbfafbc907..44e5195e1f 100644 Binary files a/docs/en/Blog-Posts/2022-07-26 v6_0_Preview/cookie-banner.png and b/docs/en/Blog-Posts/2022-07-26 v6_0_Preview/cookie-banner.png differ diff --git a/docs/en/Blog-Posts/2022-07-26 v6_0_Preview/cover-image.png b/docs/en/Blog-Posts/2022-07-26 v6_0_Preview/cover-image.png index 1a6e267b86..56f833edcb 100644 Binary files a/docs/en/Blog-Posts/2022-07-26 v6_0_Preview/cover-image.png and b/docs/en/Blog-Posts/2022-07-26 v6_0_Preview/cover-image.png differ diff --git a/docs/en/Blog-Posts/2022-07-26 v6_0_Preview/dnf-summit-attendees.jpg b/docs/en/Blog-Posts/2022-07-26 v6_0_Preview/dnf-summit-attendees.jpg index 42df8aaf4e..314c44d58e 100644 Binary files a/docs/en/Blog-Posts/2022-07-26 v6_0_Preview/dnf-summit-attendees.jpg and b/docs/en/Blog-Posts/2022-07-26 v6_0_Preview/dnf-summit-attendees.jpg differ diff --git a/docs/en/Blog-Posts/2022-07-26 v6_0_Preview/dnf-summit.png b/docs/en/Blog-Posts/2022-07-26 v6_0_Preview/dnf-summit.png index dff3609c20..97e6160211 100644 Binary files a/docs/en/Blog-Posts/2022-07-26 v6_0_Preview/dnf-summit.png and b/docs/en/Blog-Posts/2022-07-26 v6_0_Preview/dnf-summit.png differ diff --git a/docs/en/Blog-Posts/2022-07-26 v6_0_Preview/excel-export.png b/docs/en/Blog-Posts/2022-07-26 v6_0_Preview/excel-export.png index 393ea33ada..7a510943ab 100644 Binary files a/docs/en/Blog-Posts/2022-07-26 v6_0_Preview/excel-export.png and b/docs/en/Blog-Posts/2022-07-26 v6_0_Preview/excel-export.png differ diff --git a/docs/en/Blog-Posts/2022-07-26 v6_0_Preview/export-excel-page.png b/docs/en/Blog-Posts/2022-07-26 v6_0_Preview/export-excel-page.png index 243752969e..b635ffbd5e 100644 Binary files a/docs/en/Blog-Posts/2022-07-26 v6_0_Preview/export-excel-page.png and b/docs/en/Blog-Posts/2022-07-26 v6_0_Preview/export-excel-page.png differ diff --git a/docs/en/Blog-Posts/2022-07-26 v6_0_Preview/get-started-page.png b/docs/en/Blog-Posts/2022-07-26 v6_0_Preview/get-started-page.png index 5ae76b1398..3b90b515c1 100644 Binary files a/docs/en/Blog-Posts/2022-07-26 v6_0_Preview/get-started-page.png and b/docs/en/Blog-Posts/2022-07-26 v6_0_Preview/get-started-page.png differ diff --git a/docs/en/Blog-Posts/2022-07-26 v6_0_Preview/leptonx-lite-theme.png b/docs/en/Blog-Posts/2022-07-26 v6_0_Preview/leptonx-lite-theme.png index e87a06f4fb..703f80f07d 100644 Binary files a/docs/en/Blog-Posts/2022-07-26 v6_0_Preview/leptonx-lite-theme.png and b/docs/en/Blog-Posts/2022-07-26 v6_0_Preview/leptonx-lite-theme.png differ diff --git a/docs/en/Blog-Posts/2022-07-26 v6_0_Preview/maui-template.png b/docs/en/Blog-Posts/2022-07-26 v6_0_Preview/maui-template.png index 0d9df0e63f..c742d208aa 100644 Binary files a/docs/en/Blog-Posts/2022-07-26 v6_0_Preview/maui-template.png and b/docs/en/Blog-Posts/2022-07-26 v6_0_Preview/maui-template.png differ diff --git a/docs/en/Blog-Posts/2022-07-26 v6_0_Preview/poll-add-widget.png b/docs/en/Blog-Posts/2022-07-26 v6_0_Preview/poll-add-widget.png index 51cd34b9bf..46d4ce47e1 100644 Binary files a/docs/en/Blog-Posts/2022-07-26 v6_0_Preview/poll-add-widget.png and b/docs/en/Blog-Posts/2022-07-26 v6_0_Preview/poll-add-widget.png differ diff --git a/docs/en/Blog-Posts/2022-07-26 v6_0_Preview/pricing-page.png b/docs/en/Blog-Posts/2022-07-26 v6_0_Preview/pricing-page.png index 21b19b4ed7..5b1ca8baf8 100644 Binary files a/docs/en/Blog-Posts/2022-07-26 v6_0_Preview/pricing-page.png and b/docs/en/Blog-Posts/2022-07-26 v6_0_Preview/pricing-page.png differ diff --git a/docs/en/Blog-Posts/2022-07-26 v6_0_Preview/pwa-support-get-started-page.png b/docs/en/Blog-Posts/2022-07-26 v6_0_Preview/pwa-support-get-started-page.png index e91e4e5223..9d38d48772 100644 Binary files a/docs/en/Blog-Posts/2022-07-26 v6_0_Preview/pwa-support-get-started-page.png and b/docs/en/Blog-Posts/2022-07-26 v6_0_Preview/pwa-support-get-started-page.png differ diff --git a/docs/en/Blog-Posts/2022-07-26 v6_0_Preview/setting-management-emailing.png b/docs/en/Blog-Posts/2022-07-26 v6_0_Preview/setting-management-emailing.png index f2c5475655..ffb20ca798 100644 Binary files a/docs/en/Blog-Posts/2022-07-26 v6_0_Preview/setting-management-emailing.png and b/docs/en/Blog-Posts/2022-07-26 v6_0_Preview/setting-management-emailing.png differ diff --git a/docs/en/Blog-Posts/2022-07-26 v6_0_Preview/suite-create-new-solution.png b/docs/en/Blog-Posts/2022-07-26 v6_0_Preview/suite-create-new-solution.png index 5756a65ad0..109a07be2b 100644 Binary files a/docs/en/Blog-Posts/2022-07-26 v6_0_Preview/suite-create-new-solution.png and b/docs/en/Blog-Posts/2022-07-26 v6_0_Preview/suite-create-new-solution.png differ diff --git a/docs/en/Blog-Posts/2022-07-26 v6_0_Preview/suite-pwa-support.png b/docs/en/Blog-Posts/2022-07-26 v6_0_Preview/suite-pwa-support.png index bf5982b68a..271aeac8fd 100644 Binary files a/docs/en/Blog-Posts/2022-07-26 v6_0_Preview/suite-pwa-support.png and b/docs/en/Blog-Posts/2022-07-26 v6_0_Preview/suite-pwa-support.png differ diff --git a/docs/en/Blog-Posts/2022-11-14 v7_0_Preview/cover-image.png b/docs/en/Blog-Posts/2022-11-14 v7_0_Preview/cover-image.png index 534c8741cd..024f1cf278 100644 Binary files a/docs/en/Blog-Posts/2022-11-14 v7_0_Preview/cover-image.png and b/docs/en/Blog-Posts/2022-11-14 v7_0_Preview/cover-image.png differ diff --git a/docs/en/Blog-Posts/2022-11-14 v7_0_Preview/dotnef-conf-2022.jpg b/docs/en/Blog-Posts/2022-11-14 v7_0_Preview/dotnef-conf-2022.jpg index b2db2f9b56..82179e3362 100644 Binary files a/docs/en/Blog-Posts/2022-11-14 v7_0_Preview/dotnef-conf-2022.jpg and b/docs/en/Blog-Posts/2022-11-14 v7_0_Preview/dotnef-conf-2022.jpg differ diff --git a/docs/en/Blog-Posts/2022-11-14 v7_0_Preview/dynamic-permissions.png b/docs/en/Blog-Posts/2022-11-14 v7_0_Preview/dynamic-permissions.png index 108630c983..49ab9a97c1 100644 Binary files a/docs/en/Blog-Posts/2022-11-14 v7_0_Preview/dynamic-permissions.png and b/docs/en/Blog-Posts/2022-11-14 v7_0_Preview/dynamic-permissions.png differ diff --git a/docs/en/Blog-Posts/2022-11-14 v7_0_Preview/payment-gateway-1.png b/docs/en/Blog-Posts/2022-11-14 v7_0_Preview/payment-gateway-1.png index 12484feb6c..c6c3134934 100644 Binary files a/docs/en/Blog-Posts/2022-11-14 v7_0_Preview/payment-gateway-1.png and b/docs/en/Blog-Posts/2022-11-14 v7_0_Preview/payment-gateway-1.png differ diff --git a/docs/en/Blog-Posts/2023-02-08 v7_1_Preview/cover-image.png b/docs/en/Blog-Posts/2023-02-08 v7_1_Preview/cover-image.png index dd9e0475cb..879ecbe747 100644 Binary files a/docs/en/Blog-Posts/2023-02-08 v7_1_Preview/cover-image.png and b/docs/en/Blog-Posts/2023-02-08 v7_1_Preview/cover-image.png differ diff --git a/docs/en/Blog-Posts/2023-02-08 v7_1_Preview/saas-impersonation-1.png b/docs/en/Blog-Posts/2023-02-08 v7_1_Preview/saas-impersonation-1.png index 520cb6857a..30a9d70cea 100644 Binary files a/docs/en/Blog-Posts/2023-02-08 v7_1_Preview/saas-impersonation-1.png and b/docs/en/Blog-Posts/2023-02-08 v7_1_Preview/saas-impersonation-1.png differ diff --git a/docs/en/Blog-Posts/2023-02-08 v7_1_Preview/saas-impersonation-2.png b/docs/en/Blog-Posts/2023-02-08 v7_1_Preview/saas-impersonation-2.png index 7b5c685f35..3dfd62fb94 100644 Binary files a/docs/en/Blog-Posts/2023-02-08 v7_1_Preview/saas-impersonation-2.png and b/docs/en/Blog-Posts/2023-02-08 v7_1_Preview/saas-impersonation-2.png differ diff --git a/docs/en/Blog-Posts/2023-02-08 v7_1_Preview/suite-blazor-wasm-nolayers.png b/docs/en/Blog-Posts/2023-02-08 v7_1_Preview/suite-blazor-wasm-nolayers.png index 0f43c3cd2c..7ea566207b 100644 Binary files a/docs/en/Blog-Posts/2023-02-08 v7_1_Preview/suite-blazor-wasm-nolayers.png and b/docs/en/Blog-Posts/2023-02-08 v7_1_Preview/suite-blazor-wasm-nolayers.png differ diff --git a/docs/en/Blog-Posts/2023-03-15-Migration-Mssql-Postgresql/images/citext-1.jpg b/docs/en/Blog-Posts/2023-03-15-Migration-Mssql-Postgresql/images/citext-1.jpg index 4dc01228fa..f0005d378d 100644 Binary files a/docs/en/Blog-Posts/2023-03-15-Migration-Mssql-Postgresql/images/citext-1.jpg and b/docs/en/Blog-Posts/2023-03-15-Migration-Mssql-Postgresql/images/citext-1.jpg differ diff --git a/docs/en/Blog-Posts/2023-03-15-Migration-Mssql-Postgresql/images/citext-2.jpg b/docs/en/Blog-Posts/2023-03-15-Migration-Mssql-Postgresql/images/citext-2.jpg index a70b0312bf..439e529ee9 100644 Binary files a/docs/en/Blog-Posts/2023-03-15-Migration-Mssql-Postgresql/images/citext-2.jpg and b/docs/en/Blog-Posts/2023-03-15-Migration-Mssql-Postgresql/images/citext-2.jpg differ diff --git a/docs/en/Blog-Posts/2023-03-15-Migration-Mssql-Postgresql/images/citext-3.jpg b/docs/en/Blog-Posts/2023-03-15-Migration-Mssql-Postgresql/images/citext-3.jpg index c8a95d61a5..309a7a142f 100644 Binary files a/docs/en/Blog-Posts/2023-03-15-Migration-Mssql-Postgresql/images/citext-3.jpg and b/docs/en/Blog-Posts/2023-03-15-Migration-Mssql-Postgresql/images/citext-3.jpg differ diff --git a/docs/en/Blog-Posts/2023-03-15-Migration-Mssql-Postgresql/images/db-converter.jpg b/docs/en/Blog-Posts/2023-03-15-Migration-Mssql-Postgresql/images/db-converter.jpg index 9c5371d36c..97231e1d87 100644 Binary files a/docs/en/Blog-Posts/2023-03-15-Migration-Mssql-Postgresql/images/db-converter.jpg and b/docs/en/Blog-Posts/2023-03-15-Migration-Mssql-Postgresql/images/db-converter.jpg differ diff --git a/docs/en/Blog-Posts/2023-03-16-Migration-Abp.io-Azure/images/abpio-azure.png b/docs/en/Blog-Posts/2023-03-16-Migration-Abp.io-Azure/images/abpio-azure.png index 18e2379268..34caf81dd3 100644 Binary files a/docs/en/Blog-Posts/2023-03-16-Migration-Abp.io-Azure/images/abpio-azure.png and b/docs/en/Blog-Posts/2023-03-16-Migration-Abp.io-Azure/images/abpio-azure.png differ diff --git a/docs/en/Blog-Posts/2023-03-16-Migration-Abp.io-Azure/images/az-infra.png b/docs/en/Blog-Posts/2023-03-16-Migration-Abp.io-Azure/images/az-infra.png index facbb4141b..7602764591 100644 Binary files a/docs/en/Blog-Posts/2023-03-16-Migration-Abp.io-Azure/images/az-infra.png and b/docs/en/Blog-Posts/2023-03-16-Migration-Abp.io-Azure/images/az-infra.png differ diff --git a/docs/en/Blog-Posts/2023-03-16-Migration-Abp.io-Azure/images/speed.png b/docs/en/Blog-Posts/2023-03-16-Migration-Abp.io-Azure/images/speed.png index a9c99ea321..186615468b 100644 Binary files a/docs/en/Blog-Posts/2023-03-16-Migration-Abp.io-Azure/images/speed.png and b/docs/en/Blog-Posts/2023-03-16-Migration-Abp.io-Azure/images/speed.png differ diff --git a/docs/en/Blog-Posts/2023-03-16-Migration-Abp.io-Azure/images/terra-wire.png b/docs/en/Blog-Posts/2023-03-16-Migration-Abp.io-Azure/images/terra-wire.png index ad003ac362..a2a032a1de 100644 Binary files a/docs/en/Blog-Posts/2023-03-16-Migration-Abp.io-Azure/images/terra-wire.png and b/docs/en/Blog-Posts/2023-03-16-Migration-Abp.io-Azure/images/terra-wire.png differ diff --git a/docs/en/Blog-Posts/2023-03-23 v7_1_Release_Stable/abp-conf-2023.png b/docs/en/Blog-Posts/2023-03-23 v7_1_Release_Stable/abp-conf-2023.png index 889ddbdc0a..b562de6dae 100644 Binary files a/docs/en/Blog-Posts/2023-03-23 v7_1_Release_Stable/abp-conf-2023.png and b/docs/en/Blog-Posts/2023-03-23 v7_1_Release_Stable/abp-conf-2023.png differ diff --git a/docs/en/Blog-Posts/2023-03-24-status.abp.io/images/discord.png b/docs/en/Blog-Posts/2023-03-24-status.abp.io/images/discord.png index b9f66bfead..0e773729e4 100644 Binary files a/docs/en/Blog-Posts/2023-03-24-status.abp.io/images/discord.png and b/docs/en/Blog-Posts/2023-03-24-status.abp.io/images/discord.png differ diff --git a/docs/en/Blog-Posts/2023-03-24-status.abp.io/images/gh-status.png b/docs/en/Blog-Posts/2023-03-24-status.abp.io/images/gh-status.png index b48229b479..0490eeb6f6 100644 Binary files a/docs/en/Blog-Posts/2023-03-24-status.abp.io/images/gh-status.png and b/docs/en/Blog-Posts/2023-03-24-status.abp.io/images/gh-status.png differ diff --git a/docs/en/Blog-Posts/2023-03-24-status.abp.io/images/issue.png b/docs/en/Blog-Posts/2023-03-24-status.abp.io/images/issue.png index 39fda7a869..7f21404e8f 100644 Binary files a/docs/en/Blog-Posts/2023-03-24-status.abp.io/images/issue.png and b/docs/en/Blog-Posts/2023-03-24-status.abp.io/images/issue.png differ diff --git a/docs/en/Blog-Posts/2023-03-24-status.abp.io/images/status-abpio.png b/docs/en/Blog-Posts/2023-03-24-status.abp.io/images/status-abpio.png index 528a5755d7..359df07a92 100644 Binary files a/docs/en/Blog-Posts/2023-03-24-status.abp.io/images/status-abpio.png and b/docs/en/Blog-Posts/2023-03-24-status.abp.io/images/status-abpio.png differ diff --git a/docs/en/Blog-Posts/2023-04-07_Ultimate_NET_Framework_ABP/images/cover.png b/docs/en/Blog-Posts/2023-04-07_Ultimate_NET_Framework_ABP/images/cover.png index b2a7aa8595..fb6ee89af3 100644 Binary files a/docs/en/Blog-Posts/2023-04-07_Ultimate_NET_Framework_ABP/images/cover.png and b/docs/en/Blog-Posts/2023-04-07_Ultimate_NET_Framework_ABP/images/cover.png differ diff --git a/docs/en/Blog-Posts/2023-04-07_Ultimate_NET_Framework_ABP/images/developer-focused.png b/docs/en/Blog-Posts/2023-04-07_Ultimate_NET_Framework_ABP/images/developer-focused.png index bfb0f15d28..0bd8d212b8 100644 Binary files a/docs/en/Blog-Posts/2023-04-07_Ultimate_NET_Framework_ABP/images/developer-focused.png and b/docs/en/Blog-Posts/2023-04-07_Ultimate_NET_Framework_ABP/images/developer-focused.png differ diff --git a/docs/en/Blog-Posts/2023-04-07_Ultimate_NET_Framework_ABP/images/features.png b/docs/en/Blog-Posts/2023-04-07_Ultimate_NET_Framework_ABP/images/features.png index 7c941289e2..2f68e23137 100644 Binary files a/docs/en/Blog-Posts/2023-04-07_Ultimate_NET_Framework_ABP/images/features.png and b/docs/en/Blog-Posts/2023-04-07_Ultimate_NET_Framework_ABP/images/features.png differ diff --git a/docs/en/Blog-Posts/2023-04-07_Ultimate_NET_Framework_ABP/images/open-source.png b/docs/en/Blog-Posts/2023-04-07_Ultimate_NET_Framework_ABP/images/open-source.png index e389e67146..6c166ac7eb 100644 Binary files a/docs/en/Blog-Posts/2023-04-07_Ultimate_NET_Framework_ABP/images/open-source.png and b/docs/en/Blog-Posts/2023-04-07_Ultimate_NET_Framework_ABP/images/open-source.png differ diff --git a/docs/en/Blog-Posts/2023-04-12 v7_2_Preview/abp-conf.png b/docs/en/Blog-Posts/2023-04-12 v7_2_Preview/abp-conf.png index 889ddbdc0a..b562de6dae 100644 Binary files a/docs/en/Blog-Posts/2023-04-12 v7_2_Preview/abp-conf.png and b/docs/en/Blog-Posts/2023-04-12 v7_2_Preview/abp-conf.png differ diff --git a/docs/en/Blog-Posts/2023-04-12 v7_2_Preview/cover-image.png b/docs/en/Blog-Posts/2023-04-12 v7_2_Preview/cover-image.png index 59b45f9ec5..7cb92d2fa8 100644 Binary files a/docs/en/Blog-Posts/2023-04-12 v7_2_Preview/cover-image.png and b/docs/en/Blog-Posts/2023-04-12 v7_2_Preview/cover-image.png differ diff --git a/docs/en/Blog-Posts/2023-04-12 v7_2_Preview/force-password-change.png b/docs/en/Blog-Posts/2023-04-12 v7_2_Preview/force-password-change.png index c515f0acc3..dec11bc1c9 100644 Binary files a/docs/en/Blog-Posts/2023-04-12 v7_2_Preview/force-password-change.png and b/docs/en/Blog-Posts/2023-04-12 v7_2_Preview/force-password-change.png differ diff --git a/docs/en/Blog-Posts/2023-04-12 v7_2_Preview/leptonx-group-render.png b/docs/en/Blog-Posts/2023-04-12 v7_2_Preview/leptonx-group-render.png index 51c8ce7531..5a02c2596f 100644 Binary files a/docs/en/Blog-Posts/2023-04-12 v7_2_Preview/leptonx-group-render.png and b/docs/en/Blog-Posts/2023-04-12 v7_2_Preview/leptonx-group-render.png differ diff --git a/docs/en/Blog-Posts/2023-04-12 v7_2_Preview/password-aging.png b/docs/en/Blog-Posts/2023-04-12 v7_2_Preview/password-aging.png index 002cdd5cd2..8ed43ac2a7 100644 Binary files a/docs/en/Blog-Posts/2023-04-12 v7_2_Preview/password-aging.png and b/docs/en/Blog-Posts/2023-04-12 v7_2_Preview/password-aging.png differ diff --git a/docs/en/Blog-Posts/2023-04-12 v7_2_Preview/password-change-form.png b/docs/en/Blog-Posts/2023-04-12 v7_2_Preview/password-change-form.png index 6aa5ab26b7..783225e175 100644 Binary files a/docs/en/Blog-Posts/2023-04-12 v7_2_Preview/password-change-form.png and b/docs/en/Blog-Posts/2023-04-12 v7_2_Preview/password-change-form.png differ diff --git a/docs/en/Blog-Posts/2023-04-12 v7_2_Preview/suite-property.png b/docs/en/Blog-Posts/2023-04-12 v7_2_Preview/suite-property.png index 9fd094f93d..aa14b424a2 100644 Binary files a/docs/en/Blog-Posts/2023-04-12 v7_2_Preview/suite-property.png and b/docs/en/Blog-Posts/2023-04-12 v7_2_Preview/suite-property.png differ diff --git a/docs/en/Blog-Posts/2023-05-03 v7_2_Release_Stable/abp-conf.png b/docs/en/Blog-Posts/2023-05-03 v7_2_Release_Stable/abp-conf.png index 889ddbdc0a..b562de6dae 100644 Binary files a/docs/en/Blog-Posts/2023-05-03 v7_2_Release_Stable/abp-conf.png and b/docs/en/Blog-Posts/2023-05-03 v7_2_Release_Stable/abp-conf.png differ diff --git a/docs/en/Blog-Posts/2023-05-03 v7_2_Release_Stable/cover-image.png b/docs/en/Blog-Posts/2023-05-03 v7_2_Release_Stable/cover-image.png index 59b45f9ec5..7cb92d2fa8 100644 Binary files a/docs/en/Blog-Posts/2023-05-03 v7_2_Release_Stable/cover-image.png and b/docs/en/Blog-Posts/2023-05-03 v7_2_Release_Stable/cover-image.png differ diff --git a/docs/en/Blog-Posts/2023-06-05 v7_3_Preview/cover-image.png b/docs/en/Blog-Posts/2023-06-05 v7_3_Preview/cover-image.png index 235642a3f8..a15a8f0feb 100644 Binary files a/docs/en/Blog-Posts/2023-06-05 v7_3_Preview/cover-image.png and b/docs/en/Blog-Posts/2023-06-05 v7_3_Preview/cover-image.png differ diff --git a/docs/en/Blog-Posts/2023-06-05 v7_3_Preview/leptonx-account-layout.png b/docs/en/Blog-Posts/2023-06-05 v7_3_Preview/leptonx-account-layout.png index 9395011060..90ae483bec 100644 Binary files a/docs/en/Blog-Posts/2023-06-05 v7_3_Preview/leptonx-account-layout.png and b/docs/en/Blog-Posts/2023-06-05 v7_3_Preview/leptonx-account-layout.png differ diff --git a/docs/en/Blog-Posts/2023-06-05 v7_3_Preview/reset-authenticator.png b/docs/en/Blog-Posts/2023-06-05 v7_3_Preview/reset-authenticator.png index 42651b9479..d627f5c783 100644 Binary files a/docs/en/Blog-Posts/2023-06-05 v7_3_Preview/reset-authenticator.png and b/docs/en/Blog-Posts/2023-06-05 v7_3_Preview/reset-authenticator.png differ diff --git a/docs/en/Blog-Posts/2023-06-05 v7_3_Preview/two-factor-auth-1.png b/docs/en/Blog-Posts/2023-06-05 v7_3_Preview/two-factor-auth-1.png index 00c9e12456..b248970b47 100644 Binary files a/docs/en/Blog-Posts/2023-06-05 v7_3_Preview/two-factor-auth-1.png and b/docs/en/Blog-Posts/2023-06-05 v7_3_Preview/two-factor-auth-1.png differ diff --git a/docs/en/Blog-Posts/2023-06-05 v7_3_Preview/two-factor-auth-2.png b/docs/en/Blog-Posts/2023-06-05 v7_3_Preview/two-factor-auth-2.png index 4ccfbcee83..4ad00ddd5f 100644 Binary files a/docs/en/Blog-Posts/2023-06-05 v7_3_Preview/two-factor-auth-2.png and b/docs/en/Blog-Posts/2023-06-05 v7_3_Preview/two-factor-auth-2.png differ diff --git a/docs/en/Blog-Posts/2023-06-05 v7_3_Preview/two-factor-auth-3.png b/docs/en/Blog-Posts/2023-06-05 v7_3_Preview/two-factor-auth-3.png index 82a58bb479..407d8bc6d3 100644 Binary files a/docs/en/Blog-Posts/2023-06-05 v7_3_Preview/two-factor-auth-3.png and b/docs/en/Blog-Posts/2023-06-05 v7_3_Preview/two-factor-auth-3.png differ diff --git a/docs/en/Blog-Posts/2023-07-12 v7_3_Release_Stable/cover-image.png b/docs/en/Blog-Posts/2023-07-12 v7_3_Release_Stable/cover-image.png index 235642a3f8..a15a8f0feb 100644 Binary files a/docs/en/Blog-Posts/2023-07-12 v7_3_Release_Stable/cover-image.png and b/docs/en/Blog-Posts/2023-07-12 v7_3_Release_Stable/cover-image.png differ diff --git a/docs/en/Blog-Posts/2023-08-15 v7_4_Preview/book-extended-cs.png b/docs/en/Blog-Posts/2023-08-15 v7_4_Preview/book-extended-cs.png index 1179118621..5efd677bb4 100644 Binary files a/docs/en/Blog-Posts/2023-08-15 v7_4_Preview/book-extended-cs.png and b/docs/en/Blog-Posts/2023-08-15 v7_4_Preview/book-extended-cs.png differ diff --git a/docs/en/Blog-Posts/2023-08-15 v7_4_Preview/book-extended-cshtml.png b/docs/en/Blog-Posts/2023-08-15 v7_4_Preview/book-extended-cshtml.png index 0ed90a33de..ddbae4a841 100644 Binary files a/docs/en/Blog-Posts/2023-08-15 v7_4_Preview/book-extended-cshtml.png and b/docs/en/Blog-Posts/2023-08-15 v7_4_Preview/book-extended-cshtml.png differ diff --git a/docs/en/Blog-Posts/2023-08-15 v7_4_Preview/cover-image.png b/docs/en/Blog-Posts/2023-08-15 v7_4_Preview/cover-image.png index 06ced79397..d3152c7f4b 100644 Binary files a/docs/en/Blog-Posts/2023-08-15 v7_4_Preview/cover-image.png and b/docs/en/Blog-Posts/2023-08-15 v7_4_Preview/cover-image.png differ diff --git a/docs/en/Blog-Posts/2023-08-15 v7_4_Preview/editions.png b/docs/en/Blog-Posts/2023-08-15 v7_4_Preview/editions.png index 331706daa7..ea96907e56 100644 Binary files a/docs/en/Blog-Posts/2023-08-15 v7_4_Preview/editions.png and b/docs/en/Blog-Posts/2023-08-15 v7_4_Preview/editions.png differ diff --git a/docs/en/Blog-Posts/2023-08-15 v7_4_Preview/error-page.png b/docs/en/Blog-Posts/2023-08-15 v7_4_Preview/error-page.png index 8ece260ec3..5f8c7cf24f 100644 Binary files a/docs/en/Blog-Posts/2023-08-15 v7_4_Preview/error-page.png and b/docs/en/Blog-Posts/2023-08-15 v7_4_Preview/error-page.png differ diff --git a/docs/en/Blog-Posts/2023-08-15 v7_4_Preview/fluid-layout.png b/docs/en/Blog-Posts/2023-08-15 v7_4_Preview/fluid-layout.png index 6150f3e2bd..3eff13e504 100644 Binary files a/docs/en/Blog-Posts/2023-08-15 v7_4_Preview/fluid-layout.png and b/docs/en/Blog-Posts/2023-08-15 v7_4_Preview/fluid-layout.png differ diff --git a/docs/en/Blog-Posts/2023-08-15 v7_4_Preview/maui.png b/docs/en/Blog-Posts/2023-08-15 v7_4_Preview/maui.png index 4205001d80..9d4e95c191 100644 Binary files a/docs/en/Blog-Posts/2023-08-15 v7_4_Preview/maui.png and b/docs/en/Blog-Posts/2023-08-15 v7_4_Preview/maui.png differ diff --git a/docs/en/Blog-Posts/2023-08-15 v7_4_Preview/mobile-toolbars.png b/docs/en/Blog-Posts/2023-08-15 v7_4_Preview/mobile-toolbars.png index 6dcde5da60..eb322626e3 100644 Binary files a/docs/en/Blog-Posts/2023-08-15 v7_4_Preview/mobile-toolbars.png and b/docs/en/Blog-Posts/2023-08-15 v7_4_Preview/mobile-toolbars.png differ diff --git a/docs/en/Blog-Posts/2023-08-15 v7_4_Preview/move-all-tenants.png b/docs/en/Blog-Posts/2023-08-15 v7_4_Preview/move-all-tenants.png index b893360447..d850245181 100644 Binary files a/docs/en/Blog-Posts/2023-08-15 v7_4_Preview/move-all-tenants.png and b/docs/en/Blog-Posts/2023-08-15 v7_4_Preview/move-all-tenants.png differ diff --git a/docs/en/Blog-Posts/2023-08-15 v7_4_Preview/move-tenants.png b/docs/en/Blog-Posts/2023-08-15 v7_4_Preview/move-tenants.png index fb6b8364fb..8801b5fb0b 100644 Binary files a/docs/en/Blog-Posts/2023-08-15 v7_4_Preview/move-tenants.png and b/docs/en/Blog-Posts/2023-08-15 v7_4_Preview/move-tenants.png differ diff --git a/docs/en/Blog-Posts/2023-08-15 v7_4_Preview/page-feedback.png b/docs/en/Blog-Posts/2023-08-15 v7_4_Preview/page-feedback.png index dbdd9fe199..d5afe74f10 100644 Binary files a/docs/en/Blog-Posts/2023-08-15 v7_4_Preview/page-feedback.png and b/docs/en/Blog-Posts/2023-08-15 v7_4_Preview/page-feedback.png differ diff --git a/docs/en/Blog-Posts/2023-08-15 v7_4_Preview/password-complexity.png b/docs/en/Blog-Posts/2023-08-15 v7_4_Preview/password-complexity.png index 55bc8a8f43..d3b8555be1 100644 Binary files a/docs/en/Blog-Posts/2023-08-15 v7_4_Preview/password-complexity.png and b/docs/en/Blog-Posts/2023-08-15 v7_4_Preview/password-complexity.png differ diff --git a/docs/en/Blog-Posts/2023-08-15 v7_4_Preview/settings.png b/docs/en/Blog-Posts/2023-08-15 v7_4_Preview/settings.png index 1e835661a0..8934a9404e 100644 Binary files a/docs/en/Blog-Posts/2023-08-15 v7_4_Preview/settings.png and b/docs/en/Blog-Posts/2023-08-15 v7_4_Preview/settings.png differ diff --git a/docs/en/Blog-Posts/2023-08-15 v7_4_Preview/suite-custom-code-backend.png b/docs/en/Blog-Posts/2023-08-15 v7_4_Preview/suite-custom-code-backend.png index cb14dfc0f1..9715f7ff52 100644 Binary files a/docs/en/Blog-Posts/2023-08-15 v7_4_Preview/suite-custom-code-backend.png and b/docs/en/Blog-Posts/2023-08-15 v7_4_Preview/suite-custom-code-backend.png differ diff --git a/docs/en/Blog-Posts/2023-08-15 v7_4_Preview/suite-custom-code-ui.png b/docs/en/Blog-Posts/2023-08-15 v7_4_Preview/suite-custom-code-ui.png index 132988a873..82f09d6247 100644 Binary files a/docs/en/Blog-Posts/2023-08-15 v7_4_Preview/suite-custom-code-ui.png and b/docs/en/Blog-Posts/2023-08-15 v7_4_Preview/suite-custom-code-ui.png differ diff --git a/docs/en/Blog-Posts/2023-08-15 v7_4_Preview/suite-custom-code.png b/docs/en/Blog-Posts/2023-08-15 v7_4_Preview/suite-custom-code.png index 2e510d0768..b059320b9d 100644 Binary files a/docs/en/Blog-Posts/2023-08-15 v7_4_Preview/suite-custom-code.png and b/docs/en/Blog-Posts/2023-08-15 v7_4_Preview/suite-custom-code.png differ diff --git a/docs/en/Blog-Posts/2023-09-23-CMS-Kit-Demo/blog-detail.jpg b/docs/en/Blog-Posts/2023-09-23-CMS-Kit-Demo/blog-detail.jpg index d1e2a06f94..8ebe63afa7 100644 Binary files a/docs/en/Blog-Posts/2023-09-23-CMS-Kit-Demo/blog-detail.jpg and b/docs/en/Blog-Posts/2023-09-23-CMS-Kit-Demo/blog-detail.jpg differ diff --git a/docs/en/Blog-Posts/2023-09-23-CMS-Kit-Demo/blogs.jpg b/docs/en/Blog-Posts/2023-09-23-CMS-Kit-Demo/blogs.jpg index 70d276349c..8e0d71909b 100644 Binary files a/docs/en/Blog-Posts/2023-09-23-CMS-Kit-Demo/blogs.jpg and b/docs/en/Blog-Posts/2023-09-23-CMS-Kit-Demo/blogs.jpg differ diff --git a/docs/en/Blog-Posts/2023-09-23-CMS-Kit-Demo/cmskit-module-features.png b/docs/en/Blog-Posts/2023-09-23-CMS-Kit-Demo/cmskit-module-features.png index b6dd409e0a..08d456b9b3 100644 Binary files a/docs/en/Blog-Posts/2023-09-23-CMS-Kit-Demo/cmskit-module-features.png and b/docs/en/Blog-Posts/2023-09-23-CMS-Kit-Demo/cmskit-module-features.png differ diff --git a/docs/en/Blog-Posts/2023-09-23-CMS-Kit-Demo/homepage.png b/docs/en/Blog-Posts/2023-09-23-CMS-Kit-Demo/homepage.png index 3c485415aa..33c0a61b6b 100644 Binary files a/docs/en/Blog-Posts/2023-09-23-CMS-Kit-Demo/homepage.png and b/docs/en/Blog-Posts/2023-09-23-CMS-Kit-Demo/homepage.png differ diff --git a/docs/en/Blog-Posts/2023-09-23-CMS-Kit-Demo/image-gallery-detail.jpg b/docs/en/Blog-Posts/2023-09-23-CMS-Kit-Demo/image-gallery-detail.jpg index 70ea35ea2d..4179451e34 100644 Binary files a/docs/en/Blog-Posts/2023-09-23-CMS-Kit-Demo/image-gallery-detail.jpg and b/docs/en/Blog-Posts/2023-09-23-CMS-Kit-Demo/image-gallery-detail.jpg differ diff --git a/docs/en/Blog-Posts/2023-09-23-CMS-Kit-Demo/image-gallery.jpg b/docs/en/Blog-Posts/2023-09-23-CMS-Kit-Demo/image-gallery.jpg index b8b6291342..56d1b43a01 100644 Binary files a/docs/en/Blog-Posts/2023-09-23-CMS-Kit-Demo/image-gallery.jpg and b/docs/en/Blog-Posts/2023-09-23-CMS-Kit-Demo/image-gallery.jpg differ diff --git a/docs/en/Blog-Posts/2023-09-23-CMS-Kit-Demo/menu-admin-side.jpg b/docs/en/Blog-Posts/2023-09-23-CMS-Kit-Demo/menu-admin-side.jpg index c4dd12275e..3a6366eb7b 100644 Binary files a/docs/en/Blog-Posts/2023-09-23-CMS-Kit-Demo/menu-admin-side.jpg and b/docs/en/Blog-Posts/2023-09-23-CMS-Kit-Demo/menu-admin-side.jpg differ diff --git a/docs/en/Blog-Posts/2023-09-23-CMS-Kit-Demo/pages-admin-side.jpg b/docs/en/Blog-Posts/2023-09-23-CMS-Kit-Demo/pages-admin-side.jpg index 27ba597e13..9a2594c3b9 100644 Binary files a/docs/en/Blog-Posts/2023-09-23-CMS-Kit-Demo/pages-admin-side.jpg and b/docs/en/Blog-Posts/2023-09-23-CMS-Kit-Demo/pages-admin-side.jpg differ diff --git a/docs/en/Blog-Posts/2023-09-23-CMS-Kit-Demo/products-abp-commercial.png b/docs/en/Blog-Posts/2023-09-23-CMS-Kit-Demo/products-abp-commercial.png index 0401a947f5..991b764ce6 100644 Binary files a/docs/en/Blog-Posts/2023-09-23-CMS-Kit-Demo/products-abp-commercial.png and b/docs/en/Blog-Posts/2023-09-23-CMS-Kit-Demo/products-abp-commercial.png differ diff --git a/docs/en/Blog-Posts/2023-10-09 v7_4_Release_Stable/abp-community-talk.png b/docs/en/Blog-Posts/2023-10-09 v7_4_Release_Stable/abp-community-talk.png index 80938f8e06..d04ce6f245 100644 Binary files a/docs/en/Blog-Posts/2023-10-09 v7_4_Release_Stable/abp-community-talk.png and b/docs/en/Blog-Posts/2023-10-09 v7_4_Release_Stable/abp-community-talk.png differ diff --git a/docs/en/Blog-Posts/2023-10-09 v7_4_Release_Stable/cover-image.png b/docs/en/Blog-Posts/2023-10-09 v7_4_Release_Stable/cover-image.png index 06ced79397..d3152c7f4b 100644 Binary files a/docs/en/Blog-Posts/2023-10-09 v7_4_Release_Stable/cover-image.png and b/docs/en/Blog-Posts/2023-10-09 v7_4_Release_Stable/cover-image.png differ diff --git a/docs/en/Blog-Posts/2023-11-15 v8_0_Preview/community-talk-2023-8.png b/docs/en/Blog-Posts/2023-11-15 v8_0_Preview/community-talk-2023-8.png index eec41bb17a..e8e44f42bb 100644 Binary files a/docs/en/Blog-Posts/2023-11-15 v8_0_Preview/community-talk-2023-8.png and b/docs/en/Blog-Posts/2023-11-15 v8_0_Preview/community-talk-2023-8.png differ diff --git a/docs/en/Blog-Posts/2023-11-15 v8_0_Preview/cover-image.png b/docs/en/Blog-Posts/2023-11-15 v8_0_Preview/cover-image.png index 5ebaa2ba36..0bf0e0f938 100644 Binary files a/docs/en/Blog-Posts/2023-11-15 v8_0_Preview/cover-image.png and b/docs/en/Blog-Posts/2023-11-15 v8_0_Preview/cover-image.png differ diff --git a/docs/en/Blog-Posts/2023-11-15 v8_0_Preview/password-complexity-indicators.png b/docs/en/Blog-Posts/2023-11-15 v8_0_Preview/password-complexity-indicators.png index 98f8922c19..ba1d5f5a97 100644 Binary files a/docs/en/Blog-Posts/2023-11-15 v8_0_Preview/password-complexity-indicators.png and b/docs/en/Blog-Posts/2023-11-15 v8_0_Preview/password-complexity-indicators.png differ diff --git a/docs/en/Blog-Posts/2023-11-15 v8_0_Preview/users-page.png b/docs/en/Blog-Posts/2023-11-15 v8_0_Preview/users-page.png index 860dfdfffd..d5c3b4d68a 100644 Binary files a/docs/en/Blog-Posts/2023-11-15 v8_0_Preview/users-page.png and b/docs/en/Blog-Posts/2023-11-15 v8_0_Preview/users-page.png differ diff --git a/docs/en/Blog-Posts/2023-12-20 v8_0_Release_Stable/abp-china-team.jpeg b/docs/en/Blog-Posts/2023-12-20 v8_0_Release_Stable/abp-china-team.jpeg index d9f062c4cc..a24bf3cfd5 100644 Binary files a/docs/en/Blog-Posts/2023-12-20 v8_0_Release_Stable/abp-china-team.jpeg and b/docs/en/Blog-Posts/2023-12-20 v8_0_Release_Stable/abp-china-team.jpeg differ diff --git a/docs/en/Blog-Posts/2023-12-20 v8_0_Release_Stable/cover-image.png b/docs/en/Blog-Posts/2023-12-20 v8_0_Release_Stable/cover-image.png index 5ebaa2ba36..0bf0e0f938 100644 Binary files a/docs/en/Blog-Posts/2023-12-20 v8_0_Release_Stable/cover-image.png and b/docs/en/Blog-Posts/2023-12-20 v8_0_Release_Stable/cover-image.png differ diff --git a/docs/en/Blog-Posts/2024-01-14-china-shenzhen-dotnet-conf/2.jpg b/docs/en/Blog-Posts/2024-01-14-china-shenzhen-dotnet-conf/2.jpg index 4af735c16f..a25fabcc98 100644 Binary files a/docs/en/Blog-Posts/2024-01-14-china-shenzhen-dotnet-conf/2.jpg and b/docs/en/Blog-Posts/2024-01-14-china-shenzhen-dotnet-conf/2.jpg differ diff --git a/docs/en/Blog-Posts/2024-01-14-china-shenzhen-dotnet-conf/6.jpg b/docs/en/Blog-Posts/2024-01-14-china-shenzhen-dotnet-conf/6.jpg index d7f0de7fe6..eda7ac4735 100644 Binary files a/docs/en/Blog-Posts/2024-01-14-china-shenzhen-dotnet-conf/6.jpg and b/docs/en/Blog-Posts/2024-01-14-china-shenzhen-dotnet-conf/6.jpg differ diff --git a/docs/en/Blog-Posts/2024-01-14-china-shenzhen-dotnet-conf/8.jpg b/docs/en/Blog-Posts/2024-01-14-china-shenzhen-dotnet-conf/8.jpg index c271071526..76842cf0fa 100644 Binary files a/docs/en/Blog-Posts/2024-01-14-china-shenzhen-dotnet-conf/8.jpg and b/docs/en/Blog-Posts/2024-01-14-china-shenzhen-dotnet-conf/8.jpg differ diff --git a/docs/en/Blog-Posts/2024-01-14-china-shenzhen-dotnet-conf/9.jpg b/docs/en/Blog-Posts/2024-01-14-china-shenzhen-dotnet-conf/9.jpg index 96e99f2565..5be2c5d6dc 100644 Binary files a/docs/en/Blog-Posts/2024-01-14-china-shenzhen-dotnet-conf/9.jpg and b/docs/en/Blog-Posts/2024-01-14-china-shenzhen-dotnet-conf/9.jpg differ diff --git a/docs/en/Blog-Posts/2024-02-16 v8_1_Preview/basic-aggregate-root.png b/docs/en/Blog-Posts/2024-02-16 v8_1_Preview/basic-aggregate-root.png index ed57443284..c1c8e6ca8d 100644 Binary files a/docs/en/Blog-Posts/2024-02-16 v8_1_Preview/basic-aggregate-root.png and b/docs/en/Blog-Posts/2024-02-16 v8_1_Preview/basic-aggregate-root.png differ diff --git a/docs/en/Blog-Posts/2024-02-16 v8_1_Preview/bulk-delete-datatable.png b/docs/en/Blog-Posts/2024-02-16 v8_1_Preview/bulk-delete-datatable.png index 8357cebb02..92b767515a 100644 Binary files a/docs/en/Blog-Posts/2024-02-16 v8_1_Preview/bulk-delete-datatable.png and b/docs/en/Blog-Posts/2024-02-16 v8_1_Preview/bulk-delete-datatable.png differ diff --git a/docs/en/Blog-Posts/2024-02-16 v8_1_Preview/bulk-delete.png b/docs/en/Blog-Posts/2024-02-16 v8_1_Preview/bulk-delete.png index 2bdc1d8bcc..8281ecb8d6 100644 Binary files a/docs/en/Blog-Posts/2024-02-16 v8_1_Preview/bulk-delete.png and b/docs/en/Blog-Posts/2024-02-16 v8_1_Preview/bulk-delete.png differ diff --git a/docs/en/Blog-Posts/2024-02-16 v8_1_Preview/cover-image.png b/docs/en/Blog-Posts/2024-02-16 v8_1_Preview/cover-image.png index 6d95e19c24..bb7094ece5 100644 Binary files a/docs/en/Blog-Posts/2024-02-16 v8_1_Preview/cover-image.png and b/docs/en/Blog-Posts/2024-02-16 v8_1_Preview/cover-image.png differ diff --git a/docs/en/Blog-Posts/2024-02-16 v8_1_Preview/dotnet-conf-china-2023-watch-party.jpg b/docs/en/Blog-Posts/2024-02-16 v8_1_Preview/dotnet-conf-china-2023-watch-party.jpg index 818bc10ce8..c8a78a0f93 100644 Binary files a/docs/en/Blog-Posts/2024-02-16 v8_1_Preview/dotnet-conf-china-2023-watch-party.jpg and b/docs/en/Blog-Posts/2024-02-16 v8_1_Preview/dotnet-conf-china-2023-watch-party.jpg differ diff --git a/docs/en/Blog-Posts/2024-02-16 v8_1_Preview/filterable-properties.png b/docs/en/Blog-Posts/2024-02-16 v8_1_Preview/filterable-properties.png index 4aff361825..6c45f9cb71 100644 Binary files a/docs/en/Blog-Posts/2024-02-16 v8_1_Preview/filterable-properties.png and b/docs/en/Blog-Posts/2024-02-16 v8_1_Preview/filterable-properties.png differ diff --git a/docs/en/Blog-Posts/2024-02-16 v8_1_Preview/page-title.png b/docs/en/Blog-Posts/2024-02-16 v8_1_Preview/page-title.png index 1f767838db..23b1dc8513 100644 Binary files a/docs/en/Blog-Posts/2024-02-16 v8_1_Preview/page-title.png and b/docs/en/Blog-Posts/2024-02-16 v8_1_Preview/page-title.png differ diff --git a/docs/en/Community-Articles/15-08-2022-How-to-Design-Multi-Lingual-Entity/data-model.png b/docs/en/Community-Articles/15-08-2022-How-to-Design-Multi-Lingual-Entity/data-model.png index c7e02bc2cd..d68bb5d7be 100644 Binary files a/docs/en/Community-Articles/15-08-2022-How-to-Design-Multi-Lingual-Entity/data-model.png and b/docs/en/Community-Articles/15-08-2022-How-to-Design-Multi-Lingual-Entity/data-model.png differ diff --git a/docs/en/Community-Articles/2020-05-29-Real-Time-Messaging-In-A-Distributed-Architecture-Using-Abp-Framework-SingalR-RabbitMQ/chat.png b/docs/en/Community-Articles/2020-05-29-Real-Time-Messaging-In-A-Distributed-Architecture-Using-Abp-Framework-SingalR-RabbitMQ/chat.png index b29daa9492..1275bb7ac5 100644 Binary files a/docs/en/Community-Articles/2020-05-29-Real-Time-Messaging-In-A-Distributed-Architecture-Using-Abp-Framework-SingalR-RabbitMQ/chat.png and b/docs/en/Community-Articles/2020-05-29-Real-Time-Messaging-In-A-Distributed-Architecture-Using-Abp-Framework-SingalR-RabbitMQ/chat.png differ diff --git a/docs/en/Community-Articles/2020-05-29-Real-Time-Messaging-In-A-Distributed-Architecture-Using-Abp-Framework-SingalR-RabbitMQ/dataflow-diagram.png b/docs/en/Community-Articles/2020-05-29-Real-Time-Messaging-In-A-Distributed-Architecture-Using-Abp-Framework-SingalR-RabbitMQ/dataflow-diagram.png index bb81ddf37a..c4ca5e2b14 100644 Binary files a/docs/en/Community-Articles/2020-05-29-Real-Time-Messaging-In-A-Distributed-Architecture-Using-Abp-Framework-SingalR-RabbitMQ/dataflow-diagram.png and b/docs/en/Community-Articles/2020-05-29-Real-Time-Messaging-In-A-Distributed-Architecture-Using-Abp-Framework-SingalR-RabbitMQ/dataflow-diagram.png differ diff --git a/docs/en/Community-Articles/2020-05-29-Real-Time-Messaging-In-A-Distributed-Architecture-Using-Abp-Framework-SingalR-RabbitMQ/header.png b/docs/en/Community-Articles/2020-05-29-Real-Time-Messaging-In-A-Distributed-Architecture-Using-Abp-Framework-SingalR-RabbitMQ/header.png index 6e5a46b780..0a06688c5b 100644 Binary files a/docs/en/Community-Articles/2020-05-29-Real-Time-Messaging-In-A-Distributed-Architecture-Using-Abp-Framework-SingalR-RabbitMQ/header.png and b/docs/en/Community-Articles/2020-05-29-Real-Time-Messaging-In-A-Distributed-Architecture-Using-Abp-Framework-SingalR-RabbitMQ/header.png differ diff --git a/docs/en/Community-Articles/2020-05-29-Real-Time-Messaging-In-A-Distributed-Architecture-Using-Abp-Framework-SingalR-RabbitMQ/login1.png b/docs/en/Community-Articles/2020-05-29-Real-Time-Messaging-In-A-Distributed-Architecture-Using-Abp-Framework-SingalR-RabbitMQ/login1.png index 4e371e2ee9..65ec99c975 100644 Binary files a/docs/en/Community-Articles/2020-05-29-Real-Time-Messaging-In-A-Distributed-Architecture-Using-Abp-Framework-SingalR-RabbitMQ/login1.png and b/docs/en/Community-Articles/2020-05-29-Real-Time-Messaging-In-A-Distributed-Architecture-Using-Abp-Framework-SingalR-RabbitMQ/login1.png differ diff --git a/docs/en/Community-Articles/2020-05-29-Real-Time-Messaging-In-A-Distributed-Architecture-Using-Abp-Framework-SingalR-RabbitMQ/login2.png b/docs/en/Community-Articles/2020-05-29-Real-Time-Messaging-In-A-Distributed-Architecture-Using-Abp-Framework-SingalR-RabbitMQ/login2.png index 68c5a3259d..f236cdfbf8 100644 Binary files a/docs/en/Community-Articles/2020-05-29-Real-Time-Messaging-In-A-Distributed-Architecture-Using-Abp-Framework-SingalR-RabbitMQ/login2.png and b/docs/en/Community-Articles/2020-05-29-Real-Time-Messaging-In-A-Distributed-Architecture-Using-Abp-Framework-SingalR-RabbitMQ/login2.png differ diff --git a/docs/en/Community-Articles/2020-05-29-Real-Time-Messaging-In-A-Distributed-Architecture-Using-Abp-Framework-SingalR-RabbitMQ/new-user.png b/docs/en/Community-Articles/2020-05-29-Real-Time-Messaging-In-A-Distributed-Architecture-Using-Abp-Framework-SingalR-RabbitMQ/new-user.png index 2ffdf99d45..35c097f365 100644 Binary files a/docs/en/Community-Articles/2020-05-29-Real-Time-Messaging-In-A-Distributed-Architecture-Using-Abp-Framework-SingalR-RabbitMQ/new-user.png and b/docs/en/Community-Articles/2020-05-29-Real-Time-Messaging-In-A-Distributed-Architecture-Using-Abp-Framework-SingalR-RabbitMQ/new-user.png differ diff --git a/docs/en/Community-Articles/2020-07-21-File-Upload-Download-With-BLOB-Storage-System-in-ASPNET-Core-ABP-Framework/application-contracts-project.png b/docs/en/Community-Articles/2020-07-21-File-Upload-Download-With-BLOB-Storage-System-in-ASPNET-Core-ABP-Framework/application-contracts-project.png index 924adab6f6..446e04481f 100644 Binary files a/docs/en/Community-Articles/2020-07-21-File-Upload-Download-With-BLOB-Storage-System-in-ASPNET-Core-ABP-Framework/application-contracts-project.png and b/docs/en/Community-Articles/2020-07-21-File-Upload-Download-With-BLOB-Storage-System-in-ASPNET-Core-ABP-Framework/application-contracts-project.png differ diff --git a/docs/en/Community-Articles/2020-07-21-File-Upload-Download-With-BLOB-Storage-System-in-ASPNET-Core-ABP-Framework/initial-project.png b/docs/en/Community-Articles/2020-07-21-File-Upload-Download-With-BLOB-Storage-System-in-ASPNET-Core-ABP-Framework/initial-project.png index 0e611deebe..ad4c8587b0 100644 Binary files a/docs/en/Community-Articles/2020-07-21-File-Upload-Download-With-BLOB-Storage-System-in-ASPNET-Core-ABP-Framework/initial-project.png and b/docs/en/Community-Articles/2020-07-21-File-Upload-Download-With-BLOB-Storage-System-in-ASPNET-Core-ABP-Framework/initial-project.png differ diff --git a/docs/en/Community-Articles/2020-07-21-File-Upload-Download-With-BLOB-Storage-System-in-ASPNET-Core-ABP-Framework/web-project.png b/docs/en/Community-Articles/2020-07-21-File-Upload-Download-With-BLOB-Storage-System-in-ASPNET-Core-ABP-Framework/web-project.png index f22d2dbdcb..5594810dfa 100644 Binary files a/docs/en/Community-Articles/2020-07-21-File-Upload-Download-With-BLOB-Storage-System-in-ASPNET-Core-ABP-Framework/web-project.png and b/docs/en/Community-Articles/2020-07-21-File-Upload-Download-With-BLOB-Storage-System-in-ASPNET-Core-ABP-Framework/web-project.png differ diff --git a/docs/en/Community-Articles/2020-08-12-Patch-Chrome-Login-Issue-For-IdentityServer4/Block-Third-Party-Cookies.png b/docs/en/Community-Articles/2020-08-12-Patch-Chrome-Login-Issue-For-IdentityServer4/Block-Third-Party-Cookies.png index fe166211df..5163ed6c0f 100644 Binary files a/docs/en/Community-Articles/2020-08-12-Patch-Chrome-Login-Issue-For-IdentityServer4/Block-Third-Party-Cookies.png and b/docs/en/Community-Articles/2020-08-12-Patch-Chrome-Login-Issue-For-IdentityServer4/Block-Third-Party-Cookies.png differ diff --git a/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/both-example-result.png b/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/both-example-result.png index 453d02f176..528a4aa991 100644 Binary files a/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/both-example-result.png and b/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/both-example-result.png differ diff --git a/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/data-grid-app-contract.png b/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/data-grid-app-contract.png index 7224c7e337..eb93d0d9f2 100644 Binary files a/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/data-grid-app-contract.png and b/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/data-grid-app-contract.png differ diff --git a/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/data-grid-application.png b/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/data-grid-application.png index c2c4fe36ba..0c841852fa 100644 Binary files a/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/data-grid-application.png and b/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/data-grid-application.png differ diff --git a/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/data-grid-final.png b/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/data-grid-final.png index 6ba94c2394..22cc25438e 100644 Binary files a/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/data-grid-final.png and b/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/data-grid-final.png differ diff --git a/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/data-grid-web.png b/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/data-grid-web.png index ca874ee1a4..7fe5a1e7a5 100644 Binary files a/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/data-grid-web.png and b/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/data-grid-web.png differ diff --git a/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/devextreme-js.png b/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/devextreme-js.png index 9252e74dbc..f20cec716e 100644 Binary files a/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/devextreme-js.png and b/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/devextreme-js.png differ diff --git a/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/gulp.png b/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/gulp.png index 4c84e5410d..f72166732a 100644 Binary files a/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/gulp.png and b/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/gulp.png differ diff --git a/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/initial-project.png b/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/initial-project.png index fa2516d23d..4990d9df96 100644 Binary files a/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/initial-project.png and b/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/initial-project.png differ diff --git a/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/tree-list-app-contract.png b/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/tree-list-app-contract.png index 6a67401b90..016e38b873 100644 Binary files a/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/tree-list-app-contract.png and b/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/tree-list-app-contract.png differ diff --git a/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/tree-list-application.png b/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/tree-list-application.png index 407008c187..8396243546 100644 Binary files a/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/tree-list-application.png and b/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/tree-list-application.png differ diff --git a/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/tree-list-final.png b/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/tree-list-final.png index e75c9e4edb..0dcc3d891c 100644 Binary files a/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/tree-list-final.png and b/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/tree-list-final.png differ diff --git a/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/tree-list-web.png b/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/tree-list-web.png index e6702748bf..22d6dba8a7 100644 Binary files a/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/tree-list-web.png and b/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/tree-list-web.png differ diff --git a/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/wwwroot-lib.png b/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/wwwroot-lib.png index 26f9a6be72..1d29a0093c 100644 Binary files a/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/wwwroot-lib.png and b/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/wwwroot-lib.png differ diff --git a/docs/en/Community-Articles/2020-08-31-Adding-User-Navigation-In-Suite/add-simple-property.jpg b/docs/en/Community-Articles/2020-08-31-Adding-User-Navigation-In-Suite/add-simple-property.jpg index 346335d2f4..4d86936b11 100644 Binary files a/docs/en/Community-Articles/2020-08-31-Adding-User-Navigation-In-Suite/add-simple-property.jpg and b/docs/en/Community-Articles/2020-08-31-Adding-User-Navigation-In-Suite/add-simple-property.jpg differ diff --git a/docs/en/Community-Articles/2020-08-31-Adding-User-Navigation-In-Suite/add-user-navigation.jpg b/docs/en/Community-Articles/2020-08-31-Adding-User-Navigation-In-Suite/add-user-navigation.jpg index a954176f7b..5ba338cc98 100644 Binary files a/docs/en/Community-Articles/2020-08-31-Adding-User-Navigation-In-Suite/add-user-navigation.jpg and b/docs/en/Community-Articles/2020-08-31-Adding-User-Navigation-In-Suite/add-user-navigation.jpg differ diff --git a/docs/en/Community-Articles/2020-08-31-Adding-User-Navigation-In-Suite/create-appuserdto.jpg b/docs/en/Community-Articles/2020-08-31-Adding-User-Navigation-In-Suite/create-appuserdto.jpg index 4482f6dac9..e7bb5d27ab 100644 Binary files a/docs/en/Community-Articles/2020-08-31-Adding-User-Navigation-In-Suite/create-appuserdto.jpg and b/docs/en/Community-Articles/2020-08-31-Adding-User-Navigation-In-Suite/create-appuserdto.jpg differ diff --git a/docs/en/Community-Articles/2020-08-31-Adding-User-Navigation-In-Suite/create-mapping.jpg b/docs/en/Community-Articles/2020-08-31-Adding-User-Navigation-In-Suite/create-mapping.jpg index 7abe337082..f865e7b16d 100644 Binary files a/docs/en/Community-Articles/2020-08-31-Adding-User-Navigation-In-Suite/create-mapping.jpg and b/docs/en/Community-Articles/2020-08-31-Adding-User-Navigation-In-Suite/create-mapping.jpg differ diff --git a/docs/en/Community-Articles/2020-08-31-Adding-User-Navigation-In-Suite/create-note-entity.jpg b/docs/en/Community-Articles/2020-08-31-Adding-User-Navigation-In-Suite/create-note-entity.jpg index e3d452e65c..e44e692180 100644 Binary files a/docs/en/Community-Articles/2020-08-31-Adding-User-Navigation-In-Suite/create-note-entity.jpg and b/docs/en/Community-Articles/2020-08-31-Adding-User-Navigation-In-Suite/create-note-entity.jpg differ diff --git a/docs/en/Community-Articles/2020-08-31-Adding-User-Navigation-In-Suite/final-page.jpg b/docs/en/Community-Articles/2020-08-31-Adding-User-Navigation-In-Suite/final-page.jpg index 8eb3110281..3282c0148b 100644 Binary files a/docs/en/Community-Articles/2020-08-31-Adding-User-Navigation-In-Suite/final-page.jpg and b/docs/en/Community-Articles/2020-08-31-Adding-User-Navigation-In-Suite/final-page.jpg differ diff --git a/docs/en/Community-Articles/2020-08-31-Adding-User-Navigation-In-Suite/ui-pick-type-modal.jpg b/docs/en/Community-Articles/2020-08-31-Adding-User-Navigation-In-Suite/ui-pick-type-modal.jpg index dcff62e742..f616177a2b 100644 Binary files a/docs/en/Community-Articles/2020-08-31-Adding-User-Navigation-In-Suite/ui-pick-type-modal.jpg and b/docs/en/Community-Articles/2020-08-31-Adding-User-Navigation-In-Suite/ui-pick-type-modal.jpg differ diff --git a/docs/en/Community-Articles/2020-08-31-Adding-User-Navigation-In-Suite/ui-pick-type-modal2.jpg b/docs/en/Community-Articles/2020-08-31-Adding-User-Navigation-In-Suite/ui-pick-type-modal2.jpg index d04aec570b..fe0b90b658 100644 Binary files a/docs/en/Community-Articles/2020-08-31-Adding-User-Navigation-In-Suite/ui-pick-type-modal2.jpg and b/docs/en/Community-Articles/2020-08-31-Adding-User-Navigation-In-Suite/ui-pick-type-modal2.jpg differ diff --git a/docs/en/Community-Articles/2020-09-09-Replacing-Email-Template-and-Sending-Emails/db-migrator-1.jpg b/docs/en/Community-Articles/2020-09-09-Replacing-Email-Template-and-Sending-Emails/db-migrator-1.jpg index 8a0c4c345b..733457d028 100644 Binary files a/docs/en/Community-Articles/2020-09-09-Replacing-Email-Template-and-Sending-Emails/db-migrator-1.jpg and b/docs/en/Community-Articles/2020-09-09-Replacing-Email-Template-and-Sending-Emails/db-migrator-1.jpg differ diff --git a/docs/en/Community-Articles/2020-09-09-Replacing-Email-Template-and-Sending-Emails/db-migrator-2.jpg b/docs/en/Community-Articles/2020-09-09-Replacing-Email-Template-and-Sending-Emails/db-migrator-2.jpg index 4adc9614c3..db1277d561 100644 Binary files a/docs/en/Community-Articles/2020-09-09-Replacing-Email-Template-and-Sending-Emails/db-migrator-2.jpg and b/docs/en/Community-Articles/2020-09-09-Replacing-Email-Template-and-Sending-Emails/db-migrator-2.jpg differ diff --git a/docs/en/Community-Articles/2020-09-09-Replacing-Email-Template-and-Sending-Emails/db-migrator-3.jpg b/docs/en/Community-Articles/2020-09-09-Replacing-Email-Template-and-Sending-Emails/db-migrator-3.jpg index 16b365b8a5..2d8bd4c484 100644 Binary files a/docs/en/Community-Articles/2020-09-09-Replacing-Email-Template-and-Sending-Emails/db-migrator-3.jpg and b/docs/en/Community-Articles/2020-09-09-Replacing-Email-Template-and-Sending-Emails/db-migrator-3.jpg differ diff --git a/docs/en/Community-Articles/2020-09-09-Replacing-Email-Template-and-Sending-Emails/email-last.jpg b/docs/en/Community-Articles/2020-09-09-Replacing-Email-Template-and-Sending-Emails/email-last.jpg index 898d75568f..fce8797b0c 100644 Binary files a/docs/en/Community-Articles/2020-09-09-Replacing-Email-Template-and-Sending-Emails/email-last.jpg and b/docs/en/Community-Articles/2020-09-09-Replacing-Email-Template-and-Sending-Emails/email-last.jpg differ diff --git a/docs/en/Community-Articles/2020-09-09-Replacing-Email-Template-and-Sending-Emails/embedded-resource-2.jpg b/docs/en/Community-Articles/2020-09-09-Replacing-Email-Template-and-Sending-Emails/embedded-resource-2.jpg index 1abdba48cb..3bd8afcdc2 100644 Binary files a/docs/en/Community-Articles/2020-09-09-Replacing-Email-Template-and-Sending-Emails/embedded-resource-2.jpg and b/docs/en/Community-Articles/2020-09-09-Replacing-Email-Template-and-Sending-Emails/embedded-resource-2.jpg differ diff --git a/docs/en/Community-Articles/2020-09-09-Replacing-Email-Template-and-Sending-Emails/embedded-resource.jpg b/docs/en/Community-Articles/2020-09-09-Replacing-Email-Template-and-Sending-Emails/embedded-resource.jpg index b03739e6c0..4fe868d572 100644 Binary files a/docs/en/Community-Articles/2020-09-09-Replacing-Email-Template-and-Sending-Emails/embedded-resource.jpg and b/docs/en/Community-Articles/2020-09-09-Replacing-Email-Template-and-Sending-Emails/embedded-resource.jpg differ diff --git a/docs/en/Community-Articles/2020-09-09-Replacing-Email-Template-and-Sending-Emails/inline-content.png b/docs/en/Community-Articles/2020-09-09-Replacing-Email-Template-and-Sending-Emails/inline-content.png index cbbf188f37..5119b102e8 100644 Binary files a/docs/en/Community-Articles/2020-09-09-Replacing-Email-Template-and-Sending-Emails/inline-content.png and b/docs/en/Community-Articles/2020-09-09-Replacing-Email-Template-and-Sending-Emails/inline-content.png differ diff --git a/docs/en/Community-Articles/2020-09-09-Replacing-Email-Template-and-Sending-Emails/message.jpg b/docs/en/Community-Articles/2020-09-09-Replacing-Email-Template-and-Sending-Emails/message.jpg index fe80c2ac0c..2c4704a1c7 100644 Binary files a/docs/en/Community-Articles/2020-09-09-Replacing-Email-Template-and-Sending-Emails/message.jpg and b/docs/en/Community-Articles/2020-09-09-Replacing-Email-Template-and-Sending-Emails/message.jpg differ diff --git a/docs/en/Community-Articles/2020-09-09-Replacing-Email-Template-and-Sending-Emails/settings.jpg b/docs/en/Community-Articles/2020-09-09-Replacing-Email-Template-and-Sending-Emails/settings.jpg index e60fdcc2db..167996735f 100644 Binary files a/docs/en/Community-Articles/2020-09-09-Replacing-Email-Template-and-Sending-Emails/settings.jpg and b/docs/en/Community-Articles/2020-09-09-Replacing-Email-Template-and-Sending-Emails/settings.jpg differ diff --git a/docs/en/Community-Articles/2020-09-09-Replacing-Email-Template-and-Sending-Emails/template-definitions.png b/docs/en/Community-Articles/2020-09-09-Replacing-Email-Template-and-Sending-Emails/template-definitions.png index aaf46b353e..00339c4c1a 100644 Binary files a/docs/en/Community-Articles/2020-09-09-Replacing-Email-Template-and-Sending-Emails/template-definitions.png and b/docs/en/Community-Articles/2020-09-09-Replacing-Email-Template-and-Sending-Emails/template-definitions.png differ diff --git a/docs/en/Community-Articles/2020-09-16-How-to-Setup-Azure-Active-Directory-and-Integrate-Abp-Angular-Application/azure-app-authentication.jpg b/docs/en/Community-Articles/2020-09-16-How-to-Setup-Azure-Active-Directory-and-Integrate-Abp-Angular-Application/azure-app-authentication.jpg index 5061118aa3..fdae1677eb 100644 Binary files a/docs/en/Community-Articles/2020-09-16-How-to-Setup-Azure-Active-Directory-and-Integrate-Abp-Angular-Application/azure-app-authentication.jpg and b/docs/en/Community-Articles/2020-09-16-How-to-Setup-Azure-Active-Directory-and-Integrate-Abp-Angular-Application/azure-app-authentication.jpg differ diff --git a/docs/en/Community-Articles/2020-09-16-How-to-Setup-Azure-Active-Directory-and-Integrate-Abp-Angular-Application/azure-app-overview.jpg b/docs/en/Community-Articles/2020-09-16-How-to-Setup-Azure-Active-Directory-and-Integrate-Abp-Angular-Application/azure-app-overview.jpg index 11053062e2..714129693d 100644 Binary files a/docs/en/Community-Articles/2020-09-16-How-to-Setup-Azure-Active-Directory-and-Integrate-Abp-Angular-Application/azure-app-overview.jpg and b/docs/en/Community-Articles/2020-09-16-How-to-Setup-Azure-Active-Directory-and-Integrate-Abp-Angular-Application/azure-app-overview.jpg differ diff --git a/docs/en/Community-Articles/2020-09-16-How-to-Setup-Azure-Active-Directory-and-Integrate-Abp-Angular-Application/azure-app-registration.jpg b/docs/en/Community-Articles/2020-09-16-How-to-Setup-Azure-Active-Directory-and-Integrate-Abp-Angular-Application/azure-app-registration.jpg index 12f4eb36e2..1b4685e261 100644 Binary files a/docs/en/Community-Articles/2020-09-16-How-to-Setup-Azure-Active-Directory-and-Integrate-Abp-Angular-Application/azure-app-registration.jpg and b/docs/en/Community-Articles/2020-09-16-How-to-Setup-Azure-Active-Directory-and-Integrate-Abp-Angular-Application/azure-app-registration.jpg differ diff --git a/docs/en/Community-Articles/2020-09-16-How-to-Setup-Azure-Active-Directory-and-Integrate-Abp-Angular-Application/azure-app-secret.jpg b/docs/en/Community-Articles/2020-09-16-How-to-Setup-Azure-Active-Directory-and-Integrate-Abp-Angular-Application/azure-app-secret.jpg index 9cf2009eda..451879453c 100644 Binary files a/docs/en/Community-Articles/2020-09-16-How-to-Setup-Azure-Active-Directory-and-Integrate-Abp-Angular-Application/azure-app-secret.jpg and b/docs/en/Community-Articles/2020-09-16-How-to-Setup-Azure-Active-Directory-and-Integrate-Abp-Angular-Application/azure-app-secret.jpg differ diff --git a/docs/en/Community-Articles/2020-09-28-Using-DevExtremeAngularComponents-With-The-ABP-Framework/dev-extreme-page.png b/docs/en/Community-Articles/2020-09-28-Using-DevExtremeAngularComponents-With-The-ABP-Framework/dev-extreme-page.png index bd1b54eb3e..973a079e21 100644 Binary files a/docs/en/Community-Articles/2020-09-28-Using-DevExtremeAngularComponents-With-The-ABP-Framework/dev-extreme-page.png and b/docs/en/Community-Articles/2020-09-28-Using-DevExtremeAngularComponents-With-The-ABP-Framework/dev-extreme-page.png differ diff --git a/docs/en/Community-Articles/2020-09-28-Using-DevExtremeAngularComponents-With-The-ABP-Framework/devextreme-first.png b/docs/en/Community-Articles/2020-09-28-Using-DevExtremeAngularComponents-With-The-ABP-Framework/devextreme-first.png index 1019f8421d..4206aaf3a6 100644 Binary files a/docs/en/Community-Articles/2020-09-28-Using-DevExtremeAngularComponents-With-The-ABP-Framework/devextreme-first.png and b/docs/en/Community-Articles/2020-09-28-Using-DevExtremeAngularComponents-With-The-ABP-Framework/devextreme-first.png differ diff --git a/docs/en/Community-Articles/2020-09-28-Using-DevExtremeAngularComponents-With-The-ABP-Framework/devextreme-second.png b/docs/en/Community-Articles/2020-09-28-Using-DevExtremeAngularComponents-With-The-ABP-Framework/devextreme-second.png index 24d147d57c..9d64653425 100644 Binary files a/docs/en/Community-Articles/2020-09-28-Using-DevExtremeAngularComponents-With-The-ABP-Framework/devextreme-second.png and b/docs/en/Community-Articles/2020-09-28-Using-DevExtremeAngularComponents-With-The-ABP-Framework/devextreme-second.png differ diff --git a/docs/en/Community-Articles/2020-09-28-Using-DevExtremeAngularComponents-With-The-ABP-Framework/localhost-running.png b/docs/en/Community-Articles/2020-09-28-Using-DevExtremeAngularComponents-With-The-ABP-Framework/localhost-running.png index f1c9d0707e..b1d81e1245 100644 Binary files a/docs/en/Community-Articles/2020-09-28-Using-DevExtremeAngularComponents-With-The-ABP-Framework/localhost-running.png and b/docs/en/Community-Articles/2020-09-28-Using-DevExtremeAngularComponents-With-The-ABP-Framework/localhost-running.png differ diff --git a/docs/en/Community-Articles/2020-09-28-Using-DevExtremeAngularComponents-With-The-ABP-Framework/login-screen.png b/docs/en/Community-Articles/2020-09-28-Using-DevExtremeAngularComponents-With-The-ABP-Framework/login-screen.png index 76aeec2599..74b9aab678 100644 Binary files a/docs/en/Community-Articles/2020-09-28-Using-DevExtremeAngularComponents-With-The-ABP-Framework/login-screen.png and b/docs/en/Community-Articles/2020-09-28-Using-DevExtremeAngularComponents-With-The-ABP-Framework/login-screen.png differ diff --git a/docs/en/Community-Articles/2020-09-28-Using-DevExtremeAngularComponents-With-The-ABP-Framework/project-setup.png b/docs/en/Community-Articles/2020-09-28-Using-DevExtremeAngularComponents-With-The-ABP-Framework/project-setup.png index b613d45378..734780c4b6 100644 Binary files a/docs/en/Community-Articles/2020-09-28-Using-DevExtremeAngularComponents-With-The-ABP-Framework/project-setup.png and b/docs/en/Community-Articles/2020-09-28-Using-DevExtremeAngularComponents-With-The-ABP-Framework/project-setup.png differ diff --git a/docs/en/Community-Articles/2020-09-28-Using-DevExtremeAngularComponents-With-The-ABP-Framework/users-on-dev-extreme.png b/docs/en/Community-Articles/2020-09-28-Using-DevExtremeAngularComponents-With-The-ABP-Framework/users-on-dev-extreme.png index 4ff9289a68..46aae0099b 100644 Binary files a/docs/en/Community-Articles/2020-09-28-Using-DevExtremeAngularComponents-With-The-ABP-Framework/users-on-dev-extreme.png and b/docs/en/Community-Articles/2020-09-28-Using-DevExtremeAngularComponents-With-The-ABP-Framework/users-on-dev-extreme.png differ diff --git a/docs/en/Community-Articles/2020-09-28-Using-DevExtremeAngularComponents-With-The-ABP-Framework/users.png b/docs/en/Community-Articles/2020-09-28-Using-DevExtremeAngularComponents-With-The-ABP-Framework/users.png index 87d86a0300..f4bf506a65 100644 Binary files a/docs/en/Community-Articles/2020-09-28-Using-DevExtremeAngularComponents-With-The-ABP-Framework/users.png and b/docs/en/Community-Articles/2020-09-28-Using-DevExtremeAngularComponents-With-The-ABP-Framework/users.png differ diff --git a/docs/en/Community-Articles/2020-10-08-How-To-Add-Custom-Property-To-The-User-Entity/added-new-migration.png b/docs/en/Community-Articles/2020-10-08-How-To-Add-Custom-Property-To-The-User-Entity/added-new-migration.png old mode 100755 new mode 100644 index d459fdeed2..ae9086c59d Binary files a/docs/en/Community-Articles/2020-10-08-How-To-Add-Custom-Property-To-The-User-Entity/added-new-migration.png and b/docs/en/Community-Articles/2020-10-08-How-To-Add-Custom-Property-To-The-User-Entity/added-new-migration.png differ diff --git a/docs/en/Community-Articles/2020-10-08-How-To-Add-Custom-Property-To-The-User-Entity/custom-identity-user-list.png b/docs/en/Community-Articles/2020-10-08-How-To-Add-Custom-Property-To-The-User-Entity/custom-identity-user-list.png index 896ed947aa..5b4ce65f68 100644 Binary files a/docs/en/Community-Articles/2020-10-08-How-To-Add-Custom-Property-To-The-User-Entity/custom-identity-user-list.png and b/docs/en/Community-Articles/2020-10-08-How-To-Add-Custom-Property-To-The-User-Entity/custom-identity-user-list.png differ diff --git a/docs/en/Community-Articles/2020-10-08-How-To-Add-Custom-Property-To-The-User-Entity/initial-project.png b/docs/en/Community-Articles/2020-10-08-How-To-Add-Custom-Property-To-The-User-Entity/initial-project.png old mode 100755 new mode 100644 index b64e93a99f..7f6c5e5f53 Binary files a/docs/en/Community-Articles/2020-10-08-How-To-Add-Custom-Property-To-The-User-Entity/initial-project.png and b/docs/en/Community-Articles/2020-10-08-How-To-Add-Custom-Property-To-The-User-Entity/initial-project.png differ diff --git a/docs/en/Community-Articles/2020-10-08-How-To-Add-Custom-Property-To-The-User-Entity/new-user.png b/docs/en/Community-Articles/2020-10-08-How-To-Add-Custom-Property-To-The-User-Entity/new-user.png index d3a5c66198..f7899be026 100644 Binary files a/docs/en/Community-Articles/2020-10-08-How-To-Add-Custom-Property-To-The-User-Entity/new-user.png and b/docs/en/Community-Articles/2020-10-08-How-To-Add-Custom-Property-To-The-User-Entity/new-user.png differ diff --git a/docs/en/Community-Articles/2020-10-08-How-To-Add-Custom-Property-To-The-User-Entity/nuget-package-manager.png b/docs/en/Community-Articles/2020-10-08-How-To-Add-Custom-Property-To-The-User-Entity/nuget-package-manager.png old mode 100755 new mode 100644 index 680bc9d2e7..929295db4d Binary files a/docs/en/Community-Articles/2020-10-08-How-To-Add-Custom-Property-To-The-User-Entity/nuget-package-manager.png and b/docs/en/Community-Articles/2020-10-08-How-To-Add-Custom-Property-To-The-User-Entity/nuget-package-manager.png differ diff --git a/docs/en/Community-Articles/2020-10-08-How-To-Add-Custom-Property-To-The-User-Entity/user-table.png b/docs/en/Community-Articles/2020-10-08-How-To-Add-Custom-Property-To-The-User-Entity/user-table.png old mode 100755 new mode 100644 index 5bb71b8325..5990a64111 Binary files a/docs/en/Community-Articles/2020-10-08-How-To-Add-Custom-Property-To-The-User-Entity/user-table.png and b/docs/en/Community-Articles/2020-10-08-How-To-Add-Custom-Property-To-The-User-Entity/user-table.png differ diff --git a/docs/en/Community-Articles/2020-11-02-How-To-Add-New-Language/add-to-languages.png b/docs/en/Community-Articles/2020-11-02-How-To-Add-New-Language/add-to-languages.png index 1dda317685..e61c94e78f 100644 Binary files a/docs/en/Community-Articles/2020-11-02-How-To-Add-New-Language/add-to-languages.png and b/docs/en/Community-Articles/2020-11-02-How-To-Add-New-Language/add-to-languages.png differ diff --git a/docs/en/Community-Articles/2020-11-02-How-To-Add-New-Language/database-table.png b/docs/en/Community-Articles/2020-11-02-How-To-Add-New-Language/database-table.png index 2d512fabeb..0611d8ac53 100644 Binary files a/docs/en/Community-Articles/2020-11-02-How-To-Add-New-Language/database-table.png and b/docs/en/Community-Articles/2020-11-02-How-To-Add-New-Language/database-table.png differ diff --git a/docs/en/Community-Articles/2020-11-02-How-To-Add-New-Language/language-target.png b/docs/en/Community-Articles/2020-11-02-How-To-Add-New-Language/language-target.png index 7b5f104003..2812c21bba 100644 Binary files a/docs/en/Community-Articles/2020-11-02-How-To-Add-New-Language/language-target.png and b/docs/en/Community-Articles/2020-11-02-How-To-Add-New-Language/language-target.png differ diff --git a/docs/en/Community-Articles/2020-11-02-How-To-Add-New-Language/website-new-language.png b/docs/en/Community-Articles/2020-11-02-How-To-Add-New-Language/website-new-language.png index 1e04841983..559642fb2c 100644 Binary files a/docs/en/Community-Articles/2020-11-02-How-To-Add-New-Language/website-new-language.png and b/docs/en/Community-Articles/2020-11-02-How-To-Add-New-Language/website-new-language.png differ diff --git a/docs/en/Community-Articles/2020-12-04-Event-Organizer/images/event-create-ui.png b/docs/en/Community-Articles/2020-12-04-Event-Organizer/images/event-create-ui.png index c4b0c68a31..4dd055d256 100644 Binary files a/docs/en/Community-Articles/2020-12-04-Event-Organizer/images/event-create-ui.png and b/docs/en/Community-Articles/2020-12-04-Event-Organizer/images/event-create-ui.png differ diff --git a/docs/en/Community-Articles/2020-12-04-Event-Organizer/images/index-title.png b/docs/en/Community-Articles/2020-12-04-Event-Organizer/images/index-title.png index c06b8f5d80..d923a0b7a7 100644 Binary files a/docs/en/Community-Articles/2020-12-04-Event-Organizer/images/index-title.png and b/docs/en/Community-Articles/2020-12-04-Event-Organizer/images/index-title.png differ diff --git a/docs/en/Community-Articles/2020-12-04-Event-Organizer/images/swagger-event-all.png b/docs/en/Community-Articles/2020-12-04-Event-Organizer/images/swagger-event-all.png index 3b0fb24a7d..2f9a07a24f 100644 Binary files a/docs/en/Community-Articles/2020-12-04-Event-Organizer/images/swagger-event-all.png and b/docs/en/Community-Articles/2020-12-04-Event-Organizer/images/swagger-event-all.png differ diff --git a/docs/en/Community-Articles/2020-12-04-Event-Organizer/images/swagger-event-create.png b/docs/en/Community-Articles/2020-12-04-Event-Organizer/images/swagger-event-create.png index 5c7e1d0204..62e4569a57 100644 Binary files a/docs/en/Community-Articles/2020-12-04-Event-Organizer/images/swagger-event-create.png and b/docs/en/Community-Articles/2020-12-04-Event-Organizer/images/swagger-event-create.png differ diff --git a/docs/en/Community-Articles/2020-12-04-Event-Organizer/images/swagger-event-upcoming.png b/docs/en/Community-Articles/2020-12-04-Event-Organizer/images/swagger-event-upcoming.png index 48d0244797..49270afba4 100644 Binary files a/docs/en/Community-Articles/2020-12-04-Event-Organizer/images/swagger-event-upcoming.png and b/docs/en/Community-Articles/2020-12-04-Event-Organizer/images/swagger-event-upcoming.png differ diff --git a/docs/en/Community-Articles/2020-12-10-How-to-Integrate-the-DevExpress-Blazor-Component/both-example-result.png b/docs/en/Community-Articles/2020-12-10-How-to-Integrate-the-DevExpress-Blazor-Component/both-example-result.png index cc437ed6e7..589d5f223a 100644 Binary files a/docs/en/Community-Articles/2020-12-10-How-to-Integrate-the-DevExpress-Blazor-Component/both-example-result.png and b/docs/en/Community-Articles/2020-12-10-How-to-Integrate-the-DevExpress-Blazor-Component/both-example-result.png differ diff --git a/docs/en/Community-Articles/2020-12-10-How-to-Integrate-the-DevExpress-Blazor-Component/cover-image.png b/docs/en/Community-Articles/2020-12-10-How-to-Integrate-the-DevExpress-Blazor-Component/cover-image.png index 2dc0aed011..91bd4f5a95 100644 Binary files a/docs/en/Community-Articles/2020-12-10-How-to-Integrate-the-DevExpress-Blazor-Component/cover-image.png and b/docs/en/Community-Articles/2020-12-10-How-to-Integrate-the-DevExpress-Blazor-Component/cover-image.png differ diff --git a/docs/en/Community-Articles/2020-12-10-How-to-Integrate-the-DevExpress-Blazor-Component/data-grid-app-contract.png b/docs/en/Community-Articles/2020-12-10-How-to-Integrate-the-DevExpress-Blazor-Component/data-grid-app-contract.png index 536251b7b9..79b694691a 100644 Binary files a/docs/en/Community-Articles/2020-12-10-How-to-Integrate-the-DevExpress-Blazor-Component/data-grid-app-contract.png and b/docs/en/Community-Articles/2020-12-10-How-to-Integrate-the-DevExpress-Blazor-Component/data-grid-app-contract.png differ diff --git a/docs/en/Community-Articles/2020-12-10-How-to-Integrate-the-DevExpress-Blazor-Component/data-grid-application.png b/docs/en/Community-Articles/2020-12-10-How-to-Integrate-the-DevExpress-Blazor-Component/data-grid-application.png index a169b9f9f7..e382f7fd2d 100644 Binary files a/docs/en/Community-Articles/2020-12-10-How-to-Integrate-the-DevExpress-Blazor-Component/data-grid-application.png and b/docs/en/Community-Articles/2020-12-10-How-to-Integrate-the-DevExpress-Blazor-Component/data-grid-application.png differ diff --git a/docs/en/Community-Articles/2020-12-10-How-to-Integrate-the-DevExpress-Blazor-Component/data-grid-blazor.png b/docs/en/Community-Articles/2020-12-10-How-to-Integrate-the-DevExpress-Blazor-Component/data-grid-blazor.png index af1857a4e0..b093ebdd3f 100644 Binary files a/docs/en/Community-Articles/2020-12-10-How-to-Integrate-the-DevExpress-Blazor-Component/data-grid-blazor.png and b/docs/en/Community-Articles/2020-12-10-How-to-Integrate-the-DevExpress-Blazor-Component/data-grid-blazor.png differ diff --git a/docs/en/Community-Articles/2020-12-10-How-to-Integrate-the-DevExpress-Blazor-Component/initial-project.png b/docs/en/Community-Articles/2020-12-10-How-to-Integrate-the-DevExpress-Blazor-Component/initial-project.png index c2a2af265e..510c536606 100644 Binary files a/docs/en/Community-Articles/2020-12-10-How-to-Integrate-the-DevExpress-Blazor-Component/initial-project.png and b/docs/en/Community-Articles/2020-12-10-How-to-Integrate-the-DevExpress-Blazor-Component/initial-project.png differ diff --git a/docs/en/Community-Articles/2020-12-10-How-to-Integrate-the-Telerik-Blazor-Component/automated-nuget-feed-setup.png b/docs/en/Community-Articles/2020-12-10-How-to-Integrate-the-Telerik-Blazor-Component/automated-nuget-feed-setup.png index 236135b30f..39565de402 100644 Binary files a/docs/en/Community-Articles/2020-12-10-How-to-Integrate-the-Telerik-Blazor-Component/automated-nuget-feed-setup.png and b/docs/en/Community-Articles/2020-12-10-How-to-Integrate-the-Telerik-Blazor-Component/automated-nuget-feed-setup.png differ diff --git a/docs/en/Community-Articles/2020-12-10-How-to-Integrate-the-Telerik-Blazor-Component/final-result.jpg b/docs/en/Community-Articles/2020-12-10-How-to-Integrate-the-Telerik-Blazor-Component/final-result.jpg index 244711a962..13d2a53423 100644 Binary files a/docs/en/Community-Articles/2020-12-10-How-to-Integrate-the-Telerik-Blazor-Component/final-result.jpg and b/docs/en/Community-Articles/2020-12-10-How-to-Integrate-the-Telerik-Blazor-Component/final-result.jpg differ diff --git a/docs/en/Community-Articles/2020-12-10-How-to-Integrate-the-Telerik-Blazor-Component/sample-application.jpg b/docs/en/Community-Articles/2020-12-10-How-to-Integrate-the-Telerik-Blazor-Component/sample-application.jpg index 27e9dbe9fc..8615a1cb2a 100644 Binary files a/docs/en/Community-Articles/2020-12-10-How-to-Integrate-the-Telerik-Blazor-Component/sample-application.jpg and b/docs/en/Community-Articles/2020-12-10-How-to-Integrate-the-Telerik-Blazor-Component/sample-application.jpg differ diff --git a/docs/en/Community-Articles/2020-12-10-How-to-Integrate-the-Telerik-Blazor-Component/telerik-blazor-component-1.jpg b/docs/en/Community-Articles/2020-12-10-How-to-Integrate-the-Telerik-Blazor-Component/telerik-blazor-component-1.jpg index 7a204d97f3..03e671a4bc 100644 Binary files a/docs/en/Community-Articles/2020-12-10-How-to-Integrate-the-Telerik-Blazor-Component/telerik-blazor-component-1.jpg and b/docs/en/Community-Articles/2020-12-10-How-to-Integrate-the-Telerik-Blazor-Component/telerik-blazor-component-1.jpg differ diff --git a/docs/en/Community-Articles/2021-01-20-How-to-Integrate-the-MatBlazor-Blazor-Component/example-result.png b/docs/en/Community-Articles/2021-01-20-How-to-Integrate-the-MatBlazor-Blazor-Component/example-result.png index 89a2fecdce..260bd4e795 100644 Binary files a/docs/en/Community-Articles/2021-01-20-How-to-Integrate-the-MatBlazor-Blazor-Component/example-result.png and b/docs/en/Community-Articles/2021-01-20-How-to-Integrate-the-MatBlazor-Blazor-Component/example-result.png differ diff --git a/docs/en/Community-Articles/2021-01-20-How-to-Integrate-the-MatBlazor-Blazor-Component/initial-project.png b/docs/en/Community-Articles/2021-01-20-How-to-Integrate-the-MatBlazor-Blazor-Component/initial-project.png index 85e71d5692..9d4a28dde5 100644 Binary files a/docs/en/Community-Articles/2021-01-20-How-to-Integrate-the-MatBlazor-Blazor-Component/initial-project.png and b/docs/en/Community-Articles/2021-01-20-How-to-Integrate-the-MatBlazor-Blazor-Component/initial-project.png differ diff --git a/docs/en/Community-Articles/2021-01-20-How-to-Integrate-the-MatBlazor-Blazor-Component/table-app-contract.png b/docs/en/Community-Articles/2021-01-20-How-to-Integrate-the-MatBlazor-Blazor-Component/table-app-contract.png index 8108cdc606..5fdd50a178 100644 Binary files a/docs/en/Community-Articles/2021-01-20-How-to-Integrate-the-MatBlazor-Blazor-Component/table-app-contract.png and b/docs/en/Community-Articles/2021-01-20-How-to-Integrate-the-MatBlazor-Blazor-Component/table-app-contract.png differ diff --git a/docs/en/Community-Articles/2021-01-20-How-to-Integrate-the-MatBlazor-Blazor-Component/table-application.png b/docs/en/Community-Articles/2021-01-20-How-to-Integrate-the-MatBlazor-Blazor-Component/table-application.png index 7f07af97e1..315cf7302e 100644 Binary files a/docs/en/Community-Articles/2021-01-20-How-to-Integrate-the-MatBlazor-Blazor-Component/table-application.png and b/docs/en/Community-Articles/2021-01-20-How-to-Integrate-the-MatBlazor-Blazor-Component/table-application.png differ diff --git a/docs/en/Community-Articles/2021-01-20-How-to-Integrate-the-MatBlazor-Blazor-Component/table-web.png b/docs/en/Community-Articles/2021-01-20-How-to-Integrate-the-MatBlazor-Blazor-Component/table-web.png index 0034aec095..2e481b070e 100644 Binary files a/docs/en/Community-Articles/2021-01-20-How-to-Integrate-the-MatBlazor-Blazor-Component/table-web.png and b/docs/en/Community-Articles/2021-01-20-How-to-Integrate-the-MatBlazor-Blazor-Component/table-web.png differ diff --git a/docs/en/Community-Articles/2021-01-20-How-to-Use-PrimeNG-Components-with-the-ABP-Angular-UI/organization-chart.jpg b/docs/en/Community-Articles/2021-01-20-How-to-Use-PrimeNG-Components-with-the-ABP-Angular-UI/organization-chart.jpg index 9d18f35ba1..9560651726 100644 Binary files a/docs/en/Community-Articles/2021-01-20-How-to-Use-PrimeNG-Components-with-the-ABP-Angular-UI/organization-chart.jpg and b/docs/en/Community-Articles/2021-01-20-How-to-Use-PrimeNG-Components-with-the-ABP-Angular-UI/organization-chart.jpg differ diff --git a/docs/en/Community-Articles/2021-01-20-How-to-Use-PrimeNG-Components-with-the-ABP-Angular-UI/organization-units-menu-item.jpg b/docs/en/Community-Articles/2021-01-20-How-to-Use-PrimeNG-Components-with-the-ABP-Angular-UI/organization-units-menu-item.jpg index dc6111f553..2cea349ebf 100644 Binary files a/docs/en/Community-Articles/2021-01-20-How-to-Use-PrimeNG-Components-with-the-ABP-Angular-UI/organization-units-menu-item.jpg and b/docs/en/Community-Articles/2021-01-20-How-to-Use-PrimeNG-Components-with-the-ABP-Angular-UI/organization-units-menu-item.jpg differ diff --git a/docs/en/Community-Articles/2021-03-12-Simple-SignalR-Notification/add-endpoint.jpg b/docs/en/Community-Articles/2021-03-12-Simple-SignalR-Notification/add-endpoint.jpg index 706a860dd0..b53f582eb3 100644 Binary files a/docs/en/Community-Articles/2021-03-12-Simple-SignalR-Notification/add-endpoint.jpg and b/docs/en/Community-Articles/2021-03-12-Simple-SignalR-Notification/add-endpoint.jpg differ diff --git a/docs/en/Community-Articles/2021-03-12-Simple-SignalR-Notification/add-script-bundles.jpg b/docs/en/Community-Articles/2021-03-12-Simple-SignalR-Notification/add-script-bundles.jpg index 0523d73e37..3741312935 100644 Binary files a/docs/en/Community-Articles/2021-03-12-Simple-SignalR-Notification/add-script-bundles.jpg and b/docs/en/Community-Articles/2021-03-12-Simple-SignalR-Notification/add-script-bundles.jpg differ diff --git a/docs/en/Community-Articles/2021-03-12-Simple-SignalR-Notification/notification-hub.jpg b/docs/en/Community-Articles/2021-03-12-Simple-SignalR-Notification/notification-hub.jpg index e762b2cc8d..aad559b776 100644 Binary files a/docs/en/Community-Articles/2021-03-12-Simple-SignalR-Notification/notification-hub.jpg and b/docs/en/Community-Articles/2021-03-12-Simple-SignalR-Notification/notification-hub.jpg differ diff --git a/docs/en/Community-Articles/2021-03-12-Simple-SignalR-Notification/preconfigureservices.jpg b/docs/en/Community-Articles/2021-03-12-Simple-SignalR-Notification/preconfigureservices.jpg index 4421143aa3..70a4841f48 100644 Binary files a/docs/en/Community-Articles/2021-03-12-Simple-SignalR-Notification/preconfigureservices.jpg and b/docs/en/Community-Articles/2021-03-12-Simple-SignalR-Notification/preconfigureservices.jpg differ diff --git a/docs/en/Community-Articles/2021-03-12-Simple-SignalR-Notification/resource-mappings.jpg b/docs/en/Community-Articles/2021-03-12-Simple-SignalR-Notification/resource-mappings.jpg index 7d6d0a3de8..452dab89fd 100644 Binary files a/docs/en/Community-Articles/2021-03-12-Simple-SignalR-Notification/resource-mappings.jpg and b/docs/en/Community-Articles/2021-03-12-Simple-SignalR-Notification/resource-mappings.jpg differ diff --git a/docs/en/Community-Articles/2021-03-12-Simple-SignalR-Notification/result.jpg b/docs/en/Community-Articles/2021-03-12-Simple-SignalR-Notification/result.jpg index 2da86ce6fa..e50b8ebe62 100644 Binary files a/docs/en/Community-Articles/2021-03-12-Simple-SignalR-Notification/result.jpg and b/docs/en/Community-Articles/2021-03-12-Simple-SignalR-Notification/result.jpg differ diff --git a/docs/en/Community-Articles/2021-03-12-Simple-SignalR-Notification/signalr-architecture.png b/docs/en/Community-Articles/2021-03-12-Simple-SignalR-Notification/signalr-architecture.png index 6f39568239..5b1c7c6c52 100644 Binary files a/docs/en/Community-Articles/2021-03-12-Simple-SignalR-Notification/signalr-architecture.png and b/docs/en/Community-Articles/2021-03-12-Simple-SignalR-Notification/signalr-architecture.png differ diff --git a/docs/en/Community-Articles/2021-03-12-Simple-SignalR-Notification/signalr-folder.jpg b/docs/en/Community-Articles/2021-03-12-Simple-SignalR-Notification/signalr-folder.jpg index 5c1dd351fb..4a4a2ff4a1 100644 Binary files a/docs/en/Community-Articles/2021-03-12-Simple-SignalR-Notification/signalr-folder.jpg and b/docs/en/Community-Articles/2021-03-12-Simple-SignalR-Notification/signalr-folder.jpg differ diff --git a/docs/en/Community-Articles/2021-03-12-Simple-SignalR-Notification/signalr-package.jpg b/docs/en/Community-Articles/2021-03-12-Simple-SignalR-Notification/signalr-package.jpg index be1e87d1b2..aa05fda81c 100644 Binary files a/docs/en/Community-Articles/2021-03-12-Simple-SignalR-Notification/signalr-package.jpg and b/docs/en/Community-Articles/2021-03-12-Simple-SignalR-Notification/signalr-package.jpg differ diff --git a/docs/en/Community-Articles/2021-04-22-How-to-Integrate-the-Syncfusion-Blazor-Component/example-result.png b/docs/en/Community-Articles/2021-04-22-How-to-Integrate-the-Syncfusion-Blazor-Component/example-result.png index e773d100f0..8230495c34 100644 Binary files a/docs/en/Community-Articles/2021-04-22-How-to-Integrate-the-Syncfusion-Blazor-Component/example-result.png and b/docs/en/Community-Articles/2021-04-22-How-to-Integrate-the-Syncfusion-Blazor-Component/example-result.png differ diff --git a/docs/en/Community-Articles/2021-04-22-How-to-Integrate-the-Syncfusion-Blazor-Component/initial-project.png b/docs/en/Community-Articles/2021-04-22-How-to-Integrate-the-Syncfusion-Blazor-Component/initial-project.png index eb28aacfe0..7e5f921911 100644 Binary files a/docs/en/Community-Articles/2021-04-22-How-to-Integrate-the-Syncfusion-Blazor-Component/initial-project.png and b/docs/en/Community-Articles/2021-04-22-How-to-Integrate-the-Syncfusion-Blazor-Component/initial-project.png differ diff --git a/docs/en/Community-Articles/2021-04-22-How-to-Integrate-the-Syncfusion-Blazor-Component/table-app-contract.png b/docs/en/Community-Articles/2021-04-22-How-to-Integrate-the-Syncfusion-Blazor-Component/table-app-contract.png index be0accc721..98cd539cbc 100644 Binary files a/docs/en/Community-Articles/2021-04-22-How-to-Integrate-the-Syncfusion-Blazor-Component/table-app-contract.png and b/docs/en/Community-Articles/2021-04-22-How-to-Integrate-the-Syncfusion-Blazor-Component/table-app-contract.png differ diff --git a/docs/en/Community-Articles/2021-04-22-How-to-Integrate-the-Syncfusion-Blazor-Component/table-application.png b/docs/en/Community-Articles/2021-04-22-How-to-Integrate-the-Syncfusion-Blazor-Component/table-application.png index e2b552479d..e50c929166 100644 Binary files a/docs/en/Community-Articles/2021-04-22-How-to-Integrate-the-Syncfusion-Blazor-Component/table-application.png and b/docs/en/Community-Articles/2021-04-22-How-to-Integrate-the-Syncfusion-Blazor-Component/table-application.png differ diff --git a/docs/en/Community-Articles/2021-04-22-How-to-Integrate-the-Syncfusion-Blazor-Component/table-web.png b/docs/en/Community-Articles/2021-04-22-How-to-Integrate-the-Syncfusion-Blazor-Component/table-web.png index 289ad0805b..475766e1b4 100644 Binary files a/docs/en/Community-Articles/2021-04-22-How-to-Integrate-the-Syncfusion-Blazor-Component/table-web.png and b/docs/en/Community-Articles/2021-04-22-How-to-Integrate-the-Syncfusion-Blazor-Component/table-web.png differ diff --git a/docs/en/Community-Articles/2021-05-24-Removing-EfCore-Migrations/default-solution.png b/docs/en/Community-Articles/2021-05-24-Removing-EfCore-Migrations/default-solution.png index ee67b00dd9..de626c3507 100644 Binary files a/docs/en/Community-Articles/2021-05-24-Removing-EfCore-Migrations/default-solution.png and b/docs/en/Community-Articles/2021-05-24-Removing-EfCore-Migrations/default-solution.png differ diff --git a/docs/en/Community-Articles/2021-05-24-Removing-EfCore-Migrations/new-prop-on-table.png b/docs/en/Community-Articles/2021-05-24-Removing-EfCore-Migrations/new-prop-on-table.png index f10deb8596..5bf40d4e4a 100644 Binary files a/docs/en/Community-Articles/2021-05-24-Removing-EfCore-Migrations/new-prop-on-table.png and b/docs/en/Community-Articles/2021-05-24-Removing-EfCore-Migrations/new-prop-on-table.png differ diff --git a/docs/en/Community-Articles/2021-06-17-Using-Elsa-Workflow-with-ABP-Framework/hello-world-http.jpg b/docs/en/Community-Articles/2021-06-17-Using-Elsa-Workflow-with-ABP-Framework/hello-world-http.jpg index 6254e1348c..12c6e81c67 100644 Binary files a/docs/en/Community-Articles/2021-06-17-Using-Elsa-Workflow-with-ABP-Framework/hello-world-http.jpg and b/docs/en/Community-Articles/2021-06-17-Using-Elsa-Workflow-with-ABP-Framework/hello-world-http.jpg differ diff --git a/docs/en/Community-Articles/2021-06-17-Using-Elsa-Workflow-with-ABP-Framework/hello-world-workflow.jpg b/docs/en/Community-Articles/2021-06-17-Using-Elsa-Workflow-with-ABP-Framework/hello-world-workflow.jpg index 35451c88f1..fa6e30c876 100644 Binary files a/docs/en/Community-Articles/2021-06-17-Using-Elsa-Workflow-with-ABP-Framework/hello-world-workflow.jpg and b/docs/en/Community-Articles/2021-06-17-Using-Elsa-Workflow-with-ABP-Framework/hello-world-workflow.jpg differ diff --git a/docs/en/Community-Articles/2021-09-25-How-to-Override-Localization-Strings-Of-Depending-Modules/1.png b/docs/en/Community-Articles/2021-09-25-How-to-Override-Localization-Strings-Of-Depending-Modules/1.png index adb430b2ce..036165fe30 100644 Binary files a/docs/en/Community-Articles/2021-09-25-How-to-Override-Localization-Strings-Of-Depending-Modules/1.png and b/docs/en/Community-Articles/2021-09-25-How-to-Override-Localization-Strings-Of-Depending-Modules/1.png differ diff --git a/docs/en/Community-Articles/2021-09-25-How-to-Override-Localization-Strings-Of-Depending-Modules/2.png b/docs/en/Community-Articles/2021-09-25-How-to-Override-Localization-Strings-Of-Depending-Modules/2.png index 8d617c0367..e4f5546aaa 100644 Binary files a/docs/en/Community-Articles/2021-09-25-How-to-Override-Localization-Strings-Of-Depending-Modules/2.png and b/docs/en/Community-Articles/2021-09-25-How-to-Override-Localization-Strings-Of-Depending-Modules/2.png differ diff --git a/docs/en/Community-Articles/2021-10-31-Many-to-Many-Relationship-with-ABP-and-EF-Core/application-contracts-folder-structure.png b/docs/en/Community-Articles/2021-10-31-Many-to-Many-Relationship-with-ABP-and-EF-Core/application-contracts-folder-structure.png index c0ed574489..a50563fbe1 100644 Binary files a/docs/en/Community-Articles/2021-10-31-Many-to-Many-Relationship-with-ABP-and-EF-Core/application-contracts-folder-structure.png and b/docs/en/Community-Articles/2021-10-31-Many-to-Many-Relationship-with-ABP-and-EF-Core/application-contracts-folder-structure.png differ diff --git a/docs/en/Community-Articles/2021-10-31-Many-to-Many-Relationship-with-ABP-and-EF-Core/application-folder-structure.png b/docs/en/Community-Articles/2021-10-31-Many-to-Many-Relationship-with-ABP-and-EF-Core/application-folder-structure.png index 0d37a552d4..f49369e90a 100644 Binary files a/docs/en/Community-Articles/2021-10-31-Many-to-Many-Relationship-with-ABP-and-EF-Core/application-folder-structure.png and b/docs/en/Community-Articles/2021-10-31-Many-to-Many-Relationship-with-ABP-and-EF-Core/application-folder-structure.png differ diff --git a/docs/en/Community-Articles/2021-10-31-Many-to-Many-Relationship-with-ABP-and-EF-Core/book-creation-modal.png b/docs/en/Community-Articles/2021-10-31-Many-to-Many-Relationship-with-ABP-and-EF-Core/book-creation-modal.png index 8661e016cd..39b6ddeb6c 100644 Binary files a/docs/en/Community-Articles/2021-10-31-Many-to-Many-Relationship-with-ABP-and-EF-Core/book-creation-modal.png and b/docs/en/Community-Articles/2021-10-31-Many-to-Many-Relationship-with-ABP-and-EF-Core/book-creation-modal.png differ diff --git a/docs/en/Community-Articles/2021-10-31-Many-to-Many-Relationship-with-ABP-and-EF-Core/book-update-modal.png b/docs/en/Community-Articles/2021-10-31-Many-to-Many-Relationship-with-ABP-and-EF-Core/book-update-modal.png index d9d312399a..a2033f3163 100644 Binary files a/docs/en/Community-Articles/2021-10-31-Many-to-Many-Relationship-with-ABP-and-EF-Core/book-update-modal.png and b/docs/en/Community-Articles/2021-10-31-Many-to-Many-Relationship-with-ABP-and-EF-Core/book-update-modal.png differ diff --git a/docs/en/Community-Articles/2021-10-31-Many-to-Many-Relationship-with-ABP-and-EF-Core/demo.png b/docs/en/Community-Articles/2021-10-31-Many-to-Many-Relationship-with-ABP-and-EF-Core/demo.png index 9b954bd7d6..031a9e93cf 100644 Binary files a/docs/en/Community-Articles/2021-10-31-Many-to-Many-Relationship-with-ABP-and-EF-Core/demo.png and b/docs/en/Community-Articles/2021-10-31-Many-to-Many-Relationship-with-ABP-and-EF-Core/demo.png differ diff --git a/docs/en/Community-Articles/2021-10-31-Many-to-Many-Relationship-with-ABP-and-EF-Core/domain-file-structure.png b/docs/en/Community-Articles/2021-10-31-Many-to-Many-Relationship-with-ABP-and-EF-Core/domain-file-structure.png index 6a5405dafe..e6c3388138 100644 Binary files a/docs/en/Community-Articles/2021-10-31-Many-to-Many-Relationship-with-ABP-and-EF-Core/domain-file-structure.png and b/docs/en/Community-Articles/2021-10-31-Many-to-Many-Relationship-with-ABP-and-EF-Core/domain-file-structure.png differ diff --git a/docs/en/Community-Articles/2021-10-31-Many-to-Many-Relationship-with-ABP-and-EF-Core/domain-shared-file-structure.png b/docs/en/Community-Articles/2021-10-31-Many-to-Many-Relationship-with-ABP-and-EF-Core/domain-shared-file-structure.png index 22a8de6599..4c0417889e 100644 Binary files a/docs/en/Community-Articles/2021-10-31-Many-to-Many-Relationship-with-ABP-and-EF-Core/domain-shared-file-structure.png and b/docs/en/Community-Articles/2021-10-31-Many-to-Many-Relationship-with-ABP-and-EF-Core/domain-shared-file-structure.png differ diff --git a/docs/en/Community-Articles/2021-10-31-Many-to-Many-Relationship-with-ABP-and-EF-Core/er-diagram.png b/docs/en/Community-Articles/2021-10-31-Many-to-Many-Relationship-with-ABP-and-EF-Core/er-diagram.png index 5948366e0e..024a7dff02 100644 Binary files a/docs/en/Community-Articles/2021-10-31-Many-to-Many-Relationship-with-ABP-and-EF-Core/er-diagram.png and b/docs/en/Community-Articles/2021-10-31-Many-to-Many-Relationship-with-ABP-and-EF-Core/er-diagram.png differ diff --git a/docs/en/Community-Articles/2021-10-31-Many-to-Many-Relationship-with-ABP-and-EF-Core/web-folder-structure.png b/docs/en/Community-Articles/2021-10-31-Many-to-Many-Relationship-with-ABP-and-EF-Core/web-folder-structure.png index ed4a63a06c..1e7a06eb11 100644 Binary files a/docs/en/Community-Articles/2021-10-31-Many-to-Many-Relationship-with-ABP-and-EF-Core/web-folder-structure.png and b/docs/en/Community-Articles/2021-10-31-Many-to-Many-Relationship-with-ABP-and-EF-Core/web-folder-structure.png differ diff --git a/docs/en/Community-Articles/2021-11-29-Integrating-DevExpress-Reporting-To-ABP-MVC-Application/bundle-hierarchy.png b/docs/en/Community-Articles/2021-11-29-Integrating-DevExpress-Reporting-To-ABP-MVC-Application/bundle-hierarchy.png index 700feb4918..c5f0b8477c 100644 Binary files a/docs/en/Community-Articles/2021-11-29-Integrating-DevExpress-Reporting-To-ABP-MVC-Application/bundle-hierarchy.png and b/docs/en/Community-Articles/2021-11-29-Integrating-DevExpress-Reporting-To-ABP-MVC-Application/bundle-hierarchy.png differ diff --git a/docs/en/Community-Articles/2021-11-29-Integrating-DevExpress-Reporting-To-ABP-MVC-Application/bundling-folders.png b/docs/en/Community-Articles/2021-11-29-Integrating-DevExpress-Reporting-To-ABP-MVC-Application/bundling-folders.png index dc3efea39e..caa35dc979 100644 Binary files a/docs/en/Community-Articles/2021-11-29-Integrating-DevExpress-Reporting-To-ABP-MVC-Application/bundling-folders.png and b/docs/en/Community-Articles/2021-11-29-Integrating-DevExpress-Reporting-To-ABP-MVC-Application/bundling-folders.png differ diff --git a/docs/en/Community-Articles/2021-11-29-Integrating-DevExpress-Reporting-To-ABP-MVC-Application/data-source.png b/docs/en/Community-Articles/2021-11-29-Integrating-DevExpress-Reporting-To-ABP-MVC-Application/data-source.png index 45eca29bee..9e6f2973a6 100644 Binary files a/docs/en/Community-Articles/2021-11-29-Integrating-DevExpress-Reporting-To-ABP-MVC-Application/data-source.png and b/docs/en/Community-Articles/2021-11-29-Integrating-DevExpress-Reporting-To-ABP-MVC-Application/data-source.png differ diff --git a/docs/en/Community-Articles/2021-11-29-Integrating-DevExpress-Reporting-To-ABP-MVC-Application/initial-project.png b/docs/en/Community-Articles/2021-11-29-Integrating-DevExpress-Reporting-To-ABP-MVC-Application/initial-project.png index 89db556b4d..0078b89523 100644 Binary files a/docs/en/Community-Articles/2021-11-29-Integrating-DevExpress-Reporting-To-ABP-MVC-Application/initial-project.png and b/docs/en/Community-Articles/2021-11-29-Integrating-DevExpress-Reporting-To-ABP-MVC-Application/initial-project.png differ diff --git a/docs/en/Community-Articles/2021-11-29-Integrating-DevExpress-Reporting-To-ABP-MVC-Application/wwwroot-lib.png b/docs/en/Community-Articles/2021-11-29-Integrating-DevExpress-Reporting-To-ABP-MVC-Application/wwwroot-lib.png index cf1cb697f9..aad31a11a1 100644 Binary files a/docs/en/Community-Articles/2021-11-29-Integrating-DevExpress-Reporting-To-ABP-MVC-Application/wwwroot-lib.png and b/docs/en/Community-Articles/2021-11-29-Integrating-DevExpress-Reporting-To-ABP-MVC-Application/wwwroot-lib.png differ diff --git a/docs/en/Community-Articles/2021-12-13-Integrating-the-Syncfusion-MVC-Components-to-the-ABP-MVC-UI/calendar-component.png b/docs/en/Community-Articles/2021-12-13-Integrating-the-Syncfusion-MVC-Components-to-the-ABP-MVC-UI/calendar-component.png index 8e7f36367a..2f8df8b5da 100644 Binary files a/docs/en/Community-Articles/2021-12-13-Integrating-the-Syncfusion-MVC-Components-to-the-ABP-MVC-UI/calendar-component.png and b/docs/en/Community-Articles/2021-12-13-Integrating-the-Syncfusion-MVC-Components-to-the-ABP-MVC-UI/calendar-component.png differ diff --git a/docs/en/Community-Articles/2021-12-13-Integrating-the-Syncfusion-MVC-Components-to-the-ABP-MVC-UI/component-folder-structure.png b/docs/en/Community-Articles/2021-12-13-Integrating-the-Syncfusion-MVC-Components-to-the-ABP-MVC-UI/component-folder-structure.png index 0dabbe0a06..7d080f87bd 100644 Binary files a/docs/en/Community-Articles/2021-12-13-Integrating-the-Syncfusion-MVC-Components-to-the-ABP-MVC-UI/component-folder-structure.png and b/docs/en/Community-Articles/2021-12-13-Integrating-the-Syncfusion-MVC-Components-to-the-ABP-MVC-UI/component-folder-structure.png differ diff --git a/docs/en/Community-Articles/2021-12-13-Integrating-the-Syncfusion-MVC-Components-to-the-ABP-MVC-UI/copy-license-key.png b/docs/en/Community-Articles/2021-12-13-Integrating-the-Syncfusion-MVC-Components-to-the-ABP-MVC-UI/copy-license-key.png index 847be0363d..ebd206f0f2 100644 Binary files a/docs/en/Community-Articles/2021-12-13-Integrating-the-Syncfusion-MVC-Components-to-the-ABP-MVC-UI/copy-license-key.png and b/docs/en/Community-Articles/2021-12-13-Integrating-the-Syncfusion-MVC-Components-to-the-ABP-MVC-UI/copy-license-key.png differ diff --git a/docs/en/Community-Articles/2021-12-13-Integrating-the-Syncfusion-MVC-Components-to-the-ABP-MVC-UI/manage-trial-1.png b/docs/en/Community-Articles/2021-12-13-Integrating-the-Syncfusion-MVC-Components-to-the-ABP-MVC-UI/manage-trial-1.png index 8e84229549..ed5e8b3629 100644 Binary files a/docs/en/Community-Articles/2021-12-13-Integrating-the-Syncfusion-MVC-Components-to-the-ABP-MVC-UI/manage-trial-1.png and b/docs/en/Community-Articles/2021-12-13-Integrating-the-Syncfusion-MVC-Components-to-the-ABP-MVC-UI/manage-trial-1.png differ diff --git a/docs/en/Community-Articles/2021-12-13-Integrating-the-Syncfusion-MVC-Components-to-the-ABP-MVC-UI/manage-trial-2.png b/docs/en/Community-Articles/2021-12-13-Integrating-the-Syncfusion-MVC-Components-to-the-ABP-MVC-UI/manage-trial-2.png index 57ef370bdb..fc38722380 100644 Binary files a/docs/en/Community-Articles/2021-12-13-Integrating-the-Syncfusion-MVC-Components-to-the-ABP-MVC-UI/manage-trial-2.png and b/docs/en/Community-Articles/2021-12-13-Integrating-the-Syncfusion-MVC-Components-to-the-ABP-MVC-UI/manage-trial-2.png differ diff --git a/docs/en/Community-Articles/2021-12-13-Integrating-the-Syncfusion-MVC-Components-to-the-ABP-MVC-UI/syncfusion-libs.png b/docs/en/Community-Articles/2021-12-13-Integrating-the-Syncfusion-MVC-Components-to-the-ABP-MVC-UI/syncfusion-libs.png index d75935d8fd..f6863706c2 100644 Binary files a/docs/en/Community-Articles/2021-12-13-Integrating-the-Syncfusion-MVC-Components-to-the-ABP-MVC-UI/syncfusion-libs.png and b/docs/en/Community-Articles/2021-12-13-Integrating-the-Syncfusion-MVC-Components-to-the-ABP-MVC-UI/syncfusion-libs.png differ diff --git a/docs/en/Community-Articles/2021-12-13-Integrating-the-Syncfusion-MVC-Components-to-the-ABP-MVC-UI/syncfusion-package.png b/docs/en/Community-Articles/2021-12-13-Integrating-the-Syncfusion-MVC-Components-to-the-ABP-MVC-UI/syncfusion-package.png index 6792ea0c32..c91da7a838 100644 Binary files a/docs/en/Community-Articles/2021-12-13-Integrating-the-Syncfusion-MVC-Components-to-the-ABP-MVC-UI/syncfusion-package.png and b/docs/en/Community-Articles/2021-12-13-Integrating-the-Syncfusion-MVC-Components-to-the-ABP-MVC-UI/syncfusion-package.png differ diff --git a/docs/en/Community-Articles/2022-02-06-How-to-Hide-ABP-Related-Endpoints-on-Swagger-UI/swagger-document-filter.png b/docs/en/Community-Articles/2022-02-06-How-to-Hide-ABP-Related-Endpoints-on-Swagger-UI/swagger-document-filter.png index ab61217e75..dd0f58a5c7 100644 Binary files a/docs/en/Community-Articles/2022-02-06-How-to-Hide-ABP-Related-Endpoints-on-Swagger-UI/swagger-document-filter.png and b/docs/en/Community-Articles/2022-02-06-How-to-Hide-ABP-Related-Endpoints-on-Swagger-UI/swagger-document-filter.png differ diff --git a/docs/en/Community-Articles/2022-02-06-How-to-Hide-ABP-Related-Endpoints-on-Swagger-UI/swagger-settings.png b/docs/en/Community-Articles/2022-02-06-How-to-Hide-ABP-Related-Endpoints-on-Swagger-UI/swagger-settings.png index 517267d712..9331169235 100644 Binary files a/docs/en/Community-Articles/2022-02-06-How-to-Hide-ABP-Related-Endpoints-on-Swagger-UI/swagger-settings.png and b/docs/en/Community-Articles/2022-02-06-How-to-Hide-ABP-Related-Endpoints-on-Swagger-UI/swagger-settings.png differ diff --git a/docs/en/Community-Articles/2022-02-06-How-to-Hide-ABP-Related-Endpoints-on-Swagger-UI/swagger.png b/docs/en/Community-Articles/2022-02-06-How-to-Hide-ABP-Related-Endpoints-on-Swagger-UI/swagger.png index 1f92e50b3d..3f53cb3a7e 100644 Binary files a/docs/en/Community-Articles/2022-02-06-How-to-Hide-ABP-Related-Endpoints-on-Swagger-UI/swagger.png and b/docs/en/Community-Articles/2022-02-06-How-to-Hide-ABP-Related-Endpoints-on-Swagger-UI/swagger.png differ diff --git a/docs/en/Community-Articles/2022-02-22-Integrating-MAUI-Client-via-using-OpenID-Connect/art/compiler-select.png b/docs/en/Community-Articles/2022-02-22-Integrating-MAUI-Client-via-using-OpenID-Connect/art/compiler-select.png index 793c30de2a..3c2377f6bf 100644 Binary files a/docs/en/Community-Articles/2022-02-22-Integrating-MAUI-Client-via-using-OpenID-Connect/art/compiler-select.png and b/docs/en/Community-Articles/2022-02-22-Integrating-MAUI-Client-via-using-OpenID-Connect/art/compiler-select.png differ diff --git a/docs/en/Community-Articles/2022-02-22-Integrating-MAUI-Client-via-using-OpenID-Connect/art/identity-users-request-result.png b/docs/en/Community-Articles/2022-02-22-Integrating-MAUI-Client-via-using-OpenID-Connect/art/identity-users-request-result.png index 7b12b0bbbe..65420c3983 100644 Binary files a/docs/en/Community-Articles/2022-02-22-Integrating-MAUI-Client-via-using-OpenID-Connect/art/identity-users-request-result.png and b/docs/en/Community-Articles/2022-02-22-Integrating-MAUI-Client-via-using-OpenID-Connect/art/identity-users-request-result.png differ diff --git a/docs/en/Community-Articles/2022-02-22-Integrating-MAUI-Client-via-using-OpenID-Connect/art/openid-configuration.png b/docs/en/Community-Articles/2022-02-22-Integrating-MAUI-Client-via-using-OpenID-Connect/art/openid-configuration.png index d12fe536a9..081de78633 100644 Binary files a/docs/en/Community-Articles/2022-02-22-Integrating-MAUI-Client-via-using-OpenID-Connect/art/openid-configuration.png and b/docs/en/Community-Articles/2022-02-22-Integrating-MAUI-Client-via-using-OpenID-Connect/art/openid-configuration.png differ diff --git a/docs/en/Community-Articles/2022-02-24-Using-ABP-Client-Proxies-in-MAUI-with-OpenID-Connect/Cover.png b/docs/en/Community-Articles/2022-02-24-Using-ABP-Client-Proxies-in-MAUI-with-OpenID-Connect/Cover.png index b61bdb6ddb..4632d6a366 100644 Binary files a/docs/en/Community-Articles/2022-02-24-Using-ABP-Client-Proxies-in-MAUI-with-OpenID-Connect/Cover.png and b/docs/en/Community-Articles/2022-02-24-Using-ABP-Client-Proxies-in-MAUI-with-OpenID-Connect/Cover.png differ diff --git a/docs/en/Community-Articles/2022-02-24-Using-ABP-Client-Proxies-in-MAUI-with-OpenID-Connect/art/net-maui-contentpage-template.png b/docs/en/Community-Articles/2022-02-24-Using-ABP-Client-Proxies-in-MAUI-with-OpenID-Connect/art/net-maui-contentpage-template.png index 9b0539c1ff..7ebd7cb457 100644 Binary files a/docs/en/Community-Articles/2022-02-24-Using-ABP-Client-Proxies-in-MAUI-with-OpenID-Connect/art/net-maui-contentpage-template.png and b/docs/en/Community-Articles/2022-02-24-Using-ABP-Client-Proxies-in-MAUI-with-OpenID-Connect/art/net-maui-contentpage-template.png differ diff --git a/docs/en/Community-Articles/2022-02-24-Using-ABP-Client-Proxies-in-MAUI-with-OpenID-Connect/art/xaml-intellisense.png b/docs/en/Community-Articles/2022-02-24-Using-ABP-Client-Proxies-in-MAUI-with-OpenID-Connect/art/xaml-intellisense.png index 521675d53c..da9ea842e6 100644 Binary files a/docs/en/Community-Articles/2022-02-24-Using-ABP-Client-Proxies-in-MAUI-with-OpenID-Connect/art/xaml-intellisense.png and b/docs/en/Community-Articles/2022-02-24-Using-ABP-Client-Proxies-in-MAUI-with-OpenID-Connect/art/xaml-intellisense.png differ diff --git a/docs/en/Community-Articles/2022-04-06-Concurrency-Check-in-ABP-Based-Applications/optimistic-concurrency.png b/docs/en/Community-Articles/2022-04-06-Concurrency-Check-in-ABP-Based-Applications/optimistic-concurrency.png index 85253594c8..17d6a9b5df 100644 Binary files a/docs/en/Community-Articles/2022-04-06-Concurrency-Check-in-ABP-Based-Applications/optimistic-concurrency.png and b/docs/en/Community-Articles/2022-04-06-Concurrency-Check-in-ABP-Based-Applications/optimistic-concurrency.png differ diff --git a/docs/en/Community-Articles/2022-05-16-Consuming-Rest-Api-By-Using-Static-Proxy/permission.png b/docs/en/Community-Articles/2022-05-16-Consuming-Rest-Api-By-Using-Static-Proxy/permission.png index 60e6667993..7dce0f8748 100644 Binary files a/docs/en/Community-Articles/2022-05-16-Consuming-Rest-Api-By-Using-Static-Proxy/permission.png and b/docs/en/Community-Articles/2022-05-16-Consuming-Rest-Api-By-Using-Static-Proxy/permission.png differ diff --git a/docs/en/Community-Articles/2022-05-16-Consuming-Rest-Api-By-Using-Static-Proxy/static-proxy.png b/docs/en/Community-Articles/2022-05-16-Consuming-Rest-Api-By-Using-Static-Proxy/static-proxy.png index 083c6cedfe..c7d15a5121 100644 Binary files a/docs/en/Community-Articles/2022-05-16-Consuming-Rest-Api-By-Using-Static-Proxy/static-proxy.png and b/docs/en/Community-Articles/2022-05-16-Consuming-Rest-Api-By-Using-Static-Proxy/static-proxy.png differ diff --git a/docs/en/Community-Articles/2022-07-19-How-To-Add-Custom-Property-To-The-User-Entity/added-new-migration.png b/docs/en/Community-Articles/2022-07-19-How-To-Add-Custom-Property-To-The-User-Entity/added-new-migration.png old mode 100755 new mode 100644 index d459fdeed2..ae9086c59d Binary files a/docs/en/Community-Articles/2022-07-19-How-To-Add-Custom-Property-To-The-User-Entity/added-new-migration.png and b/docs/en/Community-Articles/2022-07-19-How-To-Add-Custom-Property-To-The-User-Entity/added-new-migration.png differ diff --git a/docs/en/Community-Articles/2022-07-19-How-To-Add-Custom-Property-To-The-User-Entity/custom-identity-user-list.png b/docs/en/Community-Articles/2022-07-19-How-To-Add-Custom-Property-To-The-User-Entity/custom-identity-user-list.png index 896ed947aa..5b4ce65f68 100644 Binary files a/docs/en/Community-Articles/2022-07-19-How-To-Add-Custom-Property-To-The-User-Entity/custom-identity-user-list.png and b/docs/en/Community-Articles/2022-07-19-How-To-Add-Custom-Property-To-The-User-Entity/custom-identity-user-list.png differ diff --git a/docs/en/Community-Articles/2022-07-19-How-To-Add-Custom-Property-To-The-User-Entity/initial-project.png b/docs/en/Community-Articles/2022-07-19-How-To-Add-Custom-Property-To-The-User-Entity/initial-project.png old mode 100755 new mode 100644 index b64e93a99f..7f6c5e5f53 Binary files a/docs/en/Community-Articles/2022-07-19-How-To-Add-Custom-Property-To-The-User-Entity/initial-project.png and b/docs/en/Community-Articles/2022-07-19-How-To-Add-Custom-Property-To-The-User-Entity/initial-project.png differ diff --git a/docs/en/Community-Articles/2022-07-19-How-To-Add-Custom-Property-To-The-User-Entity/new-user.png b/docs/en/Community-Articles/2022-07-19-How-To-Add-Custom-Property-To-The-User-Entity/new-user.png index d3a5c66198..f7899be026 100644 Binary files a/docs/en/Community-Articles/2022-07-19-How-To-Add-Custom-Property-To-The-User-Entity/new-user.png and b/docs/en/Community-Articles/2022-07-19-How-To-Add-Custom-Property-To-The-User-Entity/new-user.png differ diff --git a/docs/en/Community-Articles/2022-07-19-How-To-Add-Custom-Property-To-The-User-Entity/nuget-package-manager.png b/docs/en/Community-Articles/2022-07-19-How-To-Add-Custom-Property-To-The-User-Entity/nuget-package-manager.png old mode 100755 new mode 100644 index 680bc9d2e7..929295db4d Binary files a/docs/en/Community-Articles/2022-07-19-How-To-Add-Custom-Property-To-The-User-Entity/nuget-package-manager.png and b/docs/en/Community-Articles/2022-07-19-How-To-Add-Custom-Property-To-The-User-Entity/nuget-package-manager.png differ diff --git a/docs/en/Community-Articles/2022-07-19-How-To-Add-Custom-Property-To-The-User-Entity/user-table.png b/docs/en/Community-Articles/2022-07-19-How-To-Add-Custom-Property-To-The-User-Entity/user-table.png old mode 100755 new mode 100644 index 5bb71b8325..5990a64111 Binary files a/docs/en/Community-Articles/2022-07-19-How-To-Add-Custom-Property-To-The-User-Entity/user-table.png and b/docs/en/Community-Articles/2022-07-19-How-To-Add-Custom-Property-To-The-User-Entity/user-table.png differ diff --git a/docs/en/Community-Articles/2022-09-15-Grpc-Demo/client-application.png b/docs/en/Community-Articles/2022-09-15-Grpc-Demo/client-application.png index b16c4a6c1e..8e6b5a3e1e 100644 Binary files a/docs/en/Community-Articles/2022-09-15-Grpc-Demo/client-application.png and b/docs/en/Community-Articles/2022-09-15-Grpc-Demo/client-application.png differ diff --git a/docs/en/Community-Articles/2022-09-15-Grpc-Demo/contracts.png b/docs/en/Community-Articles/2022-09-15-Grpc-Demo/contracts.png index ef9f80764d..057a7a6aee 100644 Binary files a/docs/en/Community-Articles/2022-09-15-Grpc-Demo/contracts.png and b/docs/en/Community-Articles/2022-09-15-Grpc-Demo/contracts.png differ diff --git a/docs/en/Community-Articles/2022-09-15-Grpc-Demo/host-changes-1.png b/docs/en/Community-Articles/2022-09-15-Grpc-Demo/host-changes-1.png index b9dc207636..8593a36e3b 100644 Binary files a/docs/en/Community-Articles/2022-09-15-Grpc-Demo/host-changes-1.png and b/docs/en/Community-Articles/2022-09-15-Grpc-Demo/host-changes-1.png differ diff --git a/docs/en/Community-Articles/2022-09-15-Grpc-Demo/solution.png b/docs/en/Community-Articles/2022-09-15-Grpc-Demo/solution.png index c3becdbf44..33886c134e 100644 Binary files a/docs/en/Community-Articles/2022-09-15-Grpc-Demo/solution.png and b/docs/en/Community-Articles/2022-09-15-Grpc-Demo/solution.png differ diff --git a/docs/en/Community-Articles/2022-09-15-Grpc-Demo/swagger.png b/docs/en/Community-Articles/2022-09-15-Grpc-Demo/swagger.png index 47ed5340c3..b6d407ad31 100644 Binary files a/docs/en/Community-Articles/2022-09-15-Grpc-Demo/swagger.png and b/docs/en/Community-Articles/2022-09-15-Grpc-Demo/swagger.png differ diff --git a/docs/en/Community-Articles/2022-09-18-Grpc-Demo-Part-2/blazor-product-list.png b/docs/en/Community-Articles/2022-09-18-Grpc-Demo-Part-2/blazor-product-list.png index 279a6ae6f3..958d991c0c 100644 Binary files a/docs/en/Community-Articles/2022-09-18-Grpc-Demo-Part-2/blazor-product-list.png and b/docs/en/Community-Articles/2022-09-18-Grpc-Demo-Part-2/blazor-product-list.png differ diff --git a/docs/en/Community-Articles/2022-10-27-Dotnet7-Upgrade/as-single-query.jpg b/docs/en/Community-Articles/2022-10-27-Dotnet7-Upgrade/as-single-query.jpg index 38e3bde39e..1ecb9fa57c 100644 Binary files a/docs/en/Community-Articles/2022-10-27-Dotnet7-Upgrade/as-single-query.jpg and b/docs/en/Community-Articles/2022-10-27-Dotnet7-Upgrade/as-single-query.jpg differ diff --git a/docs/en/Community-Articles/2022-10-27-Dotnet7-Upgrade/cover-image.jpg b/docs/en/Community-Articles/2022-10-27-Dotnet7-Upgrade/cover-image.jpg index 3218fe8f0d..41bf47427d 100644 Binary files a/docs/en/Community-Articles/2022-10-27-Dotnet7-Upgrade/cover-image.jpg and b/docs/en/Community-Articles/2022-10-27-Dotnet7-Upgrade/cover-image.jpg differ diff --git a/docs/en/Community-Articles/2022-11-14-How-to-add-a-custom-grant-type-in-OpenIddict/postman1.png b/docs/en/Community-Articles/2022-11-14-How-to-add-a-custom-grant-type-in-OpenIddict/postman1.png index 1e2c7535c5..e7ec1ccce0 100644 Binary files a/docs/en/Community-Articles/2022-11-14-How-to-add-a-custom-grant-type-in-OpenIddict/postman1.png and b/docs/en/Community-Articles/2022-11-14-How-to-add-a-custom-grant-type-in-OpenIddict/postman1.png differ diff --git a/docs/en/Community-Articles/2022-11-14-How-to-add-a-custom-grant-type-in-OpenIddict/postman2.png b/docs/en/Community-Articles/2022-11-14-How-to-add-a-custom-grant-type-in-OpenIddict/postman2.png index c3dbb7324a..b44e756ed5 100644 Binary files a/docs/en/Community-Articles/2022-11-14-How-to-add-a-custom-grant-type-in-OpenIddict/postman2.png and b/docs/en/Community-Articles/2022-11-14-How-to-add-a-custom-grant-type-in-OpenIddict/postman2.png differ diff --git a/docs/en/Community-Articles/2022-11-22-gRPC-JSON-Transcoding/google-api-folders.png b/docs/en/Community-Articles/2022-11-22-gRPC-JSON-Transcoding/google-api-folders.png index 7719dc3915..6ccbdbbedc 100644 Binary files a/docs/en/Community-Articles/2022-11-22-gRPC-JSON-Transcoding/google-api-folders.png and b/docs/en/Community-Articles/2022-11-22-gRPC-JSON-Transcoding/google-api-folders.png differ diff --git a/docs/en/Community-Articles/2022-11-22-gRPC-JSON-Transcoding/grpc-result.png b/docs/en/Community-Articles/2022-11-22-gRPC-JSON-Transcoding/grpc-result.png index e43d06e745..b8454f359f 100644 Binary files a/docs/en/Community-Articles/2022-11-22-gRPC-JSON-Transcoding/grpc-result.png and b/docs/en/Community-Articles/2022-11-22-gRPC-JSON-Transcoding/grpc-result.png differ diff --git a/docs/en/Community-Articles/2022-11-22-gRPC-JSON-Transcoding/grpcurl.png b/docs/en/Community-Articles/2022-11-22-gRPC-JSON-Transcoding/grpcurl.png index 053629d04d..25b3b7e591 100644 Binary files a/docs/en/Community-Articles/2022-11-22-gRPC-JSON-Transcoding/grpcurl.png and b/docs/en/Community-Articles/2022-11-22-gRPC-JSON-Transcoding/grpcurl.png differ diff --git a/docs/en/Community-Articles/2022-11-25-EFCore-Mapping-Strategies/banner.png b/docs/en/Community-Articles/2022-11-25-EFCore-Mapping-Strategies/banner.png index df09d819de..8f7312d54e 100644 Binary files a/docs/en/Community-Articles/2022-11-25-EFCore-Mapping-Strategies/banner.png and b/docs/en/Community-Articles/2022-11-25-EFCore-Mapping-Strategies/banner.png differ diff --git a/docs/en/Community-Articles/2022-11-25-JSON-columns/Database.png b/docs/en/Community-Articles/2022-11-25-JSON-columns/Database.png index c8a5516aa6..d63ae62b53 100644 Binary files a/docs/en/Community-Articles/2022-11-25-JSON-columns/Database.png and b/docs/en/Community-Articles/2022-11-25-JSON-columns/Database.png differ diff --git a/docs/en/Community-Articles/2022-11-29-Rate-Limiting/cover-image.png b/docs/en/Community-Articles/2022-11-29-Rate-Limiting/cover-image.png index cedae39a3b..83b70607f8 100644 Binary files a/docs/en/Community-Articles/2022-11-29-Rate-Limiting/cover-image.png and b/docs/en/Community-Articles/2022-11-29-Rate-Limiting/cover-image.png differ diff --git a/docs/en/Community-Articles/2022-12-29-Use-Weixin-Authentication-for-MVC-Applications/login-with-weixin.jpg b/docs/en/Community-Articles/2022-12-29-Use-Weixin-Authentication-for-MVC-Applications/login-with-weixin.jpg index cfb248ebc4..ee025998f5 100644 Binary files a/docs/en/Community-Articles/2022-12-29-Use-Weixin-Authentication-for-MVC-Applications/login-with-weixin.jpg and b/docs/en/Community-Articles/2022-12-29-Use-Weixin-Authentication-for-MVC-Applications/login-with-weixin.jpg differ diff --git a/docs/en/Community-Articles/2022-12-29-Use-Weixin-Authentication-for-MVC-Applications/offical-account.jpg b/docs/en/Community-Articles/2022-12-29-Use-Weixin-Authentication-for-MVC-Applications/offical-account.jpg index 8157a4e952..7a96b59fef 100644 Binary files a/docs/en/Community-Articles/2022-12-29-Use-Weixin-Authentication-for-MVC-Applications/offical-account.jpg and b/docs/en/Community-Articles/2022-12-29-Use-Weixin-Authentication-for-MVC-Applications/offical-account.jpg differ diff --git a/docs/en/Community-Articles/2022-18-11-whats-new-with-net7/benchmark.png b/docs/en/Community-Articles/2022-18-11-whats-new-with-net7/benchmark.png index 3a391f93e7..267db9dda2 100644 Binary files a/docs/en/Community-Articles/2022-18-11-whats-new-with-net7/benchmark.png and b/docs/en/Community-Articles/2022-18-11-whats-new-with-net7/benchmark.png differ diff --git a/docs/en/Community-Articles/2022-18-11-whats-new-with-net7/maui.png b/docs/en/Community-Articles/2022-18-11-whats-new-with-net7/maui.png index 6fe3f39d5c..4a10fea6b2 100644 Binary files a/docs/en/Community-Articles/2022-18-11-whats-new-with-net7/maui.png and b/docs/en/Community-Articles/2022-18-11-whats-new-with-net7/maui.png differ diff --git a/docs/en/Community-Articles/2022-18-11-whats-new-with-net7/range-pattern.png b/docs/en/Community-Articles/2022-18-11-whats-new-with-net7/range-pattern.png index 6aaefabe47..25bf9ee85d 100644 Binary files a/docs/en/Community-Articles/2022-18-11-whats-new-with-net7/range-pattern.png and b/docs/en/Community-Articles/2022-18-11-whats-new-with-net7/range-pattern.png differ diff --git a/docs/en/Community-Articles/2022-18-11-whats-new-with-net7/rate-limiting-2.png b/docs/en/Community-Articles/2022-18-11-whats-new-with-net7/rate-limiting-2.png index 8e3e93c331..d804f08767 100644 Binary files a/docs/en/Community-Articles/2022-18-11-whats-new-with-net7/rate-limiting-2.png and b/docs/en/Community-Articles/2022-18-11-whats-new-with-net7/rate-limiting-2.png differ diff --git a/docs/en/Community-Articles/2022-18-11-whats-new-with-net7/raw-string-literals.png b/docs/en/Community-Articles/2022-18-11-whats-new-with-net7/raw-string-literals.png index 490b9a6414..af382e964b 100644 Binary files a/docs/en/Community-Articles/2022-18-11-whats-new-with-net7/raw-string-literals.png and b/docs/en/Community-Articles/2022-18-11-whats-new-with-net7/raw-string-literals.png differ diff --git a/docs/en/Community-Articles/2022-18-11-whats-new-with-net7/required-members.png b/docs/en/Community-Articles/2022-18-11-whats-new-with-net7/required-members.png index dbf94e18a1..5bcd32d32c 100644 Binary files a/docs/en/Community-Articles/2022-18-11-whats-new-with-net7/required-members.png and b/docs/en/Community-Articles/2022-18-11-whats-new-with-net7/required-members.png differ diff --git a/docs/en/Community-Articles/2022-18-11-whats-new-with-net7/var-pattern.png b/docs/en/Community-Articles/2022-18-11-whats-new-with-net7/var-pattern.png index ebdaf52973..e47abedb9e 100644 Binary files a/docs/en/Community-Articles/2022-18-11-whats-new-with-net7/var-pattern.png and b/docs/en/Community-Articles/2022-18-11-whats-new-with-net7/var-pattern.png differ diff --git a/docs/en/Community-Articles/2023-01-30-How-To-Contribute-To-a-Open-Source-Software/images/branch-image.png b/docs/en/Community-Articles/2023-01-30-How-To-Contribute-To-a-Open-Source-Software/images/branch-image.png index ed2e4f083f..2b02615827 100644 Binary files a/docs/en/Community-Articles/2023-01-30-How-To-Contribute-To-a-Open-Source-Software/images/branch-image.png and b/docs/en/Community-Articles/2023-01-30-How-To-Contribute-To-a-Open-Source-Software/images/branch-image.png differ diff --git a/docs/en/Community-Articles/2023-01-30-How-To-Contribute-To-a-Open-Source-Software/images/clone-image.png b/docs/en/Community-Articles/2023-01-30-How-To-Contribute-To-a-Open-Source-Software/images/clone-image.png index 6e22d8fbd3..e7a49d004b 100644 Binary files a/docs/en/Community-Articles/2023-01-30-How-To-Contribute-To-a-Open-Source-Software/images/clone-image.png and b/docs/en/Community-Articles/2023-01-30-How-To-Contribute-To-a-Open-Source-Software/images/clone-image.png differ diff --git a/docs/en/Community-Articles/2023-01-30-How-To-Contribute-To-a-Open-Source-Software/images/commit-image.png b/docs/en/Community-Articles/2023-01-30-How-To-Contribute-To-a-Open-Source-Software/images/commit-image.png index a24becb110..bfc20c75a5 100644 Binary files a/docs/en/Community-Articles/2023-01-30-How-To-Contribute-To-a-Open-Source-Software/images/commit-image.png and b/docs/en/Community-Articles/2023-01-30-How-To-Contribute-To-a-Open-Source-Software/images/commit-image.png differ diff --git a/docs/en/Community-Articles/2023-01-30-How-To-Contribute-To-a-Open-Source-Software/images/developer-list.png b/docs/en/Community-Articles/2023-01-30-How-To-Contribute-To-a-Open-Source-Software/images/developer-list.png index 87a7dfb948..fe284dcc45 100644 Binary files a/docs/en/Community-Articles/2023-01-30-How-To-Contribute-To-a-Open-Source-Software/images/developer-list.png and b/docs/en/Community-Articles/2023-01-30-How-To-Contribute-To-a-Open-Source-Software/images/developer-list.png differ diff --git a/docs/en/Community-Articles/2023-01-30-How-To-Contribute-To-a-Open-Source-Software/images/fork-project-image.png b/docs/en/Community-Articles/2023-01-30-How-To-Contribute-To-a-Open-Source-Software/images/fork-project-image.png index fc8e7f1efe..2df87e4180 100644 Binary files a/docs/en/Community-Articles/2023-01-30-How-To-Contribute-To-a-Open-Source-Software/images/fork-project-image.png and b/docs/en/Community-Articles/2023-01-30-How-To-Contribute-To-a-Open-Source-Software/images/fork-project-image.png differ diff --git a/docs/en/Community-Articles/2023-01-30-How-To-Contribute-To-a-Open-Source-Software/images/fork-project-profile.png b/docs/en/Community-Articles/2023-01-30-How-To-Contribute-To-a-Open-Source-Software/images/fork-project-profile.png index b6ade4ca1e..94c97380a9 100644 Binary files a/docs/en/Community-Articles/2023-01-30-How-To-Contribute-To-a-Open-Source-Software/images/fork-project-profile.png and b/docs/en/Community-Articles/2023-01-30-How-To-Contribute-To-a-Open-Source-Software/images/fork-project-profile.png differ diff --git a/docs/en/Community-Articles/2023-01-30-How-To-Contribute-To-a-Open-Source-Software/images/git-push-image.png b/docs/en/Community-Articles/2023-01-30-How-To-Contribute-To-a-Open-Source-Software/images/git-push-image.png index ff3b37fef3..bb91538a1c 100644 Binary files a/docs/en/Community-Articles/2023-01-30-How-To-Contribute-To-a-Open-Source-Software/images/git-push-image.png and b/docs/en/Community-Articles/2023-01-30-How-To-Contribute-To-a-Open-Source-Software/images/git-push-image.png differ diff --git a/docs/en/Community-Articles/2023-01-30-How-To-Contribute-To-a-Open-Source-Software/images/github-desktop-change.png b/docs/en/Community-Articles/2023-01-30-How-To-Contribute-To-a-Open-Source-Software/images/github-desktop-change.png index 92125966ec..b2a14c1f17 100644 Binary files a/docs/en/Community-Articles/2023-01-30-How-To-Contribute-To-a-Open-Source-Software/images/github-desktop-change.png and b/docs/en/Community-Articles/2023-01-30-How-To-Contribute-To-a-Open-Source-Software/images/github-desktop-change.png differ diff --git a/docs/en/Community-Articles/2023-01-30-How-To-Contribute-To-a-Open-Source-Software/images/github-desktop-pull-request.png b/docs/en/Community-Articles/2023-01-30-How-To-Contribute-To-a-Open-Source-Software/images/github-desktop-pull-request.png index 44474b1967..03c8f8ceef 100644 Binary files a/docs/en/Community-Articles/2023-01-30-How-To-Contribute-To-a-Open-Source-Software/images/github-desktop-pull-request.png and b/docs/en/Community-Articles/2023-01-30-How-To-Contribute-To-a-Open-Source-Software/images/github-desktop-pull-request.png differ diff --git a/docs/en/Community-Articles/2023-01-30-How-To-Contribute-To-a-Open-Source-Software/images/open-pull-request-image.png b/docs/en/Community-Articles/2023-01-30-How-To-Contribute-To-a-Open-Source-Software/images/open-pull-request-image.png index 3f8df381ce..e177b6bf55 100644 Binary files a/docs/en/Community-Articles/2023-01-30-How-To-Contribute-To-a-Open-Source-Software/images/open-pull-request-image.png and b/docs/en/Community-Articles/2023-01-30-How-To-Contribute-To-a-Open-Source-Software/images/open-pull-request-image.png differ diff --git a/docs/en/Community-Articles/2023-01-30-How-To-Contribute-To-a-Open-Source-Software/images/pull-request-image.png b/docs/en/Community-Articles/2023-01-30-How-To-Contribute-To-a-Open-Source-Software/images/pull-request-image.png index 9eaacaf3db..da4bd5acbb 100644 Binary files a/docs/en/Community-Articles/2023-01-30-How-To-Contribute-To-a-Open-Source-Software/images/pull-request-image.png and b/docs/en/Community-Articles/2023-01-30-How-To-Contribute-To-a-Open-Source-Software/images/pull-request-image.png differ diff --git a/docs/en/Community-Articles/2023-03-15-Migration-Mssql-Postgresql/images/citext-1.jpg b/docs/en/Community-Articles/2023-03-15-Migration-Mssql-Postgresql/images/citext-1.jpg index 4dc01228fa..f0005d378d 100644 Binary files a/docs/en/Community-Articles/2023-03-15-Migration-Mssql-Postgresql/images/citext-1.jpg and b/docs/en/Community-Articles/2023-03-15-Migration-Mssql-Postgresql/images/citext-1.jpg differ diff --git a/docs/en/Community-Articles/2023-03-15-Migration-Mssql-Postgresql/images/citext-2.jpg b/docs/en/Community-Articles/2023-03-15-Migration-Mssql-Postgresql/images/citext-2.jpg index a70b0312bf..439e529ee9 100644 Binary files a/docs/en/Community-Articles/2023-03-15-Migration-Mssql-Postgresql/images/citext-2.jpg and b/docs/en/Community-Articles/2023-03-15-Migration-Mssql-Postgresql/images/citext-2.jpg differ diff --git a/docs/en/Community-Articles/2023-03-15-Migration-Mssql-Postgresql/images/citext-3.jpg b/docs/en/Community-Articles/2023-03-15-Migration-Mssql-Postgresql/images/citext-3.jpg index c8a95d61a5..309a7a142f 100644 Binary files a/docs/en/Community-Articles/2023-03-15-Migration-Mssql-Postgresql/images/citext-3.jpg and b/docs/en/Community-Articles/2023-03-15-Migration-Mssql-Postgresql/images/citext-3.jpg differ diff --git a/docs/en/Community-Articles/2023-03-15-Migration-Mssql-Postgresql/images/db-converter.jpg b/docs/en/Community-Articles/2023-03-15-Migration-Mssql-Postgresql/images/db-converter.jpg index 9c5371d36c..97231e1d87 100644 Binary files a/docs/en/Community-Articles/2023-03-15-Migration-Mssql-Postgresql/images/db-converter.jpg and b/docs/en/Community-Articles/2023-03-15-Migration-Mssql-Postgresql/images/db-converter.jpg differ diff --git a/docs/en/Community-Articles/2023-03-20- IdentityUser-Relationships/images/database-tables.png b/docs/en/Community-Articles/2023-03-20- IdentityUser-Relationships/images/database-tables.png index a1cef0bc26..9662780d74 100644 Binary files a/docs/en/Community-Articles/2023-03-20- IdentityUser-Relationships/images/database-tables.png and b/docs/en/Community-Articles/2023-03-20- IdentityUser-Relationships/images/database-tables.png differ diff --git a/docs/en/Community-Articles/2023-03-20- IdentityUser-Relationships/images/identification-number.png b/docs/en/Community-Articles/2023-03-20- IdentityUser-Relationships/images/identification-number.png index 75fdd94768..0a570bac63 100644 Binary files a/docs/en/Community-Articles/2023-03-20- IdentityUser-Relationships/images/identification-number.png and b/docs/en/Community-Articles/2023-03-20- IdentityUser-Relationships/images/identification-number.png differ diff --git a/docs/en/Community-Articles/2023-03-20- IdentityUser-Relationships/images/open-terminal.png b/docs/en/Community-Articles/2023-03-20- IdentityUser-Relationships/images/open-terminal.png index 9f1069d02b..9f7b82a5bc 100644 Binary files a/docs/en/Community-Articles/2023-03-20- IdentityUser-Relationships/images/open-terminal.png and b/docs/en/Community-Articles/2023-03-20- IdentityUser-Relationships/images/open-terminal.png differ diff --git a/docs/en/Community-Articles/2023-03-20- IdentityUser-Relationships/images/run-dbmigrator.png b/docs/en/Community-Articles/2023-03-20- IdentityUser-Relationships/images/run-dbmigrator.png index 6e42848862..87756491ba 100644 Binary files a/docs/en/Community-Articles/2023-03-20- IdentityUser-Relationships/images/run-dbmigrator.png and b/docs/en/Community-Articles/2023-03-20- IdentityUser-Relationships/images/run-dbmigrator.png differ diff --git a/docs/en/Community-Articles/2023-03-20- IdentityUser-Relationships/images/solution-image.png b/docs/en/Community-Articles/2023-03-20- IdentityUser-Relationships/images/solution-image.png index cd54f473f4..c9636d1681 100644 Binary files a/docs/en/Community-Articles/2023-03-20- IdentityUser-Relationships/images/solution-image.png and b/docs/en/Community-Articles/2023-03-20- IdentityUser-Relationships/images/solution-image.png differ diff --git a/docs/en/Community-Articles/2023-03-20- IdentityUser-Relationships/images/user-department.png b/docs/en/Community-Articles/2023-03-20- IdentityUser-Relationships/images/user-department.png index feb97234c3..d7d949abf4 100644 Binary files a/docs/en/Community-Articles/2023-03-20- IdentityUser-Relationships/images/user-department.png and b/docs/en/Community-Articles/2023-03-20- IdentityUser-Relationships/images/user-department.png differ diff --git a/docs/en/Community-Articles/2023-03-20- IdentityUser-Relationships/images/users-page-department.png b/docs/en/Community-Articles/2023-03-20- IdentityUser-Relationships/images/users-page-department.png index c923c9fc4b..200fbd7dd4 100644 Binary files a/docs/en/Community-Articles/2023-03-20- IdentityUser-Relationships/images/users-page-department.png and b/docs/en/Community-Articles/2023-03-20- IdentityUser-Relationships/images/users-page-department.png differ diff --git a/docs/en/Community-Articles/2023-03-20- IdentityUser-Relationships/images/users-page.png b/docs/en/Community-Articles/2023-03-20- IdentityUser-Relationships/images/users-page.png index 5622e11373..c546fe56d3 100644 Binary files a/docs/en/Community-Articles/2023-03-20- IdentityUser-Relationships/images/users-page.png and b/docs/en/Community-Articles/2023-03-20- IdentityUser-Relationships/images/users-page.png differ diff --git a/docs/en/Community-Articles/2023-03-20- IdentityUser-Relationships/images/users-table.png b/docs/en/Community-Articles/2023-03-20- IdentityUser-Relationships/images/users-table.png index 81b2cf90dd..ef769723d0 100644 Binary files a/docs/en/Community-Articles/2023-03-20- IdentityUser-Relationships/images/users-table.png and b/docs/en/Community-Articles/2023-03-20- IdentityUser-Relationships/images/users-table.png differ diff --git a/docs/en/Community-Articles/2023-03-20-Dapper/book-class-in-rider.png b/docs/en/Community-Articles/2023-03-20-Dapper/book-class-in-rider.png index db1e5791b4..a205a9630e 100644 Binary files a/docs/en/Community-Articles/2023-03-20-Dapper/book-class-in-rider.png and b/docs/en/Community-Articles/2023-03-20-Dapper/book-class-in-rider.png differ diff --git a/docs/en/Community-Articles/2023-03-20-Dapper/book-database-table.png b/docs/en/Community-Articles/2023-03-20-Dapper/book-database-table.png index d1584118d9..547e4c785a 100644 Binary files a/docs/en/Community-Articles/2023-03-20-Dapper/book-database-table.png and b/docs/en/Community-Articles/2023-03-20-Dapper/book-database-table.png differ diff --git a/docs/en/Community-Articles/2023-03-20-Dapper/book-table-data.png b/docs/en/Community-Articles/2023-03-20-Dapper/book-table-data.png index 6b9ea69b59..7c495311b9 100644 Binary files a/docs/en/Community-Articles/2023-03-20-Dapper/book-table-data.png and b/docs/en/Community-Articles/2023-03-20-Dapper/book-table-data.png differ diff --git a/docs/en/Community-Articles/2023-03-20-Dapper/list-of-books.png b/docs/en/Community-Articles/2023-03-20-Dapper/list-of-books.png index 23b190afa6..2b6f78d6be 100644 Binary files a/docs/en/Community-Articles/2023-03-20-Dapper/list-of-books.png and b/docs/en/Community-Articles/2023-03-20-Dapper/list-of-books.png differ diff --git a/docs/en/Community-Articles/2023-03-27-What-is-new-in-NET8/cover.jpg b/docs/en/Community-Articles/2023-03-27-What-is-new-in-NET8/cover.jpg index aa0f3694d4..98b9aecf17 100644 Binary files a/docs/en/Community-Articles/2023-03-27-What-is-new-in-NET8/cover.jpg and b/docs/en/Community-Articles/2023-03-27-What-is-new-in-NET8/cover.jpg differ diff --git a/docs/en/Community-Articles/2023-03-28-Converting-Create-Edit-Modal-To-Page/images/books-remove-methods.png b/docs/en/Community-Articles/2023-03-28-Converting-Create-Edit-Modal-To-Page/images/books-remove-methods.png index a2df67fee2..87ae87408a 100644 Binary files a/docs/en/Community-Articles/2023-03-28-Converting-Create-Edit-Modal-To-Page/images/books-remove-methods.png and b/docs/en/Community-Articles/2023-03-28-Converting-Create-Edit-Modal-To-Page/images/books-remove-methods.png differ diff --git a/docs/en/Community-Articles/2023-03-28-Converting-Create-Edit-Modal-To-Page/images/books-remove-modals.png b/docs/en/Community-Articles/2023-03-28-Converting-Create-Edit-Modal-To-Page/images/books-remove-modals.png index 0e9fd6e8d4..7514c463f1 100644 Binary files a/docs/en/Community-Articles/2023-03-28-Converting-Create-Edit-Modal-To-Page/images/books-remove-modals.png and b/docs/en/Community-Articles/2023-03-28-Converting-Create-Edit-Modal-To-Page/images/books-remove-modals.png differ diff --git a/docs/en/Community-Articles/2023-04-15-Converting-Create-Edit-Modal-To-Page/images/books-remove-modals.png b/docs/en/Community-Articles/2023-04-15-Converting-Create-Edit-Modal-To-Page/images/books-remove-modals.png index 4396819fcd..42835630bb 100644 Binary files a/docs/en/Community-Articles/2023-04-15-Converting-Create-Edit-Modal-To-Page/images/books-remove-modals.png and b/docs/en/Community-Articles/2023-04-15-Converting-Create-Edit-Modal-To-Page/images/books-remove-modals.png differ diff --git a/docs/en/Community-Articles/2023-04-15-Converting-Create-Edit-Modal-To-Page/images/books-remove-unused-imports.png b/docs/en/Community-Articles/2023-04-15-Converting-Create-Edit-Modal-To-Page/images/books-remove-unused-imports.png index 198db3f243..74a75bf21a 100644 Binary files a/docs/en/Community-Articles/2023-04-15-Converting-Create-Edit-Modal-To-Page/images/books-remove-unused-imports.png and b/docs/en/Community-Articles/2023-04-15-Converting-Create-Edit-Modal-To-Page/images/books-remove-unused-imports.png differ diff --git a/docs/en/Community-Articles/2023-04-15-Converting-Create-Edit-Modal-To-Page/images/books-remove-unused.png b/docs/en/Community-Articles/2023-04-15-Converting-Create-Edit-Modal-To-Page/images/books-remove-unused.png index f95c90c44d..f73bcfac28 100644 Binary files a/docs/en/Community-Articles/2023-04-15-Converting-Create-Edit-Modal-To-Page/images/books-remove-unused.png and b/docs/en/Community-Articles/2023-04-15-Converting-Create-Edit-Modal-To-Page/images/books-remove-unused.png differ diff --git a/docs/en/Community-Articles/2023-05-03-Authority-Delegation-In-ABP-Commerical/images/delegate-new-user.jpg b/docs/en/Community-Articles/2023-05-03-Authority-Delegation-In-ABP-Commerical/images/delegate-new-user.jpg index b52d624a08..7fcedd824a 100644 Binary files a/docs/en/Community-Articles/2023-05-03-Authority-Delegation-In-ABP-Commerical/images/delegate-new-user.jpg and b/docs/en/Community-Articles/2023-05-03-Authority-Delegation-In-ABP-Commerical/images/delegate-new-user.jpg differ diff --git a/docs/en/Community-Articles/2023-05-03-Authority-Delegation-In-ABP-Commerical/images/delegated-impersonate.jpg b/docs/en/Community-Articles/2023-05-03-Authority-Delegation-In-ABP-Commerical/images/delegated-impersonate.jpg index 7847516886..ac9f26e62b 100644 Binary files a/docs/en/Community-Articles/2023-05-03-Authority-Delegation-In-ABP-Commerical/images/delegated-impersonate.jpg and b/docs/en/Community-Articles/2023-05-03-Authority-Delegation-In-ABP-Commerical/images/delegated-impersonate.jpg differ diff --git a/docs/en/Community-Articles/2023-05-03-Authority-Delegation-In-ABP-Commerical/images/delegated-users.jpg b/docs/en/Community-Articles/2023-05-03-Authority-Delegation-In-ABP-Commerical/images/delegated-users.jpg index a95fafe17d..199aa89ac9 100644 Binary files a/docs/en/Community-Articles/2023-05-03-Authority-Delegation-In-ABP-Commerical/images/delegated-users.jpg and b/docs/en/Community-Articles/2023-05-03-Authority-Delegation-In-ABP-Commerical/images/delegated-users.jpg differ diff --git a/docs/en/Community-Articles/2023-05-03-Authority-Delegation-In-ABP-Commerical/images/my-delegated-users.jpg b/docs/en/Community-Articles/2023-05-03-Authority-Delegation-In-ABP-Commerical/images/my-delegated-users.jpg index c94f228bd9..ff45f9e40e 100644 Binary files a/docs/en/Community-Articles/2023-05-03-Authority-Delegation-In-ABP-Commerical/images/my-delegated-users.jpg and b/docs/en/Community-Articles/2023-05-03-Authority-Delegation-In-ABP-Commerical/images/my-delegated-users.jpg differ diff --git a/docs/en/Community-Articles/2023-06-05-Kubernetes-Integration-Abp-Studio/01-microservice-solution.png b/docs/en/Community-Articles/2023-06-05-Kubernetes-Integration-Abp-Studio/01-microservice-solution.png index 4fb7429ec7..19fe694850 100644 Binary files a/docs/en/Community-Articles/2023-06-05-Kubernetes-Integration-Abp-Studio/01-microservice-solution.png and b/docs/en/Community-Articles/2023-06-05-Kubernetes-Integration-Abp-Studio/01-microservice-solution.png differ diff --git a/docs/en/Community-Articles/2023-06-05-Kubernetes-Integration-Abp-Studio/02-run-single-service.png b/docs/en/Community-Articles/2023-06-05-Kubernetes-Integration-Abp-Studio/02-run-single-service.png index 9380eb830f..8c18599c45 100644 Binary files a/docs/en/Community-Articles/2023-06-05-Kubernetes-Integration-Abp-Studio/02-run-single-service.png and b/docs/en/Community-Articles/2023-06-05-Kubernetes-Integration-Abp-Studio/02-run-single-service.png differ diff --git a/docs/en/Community-Articles/2023-06-05-Kubernetes-Integration-Abp-Studio/04-tye-dashboard.png b/docs/en/Community-Articles/2023-06-05-Kubernetes-Integration-Abp-Studio/04-tye-dashboard.png index 1444b2a0c6..49b2391897 100644 Binary files a/docs/en/Community-Articles/2023-06-05-Kubernetes-Integration-Abp-Studio/04-tye-dashboard.png and b/docs/en/Community-Articles/2023-06-05-Kubernetes-Integration-Abp-Studio/04-tye-dashboard.png differ diff --git a/docs/en/Community-Articles/2023-06-05-Kubernetes-Integration-Abp-Studio/05-example-microservice-solution.png b/docs/en/Community-Articles/2023-06-05-Kubernetes-Integration-Abp-Studio/05-example-microservice-solution.png index 663b55a8dc..0b127ef725 100644 Binary files a/docs/en/Community-Articles/2023-06-05-Kubernetes-Integration-Abp-Studio/05-example-microservice-solution.png and b/docs/en/Community-Articles/2023-06-05-Kubernetes-Integration-Abp-Studio/05-example-microservice-solution.png differ diff --git a/docs/en/Community-Articles/2023-06-05-Kubernetes-Integration-Abp-Studio/06-abp-studio-kubernetes-tunnel-how-it-works.png b/docs/en/Community-Articles/2023-06-05-Kubernetes-Integration-Abp-Studio/06-abp-studio-kubernetes-tunnel-how-it-works.png index de4c124343..97a95aa672 100644 Binary files a/docs/en/Community-Articles/2023-06-05-Kubernetes-Integration-Abp-Studio/06-abp-studio-kubernetes-tunnel-how-it-works.png and b/docs/en/Community-Articles/2023-06-05-Kubernetes-Integration-Abp-Studio/06-abp-studio-kubernetes-tunnel-how-it-works.png differ diff --git a/docs/en/Community-Articles/2023-07-03-Image-Compression-And-Resize/image-upload-ui.png b/docs/en/Community-Articles/2023-07-03-Image-Compression-And-Resize/image-upload-ui.png index d5fab5a945..53c8d7b458 100644 Binary files a/docs/en/Community-Articles/2023-07-03-Image-Compression-And-Resize/image-upload-ui.png and b/docs/en/Community-Articles/2023-07-03-Image-Compression-And-Resize/image-upload-ui.png differ diff --git a/docs/en/Community-Articles/2023-07-09-Cascading-Option-Loading-With-Extensions/assets/img/extensions-system-document.png b/docs/en/Community-Articles/2023-07-09-Cascading-Option-Loading-With-Extensions/assets/img/extensions-system-document.png index 7f806ec42d..c752d7c08c 100644 Binary files a/docs/en/Community-Articles/2023-07-09-Cascading-Option-Loading-With-Extensions/assets/img/extensions-system-document.png and b/docs/en/Community-Articles/2023-07-09-Cascading-Option-Loading-With-Extensions/assets/img/extensions-system-document.png differ diff --git a/docs/en/Community-Articles/2023-07-09-Cascading-Option-Loading-With-Extensions/assets/img/folder-structure.png b/docs/en/Community-Articles/2023-07-09-Cascading-Option-Loading-With-Extensions/assets/img/folder-structure.png index 2d3a828773..3d10f03cf2 100644 Binary files a/docs/en/Community-Articles/2023-07-09-Cascading-Option-Loading-With-Extensions/assets/img/folder-structure.png and b/docs/en/Community-Articles/2023-07-09-Cascading-Option-Loading-With-Extensions/assets/img/folder-structure.png differ diff --git a/docs/en/Community-Articles/2023-07-09-Cascading-Option-Loading-With-Extensions/assets/img/rent-form-without-contribution.png b/docs/en/Community-Articles/2023-07-09-Cascading-Option-Loading-With-Extensions/assets/img/rent-form-without-contribution.png index e29d525f7b..84a47e28d2 100644 Binary files a/docs/en/Community-Articles/2023-07-09-Cascading-Option-Loading-With-Extensions/assets/img/rent-form-without-contribution.png and b/docs/en/Community-Articles/2023-07-09-Cascading-Option-Loading-With-Extensions/assets/img/rent-form-without-contribution.png differ diff --git a/docs/en/Community-Articles/2023-07-09-Cascading-Option-Loading-With-Extensions/assets/img/ts-config-file.png b/docs/en/Community-Articles/2023-07-09-Cascading-Option-Loading-With-Extensions/assets/img/ts-config-file.png index 6b06e8ca90..2ee9ccf13f 100644 Binary files a/docs/en/Community-Articles/2023-07-09-Cascading-Option-Loading-With-Extensions/assets/img/ts-config-file.png and b/docs/en/Community-Articles/2023-07-09-Cascading-Option-Loading-With-Extensions/assets/img/ts-config-file.png differ diff --git a/docs/en/Community-Articles/2023-08-07-Basic-Theme-Dark-Mode/basictheme-dark-login.png b/docs/en/Community-Articles/2023-08-07-Basic-Theme-Dark-Mode/basictheme-dark-login.png index 0ee18b54b9..69d5afa8c5 100644 Binary files a/docs/en/Community-Articles/2023-08-07-Basic-Theme-Dark-Mode/basictheme-dark-login.png and b/docs/en/Community-Articles/2023-08-07-Basic-Theme-Dark-Mode/basictheme-dark-login.png differ diff --git a/docs/en/Community-Articles/2023-08-07-Basic-Theme-Dark-Mode/basictheme-dark-settings.png b/docs/en/Community-Articles/2023-08-07-Basic-Theme-Dark-Mode/basictheme-dark-settings.png index 6d32677c4c..464f48bd84 100644 Binary files a/docs/en/Community-Articles/2023-08-07-Basic-Theme-Dark-Mode/basictheme-dark-settings.png and b/docs/en/Community-Articles/2023-08-07-Basic-Theme-Dark-Mode/basictheme-dark-settings.png differ diff --git a/docs/en/Community-Articles/2023-08-07-Basic-Theme-Dark-Mode/basictheme-dark-users.png b/docs/en/Community-Articles/2023-08-07-Basic-Theme-Dark-Mode/basictheme-dark-users.png index 67973f8a10..31cb010169 100644 Binary files a/docs/en/Community-Articles/2023-08-07-Basic-Theme-Dark-Mode/basictheme-dark-users.png and b/docs/en/Community-Articles/2023-08-07-Basic-Theme-Dark-Mode/basictheme-dark-users.png differ diff --git a/docs/en/Community-Articles/2023-08-12-ABP-Commercial-GDPR-Module-Overview/cover-image.png b/docs/en/Community-Articles/2023-08-12-ABP-Commercial-GDPR-Module-Overview/cover-image.png index a733b688f6..f60b514203 100644 Binary files a/docs/en/Community-Articles/2023-08-12-ABP-Commercial-GDPR-Module-Overview/cover-image.png and b/docs/en/Community-Articles/2023-08-12-ABP-Commercial-GDPR-Module-Overview/cover-image.png differ diff --git a/docs/en/Community-Articles/2023-08-12-ABP-Commercial-GDPR-Module-Overview/personal-data-download.png b/docs/en/Community-Articles/2023-08-12-ABP-Commercial-GDPR-Module-Overview/personal-data-download.png index 2371e31bed..afb1a18165 100644 Binary files a/docs/en/Community-Articles/2023-08-12-ABP-Commercial-GDPR-Module-Overview/personal-data-download.png and b/docs/en/Community-Articles/2023-08-12-ABP-Commercial-GDPR-Module-Overview/personal-data-download.png differ diff --git a/docs/en/Community-Articles/2023-08-12-ABP-Commercial-GDPR-Module-Overview/personal-data-files.png b/docs/en/Community-Articles/2023-08-12-ABP-Commercial-GDPR-Module-Overview/personal-data-files.png index 66edf52dff..8d9467c48e 100644 Binary files a/docs/en/Community-Articles/2023-08-12-ABP-Commercial-GDPR-Module-Overview/personal-data-files.png and b/docs/en/Community-Articles/2023-08-12-ABP-Commercial-GDPR-Module-Overview/personal-data-files.png differ diff --git a/docs/en/Community-Articles/2023-09-20-Moving-Background-Job-Execution-To-A-Separate-Application/images/1.png b/docs/en/Community-Articles/2023-09-20-Moving-Background-Job-Execution-To-A-Separate-Application/images/1.png index 37089353eb..31f62a51ee 100644 Binary files a/docs/en/Community-Articles/2023-09-20-Moving-Background-Job-Execution-To-A-Separate-Application/images/1.png and b/docs/en/Community-Articles/2023-09-20-Moving-Background-Job-Execution-To-A-Separate-Application/images/1.png differ diff --git a/docs/en/Community-Articles/2023-10-30-NET-8-ASP-NET-Core-Metrics/built-in-metric-response.png b/docs/en/Community-Articles/2023-10-30-NET-8-ASP-NET-Core-Metrics/built-in-metric-response.png index 035e76de7d..ae5751c688 100644 Binary files a/docs/en/Community-Articles/2023-10-30-NET-8-ASP-NET-Core-Metrics/built-in-metric-response.png and b/docs/en/Community-Articles/2023-10-30-NET-8-ASP-NET-Core-Metrics/built-in-metric-response.png differ diff --git a/docs/en/Community-Articles/2023-10-30-NET-8-ASP-NET-Core-Metrics/built-in-metrics.png b/docs/en/Community-Articles/2023-10-30-NET-8-ASP-NET-Core-Metrics/built-in-metrics.png index 7cf3a1896d..9fce4f3da0 100644 Binary files a/docs/en/Community-Articles/2023-10-30-NET-8-ASP-NET-Core-Metrics/built-in-metrics.png and b/docs/en/Community-Articles/2023-10-30-NET-8-ASP-NET-Core-Metrics/built-in-metrics.png differ diff --git a/docs/en/Community-Articles/2023-10-30-NET-8-ASP-NET-Core-Metrics/metrics-endpoint.png b/docs/en/Community-Articles/2023-10-30-NET-8-ASP-NET-Core-Metrics/metrics-endpoint.png index 70933e0f6e..ef0842ff90 100644 Binary files a/docs/en/Community-Articles/2023-10-30-NET-8-ASP-NET-Core-Metrics/metrics-endpoint.png and b/docs/en/Community-Articles/2023-10-30-NET-8-ASP-NET-Core-Metrics/metrics-endpoint.png differ diff --git a/docs/en/Community-Articles/2023-11-03-ASPNET8-authentication-and-authorization/identity_endpoints_scaffold.png b/docs/en/Community-Articles/2023-11-03-ASPNET8-authentication-and-authorization/identity_endpoints_scaffold.png index 951f6f1da6..9330b47645 100644 Binary files a/docs/en/Community-Articles/2023-11-03-ASPNET8-authentication-and-authorization/identity_endpoints_scaffold.png and b/docs/en/Community-Articles/2023-11-03-ASPNET8-authentication-and-authorization/identity_endpoints_scaffold.png differ diff --git a/docs/en/Community-Articles/2023-11-03-ASPNET8-authentication-and-authorization/new-identity-endpoints.png b/docs/en/Community-Articles/2023-11-03-ASPNET8-authentication-and-authorization/new-identity-endpoints.png index b8ac5021ee..38ba0746f4 100644 Binary files a/docs/en/Community-Articles/2023-11-03-ASPNET8-authentication-and-authorization/new-identity-endpoints.png and b/docs/en/Community-Articles/2023-11-03-ASPNET8-authentication-and-authorization/new-identity-endpoints.png differ diff --git a/docs/en/Community-Articles/2023-11-06-Blazor-Fullstack-Web-Ui/cover-image.png b/docs/en/Community-Articles/2023-11-06-Blazor-Fullstack-Web-Ui/cover-image.png index b3f1d6920e..dc8a251743 100644 Binary files a/docs/en/Community-Articles/2023-11-06-Blazor-Fullstack-Web-Ui/cover-image.png and b/docs/en/Community-Articles/2023-11-06-Blazor-Fullstack-Web-Ui/cover-image.png differ diff --git a/docs/en/Community-Articles/2023-11-06-Blazor-Fullstack-Web-Ui/image-20231106172638604.png b/docs/en/Community-Articles/2023-11-06-Blazor-Fullstack-Web-Ui/image-20231106172638604.png index f28987d536..ed48e95257 100644 Binary files a/docs/en/Community-Articles/2023-11-06-Blazor-Fullstack-Web-Ui/image-20231106172638604.png and b/docs/en/Community-Articles/2023-11-06-Blazor-Fullstack-Web-Ui/image-20231106172638604.png differ diff --git a/docs/en/Community-Articles/2023-11-06-EF-Core_Hierarchy-Id/hierarchy-tree.png b/docs/en/Community-Articles/2023-11-06-EF-Core_Hierarchy-Id/hierarchy-tree.png index e22ed9781c..8fb2e6e008 100644 Binary files a/docs/en/Community-Articles/2023-11-06-EF-Core_Hierarchy-Id/hierarchy-tree.png and b/docs/en/Community-Articles/2023-11-06-EF-Core_Hierarchy-Id/hierarchy-tree.png differ diff --git a/docs/en/Community-Articles/2024-01-04-CLI-Online-Translate/deepl.jpg b/docs/en/Community-Articles/2024-01-04-CLI-Online-Translate/deepl.jpg index c54b9840f0..b944b25c51 100644 Binary files a/docs/en/Community-Articles/2024-01-04-CLI-Online-Translate/deepl.jpg and b/docs/en/Community-Articles/2024-01-04-CLI-Online-Translate/deepl.jpg differ diff --git a/docs/en/Community-Articles/2024-01-15-Abp-Supports-NET8/cover.png b/docs/en/Community-Articles/2024-01-15-Abp-Supports-NET8/cover.png index 0f719b4b0b..15a121a959 100644 Binary files a/docs/en/Community-Articles/2024-01-15-Abp-Supports-NET8/cover.png and b/docs/en/Community-Articles/2024-01-15-Abp-Supports-NET8/cover.png differ diff --git a/docs/en/Community-Articles/2024-01-18-ABP-Now-Supports-Keyed-Services/cover-image.png b/docs/en/Community-Articles/2024-01-18-ABP-Now-Supports-Keyed-Services/cover-image.png index 56b04d353c..aec71f7d7a 100644 Binary files a/docs/en/Community-Articles/2024-01-18-ABP-Now-Supports-Keyed-Services/cover-image.png and b/docs/en/Community-Articles/2024-01-18-ABP-Now-Supports-Keyed-Services/cover-image.png differ diff --git a/docs/en/Community-Articles/2024-02-12-Global-Error-Handling-in-Angular/error-image-1.png b/docs/en/Community-Articles/2024-02-12-Global-Error-Handling-in-Angular/error-image-1.png index 3fca22963c..cc0a8d2c9f 100644 Binary files a/docs/en/Community-Articles/2024-02-12-Global-Error-Handling-in-Angular/error-image-1.png and b/docs/en/Community-Articles/2024-02-12-Global-Error-Handling-in-Angular/error-image-1.png differ diff --git a/docs/en/Community-Articles/2024-02-12-Global-Error-Handling-in-Angular/error_handling.jpg b/docs/en/Community-Articles/2024-02-12-Global-Error-Handling-in-Angular/error_handling.jpg index 5e89052802..cc21b0db27 100644 Binary files a/docs/en/Community-Articles/2024-02-12-Global-Error-Handling-in-Angular/error_handling.jpg and b/docs/en/Community-Articles/2024-02-12-Global-Error-Handling-in-Angular/error_handling.jpg differ diff --git a/docs/en/Community-Articles/2024-03-02-Using-Testcontainers-In-ABP-Unit-Test/POST.md b/docs/en/Community-Articles/2024-03-02-Using-Testcontainers-In-ABP-Unit-Test/POST.md new file mode 100644 index 0000000000..d319cf709f --- /dev/null +++ b/docs/en/Community-Articles/2024-03-02-Using-Testcontainers-In-ABP-Unit-Test/POST.md @@ -0,0 +1,209 @@ +# Using Testcontainers in ABP Unit Test + +## What is Testcontainers? + +Testcontainers is a library that provides easy and lightweight APIs for bootstrapping local development and test dependencies with real services wrapped in Docker containers. + +Using Testcontainers, you can write tests that depend on the same services you use in production without mocks or in-memory services. + +Get more information about Testcontainers from [https://testcontainers.com/](https://testcontainers.com/). + +## How to Use Testcontainers in ABP Unit Test? + +ABP Framework provides a built-in unit test infrastructure, allowing you to add your unit and integration tests easily. + +It uses [SQLite in-memory](https://learn.microsoft.com/en-us/ef/core/testing/testing-without-the-database#sqlite-in-memory) and [EphemeralMongo](https://github.com/asimmon/ephemeral-mongo) as the default database for unit tests and it's enough for most of the cases. However, you may need to test your code with a real database like PostgreSQL, MySQL, SQL Server, etc. + +In this article, I will show you how to use Testcontainers in ABP unit tests to test your code with a real database from a Docker container. + +> The Testcontainers will pull the Docker images of the databases you want to use. You can pull them manually before running the tests to speed them up. + +```bash +docker pull mcr.microsoft.com/mssql/server:2019-CU18-ubuntu-20.04 +docker pull mongo:6.0 +``` + +### Code Changes For Entity Framework Core Tests + +1. Remove `Volo.Abp.EntityFrameworkCore.Sqlite` package and add the `Testcontainers.MsSql` package to the `MyProjectName.EntityFrameworkCore.Tests` project. + +```csharp + + + + + + net8.0 + enable + MyCompanyName.MyProjectName + + + + + + + + + + + + + +``` + +2. Update `MyProjectNameEntityFrameworkCoreFixture` class as shown below: + +We start an SQL Server container in the `InitializeAsync` method and dispose of it in the `DisposeAsync` method. The `GetRandomConnectionString` method sets a random database for each test. + +```csharp +using System; +using System.Threading.Tasks; +using Testcontainers.MsSql; +using Xunit; + +namespace MyCompanyName.MyProjectName.EntityFrameworkCore; + +public class MyProjectNameEntityFrameworkCoreFixture : IAsyncLifetime +{ + private readonly static MsSqlContainer _msSqlContainer = new MsSqlBuilder().Build(); + + public async Task InitializeAsync() + { + await _msSqlContainer.StartAsync(); + } + + public static string GetRandomConnectionString() + { + var randomDbName = "Database=Db_" + Guid.NewGuid().ToString("N"); + return _msSqlContainer.GetConnectionString().Replace("Database=master", randomDbName, StringComparison.OrdinalIgnoreCase); + } + + public async Task DisposeAsync() + { + await _msSqlContainer.DisposeAsync().AsTask(); + } +} +``` + +3. Update `MyProjectNameEntityFrameworkCoreTestModule` class as shown below: + +```csharp +using Microsoft.EntityFrameworkCore; +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.EntityFrameworkCore; +using Volo.Abp.FeatureManagement; +using Volo.Abp.Modularity; +using Volo.Abp.PermissionManagement; +using Volo.Abp.SettingManagement; +using Volo.Abp.Uow; + +namespace MyCompanyName.MyProjectName.EntityFrameworkCore; + +[DependsOn( + typeof(MyProjectNameApplicationTestModule), + typeof(MyProjectNameEntityFrameworkCoreModule) + )] +public class MyProjectNameEntityFrameworkCoreTestModule : AbpModule +{ + public override void ConfigureServices(ServiceConfigurationContext context) + { + ConfigureMsSqlDatabase(context.Services); + } + + private void ConfigureMsSqlDatabase(IServiceCollection services) + { + var connectionString = MyProjectNameEntityFrameworkCoreFixture.GetRandomConnectionString(); + using (var context = new MyProjectNameDbContext(new DbContextOptionsBuilder() + .UseSqlServer(connectionString) + .Options)) + { + context.Database.Migrate(); + } + services.Configure(options => + { + options.Configure(context => + { + context.DbContextOptions.UseSqlServer(connectionString); + }); + }); + } +} +``` + +The EF Core unit tests results will be like the following: + +![ef core](efcore.png) + +### Code Changes For MongoDB Tests + +1. Remove `EphemeralMongo` related packages and add the `Testcontainers.MongoDb` package to the `MyProjectName.EntityFrameworkCore.Tests` project. + +```csharp + + + + + + net8.0 + enable + MyCompanyName.MyProjectName + + + + + + + + + + + + + +``` + +2. Update `MyProjectNameMongoDbFixture` class as shown below: + +We start a MongoDB container in the `InitializeAsync` method and dispose of it in the `DisposeAsync` method. The `GetRandomConnectionString` method sets a random database for each test. + +```csharp +using System; +using System.Threading.Tasks; +using Testcontainers.MongoDb; +using Xunit; + +namespace MyCompanyName.MyProjectName.MongoDB; + +public class MyProjectNameMongoDbFixture : IAsyncLifetime +{ + private readonly static MongoDbContainer _mongoDbContainer = new MongoDbBuilder().WithCommand().Build(); + + public async Task InitializeAsync() + { + await _mongoDbContainer.StartAsync(); + } + + public static string GetRandomConnectionString() + { + var randomDbName = "Db_" + Guid.NewGuid().ToString("N"); + return _mongoDbContainer.GetConnectionString().EnsureEndsWith('/') + randomDbName + "?authSource=admin"; + } + + public async Task DisposeAsync() + { + await _mongoDbContainer.DisposeAsync().AsTask(); + } +} +``` + +The MongoDB unit tests results will be like the following: + +![mongodb](mongodb.png) + +## Summary + +The Testcontainers works well with ABP Framework and it's easy to use. If you need to test your code with a real database, Testcontainers is a good choice for you. + +While it still needs to be faster than in-memory databases, but its advantages are obvious. + +Enjoy testing with Testcontainers! diff --git a/docs/en/Community-Articles/2024-03-02-Using-Testcontainers-In-ABP-Unit-Test/efcore.png b/docs/en/Community-Articles/2024-03-02-Using-Testcontainers-In-ABP-Unit-Test/efcore.png new file mode 100644 index 0000000000..37b93c5e3e Binary files /dev/null and b/docs/en/Community-Articles/2024-03-02-Using-Testcontainers-In-ABP-Unit-Test/efcore.png differ diff --git a/docs/en/Community-Articles/2024-03-02-Using-Testcontainers-In-ABP-Unit-Test/mongodb.png b/docs/en/Community-Articles/2024-03-02-Using-Testcontainers-In-ABP-Unit-Test/mongodb.png new file mode 100644 index 0000000000..6223a8630b Binary files /dev/null and b/docs/en/Community-Articles/2024-03-02-Using-Testcontainers-In-ABP-Unit-Test/mongodb.png differ diff --git a/docs/en/Getting-Started-Setup-Environment-Single-Layer.md b/docs/en/Getting-Started-Setup-Environment-Single-Layer.md index 6a1483d278..3652fc5701 100644 --- a/docs/en/Getting-Started-Setup-Environment-Single-Layer.md +++ b/docs/en/Getting-Started-Setup-Environment-Single-Layer.md @@ -30,7 +30,7 @@ The following tools should be installed on your development machine: * An IDE (e.g. [Visual Studio](https://visualstudio.microsoft.com/vs/)) that supports [.NET 8.0+](https://dotnet.microsoft.com/download/dotnet) development. {{ if UI != "Blazor" }} -* [Node v16 or v18](https://nodejs.org/) +* [Node v16+](https://nodejs.org/) * [Yarn v1.20+ (not v2)](https://classic.yarnpkg.com/en/docs/install) [1](#f-yarn) or npm v6+ (already installed with Node) {{ end }} diff --git a/docs/en/Getting-Started-Setup-Environment.md b/docs/en/Getting-Started-Setup-Environment.md index 2c1b7c4155..0d33e8abe2 100644 --- a/docs/en/Getting-Started-Setup-Environment.md +++ b/docs/en/Getting-Started-Setup-Environment.md @@ -30,7 +30,7 @@ The following tools should be installed on your development machine: * An IDE (e.g. [Visual Studio](https://visualstudio.microsoft.com/vs/)) that supports [.NET 8.0+](https://dotnet.microsoft.com/download/dotnet) development. {{ if UI != "Blazor" }} -* [Node v16 or v18](https://nodejs.org/) +* [Node v16+](https://nodejs.org/) * [Yarn v1.20+ (not v2)](https://classic.yarnpkg.com/en/docs/install) [1](#f-yarn) or npm v6+ (already installed with Node) {{ end }} {{ if Tiered == "Yes" }} diff --git a/docs/en/Migration-Guides/Abp-8-2-Blazor-Web-App.md b/docs/en/Migration-Guides/Abp-8-2-Blazor-Web-App.md new file mode 100644 index 0000000000..239bbf70c8 --- /dev/null +++ b/docs/en/Migration-Guides/Abp-8-2-Blazor-Web-App.md @@ -0,0 +1,223 @@ +# Migrating to Blazor Web App + +ASP.NET Blazor in .NET 8 allows you to use a single powerful component model to handle all of your web UI needs, including server-side rendering, client-side rendering, streaming rendering, progressive enhancement, and much more! + +ABP v8.2.x supports the new Blazor Web App template, in this guide, we will introduce some new changes and features in the new Blazor Web App template. + +## Create a new Blazor Web App + +> Please make sure you have installed the 8.2.x version of the ABP CLI. + +You can create a new Blazor Web App using the `abp new BookStore -t app -u blazor-webapp` command. The `-u blazor-webapp` option is used to select the Blazor Web App template. + +Of course, you can also create Blazor WASM and Blazor Server applications. We have changed them to use the new Blazor Web App mode: + +````csharp +abp new BookStore -t app -u blazor +abp new BookStore -t app -u blazor-server +```` + +## Render modes + +The template project use different render modes for different types of projects in the `App.razor` component. + +| Type | Render mode +|----------------|------------------ +| WASM | InteractiveWebAssembly(prerender: false) +| Server | InteractiveServer +| WebApp | InteractiveAuto + +## The key changes of the new Blazor Web App template + +The new Web App template has two projects, each containing a system of [ABP modules](https://docs.abp.io/en/abp/latest/Modules/Index). + +- MyCompanyName.MyProjectName.Blazor.WebApp +- MyCompanyName.MyProjectName.Blazor.WebApp.Client + +### MyCompanyName.MyProjectName.Blazor.WebApp + +The `Blazor.WebApp` is the startup project, and there is an `App.razor` component in the `Blazor.WebApp` project, which is the root component of the Blazor application. + +The main differences between it, and a regular Blazor server project are: + +1. You need to `PreConfigure` the `IsBlazorWebApp` to `true` in `AbpAspNetCoreComponentsWebOptions`: + +````csharp +public override void PreConfigureServices(ServiceConfigurationContext context) +{ + PreConfigure(options => + { + options.IsBlazorWebApp = true; + }); +} +```` + +2. Add related services to the container. Add assembly of `MyProjectNameBlazorClientModule` to the `AdditionalAssemblies` by configuring `AbpRouterOptions`: + +````csharp +public override void ConfigureServices(ServiceConfigurationContext context) +{ + // Add services to the container. + context.Services.AddRazorComponents() + .AddInteractiveServerComponents() + .AddInteractiveWebAssemblyComponents(); + + Configure(options => + { + options.AppAssembly = typeof(MyProjectNameBlazorModule).Assembly; + options.AdditionalAssemblies.Add(typeof(MyProjectNameBlazorClientModule).Assembly); + }); +} +```` + +3. Add `UseAntiforgery` middleware and `MapRazorComponents/AddInteractiveServer/WebAssemblyRenderMode/AddAdditionalAssemblies` in the `OnApplicationInitialization` method. + +````csharp +public override void OnApplicationInitialization(ApplicationInitializationContext context) +{ + var env = context.GetEnvironment(); + var app = context.GetApplicationBuilder(); + // ... + + app.UseAntiforgery(); + app.UseAuthorization(); + + app.UseConfiguredEndpoints(builder => + { + builder.MapRazorComponents() + .AddInteractiveServerRenderMode() + .AddInteractiveWebAssemblyRenderMode() + .AddAdditionalAssemblies(builder.ServiceProvider.GetRequiredService>().Value.AdditionalAssemblies.ToArray()); + }); +} +```` + +### MyCompanyName.MyProjectName.Blazor.WebApp.Client + +There is a `Routers.razor` component in the `Blazor.WebApp.Client` project, which is used by the `App.razor` component. + +The main differences between it and a regular Blazor WASM project are: + +1. You need to `PreConfigure` the `IsBlazorWebApp` to `true` in `AbpAspNetCoreComponentsWebOptions`: + +````csharp +public override void PreConfigureServices(ServiceConfigurationContext context) +{ + PreConfigure(options => + { + options.IsBlazorWebApp = true; + }); +} +```` + +2. Use `AddBlazorWebAppServices` to replace `Authentication` code: + +````csharp +private static void ConfigureAuthentication(WebAssemblyHostBuilder builder) +{ + builder.Services.AddBlazorWebAppServices(); +} +```` + +3. Remove the `builder.RootComponents.Add("#ApplicationContainer");` code. + +### MyCompanyName.MyProjectName.Blazor.WebApp.Tiered and MyCompanyName.MyProjectName.Blazor.WebApp.Tiered.Client + +The tiered projects are the same as the WebApp projects, but the authentication configuration is different. + +We need share the `access_token` to `Client` project. + +Add code block to `App.razor` of `MyCompanyName.MyProjectName.Blazor.WebApp.Tiered` as below: + +````csharp +@code{ + [CascadingParameter] + private HttpContext HttpContext { get; set; } = default!; + + [Inject] + private PersistentComponentState PersistentComponentState { get; set; } + + private string? Token { get; set; } = default!; + + protected override async Task OnInitializedAsync() + { + if (HttpContext.User?.Identity?.IsAuthenticated == true) + { + Token = await HttpContext.GetTokenAsync("access_token"); + } + + PersistentComponentState.RegisterOnPersisting(OnPersistingAsync, RenderMode.InteractiveWebAssembly); + } + + async Task OnPersistingAsync() + { + if (!Token.IsNullOrWhiteSpace()) + { + PersistentComponentState.PersistAsJson(PersistentAccessToken.Key, new PersistentAccessToken + { + AccessToken = Token + }); + } + + await Task.CompletedTask; + } +} +```` + +Add `ConfigureAuthentication` to `MyProjectNameBlazorClientModule` of `MyCompanyName.MyProjectName.Blazor.WebApp.Tiered.Client` as below: + +````csharp +private static void ConfigureAuthentication(WebAssemblyHostBuilder builder) +{ + builder.Services.AddBlazorWebAppTieredServices(); +} +```` + +## ABP Bundle + +You need set `IsBlazorWebApp` and `InteractiveAuto` to `true` in the `appsettings.json` file of the `MyCompanyName.MyProjectName.Blazor.WebApp.Client` project: + +````json +{ + "AbpCli": { + "Bundle": { + "Mode": "BundleAndMinify", /* Options: None, Bundle, BundleAndMinify */ + "Name": "global", + "IsBlazorWebApp": true, + "InteractiveAuto": true, + "Parameters": { + + } + } + } +} +```` + +For Blazor WASM and Blazor Server applications, you need to set `IsBlazorWebApp` to `true` and not need to change the `InteractiveAuto`: + +````json +{ + "AbpCli": { + "Bundle": { + "Mode": "BundleAndMinify", /* Options: None, Bundle, BundleAndMinify */ + "Name": "global", + "IsBlazorWebApp": true, + "Parameters": { + + } + } + } +} +```` + +Then run the `abp bundle` command to under the `MyCompanyName.MyProjectName.Blazor.WebApp.Client` project to generate the `global.css` and `global.js` files. + +## Troubleshooting + +If you encounter any problems during the migration, please create a new template project and compare the differences between the new and old projects. + +# References + +- [ASP.NET Core Blazor render modes](https://learn.microsoft.com/en-us/aspnet/core/blazor/components/render-modes?view=aspnetcore-8.0) +- [Migrate from ASP.NET Core Blazor 7.0 to 8.0](https://learn.microsoft.com/en-us/aspnet/core/migration/70-80?view=aspnetcore-8.0&tabs=visual-studio#blazor) +- [Full stack web UI with Blazor in .NET 8 | .NET Conf 2023](https://www.youtube.com/watch?v=YwZdtLEtROA) diff --git a/docs/en/Migration-Guides/images/integration-postfix-not-removed.png b/docs/en/Migration-Guides/images/integration-postfix-not-removed.png index 183a7a57c2..6ec19d7121 100644 Binary files a/docs/en/Migration-Guides/images/integration-postfix-not-removed.png and b/docs/en/Migration-Guides/images/integration-postfix-not-removed.png differ diff --git a/docs/en/Migration-Guides/images/openiddict-pro-application-modal.png b/docs/en/Migration-Guides/images/openiddict-pro-application-modal.png index 10fe722053..12ac682084 100644 Binary files a/docs/en/Migration-Guides/images/openiddict-pro-application-modal.png and b/docs/en/Migration-Guides/images/openiddict-pro-application-modal.png differ diff --git a/docs/en/Migration-Guides/images/openiddict-pro-application-timelife-modal.png b/docs/en/Migration-Guides/images/openiddict-pro-application-timelife-modal.png index b951c1f93d..4c0523325b 100644 Binary files a/docs/en/Migration-Guides/images/openiddict-pro-application-timelife-modal.png and b/docs/en/Migration-Guides/images/openiddict-pro-application-timelife-modal.png differ diff --git a/docs/en/Migration-Guides/images/route-4.png b/docs/en/Migration-Guides/images/route-4.png index 0d57a57f3e..8723e7d0d6 100644 Binary files a/docs/en/Migration-Guides/images/route-4.png and b/docs/en/Migration-Guides/images/route-4.png differ diff --git a/docs/en/Migration-Guides/images/route-before-4.png b/docs/en/Migration-Guides/images/route-before-4.png index 48d87c60c0..b27dd18476 100644 Binary files a/docs/en/Migration-Guides/images/route-before-4.png and b/docs/en/Migration-Guides/images/route-before-4.png differ diff --git a/docs/en/Modules/OpenIddict.md b/docs/en/Modules/OpenIddict.md index ef8dfe92ef..fe0b8270d3 100644 --- a/docs/en/Modules/OpenIddict.md +++ b/docs/en/Modules/OpenIddict.md @@ -215,6 +215,10 @@ This module implements OpenIddict stores: - `IOpenIddictScopeStore` - `IOpenIddictTokenStore` +#### AbpOpenIddictStoreOptions + +You can configure the `PruneIsolationLevel/DeleteIsolationLevel` of `AbpOpenIddictStoreOptions` to set the isolation level for the store operations becasue different databases have different isolation levels. + ##### Repositories The following custom repositories are defined in this module: diff --git a/docs/en/Repositories.md b/docs/en/Repositories.md index 8ed8fda63a..92a4a42807 100644 --- a/docs/en/Repositories.md +++ b/docs/en/Repositories.md @@ -2,13 +2,13 @@ "*Mediates between the domain and data mapping layers using a collection-like interface for accessing domain objects*" (Martin Fowler). -Repositories, in practice, are used to perform database operations for domain objects (see [Entities](Entities.md)). Generally, a separated repository is used for each **aggregate root** or entity. +Repositories, in practice, are used to perform database operations for domain objects (see [Entities](Entities.md)). Generally, a separate repository is used for each **aggregate root** or entity. ## Generic Repositories ABP can provide a **default generic repository** for each aggregate root or entity. You can [inject](Dependency-Injection.md) `IRepository` into your service and perform standard **CRUD** operations. -> Database provider layer should be properly configured to be able to use the default generic repositories. It is **already done** if you've created your project using the startup templates. If not, refer to the database provider documents ([EF Core](Entity-Framework-Core.md) / [MongoDB](MongoDB.md)) to configure it. +> The database provider layer should be properly configured to be able to use the default generic repositories. It is **already done** if you've created your project using the startup templates. If not, refer to the database provider documents ([EF Core](Entity-Framework-Core.md) / [MongoDB](MongoDB.md)) to configure it. **Example usage of a default generic repository:** @@ -52,25 +52,25 @@ In this example; ### Standard Repository Methods -Generic Repositories provides some standard CRUD features out of the box: +Generic Repositories provide some standard CRUD features out of the box: * `GetAsync`: Returns a single entity by its `Id` or a predicate (lambda expression). * Throws `EntityNotFoundException` if the requested entity was not found. - * Throws `InvalidOperationException` if there are multiple entities with given predicate. + * Throws `InvalidOperationException` if there are multiple entities with the given predicate. * `FindAsync`: Returns a single entity by its `Id` or a predicate (lambda expression). * Returns `null` if the requested entity was not found. - * Throws `InvalidOperationException` if there are multiple entities with given predicate. -* `InsertAsync`: Inserts a new entity to the database. + * Throws `InvalidOperationException` if there are multiple entities with the given predicate. +* `InsertAsync`: Inserts a new entity into the database. * `UpdateAsync`: Updates an existing entity in the database. -* `DeleteAsync`: Deletes the given entity from database. - * This method has an overload that takes a predicate (lambda expression) to delete multiple entities satisfies the given condition. +* `DeleteAsync`: Deletes the given entity from the database. + * This method has an overload that takes a predicate (lambda expression) to delete multiple entities to satisfy the given condition. * `GetListAsync`: Returns the list of all entities in the database. -* `GetPagedListAsync`: Returns a limited list of entities. Gets `skipCount`, `maxResultCount` and `sorting` parameters. -* `GetCountAsync`: Gets count of all entities in the database. +* `GetPagedListAsync`: Returns a limited list of entities. Gets `skipCount`, `maxResultCount`, and `sorting` parameters. +* `GetCountAsync`: Gets the count of all entities in the database. There are overloads of these methods. -* Provides `UpdateAsync` and `DeleteAsync` methods to update or delete an entity by entity object or it's id. +* Provides `UpdateAsync` and `DeleteAsync` methods to update or delete an entity by entity object or its id. * Provides `DeleteAsync` method to delete multiple entities by a filter. ### Querying / LINQ over the Repositories @@ -142,7 +142,7 @@ Any standard LINQ method can be used over the `IQueryable` returned from the rep > This sample uses `ToList()` method, but it is **strongly suggested to use the asynchronous methods** to perform database queries, like `ToListAsync()` for this example. See the **`IQueryable` & Async Operations** section to learn how you can do it. -> **Exposing `IQueryable` to outside of a repository** class may leak your data access logic to the application layer. If you want to strictly follow the **layered architecture** principles, you can consider to implement a custom repository class and wrap your data access logic inside your repository class. You can see the ***Custom Repositories*** section to learn how to create custom repository classes for your application. +> **Exposing `IQueryable` outside of a repository** class may leak your data access logic to the application layer. If you want to strictly follow the **layered architecture** principles, you can consider to implement a custom repository class and wrap your data access logic inside your repository class. You can see the ***Custom Repositories*** section to learn how to create custom repository classes for your application. ### Bulk Operations @@ -158,27 +158,27 @@ These methods work with multiple entities and can take advantage of bulk operati ### Soft / Hard Delete -`DeleteAsync` method of the repository doesn't delete the entity if the entity is a **soft-delete** entity (that implements `ISoftDelete`). Soft-delete entities are marked as "deleted" in the database. Data Filter system ensures that the soft deleted entities are not retrieved from database normally. +`DeleteAsync` method of the repository doesn't delete the entity if the entity is a **soft-delete** entity (that implements `ISoftDelete`). Soft-delete entities are marked as "deleted" in the database. The Data Filter system ensures that the soft deleted entities are not retrieved from the database normally. -If your entity is a soft-delete entity, you can use the `HardDeleteAsync` method to physically delete the entity from database in case of you need it. +If your entity is a soft-delete entity, you can use the `HardDeleteAsync` method to physically delete the entity from the database in case you need it. > See the [Data Filtering](Data-Filtering.md) documentation for more about soft-delete. ### Delete Direct -`DeleteDirectAsync` method of the repository deletes all entities those fit to the given predicate. It directly deletes entities from database, without fetching them. +`DeleteDirectAsync` method of the repository deletes all entities that fit to the given predicate. It directly deletes entities from the database, without fetching them. -Some features (like soft-delete, multi-tenancy and audit logging) won't work, so use this method carefully when you need it. Use the `DeleteAsync` method if you need to these features. +Some features (like soft-delete, multi-tenancy, and audit logging) won't work, so use this method carefully when you need it. Use the `DeleteAsync` method if you need these features. -> Currently only [EF Core supports it](https://learn.microsoft.com/en-us/ef/core/what-is-new/ef-core-7.0/whatsnew#basic-executedelete-examples), For the ORMs that don't support direct delete, we will fallback to the existing `DeleteAsync` method. +> Currently only [EF Core supports it](https://learn.microsoft.com/en-us/ef/core/what-is-new/ef-core-7.0/whatsnew#basic-executedelete-examples), For the ORMs that don't support direct delete, we will fall back to the existing `DeleteAsync` method. -### Ensure Entities Exists +### Ensure Entities Exist The `EnsureExistsAsync` extension method accepts entity id or entities query expression to ensure entities exist, otherwise, it will throw `EntityNotFoundException`. ### Enabling / Disabling the Change Tracking -ABP provides repository extension methods and attributes those can be used to control the change tracking behavior for queried entities in the underlying database provider. +ABP provides repository extension methods and attributes that can be used to control the change-tracking behavior for queried entities in the underlying database provider. Disabling change tracking can gain performance if you query many entities from the database for read-only purposes. Querying single or a few entities won't make much performance difference, but you are free to use it whenever you like. @@ -215,13 +215,13 @@ public class MyDemoService : ApplicationService } ```` -> `DisableTracking` extension method returns a `IDisposable` object, so you can safely **restore** the change tracking behavior to the **previous state** one the `using` block ends. Basically, `DisableTracking` method ensures that the change tracking is disabled inside the `using` block, but doesn't affect outside of the `using` block. That means, if change tracking was already disabled, `DisableTracking` and the disposable return value do nothing. +> `DisableTracking` extension method returns an `IDisposable` object, so you can safely **restore** the change tracking behavior to the **previous state** once the `using` block ends. Basically, `DisableTracking` method ensures that the change tracking is disabled inside the `using` block, but doesn't affect outside of the `using` block. That means, if change tracking was already disabled, `DisableTracking` and the disposable return value do nothing. -`EnableTracking()` method works exactly opposite to the `DisableTracking()` method. You typically won't use it (because the change tracking is already enabled by default), but it is there in case of you need that. +`EnableTracking()` method works exactly opposite to the `DisableTracking()` method. You typically won't use it (because the change tracking is already enabled by default), but it is there in case you need that. #### Attributes for Change Tracking -You typically use the `DisableTracking()` method for the application service methods those only returns data, but doesn't make any change on entities. For such cases, you can use the `DisableEntityChangeTracking` attribute on your method/class as a shortcut to disable the change tracking for whole method body. +You typically use the `DisableTracking()` method for the application service methods that only return data, but don't make any change to entities. For such cases, you can use the `DisableEntityChangeTracking` attribute on your method/class as a shortcut to disable the change tracking for the whole method body. **Example: Using the `DisableEntityChangeTracking` attribute on a method** @@ -240,12 +240,12 @@ public virtual async Task> GetListAsync() `DisableEntityChangeTracking` and `EnableEntityChangeTracking` attributes can be used on a **method** or on a **class** (which affects all of the class methods). -ABP uses dynamic proxying to make these attributes working. There are some rules here: +ABP uses dynamic proxying to make these attributes work. There are some rules here: * If you are **not injecting** the service over an interface (like `IPersonAppService`), then the methods of the service must be `virtual`. Otherwise, [dynamic proxy / interception](Dynamic-Proxying-Interceptors.md) system can not work. * Only `async` methods (methods returning a `Task` or `Task`) are intercepted. -> Change tracking behavior doesn't affect tracking entity objects returned from `InsertAsync` and `UpdateAsync` methods. The objects returned from these methods are always tracked (if the underlying provider has the change tracking feature) and any change you made to these objects are saved into the database. +> Change tracking behavior doesn't affect tracking entity objects returned from `InsertAsync` and `UpdateAsync` methods. The objects returned from these methods are always tracked (if the underlying provider has the change tracking feature) and any change you make to these objects are saved into the database. ## Other Generic Repository Types @@ -255,13 +255,13 @@ Standard `IRepository` interface exposes the standard `IQueryable ABP provides `IBasicRepository` and `IBasicRepository` interfaces to support such scenarios. You can extend these interfaces (and optionally derive from `BasicRepositoryBase`) to create custom repositories for your entities. -Depending on `IBasicRepository` but not depending on `IRepository` has an advantage to make possible to work with all data sources even if they don't support `IQueryable`. +Depending on `IBasicRepository` but not depending on `IRepository` has the advantage of making it possible to work with all data sources even if they don't support `IQueryable`. -Major vendors, like Entity Framework, NHibernate or MongoDB already support `IQueryable`. So, working with `IRepository` is the **suggested** way for typical applications. But reusable module developers may consider `IBasicRepository` to support a wider range of data sources. +Major vendors, like Entity Framework, NHibernate, or MongoDB already support `IQueryable`. So, working with `IRepository` is the **suggested** way for typical applications. However reusable module developers may consider `IBasicRepository` to support a wider range of data sources. ### Read Only Repositories -There are also `IReadOnlyRepository` and `IReadOnlyBasicRepository` interfaces for who only want to depend on querying capabilities of the repositories. +There are also `IReadOnlyRepository` and `IReadOnlyBasicRepository` interfaces for those who only want to depend on the querying capabilities of the repositories. The `IReadOnlyRepository` derives the `IReadOnlyBasicRepository` and provides the following properties and methods as well: @@ -276,27 +276,27 @@ Methods: - `WithDetails()` 1 overload - `WithDetailsAsync()` 1 overload -Where as the `IReadOnlyBasicRepository` provides the following methods: +Whereas the `IReadOnlyBasicRepository` provides the following methods: - `GetCountAsync()` - `GetListAsync()` - `GetPagedListAsync()` -They can all be seen as below: +They can all be seen below: ![generic-repositories](images/generic-repositories.png) #### Read Only Repositories behavior in Entity Framework Core -Entity Framework Core read-only repository implementation uses [EF Core's No-Tracking feature](https://learn.microsoft.com/en-us/ef/core/querying/tracking#no-tracking-queries). That means the entities returned from the repository will not be tracked by the EF Core [change tracker](https://learn.microsoft.com/en-us/ef/core/change-tracking/), because it is expected that you won't update entities queried from a read-only repository. If you need to track the entities, you can still use the [AsTracking()](https://learn.microsoft.com/en-us/dotnet/api/microsoft.entityframeworkcore.entityframeworkqueryableextensions.astracking) extension method on the LINQ expression, or `EnableTracking()` extension method on the repository object (See *Enabling / Disabling the Change Tracking* section in this document). +Entity Framework Core read-only repository implementation uses [EF Core's No-Tracking feature](https://learn.microsoft.com/en-us/ef/core/querying/tracking#no-tracking-queries). That means the entities returned from the repository will not be tracked by the EF Core [change tracker](https://learn.microsoft.com/en-us/ef/core/change-tracking/) because it is expected that you won't update entities queried from a read-only repository. If you need to track the entities, you can still use the [AsTracking()](https://learn.microsoft.com/en-us/dotnet/api/microsoft.entityframeworkcore.entityframeworkqueryableextensions.astracking) extension method on the LINQ expression, or `EnableTracking()` extension method on the repository object (See *Enabling / Disabling the Change Tracking* section in this document). -> This behavior works only if the repository object is injected with one of the read-only repository interfaces (`IReadOnlyRepository<...>` or `IReadOnlyBasicRepository<...>`). It won't work if you have injected a standard repository (e.g. `IRepository<...>`) then casted it to a read-only repository interface. +> This behavior works only if the repository object is injected with one of the read-only repository interfaces (`IReadOnlyRepository<...>` or `IReadOnlyBasicRepository<...>`). It won't work if you have injected a standard repository (e.g. `IRepository<...>`) and then cast it to a read-only repository interface. ### Generic Repository without a Primary Key If your entity does not have an Id primary key (it may have a composite primary key for instance) then you cannot use the `IRepository` (or basic/readonly versions) defined above. In that case, you can inject and use `IRepository` for your entity. -> `IRepository` has a few missing methods those normally works with the `Id` property of an entity. Because of the entity has no `Id` property in that case, these methods are not available. One example is the `Get` method that gets an id and returns the entity with given id. However, you can still use `IQueryable` features to query entities by standard LINQ methods. +> `IRepository` has a few missing methods that normally work with the `Id` property of an entity. Because the entity has no `Id` property in that case, these methods are not available. One example is the `Get` method which gets an id and returns the entity with the given id. However, you can still use `IQueryable` features to query entities by standard LINQ methods. ## Custom Repositories @@ -304,7 +304,7 @@ Default generic repositories will be sufficient for most cases. However, you may ### Custom Repository Example -ABP does not force you to implement any interface or inherit from any base class for a repository. It can be just a simple POCO class. However, it's suggested to inherit existing repository interface and classes to make your work easier and get the standard methods out of the box. +ABP does not force you to implement any interface or inherit from any base class for a repository. It can be just a simple POCO class. However, it's suggested to inherit existing repository interfaces and classes to make your work easier and get the standard methods out of the box. #### Custom Repository Interface @@ -348,7 +348,7 @@ You can directly access the data access provider (`DbContext` in this case) to p ## IQueryable & Async Operations -`IRepository` provides `GetQueryableAsync()` to obtain an `IQueryable`, that means you can **directly use LINQ extension methods** on it, as shown in the example of the "*Querying / LINQ over the Repositories*" section above. +`IRepository` provides `GetQueryableAsync()` to obtain an `IQueryable`, which means you can **directly use LINQ extension methods** on it, as shown in the example of the "*Querying / LINQ over the Repositories*" section above. **Example: Using the `Where(...)` and the `ToList()` extension methods** @@ -376,7 +376,7 @@ Based on your requirements and development model, you have the following options **The easiest solution** is to directly add the EF Core package from the project you want to use these async methods. -> Add the [Volo.Abp.EntityFrameworkCore](https://www.nuget.org/packages/Volo.Abp.EntityFrameworkCore) NuGet package to your project, which indirectly reference to the EF Core package. This ensures that you use the correct version of the EF Core compatible to the rest of your application. +> Add the [Volo.Abp.EntityFrameworkCore](https://www.nuget.org/packages/Volo.Abp.EntityFrameworkCore) NuGet package to your project, which indirectly references the EF Core package. This ensures that you use the correct version of the EF Core compatible with the rest of your application. When you add the NuGet package to your project, you can take full power of the EF Core extension methods. @@ -391,7 +391,7 @@ var people = queryable This method is suggested; -* If you are developing an application and you **don't plan to change** EF Core in the future, or you can **tolerate** it if you need to change later. We believe that's reasonable if you are developing a final application. +* If you are developing an application and you **don't plan to change** EF Core in the future, or you can **tolerate** it if you need to change it later. We believe that's reasonable if you are developing a final application. #### MongoDB Case @@ -432,7 +432,7 @@ var queryable = await _bookRepository.GetQueryableAsync(); var count = await queryable.Where(x => x.Name.Contains("A")).CountAsync(); ``` -This is because the `CountAsync()` method in this example is called on a `IQueryable` interface, not on the repository object. See the other options for such cases. +This is because the `CountAsync()` method in this example is called on an `IQueryable` interface, not on the repository object. See the other options for such cases. This method is suggested **wherever possible**. @@ -488,7 +488,7 @@ namespace AbpDemo > `ApplicationService` and `DomainService` base classes already have `AsyncExecuter` properties pre-injected and usable without needing an explicit constructor injection. -ABP Framework executes the query asynchronously using the actual database provider's API. While that is not a usual way to execute a query, it is the best way to use the async API without depending on the database provider. +ABP Framework executes the query asynchronously using the actual database provider's API. While that is not the usual way to execute a query, it is the best way to use the async API without depending on the database provider. This method is suggested; @@ -499,7 +499,7 @@ For example, ABP Framework uses the `IAsyncQueryableExecuter` in the `CrudAppSer ### Option-4: Custom Repository Methods -You can always create custom repository methods and use the database provider specific APIs, like async extension methods here. See [EF Core](Entity-Framework-Core.md) or [MongoDb](MongoDB.md) document for more info about the custom repositories. +You can always create custom repository methods and use the database provider-specific APIs, like async extension methods here. See [EF Core](Entity-Framework-Core.md) or [MongoDb](MongoDB.md) document for more info about the custom repositories. This method is suggested; diff --git a/docs/en/Tutorials/Todo/Single-Layer/todo-efcore-migration-single-layer.png b/docs/en/Tutorials/Todo/Single-Layer/todo-efcore-migration-single-layer.png index 686d8a5f87..fe067e9817 100644 Binary files a/docs/en/Tutorials/Todo/Single-Layer/todo-efcore-migration-single-layer.png and b/docs/en/Tutorials/Todo/Single-Layer/todo-efcore-migration-single-layer.png differ diff --git a/docs/en/Tutorials/Todo/Single-Layer/todo-single-layer-ui-initial.png b/docs/en/Tutorials/Todo/Single-Layer/todo-single-layer-ui-initial.png index a1d113f574..1a46bbefaa 100644 Binary files a/docs/en/Tutorials/Todo/Single-Layer/todo-single-layer-ui-initial.png and b/docs/en/Tutorials/Todo/Single-Layer/todo-single-layer-ui-initial.png differ diff --git a/docs/en/Tutorials/Todo/run-without-iisexpress.png b/docs/en/Tutorials/Todo/run-without-iisexpress.png index 41898e6c00..7713daf004 100644 Binary files a/docs/en/Tutorials/Todo/run-without-iisexpress.png and b/docs/en/Tutorials/Todo/run-without-iisexpress.png differ diff --git a/docs/en/Tutorials/Todo/todo-api.png b/docs/en/Tutorials/Todo/todo-api.png index f9a25f57b5..e698356e40 100644 Binary files a/docs/en/Tutorials/Todo/todo-api.png and b/docs/en/Tutorials/Todo/todo-api.png differ diff --git a/docs/en/Tutorials/Todo/todo-efcore-migration.png b/docs/en/Tutorials/Todo/todo-efcore-migration.png index 9fffeb716b..8c98351e96 100644 Binary files a/docs/en/Tutorials/Todo/todo-efcore-migration.png and b/docs/en/Tutorials/Todo/todo-efcore-migration.png differ diff --git a/docs/en/Tutorials/Todo/todo-list.png b/docs/en/Tutorials/Todo/todo-list.png index 6394dd8f29..f50c950331 100644 Binary files a/docs/en/Tutorials/Todo/todo-list.png and b/docs/en/Tutorials/Todo/todo-list.png differ diff --git a/docs/en/Tutorials/Todo/todo-swagger-ui-initial.png b/docs/en/Tutorials/Todo/todo-swagger-ui-initial.png index 1d3ed405c7..c0b4ae3596 100644 Binary files a/docs/en/Tutorials/Todo/todo-swagger-ui-initial.png and b/docs/en/Tutorials/Todo/todo-swagger-ui-initial.png differ diff --git a/docs/en/Tutorials/Todo/todo-ui-initial.png b/docs/en/Tutorials/Todo/todo-ui-initial.png index 9cc1b2e2be..780fafa15f 100644 Binary files a/docs/en/Tutorials/Todo/todo-ui-initial.png and b/docs/en/Tutorials/Todo/todo-ui-initial.png differ diff --git a/docs/en/Tutorials/images/blazor-add-book-button-2.png b/docs/en/Tutorials/images/blazor-add-book-button-2.png index e6760b7405..beec83e6ea 100644 Binary files a/docs/en/Tutorials/images/blazor-add-book-button-2.png and b/docs/en/Tutorials/images/blazor-add-book-button-2.png differ diff --git a/docs/en/Tutorials/images/blazor-add-book-button.png b/docs/en/Tutorials/images/blazor-add-book-button.png index 58a607d3b1..a28856cd91 100644 Binary files a/docs/en/Tutorials/images/blazor-add-book-button.png and b/docs/en/Tutorials/images/blazor-add-book-button.png differ diff --git a/docs/en/Tutorials/images/blazor-add-books-component.png b/docs/en/Tutorials/images/blazor-add-books-component.png index ec0412d31e..ccb414ec4f 100644 Binary files a/docs/en/Tutorials/images/blazor-add-books-component.png and b/docs/en/Tutorials/images/blazor-add-books-component.png differ diff --git a/docs/en/Tutorials/images/blazor-bookstore-book-list-2.png b/docs/en/Tutorials/images/blazor-bookstore-book-list-2.png index 2dda8471dc..dd94f29fef 100644 Binary files a/docs/en/Tutorials/images/blazor-bookstore-book-list-2.png and b/docs/en/Tutorials/images/blazor-bookstore-book-list-2.png differ diff --git a/docs/en/Tutorials/images/blazor-bookstore-book-list-with-authors-2.png b/docs/en/Tutorials/images/blazor-bookstore-book-list-with-authors-2.png index 3bc399ca17..1ecc08d6c3 100644 Binary files a/docs/en/Tutorials/images/blazor-bookstore-book-list-with-authors-2.png and b/docs/en/Tutorials/images/blazor-bookstore-book-list-with-authors-2.png differ diff --git a/docs/en/Tutorials/images/blazor-bookstore-book-list-with-authors.png b/docs/en/Tutorials/images/blazor-bookstore-book-list-with-authors.png index 75c5306c3c..e9eb55dc6f 100644 Binary files a/docs/en/Tutorials/images/blazor-bookstore-book-list-with-authors.png and b/docs/en/Tutorials/images/blazor-bookstore-book-list-with-authors.png differ diff --git a/docs/en/Tutorials/images/blazor-bookstore-book-list.png b/docs/en/Tutorials/images/blazor-bookstore-book-list.png index 18bb26ccb1..61cf0ebf66 100644 Binary files a/docs/en/Tutorials/images/blazor-bookstore-book-list.png and b/docs/en/Tutorials/images/blazor-bookstore-book-list.png differ diff --git a/docs/en/Tutorials/images/blazor-delete-book-action-2.png b/docs/en/Tutorials/images/blazor-delete-book-action-2.png index 5e1e144efa..8fd45a5789 100644 Binary files a/docs/en/Tutorials/images/blazor-delete-book-action-2.png and b/docs/en/Tutorials/images/blazor-delete-book-action-2.png differ diff --git a/docs/en/Tutorials/images/blazor-delete-book-action.png b/docs/en/Tutorials/images/blazor-delete-book-action.png index f2b0b83f30..258bd29d1d 100644 Binary files a/docs/en/Tutorials/images/blazor-delete-book-action.png and b/docs/en/Tutorials/images/blazor-delete-book-action.png differ diff --git a/docs/en/Tutorials/images/blazor-edit-book-action-2.png b/docs/en/Tutorials/images/blazor-edit-book-action-2.png index c3e2b1e0e1..3c3fed77ff 100644 Binary files a/docs/en/Tutorials/images/blazor-edit-book-action-2.png and b/docs/en/Tutorials/images/blazor-edit-book-action-2.png differ diff --git a/docs/en/Tutorials/images/blazor-edit-book-action-3.png b/docs/en/Tutorials/images/blazor-edit-book-action-3.png index 7052be4a33..60e19b3cda 100644 Binary files a/docs/en/Tutorials/images/blazor-edit-book-action-3.png and b/docs/en/Tutorials/images/blazor-edit-book-action-3.png differ diff --git a/docs/en/Tutorials/images/blazor-edit-book-action.png b/docs/en/Tutorials/images/blazor-edit-book-action.png index f1179dae58..7328154c7e 100644 Binary files a/docs/en/Tutorials/images/blazor-edit-book-action.png and b/docs/en/Tutorials/images/blazor-edit-book-action.png differ diff --git a/docs/en/Tutorials/images/blazor-edit-book-modal-2.png b/docs/en/Tutorials/images/blazor-edit-book-modal-2.png index 8350ccb2ee..0d6311c298 100644 Binary files a/docs/en/Tutorials/images/blazor-edit-book-modal-2.png and b/docs/en/Tutorials/images/blazor-edit-book-modal-2.png differ diff --git a/docs/en/Tutorials/images/blazor-edit-book-modal.png b/docs/en/Tutorials/images/blazor-edit-book-modal.png index e63e796d34..679ce2bdc7 100644 Binary files a/docs/en/Tutorials/images/blazor-edit-book-modal.png and b/docs/en/Tutorials/images/blazor-edit-book-modal.png differ diff --git a/docs/en/Tutorials/images/blazor-menu-bookstore.png b/docs/en/Tutorials/images/blazor-menu-bookstore.png index f9f334aa1d..097175dc64 100644 Binary files a/docs/en/Tutorials/images/blazor-menu-bookstore.png and b/docs/en/Tutorials/images/blazor-menu-bookstore.png differ diff --git a/docs/en/Tutorials/images/blazor-new-book-modal-2.png b/docs/en/Tutorials/images/blazor-new-book-modal-2.png index fb4877fb9d..6ac1879bdf 100644 Binary files a/docs/en/Tutorials/images/blazor-new-book-modal-2.png and b/docs/en/Tutorials/images/blazor-new-book-modal-2.png differ diff --git a/docs/en/Tutorials/images/blazor-new-book-modal.png b/docs/en/Tutorials/images/blazor-new-book-modal.png index dd284a0ffd..08942800dc 100644 Binary files a/docs/en/Tutorials/images/blazor-new-book-modal.png and b/docs/en/Tutorials/images/blazor-new-book-modal.png differ diff --git a/docs/en/Tutorials/images/book-create-modal-with-author-2.png b/docs/en/Tutorials/images/book-create-modal-with-author-2.png index fdfef46b33..6588b9d0e6 100644 Binary files a/docs/en/Tutorials/images/book-create-modal-with-author-2.png and b/docs/en/Tutorials/images/book-create-modal-with-author-2.png differ diff --git a/docs/en/Tutorials/images/book-create-modal-with-author.png b/docs/en/Tutorials/images/book-create-modal-with-author.png index 5e662553aa..0ecaac08f4 100644 Binary files a/docs/en/Tutorials/images/book-create-modal-with-author.png and b/docs/en/Tutorials/images/book-create-modal-with-author.png differ diff --git a/docs/en/Tutorials/images/bookstore-actions-buttons-2.png b/docs/en/Tutorials/images/bookstore-actions-buttons-2.png index a67dabe995..022ab1fd26 100644 Binary files a/docs/en/Tutorials/images/bookstore-actions-buttons-2.png and b/docs/en/Tutorials/images/bookstore-actions-buttons-2.png differ diff --git a/docs/en/Tutorials/images/bookstore-actions-buttons.png b/docs/en/Tutorials/images/bookstore-actions-buttons.png index f5d8f0870b..8f495e0cc3 100644 Binary files a/docs/en/Tutorials/images/bookstore-actions-buttons.png and b/docs/en/Tutorials/images/bookstore-actions-buttons.png differ diff --git a/docs/en/Tutorials/images/bookstore-add-create-dialog-v2.png b/docs/en/Tutorials/images/bookstore-add-create-dialog-v2.png index fcadfd7a82..fd06f3e4e5 100644 Binary files a/docs/en/Tutorials/images/bookstore-add-create-dialog-v2.png and b/docs/en/Tutorials/images/bookstore-add-create-dialog-v2.png differ diff --git a/docs/en/Tutorials/images/bookstore-add-edit-dialog.png b/docs/en/Tutorials/images/bookstore-add-edit-dialog.png index b28d8736dd..adfc036d0b 100644 Binary files a/docs/en/Tutorials/images/bookstore-add-edit-dialog.png and b/docs/en/Tutorials/images/bookstore-add-edit-dialog.png differ diff --git a/docs/en/Tutorials/images/bookstore-add-index-page-v2.png b/docs/en/Tutorials/images/bookstore-add-index-page-v2.png index 2606bbab32..a4760261c6 100644 Binary files a/docs/en/Tutorials/images/bookstore-add-index-page-v2.png and b/docs/en/Tutorials/images/bookstore-add-index-page-v2.png differ diff --git a/docs/en/Tutorials/images/bookstore-add-migration-authors.png b/docs/en/Tutorials/images/bookstore-add-migration-authors.png index c24e33c628..2c16034ec4 100644 Binary files a/docs/en/Tutorials/images/bookstore-add-migration-authors.png and b/docs/en/Tutorials/images/bookstore-add-migration-authors.png differ diff --git a/docs/en/Tutorials/images/bookstore-added-author-to-book-list-2.png b/docs/en/Tutorials/images/bookstore-added-author-to-book-list-2.png index ca39f239c1..615bdc551e 100644 Binary files a/docs/en/Tutorials/images/bookstore-added-author-to-book-list-2.png and b/docs/en/Tutorials/images/bookstore-added-author-to-book-list-2.png differ diff --git a/docs/en/Tutorials/images/bookstore-added-author-to-book-list-angular.png b/docs/en/Tutorials/images/bookstore-added-author-to-book-list-angular.png index 9fba94d5bf..e033826c2a 100644 Binary files a/docs/en/Tutorials/images/bookstore-added-author-to-book-list-angular.png and b/docs/en/Tutorials/images/bookstore-added-author-to-book-list-angular.png differ diff --git a/docs/en/Tutorials/images/bookstore-added-author-to-book-list.png b/docs/en/Tutorials/images/bookstore-added-author-to-book-list.png index f318ddfd31..38dfd300a7 100644 Binary files a/docs/en/Tutorials/images/bookstore-added-author-to-book-list.png and b/docs/en/Tutorials/images/bookstore-added-author-to-book-list.png differ diff --git a/docs/en/Tutorials/images/bookstore-added-authors-to-modals-2.png b/docs/en/Tutorials/images/bookstore-added-authors-to-modals-2.png index f2541ea6de..ed59389b80 100644 Binary files a/docs/en/Tutorials/images/bookstore-added-authors-to-modals-2.png and b/docs/en/Tutorials/images/bookstore-added-authors-to-modals-2.png differ diff --git a/docs/en/Tutorials/images/bookstore-added-authors-to-modals.png b/docs/en/Tutorials/images/bookstore-added-authors-to-modals.png index 5fe4046794..ea2aba892c 100644 Binary files a/docs/en/Tutorials/images/bookstore-added-authors-to-modals.png and b/docs/en/Tutorials/images/bookstore-added-authors-to-modals.png differ diff --git a/docs/en/Tutorials/images/bookstore-angular-author-selection-2.png b/docs/en/Tutorials/images/bookstore-angular-author-selection-2.png index 96b1688186..fca18f5cb0 100644 Binary files a/docs/en/Tutorials/images/bookstore-angular-author-selection-2.png and b/docs/en/Tutorials/images/bookstore-angular-author-selection-2.png differ diff --git a/docs/en/Tutorials/images/bookstore-angular-author-selection.png b/docs/en/Tutorials/images/bookstore-angular-author-selection.png index bb604233ab..8518ba521a 100644 Binary files a/docs/en/Tutorials/images/bookstore-angular-author-selection.png and b/docs/en/Tutorials/images/bookstore-angular-author-selection.png differ diff --git a/docs/en/Tutorials/images/bookstore-angular-authors-page-2.png b/docs/en/Tutorials/images/bookstore-angular-authors-page-2.png index 7c6f9ce888..71ade7df74 100644 Binary files a/docs/en/Tutorials/images/bookstore-angular-authors-page-2.png and b/docs/en/Tutorials/images/bookstore-angular-authors-page-2.png differ diff --git a/docs/en/Tutorials/images/bookstore-angular-authors-page.png b/docs/en/Tutorials/images/bookstore-angular-authors-page.png index bbd865e44b..3d965f2179 100644 Binary files a/docs/en/Tutorials/images/bookstore-angular-authors-page.png and b/docs/en/Tutorials/images/bookstore-angular-authors-page.png differ diff --git a/docs/en/Tutorials/images/bookstore-angular-file-tree.png b/docs/en/Tutorials/images/bookstore-angular-file-tree.png index d921f146fc..b311cf50c6 100644 Binary files a/docs/en/Tutorials/images/bookstore-angular-file-tree.png and b/docs/en/Tutorials/images/bookstore-angular-file-tree.png differ diff --git a/docs/en/Tutorials/images/bookstore-angular-service-proxy-author-2.png b/docs/en/Tutorials/images/bookstore-angular-service-proxy-author-2.png index d76179bb78..56a6395c31 100644 Binary files a/docs/en/Tutorials/images/bookstore-angular-service-proxy-author-2.png and b/docs/en/Tutorials/images/bookstore-angular-service-proxy-author-2.png differ diff --git a/docs/en/Tutorials/images/bookstore-angular-service-proxy-author.png b/docs/en/Tutorials/images/bookstore-angular-service-proxy-author.png index ac231ef7a8..5d89973669 100644 Binary files a/docs/en/Tutorials/images/bookstore-angular-service-proxy-author.png and b/docs/en/Tutorials/images/bookstore-angular-service-proxy-author.png differ diff --git a/docs/en/Tutorials/images/bookstore-appservice-tests.png b/docs/en/Tutorials/images/bookstore-appservice-tests.png index 942d2832a6..142ef57e22 100644 Binary files a/docs/en/Tutorials/images/bookstore-appservice-tests.png and b/docs/en/Tutorials/images/bookstore-appservice-tests.png differ diff --git a/docs/en/Tutorials/images/bookstore-author-domain-layer.png b/docs/en/Tutorials/images/bookstore-author-domain-layer.png index fde53834bb..2256971559 100644 Binary files a/docs/en/Tutorials/images/bookstore-author-domain-layer.png and b/docs/en/Tutorials/images/bookstore-author-domain-layer.png differ diff --git a/docs/en/Tutorials/images/bookstore-author-permissions-2.png b/docs/en/Tutorials/images/bookstore-author-permissions-2.png index 26911fc664..3d9a4be983 100644 Binary files a/docs/en/Tutorials/images/bookstore-author-permissions-2.png and b/docs/en/Tutorials/images/bookstore-author-permissions-2.png differ diff --git a/docs/en/Tutorials/images/bookstore-author-permissions-3.png b/docs/en/Tutorials/images/bookstore-author-permissions-3.png index 6b53bea4ed..22b7b2112e 100644 Binary files a/docs/en/Tutorials/images/bookstore-author-permissions-3.png and b/docs/en/Tutorials/images/bookstore-author-permissions-3.png differ diff --git a/docs/en/Tutorials/images/bookstore-author-permissions.png b/docs/en/Tutorials/images/bookstore-author-permissions.png index a20093d2c4..bfb4c208ef 100644 Binary files a/docs/en/Tutorials/images/bookstore-author-permissions.png and b/docs/en/Tutorials/images/bookstore-author-permissions.png differ diff --git a/docs/en/Tutorials/images/bookstore-authors-blazor-ui.png b/docs/en/Tutorials/images/bookstore-authors-blazor-ui.png index 5b9480957d..13a6ad74c7 100644 Binary files a/docs/en/Tutorials/images/bookstore-authors-blazor-ui.png and b/docs/en/Tutorials/images/bookstore-authors-blazor-ui.png differ diff --git a/docs/en/Tutorials/images/bookstore-authors-page-2.png b/docs/en/Tutorials/images/bookstore-authors-page-2.png index 2ec2d42fe2..a61debba0e 100644 Binary files a/docs/en/Tutorials/images/bookstore-authors-page-2.png and b/docs/en/Tutorials/images/bookstore-authors-page-2.png differ diff --git a/docs/en/Tutorials/images/bookstore-authors-page-3.png b/docs/en/Tutorials/images/bookstore-authors-page-3.png index 3db547f7f9..468171d079 100644 Binary files a/docs/en/Tutorials/images/bookstore-authors-page-3.png and b/docs/en/Tutorials/images/bookstore-authors-page-3.png differ diff --git a/docs/en/Tutorials/images/bookstore-authors-page.png b/docs/en/Tutorials/images/bookstore-authors-page.png index 6b8959df54..477437b525 100644 Binary files a/docs/en/Tutorials/images/bookstore-authors-page.png and b/docs/en/Tutorials/images/bookstore-authors-page.png differ diff --git a/docs/en/Tutorials/images/bookstore-book-and-booktype.png b/docs/en/Tutorials/images/bookstore-book-and-booktype.png index 1620ebf150..e4b53d6298 100644 Binary files a/docs/en/Tutorials/images/bookstore-book-and-booktype.png and b/docs/en/Tutorials/images/bookstore-book-and-booktype.png differ diff --git a/docs/en/Tutorials/images/bookstore-book-list-2.png b/docs/en/Tutorials/images/bookstore-book-list-2.png index a460d4241b..8305a6caf4 100644 Binary files a/docs/en/Tutorials/images/bookstore-book-list-2.png and b/docs/en/Tutorials/images/bookstore-book-list-2.png differ diff --git a/docs/en/Tutorials/images/bookstore-book-list-3.png b/docs/en/Tutorials/images/bookstore-book-list-3.png index cbd7ec4a6a..2022efbb35 100644 Binary files a/docs/en/Tutorials/images/bookstore-book-list-3.png and b/docs/en/Tutorials/images/bookstore-book-list-3.png differ diff --git a/docs/en/Tutorials/images/bookstore-book-list-4.png b/docs/en/Tutorials/images/bookstore-book-list-4.png index 3d0897339d..fd32a9fcc2 100644 Binary files a/docs/en/Tutorials/images/bookstore-book-list-4.png and b/docs/en/Tutorials/images/bookstore-book-list-4.png differ diff --git a/docs/en/Tutorials/images/bookstore-book-list-angular.png b/docs/en/Tutorials/images/bookstore-book-list-angular.png index d308e1ca95..91d9374499 100644 Binary files a/docs/en/Tutorials/images/bookstore-book-list-angular.png and b/docs/en/Tutorials/images/bookstore-book-list-angular.png differ diff --git a/docs/en/Tutorials/images/bookstore-book-list.png b/docs/en/Tutorials/images/bookstore-book-list.png index 4982032e64..f30c4eec72 100644 Binary files a/docs/en/Tutorials/images/bookstore-book-list.png and b/docs/en/Tutorials/images/bookstore-book-list.png differ diff --git a/docs/en/Tutorials/images/bookstore-books-table-actions.png b/docs/en/Tutorials/images/bookstore-books-table-actions.png index bc1d4e3f6f..431fb2defc 100644 Binary files a/docs/en/Tutorials/images/bookstore-books-table-actions.png and b/docs/en/Tutorials/images/bookstore-books-table-actions.png differ diff --git a/docs/en/Tutorials/images/bookstore-books-table.png b/docs/en/Tutorials/images/bookstore-books-table.png index 3cc8d7ca18..7254a97566 100644 Binary files a/docs/en/Tutorials/images/bookstore-books-table.png and b/docs/en/Tutorials/images/bookstore-books-table.png differ diff --git a/docs/en/Tutorials/images/bookstore-books-with-authorname-angular-2.png b/docs/en/Tutorials/images/bookstore-books-with-authorname-angular-2.png index 324568ad32..f040ac3ba4 100644 Binary files a/docs/en/Tutorials/images/bookstore-books-with-authorname-angular-2.png and b/docs/en/Tutorials/images/bookstore-books-with-authorname-angular-2.png differ diff --git a/docs/en/Tutorials/images/bookstore-books-with-authorname-angular.png b/docs/en/Tutorials/images/bookstore-books-with-authorname-angular.png index 60db14377f..d388a49cd0 100644 Binary files a/docs/en/Tutorials/images/bookstore-books-with-authorname-angular.png and b/docs/en/Tutorials/images/bookstore-books-with-authorname-angular.png differ diff --git a/docs/en/Tutorials/images/bookstore-confirmation-popup-2.png b/docs/en/Tutorials/images/bookstore-confirmation-popup-2.png index 4d6ebc2f83..5698c3f1b6 100644 Binary files a/docs/en/Tutorials/images/bookstore-confirmation-popup-2.png and b/docs/en/Tutorials/images/bookstore-confirmation-popup-2.png differ diff --git a/docs/en/Tutorials/images/bookstore-confirmation-popup.png b/docs/en/Tutorials/images/bookstore-confirmation-popup.png index b17e70638d..86b908e14a 100644 Binary files a/docs/en/Tutorials/images/bookstore-confirmation-popup.png and b/docs/en/Tutorials/images/bookstore-confirmation-popup.png differ diff --git a/docs/en/Tutorials/images/bookstore-create-dialog-2.png b/docs/en/Tutorials/images/bookstore-create-dialog-2.png index 3d5f1e8582..eb84d88065 100644 Binary files a/docs/en/Tutorials/images/bookstore-create-dialog-2.png and b/docs/en/Tutorials/images/bookstore-create-dialog-2.png differ diff --git a/docs/en/Tutorials/images/bookstore-create-dialog-3.png b/docs/en/Tutorials/images/bookstore-create-dialog-3.png index d945ed6337..0365de3b26 100644 Binary files a/docs/en/Tutorials/images/bookstore-create-dialog-3.png and b/docs/en/Tutorials/images/bookstore-create-dialog-3.png differ diff --git a/docs/en/Tutorials/images/bookstore-create-dialog.png b/docs/en/Tutorials/images/bookstore-create-dialog.png index 4691d3c8fa..f09f2f394f 100644 Binary files a/docs/en/Tutorials/images/bookstore-create-dialog.png and b/docs/en/Tutorials/images/bookstore-create-dialog.png differ diff --git a/docs/en/Tutorials/images/bookstore-create-project-angular.png b/docs/en/Tutorials/images/bookstore-create-project-angular.png index b9eb38b8b7..c778baa656 100644 Binary files a/docs/en/Tutorials/images/bookstore-create-project-angular.png and b/docs/en/Tutorials/images/bookstore-create-project-angular.png differ diff --git a/docs/en/Tutorials/images/bookstore-create-project-mvc.png b/docs/en/Tutorials/images/bookstore-create-project-mvc.png index f453b20279..d7b2a9abec 100644 Binary files a/docs/en/Tutorials/images/bookstore-create-project-mvc.png and b/docs/en/Tutorials/images/bookstore-create-project-mvc.png differ diff --git a/docs/en/Tutorials/images/bookstore-creating-book-list-terminal.png b/docs/en/Tutorials/images/bookstore-creating-book-list-terminal.png index 13829db60f..9d168b3c55 100644 Binary files a/docs/en/Tutorials/images/bookstore-creating-book-list-terminal.png and b/docs/en/Tutorials/images/bookstore-creating-book-list-terminal.png differ diff --git a/docs/en/Tutorials/images/bookstore-creating-book-module-terminal.png b/docs/en/Tutorials/images/bookstore-creating-book-module-terminal.png index c935a6f130..65fd9da213 100644 Binary files a/docs/en/Tutorials/images/bookstore-creating-book-module-terminal.png and b/docs/en/Tutorials/images/bookstore-creating-book-module-terminal.png differ diff --git a/docs/en/Tutorials/images/bookstore-database-tables-ef.png b/docs/en/Tutorials/images/bookstore-database-tables-ef.png index 857b10de5b..4b99c50713 100644 Binary files a/docs/en/Tutorials/images/bookstore-database-tables-ef.png and b/docs/en/Tutorials/images/bookstore-database-tables-ef.png differ diff --git a/docs/en/Tutorials/images/bookstore-database-tables-mongodb.png b/docs/en/Tutorials/images/bookstore-database-tables-mongodb.png index 8d78bd9a54..88e1acc758 100644 Binary files a/docs/en/Tutorials/images/bookstore-database-tables-mongodb.png and b/docs/en/Tutorials/images/bookstore-database-tables-mongodb.png differ diff --git a/docs/en/Tutorials/images/bookstore-dbmigrator-on-solution.png b/docs/en/Tutorials/images/bookstore-dbmigrator-on-solution.png index 0b81900307..cfc74b1f0a 100644 Binary files a/docs/en/Tutorials/images/bookstore-dbmigrator-on-solution.png and b/docs/en/Tutorials/images/bookstore-dbmigrator-on-solution.png differ diff --git a/docs/en/Tutorials/images/bookstore-edit-button-2.png b/docs/en/Tutorials/images/bookstore-edit-button-2.png index 507bdd9406..df5b8128f8 100644 Binary files a/docs/en/Tutorials/images/bookstore-edit-button-2.png and b/docs/en/Tutorials/images/bookstore-edit-button-2.png differ diff --git a/docs/en/Tutorials/images/bookstore-edit-button-3.png b/docs/en/Tutorials/images/bookstore-edit-button-3.png index a464d543e7..672e4610f1 100644 Binary files a/docs/en/Tutorials/images/bookstore-edit-button-3.png and b/docs/en/Tutorials/images/bookstore-edit-button-3.png differ diff --git a/docs/en/Tutorials/images/bookstore-edit-button.png b/docs/en/Tutorials/images/bookstore-edit-button.png index bfc1c64797..b6083364f7 100644 Binary files a/docs/en/Tutorials/images/bookstore-edit-button.png and b/docs/en/Tutorials/images/bookstore-edit-button.png differ diff --git a/docs/en/Tutorials/images/bookstore-edit-delete-actions-2.png b/docs/en/Tutorials/images/bookstore-edit-delete-actions-2.png index 98b09ca712..a21f621c47 100644 Binary files a/docs/en/Tutorials/images/bookstore-edit-delete-actions-2.png and b/docs/en/Tutorials/images/bookstore-edit-delete-actions-2.png differ diff --git a/docs/en/Tutorials/images/bookstore-edit-delete-actions.png b/docs/en/Tutorials/images/bookstore-edit-delete-actions.png index 9c275c6d15..923acba533 100644 Binary files a/docs/en/Tutorials/images/bookstore-edit-delete-actions.png and b/docs/en/Tutorials/images/bookstore-edit-delete-actions.png differ diff --git a/docs/en/Tutorials/images/bookstore-efcore-migration-authors.png b/docs/en/Tutorials/images/bookstore-efcore-migration-authors.png index 2cfb29f86f..60b458ae5b 100644 Binary files a/docs/en/Tutorials/images/bookstore-efcore-migration-authors.png and b/docs/en/Tutorials/images/bookstore-efcore-migration-authors.png differ diff --git a/docs/en/Tutorials/images/bookstore-efcore-migration.png b/docs/en/Tutorials/images/bookstore-efcore-migration.png index 5c034f6e80..d5f057d66e 100644 Binary files a/docs/en/Tutorials/images/bookstore-efcore-migration.png and b/docs/en/Tutorials/images/bookstore-efcore-migration.png differ diff --git a/docs/en/Tutorials/images/bookstore-empty-new-book-modal-2.png b/docs/en/Tutorials/images/bookstore-empty-new-book-modal-2.png index d04819407d..9dd24e4cee 100644 Binary files a/docs/en/Tutorials/images/bookstore-empty-new-book-modal-2.png and b/docs/en/Tutorials/images/bookstore-empty-new-book-modal-2.png differ diff --git a/docs/en/Tutorials/images/bookstore-empty-new-book-modal.png b/docs/en/Tutorials/images/bookstore-empty-new-book-modal.png index f4e969ae22..6168a91fdf 100644 Binary files a/docs/en/Tutorials/images/bookstore-empty-new-book-modal.png and b/docs/en/Tutorials/images/bookstore-empty-new-book-modal.png differ diff --git a/docs/en/Tutorials/images/bookstore-final-actions-dropdown-2.png b/docs/en/Tutorials/images/bookstore-final-actions-dropdown-2.png index 47a295e69e..15403f2921 100644 Binary files a/docs/en/Tutorials/images/bookstore-final-actions-dropdown-2.png and b/docs/en/Tutorials/images/bookstore-final-actions-dropdown-2.png differ diff --git a/docs/en/Tutorials/images/bookstore-final-actions-dropdown.png b/docs/en/Tutorials/images/bookstore-final-actions-dropdown.png index 4f41829f0d..94d4e20aef 100644 Binary files a/docs/en/Tutorials/images/bookstore-final-actions-dropdown.png and b/docs/en/Tutorials/images/bookstore-final-actions-dropdown.png differ diff --git a/docs/en/Tutorials/images/bookstore-generate-state-books.png b/docs/en/Tutorials/images/bookstore-generate-state-books.png index be7a919017..1a89bfbaeb 100644 Binary files a/docs/en/Tutorials/images/bookstore-generate-state-books.png and b/docs/en/Tutorials/images/bookstore-generate-state-books.png differ diff --git a/docs/en/Tutorials/images/bookstore-getlist-result-network.png b/docs/en/Tutorials/images/bookstore-getlist-result-network.png index 141f9d14ee..ef9977e00c 100644 Binary files a/docs/en/Tutorials/images/bookstore-getlist-result-network.png and b/docs/en/Tutorials/images/bookstore-getlist-result-network.png differ diff --git a/docs/en/Tutorials/images/bookstore-homepage.png b/docs/en/Tutorials/images/bookstore-homepage.png index 5e5b512220..dc015aa67d 100644 Binary files a/docs/en/Tutorials/images/bookstore-homepage.png and b/docs/en/Tutorials/images/bookstore-homepage.png differ diff --git a/docs/en/Tutorials/images/bookstore-index-js-file-v2.png b/docs/en/Tutorials/images/bookstore-index-js-file-v2.png index 1ba9a48600..2db5ab1a5e 100644 Binary files a/docs/en/Tutorials/images/bookstore-index-js-file-v2.png and b/docs/en/Tutorials/images/bookstore-index-js-file-v2.png differ diff --git a/docs/en/Tutorials/images/bookstore-index-js-file-v3.png b/docs/en/Tutorials/images/bookstore-index-js-file-v3.png index add95788a8..a3b34c5161 100644 Binary files a/docs/en/Tutorials/images/bookstore-index-js-file-v3.png and b/docs/en/Tutorials/images/bookstore-index-js-file-v3.png differ diff --git a/docs/en/Tutorials/images/bookstore-initial-book-list-page.png b/docs/en/Tutorials/images/bookstore-initial-book-list-page.png index 591cffb121..b7082da979 100644 Binary files a/docs/en/Tutorials/images/bookstore-initial-book-list-page.png and b/docs/en/Tutorials/images/bookstore-initial-book-list-page.png differ diff --git a/docs/en/Tutorials/images/bookstore-initial-books-page-with-layout.png b/docs/en/Tutorials/images/bookstore-initial-books-page-with-layout.png index 629ad46444..a07f488012 100644 Binary files a/docs/en/Tutorials/images/bookstore-initial-books-page-with-layout.png and b/docs/en/Tutorials/images/bookstore-initial-books-page-with-layout.png differ diff --git a/docs/en/Tutorials/images/bookstore-javascript-proxy-console.png b/docs/en/Tutorials/images/bookstore-javascript-proxy-console.png index f393c47875..141da741dd 100644 Binary files a/docs/en/Tutorials/images/bookstore-javascript-proxy-console.png and b/docs/en/Tutorials/images/bookstore-javascript-proxy-console.png differ diff --git a/docs/en/Tutorials/images/bookstore-localization-files-v2.png b/docs/en/Tutorials/images/bookstore-localization-files-v2.png index 542cda209c..34f5819fe7 100644 Binary files a/docs/en/Tutorials/images/bookstore-localization-files-v2.png and b/docs/en/Tutorials/images/bookstore-localization-files-v2.png differ diff --git a/docs/en/Tutorials/images/bookstore-menu-items.png b/docs/en/Tutorials/images/bookstore-menu-items.png index 255defb707..ef3c404855 100644 Binary files a/docs/en/Tutorials/images/bookstore-menu-items.png and b/docs/en/Tutorials/images/bookstore-menu-items.png differ diff --git a/docs/en/Tutorials/images/bookstore-migrations-applied-angular.png b/docs/en/Tutorials/images/bookstore-migrations-applied-angular.png index 0724e4ae8f..8c14e6e6f5 100644 Binary files a/docs/en/Tutorials/images/bookstore-migrations-applied-angular.png and b/docs/en/Tutorials/images/bookstore-migrations-applied-angular.png differ diff --git a/docs/en/Tutorials/images/bookstore-migrations-applied-mvc.png b/docs/en/Tutorials/images/bookstore-migrations-applied-mvc.png index d59c0ce1d3..8369cfef8e 100644 Binary files a/docs/en/Tutorials/images/bookstore-migrations-applied-mvc.png and b/docs/en/Tutorials/images/bookstore-migrations-applied-mvc.png differ diff --git a/docs/en/Tutorials/images/bookstore-new-author-modal-2.png b/docs/en/Tutorials/images/bookstore-new-author-modal-2.png index 628dcd4db5..2126872081 100644 Binary files a/docs/en/Tutorials/images/bookstore-new-author-modal-2.png and b/docs/en/Tutorials/images/bookstore-new-author-modal-2.png differ diff --git a/docs/en/Tutorials/images/bookstore-new-author-modal.png b/docs/en/Tutorials/images/bookstore-new-author-modal.png index dda0dab4c1..98e939a264 100644 Binary files a/docs/en/Tutorials/images/bookstore-new-author-modal.png and b/docs/en/Tutorials/images/bookstore-new-author-modal.png differ diff --git a/docs/en/Tutorials/images/bookstore-new-book-button-2.png b/docs/en/Tutorials/images/bookstore-new-book-button-2.png index 12f1819688..1e49299f1d 100644 Binary files a/docs/en/Tutorials/images/bookstore-new-book-button-2.png and b/docs/en/Tutorials/images/bookstore-new-book-button-2.png differ diff --git a/docs/en/Tutorials/images/bookstore-new-book-button-3.png b/docs/en/Tutorials/images/bookstore-new-book-button-3.png index 9ac6e0d45e..8de58736e6 100644 Binary files a/docs/en/Tutorials/images/bookstore-new-book-button-3.png and b/docs/en/Tutorials/images/bookstore-new-book-button-3.png differ diff --git a/docs/en/Tutorials/images/bookstore-new-book-button-small-2.png b/docs/en/Tutorials/images/bookstore-new-book-button-small-2.png index 8540cbb18d..a356d6e352 100644 Binary files a/docs/en/Tutorials/images/bookstore-new-book-button-small-2.png and b/docs/en/Tutorials/images/bookstore-new-book-button-small-2.png differ diff --git a/docs/en/Tutorials/images/bookstore-new-book-button-small.png b/docs/en/Tutorials/images/bookstore-new-book-button-small.png index 13f7da9285..4a3eac313b 100644 Binary files a/docs/en/Tutorials/images/bookstore-new-book-button-small.png and b/docs/en/Tutorials/images/bookstore-new-book-button-small.png differ diff --git a/docs/en/Tutorials/images/bookstore-new-book-button.png b/docs/en/Tutorials/images/bookstore-new-book-button.png index 8112fe1352..b4d36d6075 100644 Binary files a/docs/en/Tutorials/images/bookstore-new-book-button.png and b/docs/en/Tutorials/images/bookstore-new-book-button.png differ diff --git a/docs/en/Tutorials/images/bookstore-new-book-form-v2.png b/docs/en/Tutorials/images/bookstore-new-book-form-v2.png index 72513de6e5..9c06825eea 100644 Binary files a/docs/en/Tutorials/images/bookstore-new-book-form-v2.png and b/docs/en/Tutorials/images/bookstore-new-book-form-v2.png differ diff --git a/docs/en/Tutorials/images/bookstore-new-book-form-v3.png b/docs/en/Tutorials/images/bookstore-new-book-form-v3.png index 6dca81546c..1dbf73c98b 100644 Binary files a/docs/en/Tutorials/images/bookstore-new-book-form-v3.png and b/docs/en/Tutorials/images/bookstore-new-book-form-v3.png differ diff --git a/docs/en/Tutorials/images/bookstore-new-book-form.png b/docs/en/Tutorials/images/bookstore-new-book-form.png index 95de64f8d4..aecc1d4a1a 100644 Binary files a/docs/en/Tutorials/images/bookstore-new-book-form.png and b/docs/en/Tutorials/images/bookstore-new-book-form.png differ diff --git a/docs/en/Tutorials/images/bookstore-new-menu-item-2.png b/docs/en/Tutorials/images/bookstore-new-menu-item-2.png index 3353eec83c..19c5806a93 100644 Binary files a/docs/en/Tutorials/images/bookstore-new-menu-item-2.png and b/docs/en/Tutorials/images/bookstore-new-menu-item-2.png differ diff --git a/docs/en/Tutorials/images/bookstore-new-menu-item.png b/docs/en/Tutorials/images/bookstore-new-menu-item.png index 97bf7fc7c1..d77d1938db 100644 Binary files a/docs/en/Tutorials/images/bookstore-new-menu-item.png and b/docs/en/Tutorials/images/bookstore-new-menu-item.png differ diff --git a/docs/en/Tutorials/images/bookstore-open-package-manager-console.png b/docs/en/Tutorials/images/bookstore-open-package-manager-console.png index a640eb2681..7b1cccb748 100644 Binary files a/docs/en/Tutorials/images/bookstore-open-package-manager-console.png and b/docs/en/Tutorials/images/bookstore-open-package-manager-console.png differ diff --git a/docs/en/Tutorials/images/bookstore-permissions-ui-2.png b/docs/en/Tutorials/images/bookstore-permissions-ui-2.png index d0110b0877..61503b1c6c 100644 Binary files a/docs/en/Tutorials/images/bookstore-permissions-ui-2.png and b/docs/en/Tutorials/images/bookstore-permissions-ui-2.png differ diff --git a/docs/en/Tutorials/images/bookstore-permissions-ui.png b/docs/en/Tutorials/images/bookstore-permissions-ui.png index 749f7a013f..d2259fdedd 100644 Binary files a/docs/en/Tutorials/images/bookstore-permissions-ui.png and b/docs/en/Tutorials/images/bookstore-permissions-ui.png differ diff --git a/docs/en/Tutorials/images/bookstore-pmc-add-book-migration-v2.png b/docs/en/Tutorials/images/bookstore-pmc-add-book-migration-v2.png index 2baea20236..b1bdadbc9c 100644 Binary files a/docs/en/Tutorials/images/bookstore-pmc-add-book-migration-v2.png and b/docs/en/Tutorials/images/bookstore-pmc-add-book-migration-v2.png differ diff --git a/docs/en/Tutorials/images/bookstore-pmc-add-book-migration.png b/docs/en/Tutorials/images/bookstore-pmc-add-book-migration.png index 5d29f4d32b..cb3b6440c7 100644 Binary files a/docs/en/Tutorials/images/bookstore-pmc-add-book-migration.png and b/docs/en/Tutorials/images/bookstore-pmc-add-book-migration.png differ diff --git a/docs/en/Tutorials/images/bookstore-service-terminal-output.png b/docs/en/Tutorials/images/bookstore-service-terminal-output.png index cf6145e03f..7567f0d95f 100644 Binary files a/docs/en/Tutorials/images/bookstore-service-terminal-output.png and b/docs/en/Tutorials/images/bookstore-service-terminal-output.png differ diff --git a/docs/en/Tutorials/images/bookstore-solution-structure-angular.png b/docs/en/Tutorials/images/bookstore-solution-structure-angular.png index 07d064a880..88dcacffed 100644 Binary files a/docs/en/Tutorials/images/bookstore-solution-structure-angular.png and b/docs/en/Tutorials/images/bookstore-solution-structure-angular.png differ diff --git a/docs/en/Tutorials/images/bookstore-solution-structure-mvc.png b/docs/en/Tutorials/images/bookstore-solution-structure-mvc.png index 307e3516a5..ce821eba72 100644 Binary files a/docs/en/Tutorials/images/bookstore-solution-structure-mvc.png and b/docs/en/Tutorials/images/bookstore-solution-structure-mvc.png differ diff --git a/docs/en/Tutorials/images/bookstore-start-project-angular.png b/docs/en/Tutorials/images/bookstore-start-project-angular.png index 08abf845a8..c3c9a25beb 100644 Binary files a/docs/en/Tutorials/images/bookstore-start-project-angular.png and b/docs/en/Tutorials/images/bookstore-start-project-angular.png differ diff --git a/docs/en/Tutorials/images/bookstore-start-project-mvc.png b/docs/en/Tutorials/images/bookstore-start-project-mvc.png index 133dc6f131..d8e64184b3 100644 Binary files a/docs/en/Tutorials/images/bookstore-start-project-mvc.png and b/docs/en/Tutorials/images/bookstore-start-project-mvc.png differ diff --git a/docs/en/Tutorials/images/bookstore-swagger-book-dto-properties.png b/docs/en/Tutorials/images/bookstore-swagger-book-dto-properties.png index 66d630bb56..b0e8fac507 100644 Binary files a/docs/en/Tutorials/images/bookstore-swagger-book-dto-properties.png and b/docs/en/Tutorials/images/bookstore-swagger-book-dto-properties.png differ diff --git a/docs/en/Tutorials/images/bookstore-swagger.png b/docs/en/Tutorials/images/bookstore-swagger.png index 3ce36a11bc..423142e15d 100644 Binary files a/docs/en/Tutorials/images/bookstore-swagger.png and b/docs/en/Tutorials/images/bookstore-swagger.png differ diff --git a/docs/en/Tutorials/images/bookstore-test-js-proxy-getlist-network.png b/docs/en/Tutorials/images/bookstore-test-js-proxy-getlist-network.png index 2f2c42fd9e..ffa63dc581 100644 Binary files a/docs/en/Tutorials/images/bookstore-test-js-proxy-getlist-network.png and b/docs/en/Tutorials/images/bookstore-test-js-proxy-getlist-network.png differ diff --git a/docs/en/Tutorials/images/bookstore-test-js-proxy-getlist.png b/docs/en/Tutorials/images/bookstore-test-js-proxy-getlist.png index 47af48b1ea..7fe3cead35 100644 Binary files a/docs/en/Tutorials/images/bookstore-test-js-proxy-getlist.png and b/docs/en/Tutorials/images/bookstore-test-js-proxy-getlist.png differ diff --git a/docs/en/Tutorials/images/bookstore-test-projects-angular.png b/docs/en/Tutorials/images/bookstore-test-projects-angular.png index 6a8947238e..51eb6455de 100644 Binary files a/docs/en/Tutorials/images/bookstore-test-projects-angular.png and b/docs/en/Tutorials/images/bookstore-test-projects-angular.png differ diff --git a/docs/en/Tutorials/images/bookstore-test-projects-mvc.png b/docs/en/Tutorials/images/bookstore-test-projects-mvc.png index 8701164d75..45d08ecea3 100644 Binary files a/docs/en/Tutorials/images/bookstore-test-projects-mvc.png and b/docs/en/Tutorials/images/bookstore-test-projects-mvc.png differ diff --git a/docs/en/Tutorials/images/bookstore-test-projects-v2.png b/docs/en/Tutorials/images/bookstore-test-projects-v2.png index 8701164d75..45d08ecea3 100644 Binary files a/docs/en/Tutorials/images/bookstore-test-projects-v2.png and b/docs/en/Tutorials/images/bookstore-test-projects-v2.png differ diff --git a/docs/en/Tutorials/images/bookstore-update-database-after-book-entity.png b/docs/en/Tutorials/images/bookstore-update-database-after-book-entity.png index 4889f4f757..81cb3f1440 100644 Binary files a/docs/en/Tutorials/images/bookstore-update-database-after-book-entity.png and b/docs/en/Tutorials/images/bookstore-update-database-after-book-entity.png differ diff --git a/docs/en/Tutorials/images/bookstore-user-management.png b/docs/en/Tutorials/images/bookstore-user-management.png index bc3c176557..d7d3429826 100644 Binary files a/docs/en/Tutorials/images/bookstore-user-management.png and b/docs/en/Tutorials/images/bookstore-user-management.png differ diff --git a/docs/en/Tutorials/images/bookstore-visual-studio-solution-v3.png b/docs/en/Tutorials/images/bookstore-visual-studio-solution-v3.png index 307e3516a5..ce821eba72 100644 Binary files a/docs/en/Tutorials/images/bookstore-visual-studio-solution-v3.png and b/docs/en/Tutorials/images/bookstore-visual-studio-solution-v3.png differ diff --git a/docs/en/Tutorials/images/generate-proxy-command.png b/docs/en/Tutorials/images/generate-proxy-command.png index f850ce07a2..d7f5706d78 100644 Binary files a/docs/en/Tutorials/images/generate-proxy-command.png and b/docs/en/Tutorials/images/generate-proxy-command.png differ diff --git a/docs/en/Tutorials/images/generated-proxies-2.png b/docs/en/Tutorials/images/generated-proxies-2.png index adad417c3d..f13aff1ac6 100644 Binary files a/docs/en/Tutorials/images/generated-proxies-2.png and b/docs/en/Tutorials/images/generated-proxies-2.png differ diff --git a/docs/en/Tutorials/images/generated-proxies-3.png b/docs/en/Tutorials/images/generated-proxies-3.png index 2a94f4e389..8af6942e58 100644 Binary files a/docs/en/Tutorials/images/generated-proxies-3.png and b/docs/en/Tutorials/images/generated-proxies-3.png differ diff --git a/docs/en/Tutorials/images/generated-proxies.png b/docs/en/Tutorials/images/generated-proxies.png index 1d322c0765..669e095abb 100644 Binary files a/docs/en/Tutorials/images/generated-proxies.png and b/docs/en/Tutorials/images/generated-proxies.png differ diff --git a/docs/en/Tutorials/images/mozilla-self-signed-cert-error.png b/docs/en/Tutorials/images/mozilla-self-signed-cert-error.png index c9e2fc0e65..4f411dd748 100644 Binary files a/docs/en/Tutorials/images/mozilla-self-signed-cert-error.png and b/docs/en/Tutorials/images/mozilla-self-signed-cert-error.png differ diff --git a/docs/en/Tutorials/images/vs-run-without-iisexpress.png b/docs/en/Tutorials/images/vs-run-without-iisexpress.png index 03c30e2b48..e837ed6ffc 100644 Binary files a/docs/en/Tutorials/images/vs-run-without-iisexpress.png and b/docs/en/Tutorials/images/vs-run-without-iisexpress.png differ diff --git a/docs/en/Tutorials/images/youtube.png b/docs/en/Tutorials/images/youtube.png index cf9a67548d..9916840e0f 100644 Binary files a/docs/en/Tutorials/images/youtube.png and b/docs/en/Tutorials/images/youtube.png differ diff --git a/docs/en/UI/Angular/images/CapsLockDirective1.png b/docs/en/UI/Angular/images/CapsLockDirective1.png index 2f143d755f..73b9ad6ca3 100644 Binary files a/docs/en/UI/Angular/images/CapsLockDirective1.png and b/docs/en/UI/Angular/images/CapsLockDirective1.png differ diff --git a/docs/en/UI/Angular/images/CapsLockDirective2.png b/docs/en/UI/Angular/images/CapsLockDirective2.png index a46ad710f1..1006e198b6 100644 Binary files a/docs/en/UI/Angular/images/CapsLockDirective2.png and b/docs/en/UI/Angular/images/CapsLockDirective2.png differ diff --git a/docs/en/UI/Angular/images/abp-card-body.png b/docs/en/UI/Angular/images/abp-card-body.png index d5d7d07d29..9f5669c870 100644 Binary files a/docs/en/UI/Angular/images/abp-card-body.png and b/docs/en/UI/Angular/images/abp-card-body.png differ diff --git a/docs/en/UI/Angular/images/abp-card-component.png b/docs/en/UI/Angular/images/abp-card-component.png index 726c617772..b7200714d9 100644 Binary files a/docs/en/UI/Angular/images/abp-card-component.png and b/docs/en/UI/Angular/images/abp-card-component.png differ diff --git a/docs/en/UI/Angular/images/abp-card-header-footer.png b/docs/en/UI/Angular/images/abp-card-header-footer.png index 72f0d7be45..7d22ff62ca 100644 Binary files a/docs/en/UI/Angular/images/abp-card-header-footer.png and b/docs/en/UI/Angular/images/abp-card-header-footer.png differ diff --git a/docs/en/UI/Angular/images/abp-card-header.png b/docs/en/UI/Angular/images/abp-card-header.png index a13ed5b3fe..4578d87936 100644 Binary files a/docs/en/UI/Angular/images/abp-card-header.png and b/docs/en/UI/Angular/images/abp-card-header.png differ diff --git a/docs/en/UI/Angular/images/abp-card-list-group.png b/docs/en/UI/Angular/images/abp-card-list-group.png index aa7b746647..e839ed884b 100644 Binary files a/docs/en/UI/Angular/images/abp-card-list-group.png and b/docs/en/UI/Angular/images/abp-card-list-group.png differ diff --git a/docs/en/UI/Angular/images/abp-card-title-text-link.png b/docs/en/UI/Angular/images/abp-card-title-text-link.png index af7d009929..7731960ae3 100644 Binary files a/docs/en/UI/Angular/images/abp-card-title-text-link.png and b/docs/en/UI/Angular/images/abp-card-title-text-link.png differ diff --git a/docs/en/UI/Angular/images/abp-loading.png b/docs/en/UI/Angular/images/abp-loading.png index 50073f6d63..d2be9c920b 100644 Binary files a/docs/en/UI/Angular/images/abp-loading.png and b/docs/en/UI/Angular/images/abp-loading.png differ diff --git a/docs/en/UI/Angular/images/bar-chart.png b/docs/en/UI/Angular/images/bar-chart.png index 58e4b85d03..a846921abb 100644 Binary files a/docs/en/UI/Angular/images/bar-chart.png and b/docs/en/UI/Angular/images/bar-chart.png differ diff --git a/docs/en/UI/Angular/images/basic-theme-application-layout-parts.png b/docs/en/UI/Angular/images/basic-theme-application-layout-parts.png index 934b0e0528..ac95aa49a3 100644 Binary files a/docs/en/UI/Angular/images/basic-theme-application-layout-parts.png and b/docs/en/UI/Angular/images/basic-theme-application-layout-parts.png differ diff --git a/docs/en/UI/Angular/images/confirmation.png b/docs/en/UI/Angular/images/confirmation.png index efe4c98ea7..15cf1a7103 100644 Binary files a/docs/en/UI/Angular/images/confirmation.png and b/docs/en/UI/Angular/images/confirmation.png differ diff --git a/docs/en/UI/Angular/images/doughnut-chart.png b/docs/en/UI/Angular/images/doughnut-chart.png index 8249b30164..118ded0b3c 100644 Binary files a/docs/en/UI/Angular/images/doughnut-chart.png and b/docs/en/UI/Angular/images/doughnut-chart.png differ diff --git a/docs/en/UI/Angular/images/ellipsis-directive-before.jpg b/docs/en/UI/Angular/images/ellipsis-directive-before.jpg index dc534d9a97..372de4cb53 100644 Binary files a/docs/en/UI/Angular/images/ellipsis-directive-before.jpg and b/docs/en/UI/Angular/images/ellipsis-directive-before.jpg differ diff --git a/docs/en/UI/Angular/images/ellipsis-directive-result1.jpg b/docs/en/UI/Angular/images/ellipsis-directive-result1.jpg index fe693f4c8c..0bc5a2c937 100644 Binary files a/docs/en/UI/Angular/images/ellipsis-directive-result1.jpg and b/docs/en/UI/Angular/images/ellipsis-directive-result1.jpg differ diff --git a/docs/en/UI/Angular/images/ellipsis-directive-result2.jpg b/docs/en/UI/Angular/images/ellipsis-directive-result2.jpg index 3a416bbc05..bb59753f0d 100644 Binary files a/docs/en/UI/Angular/images/ellipsis-directive-result2.jpg and b/docs/en/UI/Angular/images/ellipsis-directive-result2.jpg differ diff --git a/docs/en/UI/Angular/images/form-checkbox.png b/docs/en/UI/Angular/images/form-checkbox.png index 18d064c474..ea1908d57d 100644 Binary files a/docs/en/UI/Angular/images/form-checkbox.png and b/docs/en/UI/Angular/images/form-checkbox.png differ diff --git a/docs/en/UI/Angular/images/form-input.png b/docs/en/UI/Angular/images/form-input.png index 73c9cfd74c..1145a98e67 100644 Binary files a/docs/en/UI/Angular/images/form-input.png and b/docs/en/UI/Angular/images/form-input.png differ diff --git a/docs/en/UI/Angular/images/generated-files-via-generate-proxy.png b/docs/en/UI/Angular/images/generated-files-via-generate-proxy.png index a52c4bcabb..7d6a9fc759 100644 Binary files a/docs/en/UI/Angular/images/generated-files-via-generate-proxy.png and b/docs/en/UI/Angular/images/generated-files-via-generate-proxy.png differ diff --git a/docs/en/UI/Angular/images/layout-components.png b/docs/en/UI/Angular/images/layout-components.png index 3193b47bd1..12f8f8bd1e 100644 Binary files a/docs/en/UI/Angular/images/layout-components.png and b/docs/en/UI/Angular/images/layout-components.png differ diff --git a/docs/en/UI/Angular/images/locale-error.png b/docs/en/UI/Angular/images/locale-error.png index de385a59c0..3eaa73fec8 100644 Binary files a/docs/en/UI/Angular/images/locale-error.png and b/docs/en/UI/Angular/images/locale-error.png differ diff --git a/docs/en/UI/Angular/images/logo-component.png b/docs/en/UI/Angular/images/logo-component.png index 5c11fbf617..b1c2089922 100644 Binary files a/docs/en/UI/Angular/images/logo-component.png and b/docs/en/UI/Angular/images/logo-component.png differ diff --git a/docs/en/UI/Angular/images/modal-result-1.jpg b/docs/en/UI/Angular/images/modal-result-1.jpg index 89dbbc0cb1..c3f976c504 100644 Binary files a/docs/en/UI/Angular/images/modal-result-1.jpg and b/docs/en/UI/Angular/images/modal-result-1.jpg differ diff --git a/docs/en/UI/Angular/images/modal-result-2.jpg b/docs/en/UI/Angular/images/modal-result-2.jpg index e17f2631ab..fdedc53020 100644 Binary files a/docs/en/UI/Angular/images/modal-result-2.jpg and b/docs/en/UI/Angular/images/modal-result-2.jpg differ diff --git a/docs/en/UI/Angular/images/my-roles-component-form-extensions.jpg b/docs/en/UI/Angular/images/my-roles-component-form-extensions.jpg index a686d26edc..3c2c277cf4 100644 Binary files a/docs/en/UI/Angular/images/my-roles-component-form-extensions.jpg and b/docs/en/UI/Angular/images/my-roles-component-form-extensions.jpg differ diff --git a/docs/en/UI/Angular/images/my-roles-component-with-extensions.jpg b/docs/en/UI/Angular/images/my-roles-component-with-extensions.jpg index 1ac82c40b7..cf8c12b795 100644 Binary files a/docs/en/UI/Angular/images/my-roles-component-with-extensions.jpg and b/docs/en/UI/Angular/images/my-roles-component-with-extensions.jpg differ diff --git a/docs/en/UI/Angular/images/nav-items-component.png b/docs/en/UI/Angular/images/nav-items-component.png index d3e69916b6..e4667abf26 100644 Binary files a/docs/en/UI/Angular/images/nav-items-component.png and b/docs/en/UI/Angular/images/nav-items-component.png differ diff --git a/docs/en/UI/Angular/images/navigation-menu-after-patching.png b/docs/en/UI/Angular/images/navigation-menu-after-patching.png index 2f6bf08c88..3466b0c3e9 100644 Binary files a/docs/en/UI/Angular/images/navigation-menu-after-patching.png and b/docs/en/UI/Angular/images/navigation-menu-after-patching.png differ diff --git a/docs/en/UI/Angular/images/navigation-menu-search-input.png b/docs/en/UI/Angular/images/navigation-menu-search-input.png index e93b7927d1..f4366609ff 100644 Binary files a/docs/en/UI/Angular/images/navigation-menu-search-input.png and b/docs/en/UI/Angular/images/navigation-menu-search-input.png differ diff --git a/docs/en/UI/Angular/images/navigation-menu-via-app-routing.png b/docs/en/UI/Angular/images/navigation-menu-via-app-routing.png index 4d5f61301c..a14155095c 100644 Binary files a/docs/en/UI/Angular/images/navigation-menu-via-app-routing.png and b/docs/en/UI/Angular/images/navigation-menu-via-app-routing.png differ diff --git a/docs/en/UI/Angular/images/navigation-menu-via-config-state.png b/docs/en/UI/Angular/images/navigation-menu-via-config-state.png index 19944f154d..d5b09b0dcf 100644 Binary files a/docs/en/UI/Angular/images/navigation-menu-via-config-state.png and b/docs/en/UI/Angular/images/navigation-menu-via-config-state.png differ diff --git a/docs/en/UI/Angular/images/page-alert-warning-example.png b/docs/en/UI/Angular/images/page-alert-warning-example.png index 253a811a22..f07b6c4fa9 100644 Binary files a/docs/en/UI/Angular/images/page-alert-warning-example.png and b/docs/en/UI/Angular/images/page-alert-warning-example.png differ diff --git a/docs/en/UI/Angular/images/page-alert-with-html-example.png b/docs/en/UI/Angular/images/page-alert-with-html-example.png index a07133faf2..ac795089c6 100644 Binary files a/docs/en/UI/Angular/images/page-alert-with-html-example.png and b/docs/en/UI/Angular/images/page-alert-with-html-example.png differ diff --git a/docs/en/UI/Angular/images/page-alert-with-params-example.png b/docs/en/UI/Angular/images/page-alert-with-params-example.png index 8fc5236de3..5d98af55bd 100644 Binary files a/docs/en/UI/Angular/images/page-alert-with-params-example.png and b/docs/en/UI/Angular/images/page-alert-with-params-example.png differ diff --git a/docs/en/UI/Angular/images/permission-management-modal.png b/docs/en/UI/Angular/images/permission-management-modal.png index 05cee8a2e1..69521f8c7b 100644 Binary files a/docs/en/UI/Angular/images/permission-management-modal.png and b/docs/en/UI/Angular/images/permission-management-modal.png differ diff --git a/docs/en/UI/Angular/images/pie-chart.png b/docs/en/UI/Angular/images/pie-chart.png index c4a9c86750..ea0c8198a9 100644 Binary files a/docs/en/UI/Angular/images/pie-chart.png and b/docs/en/UI/Angular/images/pie-chart.png differ diff --git a/docs/en/UI/Angular/images/pwa-configuration-ng-add.png b/docs/en/UI/Angular/images/pwa-configuration-ng-add.png index f96ac3bef1..edcf47ef6c 100644 Binary files a/docs/en/UI/Angular/images/pwa-configuration-ng-add.png and b/docs/en/UI/Angular/images/pwa-configuration-ng-add.png differ diff --git a/docs/en/UI/Angular/images/quick-start---new-project-home-page.png b/docs/en/UI/Angular/images/quick-start---new-project-home-page.png index 6d11e08aa2..1e536268e6 100644 Binary files a/docs/en/UI/Angular/images/quick-start---new-project-home-page.png and b/docs/en/UI/Angular/images/quick-start---new-project-home-page.png differ diff --git a/docs/en/UI/Angular/images/quick-start---production-build-optimization.png b/docs/en/UI/Angular/images/quick-start---production-build-optimization.png index 54e7d10d51..28afefe5f5 100644 Binary files a/docs/en/UI/Angular/images/quick-start---production-build-optimization.png and b/docs/en/UI/Angular/images/quick-start---production-build-optimization.png differ diff --git a/docs/en/UI/Angular/images/quick-start---root-folder-structure.png b/docs/en/UI/Angular/images/quick-start---root-folder-structure.png index 3912c755d5..8ca8b00c8a 100644 Binary files a/docs/en/UI/Angular/images/quick-start---root-folder-structure.png and b/docs/en/UI/Angular/images/quick-start---root-folder-structure.png differ diff --git a/docs/en/UI/Angular/images/quick-start---self-signed-certificate-error.png b/docs/en/UI/Angular/images/quick-start---self-signed-certificate-error.png index 5876bf7592..84440f16a1 100644 Binary files a/docs/en/UI/Angular/images/quick-start---self-signed-certificate-error.png and b/docs/en/UI/Angular/images/quick-start---self-signed-certificate-error.png differ diff --git a/docs/en/UI/Angular/images/quick-start---source-folder-structure.png b/docs/en/UI/Angular/images/quick-start---source-folder-structure.png index 6bcb2edb74..06e2a303ad 100644 Binary files a/docs/en/UI/Angular/images/quick-start---source-folder-structure.png and b/docs/en/UI/Angular/images/quick-start---source-folder-structure.png differ diff --git a/docs/en/UI/Angular/images/replaced-logo-component.png b/docs/en/UI/Angular/images/replaced-logo-component.png index 4661b390a8..c93a9c826d 100644 Binary files a/docs/en/UI/Angular/images/replaced-logo-component.png and b/docs/en/UI/Angular/images/replaced-logo-component.png differ diff --git a/docs/en/UI/Angular/images/replaced-nav-items-component.png b/docs/en/UI/Angular/images/replaced-nav-items-component.png index e4cc0339ae..39c2b914be 100644 Binary files a/docs/en/UI/Angular/images/replaced-nav-items-component.png and b/docs/en/UI/Angular/images/replaced-nav-items-component.png differ diff --git a/docs/en/UI/Angular/images/replaced-routes-component.png b/docs/en/UI/Angular/images/replaced-routes-component.png index 3a6336afe0..15497f73f6 100644 Binary files a/docs/en/UI/Angular/images/replaced-routes-component.png and b/docs/en/UI/Angular/images/replaced-routes-component.png differ diff --git a/docs/en/UI/Angular/images/routes-component.png b/docs/en/UI/Angular/images/routes-component.png index b708e86d36..8154629784 100644 Binary files a/docs/en/UI/Angular/images/routes-component.png and b/docs/en/UI/Angular/images/routes-component.png differ diff --git a/docs/en/UI/Angular/images/showPasswordDirective1.png b/docs/en/UI/Angular/images/showPasswordDirective1.png index 7b64be2b5f..df386e4ed7 100644 Binary files a/docs/en/UI/Angular/images/showPasswordDirective1.png and b/docs/en/UI/Angular/images/showPasswordDirective1.png differ diff --git a/docs/en/UI/Angular/images/showPasswordDirective2.png b/docs/en/UI/Angular/images/showPasswordDirective2.png index 43199ffeaa..fa52720a6c 100644 Binary files a/docs/en/UI/Angular/images/showPasswordDirective2.png and b/docs/en/UI/Angular/images/showPasswordDirective2.png differ diff --git a/docs/en/UI/Angular/images/table-of-packages-to-update.png b/docs/en/UI/Angular/images/table-of-packages-to-update.png index fc492d3740..76a824e8f7 100644 Binary files a/docs/en/UI/Angular/images/table-of-packages-to-update.png and b/docs/en/UI/Angular/images/table-of-packages-to-update.png differ diff --git a/docs/en/UI/Angular/images/tenant-switching-box.png b/docs/en/UI/Angular/images/tenant-switching-box.png index ed4d299c55..5492931d19 100644 Binary files a/docs/en/UI/Angular/images/tenant-switching-box.png and b/docs/en/UI/Angular/images/tenant-switching-box.png differ diff --git a/docs/en/UI/Angular/images/tenants-page.png b/docs/en/UI/Angular/images/tenants-page.png index 8882d58d2f..1332d132a2 100644 Binary files a/docs/en/UI/Angular/images/tenants-page.png and b/docs/en/UI/Angular/images/tenants-page.png differ diff --git a/docs/en/UI/Angular/images/toast.png b/docs/en/UI/Angular/images/toast.png index 24cdd0fe0c..58ccadc96c 100644 Binary files a/docs/en/UI/Angular/images/toast.png and b/docs/en/UI/Angular/images/toast.png differ diff --git a/docs/en/UI/Angular/images/user-action-extension-click-me-ng.png b/docs/en/UI/Angular/images/user-action-extension-click-me-ng.png index 675f05217a..7e6b4d0b37 100644 Binary files a/docs/en/UI/Angular/images/user-action-extension-click-me-ng.png and b/docs/en/UI/Angular/images/user-action-extension-click-me-ng.png differ diff --git a/docs/en/UI/Angular/images/user-page-toolbar-extension-click-me-ng.png b/docs/en/UI/Angular/images/user-page-toolbar-extension-click-me-ng.png index fcd36e4a7b..372eab77a1 100644 Binary files a/docs/en/UI/Angular/images/user-page-toolbar-extension-click-me-ng.png and b/docs/en/UI/Angular/images/user-page-toolbar-extension-click-me-ng.png differ diff --git a/docs/en/UI/Angular/images/user-page-toolbar-extension-custom-click-me-ng.png b/docs/en/UI/Angular/images/user-page-toolbar-extension-custom-click-me-ng.png index d8fd054eda..28b7fc26c3 100644 Binary files a/docs/en/UI/Angular/images/user-page-toolbar-extension-custom-click-me-ng.png and b/docs/en/UI/Angular/images/user-page-toolbar-extension-custom-click-me-ng.png differ diff --git a/docs/en/UI/Angular/images/user-prop-extension-date-of-birth-field-ng.png b/docs/en/UI/Angular/images/user-prop-extension-date-of-birth-field-ng.png index 948c4a9fd5..07d7597efc 100644 Binary files a/docs/en/UI/Angular/images/user-prop-extension-date-of-birth-field-ng.png and b/docs/en/UI/Angular/images/user-prop-extension-date-of-birth-field-ng.png differ diff --git a/docs/en/UI/Angular/images/user-prop-extension-name-column-ng.png b/docs/en/UI/Angular/images/user-prop-extension-name-column-ng.png index 82d72b40ec..5560a422a2 100644 Binary files a/docs/en/UI/Angular/images/user-prop-extension-name-column-ng.png and b/docs/en/UI/Angular/images/user-prop-extension-name-column-ng.png differ diff --git a/docs/en/images/MonthlyProfitWidgetFiles.png b/docs/en/images/MonthlyProfitWidgetFiles.png index e1e9d316f5..c3e4d6f1ab 100644 Binary files a/docs/en/images/MonthlyProfitWidgetFiles.png and b/docs/en/images/MonthlyProfitWidgetFiles.png differ diff --git a/docs/en/images/abp-dynamic-form-result.png b/docs/en/images/abp-dynamic-form-result.png index f9ecf14bd0..10048c9156 100644 Binary files a/docs/en/images/abp-dynamic-form-result.png and b/docs/en/images/abp-dynamic-form-result.png differ diff --git a/docs/en/images/abp-form-input-validation-error-french-name.png b/docs/en/images/abp-form-input-validation-error-french-name.png index 5112cd2597..d8906aec46 100644 Binary files a/docs/en/images/abp-form-input-validation-error-french-name.png and b/docs/en/images/abp-form-input-validation-error-french-name.png differ diff --git a/docs/en/images/abp-form-input-validation-error-french.png b/docs/en/images/abp-form-input-validation-error-french.png index cb8316d04b..6fbe26b81b 100644 Binary files a/docs/en/images/abp-form-input-validation-error-french.png and b/docs/en/images/abp-form-input-validation-error-french.png differ diff --git a/docs/en/images/abp-form-input-validation-error.png b/docs/en/images/abp-form-input-validation-error.png index 2c60adc343..518cdc8fdf 100644 Binary files a/docs/en/images/abp-form-input-validation-error.png and b/docs/en/images/abp-form-input-validation-error.png differ diff --git a/docs/en/images/abp-select2-multiple.png b/docs/en/images/abp-select2-multiple.png index bdc2d7cc95..057bde4b57 100644 Binary files a/docs/en/images/abp-select2-multiple.png and b/docs/en/images/abp-select2-multiple.png differ diff --git a/docs/en/images/abp-select2-single.png b/docs/en/images/abp-select2-single.png index 219355dd66..0690b83834 100644 Binary files a/docs/en/images/abp-select2-single.png and b/docs/en/images/abp-select2-single.png differ diff --git a/docs/en/images/account-module-forgot-password.png b/docs/en/images/account-module-forgot-password.png index 92fce47a22..ddb4fa4a66 100644 Binary files a/docs/en/images/account-module-forgot-password.png and b/docs/en/images/account-module-forgot-password.png differ diff --git a/docs/en/images/account-module-login.png b/docs/en/images/account-module-login.png index abde22db57..2e91d01622 100644 Binary files a/docs/en/images/account-module-login.png and b/docs/en/images/account-module-login.png differ diff --git a/docs/en/images/account-module-manage-account.png b/docs/en/images/account-module-manage-account.png index 92a5f34d72..28fdf80342 100644 Binary files a/docs/en/images/account-module-manage-account.png and b/docs/en/images/account-module-manage-account.png differ diff --git a/docs/en/images/account-module-register.png b/docs/en/images/account-module-register.png index f2b9c0587a..6c04039366 100644 Binary files a/docs/en/images/account-module-register.png and b/docs/en/images/account-module-register.png differ diff --git a/docs/en/images/add-new-propert-to-user-database-extra-properties.png b/docs/en/images/add-new-propert-to-user-database-extra-properties.png index 90c697461e..fe43ab0d4c 100644 Binary files a/docs/en/images/add-new-propert-to-user-database-extra-properties.png and b/docs/en/images/add-new-propert-to-user-database-extra-properties.png differ diff --git a/docs/en/images/add-new-propert-to-user-database-field.png b/docs/en/images/add-new-propert-to-user-database-field.png index 334ba0aa35..713d33237f 100644 Binary files a/docs/en/images/add-new-propert-to-user-database-field.png and b/docs/en/images/add-new-propert-to-user-database-field.png differ diff --git a/docs/en/images/add-new-property-enum.png b/docs/en/images/add-new-property-enum.png index 34a14b1bfb..0f8427764e 100644 Binary files a/docs/en/images/add-new-property-enum.png and b/docs/en/images/add-new-property-enum.png differ diff --git a/docs/en/images/add-new-property-to-user-form-validation-error-custom.png b/docs/en/images/add-new-property-to-user-form-validation-error-custom.png index 6bb1799e19..fea1cfb02b 100644 Binary files a/docs/en/images/add-new-property-to-user-form-validation-error-custom.png and b/docs/en/images/add-new-property-to-user-form-validation-error-custom.png differ diff --git a/docs/en/images/add-new-property-to-user-form-validation-error.png b/docs/en/images/add-new-property-to-user-form-validation-error.png index dd2eb8ad1d..79c0c7cff2 100644 Binary files a/docs/en/images/add-new-property-to-user-form-validation-error.png and b/docs/en/images/add-new-property-to-user-form-validation-error.png differ diff --git a/docs/en/images/add-new-property-to-user-form.png b/docs/en/images/add-new-property-to-user-form.png index bc12a6d5ad..8e42823a2d 100644 Binary files a/docs/en/images/add-new-property-to-user-form.png and b/docs/en/images/add-new-property-to-user-form.png differ diff --git a/docs/en/images/add-new-property-to-user-table.png b/docs/en/images/add-new-property-to-user-table.png index a2a15087cc..19f4fea22d 100644 Binary files a/docs/en/images/add-new-property-to-user-table.png and b/docs/en/images/add-new-property-to-user-table.png differ diff --git a/docs/en/images/ajax-error.png b/docs/en/images/ajax-error.png index 2b9bc2bb37..ffc456cd41 100644 Binary files a/docs/en/images/ajax-error.png and b/docs/en/images/ajax-error.png differ diff --git a/docs/en/images/angular-folder-structure.png b/docs/en/images/angular-folder-structure.png index e17eb135ce..c202a7aaa3 100644 Binary files a/docs/en/images/angular-folder-structure.png and b/docs/en/images/angular-folder-structure.png differ diff --git a/docs/en/images/angular-footer.png b/docs/en/images/angular-footer.png index 16be8194ab..21b74848af 100644 Binary files a/docs/en/images/angular-footer.png and b/docs/en/images/angular-footer.png differ diff --git a/docs/en/images/angular-module-dev-app-project.png b/docs/en/images/angular-module-dev-app-project.png index 08e0e9fd6c..94eeecefaf 100644 Binary files a/docs/en/images/angular-module-dev-app-project.png and b/docs/en/images/angular-module-dev-app-project.png differ diff --git a/docs/en/images/angular-module-folder-structure.png b/docs/en/images/angular-module-folder-structure.png index ae2333b295..e92114041b 100644 Binary files a/docs/en/images/angular-module-folder-structure.png and b/docs/en/images/angular-module-folder-structure.png differ diff --git a/docs/en/images/angular-template-structure-diagram.png b/docs/en/images/angular-template-structure-diagram.png index d27d75bf7f..269c54984c 100644 Binary files a/docs/en/images/angular-template-structure-diagram.png and b/docs/en/images/angular-template-structure-diagram.png differ diff --git a/docs/en/images/app-startup-console-initial.png b/docs/en/images/app-startup-console-initial.png index 2928037500..030d7df466 100644 Binary files a/docs/en/images/app-startup-console-initial.png and b/docs/en/images/app-startup-console-initial.png differ diff --git a/docs/en/images/aspnetcore-web-tests-in-solution.png b/docs/en/images/aspnetcore-web-tests-in-solution.png index 12fca58139..7196f6aad2 100644 Binary files a/docs/en/images/aspnetcore-web-tests-in-solution.png and b/docs/en/images/aspnetcore-web-tests-in-solution.png differ diff --git a/docs/en/images/auditlog-object-diagram.png b/docs/en/images/auditlog-object-diagram.png index a7e86a2bb2..f89c110147 100644 Binary files a/docs/en/images/auditlog-object-diagram.png and b/docs/en/images/auditlog-object-diagram.png differ diff --git a/docs/en/images/authorization-new-permission-ui-hierarcy.png b/docs/en/images/authorization-new-permission-ui-hierarcy.png index 078d67d50f..07abfc7132 100644 Binary files a/docs/en/images/authorization-new-permission-ui-hierarcy.png and b/docs/en/images/authorization-new-permission-ui-hierarcy.png differ diff --git a/docs/en/images/authorization-new-permission-ui-localized.png b/docs/en/images/authorization-new-permission-ui-localized.png index 610ce39faf..948fd618d9 100644 Binary files a/docs/en/images/authorization-new-permission-ui-localized.png and b/docs/en/images/authorization-new-permission-ui-localized.png differ diff --git a/docs/en/images/authorization-new-permission-ui.png b/docs/en/images/authorization-new-permission-ui.png index 554f27e78d..1190f04b70 100644 Binary files a/docs/en/images/authorization-new-permission-ui.png and b/docs/en/images/authorization-new-permission-ui.png differ diff --git a/docs/en/images/basic-console-application-solution.png b/docs/en/images/basic-console-application-solution.png index 788bad0381..b8ed5c51e6 100644 Binary files a/docs/en/images/basic-console-application-solution.png and b/docs/en/images/basic-console-application-solution.png differ diff --git a/docs/en/images/basic-maui-application-solution.png b/docs/en/images/basic-maui-application-solution.png index c1dd24bd32..f1db8affe2 100644 Binary files a/docs/en/images/basic-maui-application-solution.png and b/docs/en/images/basic-maui-application-solution.png differ diff --git a/docs/en/images/basic-theme-account-layout.png b/docs/en/images/basic-theme-account-layout.png index bccd0e20cc..6436bee756 100644 Binary files a/docs/en/images/basic-theme-account-layout.png and b/docs/en/images/basic-theme-account-layout.png differ diff --git a/docs/en/images/basic-theme-application-layout-blazor.png b/docs/en/images/basic-theme-application-layout-blazor.png index f01becad07..9d7f122c1d 100644 Binary files a/docs/en/images/basic-theme-application-layout-blazor.png and b/docs/en/images/basic-theme-application-layout-blazor.png differ diff --git a/docs/en/images/basic-theme-application-layout-parts.png b/docs/en/images/basic-theme-application-layout-parts.png index 5e8f9147a9..db1773ca79 100644 Binary files a/docs/en/images/basic-theme-application-layout-parts.png and b/docs/en/images/basic-theme-application-layout-parts.png differ diff --git a/docs/en/images/basic-theme-application-layout.png b/docs/en/images/basic-theme-application-layout.png index 353e294056..6124d58cb5 100644 Binary files a/docs/en/images/basic-theme-application-layout.png and b/docs/en/images/basic-theme-application-layout.png differ diff --git a/docs/en/images/basic-wpf-application-solution.png b/docs/en/images/basic-wpf-application-solution.png index 5943acd93f..f4c6864e6d 100644 Binary files a/docs/en/images/basic-wpf-application-solution.png and b/docs/en/images/basic-wpf-application-solution.png differ diff --git a/docs/en/images/blazor-generic-exception-message.png b/docs/en/images/blazor-generic-exception-message.png index 5e128003cf..f414fd1ce5 100644 Binary files a/docs/en/images/blazor-generic-exception-message.png and b/docs/en/images/blazor-generic-exception-message.png differ diff --git a/docs/en/images/blazor-message-confirm.png b/docs/en/images/blazor-message-confirm.png index fe03620283..a161579588 100644 Binary files a/docs/en/images/blazor-message-confirm.png and b/docs/en/images/blazor-message-confirm.png differ diff --git a/docs/en/images/blazor-message-error.png b/docs/en/images/blazor-message-error.png index 5192eae1e9..eb8abf2e0d 100644 Binary files a/docs/en/images/blazor-message-error.png and b/docs/en/images/blazor-message-error.png differ diff --git a/docs/en/images/blazor-message-success.png b/docs/en/images/blazor-message-success.png index 592fac8b7d..8dca567eb2 100644 Binary files a/docs/en/images/blazor-message-success.png and b/docs/en/images/blazor-message-success.png differ diff --git a/docs/en/images/blazor-notification-bell-component.png b/docs/en/images/blazor-notification-bell-component.png index 65934ec24b..719ae436aa 100644 Binary files a/docs/en/images/blazor-notification-bell-component.png and b/docs/en/images/blazor-notification-bell-component.png differ diff --git a/docs/en/images/blazor-notification-success.png b/docs/en/images/blazor-notification-success.png index d68dcf47d8..ff5926cef9 100644 Binary files a/docs/en/images/blazor-notification-success.png and b/docs/en/images/blazor-notification-success.png differ diff --git a/docs/en/images/blazor-page-alert-example.png b/docs/en/images/blazor-page-alert-example.png index 799826e57f..3e80ef5a92 100644 Binary files a/docs/en/images/blazor-page-alert-example.png and b/docs/en/images/blazor-page-alert-example.png differ diff --git a/docs/en/images/blazor-user-friendly-exception.png b/docs/en/images/blazor-user-friendly-exception.png index fa2a70d931..32118280c3 100644 Binary files a/docs/en/images/blazor-user-friendly-exception.png and b/docs/en/images/blazor-user-friendly-exception.png differ diff --git a/docs/en/images/bookstore-added-brand-files.png b/docs/en/images/bookstore-added-brand-files.png index 15ef283a2a..e23a3a0a7b 100644 Binary files a/docs/en/images/bookstore-added-brand-files.png and b/docs/en/images/bookstore-added-brand-files.png differ diff --git a/docs/en/images/bookstore-added-logo.png b/docs/en/images/bookstore-added-logo.png index 55af77a5f4..8f2c722d6c 100644 Binary files a/docs/en/images/bookstore-added-logo.png and b/docs/en/images/bookstore-added-logo.png differ diff --git a/docs/en/images/bookstore-added-role-js-file.png b/docs/en/images/bookstore-added-role-js-file.png index 00881bf808..850f6146ad 100644 Binary files a/docs/en/images/bookstore-added-role-js-file.png and b/docs/en/images/bookstore-added-role-js-file.png differ diff --git a/docs/en/images/bookstore-apis.png b/docs/en/images/bookstore-apis.png index aedd79c7f1..b7928c9637 100644 Binary files a/docs/en/images/bookstore-apis.png and b/docs/en/images/bookstore-apis.png differ diff --git a/docs/en/images/bookstore-banner-component.png b/docs/en/images/bookstore-banner-component.png index 2363b06fae..17828b074d 100644 Binary files a/docs/en/images/bookstore-banner-component.png and b/docs/en/images/bookstore-banner-component.png differ diff --git a/docs/en/images/bookstore-brand-area-highlighted.png b/docs/en/images/bookstore-brand-area-highlighted.png index 7ab1b8fb7f..10fb0ccbf1 100644 Binary files a/docs/en/images/bookstore-brand-area-highlighted.png and b/docs/en/images/bookstore-brand-area-highlighted.png differ diff --git a/docs/en/images/bookstore-branding-blazor.png b/docs/en/images/bookstore-branding-blazor.png index 74ddf35f0f..db6b5fc8aa 100644 Binary files a/docs/en/images/bookstore-branding-blazor.png and b/docs/en/images/bookstore-branding-blazor.png differ diff --git a/docs/en/images/bookstore-create-template.png b/docs/en/images/bookstore-create-template.png index 7cc96c8c94..bae34a3b64 100644 Binary files a/docs/en/images/bookstore-create-template.png and b/docs/en/images/bookstore-create-template.png differ diff --git a/docs/en/images/bookstore-efcore-dependencies.png b/docs/en/images/bookstore-efcore-dependencies.png index 3de5a679ef..cb77601880 100644 Binary files a/docs/en/images/bookstore-efcore-dependencies.png and b/docs/en/images/bookstore-efcore-dependencies.png differ diff --git a/docs/en/images/bookstore-global-css-file.png b/docs/en/images/bookstore-global-css-file.png index e764fef8ee..0c388140bb 100644 Binary files a/docs/en/images/bookstore-global-css-file.png and b/docs/en/images/bookstore-global-css-file.png differ diff --git a/docs/en/images/bookstore-google-analytics-view-component.png b/docs/en/images/bookstore-google-analytics-view-component.png index e548a00935..cc236c5e36 100644 Binary files a/docs/en/images/bookstore-google-analytics-view-component.png and b/docs/en/images/bookstore-google-analytics-view-component.png differ diff --git a/docs/en/images/bookstore-home-2.png b/docs/en/images/bookstore-home-2.png index 81eaaf0349..4469820fa8 100644 Binary files a/docs/en/images/bookstore-home-2.png and b/docs/en/images/bookstore-home-2.png differ diff --git a/docs/en/images/bookstore-home.png b/docs/en/images/bookstore-home.png index 5e5b512220..dc015aa67d 100644 Binary files a/docs/en/images/bookstore-home.png and b/docs/en/images/bookstore-home.png differ diff --git a/docs/en/images/bookstore-homepage.png b/docs/en/images/bookstore-homepage.png index 5e5b512220..dc015aa67d 100644 Binary files a/docs/en/images/bookstore-homepage.png and b/docs/en/images/bookstore-homepage.png differ diff --git a/docs/en/images/bookstore-login-2.png b/docs/en/images/bookstore-login-2.png index 5582fcd449..46ce67f205 100644 Binary files a/docs/en/images/bookstore-login-2.png and b/docs/en/images/bookstore-login-2.png differ diff --git a/docs/en/images/bookstore-login.png b/docs/en/images/bookstore-login.png index cd8bfa9bf9..02b5a823c5 100644 Binary files a/docs/en/images/bookstore-login.png and b/docs/en/images/bookstore-login.png differ diff --git a/docs/en/images/bookstore-logo-blazor.png b/docs/en/images/bookstore-logo-blazor.png index 4e01569813..2c3d814902 100644 Binary files a/docs/en/images/bookstore-logo-blazor.png and b/docs/en/images/bookstore-logo-blazor.png differ diff --git a/docs/en/images/bookstore-menus-highlighted.png b/docs/en/images/bookstore-menus-highlighted.png index c4f3237b00..584ba4b5f6 100644 Binary files a/docs/en/images/bookstore-menus-highlighted.png and b/docs/en/images/bookstore-menus-highlighted.png differ diff --git a/docs/en/images/bookstore-notification-icon-on-toolbar.png b/docs/en/images/bookstore-notification-icon-on-toolbar.png index 817491e9eb..a3c8f7d485 100644 Binary files a/docs/en/images/bookstore-notification-icon-on-toolbar.png and b/docs/en/images/bookstore-notification-icon-on-toolbar.png differ diff --git a/docs/en/images/bookstore-notification-view-component.png b/docs/en/images/bookstore-notification-view-component.png index 3fc300efe1..b258a699f9 100644 Binary files a/docs/en/images/bookstore-notification-view-component.png and b/docs/en/images/bookstore-notification-view-component.png differ diff --git a/docs/en/images/bookstore-rider-solution-tiered.png b/docs/en/images/bookstore-rider-solution-tiered.png index 25114bc51c..6c390d6512 100644 Binary files a/docs/en/images/bookstore-rider-solution-tiered.png and b/docs/en/images/bookstore-rider-solution-tiered.png differ diff --git a/docs/en/images/bookstore-second-database.png b/docs/en/images/bookstore-second-database.png index 3faf19496c..f08bece185 100644 Binary files a/docs/en/images/bookstore-second-database.png and b/docs/en/images/bookstore-second-database.png differ diff --git a/docs/en/images/bookstore-single-layer-solution-structure.png b/docs/en/images/bookstore-single-layer-solution-structure.png index edc495d909..05f16fc893 100644 Binary files a/docs/en/images/bookstore-single-layer-solution-structure.png and b/docs/en/images/bookstore-single-layer-solution-structure.png differ diff --git a/docs/en/images/bookstore-swagger-ui-host.png b/docs/en/images/bookstore-swagger-ui-host.png index 74ff73f7e3..7ebd8d8e37 100644 Binary files a/docs/en/images/bookstore-swagger-ui-host.png and b/docs/en/images/bookstore-swagger-ui-host.png differ diff --git a/docs/en/images/bookstore-toolbar-highlighted.png b/docs/en/images/bookstore-toolbar-highlighted.png index f2b7c3f57e..ce300df5b7 100644 Binary files a/docs/en/images/bookstore-toolbar-highlighted.png and b/docs/en/images/bookstore-toolbar-highlighted.png differ diff --git a/docs/en/images/bookstore-user-management-v2.png b/docs/en/images/bookstore-user-management-v2.png index dd95740754..cd66010e05 100644 Binary files a/docs/en/images/bookstore-user-management-v2.png and b/docs/en/images/bookstore-user-management-v2.png differ diff --git a/docs/en/images/bookstore-visual-studio-solution-for-spa.png b/docs/en/images/bookstore-visual-studio-solution-for-spa.png index 5a5a283c7d..d114ed188c 100644 Binary files a/docs/en/images/bookstore-visual-studio-solution-for-spa.png and b/docs/en/images/bookstore-visual-studio-solution-for-spa.png differ diff --git a/docs/en/images/bookstore-visual-studio-solution-tiered.png b/docs/en/images/bookstore-visual-studio-solution-tiered.png index 19662bf731..9affe841aa 100644 Binary files a/docs/en/images/bookstore-visual-studio-solution-tiered.png and b/docs/en/images/bookstore-visual-studio-solution-tiered.png differ diff --git a/docs/en/images/bookstore-visual-studio-solution-v3.png b/docs/en/images/bookstore-visual-studio-solution-v3.png index f8ef7f2ba0..0ee4fd274b 100644 Binary files a/docs/en/images/bookstore-visual-studio-solution-v3.png and b/docs/en/images/bookstore-visual-studio-solution-v3.png differ diff --git a/docs/en/images/branding-appname.png b/docs/en/images/branding-appname.png index 9300ad2c7f..d6af568a65 100644 Binary files a/docs/en/images/branding-appname.png and b/docs/en/images/branding-appname.png differ diff --git a/docs/en/images/branding-nobrand.png b/docs/en/images/branding-nobrand.png index 1fdf78472b..78feb97c38 100644 Binary files a/docs/en/images/branding-nobrand.png and b/docs/en/images/branding-nobrand.png differ diff --git a/docs/en/images/breadcrumbs-example.png b/docs/en/images/breadcrumbs-example.png index 8b4bbc62d7..a319aa2290 100644 Binary files a/docs/en/images/breadcrumbs-example.png and b/docs/en/images/breadcrumbs-example.png differ diff --git a/docs/en/images/build-action-embedded-resource-sample.png b/docs/en/images/build-action-embedded-resource-sample.png index d001c5d19f..700e9921f4 100644 Binary files a/docs/en/images/build-action-embedded-resource-sample.png and b/docs/en/images/build-action-embedded-resource-sample.png differ diff --git a/docs/en/images/cms-kit-page-editor.png b/docs/en/images/cms-kit-page-editor.png index 2906da8663..91706043ce 100644 Binary files a/docs/en/images/cms-kit-page-editor.png and b/docs/en/images/cms-kit-page-editor.png differ diff --git a/docs/en/images/cms-kit-widget-preview.png b/docs/en/images/cms-kit-widget-preview.png index df071adc65..08d02318bb 100644 Binary files a/docs/en/images/cms-kit-widget-preview.png and b/docs/en/images/cms-kit-widget-preview.png differ diff --git a/docs/en/images/cmskit-module-blog-post-edit.png b/docs/en/images/cmskit-module-blog-post-edit.png index 528bc6b499..5ff460739a 100644 Binary files a/docs/en/images/cmskit-module-blog-post-edit.png and b/docs/en/images/cmskit-module-blog-post-edit.png differ diff --git a/docs/en/images/cmskit-module-blog-posts-page.png b/docs/en/images/cmskit-module-blog-posts-page.png index 64d5d0e934..217ead0997 100644 Binary files a/docs/en/images/cmskit-module-blog-posts-page.png and b/docs/en/images/cmskit-module-blog-posts-page.png differ diff --git a/docs/en/images/cmskit-module-blogs-edit.png b/docs/en/images/cmskit-module-blogs-edit.png index b2da4e5b5a..810ab8b033 100644 Binary files a/docs/en/images/cmskit-module-blogs-edit.png and b/docs/en/images/cmskit-module-blogs-edit.png differ diff --git a/docs/en/images/cmskit-module-blogs-feature-action.png b/docs/en/images/cmskit-module-blogs-feature-action.png index c0f0b1d3f4..97d522bbe0 100644 Binary files a/docs/en/images/cmskit-module-blogs-feature-action.png and b/docs/en/images/cmskit-module-blogs-feature-action.png differ diff --git a/docs/en/images/cmskit-module-blogs-page.png b/docs/en/images/cmskit-module-blogs-page.png index 6c150429b7..89bdcf3402 100644 Binary files a/docs/en/images/cmskit-module-blogs-page.png and b/docs/en/images/cmskit-module-blogs-page.png differ diff --git a/docs/en/images/cmskit-module-comment-page.png b/docs/en/images/cmskit-module-comment-page.png index 6647a6dd09..b6cd793846 100644 Binary files a/docs/en/images/cmskit-module-comment-page.png and b/docs/en/images/cmskit-module-comment-page.png differ diff --git a/docs/en/images/cmskit-module-comments-detail.png b/docs/en/images/cmskit-module-comments-detail.png index 686a70e1f8..3ee20e534c 100644 Binary files a/docs/en/images/cmskit-module-comments-detail.png and b/docs/en/images/cmskit-module-comments-detail.png differ diff --git a/docs/en/images/cmskit-module-editor-parameter.png b/docs/en/images/cmskit-module-editor-parameter.png index 1424716591..76cc595640 100644 Binary files a/docs/en/images/cmskit-module-editor-parameter.png and b/docs/en/images/cmskit-module-editor-parameter.png differ diff --git a/docs/en/images/cmskit-module-features-dialog-2.png b/docs/en/images/cmskit-module-features-dialog-2.png index b6dd409e0a..08d456b9b3 100644 Binary files a/docs/en/images/cmskit-module-features-dialog-2.png and b/docs/en/images/cmskit-module-features-dialog-2.png differ diff --git a/docs/en/images/cmskit-module-features-dialog.png b/docs/en/images/cmskit-module-features-dialog.png index 23aa2aa17a..5cefedfe58 100644 Binary files a/docs/en/images/cmskit-module-features-dialog.png and b/docs/en/images/cmskit-module-features-dialog.png differ diff --git a/docs/en/images/cmskit-module-features-scroll-index.png b/docs/en/images/cmskit-module-features-scroll-index.png index 0bc3dedcc5..6f22f456f6 100644 Binary files a/docs/en/images/cmskit-module-features-scroll-index.png and b/docs/en/images/cmskit-module-features-scroll-index.png differ diff --git a/docs/en/images/cmskit-module-global-resources-page.png b/docs/en/images/cmskit-module-global-resources-page.png index 9090c97412..ffd64b4ec0 100644 Binary files a/docs/en/images/cmskit-module-global-resources-page.png and b/docs/en/images/cmskit-module-global-resources-page.png differ diff --git a/docs/en/images/cmskit-module-menus-page.png b/docs/en/images/cmskit-module-menus-page.png index c265763788..2367c9154b 100644 Binary files a/docs/en/images/cmskit-module-menus-page.png and b/docs/en/images/cmskit-module-menus-page.png differ diff --git a/docs/en/images/cmskit-module-menus-public.png b/docs/en/images/cmskit-module-menus-public.png index 0b67064334..a3e1def4af 100644 Binary files a/docs/en/images/cmskit-module-menus-public.png and b/docs/en/images/cmskit-module-menus-public.png differ diff --git a/docs/en/images/cmskit-module-pages-edit.png b/docs/en/images/cmskit-module-pages-edit.png index cca074fdac..5c3933849f 100644 Binary files a/docs/en/images/cmskit-module-pages-edit.png and b/docs/en/images/cmskit-module-pages-edit.png differ diff --git a/docs/en/images/cmskit-module-pages-page.png b/docs/en/images/cmskit-module-pages-page.png index 5265577565..0cb946b552 100644 Binary files a/docs/en/images/cmskit-module-pages-page.png and b/docs/en/images/cmskit-module-pages-page.png differ diff --git a/docs/en/images/cmskit-module-ratings.png b/docs/en/images/cmskit-module-ratings.png index f97c934f15..6d16c954e9 100644 Binary files a/docs/en/images/cmskit-module-ratings.png and b/docs/en/images/cmskit-module-ratings.png differ diff --git a/docs/en/images/cmskit-module-reactions.png b/docs/en/images/cmskit-module-reactions.png index b915b85f91..6840f12297 100644 Binary files a/docs/en/images/cmskit-module-reactions.png and b/docs/en/images/cmskit-module-reactions.png differ diff --git a/docs/en/images/cmskit-module-tag-edit.png b/docs/en/images/cmskit-module-tag-edit.png index eb1ebb3a52..1bc1cb2035 100644 Binary files a/docs/en/images/cmskit-module-tag-edit.png and b/docs/en/images/cmskit-module-tag-edit.png differ diff --git a/docs/en/images/cmskit-module-tags-page.png b/docs/en/images/cmskit-module-tags-page.png index f41b6ecbd0..39f515b9f4 100644 Binary files a/docs/en/images/cmskit-module-tags-page.png and b/docs/en/images/cmskit-module-tags-page.png differ diff --git a/docs/en/images/cmskit-without-parameter.png b/docs/en/images/cmskit-without-parameter.png index 49ec3b754f..9c2c7f300b 100644 Binary files a/docs/en/images/cmskit-without-parameter.png and b/docs/en/images/cmskit-without-parameter.png differ diff --git a/docs/en/images/create-aspnet-core-application.png b/docs/en/images/create-aspnet-core-application.png index b8b98f5c32..afd1447ba8 100644 Binary files a/docs/en/images/create-aspnet-core-application.png and b/docs/en/images/create-aspnet-core-application.png differ diff --git a/docs/en/images/create-new-aspnet-core-application-v2.png b/docs/en/images/create-new-aspnet-core-application-v2.png index f8274ae2a4..d2bce84775 100644 Binary files a/docs/en/images/create-new-aspnet-core-application-v2.png and b/docs/en/images/create-new-aspnet-core-application-v2.png differ diff --git a/docs/en/images/create-new-aspnet-core-application.png b/docs/en/images/create-new-aspnet-core-application.png index fe78b9051d..2c38289810 100644 Binary files a/docs/en/images/create-new-aspnet-core-application.png and b/docs/en/images/create-new-aspnet-core-application.png differ diff --git a/docs/en/images/create-new-net-core-console-application.png b/docs/en/images/create-new-net-core-console-application.png index c5f39bfb37..0c2b3dbcb8 100644 Binary files a/docs/en/images/create-new-net-core-console-application.png and b/docs/en/images/create-new-net-core-console-application.png differ diff --git a/docs/en/images/custom-settings.png b/docs/en/images/custom-settings.png index dc40ad3fa9..afd1f58549 100644 Binary files a/docs/en/images/custom-settings.png and b/docs/en/images/custom-settings.png differ diff --git a/docs/en/images/dashboard1.png b/docs/en/images/dashboard1.png index 4102bbd4c1..8c542b8786 100644 Binary files a/docs/en/images/dashboard1.png and b/docs/en/images/dashboard1.png differ diff --git a/docs/en/images/data-table-colum-extension-blazor-component-render-solution.png b/docs/en/images/data-table-colum-extension-blazor-component-render-solution.png index 77612b5d34..b52c8f7feb 100644 Binary files a/docs/en/images/data-table-colum-extension-blazor-component-render-solution.png and b/docs/en/images/data-table-colum-extension-blazor-component-render-solution.png differ diff --git a/docs/en/images/data-table-colum-extension-blazor-component-render.png b/docs/en/images/data-table-colum-extension-blazor-component-render.png index 9d018e2ab9..06768ebe06 100644 Binary files a/docs/en/images/data-table-colum-extension-blazor-component-render.png and b/docs/en/images/data-table-colum-extension-blazor-component-render.png differ diff --git a/docs/en/images/datatables-custom-render-date.png b/docs/en/images/datatables-custom-render-date.png index 344237aea7..d2d59e3a1c 100644 Binary files a/docs/en/images/datatables-custom-render-date.png and b/docs/en/images/datatables-custom-render-date.png differ diff --git a/docs/en/images/datatables-default-render-date.png b/docs/en/images/datatables-default-render-date.png index 430c889d2f..a3c6c53c21 100644 Binary files a/docs/en/images/datatables-default-render-date.png and b/docs/en/images/datatables-default-render-date.png differ diff --git a/docs/en/images/datatables-example.png b/docs/en/images/datatables-example.png index ef3e74576b..177431debb 100644 Binary files a/docs/en/images/datatables-example.png and b/docs/en/images/datatables-example.png differ diff --git a/docs/en/images/datatables-row-actions-confirmation.png b/docs/en/images/datatables-row-actions-confirmation.png index 9be8433f9c..f1854cac89 100644 Binary files a/docs/en/images/datatables-row-actions-confirmation.png and b/docs/en/images/datatables-row-actions-confirmation.png differ diff --git a/docs/en/images/datatables-row-actions-icon.png b/docs/en/images/datatables-row-actions-icon.png index 70111fc1ac..60032c0e10 100644 Binary files a/docs/en/images/datatables-row-actions-icon.png and b/docs/en/images/datatables-row-actions-icon.png differ diff --git a/docs/en/images/datatables-row-actions.png b/docs/en/images/datatables-row-actions.png index 4eae0f098a..3605b0d671 100644 Binary files a/docs/en/images/datatables-row-actions.png and b/docs/en/images/datatables-row-actions.png differ diff --git a/docs/en/images/db-migrator-app.png b/docs/en/images/db-migrator-app.png index ace6abb226..d2248d4588 100644 Binary files a/docs/en/images/db-migrator-app.png and b/docs/en/images/db-migrator-app.png differ diff --git a/docs/en/images/db-migrator-output.png b/docs/en/images/db-migrator-output.png index ace6abb226..d2248d4588 100644 Binary files a/docs/en/images/db-migrator-output.png and b/docs/en/images/db-migrator-output.png differ diff --git a/docs/en/images/db-options.png b/docs/en/images/db-options.png index d9dc2ed0f4..368377f5a3 100644 Binary files a/docs/en/images/db-options.png and b/docs/en/images/db-options.png differ diff --git a/docs/en/images/ddd-microservice-simple.png b/docs/en/images/ddd-microservice-simple.png index 1217b243c8..f4195bff9d 100644 Binary files a/docs/en/images/ddd-microservice-simple.png and b/docs/en/images/ddd-microservice-simple.png differ diff --git a/docs/en/images/deployment-clustered.png b/docs/en/images/deployment-clustered.png index 74177482c5..f640d55957 100644 Binary files a/docs/en/images/deployment-clustered.png and b/docs/en/images/deployment-clustered.png differ diff --git a/docs/en/images/deployment-single-instance.png b/docs/en/images/deployment-single-instance.png index 8c3f8719b2..50b904baf8 100644 Binary files a/docs/en/images/deployment-single-instance.png and b/docs/en/images/deployment-single-instance.png differ diff --git a/docs/en/images/docs-create-project-v4.4.0.png b/docs/en/images/docs-create-project-v4.4.0.png index fa30fcbc3a..723860e3c5 100644 Binary files a/docs/en/images/docs-create-project-v4.4.0.png and b/docs/en/images/docs-create-project-v4.4.0.png differ diff --git a/docs/en/images/docs-create-project.jpg b/docs/en/images/docs-create-project.jpg index 742f5e307f..d2baa3242a 100644 Binary files a/docs/en/images/docs-create-project.jpg and b/docs/en/images/docs-create-project.jpg differ diff --git a/docs/en/images/docs-module_download-new-abp-project.png b/docs/en/images/docs-module_download-new-abp-project.png index 6424ad7622..5afb0d3b47 100644 Binary files a/docs/en/images/docs-module_download-new-abp-project.png and b/docs/en/images/docs-module_download-new-abp-project.png differ diff --git a/docs/en/images/docs-module_download-sample-navigation-menu.png b/docs/en/images/docs-module_download-sample-navigation-menu.png index 9a1232f198..8d8eb42d52 100644 Binary files a/docs/en/images/docs-module_download-sample-navigation-menu.png and b/docs/en/images/docs-module_download-sample-navigation-menu.png differ diff --git a/docs/en/images/docs-module_solution-explorer.png b/docs/en/images/docs-module_solution-explorer.png index 42b2c31143..63d943a4f2 100644 Binary files a/docs/en/images/docs-module_solution-explorer.png and b/docs/en/images/docs-module_solution-explorer.png differ diff --git a/docs/en/images/docs-section-ui.png b/docs/en/images/docs-section-ui.png index 7856454e5d..1c63d1ad3a 100644 Binary files a/docs/en/images/docs-section-ui.png and b/docs/en/images/docs-section-ui.png differ diff --git a/docs/en/images/domain-driven-design-aggregate-keep-small.png b/docs/en/images/domain-driven-design-aggregate-keep-small.png index 56f805ebbe..d10f236282 100644 Binary files a/docs/en/images/domain-driven-design-aggregate-keep-small.png and b/docs/en/images/domain-driven-design-aggregate-keep-small.png differ diff --git a/docs/en/images/domain-driven-design-clean-architecture.png b/docs/en/images/domain-driven-design-clean-architecture.png index 4ab6d2c93b..c4c680fc23 100644 Binary files a/docs/en/images/domain-driven-design-clean-architecture.png and b/docs/en/images/domain-driven-design-clean-architecture.png differ diff --git a/docs/en/images/domain-driven-design-domain-vs-application-logic.png b/docs/en/images/domain-driven-design-domain-vs-application-logic.png index e370cba71e..e5b8dfa41d 100644 Binary files a/docs/en/images/domain-driven-design-domain-vs-application-logic.png and b/docs/en/images/domain-driven-design-domain-vs-application-logic.png differ diff --git a/docs/en/images/domain-driven-design-entity-primary-keys.png b/docs/en/images/domain-driven-design-entity-primary-keys.png index 7ee0096222..aa45d9b702 100644 Binary files a/docs/en/images/domain-driven-design-entity-primary-keys.png and b/docs/en/images/domain-driven-design-entity-primary-keys.png differ diff --git a/docs/en/images/domain-driven-design-example-domain-schema.png b/docs/en/images/domain-driven-design-example-domain-schema.png index fe3075b141..2f847d61e1 100644 Binary files a/docs/en/images/domain-driven-design-example-domain-schema.png and b/docs/en/images/domain-driven-design-example-domain-schema.png differ diff --git a/docs/en/images/domain-driven-design-issue-aggregate-diagram.png b/docs/en/images/domain-driven-design-issue-aggregate-diagram.png index 244564126a..fca830f21d 100644 Binary files a/docs/en/images/domain-driven-design-issue-aggregate-diagram.png and b/docs/en/images/domain-driven-design-issue-aggregate-diagram.png differ diff --git a/docs/en/images/domain-driven-design-layers.png b/docs/en/images/domain-driven-design-layers.png index f2fc9af097..c9e64d569a 100644 Binary files a/docs/en/images/domain-driven-design-layers.png and b/docs/en/images/domain-driven-design-layers.png differ diff --git a/docs/en/images/domain-driven-design-multiple-applications.png b/docs/en/images/domain-driven-design-multiple-applications.png index 6db4fc6443..112335df7c 100644 Binary files a/docs/en/images/domain-driven-design-multiple-applications.png and b/docs/en/images/domain-driven-design-multiple-applications.png differ diff --git a/docs/en/images/domain-driven-design-project-relations.png b/docs/en/images/domain-driven-design-project-relations.png index b7878d1385..738edf59f1 100644 Binary files a/docs/en/images/domain-driven-design-project-relations.png and b/docs/en/images/domain-driven-design-project-relations.png differ diff --git a/docs/en/images/domain-driven-design-reference-by-id-sample.png b/docs/en/images/domain-driven-design-reference-by-id-sample.png index 48a1913654..4d277f40ee 100644 Binary files a/docs/en/images/domain-driven-design-reference-by-id-sample.png and b/docs/en/images/domain-driven-design-reference-by-id-sample.png differ diff --git a/docs/en/images/domain-driven-design-vs-solution.png b/docs/en/images/domain-driven-design-vs-solution.png index ef0f51a418..12305891d4 100644 Binary files a/docs/en/images/domain-driven-design-vs-solution.png and b/docs/en/images/domain-driven-design-vs-solution.png differ diff --git a/docs/en/images/domain-driven-design-web-request-flow.png b/docs/en/images/domain-driven-design-web-request-flow.png index a9cb98e01f..63d5fd0d6b 100644 Binary files a/docs/en/images/domain-driven-design-web-request-flow.png and b/docs/en/images/domain-driven-design-web-request-flow.png differ diff --git a/docs/en/images/email-settings.png b/docs/en/images/email-settings.png index 6aa77da312..23458abc99 100644 Binary files a/docs/en/images/email-settings.png and b/docs/en/images/email-settings.png differ diff --git a/docs/en/images/example-global-styles.png b/docs/en/images/example-global-styles.png index 04232aa62d..48ad321016 100644 Binary files a/docs/en/images/example-global-styles.png and b/docs/en/images/example-global-styles.png differ diff --git a/docs/en/images/extension-navigation-property-form.png b/docs/en/images/extension-navigation-property-form.png index 5e55ce3afd..2bc5b99daa 100644 Binary files a/docs/en/images/extension-navigation-property-form.png and b/docs/en/images/extension-navigation-property-form.png differ diff --git a/docs/en/images/extension-navigation-property-table.png b/docs/en/images/extension-navigation-property-table.png index a3f333919c..5a84150193 100644 Binary files a/docs/en/images/extension-navigation-property-table.png and b/docs/en/images/extension-navigation-property-table.png differ diff --git a/docs/en/images/features-action.png b/docs/en/images/features-action.png index 8283a95be9..f1c53ce6f4 100644 Binary files a/docs/en/images/features-action.png and b/docs/en/images/features-action.png differ diff --git a/docs/en/images/features-modal.png b/docs/en/images/features-modal.png index 74ee8aabc3..477295e677 100644 Binary files a/docs/en/images/features-modal.png and b/docs/en/images/features-modal.png differ diff --git a/docs/en/images/features-module-opening.png b/docs/en/images/features-module-opening.png index bd99604cd7..9c91a596e5 100644 Binary files a/docs/en/images/features-module-opening.png and b/docs/en/images/features-module-opening.png differ diff --git a/docs/en/images/generated-static-client-proxies-with-contracts.png b/docs/en/images/generated-static-client-proxies-with-contracts.png index b170c970c8..3bb6b3494e 100644 Binary files a/docs/en/images/generated-static-client-proxies-with-contracts.png and b/docs/en/images/generated-static-client-proxies-with-contracts.png differ diff --git a/docs/en/images/generated-static-client-proxies-without-contracts.png b/docs/en/images/generated-static-client-proxies-without-contracts.png index 25baa30a14..6841e10e31 100644 Binary files a/docs/en/images/generated-static-client-proxies-without-contracts.png and b/docs/en/images/generated-static-client-proxies-without-contracts.png differ diff --git a/docs/en/images/generic-repositories.png b/docs/en/images/generic-repositories.png index 4a162569a9..676ddb7976 100644 Binary files a/docs/en/images/generic-repositories.png and b/docs/en/images/generic-repositories.png differ diff --git a/docs/en/images/github-access-token-private-repo.jpg b/docs/en/images/github-access-token-private-repo.jpg index 5bc53cc63d..cb74f1eea3 100644 Binary files a/docs/en/images/github-access-token-private-repo.jpg and b/docs/en/images/github-access-token-private-repo.jpg differ diff --git a/docs/en/images/github-access-token-public-repo.jpg b/docs/en/images/github-access-token-public-repo.jpg index b909c2cfe5..d091a6d511 100644 Binary files a/docs/en/images/github-access-token-public-repo.jpg and b/docs/en/images/github-access-token-public-repo.jpg differ diff --git a/docs/en/images/github-myusername.jpg b/docs/en/images/github-myusername.jpg index 4ac57eeed4..a723c17713 100644 Binary files a/docs/en/images/github-myusername.jpg and b/docs/en/images/github-myusername.jpg differ diff --git a/docs/en/images/hello-template-razor.png b/docs/en/images/hello-template-razor.png index 1e0e39fcec..45e0699843 100644 Binary files a/docs/en/images/hello-template-razor.png and b/docs/en/images/hello-template-razor.png differ diff --git a/docs/en/images/hello-template.png b/docs/en/images/hello-template.png index 0a3ce2816a..56927aa538 100644 Binary files a/docs/en/images/hello-template.png and b/docs/en/images/hello-template.png differ diff --git a/docs/en/images/identity-module-menu.png b/docs/en/images/identity-module-menu.png index 8083e2f722..594a5f9913 100644 Binary files a/docs/en/images/identity-module-menu.png and b/docs/en/images/identity-module-menu.png differ diff --git a/docs/en/images/identity-module-permissions.png b/docs/en/images/identity-module-permissions.png index 24ef15e3b4..2b6e6787f7 100644 Binary files a/docs/en/images/identity-module-permissions.png and b/docs/en/images/identity-module-permissions.png differ diff --git a/docs/en/images/identity-module-roles.png b/docs/en/images/identity-module-roles.png index c8e2c9cde1..a0fd412742 100644 Binary files a/docs/en/images/identity-module-roles.png and b/docs/en/images/identity-module-roles.png differ diff --git a/docs/en/images/identity-module-users.png b/docs/en/images/identity-module-users.png index 7de6da77d4..2ec7e1b332 100644 Binary files a/docs/en/images/identity-module-users.png and b/docs/en/images/identity-module-users.png differ diff --git a/docs/en/images/integration-services.png b/docs/en/images/integration-services.png index 5d0cd445f8..31e95a96d9 100644 Binary files a/docs/en/images/integration-services.png and b/docs/en/images/integration-services.png differ diff --git a/docs/en/images/issue-first-test.png b/docs/en/images/issue-first-test.png index b2be1aa8eb..6bea1cd0f3 100644 Binary files a/docs/en/images/issue-first-test.png and b/docs/en/images/issue-first-test.png differ diff --git a/docs/en/images/issue-list.png b/docs/en/images/issue-list.png index 96e9010ed6..cce7a468fe 100644 Binary files a/docs/en/images/issue-list.png and b/docs/en/images/issue-list.png differ diff --git a/docs/en/images/issuemanagement-module-solution.png b/docs/en/images/issuemanagement-module-solution.png index 181924dd90..d5f64b01d2 100644 Binary files a/docs/en/images/issuemanagement-module-solution.png and b/docs/en/images/issuemanagement-module-solution.png differ diff --git a/docs/en/images/js-message-confirm.png b/docs/en/images/js-message-confirm.png index 876ae8d98e..f91affbdac 100644 Binary files a/docs/en/images/js-message-confirm.png and b/docs/en/images/js-message-confirm.png differ diff --git a/docs/en/images/js-message-error.png b/docs/en/images/js-message-error.png index fd8abb1d7e..0ed13dde5e 100644 Binary files a/docs/en/images/js-message-error.png and b/docs/en/images/js-message-error.png differ diff --git a/docs/en/images/js-message-success.png b/docs/en/images/js-message-success.png index bbf418a37c..f87c44d78a 100644 Binary files a/docs/en/images/js-message-success.png and b/docs/en/images/js-message-success.png differ diff --git a/docs/en/images/js-notify-success.png b/docs/en/images/js-notify-success.png index 04489bc7ce..d5300f3468 100644 Binary files a/docs/en/images/js-notify-success.png and b/docs/en/images/js-notify-success.png differ diff --git a/docs/en/images/layered-project-dependencies-blazor-server.png b/docs/en/images/layered-project-dependencies-blazor-server.png index 951363bdf1..8b47243226 100644 Binary files a/docs/en/images/layered-project-dependencies-blazor-server.png and b/docs/en/images/layered-project-dependencies-blazor-server.png differ diff --git a/docs/en/images/layered-project-dependencies-blazor-wasm.png b/docs/en/images/layered-project-dependencies-blazor-wasm.png index bd214ef762..fc9bb227c5 100644 Binary files a/docs/en/images/layered-project-dependencies-blazor-wasm.png and b/docs/en/images/layered-project-dependencies-blazor-wasm.png differ diff --git a/docs/en/images/layered-project-dependencies-module.png b/docs/en/images/layered-project-dependencies-module.png index 7592f49878..de3b7a412f 100644 Binary files a/docs/en/images/layered-project-dependencies-module.png and b/docs/en/images/layered-project-dependencies-module.png differ diff --git a/docs/en/images/layered-project-dependencies.png b/docs/en/images/layered-project-dependencies.png index c5fd1b3504..ed3e03fe4d 100644 Binary files a/docs/en/images/layered-project-dependencies.png and b/docs/en/images/layered-project-dependencies.png differ diff --git a/docs/en/images/lepton-theme-account-layout.png b/docs/en/images/lepton-theme-account-layout.png index e627ba3eae..96e7fb7718 100644 Binary files a/docs/en/images/lepton-theme-account-layout.png and b/docs/en/images/lepton-theme-account-layout.png differ diff --git a/docs/en/images/lepton-theme-application-layout.png b/docs/en/images/lepton-theme-application-layout.png index 3d89929abc..9da4d0f198 100644 Binary files a/docs/en/images/lepton-theme-application-layout.png and b/docs/en/images/lepton-theme-application-layout.png differ diff --git a/docs/en/images/lepton-theme-blazor-layout.png b/docs/en/images/lepton-theme-blazor-layout.png index e4211b367e..4236ca0ac0 100644 Binary files a/docs/en/images/lepton-theme-blazor-layout.png and b/docs/en/images/lepton-theme-blazor-layout.png differ diff --git a/docs/en/images/leptonxlite-brand-component.png b/docs/en/images/leptonxlite-brand-component.png index c06a51612f..53a3c4ba3a 100644 Binary files a/docs/en/images/leptonxlite-brand-component.png and b/docs/en/images/leptonxlite-brand-component.png differ diff --git a/docs/en/images/leptonxlite-breadcrumb-component.png b/docs/en/images/leptonxlite-breadcrumb-component.png index 9026ca4c52..27d78c90ab 100644 Binary files a/docs/en/images/leptonxlite-breadcrumb-component.png and b/docs/en/images/leptonxlite-breadcrumb-component.png differ diff --git a/docs/en/images/leptonxlite-language-switch-component.png b/docs/en/images/leptonxlite-language-switch-component.png index 027910c23b..79b7aef55b 100644 Binary files a/docs/en/images/leptonxlite-language-switch-component.png and b/docs/en/images/leptonxlite-language-switch-component.png differ diff --git a/docs/en/images/leptonxlite-mobile-language-switch-component.png b/docs/en/images/leptonxlite-mobile-language-switch-component.png index a058820743..8cdc65e236 100644 Binary files a/docs/en/images/leptonxlite-mobile-language-switch-component.png and b/docs/en/images/leptonxlite-mobile-language-switch-component.png differ diff --git a/docs/en/images/leptonxlite-mobile-user-menu-component.png b/docs/en/images/leptonxlite-mobile-user-menu-component.png index 1a51c341d7..beaed19832 100644 Binary files a/docs/en/images/leptonxlite-mobile-user-menu-component.png and b/docs/en/images/leptonxlite-mobile-user-menu-component.png differ diff --git a/docs/en/images/leptonxlite-page-alerts-component.png b/docs/en/images/leptonxlite-page-alerts-component.png index 7976412fb2..0f11809b5b 100644 Binary files a/docs/en/images/leptonxlite-page-alerts-component.png and b/docs/en/images/leptonxlite-page-alerts-component.png differ diff --git a/docs/en/images/leptonxlite-sidebar-menu-component.png b/docs/en/images/leptonxlite-sidebar-menu-component.png index 6afe4029e8..de6934a238 100644 Binary files a/docs/en/images/leptonxlite-sidebar-menu-component.png and b/docs/en/images/leptonxlite-sidebar-menu-component.png differ diff --git a/docs/en/images/leptonxlite-theme-application-layout.jpeg b/docs/en/images/leptonxlite-theme-application-layout.jpeg index 12e15ddcb7..dd80e2d1bd 100644 Binary files a/docs/en/images/leptonxlite-theme-application-layout.jpeg and b/docs/en/images/leptonxlite-theme-application-layout.jpeg differ diff --git a/docs/en/images/leptonxlite-toolbar-component.png b/docs/en/images/leptonxlite-toolbar-component.png index 6076c20ff0..ff490eaff7 100644 Binary files a/docs/en/images/leptonxlite-toolbar-component.png and b/docs/en/images/leptonxlite-toolbar-component.png differ diff --git a/docs/en/images/leptonxlite-toolbar-main-example.png b/docs/en/images/leptonxlite-toolbar-main-example.png index 30edcf547b..042d4f9c1d 100644 Binary files a/docs/en/images/leptonxlite-toolbar-main-example.png and b/docs/en/images/leptonxlite-toolbar-main-example.png differ diff --git a/docs/en/images/leptonxlite-toolbar-mainmobile-example.png b/docs/en/images/leptonxlite-toolbar-mainmobile-example.png index 95815b5843..ed2d72a119 100644 Binary files a/docs/en/images/leptonxlite-toolbar-mainmobile-example.png and b/docs/en/images/leptonxlite-toolbar-mainmobile-example.png differ diff --git a/docs/en/images/leptonxlite-user-menu-component.png b/docs/en/images/leptonxlite-user-menu-component.png index a0039e996c..e0f41f9b96 100644 Binary files a/docs/en/images/leptonxlite-user-menu-component.png and b/docs/en/images/leptonxlite-user-menu-component.png differ diff --git a/docs/en/images/localization-resource-json-files.png b/docs/en/images/localization-resource-json-files.png index bbbd78c320..1a1d43403c 100644 Binary files a/docs/en/images/localization-resource-json-files.png and b/docs/en/images/localization-resource-json-files.png differ diff --git a/docs/en/images/microservice-sample-authserver-home.png b/docs/en/images/microservice-sample-authserver-home.png index 7ae62ad6d5..684fdb1a5a 100644 Binary files a/docs/en/images/microservice-sample-authserver-home.png and b/docs/en/images/microservice-sample-authserver-home.png differ diff --git a/docs/en/images/microservice-sample-authserver-login.png b/docs/en/images/microservice-sample-authserver-login.png index f6e8dfaa9f..99d898ccd2 100644 Binary files a/docs/en/images/microservice-sample-authserver-login.png and b/docs/en/images/microservice-sample-authserver-login.png differ diff --git a/docs/en/images/microservice-sample-backend-ui-permissions.png b/docs/en/images/microservice-sample-backend-ui-permissions.png index 02769be3e5..3e1610294f 100644 Binary files a/docs/en/images/microservice-sample-backend-ui-permissions.png and b/docs/en/images/microservice-sample-backend-ui-permissions.png differ diff --git a/docs/en/images/microservice-sample-backend-ui.png b/docs/en/images/microservice-sample-backend-ui.png index 0935a6047a..e649c8da59 100644 Binary files a/docs/en/images/microservice-sample-backend-ui.png and b/docs/en/images/microservice-sample-backend-ui.png differ diff --git a/docs/en/images/microservice-sample-blogservice-permission-in-database.png b/docs/en/images/microservice-sample-blogservice-permission-in-database.png index f99cd39893..45d7f2b115 100644 Binary files a/docs/en/images/microservice-sample-blogservice-permission-in-database.png and b/docs/en/images/microservice-sample-blogservice-permission-in-database.png differ diff --git a/docs/en/images/microservice-sample-diagram-2.png b/docs/en/images/microservice-sample-diagram-2.png index 17aea07098..414a942aca 100644 Binary files a/docs/en/images/microservice-sample-diagram-2.png and b/docs/en/images/microservice-sample-diagram-2.png differ diff --git a/docs/en/images/microservice-sample-diagram-3.png b/docs/en/images/microservice-sample-diagram-3.png index b8066ef6be..9daeea2b41 100644 Binary files a/docs/en/images/microservice-sample-diagram-3.png and b/docs/en/images/microservice-sample-diagram-3.png differ diff --git a/docs/en/images/microservice-sample-diagram.png b/docs/en/images/microservice-sample-diagram.png index b1d9f6c66e..47e6443852 100644 Binary files a/docs/en/images/microservice-sample-diagram.png and b/docs/en/images/microservice-sample-diagram.png differ diff --git a/docs/en/images/microservice-sample-kibana-1.png b/docs/en/images/microservice-sample-kibana-1.png index f3a51bd349..51777f6bd7 100644 Binary files a/docs/en/images/microservice-sample-kibana-1.png and b/docs/en/images/microservice-sample-kibana-1.png differ diff --git a/docs/en/images/microservice-sample-kibana-2.png b/docs/en/images/microservice-sample-kibana-2.png index 31b281486c..cb1d0b748c 100644 Binary files a/docs/en/images/microservice-sample-kibana-2.png and b/docs/en/images/microservice-sample-kibana-2.png differ diff --git a/docs/en/images/microservice-sample-product-module-in-solution.png b/docs/en/images/microservice-sample-product-module-in-solution.png index 27e841cdd5..2c07ad4b99 100644 Binary files a/docs/en/images/microservice-sample-product-module-in-solution.png and b/docs/en/images/microservice-sample-product-module-in-solution.png differ diff --git a/docs/en/images/microservice-sample-public-product-list.png b/docs/en/images/microservice-sample-public-product-list.png index cf8649bbe5..932b0b531c 100644 Binary files a/docs/en/images/microservice-sample-public-product-list.png and b/docs/en/images/microservice-sample-public-product-list.png differ diff --git a/docs/en/images/microservice-sample-solution-2.png b/docs/en/images/microservice-sample-solution-2.png index 3da5d160f8..f0acb01424 100644 Binary files a/docs/en/images/microservice-sample-solution-2.png and b/docs/en/images/microservice-sample-solution-2.png differ diff --git a/docs/en/images/microservice-sample-solution.png b/docs/en/images/microservice-sample-solution.png index 4c8344ed68..d1497d9be2 100644 Binary files a/docs/en/images/microservice-sample-solution.png and b/docs/en/images/microservice-sample-solution.png differ diff --git a/docs/en/images/microservice-sample-update-database-authserver.png b/docs/en/images/microservice-sample-update-database-authserver.png index 689019b587..094fd20fa6 100644 Binary files a/docs/en/images/microservice-sample-update-database-authserver.png and b/docs/en/images/microservice-sample-update-database-authserver.png differ diff --git a/docs/en/images/microservice-sample-update-database-products.png b/docs/en/images/microservice-sample-update-database-products.png index b49c2a8f8e..32a0927c1f 100644 Binary files a/docs/en/images/microservice-sample-update-database-products.png and b/docs/en/images/microservice-sample-update-database-products.png differ diff --git a/docs/en/images/modal-example-product-create.png b/docs/en/images/modal-example-product-create.png index 89ea0226ef..a2c4b3a8bb 100644 Binary files a/docs/en/images/modal-example-product-create.png and b/docs/en/images/modal-example-product-create.png differ diff --git a/docs/en/images/modal-manager-cancel-warning.png b/docs/en/images/modal-manager-cancel-warning.png index fc00902e0f..a237e247c6 100644 Binary files a/docs/en/images/modal-manager-cancel-warning.png and b/docs/en/images/modal-manager-cancel-warning.png differ diff --git a/docs/en/images/modal-manager-example-modal.png b/docs/en/images/modal-manager-example-modal.png index 867c6d410e..a413340c52 100644 Binary files a/docs/en/images/modal-manager-example-modal.png and b/docs/en/images/modal-manager-example-modal.png differ diff --git a/docs/en/images/modal-manager-validation.png b/docs/en/images/modal-manager-validation.png index 516a178e66..8749ab8e5c 100644 Binary files a/docs/en/images/modal-manager-validation.png and b/docs/en/images/modal-manager-validation.png differ diff --git a/docs/en/images/modal-page-on-rider.png b/docs/en/images/modal-page-on-rider.png index 522885489d..f59a93c344 100644 Binary files a/docs/en/images/modal-page-on-rider.png and b/docs/en/images/modal-page-on-rider.png differ diff --git a/docs/en/images/module-tenant-management-actions.png b/docs/en/images/module-tenant-management-actions.png index d1f01c2e93..2c6c396f3f 100644 Binary files a/docs/en/images/module-tenant-management-actions.png and b/docs/en/images/module-tenant-management-actions.png differ diff --git a/docs/en/images/module-tenant-management-new-tenant.png b/docs/en/images/module-tenant-management-new-tenant.png index ab9ee6ed56..eb82cc9b88 100644 Binary files a/docs/en/images/module-tenant-management-new-tenant.png and b/docs/en/images/module-tenant-management-new-tenant.png differ diff --git a/docs/en/images/module-tenant-management-page.png b/docs/en/images/module-tenant-management-page.png index 563c64aac8..14611867b5 100644 Binary files a/docs/en/images/module-tenant-management-page.png and b/docs/en/images/module-tenant-management-page.png differ diff --git a/docs/en/images/multiple-database-usage.png b/docs/en/images/multiple-database-usage.png index ada6177629..aa5d7595a7 100644 Binary files a/docs/en/images/multiple-database-usage.png and b/docs/en/images/multiple-database-usage.png differ diff --git a/docs/en/images/multiple-file-template-razor.png b/docs/en/images/multiple-file-template-razor.png index 85f87e84f4..efa58107d3 100644 Binary files a/docs/en/images/multiple-file-template-razor.png and b/docs/en/images/multiple-file-template-razor.png differ diff --git a/docs/en/images/multiple-file-template.png b/docs/en/images/multiple-file-template.png index a2e7327301..75e514975c 100644 Binary files a/docs/en/images/multiple-file-template.png and b/docs/en/images/multiple-file-template.png differ diff --git a/docs/en/images/my-setting-group-blazor.png b/docs/en/images/my-setting-group-blazor.png index 0e685ff186..8094c8c99e 100644 Binary files a/docs/en/images/my-setting-group-blazor.png and b/docs/en/images/my-setting-group-blazor.png differ diff --git a/docs/en/images/my-setting-group-component-contributor.png b/docs/en/images/my-setting-group-component-contributor.png index 3ca6dbedfb..9595aaf67a 100644 Binary files a/docs/en/images/my-setting-group-component-contributor.png and b/docs/en/images/my-setting-group-component-contributor.png differ diff --git a/docs/en/images/my-setting-group-component.png b/docs/en/images/my-setting-group-component.png index edcf315b2a..d737d3c287 100644 Binary files a/docs/en/images/my-setting-group-component.png and b/docs/en/images/my-setting-group-component.png differ diff --git a/docs/en/images/my-setting-group-page-contributor.png b/docs/en/images/my-setting-group-page-contributor.png index 3be3737e6f..44b31c07db 100644 Binary files a/docs/en/images/my-setting-group-page-contributor.png and b/docs/en/images/my-setting-group-page-contributor.png differ diff --git a/docs/en/images/my-setting-group-ui.png b/docs/en/images/my-setting-group-ui.png index b9d3f1b403..6bb268f46d 100644 Binary files a/docs/en/images/my-setting-group-ui.png and b/docs/en/images/my-setting-group-ui.png differ diff --git a/docs/en/images/my-setting-group-view-component.png b/docs/en/images/my-setting-group-view-component.png index 02843f968e..74c1730735 100644 Binary files a/docs/en/images/my-setting-group-view-component.png and b/docs/en/images/my-setting-group-view-component.png differ diff --git a/docs/en/images/nav-main-menu-administration.png b/docs/en/images/nav-main-menu-administration.png index 21ad977264..950d91102a 100644 Binary files a/docs/en/images/nav-main-menu-administration.png and b/docs/en/images/nav-main-menu-administration.png differ diff --git a/docs/en/images/nav-main-menu.png b/docs/en/images/nav-main-menu.png index 2784c035c2..3a348fd988 100644 Binary files a/docs/en/images/nav-main-menu.png and b/docs/en/images/nav-main-menu.png differ diff --git a/docs/en/images/night-build-add-nuget-package.png b/docs/en/images/night-build-add-nuget-package.png index c3621ef7d9..f475d3aaa0 100644 Binary files a/docs/en/images/night-build-add-nuget-package.png and b/docs/en/images/night-build-add-nuget-package.png differ diff --git a/docs/en/images/night-build-add-nuget-source.png b/docs/en/images/night-build-add-nuget-source.png index 8fd4b9365a..df3176aa12 100644 Binary files a/docs/en/images/night-build-add-nuget-source.png and b/docs/en/images/night-build-add-nuget-source.png differ diff --git a/docs/en/images/optimistic-concurrency.png b/docs/en/images/optimistic-concurrency.png index 85253594c8..17d6a9b5df 100644 Binary files a/docs/en/images/optimistic-concurrency.png and b/docs/en/images/optimistic-concurrency.png differ diff --git a/docs/en/images/overriding-login-cshtml.png b/docs/en/images/overriding-login-cshtml.png index d6daa4a141..79fdaeccf7 100644 Binary files a/docs/en/images/overriding-login-cshtml.png and b/docs/en/images/overriding-login-cshtml.png differ diff --git a/docs/en/images/package-manager-console-update-database.png b/docs/en/images/package-manager-console-update-database.png index d5bb9c2975..72d02e9186 100644 Binary files a/docs/en/images/package-manager-console-update-database.png and b/docs/en/images/package-manager-console-update-database.png differ diff --git a/docs/en/images/page-alert-account-layout.png b/docs/en/images/page-alert-account-layout.png index 2442cb5d14..966accc01c 100644 Binary files a/docs/en/images/page-alert-account-layout.png and b/docs/en/images/page-alert-account-layout.png differ diff --git a/docs/en/images/page-alert-example.png b/docs/en/images/page-alert-example.png index 266671757a..5aed46f278 100644 Binary files a/docs/en/images/page-alert-example.png and b/docs/en/images/page-alert-example.png differ diff --git a/docs/en/images/page-header-toolbar-blazor.png b/docs/en/images/page-header-toolbar-blazor.png index a4d0454893..40834d9dc5 100644 Binary files a/docs/en/images/page-header-toolbar-blazor.png and b/docs/en/images/page-header-toolbar-blazor.png differ diff --git a/docs/en/images/page-toolbar-button-blazor.png b/docs/en/images/page-toolbar-button-blazor.png index fb907e797a..a901d59b58 100644 Binary files a/docs/en/images/page-toolbar-button-blazor.png and b/docs/en/images/page-toolbar-button-blazor.png differ diff --git a/docs/en/images/page-toolbar-button.png b/docs/en/images/page-toolbar-button.png index 05e3f9da11..15b7a3901d 100644 Binary files a/docs/en/images/page-toolbar-button.png and b/docs/en/images/page-toolbar-button.png differ diff --git a/docs/en/images/page-toolbar-custom-component-blazor.png b/docs/en/images/page-toolbar-custom-component-blazor.png index fb0856fa03..13ab2b21b2 100644 Binary files a/docs/en/images/page-toolbar-custom-component-blazor.png and b/docs/en/images/page-toolbar-custom-component-blazor.png differ diff --git a/docs/en/images/page-toolbar-custom-component.png b/docs/en/images/page-toolbar-custom-component.png index a15ef4854c..76ce86015f 100644 Binary files a/docs/en/images/page-toolbar-custom-component.png and b/docs/en/images/page-toolbar-custom-component.png differ diff --git a/docs/en/images/pcm-update-database-v2.png b/docs/en/images/pcm-update-database-v2.png index d5bb9c2975..72d02e9186 100644 Binary files a/docs/en/images/pcm-update-database-v2.png and b/docs/en/images/pcm-update-database-v2.png differ diff --git a/docs/en/images/pcm-update-database.png b/docs/en/images/pcm-update-database.png index ac53f0db4f..a9379d2571 100644 Binary files a/docs/en/images/pcm-update-database.png and b/docs/en/images/pcm-update-database.png differ diff --git a/docs/en/images/permissions-module-dialog.png b/docs/en/images/permissions-module-dialog.png index 6b190484a2..28dd6e5f0c 100644 Binary files a/docs/en/images/permissions-module-dialog.png and b/docs/en/images/permissions-module-dialog.png differ diff --git a/docs/en/images/permissions-module-open-dialog.png b/docs/en/images/permissions-module-open-dialog.png index 46631fe126..7556d2de09 100644 Binary files a/docs/en/images/permissions-module-open-dialog.png and b/docs/en/images/permissions-module-open-dialog.png differ diff --git a/docs/en/images/pmc-add-migration-initial-update-database.png b/docs/en/images/pmc-add-migration-initial-update-database.png index 3cc45e5ddf..25408f5d84 100644 Binary files a/docs/en/images/pmc-add-migration-initial-update-database.png and b/docs/en/images/pmc-add-migration-initial-update-database.png differ diff --git a/docs/en/images/pmc-add-migration-role-title.png b/docs/en/images/pmc-add-migration-role-title.png index 69fc5b7bc5..38ded69241 100644 Binary files a/docs/en/images/pmc-add-migration-role-title.png and b/docs/en/images/pmc-add-migration-role-title.png differ diff --git a/docs/en/images/product-create-modal-page-on-rider.png b/docs/en/images/product-create-modal-page-on-rider.png index 01cf93eaf0..23d7300fbd 100644 Binary files a/docs/en/images/product-create-modal-page-on-rider.png and b/docs/en/images/product-create-modal-page-on-rider.png differ diff --git a/docs/en/images/react-native-folder-structure.png b/docs/en/images/react-native-folder-structure.png index cf703ea061..10aaf1c18b 100644 Binary files a/docs/en/images/react-native-folder-structure.png and b/docs/en/images/react-native-folder-structure.png differ diff --git a/docs/en/images/react-native-navigation-structure.png b/docs/en/images/react-native-navigation-structure.png index 9f17375b68..22303f1dd4 100644 Binary files a/docs/en/images/react-native-navigation-structure.png and b/docs/en/images/react-native-navigation-structure.png differ diff --git a/docs/en/images/react-native-store-folder.png b/docs/en/images/react-native-store-folder.png index e90ae9debb..a07705526f 100644 Binary files a/docs/en/images/react-native-store-folder.png and b/docs/en/images/react-native-store-folder.png differ diff --git a/docs/en/images/replace-email-layout-razor.png b/docs/en/images/replace-email-layout-razor.png index 84ff6c1080..1a21382173 100644 Binary files a/docs/en/images/replace-email-layout-razor.png and b/docs/en/images/replace-email-layout-razor.png differ diff --git a/docs/en/images/replace-email-layout.png b/docs/en/images/replace-email-layout.png index 67db895f92..6ea9669879 100644 Binary files a/docs/en/images/replace-email-layout.png and b/docs/en/images/replace-email-layout.png differ diff --git a/docs/en/images/rn-environment-local-ip.png b/docs/en/images/rn-environment-local-ip.png index 7e60efff2f..a25bffc629 100644 Binary files a/docs/en/images/rn-environment-local-ip.png and b/docs/en/images/rn-environment-local-ip.png differ diff --git a/docs/en/images/rn-expo-interface.png b/docs/en/images/rn-expo-interface.png index f1f405ebf4..e33392237c 100644 Binary files a/docs/en/images/rn-expo-interface.png and b/docs/en/images/rn-expo-interface.png differ diff --git a/docs/en/images/rn-host-local-ip.png b/docs/en/images/rn-host-local-ip.png index 8691d749e5..2fb03ef21f 100644 Binary files a/docs/en/images/rn-host-local-ip.png and b/docs/en/images/rn-host-local-ip.png differ diff --git a/docs/en/images/rn-login-iphone.png b/docs/en/images/rn-login-iphone.png index 2da1d24601..c7767f27a5 100644 Binary files a/docs/en/images/rn-login-iphone.png and b/docs/en/images/rn-login-iphone.png differ diff --git a/docs/en/images/rn-options.png b/docs/en/images/rn-options.png index 810dda8183..3efe98272f 100644 Binary files a/docs/en/images/rn-options.png and b/docs/en/images/rn-options.png differ diff --git a/docs/en/images/rn-tiered-local-ip.png b/docs/en/images/rn-tiered-local-ip.png index 35168455ab..d1dd6ed91f 100644 Binary files a/docs/en/images/rn-tiered-local-ip.png and b/docs/en/images/rn-tiered-local-ip.png differ diff --git a/docs/en/images/security-response-headers.png b/docs/en/images/security-response-headers.png index 8e90a70719..922a5cfdf6 100644 Binary files a/docs/en/images/security-response-headers.png and b/docs/en/images/security-response-headers.png differ diff --git a/docs/en/images/select-empty-web-application-v2.png b/docs/en/images/select-empty-web-application-v2.png index da32f71857..9bfd2ec6a8 100644 Binary files a/docs/en/images/select-empty-web-application-v2.png and b/docs/en/images/select-empty-web-application-v2.png differ diff --git a/docs/en/images/select-empty-web-application.png b/docs/en/images/select-empty-web-application.png index b0cd89a27a..f4b884140d 100644 Binary files a/docs/en/images/select-empty-web-application.png and b/docs/en/images/select-empty-web-application.png differ diff --git a/docs/en/images/set-as-startup-project.png b/docs/en/images/set-as-startup-project.png index 13da5caf6c..8a5445bf38 100644 Binary files a/docs/en/images/set-as-startup-project.png and b/docs/en/images/set-as-startup-project.png differ diff --git a/docs/en/images/setting-management-email-ui.png b/docs/en/images/setting-management-email-ui.png index f8f1270c15..ab26a1d180 100644 Binary files a/docs/en/images/setting-management-email-ui.png and b/docs/en/images/setting-management-email-ui.png differ diff --git a/docs/en/images/signal-js-file.png b/docs/en/images/signal-js-file.png index 19fc6cefe3..c15071e90b 100644 Binary files a/docs/en/images/signal-js-file.png and b/docs/en/images/signal-js-file.png differ diff --git a/docs/en/images/signalr-demo-chat.png b/docs/en/images/signalr-demo-chat.png index 120d7eda6e..97ac7d3e4f 100644 Binary files a/docs/en/images/signalr-demo-chat.png and b/docs/en/images/signalr-demo-chat.png differ diff --git a/docs/en/images/simple-plug-in-dll-file.png b/docs/en/images/simple-plug-in-dll-file.png index 3155708d68..5fa4a9eb60 100644 Binary files a/docs/en/images/simple-plug-in-dll-file.png and b/docs/en/images/simple-plug-in-dll-file.png differ diff --git a/docs/en/images/simple-plugin-library.png b/docs/en/images/simple-plugin-library.png index 9fefd57dda..05c730b954 100644 Binary files a/docs/en/images/simple-plugin-library.png and b/docs/en/images/simple-plugin-library.png differ diff --git a/docs/en/images/simple-plugin-output.png b/docs/en/images/simple-plugin-output.png index 71f6a78c0e..cb9cda3e8d 100644 Binary files a/docs/en/images/simple-plugin-output.png and b/docs/en/images/simple-plugin-output.png differ diff --git a/docs/en/images/simple-razor-plug-in-dll-file.png b/docs/en/images/simple-razor-plug-in-dll-file.png index 9561941952..be933a90a1 100644 Binary files a/docs/en/images/simple-razor-plug-in-dll-file.png and b/docs/en/images/simple-razor-plug-in-dll-file.png differ diff --git a/docs/en/images/simple-razor-plugin.png b/docs/en/images/simple-razor-plugin.png index 92e0e00d29..311080fd7f 100644 Binary files a/docs/en/images/simple-razor-plugin.png and b/docs/en/images/simple-razor-plugin.png differ diff --git a/docs/en/images/single-database-usage.png b/docs/en/images/single-database-usage.png index 108173fd86..4015cd1d75 100644 Binary files a/docs/en/images/single-database-usage.png and b/docs/en/images/single-database-usage.png differ diff --git a/docs/en/images/single-layer-angular-folder-structure.png b/docs/en/images/single-layer-angular-folder-structure.png index 91fe09d61e..d1c53b0a9f 100644 Binary files a/docs/en/images/single-layer-angular-folder-structure.png and b/docs/en/images/single-layer-angular-folder-structure.png differ diff --git a/docs/en/images/single-layer-folder-structure.png b/docs/en/images/single-layer-folder-structure.png index 06aa77049c..a228f05f15 100644 Binary files a/docs/en/images/single-layer-folder-structure.png and b/docs/en/images/single-layer-folder-structure.png differ diff --git a/docs/en/images/single-layer-index-page.png b/docs/en/images/single-layer-index-page.png index a1d113f574..1a46bbefaa 100644 Binary files a/docs/en/images/single-layer-index-page.png and b/docs/en/images/single-layer-index-page.png differ diff --git a/docs/en/images/solution-files-mvc.png b/docs/en/images/solution-files-mvc.png index 08bbfb9595..dbbdc7e661 100644 Binary files a/docs/en/images/solution-files-mvc.png and b/docs/en/images/solution-files-mvc.png differ diff --git a/docs/en/images/solution-files-non-mvc.png b/docs/en/images/solution-files-non-mvc.png index 323991b95c..700c4b2de7 100644 Binary files a/docs/en/images/solution-files-non-mvc.png and b/docs/en/images/solution-files-non-mvc.png differ diff --git a/docs/en/images/solution-structure-solution-explorer-rider.png b/docs/en/images/solution-structure-solution-explorer-rider.png index 8a09cec74e..739111c1cd 100644 Binary files a/docs/en/images/solution-structure-solution-explorer-rider.png and b/docs/en/images/solution-structure-solution-explorer-rider.png differ diff --git a/docs/en/images/solution-test-projects.png b/docs/en/images/solution-test-projects.png index 87ac41c6a1..11d7398758 100644 Binary files a/docs/en/images/solution-test-projects.png and b/docs/en/images/solution-test-projects.png differ diff --git a/docs/en/images/static-js-proxy-example.png b/docs/en/images/static-js-proxy-example.png index 575957b9ae..1173a277e2 100644 Binary files a/docs/en/images/static-js-proxy-example.png and b/docs/en/images/static-js-proxy-example.png differ diff --git a/docs/en/images/swagger-ui.png b/docs/en/images/swagger-ui.png index 7f52269474..31f25c53a6 100644 Binary files a/docs/en/images/swagger-ui.png and b/docs/en/images/swagger-ui.png differ diff --git a/docs/en/images/table-column-extension-example-blazor.png b/docs/en/images/table-column-extension-example-blazor.png index 3079fa278c..f2668f8f7a 100644 Binary files a/docs/en/images/table-column-extension-example-blazor.png and b/docs/en/images/table-column-extension-example-blazor.png differ diff --git a/docs/en/images/table-column-extension-example.png b/docs/en/images/table-column-extension-example.png index 84d87bf46c..81c3748834 100644 Binary files a/docs/en/images/table-column-extension-example.png and b/docs/en/images/table-column-extension-example.png differ diff --git a/docs/en/images/tiered-solution-applications-authserver.png b/docs/en/images/tiered-solution-applications-authserver.png index 6d96bf31b4..c46cdc2314 100644 Binary files a/docs/en/images/tiered-solution-applications-authserver.png and b/docs/en/images/tiered-solution-applications-authserver.png differ diff --git a/docs/en/images/tiered-solution-applications.png b/docs/en/images/tiered-solution-applications.png index fb6ede7ac5..df8d2b5f4a 100644 Binary files a/docs/en/images/tiered-solution-applications.png and b/docs/en/images/tiered-solution-applications.png differ diff --git a/docs/en/images/tiered-solution-servers.png b/docs/en/images/tiered-solution-servers.png index 3c999b4b45..68e72990d7 100644 Binary files a/docs/en/images/tiered-solution-servers.png and b/docs/en/images/tiered-solution-servers.png differ diff --git a/docs/en/images/ui-busy.png b/docs/en/images/ui-busy.png index 63a1d7d74a..7d2fe7a89a 100644 Binary files a/docs/en/images/ui-busy.png and b/docs/en/images/ui-busy.png differ diff --git a/docs/en/images/ui-options.png b/docs/en/images/ui-options.png index bd211a8914..6f0d19b73e 100644 Binary files a/docs/en/images/ui-options.png and b/docs/en/images/ui-options.png differ diff --git a/docs/en/images/unitest-efcore-mongodb.png b/docs/en/images/unitest-efcore-mongodb.png index 4145d9d7c9..b3cdca9086 100644 Binary files a/docs/en/images/unitest-efcore-mongodb.png and b/docs/en/images/unitest-efcore-mongodb.png differ diff --git a/docs/en/images/upgrade-diff-empty-folders.png b/docs/en/images/upgrade-diff-empty-folders.png index 9f0256061a..6cbfeca744 100644 Binary files a/docs/en/images/upgrade-diff-empty-folders.png and b/docs/en/images/upgrade-diff-empty-folders.png differ diff --git a/docs/en/images/user-action-blazor-extension-click-me.png b/docs/en/images/user-action-blazor-extension-click-me.png index fb1ea80182..1540bb0541 100644 Binary files a/docs/en/images/user-action-blazor-extension-click-me.png and b/docs/en/images/user-action-blazor-extension-click-me.png differ diff --git a/docs/en/images/user-action-extension-click-me.png b/docs/en/images/user-action-extension-click-me.png index 4046630f48..f8b1c505d0 100644 Binary files a/docs/en/images/user-action-extension-click-me.png and b/docs/en/images/user-action-extension-click-me.png differ diff --git a/docs/en/images/user-action-extension-on-blazor-project.png b/docs/en/images/user-action-extension-on-blazor-project.png index d11ea328b6..0d59ccdacf 100644 Binary files a/docs/en/images/user-action-extension-on-blazor-project.png and b/docs/en/images/user-action-extension-on-blazor-project.png differ diff --git a/docs/en/images/user-action-extension-on-solution.png b/docs/en/images/user-action-extension-on-solution.png index 5f58d3f302..7962bfcbf0 100644 Binary files a/docs/en/images/user-action-extension-on-solution.png and b/docs/en/images/user-action-extension-on-solution.png differ diff --git a/docs/en/images/user-menu.png b/docs/en/images/user-menu.png index af0671dbdc..e30bc375a6 100644 Binary files a/docs/en/images/user-menu.png and b/docs/en/images/user-menu.png differ diff --git a/docs/en/images/virtual-file-explorer.png b/docs/en/images/virtual-file-explorer.png index e49d0f2111..6436c21284 100644 Binary files a/docs/en/images/virtual-file-explorer.png and b/docs/en/images/virtual-file-explorer.png differ diff --git a/docs/en/images/volodocs-iis-add-website.png b/docs/en/images/volodocs-iis-add-website.png index 878b3e8f0c..aa7da8095b 100644 Binary files a/docs/en/images/volodocs-iis-add-website.png and b/docs/en/images/volodocs-iis-add-website.png differ diff --git a/docs/en/images/volodocs-iis-application-pool.png b/docs/en/images/volodocs-iis-application-pool.png index cc5186f50b..28ccfa5c42 100644 Binary files a/docs/en/images/volodocs-iis-application-pool.png and b/docs/en/images/volodocs-iis-application-pool.png differ diff --git a/docs/en/images/vs-app-solution-structure-mongodb.png b/docs/en/images/vs-app-solution-structure-mongodb.png index 8e0e6ba565..619e63b1f6 100644 Binary files a/docs/en/images/vs-app-solution-structure-mongodb.png and b/docs/en/images/vs-app-solution-structure-mongodb.png differ diff --git a/docs/en/images/vs-app-solution-structure-tiered.png b/docs/en/images/vs-app-solution-structure-tiered.png index fd41ef4b0a..f09c5e97c7 100644 Binary files a/docs/en/images/vs-app-solution-structure-tiered.png and b/docs/en/images/vs-app-solution-structure-tiered.png differ diff --git a/docs/en/images/vs-app-solution-structure.png b/docs/en/images/vs-app-solution-structure.png index 00d92164e7..5931da61ac 100644 Binary files a/docs/en/images/vs-app-solution-structure.png and b/docs/en/images/vs-app-solution-structure.png differ diff --git a/docs/en/images/vs-run-tests-in-parallel.png b/docs/en/images/vs-run-tests-in-parallel.png index cb33bd76c2..ca8f663704 100644 Binary files a/docs/en/images/vs-run-tests-in-parallel.png and b/docs/en/images/vs-run-tests-in-parallel.png differ diff --git a/docs/en/images/vs-spa-app-backend-structure-mongodb.png b/docs/en/images/vs-spa-app-backend-structure-mongodb.png index 8f0427c14b..56dd6e46bd 100644 Binary files a/docs/en/images/vs-spa-app-backend-structure-mongodb.png and b/docs/en/images/vs-spa-app-backend-structure-mongodb.png differ diff --git a/docs/en/images/vs-spa-app-backend-structure.png b/docs/en/images/vs-spa-app-backend-structure.png index 2cd394c8eb..6bde8164ac 100644 Binary files a/docs/en/images/vs-spa-app-backend-structure.png and b/docs/en/images/vs-spa-app-backend-structure.png differ diff --git a/docs/en/images/vs-startup-template-tests.png b/docs/en/images/vs-startup-template-tests.png index 0e45200e13..a75cf9532a 100644 Binary files a/docs/en/images/vs-startup-template-tests.png and b/docs/en/images/vs-startup-template-tests.png differ diff --git a/docs/en/images/vs-test-explorer.png b/docs/en/images/vs-test-explorer.png index e225ee5e92..b313bacf4c 100644 Binary files a/docs/en/images/vs-test-explorer.png and b/docs/en/images/vs-test-explorer.png differ diff --git a/docs/en/images/widget-basic-files.png b/docs/en/images/widget-basic-files.png index bf5f122d42..c692abd9e0 100644 Binary files a/docs/en/images/widget-basic-files.png and b/docs/en/images/widget-basic-files.png differ diff --git a/docs/en/images/winmerge-comparison-result.png b/docs/en/images/winmerge-comparison-result.png index dbce7cb52e..9240fdf075 100644 Binary files a/docs/en/images/winmerge-comparison-result.png and b/docs/en/images/winmerge-comparison-result.png differ diff --git a/docs/en/images/winmerge-file-diff.png b/docs/en/images/winmerge-file-diff.png index 645d3de696..6ec98b2c30 100644 Binary files a/docs/en/images/winmerge-file-diff.png and b/docs/en/images/winmerge-file-diff.png differ diff --git a/docs/en/images/winmerge-open-folders.png b/docs/en/images/winmerge-open-folders.png index 53327601d4..f6e784b8a8 100644 Binary files a/docs/en/images/winmerge-open-folders.png and b/docs/en/images/winmerge-open-folders.png differ diff --git a/docs/es/images/create-aspnet-core-application.png b/docs/es/images/create-aspnet-core-application.png index b8b98f5c32..afd1447ba8 100644 Binary files a/docs/es/images/create-aspnet-core-application.png and b/docs/es/images/create-aspnet-core-application.png differ diff --git a/docs/es/images/create-new-aspnet-core-application-v2.png b/docs/es/images/create-new-aspnet-core-application-v2.png index f8274ae2a4..d2bce84775 100644 Binary files a/docs/es/images/create-new-aspnet-core-application-v2.png and b/docs/es/images/create-new-aspnet-core-application-v2.png differ diff --git a/docs/es/images/select-empty-web-application-v2.png b/docs/es/images/select-empty-web-application-v2.png index da32f71857..9bfd2ec6a8 100644 Binary files a/docs/es/images/select-empty-web-application-v2.png and b/docs/es/images/select-empty-web-application-v2.png differ diff --git a/docs/pt-BR/Tutorials/Angular/images/bookstore-actions-buttons.png b/docs/pt-BR/Tutorials/Angular/images/bookstore-actions-buttons.png index aecf31c1ad..e09aad6400 100644 Binary files a/docs/pt-BR/Tutorials/Angular/images/bookstore-actions-buttons.png and b/docs/pt-BR/Tutorials/Angular/images/bookstore-actions-buttons.png differ diff --git a/docs/pt-BR/Tutorials/Angular/images/bookstore-angular-file-tree.png b/docs/pt-BR/Tutorials/Angular/images/bookstore-angular-file-tree.png index be05ad3e4a..ec117a46b6 100644 Binary files a/docs/pt-BR/Tutorials/Angular/images/bookstore-angular-file-tree.png and b/docs/pt-BR/Tutorials/Angular/images/bookstore-angular-file-tree.png differ diff --git a/docs/pt-BR/Tutorials/Angular/images/bookstore-backend-solution-v2.png b/docs/pt-BR/Tutorials/Angular/images/bookstore-backend-solution-v2.png index 79bcecb561..7160300deb 100644 Binary files a/docs/pt-BR/Tutorials/Angular/images/bookstore-backend-solution-v2.png and b/docs/pt-BR/Tutorials/Angular/images/bookstore-backend-solution-v2.png differ diff --git a/docs/pt-BR/Tutorials/Angular/images/bookstore-book-list.png b/docs/pt-BR/Tutorials/Angular/images/bookstore-book-list.png index 3f9717df6e..b80410a0ef 100644 Binary files a/docs/pt-BR/Tutorials/Angular/images/bookstore-book-list.png and b/docs/pt-BR/Tutorials/Angular/images/bookstore-book-list.png differ diff --git a/docs/pt-BR/Tutorials/Angular/images/bookstore-confirmation-popup.png b/docs/pt-BR/Tutorials/Angular/images/bookstore-confirmation-popup.png index c3f46af821..47c32d9246 100644 Binary files a/docs/pt-BR/Tutorials/Angular/images/bookstore-confirmation-popup.png and b/docs/pt-BR/Tutorials/Angular/images/bookstore-confirmation-popup.png differ diff --git a/docs/pt-BR/Tutorials/Angular/images/bookstore-creating-book-list-terminal.png b/docs/pt-BR/Tutorials/Angular/images/bookstore-creating-book-list-terminal.png index 9f01e94121..63b3cbaed8 100644 Binary files a/docs/pt-BR/Tutorials/Angular/images/bookstore-creating-book-list-terminal.png and b/docs/pt-BR/Tutorials/Angular/images/bookstore-creating-book-list-terminal.png differ diff --git a/docs/pt-BR/Tutorials/Angular/images/bookstore-creating-books-module-terminal.png b/docs/pt-BR/Tutorials/Angular/images/bookstore-creating-books-module-terminal.png index c74b37b1b5..ac11bed270 100644 Binary files a/docs/pt-BR/Tutorials/Angular/images/bookstore-creating-books-module-terminal.png and b/docs/pt-BR/Tutorials/Angular/images/bookstore-creating-books-module-terminal.png differ diff --git a/docs/pt-BR/Tutorials/Angular/images/bookstore-edit-modal.png b/docs/pt-BR/Tutorials/Angular/images/bookstore-edit-modal.png index c911403792..3a1b37511d 100644 Binary files a/docs/pt-BR/Tutorials/Angular/images/bookstore-edit-modal.png and b/docs/pt-BR/Tutorials/Angular/images/bookstore-edit-modal.png differ diff --git a/docs/pt-BR/Tutorials/Angular/images/bookstore-empty-new-book-modal.png b/docs/pt-BR/Tutorials/Angular/images/bookstore-empty-new-book-modal.png index 2a02802bb9..58b34a0bc2 100644 Binary files a/docs/pt-BR/Tutorials/Angular/images/bookstore-empty-new-book-modal.png and b/docs/pt-BR/Tutorials/Angular/images/bookstore-empty-new-book-modal.png differ diff --git a/docs/pt-BR/Tutorials/Angular/images/bookstore-final-actions-dropdown.png b/docs/pt-BR/Tutorials/Angular/images/bookstore-final-actions-dropdown.png index 6b0be415c4..7d1bdfb006 100644 Binary files a/docs/pt-BR/Tutorials/Angular/images/bookstore-final-actions-dropdown.png and b/docs/pt-BR/Tutorials/Angular/images/bookstore-final-actions-dropdown.png differ diff --git a/docs/pt-BR/Tutorials/Angular/images/bookstore-initial-book-list-page.png b/docs/pt-BR/Tutorials/Angular/images/bookstore-initial-book-list-page.png index 0b345ac61d..c66dad8bf8 100644 Binary files a/docs/pt-BR/Tutorials/Angular/images/bookstore-initial-book-list-page.png and b/docs/pt-BR/Tutorials/Angular/images/bookstore-initial-book-list-page.png differ diff --git a/docs/pt-BR/Tutorials/Angular/images/bookstore-initial-books-page-with-layout.png b/docs/pt-BR/Tutorials/Angular/images/bookstore-initial-books-page-with-layout.png index 484837f78a..317857f0f0 100644 Binary files a/docs/pt-BR/Tutorials/Angular/images/bookstore-initial-books-page-with-layout.png and b/docs/pt-BR/Tutorials/Angular/images/bookstore-initial-books-page-with-layout.png differ diff --git a/docs/pt-BR/Tutorials/Angular/images/bookstore-initial-books-page.png b/docs/pt-BR/Tutorials/Angular/images/bookstore-initial-books-page.png index 4af86c50fa..9044eac641 100644 Binary files a/docs/pt-BR/Tutorials/Angular/images/bookstore-initial-books-page.png and b/docs/pt-BR/Tutorials/Angular/images/bookstore-initial-books-page.png differ diff --git a/docs/pt-BR/Tutorials/Angular/images/bookstore-new-book-form-v2.png b/docs/pt-BR/Tutorials/Angular/images/bookstore-new-book-form-v2.png index 72513de6e5..9c06825eea 100644 Binary files a/docs/pt-BR/Tutorials/Angular/images/bookstore-new-book-form-v2.png and b/docs/pt-BR/Tutorials/Angular/images/bookstore-new-book-form-v2.png differ diff --git a/docs/pt-BR/Tutorials/Angular/images/bookstore-new-book-form.png b/docs/pt-BR/Tutorials/Angular/images/bookstore-new-book-form.png index 95de64f8d4..aecc1d4a1a 100644 Binary files a/docs/pt-BR/Tutorials/Angular/images/bookstore-new-book-form.png and b/docs/pt-BR/Tutorials/Angular/images/bookstore-new-book-form.png differ diff --git a/docs/pt-BR/Tutorials/Angular/images/bookstore-service-terminal-output.png b/docs/pt-BR/Tutorials/Angular/images/bookstore-service-terminal-output.png index 69aaccba31..5bbdb6560b 100644 Binary files a/docs/pt-BR/Tutorials/Angular/images/bookstore-service-terminal-output.png and b/docs/pt-BR/Tutorials/Angular/images/bookstore-service-terminal-output.png differ diff --git a/docs/pt-BR/Tutorials/Angular/images/bookstore-swagger-api.png b/docs/pt-BR/Tutorials/Angular/images/bookstore-swagger-api.png index 437c772503..83c416618a 100644 Binary files a/docs/pt-BR/Tutorials/Angular/images/bookstore-swagger-api.png and b/docs/pt-BR/Tutorials/Angular/images/bookstore-swagger-api.png differ diff --git a/docs/pt-BR/Tutorials/Angular/images/bookstore-test-explorer.png b/docs/pt-BR/Tutorials/Angular/images/bookstore-test-explorer.png index 06e9e7d331..004b5bf089 100644 Binary files a/docs/pt-BR/Tutorials/Angular/images/bookstore-test-explorer.png and b/docs/pt-BR/Tutorials/Angular/images/bookstore-test-explorer.png differ diff --git a/docs/pt-BR/Tutorials/Angular/images/bookstore-test-projects-v3.png b/docs/pt-BR/Tutorials/Angular/images/bookstore-test-projects-v3.png index 32ea91b325..42cb175da1 100644 Binary files a/docs/pt-BR/Tutorials/Angular/images/bookstore-test-projects-v3.png and b/docs/pt-BR/Tutorials/Angular/images/bookstore-test-projects-v3.png differ diff --git a/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-add-create-dialog-v2.png b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-add-create-dialog-v2.png index fcadfd7a82..fd06f3e4e5 100644 Binary files a/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-add-create-dialog-v2.png and b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-add-create-dialog-v2.png differ diff --git a/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-add-edit-dialog.png b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-add-edit-dialog.png index b28d8736dd..adfc036d0b 100644 Binary files a/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-add-edit-dialog.png and b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-add-edit-dialog.png differ diff --git a/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-add-index-page-v2.png b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-add-index-page-v2.png index 2606bbab32..a4760261c6 100644 Binary files a/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-add-index-page-v2.png and b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-add-index-page-v2.png differ diff --git a/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-appservice-tests.png b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-appservice-tests.png index 942d2832a6..142ef57e22 100644 Binary files a/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-appservice-tests.png and b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-appservice-tests.png differ diff --git a/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-book-list-2.png b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-book-list-2.png index a7d49a661b..6fb475deab 100644 Binary files a/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-book-list-2.png and b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-book-list-2.png differ diff --git a/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-book-list.png b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-book-list.png index f531e6f457..fe2fd38349 100644 Binary files a/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-book-list.png and b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-book-list.png differ diff --git a/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-books-table-actions.png b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-books-table-actions.png index bc1d4e3f6f..431fb2defc 100644 Binary files a/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-books-table-actions.png and b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-books-table-actions.png differ diff --git a/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-books-table.png b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-books-table.png index 3cc8d7ca18..7254a97566 100644 Binary files a/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-books-table.png and b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-books-table.png differ diff --git a/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-create-dialog-2.png b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-create-dialog-2.png index 3d5f1e8582..eb84d88065 100644 Binary files a/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-create-dialog-2.png and b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-create-dialog-2.png differ diff --git a/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-create-dialog.png b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-create-dialog.png index 4691d3c8fa..f09f2f394f 100644 Binary files a/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-create-dialog.png and b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-create-dialog.png differ diff --git a/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-create-template.png b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-create-template.png index 7cc96c8c94..bae34a3b64 100644 Binary files a/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-create-template.png and b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-create-template.png differ diff --git a/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-homepage.png b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-homepage.png index 5e5b512220..dc015aa67d 100644 Binary files a/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-homepage.png and b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-homepage.png differ diff --git a/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-index-js-file-v2.png b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-index-js-file-v2.png index 1ba9a48600..2db5ab1a5e 100644 Binary files a/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-index-js-file-v2.png and b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-index-js-file-v2.png differ diff --git a/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-localization-files-v2.png b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-localization-files-v2.png index 79314dd2dc..a3616088d2 100644 Binary files a/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-localization-files-v2.png and b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-localization-files-v2.png differ diff --git a/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-menu-items.png b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-menu-items.png index 255defb707..ef3c404855 100644 Binary files a/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-menu-items.png and b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-menu-items.png differ diff --git a/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-new-book-button.png b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-new-book-button.png index dfd4b5d8aa..b173926a29 100644 Binary files a/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-new-book-button.png and b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-new-book-button.png differ diff --git a/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-pmc-add-book-migration-v2.png b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-pmc-add-book-migration-v2.png index edf2826361..ffecdf70c7 100644 Binary files a/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-pmc-add-book-migration-v2.png and b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-pmc-add-book-migration-v2.png differ diff --git a/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-pmc-add-book-migration.png b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-pmc-add-book-migration.png index 5d29f4d32b..cb3b6440c7 100644 Binary files a/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-pmc-add-book-migration.png and b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-pmc-add-book-migration.png differ diff --git a/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-swagger.png b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-swagger.png index 437c772503..83c416618a 100644 Binary files a/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-swagger.png and b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-swagger.png differ diff --git a/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-test-js-proxy-getlist-network.png b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-test-js-proxy-getlist-network.png index 2f2c42fd9e..ffa63dc581 100644 Binary files a/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-test-js-proxy-getlist-network.png and b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-test-js-proxy-getlist-network.png differ diff --git a/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-test-js-proxy-getlist.png b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-test-js-proxy-getlist.png index 47af48b1ea..7fe3cead35 100644 Binary files a/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-test-js-proxy-getlist.png and b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-test-js-proxy-getlist.png differ diff --git a/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-test-projects-v2.png b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-test-projects-v2.png index 8701164d75..45d08ecea3 100644 Binary files a/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-test-projects-v2.png and b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-test-projects-v2.png differ diff --git a/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-user-management.png b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-user-management.png index bc3c176557..d7d3429826 100644 Binary files a/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-user-management.png and b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-user-management.png differ diff --git a/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-visual-studio-solution-v3.png b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-visual-studio-solution-v3.png index 307e3516a5..ce821eba72 100644 Binary files a/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-visual-studio-solution-v3.png and b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-visual-studio-solution-v3.png differ diff --git a/docs/pt-BR/images/MonthlyProfitWidgetFiles.png b/docs/pt-BR/images/MonthlyProfitWidgetFiles.png index e1e9d316f5..c3e4d6f1ab 100644 Binary files a/docs/pt-BR/images/MonthlyProfitWidgetFiles.png and b/docs/pt-BR/images/MonthlyProfitWidgetFiles.png differ diff --git a/docs/pt-BR/images/bookstore-apis.png b/docs/pt-BR/images/bookstore-apis.png index aedd79c7f1..b7928c9637 100644 Binary files a/docs/pt-BR/images/bookstore-apis.png and b/docs/pt-BR/images/bookstore-apis.png differ diff --git a/docs/pt-BR/images/bookstore-create-template.png b/docs/pt-BR/images/bookstore-create-template.png index 7cc96c8c94..bae34a3b64 100644 Binary files a/docs/pt-BR/images/bookstore-create-template.png and b/docs/pt-BR/images/bookstore-create-template.png differ diff --git a/docs/pt-BR/images/bookstore-homepage.png b/docs/pt-BR/images/bookstore-homepage.png index 5e5b512220..dc015aa67d 100644 Binary files a/docs/pt-BR/images/bookstore-homepage.png and b/docs/pt-BR/images/bookstore-homepage.png differ diff --git a/docs/pt-BR/images/bookstore-swagger-ui-host.png b/docs/pt-BR/images/bookstore-swagger-ui-host.png index 74ff73f7e3..7ebd8d8e37 100644 Binary files a/docs/pt-BR/images/bookstore-swagger-ui-host.png and b/docs/pt-BR/images/bookstore-swagger-ui-host.png differ diff --git a/docs/pt-BR/images/bookstore-user-management-v2.png b/docs/pt-BR/images/bookstore-user-management-v2.png index dd95740754..cd66010e05 100644 Binary files a/docs/pt-BR/images/bookstore-user-management-v2.png and b/docs/pt-BR/images/bookstore-user-management-v2.png differ diff --git a/docs/pt-BR/images/bookstore-visual-studio-solution-for-spa.png b/docs/pt-BR/images/bookstore-visual-studio-solution-for-spa.png index 5a5a283c7d..d114ed188c 100644 Binary files a/docs/pt-BR/images/bookstore-visual-studio-solution-for-spa.png and b/docs/pt-BR/images/bookstore-visual-studio-solution-for-spa.png differ diff --git a/docs/pt-BR/images/bookstore-visual-studio-solution-tiered.png b/docs/pt-BR/images/bookstore-visual-studio-solution-tiered.png index 19662bf731..9affe841aa 100644 Binary files a/docs/pt-BR/images/bookstore-visual-studio-solution-tiered.png and b/docs/pt-BR/images/bookstore-visual-studio-solution-tiered.png differ diff --git a/docs/pt-BR/images/bookstore-visual-studio-solution-v3.png b/docs/pt-BR/images/bookstore-visual-studio-solution-v3.png index 307e3516a5..ce821eba72 100644 Binary files a/docs/pt-BR/images/bookstore-visual-studio-solution-v3.png and b/docs/pt-BR/images/bookstore-visual-studio-solution-v3.png differ diff --git a/docs/pt-BR/images/build-action-embedded-resource-sample.png b/docs/pt-BR/images/build-action-embedded-resource-sample.png index d001c5d19f..700e9921f4 100644 Binary files a/docs/pt-BR/images/build-action-embedded-resource-sample.png and b/docs/pt-BR/images/build-action-embedded-resource-sample.png differ diff --git a/docs/pt-BR/images/create-new-aspnet-core-application.png b/docs/pt-BR/images/create-new-aspnet-core-application.png index fe78b9051d..2c38289810 100644 Binary files a/docs/pt-BR/images/create-new-aspnet-core-application.png and b/docs/pt-BR/images/create-new-aspnet-core-application.png differ diff --git a/docs/pt-BR/images/create-new-net-core-console-application.png b/docs/pt-BR/images/create-new-net-core-console-application.png index c5f39bfb37..0c2b3dbcb8 100644 Binary files a/docs/pt-BR/images/create-new-net-core-console-application.png and b/docs/pt-BR/images/create-new-net-core-console-application.png differ diff --git a/docs/pt-BR/images/dashboard1.png b/docs/pt-BR/images/dashboard1.png index 4102bbd4c1..8c542b8786 100644 Binary files a/docs/pt-BR/images/dashboard1.png and b/docs/pt-BR/images/dashboard1.png differ diff --git a/docs/pt-BR/images/db-migrator-app.png b/docs/pt-BR/images/db-migrator-app.png index ace6abb226..d2248d4588 100644 Binary files a/docs/pt-BR/images/db-migrator-app.png and b/docs/pt-BR/images/db-migrator-app.png differ diff --git a/docs/pt-BR/images/docs-create-project.jpg b/docs/pt-BR/images/docs-create-project.jpg index 742f5e307f..d2baa3242a 100644 Binary files a/docs/pt-BR/images/docs-create-project.jpg and b/docs/pt-BR/images/docs-create-project.jpg differ diff --git a/docs/pt-BR/images/docs-module_download-new-abp-project.png b/docs/pt-BR/images/docs-module_download-new-abp-project.png index 0da3b7a67a..bc7aaacbd6 100644 Binary files a/docs/pt-BR/images/docs-module_download-new-abp-project.png and b/docs/pt-BR/images/docs-module_download-new-abp-project.png differ diff --git a/docs/pt-BR/images/docs-module_download-sample-navigation-menu.png b/docs/pt-BR/images/docs-module_download-sample-navigation-menu.png index 9a1232f198..8d8eb42d52 100644 Binary files a/docs/pt-BR/images/docs-module_download-sample-navigation-menu.png and b/docs/pt-BR/images/docs-module_download-sample-navigation-menu.png differ diff --git a/docs/pt-BR/images/docs-module_solution-explorer.png b/docs/pt-BR/images/docs-module_solution-explorer.png index cafc38f0b0..97bd3fc18e 100644 Binary files a/docs/pt-BR/images/docs-module_solution-explorer.png and b/docs/pt-BR/images/docs-module_solution-explorer.png differ diff --git a/docs/pt-BR/images/github-access-token-private-repo.jpg b/docs/pt-BR/images/github-access-token-private-repo.jpg index 5bc53cc63d..cb74f1eea3 100644 Binary files a/docs/pt-BR/images/github-access-token-private-repo.jpg and b/docs/pt-BR/images/github-access-token-private-repo.jpg differ diff --git a/docs/pt-BR/images/github-access-token-public-repo.jpg b/docs/pt-BR/images/github-access-token-public-repo.jpg index b909c2cfe5..d091a6d511 100644 Binary files a/docs/pt-BR/images/github-access-token-public-repo.jpg and b/docs/pt-BR/images/github-access-token-public-repo.jpg differ diff --git a/docs/pt-BR/images/github-myusername.jpg b/docs/pt-BR/images/github-myusername.jpg index 4ac57eeed4..a723c17713 100644 Binary files a/docs/pt-BR/images/github-myusername.jpg and b/docs/pt-BR/images/github-myusername.jpg differ diff --git a/docs/pt-BR/images/issuemanagement-module-solution.png b/docs/pt-BR/images/issuemanagement-module-solution.png index 181924dd90..d5f64b01d2 100644 Binary files a/docs/pt-BR/images/issuemanagement-module-solution.png and b/docs/pt-BR/images/issuemanagement-module-solution.png differ diff --git a/docs/pt-BR/images/layered-project-dependencies-module.png b/docs/pt-BR/images/layered-project-dependencies-module.png index 7592f49878..de3b7a412f 100644 Binary files a/docs/pt-BR/images/layered-project-dependencies-module.png and b/docs/pt-BR/images/layered-project-dependencies-module.png differ diff --git a/docs/pt-BR/images/layered-project-dependencies.png b/docs/pt-BR/images/layered-project-dependencies.png index c5fd1b3504..ed3e03fe4d 100644 Binary files a/docs/pt-BR/images/layered-project-dependencies.png and b/docs/pt-BR/images/layered-project-dependencies.png differ diff --git a/docs/pt-BR/images/localization-resource-json-files.png b/docs/pt-BR/images/localization-resource-json-files.png index bbbd78c320..1a1d43403c 100644 Binary files a/docs/pt-BR/images/localization-resource-json-files.png and b/docs/pt-BR/images/localization-resource-json-files.png differ diff --git a/docs/pt-BR/images/microservice-sample-authserver-home.png b/docs/pt-BR/images/microservice-sample-authserver-home.png index 7ae62ad6d5..684fdb1a5a 100644 Binary files a/docs/pt-BR/images/microservice-sample-authserver-home.png and b/docs/pt-BR/images/microservice-sample-authserver-home.png differ diff --git a/docs/pt-BR/images/microservice-sample-authserver-login.png b/docs/pt-BR/images/microservice-sample-authserver-login.png index f6e8dfaa9f..99d898ccd2 100644 Binary files a/docs/pt-BR/images/microservice-sample-authserver-login.png and b/docs/pt-BR/images/microservice-sample-authserver-login.png differ diff --git a/docs/pt-BR/images/microservice-sample-backend-ui-permissions.png b/docs/pt-BR/images/microservice-sample-backend-ui-permissions.png index 02769be3e5..3e1610294f 100644 Binary files a/docs/pt-BR/images/microservice-sample-backend-ui-permissions.png and b/docs/pt-BR/images/microservice-sample-backend-ui-permissions.png differ diff --git a/docs/pt-BR/images/microservice-sample-backend-ui.png b/docs/pt-BR/images/microservice-sample-backend-ui.png index 0935a6047a..e649c8da59 100644 Binary files a/docs/pt-BR/images/microservice-sample-backend-ui.png and b/docs/pt-BR/images/microservice-sample-backend-ui.png differ diff --git a/docs/pt-BR/images/microservice-sample-blogservice-permission-in-database.png b/docs/pt-BR/images/microservice-sample-blogservice-permission-in-database.png index f99cd39893..45d7f2b115 100644 Binary files a/docs/pt-BR/images/microservice-sample-blogservice-permission-in-database.png and b/docs/pt-BR/images/microservice-sample-blogservice-permission-in-database.png differ diff --git a/docs/pt-BR/images/microservice-sample-diagram-2.png b/docs/pt-BR/images/microservice-sample-diagram-2.png index 17aea07098..414a942aca 100644 Binary files a/docs/pt-BR/images/microservice-sample-diagram-2.png and b/docs/pt-BR/images/microservice-sample-diagram-2.png differ diff --git a/docs/pt-BR/images/microservice-sample-diagram.png b/docs/pt-BR/images/microservice-sample-diagram.png index b1d9f6c66e..47e6443852 100644 Binary files a/docs/pt-BR/images/microservice-sample-diagram.png and b/docs/pt-BR/images/microservice-sample-diagram.png differ diff --git a/docs/pt-BR/images/microservice-sample-kibana-1.png b/docs/pt-BR/images/microservice-sample-kibana-1.png index f3a51bd349..51777f6bd7 100644 Binary files a/docs/pt-BR/images/microservice-sample-kibana-1.png and b/docs/pt-BR/images/microservice-sample-kibana-1.png differ diff --git a/docs/pt-BR/images/microservice-sample-kibana-2.png b/docs/pt-BR/images/microservice-sample-kibana-2.png index 31b281486c..cb1d0b748c 100644 Binary files a/docs/pt-BR/images/microservice-sample-kibana-2.png and b/docs/pt-BR/images/microservice-sample-kibana-2.png differ diff --git a/docs/pt-BR/images/microservice-sample-product-module-in-solution.png b/docs/pt-BR/images/microservice-sample-product-module-in-solution.png index 27e841cdd5..2c07ad4b99 100644 Binary files a/docs/pt-BR/images/microservice-sample-product-module-in-solution.png and b/docs/pt-BR/images/microservice-sample-product-module-in-solution.png differ diff --git a/docs/pt-BR/images/microservice-sample-public-product-list.png b/docs/pt-BR/images/microservice-sample-public-product-list.png index cf8649bbe5..932b0b531c 100644 Binary files a/docs/pt-BR/images/microservice-sample-public-product-list.png and b/docs/pt-BR/images/microservice-sample-public-product-list.png differ diff --git a/docs/pt-BR/images/microservice-sample-solution.png b/docs/pt-BR/images/microservice-sample-solution.png index 4c8344ed68..d1497d9be2 100644 Binary files a/docs/pt-BR/images/microservice-sample-solution.png and b/docs/pt-BR/images/microservice-sample-solution.png differ diff --git a/docs/pt-BR/images/microservice-sample-update-database-authserver.png b/docs/pt-BR/images/microservice-sample-update-database-authserver.png index 689019b587..094fd20fa6 100644 Binary files a/docs/pt-BR/images/microservice-sample-update-database-authserver.png and b/docs/pt-BR/images/microservice-sample-update-database-authserver.png differ diff --git a/docs/pt-BR/images/microservice-sample-update-database-products.png b/docs/pt-BR/images/microservice-sample-update-database-products.png index b49c2a8f8e..32a0927c1f 100644 Binary files a/docs/pt-BR/images/microservice-sample-update-database-products.png and b/docs/pt-BR/images/microservice-sample-update-database-products.png differ diff --git a/docs/pt-BR/images/night-build-add-nuget-package.png b/docs/pt-BR/images/night-build-add-nuget-package.png index c3621ef7d9..f475d3aaa0 100644 Binary files a/docs/pt-BR/images/night-build-add-nuget-package.png and b/docs/pt-BR/images/night-build-add-nuget-package.png differ diff --git a/docs/pt-BR/images/night-build-add-nuget-source.png b/docs/pt-BR/images/night-build-add-nuget-source.png index 8fd4b9365a..df3176aa12 100644 Binary files a/docs/pt-BR/images/night-build-add-nuget-source.png and b/docs/pt-BR/images/night-build-add-nuget-source.png differ diff --git a/docs/pt-BR/images/pcm-update-database-v2.png b/docs/pt-BR/images/pcm-update-database-v2.png index d5bb9c2975..72d02e9186 100644 Binary files a/docs/pt-BR/images/pcm-update-database-v2.png and b/docs/pt-BR/images/pcm-update-database-v2.png differ diff --git a/docs/pt-BR/images/pcm-update-database.png b/docs/pt-BR/images/pcm-update-database.png index ac53f0db4f..a9379d2571 100644 Binary files a/docs/pt-BR/images/pcm-update-database.png and b/docs/pt-BR/images/pcm-update-database.png differ diff --git a/docs/pt-BR/images/select-empty-web-application.png b/docs/pt-BR/images/select-empty-web-application.png index b0cd89a27a..f4b884140d 100644 Binary files a/docs/pt-BR/images/select-empty-web-application.png and b/docs/pt-BR/images/select-empty-web-application.png differ diff --git a/docs/pt-BR/images/set-as-startup-project.png b/docs/pt-BR/images/set-as-startup-project.png index 13da5caf6c..8a5445bf38 100644 Binary files a/docs/pt-BR/images/set-as-startup-project.png and b/docs/pt-BR/images/set-as-startup-project.png differ diff --git a/docs/pt-BR/images/tiered-solution-applications.png b/docs/pt-BR/images/tiered-solution-applications.png index fb6ede7ac5..df8d2b5f4a 100644 Binary files a/docs/pt-BR/images/tiered-solution-applications.png and b/docs/pt-BR/images/tiered-solution-applications.png differ diff --git a/docs/pt-BR/images/tiered-solution-servers.png b/docs/pt-BR/images/tiered-solution-servers.png index 3c999b4b45..68e72990d7 100644 Binary files a/docs/pt-BR/images/tiered-solution-servers.png and b/docs/pt-BR/images/tiered-solution-servers.png differ diff --git a/docs/pt-BR/images/volodocs-iis-add-website.png b/docs/pt-BR/images/volodocs-iis-add-website.png index 878b3e8f0c..aa7da8095b 100644 Binary files a/docs/pt-BR/images/volodocs-iis-add-website.png and b/docs/pt-BR/images/volodocs-iis-add-website.png differ diff --git a/docs/pt-BR/images/volodocs-iis-application-pool.png b/docs/pt-BR/images/volodocs-iis-application-pool.png index cc5186f50b..28ccfa5c42 100644 Binary files a/docs/pt-BR/images/volodocs-iis-application-pool.png and b/docs/pt-BR/images/volodocs-iis-application-pool.png differ diff --git a/docs/pt-BR/images/widget-basic-files.png b/docs/pt-BR/images/widget-basic-files.png index bf5f122d42..c692abd9e0 100644 Binary files a/docs/pt-BR/images/widget-basic-files.png and b/docs/pt-BR/images/widget-basic-files.png differ diff --git a/docs/zh-Hans/AspNetCore/Tag-Helpers/fa-address-card.png b/docs/zh-Hans/AspNetCore/Tag-Helpers/fa-address-card.png index a3b2c815b8..3e25f1ff4d 100644 Binary files a/docs/zh-Hans/AspNetCore/Tag-Helpers/fa-address-card.png and b/docs/zh-Hans/AspNetCore/Tag-Helpers/fa-address-card.png differ diff --git a/docs/zh-Hans/Best-Practices/images/postgresql-delete-initial-migrations.png b/docs/zh-Hans/Best-Practices/images/postgresql-delete-initial-migrations.png index 39d9e6dedf..14788c5fb8 100644 Binary files a/docs/zh-Hans/Best-Practices/images/postgresql-delete-initial-migrations.png and b/docs/zh-Hans/Best-Practices/images/postgresql-delete-initial-migrations.png differ diff --git a/docs/zh-Hans/Best-Practices/images/postgresql-update-database.png b/docs/zh-Hans/Best-Practices/images/postgresql-update-database.png index 02b61ef6a3..30a5f3abe1 100644 Binary files a/docs/zh-Hans/Best-Practices/images/postgresql-update-database.png and b/docs/zh-Hans/Best-Practices/images/postgresql-update-database.png differ diff --git a/docs/zh-Hans/Blog-Posts/2018-09-24-Announcement/dynamic-forms.png b/docs/zh-Hans/Blog-Posts/2018-09-24-Announcement/dynamic-forms.png index d0c3b8f250..22911d4b72 100644 Binary files a/docs/zh-Hans/Blog-Posts/2018-09-24-Announcement/dynamic-forms.png and b/docs/zh-Hans/Blog-Posts/2018-09-24-Announcement/dynamic-forms.png differ diff --git a/docs/zh-Hans/Blog-Posts/2019-06-19 v0_18_Release/mvc-template-solution.png b/docs/zh-Hans/Blog-Posts/2019-06-19 v0_18_Release/mvc-template-solution.png index 307e3516a5..ce821eba72 100644 Binary files a/docs/zh-Hans/Blog-Posts/2019-06-19 v0_18_Release/mvc-template-solution.png and b/docs/zh-Hans/Blog-Posts/2019-06-19 v0_18_Release/mvc-template-solution.png differ diff --git a/docs/zh-Hans/Blog-Posts/2019-10-22 v1_0_Release/contribution-graph.png b/docs/zh-Hans/Blog-Posts/2019-10-22 v1_0_Release/contribution-graph.png index 7043401fa2..abb137846f 100644 Binary files a/docs/zh-Hans/Blog-Posts/2019-10-22 v1_0_Release/contribution-graph.png and b/docs/zh-Hans/Blog-Posts/2019-10-22 v1_0_Release/contribution-graph.png differ diff --git a/docs/zh-Hans/Blog-Posts/2020-01-15 v2_0_Release/abp-commercial-demo.png b/docs/zh-Hans/Blog-Posts/2020-01-15 v2_0_Release/abp-commercial-demo.png index caddce27ab..9153adeb86 100644 Binary files a/docs/zh-Hans/Blog-Posts/2020-01-15 v2_0_Release/abp-commercial-demo.png and b/docs/zh-Hans/Blog-Posts/2020-01-15 v2_0_Release/abp-commercial-demo.png differ diff --git a/docs/zh-Hans/Blog-Posts/2020-01-15 v2_0_Release/lepton-theme-material.png b/docs/zh-Hans/Blog-Posts/2020-01-15 v2_0_Release/lepton-theme-material.png index 72cb5c0639..279f4b2cf1 100644 Binary files a/docs/zh-Hans/Blog-Posts/2020-01-15 v2_0_Release/lepton-theme-material.png and b/docs/zh-Hans/Blog-Posts/2020-01-15 v2_0_Release/lepton-theme-material.png differ diff --git a/docs/zh-Hans/Blog-Posts/2020-01-15 v2_0_Release/ndc-2020-volosoft-booth-wall.png b/docs/zh-Hans/Blog-Posts/2020-01-15 v2_0_Release/ndc-2020-volosoft-booth-wall.png index 70fb9d54f7..428ecc284d 100644 Binary files a/docs/zh-Hans/Blog-Posts/2020-01-15 v2_0_Release/ndc-2020-volosoft-booth-wall.png and b/docs/zh-Hans/Blog-Posts/2020-01-15 v2_0_Release/ndc-2020-volosoft-booth-wall.png differ diff --git a/docs/zh-Hans/Blog-Posts/2020-03-19 v2_3_Release/react-native-ui.png b/docs/zh-Hans/Blog-Posts/2020-03-19 v2_3_Release/react-native-ui.png index 47d889413c..ab054e7cb0 100644 Binary files a/docs/zh-Hans/Blog-Posts/2020-03-19 v2_3_Release/react-native-ui.png and b/docs/zh-Hans/Blog-Posts/2020-03-19 v2_3_Release/react-native-ui.png differ diff --git a/docs/zh-Hans/Blog-Posts/2020-05-08 v2_7_Release/abp-commercial-ui-extensions.png b/docs/zh-Hans/Blog-Posts/2020-05-08 v2_7_Release/abp-commercial-ui-extensions.png index 52fe37a712..252af6b9e4 100644 Binary files a/docs/zh-Hans/Blog-Posts/2020-05-08 v2_7_Release/abp-commercial-ui-extensions.png and b/docs/zh-Hans/Blog-Posts/2020-05-08 v2_7_Release/abp-commercial-ui-extensions.png differ diff --git a/docs/zh-Hans/Blog-Posts/2020-05-08 v2_7_Release/audit-log-entity-changes.png b/docs/zh-Hans/Blog-Posts/2020-05-08 v2_7_Release/audit-log-entity-changes.png index e06b3300ee..6a1ec44810 100644 Binary files a/docs/zh-Hans/Blog-Posts/2020-05-08 v2_7_Release/audit-log-entity-changes.png and b/docs/zh-Hans/Blog-Posts/2020-05-08 v2_7_Release/audit-log-entity-changes.png differ diff --git a/docs/zh-Hans/Blog-Posts/2020-05-08 v2_7_Release/easy-crm.png b/docs/zh-Hans/Blog-Posts/2020-05-08 v2_7_Release/easy-crm.png index e40f399525..2bfa53cbcc 100644 Binary files a/docs/zh-Hans/Blog-Posts/2020-05-08 v2_7_Release/easy-crm.png and b/docs/zh-Hans/Blog-Posts/2020-05-08 v2_7_Release/easy-crm.png differ diff --git a/docs/zh-Hans/Blog-Posts/2020-05-08 v2_7_Release/github-contribution-graph.png b/docs/zh-Hans/Blog-Posts/2020-05-08 v2_7_Release/github-contribution-graph.png index ff3db2ad22..e624e75e38 100644 Binary files a/docs/zh-Hans/Blog-Posts/2020-05-08 v2_7_Release/github-contribution-graph.png and b/docs/zh-Hans/Blog-Posts/2020-05-08 v2_7_Release/github-contribution-graph.png differ diff --git a/docs/zh-Hans/Blog-Posts/2020-05-08 v2_7_Release/tenant-entity-changes.png b/docs/zh-Hans/Blog-Posts/2020-05-08 v2_7_Release/tenant-entity-changes.png index 4cd573c588..31524187b0 100644 Binary files a/docs/zh-Hans/Blog-Posts/2020-05-08 v2_7_Release/tenant-entity-changes.png and b/docs/zh-Hans/Blog-Posts/2020-05-08 v2_7_Release/tenant-entity-changes.png differ diff --git a/docs/zh-Hans/Blog-Posts/2020-05-08 v2_7_Release/text-template-content-ui.png b/docs/zh-Hans/Blog-Posts/2020-05-08 v2_7_Release/text-template-content-ui.png index 037e3e4d8b..99c7972da3 100644 Binary files a/docs/zh-Hans/Blog-Posts/2020-05-08 v2_7_Release/text-template-content-ui.png and b/docs/zh-Hans/Blog-Posts/2020-05-08 v2_7_Release/text-template-content-ui.png differ diff --git a/docs/zh-Hans/Blog-Posts/2020-05-22 v2_8_Release/abp-chat-module.png b/docs/zh-Hans/Blog-Posts/2020-05-22 v2_8_Release/abp-chat-module.png index 88509b6022..5ae351ebba 100644 Binary files a/docs/zh-Hans/Blog-Posts/2020-05-22 v2_8_Release/abp-chat-module.png and b/docs/zh-Hans/Blog-Posts/2020-05-22 v2_8_Release/abp-chat-module.png differ diff --git a/docs/zh-Hans/Blog-Posts/2020-05-22 v2_8_Release/lepton-abp-default-theme.png b/docs/zh-Hans/Blog-Posts/2020-05-22 v2_8_Release/lepton-abp-default-theme.png index 93e94e5a67..f3c3d16581 100644 Binary files a/docs/zh-Hans/Blog-Posts/2020-05-22 v2_8_Release/lepton-abp-default-theme.png and b/docs/zh-Hans/Blog-Posts/2020-05-22 v2_8_Release/lepton-abp-default-theme.png differ diff --git a/docs/zh-Hans/Blog-Posts/2020-05-22 v2_8_Release/lepton-abp-material-theme.png b/docs/zh-Hans/Blog-Posts/2020-05-22 v2_8_Release/lepton-abp-material-theme.png index c78dc96245..e22c3003d9 100644 Binary files a/docs/zh-Hans/Blog-Posts/2020-05-22 v2_8_Release/lepton-abp-material-theme.png and b/docs/zh-Hans/Blog-Posts/2020-05-22 v2_8_Release/lepton-abp-material-theme.png differ diff --git a/docs/zh-Hans/Blog-Posts/2020-05-22 v2_8_Release/rtl-ui.png b/docs/zh-Hans/Blog-Posts/2020-05-22 v2_8_Release/rtl-ui.png index 0e1a162eb1..34cd6581dd 100644 Binary files a/docs/zh-Hans/Blog-Posts/2020-05-22 v2_8_Release/rtl-ui.png and b/docs/zh-Hans/Blog-Posts/2020-05-22 v2_8_Release/rtl-ui.png differ diff --git a/docs/zh-Hans/Blog-Posts/2020-05-22 v2_8_Release/signalr-chat-demo.png b/docs/zh-Hans/Blog-Posts/2020-05-22 v2_8_Release/signalr-chat-demo.png index e5f647b79c..c93595511a 100644 Binary files a/docs/zh-Hans/Blog-Posts/2020-05-22 v2_8_Release/signalr-chat-demo.png and b/docs/zh-Hans/Blog-Posts/2020-05-22 v2_8_Release/signalr-chat-demo.png differ diff --git a/docs/zh-Hans/Blog-Posts/2020-06-05 v2_9_Release/abp-chat-module.png b/docs/zh-Hans/Blog-Posts/2020-06-05 v2_9_Release/abp-chat-module.png index 88509b6022..5ae351ebba 100644 Binary files a/docs/zh-Hans/Blog-Posts/2020-06-05 v2_9_Release/abp-chat-module.png and b/docs/zh-Hans/Blog-Posts/2020-06-05 v2_9_Release/abp-chat-module.png differ diff --git a/docs/zh-Hans/Blog-Posts/2020-06-05 v2_9_Release/easy-crm.png b/docs/zh-Hans/Blog-Posts/2020-06-05 v2_9_Release/easy-crm.png index 829f7b366f..07d7a2b54d 100644 Binary files a/docs/zh-Hans/Blog-Posts/2020-06-05 v2_9_Release/easy-crm.png and b/docs/zh-Hans/Blog-Posts/2020-06-05 v2_9_Release/easy-crm.png differ diff --git a/docs/zh-Hans/Blog-Posts/2020-06-05 v2_9_Release/lepton-theme.png b/docs/zh-Hans/Blog-Posts/2020-06-05 v2_9_Release/lepton-theme.png index d471078deb..f6a85115e0 100644 Binary files a/docs/zh-Hans/Blog-Posts/2020-06-05 v2_9_Release/lepton-theme.png and b/docs/zh-Hans/Blog-Posts/2020-06-05 v2_9_Release/lepton-theme.png differ diff --git a/docs/zh-Hans/Blog-Posts/2020-06-05 v2_9_Release/organization-units.png b/docs/zh-Hans/Blog-Posts/2020-06-05 v2_9_Release/organization-units.png index 57d0399860..2a6ad72ffb 100644 Binary files a/docs/zh-Hans/Blog-Posts/2020-06-05 v2_9_Release/organization-units.png and b/docs/zh-Hans/Blog-Posts/2020-06-05 v2_9_Release/organization-units.png differ diff --git a/docs/zh-Hans/Blog-Posts/2020-06-05 v2_9_Release/signalr-tiered-demo.png b/docs/zh-Hans/Blog-Posts/2020-06-05 v2_9_Release/signalr-tiered-demo.png index bb81ddf37a..c4ca5e2b14 100644 Binary files a/docs/zh-Hans/Blog-Posts/2020-06-05 v2_9_Release/signalr-tiered-demo.png and b/docs/zh-Hans/Blog-Posts/2020-06-05 v2_9_Release/signalr-tiered-demo.png differ diff --git a/docs/zh-Hans/Blog-Posts/2020-06-05 v2_9_Release/suite.png b/docs/zh-Hans/Blog-Posts/2020-06-05 v2_9_Release/suite.png index fb5eac6012..7e08cb3ef3 100644 Binary files a/docs/zh-Hans/Blog-Posts/2020-06-05 v2_9_Release/suite.png and b/docs/zh-Hans/Blog-Posts/2020-06-05 v2_9_Release/suite.png differ diff --git a/docs/zh-Hans/Blog-Posts/2020-06-05 v2_9_Release/virtual-file-explorer-1.png b/docs/zh-Hans/Blog-Posts/2020-06-05 v2_9_Release/virtual-file-explorer-1.png index 99cc1bb49d..0db07459ca 100644 Binary files a/docs/zh-Hans/Blog-Posts/2020-06-05 v2_9_Release/virtual-file-explorer-1.png and b/docs/zh-Hans/Blog-Posts/2020-06-05 v2_9_Release/virtual-file-explorer-1.png differ diff --git a/docs/zh-Hans/Blog-Posts/2020-06-05 v2_9_Release/virtual-file-explorer-2.png b/docs/zh-Hans/Blog-Posts/2020-06-05 v2_9_Release/virtual-file-explorer-2.png index cac68ae661..5d4d85755d 100644 Binary files a/docs/zh-Hans/Blog-Posts/2020-06-05 v2_9_Release/virtual-file-explorer-2.png and b/docs/zh-Hans/Blog-Posts/2020-06-05 v2_9_Release/virtual-file-explorer-2.png differ diff --git a/docs/zh-Hans/Blog-Posts/2020-07-01 v3_0_Release/file-management-ui.png b/docs/zh-Hans/Blog-Posts/2020-07-01 v3_0_Release/file-management-ui.png index b5d5ea54e4..3dd42f950d 100644 Binary files a/docs/zh-Hans/Blog-Posts/2020-07-01 v3_0_Release/file-management-ui.png and b/docs/zh-Hans/Blog-Posts/2020-07-01 v3_0_Release/file-management-ui.png differ diff --git a/docs/zh-Hans/Getting-Started-Setup-Environment.md b/docs/zh-Hans/Getting-Started-Setup-Environment.md index 60b446ac6b..0ba3c2738d 100644 --- a/docs/zh-Hans/Getting-Started-Setup-Environment.md +++ b/docs/zh-Hans/Getting-Started-Setup-Environment.md @@ -21,7 +21,7 @@ * 一个集成开发环境 (比如: [Visual Studio](https://visualstudio.microsoft.com/vs/)) 它需要支持 [.NET 8.0+](https://dotnet.microsoft.com/download/dotnet) 的开发. {{ if UI != "Blazor" }} -* [Node v16 或 v18](https://nodejs.org/) +* [Node 16+](https://nodejs.org/) * [Yarn v1.20+ (不是v2)](https://classic.yarnpkg.com/en/docs/install) [1](#f-yarn) 或 npm v6+ (已跟随Node一起安装) {{ end }} {{ if Tiered == "Yes" }} diff --git a/docs/zh-Hans/Tutorials/Todo/run-without-iisexpress.png b/docs/zh-Hans/Tutorials/Todo/run-without-iisexpress.png index 41898e6c00..7713daf004 100644 Binary files a/docs/zh-Hans/Tutorials/Todo/run-without-iisexpress.png and b/docs/zh-Hans/Tutorials/Todo/run-without-iisexpress.png differ diff --git a/docs/zh-Hans/Tutorials/Todo/todo-api.png b/docs/zh-Hans/Tutorials/Todo/todo-api.png index f9a25f57b5..e698356e40 100644 Binary files a/docs/zh-Hans/Tutorials/Todo/todo-api.png and b/docs/zh-Hans/Tutorials/Todo/todo-api.png differ diff --git a/docs/zh-Hans/Tutorials/Todo/todo-efcore-migration.png b/docs/zh-Hans/Tutorials/Todo/todo-efcore-migration.png index 9fffeb716b..8c98351e96 100644 Binary files a/docs/zh-Hans/Tutorials/Todo/todo-efcore-migration.png and b/docs/zh-Hans/Tutorials/Todo/todo-efcore-migration.png differ diff --git a/docs/zh-Hans/Tutorials/Todo/todo-list.png b/docs/zh-Hans/Tutorials/Todo/todo-list.png index e2eaf8bc46..d5e2d70535 100644 Binary files a/docs/zh-Hans/Tutorials/Todo/todo-list.png and b/docs/zh-Hans/Tutorials/Todo/todo-list.png differ diff --git a/docs/zh-Hans/Tutorials/Todo/todo-swagger-ui-initial.png b/docs/zh-Hans/Tutorials/Todo/todo-swagger-ui-initial.png index 1d3ed405c7..c0b4ae3596 100644 Binary files a/docs/zh-Hans/Tutorials/Todo/todo-swagger-ui-initial.png and b/docs/zh-Hans/Tutorials/Todo/todo-swagger-ui-initial.png differ diff --git a/docs/zh-Hans/Tutorials/Todo/todo-ui-initial.png b/docs/zh-Hans/Tutorials/Todo/todo-ui-initial.png index 44be4ceaf6..7d232b7eb6 100644 Binary files a/docs/zh-Hans/Tutorials/Todo/todo-ui-initial.png and b/docs/zh-Hans/Tutorials/Todo/todo-ui-initial.png differ diff --git a/docs/zh-Hans/Tutorials/images/blazor-add-book-button.png b/docs/zh-Hans/Tutorials/images/blazor-add-book-button.png index 58a607d3b1..a28856cd91 100644 Binary files a/docs/zh-Hans/Tutorials/images/blazor-add-book-button.png and b/docs/zh-Hans/Tutorials/images/blazor-add-book-button.png differ diff --git a/docs/zh-Hans/Tutorials/images/blazor-add-books-component.png b/docs/zh-Hans/Tutorials/images/blazor-add-books-component.png index ec0412d31e..ccb414ec4f 100644 Binary files a/docs/zh-Hans/Tutorials/images/blazor-add-books-component.png and b/docs/zh-Hans/Tutorials/images/blazor-add-books-component.png differ diff --git a/docs/zh-Hans/Tutorials/images/blazor-bookstore-book-list-with-authors.png b/docs/zh-Hans/Tutorials/images/blazor-bookstore-book-list-with-authors.png index 75c5306c3c..e9eb55dc6f 100644 Binary files a/docs/zh-Hans/Tutorials/images/blazor-bookstore-book-list-with-authors.png and b/docs/zh-Hans/Tutorials/images/blazor-bookstore-book-list-with-authors.png differ diff --git a/docs/zh-Hans/Tutorials/images/blazor-bookstore-book-list.png b/docs/zh-Hans/Tutorials/images/blazor-bookstore-book-list.png index 18bb26ccb1..61cf0ebf66 100644 Binary files a/docs/zh-Hans/Tutorials/images/blazor-bookstore-book-list.png and b/docs/zh-Hans/Tutorials/images/blazor-bookstore-book-list.png differ diff --git a/docs/zh-Hans/Tutorials/images/blazor-delete-book-action.png b/docs/zh-Hans/Tutorials/images/blazor-delete-book-action.png index f2b0b83f30..258bd29d1d 100644 Binary files a/docs/zh-Hans/Tutorials/images/blazor-delete-book-action.png and b/docs/zh-Hans/Tutorials/images/blazor-delete-book-action.png differ diff --git a/docs/zh-Hans/Tutorials/images/blazor-edit-book-action-2.png b/docs/zh-Hans/Tutorials/images/blazor-edit-book-action-2.png index c3e2b1e0e1..3c3fed77ff 100644 Binary files a/docs/zh-Hans/Tutorials/images/blazor-edit-book-action-2.png and b/docs/zh-Hans/Tutorials/images/blazor-edit-book-action-2.png differ diff --git a/docs/zh-Hans/Tutorials/images/blazor-edit-book-modal.png b/docs/zh-Hans/Tutorials/images/blazor-edit-book-modal.png index e63e796d34..679ce2bdc7 100644 Binary files a/docs/zh-Hans/Tutorials/images/blazor-edit-book-modal.png and b/docs/zh-Hans/Tutorials/images/blazor-edit-book-modal.png differ diff --git a/docs/zh-Hans/Tutorials/images/blazor-menu-bookstore.png b/docs/zh-Hans/Tutorials/images/blazor-menu-bookstore.png index f9f334aa1d..097175dc64 100644 Binary files a/docs/zh-Hans/Tutorials/images/blazor-menu-bookstore.png and b/docs/zh-Hans/Tutorials/images/blazor-menu-bookstore.png differ diff --git a/docs/zh-Hans/Tutorials/images/blazor-new-book-modal.png b/docs/zh-Hans/Tutorials/images/blazor-new-book-modal.png index dd284a0ffd..08942800dc 100644 Binary files a/docs/zh-Hans/Tutorials/images/blazor-new-book-modal.png and b/docs/zh-Hans/Tutorials/images/blazor-new-book-modal.png differ diff --git a/docs/zh-Hans/Tutorials/images/book-create-modal-with-author.png b/docs/zh-Hans/Tutorials/images/book-create-modal-with-author.png index 5e662553aa..0ecaac08f4 100644 Binary files a/docs/zh-Hans/Tutorials/images/book-create-modal-with-author.png and b/docs/zh-Hans/Tutorials/images/book-create-modal-with-author.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-actions-buttons.png b/docs/zh-Hans/Tutorials/images/bookstore-actions-buttons.png index f5d8f0870b..8f495e0cc3 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-actions-buttons.png and b/docs/zh-Hans/Tutorials/images/bookstore-actions-buttons.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-add-create-dialog-v2.png b/docs/zh-Hans/Tutorials/images/bookstore-add-create-dialog-v2.png index fcadfd7a82..fd06f3e4e5 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-add-create-dialog-v2.png and b/docs/zh-Hans/Tutorials/images/bookstore-add-create-dialog-v2.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-add-edit-dialog.png b/docs/zh-Hans/Tutorials/images/bookstore-add-edit-dialog.png index b28d8736dd..adfc036d0b 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-add-edit-dialog.png and b/docs/zh-Hans/Tutorials/images/bookstore-add-edit-dialog.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-add-index-page-v2.png b/docs/zh-Hans/Tutorials/images/bookstore-add-index-page-v2.png index 2606bbab32..a4760261c6 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-add-index-page-v2.png and b/docs/zh-Hans/Tutorials/images/bookstore-add-index-page-v2.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-add-migration-authors.png b/docs/zh-Hans/Tutorials/images/bookstore-add-migration-authors.png index c24e33c628..2c16034ec4 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-add-migration-authors.png and b/docs/zh-Hans/Tutorials/images/bookstore-add-migration-authors.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-added-author-to-book-list-angular.png b/docs/zh-Hans/Tutorials/images/bookstore-added-author-to-book-list-angular.png index 9fba94d5bf..e033826c2a 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-added-author-to-book-list-angular.png and b/docs/zh-Hans/Tutorials/images/bookstore-added-author-to-book-list-angular.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-added-author-to-book-list.png b/docs/zh-Hans/Tutorials/images/bookstore-added-author-to-book-list.png index f318ddfd31..38dfd300a7 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-added-author-to-book-list.png and b/docs/zh-Hans/Tutorials/images/bookstore-added-author-to-book-list.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-added-authors-to-modals.png b/docs/zh-Hans/Tutorials/images/bookstore-added-authors-to-modals.png index 5fe4046794..ea2aba892c 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-added-authors-to-modals.png and b/docs/zh-Hans/Tutorials/images/bookstore-added-authors-to-modals.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-angular-author-selection.png b/docs/zh-Hans/Tutorials/images/bookstore-angular-author-selection.png index bb604233ab..8518ba521a 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-angular-author-selection.png and b/docs/zh-Hans/Tutorials/images/bookstore-angular-author-selection.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-angular-authors-page.png b/docs/zh-Hans/Tutorials/images/bookstore-angular-authors-page.png index bbd865e44b..3d965f2179 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-angular-authors-page.png and b/docs/zh-Hans/Tutorials/images/bookstore-angular-authors-page.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-angular-file-tree.png b/docs/zh-Hans/Tutorials/images/bookstore-angular-file-tree.png index d921f146fc..b311cf50c6 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-angular-file-tree.png and b/docs/zh-Hans/Tutorials/images/bookstore-angular-file-tree.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-angular-service-proxy-author.png b/docs/zh-Hans/Tutorials/images/bookstore-angular-service-proxy-author.png index ac231ef7a8..5d89973669 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-angular-service-proxy-author.png and b/docs/zh-Hans/Tutorials/images/bookstore-angular-service-proxy-author.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-appservice-tests.png b/docs/zh-Hans/Tutorials/images/bookstore-appservice-tests.png index 942d2832a6..142ef57e22 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-appservice-tests.png and b/docs/zh-Hans/Tutorials/images/bookstore-appservice-tests.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-author-domain-layer.png b/docs/zh-Hans/Tutorials/images/bookstore-author-domain-layer.png index fde53834bb..2256971559 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-author-domain-layer.png and b/docs/zh-Hans/Tutorials/images/bookstore-author-domain-layer.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-author-permissions.png b/docs/zh-Hans/Tutorials/images/bookstore-author-permissions.png index a20093d2c4..bfb4c208ef 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-author-permissions.png and b/docs/zh-Hans/Tutorials/images/bookstore-author-permissions.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-authors-page.png b/docs/zh-Hans/Tutorials/images/bookstore-authors-page.png index 6b8959df54..477437b525 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-authors-page.png and b/docs/zh-Hans/Tutorials/images/bookstore-authors-page.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-book-and-booktype.png b/docs/zh-Hans/Tutorials/images/bookstore-book-and-booktype.png index 1620ebf150..e4b53d6298 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-book-and-booktype.png and b/docs/zh-Hans/Tutorials/images/bookstore-book-and-booktype.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-book-list-2.png b/docs/zh-Hans/Tutorials/images/bookstore-book-list-2.png index a460d4241b..8305a6caf4 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-book-list-2.png and b/docs/zh-Hans/Tutorials/images/bookstore-book-list-2.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-book-list-3.png b/docs/zh-Hans/Tutorials/images/bookstore-book-list-3.png index cbd7ec4a6a..2022efbb35 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-book-list-3.png and b/docs/zh-Hans/Tutorials/images/bookstore-book-list-3.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-book-list.png b/docs/zh-Hans/Tutorials/images/bookstore-book-list.png index 4982032e64..f30c4eec72 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-book-list.png and b/docs/zh-Hans/Tutorials/images/bookstore-book-list.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-books-table-actions.png b/docs/zh-Hans/Tutorials/images/bookstore-books-table-actions.png index bc1d4e3f6f..431fb2defc 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-books-table-actions.png and b/docs/zh-Hans/Tutorials/images/bookstore-books-table-actions.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-books-table.png b/docs/zh-Hans/Tutorials/images/bookstore-books-table.png index 3cc8d7ca18..7254a97566 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-books-table.png and b/docs/zh-Hans/Tutorials/images/bookstore-books-table.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-books-with-authorname-angular.png b/docs/zh-Hans/Tutorials/images/bookstore-books-with-authorname-angular.png index 60db14377f..d388a49cd0 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-books-with-authorname-angular.png and b/docs/zh-Hans/Tutorials/images/bookstore-books-with-authorname-angular.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-confirmation-popup.png b/docs/zh-Hans/Tutorials/images/bookstore-confirmation-popup.png index b17e70638d..86b908e14a 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-confirmation-popup.png and b/docs/zh-Hans/Tutorials/images/bookstore-confirmation-popup.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-create-dialog-2.png b/docs/zh-Hans/Tutorials/images/bookstore-create-dialog-2.png index 3d5f1e8582..eb84d88065 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-create-dialog-2.png and b/docs/zh-Hans/Tutorials/images/bookstore-create-dialog-2.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-create-dialog.png b/docs/zh-Hans/Tutorials/images/bookstore-create-dialog.png index 4691d3c8fa..f09f2f394f 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-create-dialog.png and b/docs/zh-Hans/Tutorials/images/bookstore-create-dialog.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-create-project-angular.png b/docs/zh-Hans/Tutorials/images/bookstore-create-project-angular.png index b9eb38b8b7..c778baa656 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-create-project-angular.png and b/docs/zh-Hans/Tutorials/images/bookstore-create-project-angular.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-create-project-mvc.png b/docs/zh-Hans/Tutorials/images/bookstore-create-project-mvc.png index f453b20279..d7b2a9abec 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-create-project-mvc.png and b/docs/zh-Hans/Tutorials/images/bookstore-create-project-mvc.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-creating-book-list-terminal.png b/docs/zh-Hans/Tutorials/images/bookstore-creating-book-list-terminal.png index 13829db60f..9d168b3c55 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-creating-book-list-terminal.png and b/docs/zh-Hans/Tutorials/images/bookstore-creating-book-list-terminal.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-creating-book-module-terminal.png b/docs/zh-Hans/Tutorials/images/bookstore-creating-book-module-terminal.png index c935a6f130..65fd9da213 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-creating-book-module-terminal.png and b/docs/zh-Hans/Tutorials/images/bookstore-creating-book-module-terminal.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-creating-books-module-terminal.png b/docs/zh-Hans/Tutorials/images/bookstore-creating-books-module-terminal.png index ec9ef4c42f..3aa5e02a09 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-creating-books-module-terminal.png and b/docs/zh-Hans/Tutorials/images/bookstore-creating-books-module-terminal.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-database-tables-ef.png b/docs/zh-Hans/Tutorials/images/bookstore-database-tables-ef.png index 857b10de5b..4b99c50713 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-database-tables-ef.png and b/docs/zh-Hans/Tutorials/images/bookstore-database-tables-ef.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-database-tables-mongodb.png b/docs/zh-Hans/Tutorials/images/bookstore-database-tables-mongodb.png index 8d78bd9a54..88e1acc758 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-database-tables-mongodb.png and b/docs/zh-Hans/Tutorials/images/bookstore-database-tables-mongodb.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-dbmigrator-on-solution.png b/docs/zh-Hans/Tutorials/images/bookstore-dbmigrator-on-solution.png index 0b81900307..cfc74b1f0a 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-dbmigrator-on-solution.png and b/docs/zh-Hans/Tutorials/images/bookstore-dbmigrator-on-solution.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-edit-button-2.png b/docs/zh-Hans/Tutorials/images/bookstore-edit-button-2.png index 507bdd9406..df5b8128f8 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-edit-button-2.png and b/docs/zh-Hans/Tutorials/images/bookstore-edit-button-2.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-edit-button.png b/docs/zh-Hans/Tutorials/images/bookstore-edit-button.png index bfc1c64797..b6083364f7 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-edit-button.png and b/docs/zh-Hans/Tutorials/images/bookstore-edit-button.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-edit-delete-actions.png b/docs/zh-Hans/Tutorials/images/bookstore-edit-delete-actions.png index 9c275c6d15..923acba533 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-edit-delete-actions.png and b/docs/zh-Hans/Tutorials/images/bookstore-edit-delete-actions.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-efcore-migration-authors.png b/docs/zh-Hans/Tutorials/images/bookstore-efcore-migration-authors.png index 2cfb29f86f..60b458ae5b 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-efcore-migration-authors.png and b/docs/zh-Hans/Tutorials/images/bookstore-efcore-migration-authors.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-efcore-migration.png b/docs/zh-Hans/Tutorials/images/bookstore-efcore-migration.png index 5c034f6e80..d5f057d66e 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-efcore-migration.png and b/docs/zh-Hans/Tutorials/images/bookstore-efcore-migration.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-empty-new-book-modal.png b/docs/zh-Hans/Tutorials/images/bookstore-empty-new-book-modal.png index f4e969ae22..6168a91fdf 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-empty-new-book-modal.png and b/docs/zh-Hans/Tutorials/images/bookstore-empty-new-book-modal.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-final-actions-dropdown.png b/docs/zh-Hans/Tutorials/images/bookstore-final-actions-dropdown.png index 4f41829f0d..94d4e20aef 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-final-actions-dropdown.png and b/docs/zh-Hans/Tutorials/images/bookstore-final-actions-dropdown.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-generate-state-books.png b/docs/zh-Hans/Tutorials/images/bookstore-generate-state-books.png index be7a919017..1a89bfbaeb 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-generate-state-books.png and b/docs/zh-Hans/Tutorials/images/bookstore-generate-state-books.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-getlist-result-network.png b/docs/zh-Hans/Tutorials/images/bookstore-getlist-result-network.png index 141f9d14ee..ef9977e00c 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-getlist-result-network.png and b/docs/zh-Hans/Tutorials/images/bookstore-getlist-result-network.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-homepage.png b/docs/zh-Hans/Tutorials/images/bookstore-homepage.png index 5e5b512220..dc015aa67d 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-homepage.png and b/docs/zh-Hans/Tutorials/images/bookstore-homepage.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-index-js-file-v2.png b/docs/zh-Hans/Tutorials/images/bookstore-index-js-file-v2.png index 1ba9a48600..2db5ab1a5e 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-index-js-file-v2.png and b/docs/zh-Hans/Tutorials/images/bookstore-index-js-file-v2.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-index-js-file-v3.png b/docs/zh-Hans/Tutorials/images/bookstore-index-js-file-v3.png index add95788a8..a3b34c5161 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-index-js-file-v3.png and b/docs/zh-Hans/Tutorials/images/bookstore-index-js-file-v3.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-initial-book-list-page.png b/docs/zh-Hans/Tutorials/images/bookstore-initial-book-list-page.png index 591cffb121..b7082da979 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-initial-book-list-page.png and b/docs/zh-Hans/Tutorials/images/bookstore-initial-book-list-page.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-initial-books-page-with-layout.png b/docs/zh-Hans/Tutorials/images/bookstore-initial-books-page-with-layout.png index 629ad46444..a07f488012 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-initial-books-page-with-layout.png and b/docs/zh-Hans/Tutorials/images/bookstore-initial-books-page-with-layout.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-javascript-proxy-console.png b/docs/zh-Hans/Tutorials/images/bookstore-javascript-proxy-console.png index f393c47875..141da741dd 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-javascript-proxy-console.png and b/docs/zh-Hans/Tutorials/images/bookstore-javascript-proxy-console.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-localization-files-v2.png b/docs/zh-Hans/Tutorials/images/bookstore-localization-files-v2.png index 542cda209c..34f5819fe7 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-localization-files-v2.png and b/docs/zh-Hans/Tutorials/images/bookstore-localization-files-v2.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-menu-items.png b/docs/zh-Hans/Tutorials/images/bookstore-menu-items.png index 255defb707..ef3c404855 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-menu-items.png and b/docs/zh-Hans/Tutorials/images/bookstore-menu-items.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-migrations-applied-angular.png b/docs/zh-Hans/Tutorials/images/bookstore-migrations-applied-angular.png index 0724e4ae8f..8c14e6e6f5 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-migrations-applied-angular.png and b/docs/zh-Hans/Tutorials/images/bookstore-migrations-applied-angular.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-migrations-applied-mvc.png b/docs/zh-Hans/Tutorials/images/bookstore-migrations-applied-mvc.png index d59c0ce1d3..8369cfef8e 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-migrations-applied-mvc.png and b/docs/zh-Hans/Tutorials/images/bookstore-migrations-applied-mvc.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-new-author-modal.png b/docs/zh-Hans/Tutorials/images/bookstore-new-author-modal.png index dda0dab4c1..98e939a264 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-new-author-modal.png and b/docs/zh-Hans/Tutorials/images/bookstore-new-author-modal.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-new-book-button-2.png b/docs/zh-Hans/Tutorials/images/bookstore-new-book-button-2.png index 12f1819688..1e49299f1d 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-new-book-button-2.png and b/docs/zh-Hans/Tutorials/images/bookstore-new-book-button-2.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-new-book-button-small.png b/docs/zh-Hans/Tutorials/images/bookstore-new-book-button-small.png index 13f7da9285..4a3eac313b 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-new-book-button-small.png and b/docs/zh-Hans/Tutorials/images/bookstore-new-book-button-small.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-new-book-button.png b/docs/zh-Hans/Tutorials/images/bookstore-new-book-button.png index 8112fe1352..b4d36d6075 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-new-book-button.png and b/docs/zh-Hans/Tutorials/images/bookstore-new-book-button.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-new-book-form-v2.png b/docs/zh-Hans/Tutorials/images/bookstore-new-book-form-v2.png index 72513de6e5..9c06825eea 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-new-book-form-v2.png and b/docs/zh-Hans/Tutorials/images/bookstore-new-book-form-v2.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-new-book-form.png b/docs/zh-Hans/Tutorials/images/bookstore-new-book-form.png index 95de64f8d4..aecc1d4a1a 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-new-book-form.png and b/docs/zh-Hans/Tutorials/images/bookstore-new-book-form.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-new-menu-item.png b/docs/zh-Hans/Tutorials/images/bookstore-new-menu-item.png index 97bf7fc7c1..d77d1938db 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-new-menu-item.png and b/docs/zh-Hans/Tutorials/images/bookstore-new-menu-item.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-open-package-manager-console.png b/docs/zh-Hans/Tutorials/images/bookstore-open-package-manager-console.png index a640eb2681..7b1cccb748 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-open-package-manager-console.png and b/docs/zh-Hans/Tutorials/images/bookstore-open-package-manager-console.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-permissions-ui.png b/docs/zh-Hans/Tutorials/images/bookstore-permissions-ui.png index 749f7a013f..d2259fdedd 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-permissions-ui.png and b/docs/zh-Hans/Tutorials/images/bookstore-permissions-ui.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-pmc-add-book-migration-v2.png b/docs/zh-Hans/Tutorials/images/bookstore-pmc-add-book-migration-v2.png index 2baea20236..b1bdadbc9c 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-pmc-add-book-migration-v2.png and b/docs/zh-Hans/Tutorials/images/bookstore-pmc-add-book-migration-v2.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-pmc-add-book-migration.png b/docs/zh-Hans/Tutorials/images/bookstore-pmc-add-book-migration.png index 5d29f4d32b..cb3b6440c7 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-pmc-add-book-migration.png and b/docs/zh-Hans/Tutorials/images/bookstore-pmc-add-book-migration.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-service-terminal-output.png b/docs/zh-Hans/Tutorials/images/bookstore-service-terminal-output.png index cf6145e03f..7567f0d95f 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-service-terminal-output.png and b/docs/zh-Hans/Tutorials/images/bookstore-service-terminal-output.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-solution-structure-angular.png b/docs/zh-Hans/Tutorials/images/bookstore-solution-structure-angular.png index 07d064a880..88dcacffed 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-solution-structure-angular.png and b/docs/zh-Hans/Tutorials/images/bookstore-solution-structure-angular.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-solution-structure-mvc.png b/docs/zh-Hans/Tutorials/images/bookstore-solution-structure-mvc.png index 307e3516a5..ce821eba72 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-solution-structure-mvc.png and b/docs/zh-Hans/Tutorials/images/bookstore-solution-structure-mvc.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-start-project-angular.png b/docs/zh-Hans/Tutorials/images/bookstore-start-project-angular.png index 08abf845a8..c3c9a25beb 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-start-project-angular.png and b/docs/zh-Hans/Tutorials/images/bookstore-start-project-angular.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-start-project-mvc.png b/docs/zh-Hans/Tutorials/images/bookstore-start-project-mvc.png index 133dc6f131..d8e64184b3 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-start-project-mvc.png and b/docs/zh-Hans/Tutorials/images/bookstore-start-project-mvc.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-swagger-book-dto-properties.png b/docs/zh-Hans/Tutorials/images/bookstore-swagger-book-dto-properties.png index 66d630bb56..b0e8fac507 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-swagger-book-dto-properties.png and b/docs/zh-Hans/Tutorials/images/bookstore-swagger-book-dto-properties.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-swagger.png b/docs/zh-Hans/Tutorials/images/bookstore-swagger.png index 3ce36a11bc..423142e15d 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-swagger.png and b/docs/zh-Hans/Tutorials/images/bookstore-swagger.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-test-js-proxy-getlist-network.png b/docs/zh-Hans/Tutorials/images/bookstore-test-js-proxy-getlist-network.png index 2f2c42fd9e..ffa63dc581 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-test-js-proxy-getlist-network.png and b/docs/zh-Hans/Tutorials/images/bookstore-test-js-proxy-getlist-network.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-test-js-proxy-getlist.png b/docs/zh-Hans/Tutorials/images/bookstore-test-js-proxy-getlist.png index 47af48b1ea..7fe3cead35 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-test-js-proxy-getlist.png and b/docs/zh-Hans/Tutorials/images/bookstore-test-js-proxy-getlist.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-test-projects-angular.png b/docs/zh-Hans/Tutorials/images/bookstore-test-projects-angular.png index 6a8947238e..51eb6455de 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-test-projects-angular.png and b/docs/zh-Hans/Tutorials/images/bookstore-test-projects-angular.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-test-projects-mvc.png b/docs/zh-Hans/Tutorials/images/bookstore-test-projects-mvc.png index 8701164d75..45d08ecea3 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-test-projects-mvc.png and b/docs/zh-Hans/Tutorials/images/bookstore-test-projects-mvc.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-test-projects-v2.png b/docs/zh-Hans/Tutorials/images/bookstore-test-projects-v2.png index 8701164d75..45d08ecea3 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-test-projects-v2.png and b/docs/zh-Hans/Tutorials/images/bookstore-test-projects-v2.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-update-database-after-book-entity.png b/docs/zh-Hans/Tutorials/images/bookstore-update-database-after-book-entity.png index 4889f4f757..81cb3f1440 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-update-database-after-book-entity.png and b/docs/zh-Hans/Tutorials/images/bookstore-update-database-after-book-entity.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-user-management.png b/docs/zh-Hans/Tutorials/images/bookstore-user-management.png index bc3c176557..d7d3429826 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-user-management.png and b/docs/zh-Hans/Tutorials/images/bookstore-user-management.png differ diff --git a/docs/zh-Hans/Tutorials/images/bookstore-visual-studio-solution-v3.png b/docs/zh-Hans/Tutorials/images/bookstore-visual-studio-solution-v3.png index 307e3516a5..ce821eba72 100644 Binary files a/docs/zh-Hans/Tutorials/images/bookstore-visual-studio-solution-v3.png and b/docs/zh-Hans/Tutorials/images/bookstore-visual-studio-solution-v3.png differ diff --git a/docs/zh-Hans/Tutorials/images/generate-proxy-command.png b/docs/zh-Hans/Tutorials/images/generate-proxy-command.png index f850ce07a2..d7f5706d78 100644 Binary files a/docs/zh-Hans/Tutorials/images/generate-proxy-command.png and b/docs/zh-Hans/Tutorials/images/generate-proxy-command.png differ diff --git a/docs/zh-Hans/Tutorials/images/generated-proxies-2.png b/docs/zh-Hans/Tutorials/images/generated-proxies-2.png index adad417c3d..f13aff1ac6 100644 Binary files a/docs/zh-Hans/Tutorials/images/generated-proxies-2.png and b/docs/zh-Hans/Tutorials/images/generated-proxies-2.png differ diff --git a/docs/zh-Hans/Tutorials/images/generated-proxies-3.png b/docs/zh-Hans/Tutorials/images/generated-proxies-3.png index 2a94f4e389..8af6942e58 100644 Binary files a/docs/zh-Hans/Tutorials/images/generated-proxies-3.png and b/docs/zh-Hans/Tutorials/images/generated-proxies-3.png differ diff --git a/docs/zh-Hans/Tutorials/images/generated-proxies.png b/docs/zh-Hans/Tutorials/images/generated-proxies.png index 1d322c0765..669e095abb 100644 Binary files a/docs/zh-Hans/Tutorials/images/generated-proxies.png and b/docs/zh-Hans/Tutorials/images/generated-proxies.png differ diff --git a/docs/zh-Hans/Tutorials/images/mozilla-self-signed-cert-error.png b/docs/zh-Hans/Tutorials/images/mozilla-self-signed-cert-error.png index c9e2fc0e65..4f411dd748 100644 Binary files a/docs/zh-Hans/Tutorials/images/mozilla-self-signed-cert-error.png and b/docs/zh-Hans/Tutorials/images/mozilla-self-signed-cert-error.png differ diff --git a/docs/zh-Hans/Tutorials/images/vs-run-without-iisexpress.png b/docs/zh-Hans/Tutorials/images/vs-run-without-iisexpress.png index 03c30e2b48..e837ed6ffc 100644 Binary files a/docs/zh-Hans/Tutorials/images/vs-run-without-iisexpress.png and b/docs/zh-Hans/Tutorials/images/vs-run-without-iisexpress.png differ diff --git a/docs/zh-Hans/UI/Angular/images/confirmation.png b/docs/zh-Hans/UI/Angular/images/confirmation.png index efe4c98ea7..15cf1a7103 100644 Binary files a/docs/zh-Hans/UI/Angular/images/confirmation.png and b/docs/zh-Hans/UI/Angular/images/confirmation.png differ diff --git a/docs/zh-Hans/UI/Angular/images/generated-files-via-generate-proxy.png b/docs/zh-Hans/UI/Angular/images/generated-files-via-generate-proxy.png index 0d062cc2d3..ef2694360e 100644 Binary files a/docs/zh-Hans/UI/Angular/images/generated-files-via-generate-proxy.png and b/docs/zh-Hans/UI/Angular/images/generated-files-via-generate-proxy.png differ diff --git a/docs/zh-Hans/UI/Angular/images/layout-components.png b/docs/zh-Hans/UI/Angular/images/layout-components.png index 3193b47bd1..12f8f8bd1e 100644 Binary files a/docs/zh-Hans/UI/Angular/images/layout-components.png and b/docs/zh-Hans/UI/Angular/images/layout-components.png differ diff --git a/docs/zh-Hans/UI/Angular/images/locale-error.png b/docs/zh-Hans/UI/Angular/images/locale-error.png index de385a59c0..3eaa73fec8 100644 Binary files a/docs/zh-Hans/UI/Angular/images/locale-error.png and b/docs/zh-Hans/UI/Angular/images/locale-error.png differ diff --git a/docs/zh-Hans/UI/Angular/images/logo-component.png b/docs/zh-Hans/UI/Angular/images/logo-component.png index 5c11fbf617..b1c2089922 100644 Binary files a/docs/zh-Hans/UI/Angular/images/logo-component.png and b/docs/zh-Hans/UI/Angular/images/logo-component.png differ diff --git a/docs/zh-Hans/UI/Angular/images/nav-items-component.png b/docs/zh-Hans/UI/Angular/images/nav-items-component.png index d3e69916b6..e4667abf26 100644 Binary files a/docs/zh-Hans/UI/Angular/images/nav-items-component.png and b/docs/zh-Hans/UI/Angular/images/nav-items-component.png differ diff --git a/docs/zh-Hans/UI/Angular/images/navigation-menu-after-patching.png b/docs/zh-Hans/UI/Angular/images/navigation-menu-after-patching.png index 2f6bf08c88..3466b0c3e9 100644 Binary files a/docs/zh-Hans/UI/Angular/images/navigation-menu-after-patching.png and b/docs/zh-Hans/UI/Angular/images/navigation-menu-after-patching.png differ diff --git a/docs/zh-Hans/UI/Angular/images/navigation-menu-search-input.png b/docs/zh-Hans/UI/Angular/images/navigation-menu-search-input.png index e93b7927d1..f4366609ff 100644 Binary files a/docs/zh-Hans/UI/Angular/images/navigation-menu-search-input.png and b/docs/zh-Hans/UI/Angular/images/navigation-menu-search-input.png differ diff --git a/docs/zh-Hans/UI/Angular/images/navigation-menu-via-app-routing.png b/docs/zh-Hans/UI/Angular/images/navigation-menu-via-app-routing.png index 4d5f61301c..a14155095c 100644 Binary files a/docs/zh-Hans/UI/Angular/images/navigation-menu-via-app-routing.png and b/docs/zh-Hans/UI/Angular/images/navigation-menu-via-app-routing.png differ diff --git a/docs/zh-Hans/UI/Angular/images/navigation-menu-via-config-state.png b/docs/zh-Hans/UI/Angular/images/navigation-menu-via-config-state.png index 19944f154d..d5b09b0dcf 100644 Binary files a/docs/zh-Hans/UI/Angular/images/navigation-menu-via-config-state.png and b/docs/zh-Hans/UI/Angular/images/navigation-menu-via-config-state.png differ diff --git a/docs/zh-Hans/UI/Angular/images/permission-management-modal.png b/docs/zh-Hans/UI/Angular/images/permission-management-modal.png index 05cee8a2e1..69521f8c7b 100644 Binary files a/docs/zh-Hans/UI/Angular/images/permission-management-modal.png and b/docs/zh-Hans/UI/Angular/images/permission-management-modal.png differ diff --git a/docs/zh-Hans/UI/Angular/images/replaced-logo-component.png b/docs/zh-Hans/UI/Angular/images/replaced-logo-component.png index 4661b390a8..c93a9c826d 100644 Binary files a/docs/zh-Hans/UI/Angular/images/replaced-logo-component.png and b/docs/zh-Hans/UI/Angular/images/replaced-logo-component.png differ diff --git a/docs/zh-Hans/UI/Angular/images/replaced-nav-items-component.png b/docs/zh-Hans/UI/Angular/images/replaced-nav-items-component.png index e4cc0339ae..39c2b914be 100644 Binary files a/docs/zh-Hans/UI/Angular/images/replaced-nav-items-component.png and b/docs/zh-Hans/UI/Angular/images/replaced-nav-items-component.png differ diff --git a/docs/zh-Hans/UI/Angular/images/replaced-routes-component.png b/docs/zh-Hans/UI/Angular/images/replaced-routes-component.png index 3a6336afe0..15497f73f6 100644 Binary files a/docs/zh-Hans/UI/Angular/images/replaced-routes-component.png and b/docs/zh-Hans/UI/Angular/images/replaced-routes-component.png differ diff --git a/docs/zh-Hans/UI/Angular/images/routes-component.png b/docs/zh-Hans/UI/Angular/images/routes-component.png index b708e86d36..8154629784 100644 Binary files a/docs/zh-Hans/UI/Angular/images/routes-component.png and b/docs/zh-Hans/UI/Angular/images/routes-component.png differ diff --git a/docs/zh-Hans/UI/Angular/images/table-of-packages-to-update.png b/docs/zh-Hans/UI/Angular/images/table-of-packages-to-update.png index fc492d3740..76a824e8f7 100644 Binary files a/docs/zh-Hans/UI/Angular/images/table-of-packages-to-update.png and b/docs/zh-Hans/UI/Angular/images/table-of-packages-to-update.png differ diff --git a/docs/zh-Hans/UI/Angular/images/toast.png b/docs/zh-Hans/UI/Angular/images/toast.png index 24cdd0fe0c..58ccadc96c 100644 Binary files a/docs/zh-Hans/UI/Angular/images/toast.png and b/docs/zh-Hans/UI/Angular/images/toast.png differ diff --git a/docs/zh-Hans/images/MonthlyProfitWidgetFiles.png b/docs/zh-Hans/images/MonthlyProfitWidgetFiles.png index e1e9d316f5..c3e4d6f1ab 100644 Binary files a/docs/zh-Hans/images/MonthlyProfitWidgetFiles.png and b/docs/zh-Hans/images/MonthlyProfitWidgetFiles.png differ diff --git a/docs/zh-Hans/images/abp-dynamic-form-result.png b/docs/zh-Hans/images/abp-dynamic-form-result.png index f9ecf14bd0..10048c9156 100644 Binary files a/docs/zh-Hans/images/abp-dynamic-form-result.png and b/docs/zh-Hans/images/abp-dynamic-form-result.png differ diff --git a/docs/zh-Hans/images/abp-form-input-validation-error-french-name.png b/docs/zh-Hans/images/abp-form-input-validation-error-french-name.png index 5112cd2597..d8906aec46 100644 Binary files a/docs/zh-Hans/images/abp-form-input-validation-error-french-name.png and b/docs/zh-Hans/images/abp-form-input-validation-error-french-name.png differ diff --git a/docs/zh-Hans/images/abp-form-input-validation-error-french.png b/docs/zh-Hans/images/abp-form-input-validation-error-french.png index cb8316d04b..6fbe26b81b 100644 Binary files a/docs/zh-Hans/images/abp-form-input-validation-error-french.png and b/docs/zh-Hans/images/abp-form-input-validation-error-french.png differ diff --git a/docs/zh-Hans/images/abp-form-input-validation-error.png b/docs/zh-Hans/images/abp-form-input-validation-error.png index 2c60adc343..518cdc8fdf 100644 Binary files a/docs/zh-Hans/images/abp-form-input-validation-error.png and b/docs/zh-Hans/images/abp-form-input-validation-error.png differ diff --git a/docs/zh-Hans/images/abp-select2-multiple.png b/docs/zh-Hans/images/abp-select2-multiple.png index bdc2d7cc95..057bde4b57 100644 Binary files a/docs/zh-Hans/images/abp-select2-multiple.png and b/docs/zh-Hans/images/abp-select2-multiple.png differ diff --git a/docs/zh-Hans/images/abp-select2-single.png b/docs/zh-Hans/images/abp-select2-single.png index 219355dd66..0690b83834 100644 Binary files a/docs/zh-Hans/images/abp-select2-single.png and b/docs/zh-Hans/images/abp-select2-single.png differ diff --git a/docs/zh-Hans/images/account-module-forgot-password.png b/docs/zh-Hans/images/account-module-forgot-password.png index 92fce47a22..ddb4fa4a66 100644 Binary files a/docs/zh-Hans/images/account-module-forgot-password.png and b/docs/zh-Hans/images/account-module-forgot-password.png differ diff --git a/docs/zh-Hans/images/account-module-login.png b/docs/zh-Hans/images/account-module-login.png index abde22db57..2e91d01622 100644 Binary files a/docs/zh-Hans/images/account-module-login.png and b/docs/zh-Hans/images/account-module-login.png differ diff --git a/docs/zh-Hans/images/account-module-manage-account.png b/docs/zh-Hans/images/account-module-manage-account.png index 92a5f34d72..28fdf80342 100644 Binary files a/docs/zh-Hans/images/account-module-manage-account.png and b/docs/zh-Hans/images/account-module-manage-account.png differ diff --git a/docs/zh-Hans/images/account-module-register.png b/docs/zh-Hans/images/account-module-register.png index f2b9c0587a..6c04039366 100644 Binary files a/docs/zh-Hans/images/account-module-register.png and b/docs/zh-Hans/images/account-module-register.png differ diff --git a/docs/zh-Hans/images/add-new-propert-to-user-database-extra-properties.png b/docs/zh-Hans/images/add-new-propert-to-user-database-extra-properties.png index 90c697461e..fe43ab0d4c 100644 Binary files a/docs/zh-Hans/images/add-new-propert-to-user-database-extra-properties.png and b/docs/zh-Hans/images/add-new-propert-to-user-database-extra-properties.png differ diff --git a/docs/zh-Hans/images/add-new-propert-to-user-database-field.png b/docs/zh-Hans/images/add-new-propert-to-user-database-field.png index 334ba0aa35..713d33237f 100644 Binary files a/docs/zh-Hans/images/add-new-propert-to-user-database-field.png and b/docs/zh-Hans/images/add-new-propert-to-user-database-field.png differ diff --git a/docs/zh-Hans/images/add-new-property-enum.png b/docs/zh-Hans/images/add-new-property-enum.png index 34a14b1bfb..0f8427764e 100644 Binary files a/docs/zh-Hans/images/add-new-property-enum.png and b/docs/zh-Hans/images/add-new-property-enum.png differ diff --git a/docs/zh-Hans/images/add-new-property-to-user-form-validation-error-custom.png b/docs/zh-Hans/images/add-new-property-to-user-form-validation-error-custom.png index 6bb1799e19..fea1cfb02b 100644 Binary files a/docs/zh-Hans/images/add-new-property-to-user-form-validation-error-custom.png and b/docs/zh-Hans/images/add-new-property-to-user-form-validation-error-custom.png differ diff --git a/docs/zh-Hans/images/add-new-property-to-user-form-validation-error.png b/docs/zh-Hans/images/add-new-property-to-user-form-validation-error.png index dd2eb8ad1d..79c0c7cff2 100644 Binary files a/docs/zh-Hans/images/add-new-property-to-user-form-validation-error.png and b/docs/zh-Hans/images/add-new-property-to-user-form-validation-error.png differ diff --git a/docs/zh-Hans/images/add-new-property-to-user-form.png b/docs/zh-Hans/images/add-new-property-to-user-form.png index bc12a6d5ad..8e42823a2d 100644 Binary files a/docs/zh-Hans/images/add-new-property-to-user-form.png and b/docs/zh-Hans/images/add-new-property-to-user-form.png differ diff --git a/docs/zh-Hans/images/add-new-property-to-user-table.png b/docs/zh-Hans/images/add-new-property-to-user-table.png index a2a15087cc..19f4fea22d 100644 Binary files a/docs/zh-Hans/images/add-new-property-to-user-table.png and b/docs/zh-Hans/images/add-new-property-to-user-table.png differ diff --git a/docs/zh-Hans/images/ajax-error.png b/docs/zh-Hans/images/ajax-error.png index 2b9bc2bb37..ffc456cd41 100644 Binary files a/docs/zh-Hans/images/ajax-error.png and b/docs/zh-Hans/images/ajax-error.png differ diff --git a/docs/zh-Hans/images/angular-folder-structure.png b/docs/zh-Hans/images/angular-folder-structure.png index e17eb135ce..c202a7aaa3 100644 Binary files a/docs/zh-Hans/images/angular-folder-structure.png and b/docs/zh-Hans/images/angular-folder-structure.png differ diff --git a/docs/zh-Hans/images/angular-module-dev-app-project.png b/docs/zh-Hans/images/angular-module-dev-app-project.png index 08e0e9fd6c..94eeecefaf 100644 Binary files a/docs/zh-Hans/images/angular-module-dev-app-project.png and b/docs/zh-Hans/images/angular-module-dev-app-project.png differ diff --git a/docs/zh-Hans/images/angular-module-folder-structure.png b/docs/zh-Hans/images/angular-module-folder-structure.png index ae2333b295..e92114041b 100644 Binary files a/docs/zh-Hans/images/angular-module-folder-structure.png and b/docs/zh-Hans/images/angular-module-folder-structure.png differ diff --git a/docs/zh-Hans/images/angular-template-structure-diagram.png b/docs/zh-Hans/images/angular-template-structure-diagram.png index d27d75bf7f..269c54984c 100644 Binary files a/docs/zh-Hans/images/angular-template-structure-diagram.png and b/docs/zh-Hans/images/angular-template-structure-diagram.png differ diff --git a/docs/zh-Hans/images/aspnetcore-web-tests-in-solution.png b/docs/zh-Hans/images/aspnetcore-web-tests-in-solution.png index 12fca58139..7196f6aad2 100644 Binary files a/docs/zh-Hans/images/aspnetcore-web-tests-in-solution.png and b/docs/zh-Hans/images/aspnetcore-web-tests-in-solution.png differ diff --git a/docs/zh-Hans/images/auditlog-object-diagram.png b/docs/zh-Hans/images/auditlog-object-diagram.png index a7e86a2bb2..f89c110147 100644 Binary files a/docs/zh-Hans/images/auditlog-object-diagram.png and b/docs/zh-Hans/images/auditlog-object-diagram.png differ diff --git a/docs/zh-Hans/images/authorization-new-permission-ui-hierarcy.png b/docs/zh-Hans/images/authorization-new-permission-ui-hierarcy.png index 078d67d50f..07abfc7132 100644 Binary files a/docs/zh-Hans/images/authorization-new-permission-ui-hierarcy.png and b/docs/zh-Hans/images/authorization-new-permission-ui-hierarcy.png differ diff --git a/docs/zh-Hans/images/authorization-new-permission-ui-localized.png b/docs/zh-Hans/images/authorization-new-permission-ui-localized.png index 610ce39faf..948fd618d9 100644 Binary files a/docs/zh-Hans/images/authorization-new-permission-ui-localized.png and b/docs/zh-Hans/images/authorization-new-permission-ui-localized.png differ diff --git a/docs/zh-Hans/images/authorization-new-permission-ui.png b/docs/zh-Hans/images/authorization-new-permission-ui.png index 554f27e78d..1190f04b70 100644 Binary files a/docs/zh-Hans/images/authorization-new-permission-ui.png and b/docs/zh-Hans/images/authorization-new-permission-ui.png differ diff --git a/docs/zh-Hans/images/basic-console-application-solution.png b/docs/zh-Hans/images/basic-console-application-solution.png index 788bad0381..b8ed5c51e6 100644 Binary files a/docs/zh-Hans/images/basic-console-application-solution.png and b/docs/zh-Hans/images/basic-console-application-solution.png differ diff --git a/docs/zh-Hans/images/basic-maui-application-solution.png b/docs/zh-Hans/images/basic-maui-application-solution.png index c1dd24bd32..f1db8affe2 100644 Binary files a/docs/zh-Hans/images/basic-maui-application-solution.png and b/docs/zh-Hans/images/basic-maui-application-solution.png differ diff --git a/docs/zh-Hans/images/basic-theme-account-layout.png b/docs/zh-Hans/images/basic-theme-account-layout.png index bccd0e20cc..6436bee756 100644 Binary files a/docs/zh-Hans/images/basic-theme-account-layout.png and b/docs/zh-Hans/images/basic-theme-account-layout.png differ diff --git a/docs/zh-Hans/images/basic-theme-application-layout-blazor.png b/docs/zh-Hans/images/basic-theme-application-layout-blazor.png index f01becad07..9d7f122c1d 100644 Binary files a/docs/zh-Hans/images/basic-theme-application-layout-blazor.png and b/docs/zh-Hans/images/basic-theme-application-layout-blazor.png differ diff --git a/docs/zh-Hans/images/basic-theme-application-layout-parts.png b/docs/zh-Hans/images/basic-theme-application-layout-parts.png index 5e8f9147a9..db1773ca79 100644 Binary files a/docs/zh-Hans/images/basic-theme-application-layout-parts.png and b/docs/zh-Hans/images/basic-theme-application-layout-parts.png differ diff --git a/docs/zh-Hans/images/basic-theme-application-layout.png b/docs/zh-Hans/images/basic-theme-application-layout.png index 353e294056..6124d58cb5 100644 Binary files a/docs/zh-Hans/images/basic-theme-application-layout.png and b/docs/zh-Hans/images/basic-theme-application-layout.png differ diff --git a/docs/zh-Hans/images/basic-wpf-application-solution.png b/docs/zh-Hans/images/basic-wpf-application-solution.png index 5943acd93f..f4c6864e6d 100644 Binary files a/docs/zh-Hans/images/basic-wpf-application-solution.png and b/docs/zh-Hans/images/basic-wpf-application-solution.png differ diff --git a/docs/zh-Hans/images/blazor-generic-exception-message.png b/docs/zh-Hans/images/blazor-generic-exception-message.png index 5e128003cf..f414fd1ce5 100644 Binary files a/docs/zh-Hans/images/blazor-generic-exception-message.png and b/docs/zh-Hans/images/blazor-generic-exception-message.png differ diff --git a/docs/zh-Hans/images/blazor-message-confirm.png b/docs/zh-Hans/images/blazor-message-confirm.png index fe03620283..a161579588 100644 Binary files a/docs/zh-Hans/images/blazor-message-confirm.png and b/docs/zh-Hans/images/blazor-message-confirm.png differ diff --git a/docs/zh-Hans/images/blazor-message-error.png b/docs/zh-Hans/images/blazor-message-error.png index 5192eae1e9..eb8abf2e0d 100644 Binary files a/docs/zh-Hans/images/blazor-message-error.png and b/docs/zh-Hans/images/blazor-message-error.png differ diff --git a/docs/zh-Hans/images/blazor-message-success.png b/docs/zh-Hans/images/blazor-message-success.png index 592fac8b7d..8dca567eb2 100644 Binary files a/docs/zh-Hans/images/blazor-message-success.png and b/docs/zh-Hans/images/blazor-message-success.png differ diff --git a/docs/zh-Hans/images/blazor-notification-bell-component.png b/docs/zh-Hans/images/blazor-notification-bell-component.png index 65934ec24b..719ae436aa 100644 Binary files a/docs/zh-Hans/images/blazor-notification-bell-component.png and b/docs/zh-Hans/images/blazor-notification-bell-component.png differ diff --git a/docs/zh-Hans/images/blazor-notification-success.png b/docs/zh-Hans/images/blazor-notification-success.png index d68dcf47d8..ff5926cef9 100644 Binary files a/docs/zh-Hans/images/blazor-notification-success.png and b/docs/zh-Hans/images/blazor-notification-success.png differ diff --git a/docs/zh-Hans/images/blazor-page-alert-example.png b/docs/zh-Hans/images/blazor-page-alert-example.png index 799826e57f..3e80ef5a92 100644 Binary files a/docs/zh-Hans/images/blazor-page-alert-example.png and b/docs/zh-Hans/images/blazor-page-alert-example.png differ diff --git a/docs/zh-Hans/images/blazor-user-friendly-exception.png b/docs/zh-Hans/images/blazor-user-friendly-exception.png index fa2a70d931..32118280c3 100644 Binary files a/docs/zh-Hans/images/blazor-user-friendly-exception.png and b/docs/zh-Hans/images/blazor-user-friendly-exception.png differ diff --git a/docs/zh-Hans/images/bookstore-added-brand-files.png b/docs/zh-Hans/images/bookstore-added-brand-files.png index 15ef283a2a..e23a3a0a7b 100644 Binary files a/docs/zh-Hans/images/bookstore-added-brand-files.png and b/docs/zh-Hans/images/bookstore-added-brand-files.png differ diff --git a/docs/zh-Hans/images/bookstore-added-logo.png b/docs/zh-Hans/images/bookstore-added-logo.png index 55af77a5f4..8f2c722d6c 100644 Binary files a/docs/zh-Hans/images/bookstore-added-logo.png and b/docs/zh-Hans/images/bookstore-added-logo.png differ diff --git a/docs/zh-Hans/images/bookstore-added-role-js-file.png b/docs/zh-Hans/images/bookstore-added-role-js-file.png index 00881bf808..850f6146ad 100644 Binary files a/docs/zh-Hans/images/bookstore-added-role-js-file.png and b/docs/zh-Hans/images/bookstore-added-role-js-file.png differ diff --git a/docs/zh-Hans/images/bookstore-apis.png b/docs/zh-Hans/images/bookstore-apis.png index aedd79c7f1..b7928c9637 100644 Binary files a/docs/zh-Hans/images/bookstore-apis.png and b/docs/zh-Hans/images/bookstore-apis.png differ diff --git a/docs/zh-Hans/images/bookstore-brand-area-highlighted.png b/docs/zh-Hans/images/bookstore-brand-area-highlighted.png index 7ab1b8fb7f..10fb0ccbf1 100644 Binary files a/docs/zh-Hans/images/bookstore-brand-area-highlighted.png and b/docs/zh-Hans/images/bookstore-brand-area-highlighted.png differ diff --git a/docs/zh-Hans/images/bookstore-branding-blazor.png b/docs/zh-Hans/images/bookstore-branding-blazor.png index 74ddf35f0f..db6b5fc8aa 100644 Binary files a/docs/zh-Hans/images/bookstore-branding-blazor.png and b/docs/zh-Hans/images/bookstore-branding-blazor.png differ diff --git a/docs/zh-Hans/images/bookstore-create-template.png b/docs/zh-Hans/images/bookstore-create-template.png index 7cc96c8c94..bae34a3b64 100644 Binary files a/docs/zh-Hans/images/bookstore-create-template.png and b/docs/zh-Hans/images/bookstore-create-template.png differ diff --git a/docs/zh-Hans/images/bookstore-efcore-dependencies.png b/docs/zh-Hans/images/bookstore-efcore-dependencies.png index 3de5a679ef..cb77601880 100644 Binary files a/docs/zh-Hans/images/bookstore-efcore-dependencies.png and b/docs/zh-Hans/images/bookstore-efcore-dependencies.png differ diff --git a/docs/zh-Hans/images/bookstore-global-css-file.png b/docs/zh-Hans/images/bookstore-global-css-file.png index e764fef8ee..0c388140bb 100644 Binary files a/docs/zh-Hans/images/bookstore-global-css-file.png and b/docs/zh-Hans/images/bookstore-global-css-file.png differ diff --git a/docs/zh-Hans/images/bookstore-google-analytics-view-component.png b/docs/zh-Hans/images/bookstore-google-analytics-view-component.png index e548a00935..cc236c5e36 100644 Binary files a/docs/zh-Hans/images/bookstore-google-analytics-view-component.png and b/docs/zh-Hans/images/bookstore-google-analytics-view-component.png differ diff --git a/docs/zh-Hans/images/bookstore-home.png b/docs/zh-Hans/images/bookstore-home.png index 5e5b512220..dc015aa67d 100644 Binary files a/docs/zh-Hans/images/bookstore-home.png and b/docs/zh-Hans/images/bookstore-home.png differ diff --git a/docs/zh-Hans/images/bookstore-homepage.png b/docs/zh-Hans/images/bookstore-homepage.png index 5e5b512220..dc015aa67d 100644 Binary files a/docs/zh-Hans/images/bookstore-homepage.png and b/docs/zh-Hans/images/bookstore-homepage.png differ diff --git a/docs/zh-Hans/images/bookstore-login.png b/docs/zh-Hans/images/bookstore-login.png index cd8bfa9bf9..02b5a823c5 100644 Binary files a/docs/zh-Hans/images/bookstore-login.png and b/docs/zh-Hans/images/bookstore-login.png differ diff --git a/docs/zh-Hans/images/bookstore-logo-blazor.png b/docs/zh-Hans/images/bookstore-logo-blazor.png index 4e01569813..2c3d814902 100644 Binary files a/docs/zh-Hans/images/bookstore-logo-blazor.png and b/docs/zh-Hans/images/bookstore-logo-blazor.png differ diff --git a/docs/zh-Hans/images/bookstore-menus-highlighted.png b/docs/zh-Hans/images/bookstore-menus-highlighted.png index c4f3237b00..584ba4b5f6 100644 Binary files a/docs/zh-Hans/images/bookstore-menus-highlighted.png and b/docs/zh-Hans/images/bookstore-menus-highlighted.png differ diff --git a/docs/zh-Hans/images/bookstore-notification-icon-on-toolbar.png b/docs/zh-Hans/images/bookstore-notification-icon-on-toolbar.png index 817491e9eb..a3c8f7d485 100644 Binary files a/docs/zh-Hans/images/bookstore-notification-icon-on-toolbar.png and b/docs/zh-Hans/images/bookstore-notification-icon-on-toolbar.png differ diff --git a/docs/zh-Hans/images/bookstore-notification-view-component.png b/docs/zh-Hans/images/bookstore-notification-view-component.png index 3fc300efe1..b258a699f9 100644 Binary files a/docs/zh-Hans/images/bookstore-notification-view-component.png and b/docs/zh-Hans/images/bookstore-notification-view-component.png differ diff --git a/docs/zh-Hans/images/bookstore-second-database.png b/docs/zh-Hans/images/bookstore-second-database.png index 3faf19496c..f08bece185 100644 Binary files a/docs/zh-Hans/images/bookstore-second-database.png and b/docs/zh-Hans/images/bookstore-second-database.png differ diff --git a/docs/zh-Hans/images/bookstore-swagger-ui-host.png b/docs/zh-Hans/images/bookstore-swagger-ui-host.png index 74ff73f7e3..7ebd8d8e37 100644 Binary files a/docs/zh-Hans/images/bookstore-swagger-ui-host.png and b/docs/zh-Hans/images/bookstore-swagger-ui-host.png differ diff --git a/docs/zh-Hans/images/bookstore-toolbar-highlighted.png b/docs/zh-Hans/images/bookstore-toolbar-highlighted.png index f2b7c3f57e..ce300df5b7 100644 Binary files a/docs/zh-Hans/images/bookstore-toolbar-highlighted.png and b/docs/zh-Hans/images/bookstore-toolbar-highlighted.png differ diff --git a/docs/zh-Hans/images/bookstore-user-management-v2.png b/docs/zh-Hans/images/bookstore-user-management-v2.png index dd95740754..cd66010e05 100644 Binary files a/docs/zh-Hans/images/bookstore-user-management-v2.png and b/docs/zh-Hans/images/bookstore-user-management-v2.png differ diff --git a/docs/zh-Hans/images/bookstore-visual-studio-solution-for-spa.png b/docs/zh-Hans/images/bookstore-visual-studio-solution-for-spa.png index 5a5a283c7d..d114ed188c 100644 Binary files a/docs/zh-Hans/images/bookstore-visual-studio-solution-for-spa.png and b/docs/zh-Hans/images/bookstore-visual-studio-solution-for-spa.png differ diff --git a/docs/zh-Hans/images/bookstore-visual-studio-solution-tiered.png b/docs/zh-Hans/images/bookstore-visual-studio-solution-tiered.png index 19662bf731..9affe841aa 100644 Binary files a/docs/zh-Hans/images/bookstore-visual-studio-solution-tiered.png and b/docs/zh-Hans/images/bookstore-visual-studio-solution-tiered.png differ diff --git a/docs/zh-Hans/images/bookstore-visual-studio-solution-v3.png b/docs/zh-Hans/images/bookstore-visual-studio-solution-v3.png index f8ef7f2ba0..0ee4fd274b 100644 Binary files a/docs/zh-Hans/images/bookstore-visual-studio-solution-v3.png and b/docs/zh-Hans/images/bookstore-visual-studio-solution-v3.png differ diff --git a/docs/zh-Hans/images/branding-appname.png b/docs/zh-Hans/images/branding-appname.png index 9300ad2c7f..d6af568a65 100644 Binary files a/docs/zh-Hans/images/branding-appname.png and b/docs/zh-Hans/images/branding-appname.png differ diff --git a/docs/zh-Hans/images/branding-nobrand.png b/docs/zh-Hans/images/branding-nobrand.png index 1fdf78472b..78feb97c38 100644 Binary files a/docs/zh-Hans/images/branding-nobrand.png and b/docs/zh-Hans/images/branding-nobrand.png differ diff --git a/docs/zh-Hans/images/breadcrumbs-example.png b/docs/zh-Hans/images/breadcrumbs-example.png index 17ae5f8ba5..b5df91353a 100644 Binary files a/docs/zh-Hans/images/breadcrumbs-example.png and b/docs/zh-Hans/images/breadcrumbs-example.png differ diff --git a/docs/zh-Hans/images/build-action-embedded-resource-sample.png b/docs/zh-Hans/images/build-action-embedded-resource-sample.png index d001c5d19f..700e9921f4 100644 Binary files a/docs/zh-Hans/images/build-action-embedded-resource-sample.png and b/docs/zh-Hans/images/build-action-embedded-resource-sample.png differ diff --git a/docs/zh-Hans/images/cmskit-add-widget-on-page.png b/docs/zh-Hans/images/cmskit-add-widget-on-page.png index 8e03964477..85ed3b73e9 100644 Binary files a/docs/zh-Hans/images/cmskit-add-widget-on-page.png and b/docs/zh-Hans/images/cmskit-add-widget-on-page.png differ diff --git a/docs/zh-Hans/images/cmskit-example-output-on-page.png b/docs/zh-Hans/images/cmskit-example-output-on-page.png index bdc5c52278..8ee046d4f2 100644 Binary files a/docs/zh-Hans/images/cmskit-example-output-on-page.png and b/docs/zh-Hans/images/cmskit-example-output-on-page.png differ diff --git a/docs/zh-Hans/images/cmskit-module-blog-post-edit.png b/docs/zh-Hans/images/cmskit-module-blog-post-edit.png index 528bc6b499..5ff460739a 100644 Binary files a/docs/zh-Hans/images/cmskit-module-blog-post-edit.png and b/docs/zh-Hans/images/cmskit-module-blog-post-edit.png differ diff --git a/docs/zh-Hans/images/cmskit-module-blog-posts-page.png b/docs/zh-Hans/images/cmskit-module-blog-posts-page.png index 64d5d0e934..217ead0997 100644 Binary files a/docs/zh-Hans/images/cmskit-module-blog-posts-page.png and b/docs/zh-Hans/images/cmskit-module-blog-posts-page.png differ diff --git a/docs/zh-Hans/images/cmskit-module-blogs-edit.png b/docs/zh-Hans/images/cmskit-module-blogs-edit.png index b2da4e5b5a..810ab8b033 100644 Binary files a/docs/zh-Hans/images/cmskit-module-blogs-edit.png and b/docs/zh-Hans/images/cmskit-module-blogs-edit.png differ diff --git a/docs/zh-Hans/images/cmskit-module-blogs-feature-action.png b/docs/zh-Hans/images/cmskit-module-blogs-feature-action.png index c0f0b1d3f4..97d522bbe0 100644 Binary files a/docs/zh-Hans/images/cmskit-module-blogs-feature-action.png and b/docs/zh-Hans/images/cmskit-module-blogs-feature-action.png differ diff --git a/docs/zh-Hans/images/cmskit-module-blogs-page.png b/docs/zh-Hans/images/cmskit-module-blogs-page.png index 6c150429b7..89bdcf3402 100644 Binary files a/docs/zh-Hans/images/cmskit-module-blogs-page.png and b/docs/zh-Hans/images/cmskit-module-blogs-page.png differ diff --git a/docs/zh-Hans/images/cmskit-module-comment-page.png b/docs/zh-Hans/images/cmskit-module-comment-page.png index 6647a6dd09..b6cd793846 100644 Binary files a/docs/zh-Hans/images/cmskit-module-comment-page.png and b/docs/zh-Hans/images/cmskit-module-comment-page.png differ diff --git a/docs/zh-Hans/images/cmskit-module-comments-detail.png b/docs/zh-Hans/images/cmskit-module-comments-detail.png index 686a70e1f8..3ee20e534c 100644 Binary files a/docs/zh-Hans/images/cmskit-module-comments-detail.png and b/docs/zh-Hans/images/cmskit-module-comments-detail.png differ diff --git a/docs/zh-Hans/images/cmskit-module-features-dialog-2.png b/docs/zh-Hans/images/cmskit-module-features-dialog-2.png index b6dd409e0a..08d456b9b3 100644 Binary files a/docs/zh-Hans/images/cmskit-module-features-dialog-2.png and b/docs/zh-Hans/images/cmskit-module-features-dialog-2.png differ diff --git a/docs/zh-Hans/images/cmskit-module-features-dialog.png b/docs/zh-Hans/images/cmskit-module-features-dialog.png index 23aa2aa17a..5cefedfe58 100644 Binary files a/docs/zh-Hans/images/cmskit-module-features-dialog.png and b/docs/zh-Hans/images/cmskit-module-features-dialog.png differ diff --git a/docs/zh-Hans/images/cmskit-module-features-scroll-index.png b/docs/zh-Hans/images/cmskit-module-features-scroll-index.png index 0bc3dedcc5..6f22f456f6 100644 Binary files a/docs/zh-Hans/images/cmskit-module-features-scroll-index.png and b/docs/zh-Hans/images/cmskit-module-features-scroll-index.png differ diff --git a/docs/zh-Hans/images/cmskit-module-global-resources-page.png b/docs/zh-Hans/images/cmskit-module-global-resources-page.png index 9090c97412..ffd64b4ec0 100644 Binary files a/docs/zh-Hans/images/cmskit-module-global-resources-page.png and b/docs/zh-Hans/images/cmskit-module-global-resources-page.png differ diff --git a/docs/zh-Hans/images/cmskit-module-menus-page.png b/docs/zh-Hans/images/cmskit-module-menus-page.png index c265763788..2367c9154b 100644 Binary files a/docs/zh-Hans/images/cmskit-module-menus-page.png and b/docs/zh-Hans/images/cmskit-module-menus-page.png differ diff --git a/docs/zh-Hans/images/cmskit-module-menus-public.png b/docs/zh-Hans/images/cmskit-module-menus-public.png index 0b67064334..a3e1def4af 100644 Binary files a/docs/zh-Hans/images/cmskit-module-menus-public.png and b/docs/zh-Hans/images/cmskit-module-menus-public.png differ diff --git a/docs/zh-Hans/images/cmskit-module-pages-edit.png b/docs/zh-Hans/images/cmskit-module-pages-edit.png index cca074fdac..5c3933849f 100644 Binary files a/docs/zh-Hans/images/cmskit-module-pages-edit.png and b/docs/zh-Hans/images/cmskit-module-pages-edit.png differ diff --git a/docs/zh-Hans/images/cmskit-module-pages-page.png b/docs/zh-Hans/images/cmskit-module-pages-page.png index b64915493c..e2ca54b647 100644 Binary files a/docs/zh-Hans/images/cmskit-module-pages-page.png and b/docs/zh-Hans/images/cmskit-module-pages-page.png differ diff --git a/docs/zh-Hans/images/cmskit-module-ratings.png b/docs/zh-Hans/images/cmskit-module-ratings.png index f97c934f15..6d16c954e9 100644 Binary files a/docs/zh-Hans/images/cmskit-module-ratings.png and b/docs/zh-Hans/images/cmskit-module-ratings.png differ diff --git a/docs/zh-Hans/images/cmskit-module-reactions.png b/docs/zh-Hans/images/cmskit-module-reactions.png index b915b85f91..6840f12297 100644 Binary files a/docs/zh-Hans/images/cmskit-module-reactions.png and b/docs/zh-Hans/images/cmskit-module-reactions.png differ diff --git a/docs/zh-Hans/images/cmskit-module-tag-edit.png b/docs/zh-Hans/images/cmskit-module-tag-edit.png index eb1ebb3a52..1bc1cb2035 100644 Binary files a/docs/zh-Hans/images/cmskit-module-tag-edit.png and b/docs/zh-Hans/images/cmskit-module-tag-edit.png differ diff --git a/docs/zh-Hans/images/cmskit-module-tags-page.png b/docs/zh-Hans/images/cmskit-module-tags-page.png index f41b6ecbd0..39f515b9f4 100644 Binary files a/docs/zh-Hans/images/cmskit-module-tags-page.png and b/docs/zh-Hans/images/cmskit-module-tags-page.png differ diff --git a/docs/zh-Hans/images/create-aspnet-core-application.png b/docs/zh-Hans/images/create-aspnet-core-application.png index b8b98f5c32..afd1447ba8 100644 Binary files a/docs/zh-Hans/images/create-aspnet-core-application.png and b/docs/zh-Hans/images/create-aspnet-core-application.png differ diff --git a/docs/zh-Hans/images/create-new-aspnet-core-application-v2.png b/docs/zh-Hans/images/create-new-aspnet-core-application-v2.png index f8274ae2a4..d2bce84775 100644 Binary files a/docs/zh-Hans/images/create-new-aspnet-core-application-v2.png and b/docs/zh-Hans/images/create-new-aspnet-core-application-v2.png differ diff --git a/docs/zh-Hans/images/create-new-aspnet-core-application.png b/docs/zh-Hans/images/create-new-aspnet-core-application.png index fe78b9051d..2c38289810 100644 Binary files a/docs/zh-Hans/images/create-new-aspnet-core-application.png and b/docs/zh-Hans/images/create-new-aspnet-core-application.png differ diff --git a/docs/zh-Hans/images/create-new-net-core-console-application.png b/docs/zh-Hans/images/create-new-net-core-console-application.png index c5f39bfb37..0c2b3dbcb8 100644 Binary files a/docs/zh-Hans/images/create-new-net-core-console-application.png and b/docs/zh-Hans/images/create-new-net-core-console-application.png differ diff --git a/docs/zh-Hans/images/custom-settings.png b/docs/zh-Hans/images/custom-settings.png index dc40ad3fa9..afd1f58549 100644 Binary files a/docs/zh-Hans/images/custom-settings.png and b/docs/zh-Hans/images/custom-settings.png differ diff --git a/docs/zh-Hans/images/dashboard1.png b/docs/zh-Hans/images/dashboard1.png index 4102bbd4c1..8c542b8786 100644 Binary files a/docs/zh-Hans/images/dashboard1.png and b/docs/zh-Hans/images/dashboard1.png differ diff --git a/docs/zh-Hans/images/data-table-colum-extension-blazor-component-render-solution.png b/docs/zh-Hans/images/data-table-colum-extension-blazor-component-render-solution.png index 77612b5d34..b52c8f7feb 100644 Binary files a/docs/zh-Hans/images/data-table-colum-extension-blazor-component-render-solution.png and b/docs/zh-Hans/images/data-table-colum-extension-blazor-component-render-solution.png differ diff --git a/docs/zh-Hans/images/data-table-colum-extension-blazor-component-render.png b/docs/zh-Hans/images/data-table-colum-extension-blazor-component-render.png index 9d018e2ab9..06768ebe06 100644 Binary files a/docs/zh-Hans/images/data-table-colum-extension-blazor-component-render.png and b/docs/zh-Hans/images/data-table-colum-extension-blazor-component-render.png differ diff --git a/docs/zh-Hans/images/datatables-custom-render-date.png b/docs/zh-Hans/images/datatables-custom-render-date.png index 344237aea7..d2d59e3a1c 100644 Binary files a/docs/zh-Hans/images/datatables-custom-render-date.png and b/docs/zh-Hans/images/datatables-custom-render-date.png differ diff --git a/docs/zh-Hans/images/datatables-default-render-date.png b/docs/zh-Hans/images/datatables-default-render-date.png index 430c889d2f..a3c6c53c21 100644 Binary files a/docs/zh-Hans/images/datatables-default-render-date.png and b/docs/zh-Hans/images/datatables-default-render-date.png differ diff --git a/docs/zh-Hans/images/datatables-example.png b/docs/zh-Hans/images/datatables-example.png index ef3e74576b..177431debb 100644 Binary files a/docs/zh-Hans/images/datatables-example.png and b/docs/zh-Hans/images/datatables-example.png differ diff --git a/docs/zh-Hans/images/datatables-row-actions-confirmation.png b/docs/zh-Hans/images/datatables-row-actions-confirmation.png index 9be8433f9c..f1854cac89 100644 Binary files a/docs/zh-Hans/images/datatables-row-actions-confirmation.png and b/docs/zh-Hans/images/datatables-row-actions-confirmation.png differ diff --git a/docs/zh-Hans/images/datatables-row-actions-icon.png b/docs/zh-Hans/images/datatables-row-actions-icon.png index 70111fc1ac..60032c0e10 100644 Binary files a/docs/zh-Hans/images/datatables-row-actions-icon.png and b/docs/zh-Hans/images/datatables-row-actions-icon.png differ diff --git a/docs/zh-Hans/images/datatables-row-actions.png b/docs/zh-Hans/images/datatables-row-actions.png index 4eae0f098a..3605b0d671 100644 Binary files a/docs/zh-Hans/images/datatables-row-actions.png and b/docs/zh-Hans/images/datatables-row-actions.png differ diff --git a/docs/zh-Hans/images/db-migrator-app.png b/docs/zh-Hans/images/db-migrator-app.png index ace6abb226..d2248d4588 100644 Binary files a/docs/zh-Hans/images/db-migrator-app.png and b/docs/zh-Hans/images/db-migrator-app.png differ diff --git a/docs/zh-Hans/images/db-migrator-output.png b/docs/zh-Hans/images/db-migrator-output.png index ace6abb226..d2248d4588 100644 Binary files a/docs/zh-Hans/images/db-migrator-output.png and b/docs/zh-Hans/images/db-migrator-output.png differ diff --git a/docs/zh-Hans/images/db-options.png b/docs/zh-Hans/images/db-options.png index d9dc2ed0f4..368377f5a3 100644 Binary files a/docs/zh-Hans/images/db-options.png and b/docs/zh-Hans/images/db-options.png differ diff --git a/docs/zh-Hans/images/ddd-microservice-simple.png b/docs/zh-Hans/images/ddd-microservice-simple.png index 1217b243c8..f4195bff9d 100644 Binary files a/docs/zh-Hans/images/ddd-microservice-simple.png and b/docs/zh-Hans/images/ddd-microservice-simple.png differ diff --git a/docs/zh-Hans/images/deployment-clustered.png b/docs/zh-Hans/images/deployment-clustered.png index 74177482c5..f640d55957 100644 Binary files a/docs/zh-Hans/images/deployment-clustered.png and b/docs/zh-Hans/images/deployment-clustered.png differ diff --git a/docs/zh-Hans/images/deployment-single-instance.png b/docs/zh-Hans/images/deployment-single-instance.png index 8c3f8719b2..50b904baf8 100644 Binary files a/docs/zh-Hans/images/deployment-single-instance.png and b/docs/zh-Hans/images/deployment-single-instance.png differ diff --git a/docs/zh-Hans/images/docs-create-project-v4.4.0.png b/docs/zh-Hans/images/docs-create-project-v4.4.0.png index fa30fcbc3a..723860e3c5 100644 Binary files a/docs/zh-Hans/images/docs-create-project-v4.4.0.png and b/docs/zh-Hans/images/docs-create-project-v4.4.0.png differ diff --git a/docs/zh-Hans/images/docs-create-project.jpg b/docs/zh-Hans/images/docs-create-project.jpg index 742f5e307f..d2baa3242a 100644 Binary files a/docs/zh-Hans/images/docs-create-project.jpg and b/docs/zh-Hans/images/docs-create-project.jpg differ diff --git a/docs/zh-Hans/images/docs-module_download-new-abp-project.png b/docs/zh-Hans/images/docs-module_download-new-abp-project.png index 6424ad7622..5afb0d3b47 100644 Binary files a/docs/zh-Hans/images/docs-module_download-new-abp-project.png and b/docs/zh-Hans/images/docs-module_download-new-abp-project.png differ diff --git a/docs/zh-Hans/images/docs-module_download-sample-navigation-menu.png b/docs/zh-Hans/images/docs-module_download-sample-navigation-menu.png index 9a1232f198..8d8eb42d52 100644 Binary files a/docs/zh-Hans/images/docs-module_download-sample-navigation-menu.png and b/docs/zh-Hans/images/docs-module_download-sample-navigation-menu.png differ diff --git a/docs/zh-Hans/images/docs-module_solution-explorer.png b/docs/zh-Hans/images/docs-module_solution-explorer.png index 42b2c31143..63d943a4f2 100644 Binary files a/docs/zh-Hans/images/docs-module_solution-explorer.png and b/docs/zh-Hans/images/docs-module_solution-explorer.png differ diff --git a/docs/zh-Hans/images/docs-section-ui.png b/docs/zh-Hans/images/docs-section-ui.png index 7856454e5d..1c63d1ad3a 100644 Binary files a/docs/zh-Hans/images/docs-section-ui.png and b/docs/zh-Hans/images/docs-section-ui.png differ diff --git a/docs/zh-Hans/images/domain-driven-design-aggregate-keep-small.png b/docs/zh-Hans/images/domain-driven-design-aggregate-keep-small.png index 56f805ebbe..d10f236282 100644 Binary files a/docs/zh-Hans/images/domain-driven-design-aggregate-keep-small.png and b/docs/zh-Hans/images/domain-driven-design-aggregate-keep-small.png differ diff --git a/docs/zh-Hans/images/domain-driven-design-clean-architecture.png b/docs/zh-Hans/images/domain-driven-design-clean-architecture.png index 4ab6d2c93b..c4c680fc23 100644 Binary files a/docs/zh-Hans/images/domain-driven-design-clean-architecture.png and b/docs/zh-Hans/images/domain-driven-design-clean-architecture.png differ diff --git a/docs/zh-Hans/images/domain-driven-design-domain-vs-application-logic.png b/docs/zh-Hans/images/domain-driven-design-domain-vs-application-logic.png index e370cba71e..e5b8dfa41d 100644 Binary files a/docs/zh-Hans/images/domain-driven-design-domain-vs-application-logic.png and b/docs/zh-Hans/images/domain-driven-design-domain-vs-application-logic.png differ diff --git a/docs/zh-Hans/images/domain-driven-design-entity-primary-keys.png b/docs/zh-Hans/images/domain-driven-design-entity-primary-keys.png index 7ee0096222..aa45d9b702 100644 Binary files a/docs/zh-Hans/images/domain-driven-design-entity-primary-keys.png and b/docs/zh-Hans/images/domain-driven-design-entity-primary-keys.png differ diff --git a/docs/zh-Hans/images/domain-driven-design-example-domain-schema.png b/docs/zh-Hans/images/domain-driven-design-example-domain-schema.png index fe3075b141..2f847d61e1 100644 Binary files a/docs/zh-Hans/images/domain-driven-design-example-domain-schema.png and b/docs/zh-Hans/images/domain-driven-design-example-domain-schema.png differ diff --git a/docs/zh-Hans/images/domain-driven-design-issue-aggregate-diagram.png b/docs/zh-Hans/images/domain-driven-design-issue-aggregate-diagram.png index 244564126a..fca830f21d 100644 Binary files a/docs/zh-Hans/images/domain-driven-design-issue-aggregate-diagram.png and b/docs/zh-Hans/images/domain-driven-design-issue-aggregate-diagram.png differ diff --git a/docs/zh-Hans/images/domain-driven-design-layers.png b/docs/zh-Hans/images/domain-driven-design-layers.png index f2fc9af097..c9e64d569a 100644 Binary files a/docs/zh-Hans/images/domain-driven-design-layers.png and b/docs/zh-Hans/images/domain-driven-design-layers.png differ diff --git a/docs/zh-Hans/images/domain-driven-design-multiple-applications.png b/docs/zh-Hans/images/domain-driven-design-multiple-applications.png index 6db4fc6443..112335df7c 100644 Binary files a/docs/zh-Hans/images/domain-driven-design-multiple-applications.png and b/docs/zh-Hans/images/domain-driven-design-multiple-applications.png differ diff --git a/docs/zh-Hans/images/domain-driven-design-project-relations.png b/docs/zh-Hans/images/domain-driven-design-project-relations.png index b7878d1385..738edf59f1 100644 Binary files a/docs/zh-Hans/images/domain-driven-design-project-relations.png and b/docs/zh-Hans/images/domain-driven-design-project-relations.png differ diff --git a/docs/zh-Hans/images/domain-driven-design-reference-by-id-sample.png b/docs/zh-Hans/images/domain-driven-design-reference-by-id-sample.png index 48a1913654..4d277f40ee 100644 Binary files a/docs/zh-Hans/images/domain-driven-design-reference-by-id-sample.png and b/docs/zh-Hans/images/domain-driven-design-reference-by-id-sample.png differ diff --git a/docs/zh-Hans/images/domain-driven-design-vs-solution.png b/docs/zh-Hans/images/domain-driven-design-vs-solution.png index ef0f51a418..12305891d4 100644 Binary files a/docs/zh-Hans/images/domain-driven-design-vs-solution.png and b/docs/zh-Hans/images/domain-driven-design-vs-solution.png differ diff --git a/docs/zh-Hans/images/domain-driven-design-web-request-flow.png b/docs/zh-Hans/images/domain-driven-design-web-request-flow.png index a9cb98e01f..63d5fd0d6b 100644 Binary files a/docs/zh-Hans/images/domain-driven-design-web-request-flow.png and b/docs/zh-Hans/images/domain-driven-design-web-request-flow.png differ diff --git a/docs/zh-Hans/images/email-settings.png b/docs/zh-Hans/images/email-settings.png index 6aa77da312..23458abc99 100644 Binary files a/docs/zh-Hans/images/email-settings.png and b/docs/zh-Hans/images/email-settings.png differ diff --git a/docs/zh-Hans/images/example-global-styles.png b/docs/zh-Hans/images/example-global-styles.png index 04232aa62d..48ad321016 100644 Binary files a/docs/zh-Hans/images/example-global-styles.png and b/docs/zh-Hans/images/example-global-styles.png differ diff --git a/docs/zh-Hans/images/extension-navigation-property-form.png b/docs/zh-Hans/images/extension-navigation-property-form.png index 5e55ce3afd..2bc5b99daa 100644 Binary files a/docs/zh-Hans/images/extension-navigation-property-form.png and b/docs/zh-Hans/images/extension-navigation-property-form.png differ diff --git a/docs/zh-Hans/images/extension-navigation-property-table.png b/docs/zh-Hans/images/extension-navigation-property-table.png index a3f333919c..5a84150193 100644 Binary files a/docs/zh-Hans/images/extension-navigation-property-table.png and b/docs/zh-Hans/images/extension-navigation-property-table.png differ diff --git a/docs/zh-Hans/images/features-action.png b/docs/zh-Hans/images/features-action.png index 8283a95be9..f1c53ce6f4 100644 Binary files a/docs/zh-Hans/images/features-action.png and b/docs/zh-Hans/images/features-action.png differ diff --git a/docs/zh-Hans/images/features-modal.png b/docs/zh-Hans/images/features-modal.png index 74ee8aabc3..477295e677 100644 Binary files a/docs/zh-Hans/images/features-modal.png and b/docs/zh-Hans/images/features-modal.png differ diff --git a/docs/zh-Hans/images/features-module-opening.png b/docs/zh-Hans/images/features-module-opening.png index bd99604cd7..9c91a596e5 100644 Binary files a/docs/zh-Hans/images/features-module-opening.png and b/docs/zh-Hans/images/features-module-opening.png differ diff --git a/docs/zh-Hans/images/generated-static-client-proxies.png b/docs/zh-Hans/images/generated-static-client-proxies.png index 4c1678aebd..608ec08dbd 100644 Binary files a/docs/zh-Hans/images/generated-static-client-proxies.png and b/docs/zh-Hans/images/generated-static-client-proxies.png differ diff --git a/docs/zh-Hans/images/github-access-token-private-repo.jpg b/docs/zh-Hans/images/github-access-token-private-repo.jpg index 5bc53cc63d..cb74f1eea3 100644 Binary files a/docs/zh-Hans/images/github-access-token-private-repo.jpg and b/docs/zh-Hans/images/github-access-token-private-repo.jpg differ diff --git a/docs/zh-Hans/images/github-access-token-public-repo.jpg b/docs/zh-Hans/images/github-access-token-public-repo.jpg index b909c2cfe5..d091a6d511 100644 Binary files a/docs/zh-Hans/images/github-access-token-public-repo.jpg and b/docs/zh-Hans/images/github-access-token-public-repo.jpg differ diff --git a/docs/zh-Hans/images/github-myusername.jpg b/docs/zh-Hans/images/github-myusername.jpg index 4ac57eeed4..a723c17713 100644 Binary files a/docs/zh-Hans/images/github-myusername.jpg and b/docs/zh-Hans/images/github-myusername.jpg differ diff --git a/docs/zh-Hans/images/hello-template-razor.png b/docs/zh-Hans/images/hello-template-razor.png index 1e0e39fcec..45e0699843 100644 Binary files a/docs/zh-Hans/images/hello-template-razor.png and b/docs/zh-Hans/images/hello-template-razor.png differ diff --git a/docs/zh-Hans/images/hello-template.png b/docs/zh-Hans/images/hello-template.png index 0a3ce2816a..56927aa538 100644 Binary files a/docs/zh-Hans/images/hello-template.png and b/docs/zh-Hans/images/hello-template.png differ diff --git a/docs/zh-Hans/images/identity-module-menu.png b/docs/zh-Hans/images/identity-module-menu.png index 8083e2f722..594a5f9913 100644 Binary files a/docs/zh-Hans/images/identity-module-menu.png and b/docs/zh-Hans/images/identity-module-menu.png differ diff --git a/docs/zh-Hans/images/identity-module-permissions.png b/docs/zh-Hans/images/identity-module-permissions.png index 24ef15e3b4..2b6e6787f7 100644 Binary files a/docs/zh-Hans/images/identity-module-permissions.png and b/docs/zh-Hans/images/identity-module-permissions.png differ diff --git a/docs/zh-Hans/images/identity-module-roles.png b/docs/zh-Hans/images/identity-module-roles.png index c8e2c9cde1..a0fd412742 100644 Binary files a/docs/zh-Hans/images/identity-module-roles.png and b/docs/zh-Hans/images/identity-module-roles.png differ diff --git a/docs/zh-Hans/images/identity-module-users.png b/docs/zh-Hans/images/identity-module-users.png index 7de6da77d4..2ec7e1b332 100644 Binary files a/docs/zh-Hans/images/identity-module-users.png and b/docs/zh-Hans/images/identity-module-users.png differ diff --git a/docs/zh-Hans/images/issue-first-test.png b/docs/zh-Hans/images/issue-first-test.png index b2be1aa8eb..6bea1cd0f3 100644 Binary files a/docs/zh-Hans/images/issue-first-test.png and b/docs/zh-Hans/images/issue-first-test.png differ diff --git a/docs/zh-Hans/images/issue-list.png b/docs/zh-Hans/images/issue-list.png index 96e9010ed6..cce7a468fe 100644 Binary files a/docs/zh-Hans/images/issue-list.png and b/docs/zh-Hans/images/issue-list.png differ diff --git a/docs/zh-Hans/images/issuemanagement-module-solution.png b/docs/zh-Hans/images/issuemanagement-module-solution.png index 181924dd90..d5f64b01d2 100644 Binary files a/docs/zh-Hans/images/issuemanagement-module-solution.png and b/docs/zh-Hans/images/issuemanagement-module-solution.png differ diff --git a/docs/zh-Hans/images/js-message-confirm.png b/docs/zh-Hans/images/js-message-confirm.png index 876ae8d98e..f91affbdac 100644 Binary files a/docs/zh-Hans/images/js-message-confirm.png and b/docs/zh-Hans/images/js-message-confirm.png differ diff --git a/docs/zh-Hans/images/js-message-error.png b/docs/zh-Hans/images/js-message-error.png index fd8abb1d7e..0ed13dde5e 100644 Binary files a/docs/zh-Hans/images/js-message-error.png and b/docs/zh-Hans/images/js-message-error.png differ diff --git a/docs/zh-Hans/images/js-message-success.png b/docs/zh-Hans/images/js-message-success.png index bbf418a37c..f87c44d78a 100644 Binary files a/docs/zh-Hans/images/js-message-success.png and b/docs/zh-Hans/images/js-message-success.png differ diff --git a/docs/zh-Hans/images/js-notify-success.png b/docs/zh-Hans/images/js-notify-success.png index 04489bc7ce..d5300f3468 100644 Binary files a/docs/zh-Hans/images/js-notify-success.png and b/docs/zh-Hans/images/js-notify-success.png differ diff --git a/docs/zh-Hans/images/layered-project-dependencies-module.png b/docs/zh-Hans/images/layered-project-dependencies-module.png index 7592f49878..de3b7a412f 100644 Binary files a/docs/zh-Hans/images/layered-project-dependencies-module.png and b/docs/zh-Hans/images/layered-project-dependencies-module.png differ diff --git a/docs/zh-Hans/images/layered-project-dependencies.png b/docs/zh-Hans/images/layered-project-dependencies.png index c5fd1b3504..ed3e03fe4d 100644 Binary files a/docs/zh-Hans/images/layered-project-dependencies.png and b/docs/zh-Hans/images/layered-project-dependencies.png differ diff --git a/docs/zh-Hans/images/lepton-theme-account-layout.png b/docs/zh-Hans/images/lepton-theme-account-layout.png index e627ba3eae..96e7fb7718 100644 Binary files a/docs/zh-Hans/images/lepton-theme-account-layout.png and b/docs/zh-Hans/images/lepton-theme-account-layout.png differ diff --git a/docs/zh-Hans/images/lepton-theme-application-layout.png b/docs/zh-Hans/images/lepton-theme-application-layout.png index 3d89929abc..9da4d0f198 100644 Binary files a/docs/zh-Hans/images/lepton-theme-application-layout.png and b/docs/zh-Hans/images/lepton-theme-application-layout.png differ diff --git a/docs/zh-Hans/images/lepton-theme-blazor-layout.png b/docs/zh-Hans/images/lepton-theme-blazor-layout.png index e4211b367e..4236ca0ac0 100644 Binary files a/docs/zh-Hans/images/lepton-theme-blazor-layout.png and b/docs/zh-Hans/images/lepton-theme-blazor-layout.png differ diff --git a/docs/zh-Hans/images/localization-resource-json-files.png b/docs/zh-Hans/images/localization-resource-json-files.png index bbbd78c320..1a1d43403c 100644 Binary files a/docs/zh-Hans/images/localization-resource-json-files.png and b/docs/zh-Hans/images/localization-resource-json-files.png differ diff --git a/docs/zh-Hans/images/microservice-sample-authserver-home.png b/docs/zh-Hans/images/microservice-sample-authserver-home.png index 7ae62ad6d5..684fdb1a5a 100644 Binary files a/docs/zh-Hans/images/microservice-sample-authserver-home.png and b/docs/zh-Hans/images/microservice-sample-authserver-home.png differ diff --git a/docs/zh-Hans/images/microservice-sample-authserver-login.png b/docs/zh-Hans/images/microservice-sample-authserver-login.png index f6e8dfaa9f..99d898ccd2 100644 Binary files a/docs/zh-Hans/images/microservice-sample-authserver-login.png and b/docs/zh-Hans/images/microservice-sample-authserver-login.png differ diff --git a/docs/zh-Hans/images/microservice-sample-backend-ui-permissions.png b/docs/zh-Hans/images/microservice-sample-backend-ui-permissions.png index 02769be3e5..3e1610294f 100644 Binary files a/docs/zh-Hans/images/microservice-sample-backend-ui-permissions.png and b/docs/zh-Hans/images/microservice-sample-backend-ui-permissions.png differ diff --git a/docs/zh-Hans/images/microservice-sample-backend-ui.png b/docs/zh-Hans/images/microservice-sample-backend-ui.png index 0935a6047a..e649c8da59 100644 Binary files a/docs/zh-Hans/images/microservice-sample-backend-ui.png and b/docs/zh-Hans/images/microservice-sample-backend-ui.png differ diff --git a/docs/zh-Hans/images/microservice-sample-blogservice-permission-in-database.png b/docs/zh-Hans/images/microservice-sample-blogservice-permission-in-database.png index f99cd39893..45d7f2b115 100644 Binary files a/docs/zh-Hans/images/microservice-sample-blogservice-permission-in-database.png and b/docs/zh-Hans/images/microservice-sample-blogservice-permission-in-database.png differ diff --git a/docs/zh-Hans/images/microservice-sample-diagram-2.png b/docs/zh-Hans/images/microservice-sample-diagram-2.png index 17aea07098..414a942aca 100644 Binary files a/docs/zh-Hans/images/microservice-sample-diagram-2.png and b/docs/zh-Hans/images/microservice-sample-diagram-2.png differ diff --git a/docs/zh-Hans/images/microservice-sample-diagram-3.png b/docs/zh-Hans/images/microservice-sample-diagram-3.png index b8066ef6be..9daeea2b41 100644 Binary files a/docs/zh-Hans/images/microservice-sample-diagram-3.png and b/docs/zh-Hans/images/microservice-sample-diagram-3.png differ diff --git a/docs/zh-Hans/images/microservice-sample-diagram.png b/docs/zh-Hans/images/microservice-sample-diagram.png index b1d9f6c66e..47e6443852 100644 Binary files a/docs/zh-Hans/images/microservice-sample-diagram.png and b/docs/zh-Hans/images/microservice-sample-diagram.png differ diff --git a/docs/zh-Hans/images/microservice-sample-kibana-1.png b/docs/zh-Hans/images/microservice-sample-kibana-1.png index f3a51bd349..51777f6bd7 100644 Binary files a/docs/zh-Hans/images/microservice-sample-kibana-1.png and b/docs/zh-Hans/images/microservice-sample-kibana-1.png differ diff --git a/docs/zh-Hans/images/microservice-sample-kibana-2.png b/docs/zh-Hans/images/microservice-sample-kibana-2.png index 31b281486c..cb1d0b748c 100644 Binary files a/docs/zh-Hans/images/microservice-sample-kibana-2.png and b/docs/zh-Hans/images/microservice-sample-kibana-2.png differ diff --git a/docs/zh-Hans/images/microservice-sample-product-module-in-solution.png b/docs/zh-Hans/images/microservice-sample-product-module-in-solution.png index 27e841cdd5..2c07ad4b99 100644 Binary files a/docs/zh-Hans/images/microservice-sample-product-module-in-solution.png and b/docs/zh-Hans/images/microservice-sample-product-module-in-solution.png differ diff --git a/docs/zh-Hans/images/microservice-sample-public-product-list.png b/docs/zh-Hans/images/microservice-sample-public-product-list.png index cf8649bbe5..932b0b531c 100644 Binary files a/docs/zh-Hans/images/microservice-sample-public-product-list.png and b/docs/zh-Hans/images/microservice-sample-public-product-list.png differ diff --git a/docs/zh-Hans/images/microservice-sample-solution-2.png b/docs/zh-Hans/images/microservice-sample-solution-2.png index 3da5d160f8..f0acb01424 100644 Binary files a/docs/zh-Hans/images/microservice-sample-solution-2.png and b/docs/zh-Hans/images/microservice-sample-solution-2.png differ diff --git a/docs/zh-Hans/images/microservice-sample-solution.png b/docs/zh-Hans/images/microservice-sample-solution.png index 4c8344ed68..d1497d9be2 100644 Binary files a/docs/zh-Hans/images/microservice-sample-solution.png and b/docs/zh-Hans/images/microservice-sample-solution.png differ diff --git a/docs/zh-Hans/images/microservice-sample-update-database-authserver.png b/docs/zh-Hans/images/microservice-sample-update-database-authserver.png index 689019b587..094fd20fa6 100644 Binary files a/docs/zh-Hans/images/microservice-sample-update-database-authserver.png and b/docs/zh-Hans/images/microservice-sample-update-database-authserver.png differ diff --git a/docs/zh-Hans/images/microservice-sample-update-database-products.png b/docs/zh-Hans/images/microservice-sample-update-database-products.png index b49c2a8f8e..32a0927c1f 100644 Binary files a/docs/zh-Hans/images/microservice-sample-update-database-products.png and b/docs/zh-Hans/images/microservice-sample-update-database-products.png differ diff --git a/docs/zh-Hans/images/modal-example-product-create.png b/docs/zh-Hans/images/modal-example-product-create.png index 89ea0226ef..a2c4b3a8bb 100644 Binary files a/docs/zh-Hans/images/modal-example-product-create.png and b/docs/zh-Hans/images/modal-example-product-create.png differ diff --git a/docs/zh-Hans/images/modal-manager-cancel-warning.png b/docs/zh-Hans/images/modal-manager-cancel-warning.png index fc00902e0f..a237e247c6 100644 Binary files a/docs/zh-Hans/images/modal-manager-cancel-warning.png and b/docs/zh-Hans/images/modal-manager-cancel-warning.png differ diff --git a/docs/zh-Hans/images/modal-manager-example-modal.png b/docs/zh-Hans/images/modal-manager-example-modal.png index 867c6d410e..a413340c52 100644 Binary files a/docs/zh-Hans/images/modal-manager-example-modal.png and b/docs/zh-Hans/images/modal-manager-example-modal.png differ diff --git a/docs/zh-Hans/images/modal-manager-validation.png b/docs/zh-Hans/images/modal-manager-validation.png index 516a178e66..8749ab8e5c 100644 Binary files a/docs/zh-Hans/images/modal-manager-validation.png and b/docs/zh-Hans/images/modal-manager-validation.png differ diff --git a/docs/zh-Hans/images/modal-page-on-rider.png b/docs/zh-Hans/images/modal-page-on-rider.png index 522885489d..f59a93c344 100644 Binary files a/docs/zh-Hans/images/modal-page-on-rider.png and b/docs/zh-Hans/images/modal-page-on-rider.png differ diff --git a/docs/zh-Hans/images/module-tenant-management-actions.png b/docs/zh-Hans/images/module-tenant-management-actions.png index d1f01c2e93..2c6c396f3f 100644 Binary files a/docs/zh-Hans/images/module-tenant-management-actions.png and b/docs/zh-Hans/images/module-tenant-management-actions.png differ diff --git a/docs/zh-Hans/images/module-tenant-management-new-tenant.png b/docs/zh-Hans/images/module-tenant-management-new-tenant.png index ab9ee6ed56..eb82cc9b88 100644 Binary files a/docs/zh-Hans/images/module-tenant-management-new-tenant.png and b/docs/zh-Hans/images/module-tenant-management-new-tenant.png differ diff --git a/docs/zh-Hans/images/module-tenant-management-page.png b/docs/zh-Hans/images/module-tenant-management-page.png index 563c64aac8..14611867b5 100644 Binary files a/docs/zh-Hans/images/module-tenant-management-page.png and b/docs/zh-Hans/images/module-tenant-management-page.png differ diff --git a/docs/zh-Hans/images/multiple-database-usage.png b/docs/zh-Hans/images/multiple-database-usage.png index ada6177629..aa5d7595a7 100644 Binary files a/docs/zh-Hans/images/multiple-database-usage.png and b/docs/zh-Hans/images/multiple-database-usage.png differ diff --git a/docs/zh-Hans/images/multiple-file-template-razor.png b/docs/zh-Hans/images/multiple-file-template-razor.png index 85f87e84f4..efa58107d3 100644 Binary files a/docs/zh-Hans/images/multiple-file-template-razor.png and b/docs/zh-Hans/images/multiple-file-template-razor.png differ diff --git a/docs/zh-Hans/images/multiple-file-template.png b/docs/zh-Hans/images/multiple-file-template.png index a2e7327301..75e514975c 100644 Binary files a/docs/zh-Hans/images/multiple-file-template.png and b/docs/zh-Hans/images/multiple-file-template.png differ diff --git a/docs/zh-Hans/images/my-setting-group-blazor.png b/docs/zh-Hans/images/my-setting-group-blazor.png index 0e685ff186..8094c8c99e 100644 Binary files a/docs/zh-Hans/images/my-setting-group-blazor.png and b/docs/zh-Hans/images/my-setting-group-blazor.png differ diff --git a/docs/zh-Hans/images/my-setting-group-component-contributor.png b/docs/zh-Hans/images/my-setting-group-component-contributor.png index 3ca6dbedfb..9595aaf67a 100644 Binary files a/docs/zh-Hans/images/my-setting-group-component-contributor.png and b/docs/zh-Hans/images/my-setting-group-component-contributor.png differ diff --git a/docs/zh-Hans/images/my-setting-group-component.png b/docs/zh-Hans/images/my-setting-group-component.png index edcf315b2a..d737d3c287 100644 Binary files a/docs/zh-Hans/images/my-setting-group-component.png and b/docs/zh-Hans/images/my-setting-group-component.png differ diff --git a/docs/zh-Hans/images/my-setting-group-page-contributor.png b/docs/zh-Hans/images/my-setting-group-page-contributor.png index 3be3737e6f..44b31c07db 100644 Binary files a/docs/zh-Hans/images/my-setting-group-page-contributor.png and b/docs/zh-Hans/images/my-setting-group-page-contributor.png differ diff --git a/docs/zh-Hans/images/my-setting-group-ui.png b/docs/zh-Hans/images/my-setting-group-ui.png index b9d3f1b403..6bb268f46d 100644 Binary files a/docs/zh-Hans/images/my-setting-group-ui.png and b/docs/zh-Hans/images/my-setting-group-ui.png differ diff --git a/docs/zh-Hans/images/my-setting-group-view-component.png b/docs/zh-Hans/images/my-setting-group-view-component.png index 02843f968e..74c1730735 100644 Binary files a/docs/zh-Hans/images/my-setting-group-view-component.png and b/docs/zh-Hans/images/my-setting-group-view-component.png differ diff --git a/docs/zh-Hans/images/nav-main-menu-administration.png b/docs/zh-Hans/images/nav-main-menu-administration.png index 21ad977264..950d91102a 100644 Binary files a/docs/zh-Hans/images/nav-main-menu-administration.png and b/docs/zh-Hans/images/nav-main-menu-administration.png differ diff --git a/docs/zh-Hans/images/nav-main-menu.png b/docs/zh-Hans/images/nav-main-menu.png index 2784c035c2..3a348fd988 100644 Binary files a/docs/zh-Hans/images/nav-main-menu.png and b/docs/zh-Hans/images/nav-main-menu.png differ diff --git a/docs/zh-Hans/images/night-build-add-nuget-package.png b/docs/zh-Hans/images/night-build-add-nuget-package.png index c3621ef7d9..f475d3aaa0 100644 Binary files a/docs/zh-Hans/images/night-build-add-nuget-package.png and b/docs/zh-Hans/images/night-build-add-nuget-package.png differ diff --git a/docs/zh-Hans/images/night-build-add-nuget-source.png b/docs/zh-Hans/images/night-build-add-nuget-source.png index 8fd4b9365a..df3176aa12 100644 Binary files a/docs/zh-Hans/images/night-build-add-nuget-source.png and b/docs/zh-Hans/images/night-build-add-nuget-source.png differ diff --git a/docs/zh-Hans/images/optimistic-concurrency.png b/docs/zh-Hans/images/optimistic-concurrency.png index 85253594c8..17d6a9b5df 100644 Binary files a/docs/zh-Hans/images/optimistic-concurrency.png and b/docs/zh-Hans/images/optimistic-concurrency.png differ diff --git a/docs/zh-Hans/images/overriding-login-cshtml.png b/docs/zh-Hans/images/overriding-login-cshtml.png index d6daa4a141..79fdaeccf7 100644 Binary files a/docs/zh-Hans/images/overriding-login-cshtml.png and b/docs/zh-Hans/images/overriding-login-cshtml.png differ diff --git a/docs/zh-Hans/images/package-manager-console-update-database.png b/docs/zh-Hans/images/package-manager-console-update-database.png index d5bb9c2975..72d02e9186 100644 Binary files a/docs/zh-Hans/images/package-manager-console-update-database.png and b/docs/zh-Hans/images/package-manager-console-update-database.png differ diff --git a/docs/zh-Hans/images/page-alert-account-layout.png b/docs/zh-Hans/images/page-alert-account-layout.png index 2442cb5d14..966accc01c 100644 Binary files a/docs/zh-Hans/images/page-alert-account-layout.png and b/docs/zh-Hans/images/page-alert-account-layout.png differ diff --git a/docs/zh-Hans/images/page-alert-example.png b/docs/zh-Hans/images/page-alert-example.png index 266671757a..5aed46f278 100644 Binary files a/docs/zh-Hans/images/page-alert-example.png and b/docs/zh-Hans/images/page-alert-example.png differ diff --git a/docs/zh-Hans/images/page-header-toolbar-blazor.png b/docs/zh-Hans/images/page-header-toolbar-blazor.png index a4d0454893..40834d9dc5 100644 Binary files a/docs/zh-Hans/images/page-header-toolbar-blazor.png and b/docs/zh-Hans/images/page-header-toolbar-blazor.png differ diff --git a/docs/zh-Hans/images/page-toolbar-button-blazor.png b/docs/zh-Hans/images/page-toolbar-button-blazor.png index fb907e797a..a901d59b58 100644 Binary files a/docs/zh-Hans/images/page-toolbar-button-blazor.png and b/docs/zh-Hans/images/page-toolbar-button-blazor.png differ diff --git a/docs/zh-Hans/images/page-toolbar-button.png b/docs/zh-Hans/images/page-toolbar-button.png index 05e3f9da11..15b7a3901d 100644 Binary files a/docs/zh-Hans/images/page-toolbar-button.png and b/docs/zh-Hans/images/page-toolbar-button.png differ diff --git a/docs/zh-Hans/images/page-toolbar-custom-component-blazor.png b/docs/zh-Hans/images/page-toolbar-custom-component-blazor.png index fb0856fa03..13ab2b21b2 100644 Binary files a/docs/zh-Hans/images/page-toolbar-custom-component-blazor.png and b/docs/zh-Hans/images/page-toolbar-custom-component-blazor.png differ diff --git a/docs/zh-Hans/images/page-toolbar-custom-component.png b/docs/zh-Hans/images/page-toolbar-custom-component.png index a15ef4854c..76ce86015f 100644 Binary files a/docs/zh-Hans/images/page-toolbar-custom-component.png and b/docs/zh-Hans/images/page-toolbar-custom-component.png differ diff --git a/docs/zh-Hans/images/pcm-update-database-v2.png b/docs/zh-Hans/images/pcm-update-database-v2.png index d5bb9c2975..72d02e9186 100644 Binary files a/docs/zh-Hans/images/pcm-update-database-v2.png and b/docs/zh-Hans/images/pcm-update-database-v2.png differ diff --git a/docs/zh-Hans/images/pcm-update-database.png b/docs/zh-Hans/images/pcm-update-database.png index ac53f0db4f..a9379d2571 100644 Binary files a/docs/zh-Hans/images/pcm-update-database.png and b/docs/zh-Hans/images/pcm-update-database.png differ diff --git a/docs/zh-Hans/images/permissions-module-dialog.png b/docs/zh-Hans/images/permissions-module-dialog.png index 6b190484a2..28dd6e5f0c 100644 Binary files a/docs/zh-Hans/images/permissions-module-dialog.png and b/docs/zh-Hans/images/permissions-module-dialog.png differ diff --git a/docs/zh-Hans/images/permissions-module-open-dialog.png b/docs/zh-Hans/images/permissions-module-open-dialog.png index 46631fe126..7556d2de09 100644 Binary files a/docs/zh-Hans/images/permissions-module-open-dialog.png and b/docs/zh-Hans/images/permissions-module-open-dialog.png differ diff --git a/docs/zh-Hans/images/pmc-add-migration-initial-update-database.png b/docs/zh-Hans/images/pmc-add-migration-initial-update-database.png index 3cc45e5ddf..25408f5d84 100644 Binary files a/docs/zh-Hans/images/pmc-add-migration-initial-update-database.png and b/docs/zh-Hans/images/pmc-add-migration-initial-update-database.png differ diff --git a/docs/zh-Hans/images/pmc-add-migration-role-title.png b/docs/zh-Hans/images/pmc-add-migration-role-title.png index 69fc5b7bc5..38ded69241 100644 Binary files a/docs/zh-Hans/images/pmc-add-migration-role-title.png and b/docs/zh-Hans/images/pmc-add-migration-role-title.png differ diff --git a/docs/zh-Hans/images/product-create-modal-page-on-rider.png b/docs/zh-Hans/images/product-create-modal-page-on-rider.png index 01cf93eaf0..23d7300fbd 100644 Binary files a/docs/zh-Hans/images/product-create-modal-page-on-rider.png and b/docs/zh-Hans/images/product-create-modal-page-on-rider.png differ diff --git a/docs/zh-Hans/images/react-native-folder-structure.png b/docs/zh-Hans/images/react-native-folder-structure.png index cf703ea061..10aaf1c18b 100644 Binary files a/docs/zh-Hans/images/react-native-folder-structure.png and b/docs/zh-Hans/images/react-native-folder-structure.png differ diff --git a/docs/zh-Hans/images/react-native-navigation-structure.png b/docs/zh-Hans/images/react-native-navigation-structure.png index 9f17375b68..22303f1dd4 100644 Binary files a/docs/zh-Hans/images/react-native-navigation-structure.png and b/docs/zh-Hans/images/react-native-navigation-structure.png differ diff --git a/docs/zh-Hans/images/react-native-store-folder.png b/docs/zh-Hans/images/react-native-store-folder.png index e90ae9debb..a07705526f 100644 Binary files a/docs/zh-Hans/images/react-native-store-folder.png and b/docs/zh-Hans/images/react-native-store-folder.png differ diff --git a/docs/zh-Hans/images/replace-email-layout-razor.png b/docs/zh-Hans/images/replace-email-layout-razor.png index 84ff6c1080..1a21382173 100644 Binary files a/docs/zh-Hans/images/replace-email-layout-razor.png and b/docs/zh-Hans/images/replace-email-layout-razor.png differ diff --git a/docs/zh-Hans/images/replace-email-layout.png b/docs/zh-Hans/images/replace-email-layout.png index 67db895f92..6ea9669879 100644 Binary files a/docs/zh-Hans/images/replace-email-layout.png and b/docs/zh-Hans/images/replace-email-layout.png differ diff --git a/docs/zh-Hans/images/rn-environment-local-ip.png b/docs/zh-Hans/images/rn-environment-local-ip.png index 7e60efff2f..a25bffc629 100644 Binary files a/docs/zh-Hans/images/rn-environment-local-ip.png and b/docs/zh-Hans/images/rn-environment-local-ip.png differ diff --git a/docs/zh-Hans/images/rn-expo-interface.png b/docs/zh-Hans/images/rn-expo-interface.png index f1f405ebf4..e33392237c 100644 Binary files a/docs/zh-Hans/images/rn-expo-interface.png and b/docs/zh-Hans/images/rn-expo-interface.png differ diff --git a/docs/zh-Hans/images/rn-host-local-ip.png b/docs/zh-Hans/images/rn-host-local-ip.png index 8691d749e5..2fb03ef21f 100644 Binary files a/docs/zh-Hans/images/rn-host-local-ip.png and b/docs/zh-Hans/images/rn-host-local-ip.png differ diff --git a/docs/zh-Hans/images/rn-login-iphone.png b/docs/zh-Hans/images/rn-login-iphone.png index 2da1d24601..c7767f27a5 100644 Binary files a/docs/zh-Hans/images/rn-login-iphone.png and b/docs/zh-Hans/images/rn-login-iphone.png differ diff --git a/docs/zh-Hans/images/rn-tiered-local-ip.png b/docs/zh-Hans/images/rn-tiered-local-ip.png index 35168455ab..d1dd6ed91f 100644 Binary files a/docs/zh-Hans/images/rn-tiered-local-ip.png and b/docs/zh-Hans/images/rn-tiered-local-ip.png differ diff --git a/docs/zh-Hans/images/select-empty-web-application-v2.png b/docs/zh-Hans/images/select-empty-web-application-v2.png index da32f71857..9bfd2ec6a8 100644 Binary files a/docs/zh-Hans/images/select-empty-web-application-v2.png and b/docs/zh-Hans/images/select-empty-web-application-v2.png differ diff --git a/docs/zh-Hans/images/select-empty-web-application.png b/docs/zh-Hans/images/select-empty-web-application.png index b0cd89a27a..f4b884140d 100644 Binary files a/docs/zh-Hans/images/select-empty-web-application.png and b/docs/zh-Hans/images/select-empty-web-application.png differ diff --git a/docs/zh-Hans/images/set-as-startup-project.png b/docs/zh-Hans/images/set-as-startup-project.png index 13da5caf6c..8a5445bf38 100644 Binary files a/docs/zh-Hans/images/set-as-startup-project.png and b/docs/zh-Hans/images/set-as-startup-project.png differ diff --git a/docs/zh-Hans/images/setting-management-email-ui.png b/docs/zh-Hans/images/setting-management-email-ui.png index f8f1270c15..ab26a1d180 100644 Binary files a/docs/zh-Hans/images/setting-management-email-ui.png and b/docs/zh-Hans/images/setting-management-email-ui.png differ diff --git a/docs/zh-Hans/images/signal-js-file.png b/docs/zh-Hans/images/signal-js-file.png index 19fc6cefe3..c15071e90b 100644 Binary files a/docs/zh-Hans/images/signal-js-file.png and b/docs/zh-Hans/images/signal-js-file.png differ diff --git a/docs/zh-Hans/images/signalr-demo-chat.png b/docs/zh-Hans/images/signalr-demo-chat.png index 120d7eda6e..97ac7d3e4f 100644 Binary files a/docs/zh-Hans/images/signalr-demo-chat.png and b/docs/zh-Hans/images/signalr-demo-chat.png differ diff --git a/docs/zh-Hans/images/simple-plug-in-dll-file.png b/docs/zh-Hans/images/simple-plug-in-dll-file.png index 3155708d68..5fa4a9eb60 100644 Binary files a/docs/zh-Hans/images/simple-plug-in-dll-file.png and b/docs/zh-Hans/images/simple-plug-in-dll-file.png differ diff --git a/docs/zh-Hans/images/simple-plugin-library.png b/docs/zh-Hans/images/simple-plugin-library.png index 9fefd57dda..05c730b954 100644 Binary files a/docs/zh-Hans/images/simple-plugin-library.png and b/docs/zh-Hans/images/simple-plugin-library.png differ diff --git a/docs/zh-Hans/images/simple-plugin-output.png b/docs/zh-Hans/images/simple-plugin-output.png index 71f6a78c0e..cb9cda3e8d 100644 Binary files a/docs/zh-Hans/images/simple-plugin-output.png and b/docs/zh-Hans/images/simple-plugin-output.png differ diff --git a/docs/zh-Hans/images/simple-razor-plug-in-dll-file.png b/docs/zh-Hans/images/simple-razor-plug-in-dll-file.png index 06b7a565fe..2059560dbc 100644 Binary files a/docs/zh-Hans/images/simple-razor-plug-in-dll-file.png and b/docs/zh-Hans/images/simple-razor-plug-in-dll-file.png differ diff --git a/docs/zh-Hans/images/simple-razor-plugin.png b/docs/zh-Hans/images/simple-razor-plugin.png index 92e0e00d29..311080fd7f 100644 Binary files a/docs/zh-Hans/images/simple-razor-plugin.png and b/docs/zh-Hans/images/simple-razor-plugin.png differ diff --git a/docs/zh-Hans/images/single-database-usage.png b/docs/zh-Hans/images/single-database-usage.png index 108173fd86..4015cd1d75 100644 Binary files a/docs/zh-Hans/images/single-database-usage.png and b/docs/zh-Hans/images/single-database-usage.png differ diff --git a/docs/zh-Hans/images/solution-files-mvc.png b/docs/zh-Hans/images/solution-files-mvc.png index 08bbfb9595..dbbdc7e661 100644 Binary files a/docs/zh-Hans/images/solution-files-mvc.png and b/docs/zh-Hans/images/solution-files-mvc.png differ diff --git a/docs/zh-Hans/images/solution-files-non-mvc.png b/docs/zh-Hans/images/solution-files-non-mvc.png index 323991b95c..700c4b2de7 100644 Binary files a/docs/zh-Hans/images/solution-files-non-mvc.png and b/docs/zh-Hans/images/solution-files-non-mvc.png differ diff --git a/docs/zh-Hans/images/solution-test-projects.png b/docs/zh-Hans/images/solution-test-projects.png index e51c368e9f..eab61f0a5a 100644 Binary files a/docs/zh-Hans/images/solution-test-projects.png and b/docs/zh-Hans/images/solution-test-projects.png differ diff --git a/docs/zh-Hans/images/static-js-proxy-example.png b/docs/zh-Hans/images/static-js-proxy-example.png index 575957b9ae..1173a277e2 100644 Binary files a/docs/zh-Hans/images/static-js-proxy-example.png and b/docs/zh-Hans/images/static-js-proxy-example.png differ diff --git a/docs/zh-Hans/images/swagger-ui.png b/docs/zh-Hans/images/swagger-ui.png index 7f52269474..31f25c53a6 100644 Binary files a/docs/zh-Hans/images/swagger-ui.png and b/docs/zh-Hans/images/swagger-ui.png differ diff --git a/docs/zh-Hans/images/table-column-extension-example-blazor.png b/docs/zh-Hans/images/table-column-extension-example-blazor.png index 3079fa278c..f2668f8f7a 100644 Binary files a/docs/zh-Hans/images/table-column-extension-example-blazor.png and b/docs/zh-Hans/images/table-column-extension-example-blazor.png differ diff --git a/docs/zh-Hans/images/table-column-extension-example.png b/docs/zh-Hans/images/table-column-extension-example.png index 84d87bf46c..81c3748834 100644 Binary files a/docs/zh-Hans/images/table-column-extension-example.png and b/docs/zh-Hans/images/table-column-extension-example.png differ diff --git a/docs/zh-Hans/images/tiered-solution-applications.png b/docs/zh-Hans/images/tiered-solution-applications.png index fb6ede7ac5..df8d2b5f4a 100644 Binary files a/docs/zh-Hans/images/tiered-solution-applications.png and b/docs/zh-Hans/images/tiered-solution-applications.png differ diff --git a/docs/zh-Hans/images/tiered-solution-servers.png b/docs/zh-Hans/images/tiered-solution-servers.png index 3c999b4b45..68e72990d7 100644 Binary files a/docs/zh-Hans/images/tiered-solution-servers.png and b/docs/zh-Hans/images/tiered-solution-servers.png differ diff --git a/docs/zh-Hans/images/ui-busy.png b/docs/zh-Hans/images/ui-busy.png index 63a1d7d74a..7d2fe7a89a 100644 Binary files a/docs/zh-Hans/images/ui-busy.png and b/docs/zh-Hans/images/ui-busy.png differ diff --git a/docs/zh-Hans/images/ui-options.png b/docs/zh-Hans/images/ui-options.png index bd211a8914..6f0d19b73e 100644 Binary files a/docs/zh-Hans/images/ui-options.png and b/docs/zh-Hans/images/ui-options.png differ diff --git a/docs/zh-Hans/images/upgrade-diff-empty-folders.png b/docs/zh-Hans/images/upgrade-diff-empty-folders.png index 9f0256061a..6cbfeca744 100644 Binary files a/docs/zh-Hans/images/upgrade-diff-empty-folders.png and b/docs/zh-Hans/images/upgrade-diff-empty-folders.png differ diff --git a/docs/zh-Hans/images/user-action-blazor-extension-click-me.png b/docs/zh-Hans/images/user-action-blazor-extension-click-me.png index fb1ea80182..1540bb0541 100644 Binary files a/docs/zh-Hans/images/user-action-blazor-extension-click-me.png and b/docs/zh-Hans/images/user-action-blazor-extension-click-me.png differ diff --git a/docs/zh-Hans/images/user-action-extension-click-me.png b/docs/zh-Hans/images/user-action-extension-click-me.png index 4046630f48..f8b1c505d0 100644 Binary files a/docs/zh-Hans/images/user-action-extension-click-me.png and b/docs/zh-Hans/images/user-action-extension-click-me.png differ diff --git a/docs/zh-Hans/images/user-action-extension-on-blazor-project.png b/docs/zh-Hans/images/user-action-extension-on-blazor-project.png index d11ea328b6..0d59ccdacf 100644 Binary files a/docs/zh-Hans/images/user-action-extension-on-blazor-project.png and b/docs/zh-Hans/images/user-action-extension-on-blazor-project.png differ diff --git a/docs/zh-Hans/images/user-action-extension-on-solution.png b/docs/zh-Hans/images/user-action-extension-on-solution.png index 5f58d3f302..7962bfcbf0 100644 Binary files a/docs/zh-Hans/images/user-action-extension-on-solution.png and b/docs/zh-Hans/images/user-action-extension-on-solution.png differ diff --git a/docs/zh-Hans/images/user-menu.png b/docs/zh-Hans/images/user-menu.png index af0671dbdc..e30bc375a6 100644 Binary files a/docs/zh-Hans/images/user-menu.png and b/docs/zh-Hans/images/user-menu.png differ diff --git a/docs/zh-Hans/images/virtual-file-explorer.png b/docs/zh-Hans/images/virtual-file-explorer.png index e49d0f2111..6436c21284 100644 Binary files a/docs/zh-Hans/images/virtual-file-explorer.png and b/docs/zh-Hans/images/virtual-file-explorer.png differ diff --git a/docs/zh-Hans/images/volodocs-iis-add-website.png b/docs/zh-Hans/images/volodocs-iis-add-website.png index 878b3e8f0c..aa7da8095b 100644 Binary files a/docs/zh-Hans/images/volodocs-iis-add-website.png and b/docs/zh-Hans/images/volodocs-iis-add-website.png differ diff --git a/docs/zh-Hans/images/volodocs-iis-application-pool.png b/docs/zh-Hans/images/volodocs-iis-application-pool.png index cc5186f50b..28ccfa5c42 100644 Binary files a/docs/zh-Hans/images/volodocs-iis-application-pool.png and b/docs/zh-Hans/images/volodocs-iis-application-pool.png differ diff --git a/docs/zh-Hans/images/vs-app-solution-structure-mongodb.png b/docs/zh-Hans/images/vs-app-solution-structure-mongodb.png index 8e0e6ba565..619e63b1f6 100644 Binary files a/docs/zh-Hans/images/vs-app-solution-structure-mongodb.png and b/docs/zh-Hans/images/vs-app-solution-structure-mongodb.png differ diff --git a/docs/zh-Hans/images/vs-app-solution-structure-tiered.png b/docs/zh-Hans/images/vs-app-solution-structure-tiered.png index fd41ef4b0a..f09c5e97c7 100644 Binary files a/docs/zh-Hans/images/vs-app-solution-structure-tiered.png and b/docs/zh-Hans/images/vs-app-solution-structure-tiered.png differ diff --git a/docs/zh-Hans/images/vs-app-solution-structure.png b/docs/zh-Hans/images/vs-app-solution-structure.png index 00d92164e7..5931da61ac 100644 Binary files a/docs/zh-Hans/images/vs-app-solution-structure.png and b/docs/zh-Hans/images/vs-app-solution-structure.png differ diff --git a/docs/zh-Hans/images/vs-run-tests-in-parallel.png b/docs/zh-Hans/images/vs-run-tests-in-parallel.png index 765cba5100..b13245394a 100644 Binary files a/docs/zh-Hans/images/vs-run-tests-in-parallel.png and b/docs/zh-Hans/images/vs-run-tests-in-parallel.png differ diff --git a/docs/zh-Hans/images/vs-spa-app-backend-structure-mongodb.png b/docs/zh-Hans/images/vs-spa-app-backend-structure-mongodb.png index 8f0427c14b..56dd6e46bd 100644 Binary files a/docs/zh-Hans/images/vs-spa-app-backend-structure-mongodb.png and b/docs/zh-Hans/images/vs-spa-app-backend-structure-mongodb.png differ diff --git a/docs/zh-Hans/images/vs-spa-app-backend-structure.png b/docs/zh-Hans/images/vs-spa-app-backend-structure.png index 2cd394c8eb..6bde8164ac 100644 Binary files a/docs/zh-Hans/images/vs-spa-app-backend-structure.png and b/docs/zh-Hans/images/vs-spa-app-backend-structure.png differ diff --git a/docs/zh-Hans/images/vs-startup-template-tests.png b/docs/zh-Hans/images/vs-startup-template-tests.png index f16d79a4c7..d939936b6e 100644 Binary files a/docs/zh-Hans/images/vs-startup-template-tests.png and b/docs/zh-Hans/images/vs-startup-template-tests.png differ diff --git a/docs/zh-Hans/images/vs-test-explorer.png b/docs/zh-Hans/images/vs-test-explorer.png index e225ee5e92..b313bacf4c 100644 Binary files a/docs/zh-Hans/images/vs-test-explorer.png and b/docs/zh-Hans/images/vs-test-explorer.png differ diff --git a/docs/zh-Hans/images/widget-basic-files.png b/docs/zh-Hans/images/widget-basic-files.png index bf5f122d42..c692abd9e0 100644 Binary files a/docs/zh-Hans/images/widget-basic-files.png and b/docs/zh-Hans/images/widget-basic-files.png differ diff --git a/docs/zh-Hans/images/winmerge-comparison-result.png b/docs/zh-Hans/images/winmerge-comparison-result.png index dbce7cb52e..9240fdf075 100644 Binary files a/docs/zh-Hans/images/winmerge-comparison-result.png and b/docs/zh-Hans/images/winmerge-comparison-result.png differ diff --git a/docs/zh-Hans/images/winmerge-file-diff.png b/docs/zh-Hans/images/winmerge-file-diff.png index 645d3de696..6ec98b2c30 100644 Binary files a/docs/zh-Hans/images/winmerge-file-diff.png and b/docs/zh-Hans/images/winmerge-file-diff.png differ diff --git a/docs/zh-Hans/images/winmerge-open-folders.png b/docs/zh-Hans/images/winmerge-open-folders.png index 53327601d4..f6e784b8a8 100644 Binary files a/docs/zh-Hans/images/winmerge-open-folders.png and b/docs/zh-Hans/images/winmerge-open-folders.png differ diff --git a/framework/src/Volo.Abp.AspNetCore.Components.MauiBlazor.Theming/ComponentsComponentsBundleContributor.cs b/framework/src/Volo.Abp.AspNetCore.Components.MauiBlazor.Theming/ComponentsComponentsBundleContributor.cs index e42f461591..30e3c6548c 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.MauiBlazor.Theming/ComponentsComponentsBundleContributor.cs +++ b/framework/src/Volo.Abp.AspNetCore.Components.MauiBlazor.Theming/ComponentsComponentsBundleContributor.cs @@ -12,14 +12,17 @@ public class ComponentsComponentsBundleContributor : IBundleContributor public void AddStyles(BundleContext context) { - context.BundleDefinitions.Insert(0, new BundleDefinition + if (!context.InteractiveAuto) { - Source = "_content/Volo.Abp.AspNetCore.Components.MauiBlazor.Theming/libs/bootstrap/css/bootstrap.min.css" - }); - context.BundleDefinitions.Insert(1, new BundleDefinition - { - Source = "_content/Volo.Abp.AspNetCore.Components.MauiBlazor.Theming/libs/fontawesome/css/all.css" - }); + context.BundleDefinitions.Insert(0, new BundleDefinition + { + Source = "_content/Volo.Abp.AspNetCore.Components.MauiBlazor.Theming/libs/bootstrap/css/bootstrap.min.css" + }); + context.BundleDefinitions.Insert(1, new BundleDefinition + { + Source = "_content/Volo.Abp.AspNetCore.Components.MauiBlazor.Theming/libs/fontawesome/css/all.css" + }); + } context.Add("_content/Volo.Abp.AspNetCore.Components.MauiBlazor.Theming/libs/flag-icon/css/flag-icon.css"); context.Add("_content/Blazorise/blazorise.css"); diff --git a/framework/src/Volo.Abp.AspNetCore.Components.Server.Theming/Bundling/BlazorGlobalScriptContributor.cs b/framework/src/Volo.Abp.AspNetCore.Components.Server.Theming/Bundling/BlazorGlobalScriptContributor.cs index 8977acc869..d99dc6284d 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.Server.Theming/Bundling/BlazorGlobalScriptContributor.cs +++ b/framework/src/Volo.Abp.AspNetCore.Components.Server.Theming/Bundling/BlazorGlobalScriptContributor.cs @@ -1,4 +1,6 @@ using System.Collections.Generic; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Options; using Volo.Abp.AspNetCore.Mvc.UI.Bundling; namespace Volo.Abp.AspNetCore.Components.Server.Theming.Bundling; @@ -7,7 +9,11 @@ public class BlazorGlobalScriptContributor : BundleContributor { public override void ConfigureBundle(BundleConfigurationContext context) { - context.Files.AddIfNotContains("/_framework/blazor.server.js"); + var options = context.ServiceProvider.GetRequiredService>().Value; + if (!options.IsBlazorWebApp) + { + context.Files.AddIfNotContains("/_framework/blazor.server.js"); + } context.Files.AddIfNotContains("/_content/Volo.Abp.AspNetCore.Components.Web/libs/abp/js/abp.js"); } } diff --git a/framework/src/Volo.Abp.AspNetCore.Components.Server.Theming/Bundling/BlazorServerComponentBundleManager.cs b/framework/src/Volo.Abp.AspNetCore.Components.Server.Theming/Bundling/BlazorServerComponentBundleManager.cs new file mode 100644 index 0000000000..9ba0baff2d --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Components.Server.Theming/Bundling/BlazorServerComponentBundleManager.cs @@ -0,0 +1,28 @@ +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Volo.Abp.AspNetCore.Components.Web.Theming.Bundling; +using Volo.Abp.AspNetCore.Mvc.UI.Bundling; +using Volo.Abp.DependencyInjection; + +namespace Volo.Abp.AspNetCore.Components.Server.Theming.Bundling; + +public class BlazorServerComponentBundleManager : IComponentBundleManager, ITransientDependency +{ + protected IBundleManager BundleManager { get; } + + public BlazorServerComponentBundleManager(IBundleManager bundleManager) + { + BundleManager = bundleManager; + } + + public virtual async Task> GetStyleBundleFilesAsync(string bundleName) + { + return (await BundleManager.GetStyleBundleFilesAsync(bundleName)).Select(f => f.FileName).ToList(); + } + + public virtual async Task> GetScriptBundleFilesAsync(string bundleName) + { + return (await BundleManager.GetScriptBundleFilesAsync(bundleName)).Select(f => f.FileName).ToList(); + } +} diff --git a/framework/src/Volo.Abp.AspNetCore.Components.Server/Volo/Abp/AspNetCore/Components/Server/AbpAspNetCoreComponentsServerModule.cs b/framework/src/Volo.Abp.AspNetCore.Components.Server/Volo/Abp/AspNetCore/Components/Server/AbpAspNetCoreComponentsServerModule.cs index 60ee5c7b20..cd1fad79a0 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.Server/Volo/Abp/AspNetCore/Components/Server/AbpAspNetCoreComponentsServerModule.cs +++ b/framework/src/Volo.Abp.AspNetCore.Components.Server/Volo/Abp/AspNetCore/Components/Server/AbpAspNetCoreComponentsServerModule.cs @@ -57,18 +57,21 @@ public class AbpAspNetCoreComponentsServerModule : AbpModule options.IgnoredUrls.AddIfNotContains("/_blazor"); }); - var preConfigureActions = context.Services.GetPreConfigureActions(); - Configure(options => + if (!context.Services.ExecutePreConfiguredActions().IsBlazorWebApp) { - options.EndpointConfigureActions.Add(endpointContext => + var preConfigureActions = context.Services.GetPreConfigureActions(); + Configure(options => { - endpointContext.Endpoints.MapBlazorHub(httpConnectionDispatcherOptions => + options.EndpointConfigureActions.Add(endpointContext => { - preConfigureActions.Configure(httpConnectionDispatcherOptions); + endpointContext.Endpoints.MapBlazorHub(httpConnectionDispatcherOptions => + { + preConfigureActions.Configure(httpConnectionDispatcherOptions); + }); + endpointContext.Endpoints.MapFallbackToPage("/_Host"); }); - endpointContext.Endpoints.MapFallbackToPage("/_Host"); }); - }); + } } public override void OnApplicationInitialization(ApplicationInitializationContext context) @@ -76,6 +79,7 @@ public class AbpAspNetCoreComponentsServerModule : AbpModule context.GetEnvironment().WebRootFileProvider = new CompositeFileProvider( new ManifestEmbeddedFileProvider(typeof(IServerSideBlazorBuilder).Assembly), + new ManifestEmbeddedFileProvider(typeof(RazorComponentsEndpointRouteBuilderExtensions).Assembly), context.GetEnvironment().WebRootFileProvider ); } diff --git a/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Bundling/AbpScripts.razor b/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Bundling/AbpScripts.razor new file mode 100644 index 0000000000..435e318afa --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Bundling/AbpScripts.razor @@ -0,0 +1,33 @@ +@using Volo.Abp +@inject IComponentBundleManager BundleManager + +@if (ScriptFiles != null) +{ + foreach (var file in ScriptFiles) + { + + } +} + +@code { + [Parameter] + public List? WebAssemblyScriptFiles { get; set; } + + [Parameter] + public string? BundleName { get; set; } + + private List? ScriptFiles { get; set; } + + protected override async Task OnInitializedAsync() + { + if (BundleName == null) + { + throw new AbpException("The BundleName parameter of the AbpScripts component can not be null!"); + } + ScriptFiles = (await BundleManager.GetScriptBundleFilesAsync(BundleName!)).ToList(); + if (OperatingSystem.IsBrowser() && WebAssemblyScriptFiles != null) + { + ScriptFiles.AddRange(WebAssemblyScriptFiles); + } + } +} diff --git a/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Bundling/AbpStyles.razor b/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Bundling/AbpStyles.razor new file mode 100644 index 0000000000..488caba797 --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Bundling/AbpStyles.razor @@ -0,0 +1,33 @@ +@using Volo.Abp +@inject IComponentBundleManager BundleManager + +@if (StyleFiles != null) +{ + foreach (var file in StyleFiles) + { + + } +} + +@code { + [Parameter] + public List? WebAssemblyStyleFiles { get; set; } + + [Parameter] + public string? BundleName { get; set; } + + private List? StyleFiles { get; set; } + + protected override async Task OnInitializedAsync() + { + if (BundleName == null) + { + throw new AbpException("The BundleName parameter of the AbpStyles component can not be null!"); + } + StyleFiles = (await BundleManager.GetStyleBundleFilesAsync(BundleName!)).ToList(); + if (OperatingSystem.IsBrowser() && WebAssemblyStyleFiles != null) + { + StyleFiles.AddRange(WebAssemblyStyleFiles); + } + } +} diff --git a/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Bundling/IComponentBundleManager.cs b/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Bundling/IComponentBundleManager.cs new file mode 100644 index 0000000000..db197dd069 --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Bundling/IComponentBundleManager.cs @@ -0,0 +1,11 @@ +using System.Collections.Generic; +using System.Threading.Tasks; + +namespace Volo.Abp.AspNetCore.Components.Web.Theming.Bundling; + +public interface IComponentBundleManager +{ + Task> GetStyleBundleFilesAsync(string bundleName); + + Task> GetScriptBundleFilesAsync(string bundleName); +} diff --git a/framework/src/Volo.Abp.AspNetCore.Components.Web/Volo/Abp/AspNetCore/Components/Web/AbpAspNetCoreComponentsWebModule.cs b/framework/src/Volo.Abp.AspNetCore.Components.Web/Volo/Abp/AspNetCore/Components/Web/AbpAspNetCoreComponentsWebModule.cs index 193224ae65..42d354dc5d 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.Web/Volo/Abp/AspNetCore/Components/Web/AbpAspNetCoreComponentsWebModule.cs +++ b/framework/src/Volo.Abp.AspNetCore.Components.Web/Volo/Abp/AspNetCore/Components/Web/AbpAspNetCoreComponentsWebModule.cs @@ -2,6 +2,7 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; using Volo.Abp.AspNetCore.Components.DependencyInjection; +using Volo.Abp.AspNetCore.Components.Server; using Volo.Abp.Modularity; using Volo.Abp.UI; @@ -16,5 +17,11 @@ public class AbpAspNetCoreComponentsWebModule : AbpModule public override void ConfigureServices(ServiceConfigurationContext context) { context.Services.Replace(ServiceDescriptor.Transient()); + + var preActions = context.Services.GetPreConfigureActions(); + Configure(options => + { + preActions.Configure(options); + }); } } diff --git a/framework/src/Volo.Abp.AspNetCore.Components.Web/Volo/Abp/AspNetCore/Components/Web/AbpAspNetCoreComponentsWebOptions.cs b/framework/src/Volo.Abp.AspNetCore.Components.Web/Volo/Abp/AspNetCore/Components/Web/AbpAspNetCoreComponentsWebOptions.cs new file mode 100644 index 0000000000..2f5b8ca886 --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Components.Web/Volo/Abp/AspNetCore/Components/Web/AbpAspNetCoreComponentsWebOptions.cs @@ -0,0 +1,11 @@ +namespace Volo.Abp.AspNetCore.Components.Server; + +public class AbpAspNetCoreComponentsWebOptions +{ + public bool IsBlazorWebApp { get; set; } + + public AbpAspNetCoreComponentsWebOptions() + { + IsBlazorWebApp = false; + } +} diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/ComponentsComponentsBundleContributor.cs b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/ComponentsComponentsBundleContributor.cs index 45b06e5484..057220ce4b 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/ComponentsComponentsBundleContributor.cs +++ b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/ComponentsComponentsBundleContributor.cs @@ -13,14 +13,17 @@ public class ComponentsComponentsBundleContributor : IBundleContributor public void AddStyles(BundleContext context) { - context.BundleDefinitions.Insert(0, new BundleDefinition + if (!context.InteractiveAuto) { - Source = "_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/bootstrap/css/bootstrap.min.css" - }); - context.BundleDefinitions.Insert(1, new BundleDefinition - { - Source = "_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/fontawesome/css/all.css" - }); + context.BundleDefinitions.Insert(0, new BundleDefinition + { + Source = "_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/bootstrap/css/bootstrap.min.css" + }); + context.BundleDefinitions.Insert(1, new BundleDefinition + { + Source = "_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/fontawesome/css/all.css" + }); + } context.Add("_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/css/flag-icon.css"); context.Add("_content/Blazorise/blazorise.css"); diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/WebAssemblyComponentBundleManager.cs b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/WebAssemblyComponentBundleManager.cs new file mode 100644 index 0000000000..db3434b1b1 --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/WebAssemblyComponentBundleManager.cs @@ -0,0 +1,19 @@ +using System.Collections.Generic; +using System.Threading.Tasks; +using Volo.Abp.AspNetCore.Components.Web.Theming.Bundling; +using Volo.Abp.DependencyInjection; + +namespace Volo.Abp.AspNetCore.Components.WebAssembly.Theming; + +public class WebAssemblyComponentBundleManager : IComponentBundleManager, ITransientDependency +{ + public virtual Task> GetStyleBundleFilesAsync(string bundleName) + { + return Task.FromResult>(new List()); + } + + public virtual Task> GetScriptBundleFilesAsync(string bundleName) + { + return Task.FromResult>(new List()); + } +} diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Microsoft/Extensions/DependencyInjection/AbpBlazorWebAppServiceCollectionExtensions.cs b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Microsoft/Extensions/DependencyInjection/AbpBlazorWebAppServiceCollectionExtensions.cs new file mode 100644 index 0000000000..fe2acfc13b --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Microsoft/Extensions/DependencyInjection/AbpBlazorWebAppServiceCollectionExtensions.cs @@ -0,0 +1,34 @@ +using JetBrains.Annotations; +using Microsoft.AspNetCore.Components.Authorization; +using Microsoft.Extensions.DependencyInjection.Extensions; +using Volo.Abp; +using Volo.Abp.AspNetCore.Components.WebAssembly.WebApp; +using Volo.Abp.Http.Client.Authentication; +using Volo.Abp.Security.Claims; + +namespace Microsoft.Extensions.DependencyInjection; + +public static class AbpBlazorWebAppServiceCollectionExtensions +{ + public static IServiceCollection AddBlazorWebAppServices([NotNull] this IServiceCollection services) + { + Check.NotNull(services, nameof(services)); + + services.AddSingleton(); + services.Replace(ServiceDescriptor.Transient()); + services.Replace(ServiceDescriptor.Transient()); + + return services; + } + + public static IServiceCollection AddBlazorWebAppTieredServices([NotNull] this IServiceCollection services) + { + Check.NotNull(services, nameof(services)); + + services.AddScoped(); + services.Replace(ServiceDescriptor.Singleton()); + services.Replace(ServiceDescriptor.Transient()); + + return services; + } +} diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/ClientProxyExceptionEventHandler.cs b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/ClientProxyExceptionEventHandler.cs index 252012feb5..7a5646ebae 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/ClientProxyExceptionEventHandler.cs +++ b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/ClientProxyExceptionEventHandler.cs @@ -2,6 +2,10 @@ using System; using System.Threading.Tasks; using Microsoft.AspNetCore.Components; using Microsoft.AspNetCore.Components.WebAssembly.Authentication; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Options; +using Microsoft.JSInterop; +using Volo.Abp.AspNetCore.Components.Server; using Volo.Abp.DependencyInjection; using Volo.Abp.EventBus; using Volo.Abp.Http; @@ -10,30 +14,42 @@ namespace Volo.Abp.AspNetCore.Components.WebAssembly; public class ClientProxyExceptionEventHandler : ILocalEventHandler, ITransientDependency { - protected NavigationManager NavigationManager { get; } - protected IAccessTokenProvider AccessTokenProvider { get; } + protected IServiceProvider ServiceProvider { get; } - public ClientProxyExceptionEventHandler(NavigationManager navigationManager, IAccessTokenProvider accessTokenProvider) + public ClientProxyExceptionEventHandler(IServiceProvider serviceProvider) { - NavigationManager = navigationManager; - AccessTokenProvider = accessTokenProvider; + ServiceProvider = serviceProvider; } public virtual async Task HandleEventAsync(ClientProxyExceptionEventData eventData) { if (eventData.StatusCode == 401) { - var result = await AccessTokenProvider.RequestAccessToken(); - if (result.Status != AccessTokenResultStatus.Success) + using (var scope = ServiceProvider.CreateScope()) { - NavigationManager.NavigateToLogout("authentication/logout"); - return; - } + var options = scope.ServiceProvider.GetRequiredService>(); + if (!options.Value.IsBlazorWebApp) + { + var navigationManager = scope.ServiceProvider.GetRequiredService(); + var accessTokenProvider = scope.ServiceProvider.GetRequiredService(); + var result = await accessTokenProvider.RequestAccessToken(); + if (result.Status != AccessTokenResultStatus.Success) + { + navigationManager.NavigateToLogout("authentication/logout"); + return; + } - result.TryGetToken(out var token); - if (token != null && DateTimeOffset.Now >= token.Expires.AddMinutes(-5)) - { - NavigationManager.NavigateToLogout("authentication/logout"); + result.TryGetToken(out var token); + if (token != null && DateTimeOffset.Now >= token.Expires.AddMinutes(-5)) + { + navigationManager.NavigateToLogout("authentication/logout"); + } + } + else + { + var jsRuntime = scope.ServiceProvider.GetRequiredService(); + await jsRuntime.InvokeVoidAsync("eval", "setTimeout(function(){location.assign('/')}, 2000)"); + } } } } diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/WebApp/CookieBasedWebAssemblyAbpAccessTokenProvider.cs b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/WebApp/CookieBasedWebAssemblyAbpAccessTokenProvider.cs new file mode 100644 index 0000000000..b211eabfaf --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/WebApp/CookieBasedWebAssemblyAbpAccessTokenProvider.cs @@ -0,0 +1,12 @@ +using System.Threading.Tasks; +using Volo.Abp.Http.Client.Authentication; + +namespace Volo.Abp.AspNetCore.Components.WebAssembly.WebApp; + +public class CookieBasedWebAssemblyAbpAccessTokenProvider : IAbpAccessTokenProvider +{ + public virtual Task GetTokenAsync() + { + return Task.FromResult(null); + } +} diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/WebApp/PersistentAccessToken.cs b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/WebApp/PersistentAccessToken.cs new file mode 100644 index 0000000000..7d3071b576 --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/WebApp/PersistentAccessToken.cs @@ -0,0 +1,8 @@ +namespace Volo.Abp.AspNetCore.Components.WebAssembly.WebApp; + +public class PersistentAccessToken +{ + public const string Key = "access_token"; + + public string? AccessToken { get; set; } +} diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/WebApp/PersistentComponentStateAbpAccessTokenProvider.cs b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/WebApp/PersistentComponentStateAbpAccessTokenProvider.cs new file mode 100644 index 0000000000..58045b6715 --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/WebApp/PersistentComponentStateAbpAccessTokenProvider.cs @@ -0,0 +1,32 @@ +using System.Threading.Tasks; +using Microsoft.AspNetCore.Components; +using Volo.Abp.Http.Client.Authentication; + +namespace Volo.Abp.AspNetCore.Components.WebAssembly.WebApp; + +public class PersistentComponentStateAbpAccessTokenProvider : IAbpAccessTokenProvider +{ + private string? AccessToken { get; set; } + + private readonly PersistentComponentState _persistentComponentState; + + public PersistentComponentStateAbpAccessTokenProvider(PersistentComponentState persistentComponentState) + { + _persistentComponentState = persistentComponentState; + AccessToken = null; + } + + public virtual Task GetTokenAsync() + { + if (AccessToken != null) + { + return Task.FromResult(AccessToken); + } + + AccessToken = _persistentComponentState.TryTakeFromJson(PersistentAccessToken.Key, out var token) + ? token?.AccessToken + : null; + + return Task.FromResult(AccessToken); + } +} diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/WebApp/RemoteAuthenticationStateProvider.cs b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/WebApp/RemoteAuthenticationStateProvider.cs new file mode 100644 index 0000000000..b35960f071 --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/WebApp/RemoteAuthenticationStateProvider.cs @@ -0,0 +1,30 @@ +using System.Threading.Tasks; +using Microsoft.AspNetCore.Components.Authorization; +using Volo.Abp.Security.Claims; + +namespace Volo.Abp.AspNetCore.Components.WebAssembly.WebApp; + +public class RemoteAuthenticationStateProvider : AuthenticationStateProvider +{ + protected ICurrentPrincipalAccessor CurrentPrincipalAccessor { get; } + protected WebAssemblyCachedApplicationConfigurationClient WebAssemblyCachedApplicationConfigurationClient { get; } + + public RemoteAuthenticationStateProvider( + ICurrentPrincipalAccessor currentPrincipalAccessor, + WebAssemblyCachedApplicationConfigurationClient webAssemblyCachedApplicationConfigurationClient) + { + CurrentPrincipalAccessor = currentPrincipalAccessor; + WebAssemblyCachedApplicationConfigurationClient = webAssemblyCachedApplicationConfigurationClient; + } + + public async override Task GetAuthenticationStateAsync() + { + if (CurrentPrincipalAccessor.Principal.Identity == null || + !CurrentPrincipalAccessor.Principal.Identity.IsAuthenticated) + { + await WebAssemblyCachedApplicationConfigurationClient.InitializeAsync(); + } + + return new AuthenticationState(CurrentPrincipalAccessor.Principal); + } +} diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/WebApp/RemoteCurrentPrincipalAccessor.cs b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/WebApp/RemoteCurrentPrincipalAccessor.cs new file mode 100644 index 0000000000..6667785ad2 --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/WebApp/RemoteCurrentPrincipalAccessor.cs @@ -0,0 +1,89 @@ +using System.Collections.Generic; +using System.Security.Claims; +using Volo.Abp.DependencyInjection; +using Volo.Abp.Security.Claims; + +namespace Volo.Abp.AspNetCore.Components.WebAssembly.WebApp; + +public class RemoteCurrentPrincipalAccessor : CurrentPrincipalAccessorBase, ITransientDependency +{ + protected ApplicationConfigurationCache ApplicationConfigurationCache { get; } + + public RemoteCurrentPrincipalAccessor(ApplicationConfigurationCache applicationConfigurationCache) + { + ApplicationConfigurationCache = applicationConfigurationCache; + } + + protected override ClaimsPrincipal GetClaimsPrincipal() + { + var applicationConfiguration = ApplicationConfigurationCache.Get(); + if (applicationConfiguration == null || !applicationConfiguration.CurrentUser.IsAuthenticated) + { + return new ClaimsPrincipal(new ClaimsIdentity()); + } + + var claims = new List() + { + new Claim(AbpClaimTypes.UserId, applicationConfiguration.CurrentUser.Id.ToString()!), + }; + + if (applicationConfiguration.CurrentUser.TenantId != null) + { + claims.Add(new Claim(AbpClaimTypes.TenantId, applicationConfiguration.CurrentUser.TenantId.ToString()!)); + } + if (applicationConfiguration.CurrentUser.ImpersonatorUserId != null) + { + claims.Add(new Claim(AbpClaimTypes.ImpersonatorUserId, applicationConfiguration.CurrentUser.ImpersonatorUserId.ToString()!)); + } + if (applicationConfiguration.CurrentUser.ImpersonatorTenantId != null) + { + claims.Add(new Claim(AbpClaimTypes.ImpersonatorTenantId, applicationConfiguration.CurrentUser.ImpersonatorTenantId.ToString()!)); + } + if (applicationConfiguration.CurrentUser.ImpersonatorUserName != null) + { + claims.Add(new Claim(AbpClaimTypes.ImpersonatorUserName, applicationConfiguration.CurrentUser.ImpersonatorUserName)); + } + if (applicationConfiguration.CurrentUser.ImpersonatorTenantName != null) + { + claims.Add(new Claim(AbpClaimTypes.ImpersonatorTenantName, applicationConfiguration.CurrentUser.ImpersonatorTenantName)); + } + if (applicationConfiguration.CurrentUser.UserName != null) + { + claims.Add(new Claim(AbpClaimTypes.UserName, applicationConfiguration.CurrentUser.UserName)); + } + if (applicationConfiguration.CurrentUser.Name != null) + { + claims.Add(new Claim(AbpClaimTypes.Name, applicationConfiguration.CurrentUser.Name)); + } + if (applicationConfiguration.CurrentUser.SurName != null) + { + claims.Add(new Claim(AbpClaimTypes.SurName, applicationConfiguration.CurrentUser.SurName)); + } + if (applicationConfiguration.CurrentUser.Email != null) + { + claims.Add(new Claim(AbpClaimTypes.Email, applicationConfiguration.CurrentUser.Email)); + } + if (applicationConfiguration.CurrentUser.EmailVerified) + { + claims.Add(new Claim(AbpClaimTypes.EmailVerified, applicationConfiguration.CurrentUser.EmailVerified.ToString())); + } + if (applicationConfiguration.CurrentUser.PhoneNumber != null) + { + claims.Add(new Claim(AbpClaimTypes.PhoneNumber, applicationConfiguration.CurrentUser.PhoneNumber)); + } + if (applicationConfiguration.CurrentUser.PhoneNumberVerified) + { + claims.Add(new Claim(AbpClaimTypes.PhoneNumberVerified, applicationConfiguration.CurrentUser.PhoneNumberVerified.ToString())); + } + + if (!applicationConfiguration.CurrentUser.Roles.IsNullOrEmpty()) + { + foreach (var role in applicationConfiguration.CurrentUser.Roles) + { + claims.Add(new Claim(AbpClaimTypes.Role, role)); + } + } + + return new ClaimsPrincipal(new ClaimsIdentity(claims, authenticationType: nameof(RemoteCurrentPrincipalAccessor))); + } +} diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/WebApp/WebAppAdditionalAssembliesHelper.cs b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/WebApp/WebAppAdditionalAssembliesHelper.cs new file mode 100644 index 0000000000..63b7649770 --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/WebApp/WebAppAdditionalAssembliesHelper.cs @@ -0,0 +1,18 @@ +using System.Linq; +using System.Reflection; +using Volo.Abp.Modularity; + +namespace Volo.Abp.AspNetCore.Components.WebAssembly.WebApp; + +public static class WebAppAdditionalAssembliesHelper +{ + public static Assembly[] GetAssemblies() + where TModule : IAbpModule + { + return AbpModuleHelper.FindAllModuleTypes(typeof(TModule), null) + .Where(t => t.Name.Contains("Blazor") || t.Name.Contains("WebAssembly")) + .Select(t => t.Assembly) + .Distinct() + .ToArray(); + } +} diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/WebAssemblyCachedApplicationConfigurationClient.cs b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/WebAssemblyCachedApplicationConfigurationClient.cs index 79a2dacd9a..1a0b7c741b 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/WebAssemblyCachedApplicationConfigurationClient.cs +++ b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/WebAssemblyCachedApplicationConfigurationClient.cs @@ -1,5 +1,4 @@ using System.Threading.Tasks; -using Microsoft.AspNetCore.Components.Authorization; using Volo.Abp.AspNetCore.Components.Web.Security; using Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations; using Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ClientProxies; @@ -21,22 +20,18 @@ public class WebAssemblyCachedApplicationConfigurationClient : ICachedApplicatio protected ApplicationConfigurationChangedService ApplicationConfigurationChangedService { get; } - protected AuthenticationStateProvider AuthenticationStateProvider { get; } - public WebAssemblyCachedApplicationConfigurationClient( AbpApplicationConfigurationClientProxy applicationConfigurationClientProxy, ApplicationConfigurationCache cache, ICurrentTenantAccessor currentTenantAccessor, AbpApplicationLocalizationClientProxy applicationLocalizationClientProxy, - ApplicationConfigurationChangedService applicationConfigurationChangedService, - AuthenticationStateProvider authenticationStateProvider) + ApplicationConfigurationChangedService applicationConfigurationChangedService) { ApplicationConfigurationClientProxy = applicationConfigurationClientProxy; Cache = cache; CurrentTenantAccessor = currentTenantAccessor; ApplicationLocalizationClientProxy = applicationLocalizationClientProxy; ApplicationConfigurationChangedService = applicationConfigurationChangedService; - AuthenticationStateProvider = authenticationStateProvider; } public virtual async Task InitializeAsync() diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpInputTagHelperService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpInputTagHelperService.cs index 37343b72ed..e9cbd0a997 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpInputTagHelperService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpInputTagHelperService.cs @@ -54,19 +54,22 @@ public class AbpInputTagHelperService : AbpTagHelperService output.TagMode = TagMode.StartTagAndEndTag; output.TagName = "div"; LeaveOnlyGroupAttributes(context, output); - if (TagHelper.FloatingLabel && !isCheckBox) + if (!IsOutputHidden(output)) { - output.Attributes.AddClass("form-floating"); - } - if (TagHelper.AddMarginBottomClass) - { - output.Attributes.AddClass(isCheckBox ? "mb-2" : "mb-3"); - } - if (isCheckBox) - { - output.Attributes.AddClass("custom-checkbox"); - output.Attributes.AddClass("custom-control"); - output.Attributes.AddClass("form-check"); + if (TagHelper.FloatingLabel && !isCheckBox) + { + output.Attributes.AddClass("form-floating"); + } + if (TagHelper.AddMarginBottomClass) + { + output.Attributes.AddClass(isCheckBox ? "mb-2" : "mb-3"); + } + if (isCheckBox) + { + output.Attributes.AddClass("custom-checkbox"); + output.Attributes.AddClass("custom-control"); + output.Attributes.AddClass("form-check"); + } } output.Content.AppendHtml(innerHtml); } @@ -263,7 +266,7 @@ public class AbpInputTagHelperService : AbpTagHelperService } protected virtual async Task GetLabelAsHtmlAsync(TagHelperContext context, TagHelperOutput output, TagHelperOutput inputTag, bool isCheckbox) - { + { if (IsOutputHidden(inputTag) || TagHelper.SuppressLabel) { return string.Empty; diff --git a/framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/Middleware/AbpMiddlewareBase.cs b/framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/Middleware/AbpMiddlewareBase.cs index 52c9990a4f..06c5e6f46a 100644 --- a/framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/Middleware/AbpMiddlewareBase.cs +++ b/framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/Middleware/AbpMiddlewareBase.cs @@ -7,7 +7,7 @@ namespace Volo.Abp.AspNetCore.Middleware; public abstract class AbpMiddlewareBase : IMiddleware { - protected Task ShouldSkipAsync(HttpContext context, RequestDelegate next) + protected virtual Task ShouldSkipAsync(HttpContext context, RequestDelegate next) { var endpoint = context.GetEndpoint(); var controllerActionDescriptor = endpoint?.Metadata.GetMetadata(); diff --git a/framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/Uow/AbpUnitOfWorkMiddleware.cs b/framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/Uow/AbpUnitOfWorkMiddleware.cs index 013b3dad98..a3c98978f0 100644 --- a/framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/Uow/AbpUnitOfWorkMiddleware.cs +++ b/framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/Uow/AbpUnitOfWorkMiddleware.cs @@ -1,6 +1,7 @@ using System; using System.Linq; using System.Threading.Tasks; +using Microsoft.AspNetCore.Components.Endpoints; using Microsoft.AspNetCore.Http; using Microsoft.Extensions.Options; using Volo.Abp.AspNetCore.Middleware; @@ -42,4 +43,18 @@ public class AbpUnitOfWorkMiddleware : AbpMiddlewareBase, ITransientDependency return context.Request.Path.Value != null && _options.IgnoredUrls.Any(x => context.Request.Path.Value.StartsWith(x, StringComparison.OrdinalIgnoreCase)); } + + protected async override Task ShouldSkipAsync(HttpContext context, RequestDelegate next) + { + // Blazor components will render concurrently, so we need to skip the middleware for them. + // Otherwise, We will get the following exception: + // A second operation started on this context before a previous operation completed. + // This is usually caused by different threads using the same instance of DbContext. + if (context.GetEndpoint()?.Metadata?.GetMetadata() != null) + { + return true; + } + + return await base.ShouldSkipAsync(context, next); + } } diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Bundling/BundleConfig.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Bundling/BundleConfig.cs index f7eea16167..3986d232aa 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Bundling/BundleConfig.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Bundling/BundleConfig.cs @@ -1,11 +1,16 @@ -using System.Collections.Generic; -using Volo.Abp.Bundling; +using Volo.Abp.Bundling; namespace Volo.Abp.Cli.Bundling; public class BundleConfig { + public bool IsBlazorWebApp { get; set; } = false; + + public bool InteractiveAuto { get; set; } = false; + public BundlingMode Mode { get; set; } = BundlingMode.BundleAndMinify; + public string Name { get; set; } = "global"; + public BundleParameterDictionary Parameters { get; set; } = new(); } diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Bundling/BundlingService.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Bundling/BundlingService.cs index c535ed51b0..e387c47ebd 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Bundling/BundlingService.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Bundling/BundlingService.cs @@ -32,7 +32,7 @@ public class BundlingService : IBundlingService, ITransientDependency public async Task BundleAsync(string directory, bool forceBuild, string projectType = BundlingConsts.WebAssembly) { - if(RuntimeInformation.IsOSPlatform(OSPlatform.OSX) && projectType == BundlingConsts.MauiBlazor) + if(RuntimeInformation.IsOSPlatform(OSPlatform.OSX) && projectType == BundlingConsts.MauiBlazor) { Logger.LogWarning("ABP bundle command does not support OSX for MAUI Blazor"); return; @@ -59,7 +59,7 @@ public class BundlingService : IBundlingService, ITransientDependency new DotNetProjectInfo(string.Empty, projectFilePath, true) }; - DotNetProjectBuilder.BuildProjects(projects, string.Empty); + DotNetProjectBuilder.BuildProjects(projects, string.Empty); } var frameworkVersion = GetTargetFrameworkVersion(projectFilePath, projectType); @@ -71,8 +71,8 @@ public class BundlingService : IBundlingService, ITransientDependency FindBundleContributorsRecursively(startupModule, 0, bundleDefinitions); bundleDefinitions = bundleDefinitions.OrderByDescending(t => t.Level).ToList(); - var styleContext = GetStyleContext(bundleDefinitions, bundleConfig.Parameters); - var scriptContext = GetScriptContext(bundleDefinitions, bundleConfig.Parameters, projectType); + var styleContext = GetStyleContext(bundleDefinitions, bundleConfig); + var scriptContext = GetScriptContext(bundleDefinitions, bundleConfig, projectType); string styleDefinitions; string scriptDefinitions; @@ -104,25 +104,40 @@ public class BundlingService : IBundlingService, ITransientDependency scriptDefinitions = GenerateScriptDefinitions(scriptContext); } - await UpdateDependenciesInHtmlFileAsync(directory, styleDefinitions, scriptDefinitions); - Logger.LogInformation("Script and style references in the index.html file have been updated."); + if (!bundleConfig.InteractiveAuto) + { + string fileName; + if (bundleConfig.IsBlazorWebApp) + { + var projectDirectory = Path.GetDirectoryName(directory); + fileName = Directory.GetFiles(projectDirectory!, "App.razor", SearchOption.AllDirectories).FirstOrDefault(); + } + else + { + fileName = Path.Combine(PathHelper.GetWwwRootPath(directory), "index.html"); + } + + await UpdateDependenciesInBlazorFileAsync(fileName, styleDefinitions, scriptDefinitions); + + Logger.LogInformation($"Script and style references in the {fileName} file have been updated."); + } } - private BundleContext GetScriptContext(List bundleDefinitions, - BundleParameterDictionary parameters, string projectType) + private BundleContext GetScriptContext(List bundleDefinitions, BundleConfig bundleConfig, string projectType) { var scriptContext = new BundleContext { - Parameters = parameters + Parameters = bundleConfig.Parameters, + InteractiveAuto = bundleConfig.InteractiveAuto }; - if (projectType == BundlingConsts.WebAssembly) + if (projectType == BundlingConsts.WebAssembly && !bundleConfig.IsBlazorWebApp) { scriptContext.BundleDefinitions.AddIfNotContains( - x => x.Source == "_framework/blazor.webassembly.js", + x => x.Source == "_framework/blazor.webassembly.js", () => new BundleDefinition { Source = "_framework/blazor.webassembly.js" }); } - + foreach (var bundleDefinition in bundleDefinitions) { var contributor = CreateContributorInstance(bundleDefinition.BundleContributorType); @@ -132,12 +147,12 @@ public class BundlingService : IBundlingService, ITransientDependency return scriptContext; } - private BundleContext GetStyleContext(List bundleDefinitions, - BundleParameterDictionary parameters) + private BundleContext GetStyleContext(List bundleDefinitions, BundleConfig bundleConfig) { var styleContext = new BundleContext { - Parameters = parameters + Parameters = bundleConfig.Parameters, + InteractiveAuto = bundleConfig.InteractiveAuto }; foreach (var bundleDefinition in bundleDefinitions) @@ -149,18 +164,16 @@ public class BundlingService : IBundlingService, ITransientDependency return styleContext; } - private async Task UpdateDependenciesInHtmlFileAsync(string directory, string styleDefinitions, - string scriptDefinitions) + private async Task UpdateDependenciesInBlazorFileAsync(string fileName, string styleDefinitions, string scriptDefinitions) { - var htmlFilePath = Path.Combine(PathHelper.GetWwwRootPath(directory), "index.html"); - if (!File.Exists(htmlFilePath)) + if (!File.Exists(fileName)) { - throw new BundlingException($"index.html file could not be found in the following path:{htmlFilePath}"); + throw new BundlingException($"{fileName} file could not be found."); } Encoding fileEncoding; string content; - using (var reader = new StreamReader(htmlFilePath, true)) + using (var reader = new StreamReader(fileName, true)) { fileEncoding = reader.CurrentEncoding; content = await reader.ReadToEndAsync(); @@ -171,7 +184,7 @@ public class BundlingService : IBundlingService, ITransientDependency content = UpdatePlaceholders(content, BundlingConsts.ScriptPlaceholderStart, BundlingConsts.ScriptPlaceholderEnd, scriptDefinitions); - using (var writer = new StreamWriter(htmlFilePath, false, fileEncoding)) + using (var writer = new StreamWriter(fileName, false, fileEncoding)) { await writer.WriteAsync(content); await writer.FlushAsync(); @@ -312,7 +325,7 @@ public class BundlingService : IBundlingService, ITransientDependency document.Load(projectFilePath); var sdk = document.DocumentElement.GetAttribute("Sdk"); - + switch (projectType) { case BundlingConsts.WebAssembly: diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/ProjectCreationCommandBase.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/ProjectCreationCommandBase.cs index b433926c67..f64ffee7e3 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/ProjectCreationCommandBase.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/ProjectCreationCommandBase.cs @@ -43,7 +43,7 @@ public abstract class ProjectCreationCommandBase public ThemePackageAdder ThemePackageAdder { get; } public AngularThemeConfigurer AngularThemeConfigurer { get; } - + public CliVersionService CliVersionService { get; } public ProjectCreationCommandBase( @@ -436,15 +436,14 @@ public abstract class ProjectCreationCommandBase var isModuleTemplate = ModuleTemplateBase.IsModuleTemplate(projectArgs.TemplateName); var isWebassembly = projectArgs.UiFramework == UiFramework.Blazor; - - var message = isWebassembly || isModuleTemplate - ? "Generating bundles for Blazor Wasm" + var message = isWebassembly || isModuleTemplate + ? "Generating bundles for Blazor Wasm" : "Generating bundles for MAUI Blazor"; - + var projectType = isWebassembly || isModuleTemplate - ? BundlingConsts.WebAssembly + ? BundlingConsts.WebAssembly : BundlingConsts.MauiBlazor; - + Logger.LogInformation(message + "..."); await EventBus.PublishAsync(new ProjectCreationProgressEvent @@ -454,11 +453,19 @@ public abstract class ProjectCreationCommandBase var searchPattern = isWebassembly ? "*.Blazor.csproj" : "*.MauiBlazor.csproj"; var path = projectArgs.OutputFolder; - + if (isWebassembly && Directory.GetFiles(path, "*.Blazor.Client.csproj", SearchOption.AllDirectories).Any()) + { + searchPattern = "*.Blazor.Client.csproj"; + } + if (isModuleTemplate) { path = Path.Combine(path, "host"); searchPattern = "*.Blazor.Host.csproj"; + if (Directory.GetFiles(path, "*.Blazor.Host.Client.csproj", SearchOption.AllDirectories).Any()) + { + searchPattern = "*.Blazor.Host.Client.csproj"; + } } else if (MicroserviceTemplateBase.IsMicroserviceTemplate(projectArgs.TemplateName)) { @@ -471,7 +478,7 @@ public abstract class ProjectCreationCommandBase await _bundlingService.BundleAsync(directory, true, projectType); } - + protected virtual bool ShouldRunBundleCommand(ProjectBuildArgs projectArgs) { if ((AppTemplateBase.IsAppTemplate(projectArgs.TemplateName) || AppNoLayersTemplateBase.IsAppNoLayersTemplate(projectArgs.TemplateName)) @@ -669,6 +676,8 @@ public abstract class ProjectCreationCommandBase return UiFramework.Blazor; case "blazor-server": return UiFramework.BlazorServer; + case "blazor-webapp": + return UiFramework.BlazorWebApp; case "maui-blazor" when template == AppProTemplate.TemplateName: return UiFramework.MauiBlazor; default: diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/AbpIoSourceCodeStore.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/AbpIoSourceCodeStore.cs index 3a37880d07..acdfa29bb0 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/AbpIoSourceCodeStore.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/AbpIoSourceCodeStore.cs @@ -158,16 +158,10 @@ public class AbpIoSourceCodeStore : ISourceCodeStore, ITransientDependency throw new Exception("There is no version found with given version: " + version); } - var nugetVersion = await GetTemplateNugetVersionAsync(name, type, version) ?? version; + var nugetVersion = version; - if (!string.IsNullOrWhiteSpace(templateSource) && !IsNetworkSource(templateSource)) - { - Logger.LogInformation("Using local " + type + ": " + name + ", version: " + version); - return new TemplateFile(File.ReadAllBytes(Path.Combine(templateSource, name + "-" + version + ".zip")), - version, latestVersion, nugetVersion); - } - var localCacheFile = Path.Combine(CliPaths.TemplateCache, name.Replace("/", ".") + "-" + version + ".zip"); + var localCacheFile = Path.Combine(CliPaths.TemplateCache, name.Replace("/", ".") + ".zip"); #if DEBUG if (File.Exists(localCacheFile)) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/ChangePublicAuthPortStep.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/ChangePublicAuthPortStep.cs index 8e7aceab6a..2c7dd56959 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/ChangePublicAuthPortStep.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/ChangePublicAuthPortStep.cs @@ -9,7 +9,7 @@ public class ChangePublicAuthPortStep : ProjectBuildPipelineStep var publicAppSettings = context.Files .FirstOrDefault(f => f.Name.Contains("MyCompanyName.MyProjectName.Web.Public") && f.Name.EndsWith("appsettings.json")); - if (context.BuildArgs.UiFramework == UiFramework.BlazorServer) + if (context.BuildArgs.UiFramework == UiFramework.BlazorServer || context.BuildArgs.UiFramework == UiFramework.BlazorWebApp) { publicAppSettings?.SetContent(publicAppSettings.Content.Replace("localhost:44303", "localhost:44313")); } diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/ChangeThemeStep.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/ChangeThemeStep.cs index 4a88ada34a..aea344dc48 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/ChangeThemeStep.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/ChangeThemeStep.cs @@ -14,7 +14,7 @@ public class ChangeThemeStep : ProjectBuildPipelineStep private const string LeptonXLite = "LeptonXLite"; private const string LeptonX = "LeptonX"; private const string Lepton = "Lepton"; - + public override void Execute(ProjectBuildContext context) { if (!context.BuildArgs.Theme.HasValue) @@ -41,6 +41,7 @@ public class ChangeThemeStep : ProjectBuildPipelineStep ChangeThemeToBasicForMvcProjects(context, defaultThemeName); ChangeThemeToBasicForBlazorProjects(context, defaultThemeName); ChangeThemeToBasicForBlazorServerProjects(context, defaultThemeName); + ChangeThemeToBasicForBlazorWebAppProjects(context, defaultThemeName); ChangeThemeForAngularProjects(context, defaultThemeName, Basic, GetAngularPackageName(context.BuildArgs.Theme!.Value), GetAngularPackageName(Theme.Basic)); } @@ -53,13 +54,14 @@ public class ChangeThemeStep : ProjectBuildPipelineStep ChangeThemeToLeptonForMvcProjects(context); ChangeThemeToLeptonForBlazorProjects(context); ChangeThemeToLeptonForBlazorServerProjects(context); + ChangeThemeToLeptonForBlazorWebAppProjects(context); ChangeThemeForAngularProjects(context, oldThemeName: LeptonX, Lepton, GetAngularPackageName(Theme.LeptonX), GetAngularPackageName(Theme.Lepton)); ConfigureLeptonManagementPackagesForNoLayersMvc(context, "/MyCompanyName.MyProjectName.Mvc/MyCompanyName.MyProjectName.csproj", new[] { "Web", "HttpApi", "Application" }); ChangeThemeToLeptonForNoLayersBlazorServerProjects(context); ChangeThemeToLeptonForMauiBlazorProjects(context); } - + private static string GetAngularPackageName(Theme theme) { return theme switch @@ -71,41 +73,76 @@ public class ChangeThemeStep : ProjectBuildPipelineStep _ => string.Empty }; } - + private static void ChangeThemeToBasicForBlazorProjects(ProjectBuildContext context, string defaultThemeName) { ReplacePackageReferenceWithProjectReference( context, - "/MyCompanyName.MyProjectName.Blazor/MyCompanyName.MyProjectName.Blazor.csproj", + "MyCompanyName.MyProjectName.Blazor.csproj", $"Volo.Abp.AspNetCore.Components.WebAssembly.{defaultThemeName}Theme", @"..\..\..\..\..\modules\basic-theme\src\Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme\Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme.csproj" ); - + + ReplacePackageReferenceWithProjectReference( + context, + "MyCompanyName.MyProjectName.Blazor.Client.csproj", + $"Volo.Abp.AspNetCore.Components.WebAssembly.{defaultThemeName}Theme", + @"..\..\..\..\..\modules\basic-theme\src\Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme\Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme.csproj" + ); + ReplaceAllKeywords( context, - "/MyCompanyName.MyProjectName.Blazor/MyProjectNameBlazorModule.cs", + "MyProjectNameBlazorModule.cs", $"{defaultThemeName}Theme.Components", "BasicTheme.Themes.Basic" ); - + ReplaceAllKeywords( context, - "/MyCompanyName.MyProjectName.Blazor/MyProjectNameBlazorModule.cs", + "MyProjectNameBlazorClientModule.cs", + $"{defaultThemeName}Theme.Components", + "BasicTheme.Themes.Basic" + ); + + ReplaceAllKeywords( + context, + "MyProjectNameBlazorModule.cs", + defaultThemeName, + Basic + ); + + ReplaceAllKeywords( + context, + "MyProjectNameBlazorClientModule.cs", + defaultThemeName, + Basic + ); + + ReplaceAllKeywords( + context, + "Routes.razor", defaultThemeName, Basic ); - + + ReplaceAllKeywords( + context, + "App.razor", + defaultThemeName, + Basic + ); + ReplacePackageReferenceWithProjectReference( context, - "/MyCompanyName.MyProjectName.Host/MyCompanyName.MyProjectName.Host.csproj", + "MyCompanyName.MyProjectName.Host.csproj", $"Volo.Abp.AspNetCore.Mvc.UI.Theme.{defaultThemeName}", @"..\..\..\..\..\modules\basic-theme\src\Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic\Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.csproj" ); ReplaceAllKeywords( context, - "/MyCompanyName.MyProjectName.Host/MyProjectNameHostModule.cs", - defaultThemeName, + "MyProjectNameHostModule.cs", + defaultThemeName, Basic ); } @@ -116,20 +153,20 @@ public class ChangeThemeStep : ProjectBuildPipelineStep { return; } - + ReplaceImportPackage( context, "/angular/src/app/app.module.ts", oldPackageName, newPackageName ); - + RemoveLinesByStatement( context, "/angular/src/app/app.module.ts", "SideMenuLayoutModule" ); - + ReplaceAllKeywords( context, "/angular/src/app/app.module.ts", @@ -166,7 +203,7 @@ public class ChangeThemeStep : ProjectBuildPipelineStep "Volo.Abp.AspNetCore.Components.WebAssembly.LeptonXTheme", @"..\..\..\..\..\lepton-theme\src\Volo.Abp.AspNetCore.Components.WebAssembly.LeptonTheme\Volo.Abp.AspNetCore.Components.WebAssembly.LeptonTheme.csproj" ); - + ReplaceAllKeywords( context, "/MyCompanyName.MyProjectName.Blazor/MyProjectNameBlazorModule.cs", @@ -180,7 +217,7 @@ public class ChangeThemeStep : ProjectBuildPipelineStep "Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonX", @"..\..\..\..\..\lepton-theme\src\Volo.Abp.AspNetCore.Mvc.UI.Theme.Lepton\Volo.Abp.AspNetCore.Mvc.UI.Theme.Lepton.csproj" ); - + ReplaceAllKeywords( context, "/MyCompanyName.MyProjectName.Host/MyProjectNameHostModule.cs", @@ -239,7 +276,7 @@ public class ChangeThemeStep : ProjectBuildPipelineStep "Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonX", @"..\..\..\..\..\lepton-theme\src\Volo.Abp.AspNetCore.Mvc.UI.Theme.Lepton\Volo.Abp.AspNetCore.Mvc.UI.Theme.Lepton.csproj" ); - + ReplaceAllKeywords( context, moduleFile.Name, @@ -310,6 +347,9 @@ public class ChangeThemeStep : ProjectBuildPipelineStep case UiFramework.BlazorServer: projects["Blazor.Server"] = "MyCompanyName.MyProjectName.Blazor.csproj"; break; + case UiFramework.BlazorWebApp: + projects["Blazor.WebApp"] = "MyCompanyName.MyProjectName.Blazor.csproj"; + break; } } @@ -385,7 +425,7 @@ public class ChangeThemeStep : ProjectBuildPipelineStep } file.NormalizeLineEndings(); - + var lines = file.GetLines(); var lineIndex = lines.FindIndex(line => line.Contains($"from '{oldImportPackage}'")); if (lineIndex == -1) @@ -447,7 +487,7 @@ public class ChangeThemeStep : ProjectBuildPipelineStep file.SetLines(lines.Where(x => x != null)); } - + private static void AddProjectReference(FileEntry file, string reference) { if (!file.Name.Contains(".csproj")) @@ -558,7 +598,7 @@ public class ChangeThemeStep : ProjectBuildPipelineStep { continue;; } - + lines[i] = lines[i].Replace(oldKeyword, newKeyword); } @@ -619,35 +659,96 @@ public class ChangeThemeStep : ProjectBuildPipelineStep { ReplacePackageReferenceWithProjectReference( context, - $"/MyCompanyName.MyProjectName{project.Key}/MyCompanyName.MyProjectName{project.Key}.csproj", + $"MyCompanyName.MyProjectName{project.Key}.csproj", $"Volo.Abp.AspNetCore.Components.Server.{defaultThemeName}", @"..\..\..\..\..\modules\basic-theme\src\Volo.Abp.AspNetCore.Components.Server.BasicTheme\Volo.Abp.AspNetCore.Components.Server.BasicTheme.csproj" ); ReplacePackageReferenceWithProjectReference( context, - $"/MyCompanyName.MyProjectName{project.Key}/MyCompanyName.MyProjectName{project.Key}.csproj", + $"MyCompanyName.MyProjectName{project.Key}.csproj", $"Volo.Abp.AspNetCore.Mvc.UI.Theme.{defaultThemeName}", @"..\..\..\..\..\modules\basic-theme\src\Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic\Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.csproj" ); - + ReplaceAllKeywords( context, - $"/Pages/_Host.cshtml", + $"_Host.cshtml", $"{defaultThemeName}Theme.Components", Basic ); - + ReplaceAllKeywords( context, $"/MyCompanyName.MyProjectName{project.Key}/{project.Value}.cs", defaultThemeName, Basic + "Theme" ); - + ReplaceAllKeywords( context, - $"/Pages/_Host.cshtml", + $"_Host.cshtml", + defaultThemeName, + Basic + ); + + ReplaceAllKeywords( + context, + "Routes.razor", + defaultThemeName, + Basic + ); + + ReplaceAllKeywords( + context, + "App.razor", + defaultThemeName, + Basic + ); + } + } + + private static void ChangeThemeToBasicForBlazorWebAppProjects(ProjectBuildContext context, string defaultThemeName) + { + var projects = new Dictionary + { + {".Blazor.WebApp", "MyProjectNameBlazorModule"}, + {".Blazor.WebApp.Client", "MyProjectNameBlazorClientModule"} + }; + + foreach (var project in projects) + { + ReplacePackageReferenceWithProjectReference( + context, + $"MyCompanyName.MyProjectName{project.Key}.csproj", + $"Volo.Abp.AspNetCore.Components.Server.{defaultThemeName}", + @"..\..\..\..\..\modules\basic-theme\src\Volo.Abp.AspNetCore.Components.Server.BasicTheme\Volo.Abp.AspNetCore.Components.Server.BasicTheme.csproj" + ); + + ReplacePackageReferenceWithProjectReference( + context, + $"MyCompanyName.MyProjectName{project.Key}.csproj", + $"Volo.Abp.AspNetCore.Mvc.UI.Theme.{defaultThemeName}", + @"..\..\..\..\..\modules\basic-theme\src\Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic\Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.csproj" + ); + + ReplaceAllKeywords( + context, + $"{project.Value}.cs", + defaultThemeName, + Basic + "Theme" + ); + + ReplaceAllKeywords( + context, + "Routes.razor", + defaultThemeName, + Basic + ); + + ReplaceAllKeywords( + context, + "App.razor", defaultThemeName, Basic ); @@ -657,7 +758,7 @@ public class ChangeThemeStep : ProjectBuildPipelineStep private static void ChangeThemeToLeptonForBlazorServerProjects(ProjectBuildContext context) { var projectNames = new[] { "Blazor", "Blazor.Server.Tiered" }; - + foreach (var projectName in projectNames) { ReplacePackageReferenceWithProjectReference( @@ -673,14 +774,14 @@ public class ChangeThemeStep : ProjectBuildPipelineStep "Volo.Abp.AspNetCore.Components.Server.LeptonXTheme", @"..\..\..\..\..\lepton-theme\src\Volo.Abp.AspNetCore.Components.Server.LeptonTheme\Volo.Abp.AspNetCore.Components.Server.LeptonTheme.csproj" ); - + ReplaceAllKeywords( context, $"/MyCompanyName.MyProjectName.{projectName}/MyProjectNameBlazorModule.cs", LeptonX, Lepton ); - + ReplaceAllKeywords( context, $"/Pages/_Host.cshtml", @@ -696,11 +797,73 @@ public class ChangeThemeStep : ProjectBuildPipelineStep } } + private static void ChangeThemeToLeptonForBlazorWebAppProjects(ProjectBuildContext context) + { + var projectNames = new[] { "Blazor.WebApp", "Blazor.WebApp.Client", "Blazor.WebApp.Tiered", "Blazor.WebApp.Tiered.Client" }; + + foreach (var projectName in projectNames) + { + ReplacePackageReferenceWithProjectReference( + context, + $"MyCompanyName.MyProjectName.{projectName}.csproj", + "Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonX", + @"..\..\..\..\..\lepton-theme\src\Volo.Abp.AspNetCore.Mvc.UI.Theme.Lepton\Volo.Abp.AspNetCore.Mvc.UI.Theme.Lepton.csproj" + ); + + ReplacePackageReferenceWithProjectReference( + context, + $"MyCompanyName.MyProjectName.{projectName}.csproj", + "Volo.Abp.AspNetCore.Components.Server.LeptonXTheme", + @"..\..\..\..\..\lepton-theme\src\Volo.Abp.AspNetCore.Components.Server.LeptonTheme\Volo.Abp.AspNetCore.Components.Server.LeptonTheme.csproj" + ); + + ReplaceAllKeywords( + context, + $"MyProjectNameBlazorModule.cs", + LeptonX, + Lepton + ); + + ReplaceAllKeywords( + context, + $"MyProjectNameBlazorClientModule.cs", + LeptonX, + Lepton + ); + + ReplaceAllKeywords( + context, + "Routes.razor", + LeptonX, + Lepton + ); + + ReplaceAllKeywords( + context, + "App.razor", + LeptonX, + Lepton + ); + + RemoveLinesByStatement( + context, + $"MyProjectNameBlazorModule.cs", + "Volo.Abp.LeptonX.Shared;" + ); + + RemoveLinesByStatement( + context, + $"MyProjectNameBlazorClientModule.cs", + "Volo.Abp.LeptonX.Shared;" + ); + } + } + private static void ChangeThemeToLeptonForNoLayersBlazorServerProjects(ProjectBuildContext context) { var blazorServerProjects = new[] { "Blazor.Server", "HttpApi", "Application" }; var projectNames = new[] { "Blazor.Server", "Blazor.Server.Mongo" }; - + foreach (var projectName in projectNames) { ReplacePackageReferenceWithProjectReference( @@ -722,14 +885,14 @@ public class ChangeThemeStep : ProjectBuildPipelineStep $@"/MyCompanyName.MyProjectName.{projectName}/MyCompanyName.MyProjectName.{projectName}.csproj", blazorServerProjects ); - + ReplaceAllKeywords( context, $"/MyCompanyName.MyProjectName.{projectName}/MyProjectNameModule.cs", LeptonX, Lepton ); - + ReplaceAllKeywords( context, $"/Pages/_Host.cshtml", @@ -747,7 +910,7 @@ public class ChangeThemeStep : ProjectBuildPipelineStep "Volo.Abp.AspNetCore.Components.MauiBlazor.LeptonXTheme", @"..\..\..\..\..\lepton-theme\src\Volo.Abp.AspNetCore.Components.MauiBlazor.LeptonTheme\Volo.Abp.AspNetCore.Components.MauiBlazor.LeptonTheme.csproj" ); - + ReplaceAllKeywords( context, "/MyCompanyName.MyProjectName.MauiBlazor/MainPage.xaml", diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/TemplateProjectBuildPipelineBuilder.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/TemplateProjectBuildPipelineBuilder.cs index ad0bd7dea4..bfdb5ed300 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/TemplateProjectBuildPipelineBuilder.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/TemplateProjectBuildPipelineBuilder.cs @@ -50,7 +50,7 @@ public static class TemplateProjectBuildPipelineBuilder pipeline.Steps.Add(new AppModuleDatabaseManagementSystemChangeStep()); // todo: move to custom steps? } - if ((context.BuildArgs.UiFramework == UiFramework.Mvc || context.BuildArgs.UiFramework == UiFramework.Blazor || context.BuildArgs.UiFramework == UiFramework.BlazorServer) + if ((context.BuildArgs.UiFramework == UiFramework.Mvc || context.BuildArgs.UiFramework == UiFramework.Blazor || context.BuildArgs.UiFramework == UiFramework.BlazorServer || context.BuildArgs.UiFramework == UiFramework.BlazorWebApp) && context.BuildArgs.MobileApp == MobileApp.None && context.Template.Name != MicroserviceProTemplate.TemplateName && context.Template.Name != MicroserviceServiceProTemplate.TemplateName) { diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/UiFramework.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/UiFramework.cs index 5b1ebb56f4..ae8c2b4a07 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/UiFramework.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/UiFramework.cs @@ -8,5 +8,6 @@ public enum UiFramework Angular = 3, Blazor = 4, BlazorServer = 5, - MauiBlazor = 6 + MauiBlazor = 6, + BlazorWebApp = 7 } diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/UiFrameworkExtensions.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/UiFrameworkExtensions.cs index 2f7a4ad85f..cb592444e6 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/UiFrameworkExtensions.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/UiFrameworkExtensions.cs @@ -11,6 +11,7 @@ public static class UiFrameworkExtensions case UiFramework.Angular: return "angular"; case UiFramework.Blazor: return "blazor"; case UiFramework.BlazorServer: return "blazor-server"; + case UiFramework.BlazorWebApp: return "blazor-webapp"; case UiFramework.NotSpecified: return "NotSpecified"; default: return "NotSpecified"; } diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppNoLayersTemplateBase.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppNoLayersTemplateBase.cs index ab146d6abe..6ce94eaaae 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppNoLayersTemplateBase.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppNoLayersTemplateBase.cs @@ -89,6 +89,7 @@ public abstract class AppNoLayersTemplateBase : TemplateInfo break; case UiFramework.Blazor: + case UiFramework.BlazorWebApp: context.Symbols.Add("ui:blazor"); steps.Add(new RemoveFolderStep("/angular")); steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Mvc")); diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs index 95c1b27353..77da8469a7 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs @@ -6,7 +6,6 @@ using Volo.Abp.Cli.Commands; using Volo.Abp.Cli.ProjectBuilding.Building; using Volo.Abp.Cli.ProjectBuilding.Building.Steps; using Volo.Abp.Cli.ProjectBuilding.Templates.Maui; -using Volo.Abp.Cli.ProjectBuilding.Templates.Microservice; namespace Volo.Abp.Cli.ProjectBuilding.Templates.App; @@ -116,6 +115,26 @@ public abstract class AppTemplateBase : TemplateInfo protected void DeleteUnrelatedProjects(ProjectBuildContext context, List steps) { + if (context.BuildArgs.UiFramework != UiFramework.Blazor) + { + steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor")); + steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor.Client")); + } + + if (context.BuildArgs.UiFramework != UiFramework.BlazorServer) + { + steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor.Server")); + steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor.Server.Tiered")); + } + + if (context.BuildArgs.UiFramework != UiFramework.BlazorWebApp) + { + steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor.WebApp")); + steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor.WebApp.Client")); + steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor.WebApp.Tiered")); + steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor.WebApp.Tiered.Client")); + } + switch (context.BuildArgs.UiFramework) { case UiFramework.None: @@ -134,6 +153,10 @@ public abstract class AppTemplateBase : TemplateInfo ConfigureWithBlazorServerUi(context, steps); break; + case UiFramework.BlazorWebApp: + ConfigureWithBlazorWebAppUi(context, steps); + break; + case UiFramework.MauiBlazor: ConfigureWithMauiBlazorUi(context, steps); break; @@ -144,17 +167,6 @@ public abstract class AppTemplateBase : TemplateInfo break; } - if (context.BuildArgs.UiFramework != UiFramework.Blazor && context.BuildArgs.UiFramework != UiFramework.BlazorServer) - { - steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor")); - } - - if (context.BuildArgs.UiFramework != UiFramework.BlazorServer) - { - steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor.Server")); - steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor.Server.Tiered")); - } - if (context.BuildArgs.UiFramework != UiFramework.MauiBlazor) { steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.MauiBlazor")); @@ -321,7 +333,7 @@ public abstract class AppTemplateBase : TemplateInfo steps.Add(new ReplaceDependencyFromPackageJsonFileStep(packageJsonFilePath, mvcUiPackageName, newMvcUiPackageName, version)); } - if (uiFramework == UiFramework.BlazorServer) + if (uiFramework == UiFramework.BlazorServer || uiFramework == UiFramework.BlazorWebApp) { var blazorServerUiPackageName = isProTemplate ? "@volo/aspnetcore.components.server.leptonxtheme" : "@abp/aspnetcore.components.server.leptonxlitetheme"; var newBlazorServerUiPackageName = theme switch @@ -531,6 +543,38 @@ public abstract class AppTemplateBase : TemplateInfo } } + protected void ConfigureWithBlazorWebAppUi(ProjectBuildContext context, List steps) + { + context.Symbols.Add("ui:blazor-webapp"); + + steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor")); + steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor.Client")); + steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Web")); + steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Web.Host")); + steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Web.Tests", projectFolderPath: "/aspnet-core/test/MyCompanyName.MyProjectName.Web.Tests")); + steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.HttpApi.HostWithIds")); + + if (context.BuildArgs.ExtraProperties.ContainsKey("tiered")) + { + steps.Add(new TemplateProjectRenameStep("MyCompanyName.MyProjectName.Blazor.WebApp.Tiered", "MyCompanyName.MyProjectName.Blazor")); + steps.Add(new TemplateProjectRenameStep("MyCompanyName.MyProjectName.Blazor.WebApp.Tiered.Client", "MyCompanyName.MyProjectName.Blazor.Client")); + steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor.WebApp")); + steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor.WebApp.Client")); + steps.Add(new AppTemplateChangeDbMigratorPortSettingsStep("44300")); + } + else + { + steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor.WebApp.Tiered")); + steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor.WebApp.Tiered.Client")); + steps.Add(new TemplateProjectRenameStep("MyCompanyName.MyProjectName.Blazor.WebApp", "MyCompanyName.MyProjectName.Blazor")); + steps.Add(new TemplateProjectRenameStep("MyCompanyName.MyProjectName.Blazor.WebApp.Client", "MyCompanyName.MyProjectName.Blazor.Client")); + steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.IdentityServer")); + steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.HttpApi.Host")); + steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.AuthServer")); + steps.Add(new AppTemplateChangeConsoleTestClientPortSettingsStep("44313")); + } + } + protected void ConfigureWithMvcUi(ProjectBuildContext context, List steps) { context.Symbols.Add("ui:mvc"); @@ -722,6 +766,7 @@ public abstract class AppTemplateBase : TemplateInfo if ((context.BuildArgs.UiFramework == UiFramework.Mvc || context.BuildArgs.UiFramework == UiFramework.Blazor || context.BuildArgs.UiFramework == UiFramework.BlazorServer + || context.BuildArgs.UiFramework == UiFramework.BlazorWebApp || context.BuildArgs.UiFramework == UiFramework.MauiBlazor) && context.BuildArgs.MobileApp == MobileApp.None) { @@ -756,6 +801,7 @@ public abstract class AppTemplateBase : TemplateInfo steps.Add(new MoveFileStep("/aspnet-core/etc/docker/docker-compose.Blazor.yml", "/aspnet-core/etc/docker/docker-compose.yml")); break; case UiFramework.BlazorServer: + case UiFramework.BlazorWebApp: steps.Add(new RemoveFileStep("/aspnet-core/etc/docker/docker-compose.Angular.yml")); steps.Add(new RemoveFileStep("/aspnet-core/etc/docker/docker-compose.Mvc.yml")); steps.Add(new RemoveFileStep("/aspnet-core/etc/docker/docker-compose.Blazor.yml")); diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Maui/MauiChangePortStep.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Maui/MauiChangePortStep.cs index 41b9393573..95d7bfdc94 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Maui/MauiChangePortStep.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Maui/MauiChangePortStep.cs @@ -20,7 +20,7 @@ public class MauiChangePortStep : ProjectBuildPipelineStep } var ports = GetPorts(context); - + appsettingsFile.NormalizeLineEndings(); var lines = appsettingsFile.GetLines(); @@ -43,7 +43,7 @@ public class MauiChangePortStep : ProjectBuildPipelineStep appsettingsFile.SetLines(lines); } - + private (string AuthServerPort, string ApiHostPort) GetPorts(ProjectBuildContext context) { var authServerPort = string.Empty; @@ -57,6 +57,7 @@ public class MauiChangePortStep : ProjectBuildPipelineStep authServerPort = "44305"; apiHostPort = "44305"; break; + case UiFramework.BlazorWebApp: case UiFramework.BlazorServer: authServerPort = "44308"; apiHostPort = "44308"; @@ -78,4 +79,4 @@ public class MauiChangePortStep : ProjectBuildPipelineStep return (authServerPort, apiHostPort); } -} \ No newline at end of file +} diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Microservice/MicroserviceTemplateBase.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Microservice/MicroserviceTemplateBase.cs index 66f363b632..a70f1db649 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Microservice/MicroserviceTemplateBase.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Microservice/MicroserviceTemplateBase.cs @@ -80,7 +80,7 @@ public abstract class MicroserviceTemplateBase : TemplateInfo steps.Add(new ReplaceDependencyFromPackageJsonFileStep(packageJsonFilePath, mvcUiPackageName, newMvcUiPackageName, version)); } - if (uiFramework == UiFramework.BlazorServer) + if (uiFramework == UiFramework.BlazorServer || uiFramework == UiFramework.BlazorWebApp) { var blazorServerUiPackageName = "@volo/aspnetcore.components.server.leptonxtheme"; var newBlazorServerUiPackageName = theme switch diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Module/ModuleTemplateBase.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Module/ModuleTemplateBase.cs index 60cf5e7442..c7abdaa167 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Module/ModuleTemplateBase.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Module/ModuleTemplateBase.cs @@ -62,6 +62,11 @@ public abstract class ModuleTemplateBase : TemplateInfo projectFolderPath: "/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Host" )); + steps.Add(new RemoveProjectFromSolutionStep( + "MyCompanyName.MyProjectName.Blazor.Host.Client", + projectFolderPath: "/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Host.Client" + )); + steps.Add(new RemoveProjectFromSolutionStep( "MyCompanyName.MyProjectName.Blazor.Server.Host", projectFolderPath: "/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host" diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ServiceProxying/CSharp/CSharpServiceProxyGenerator.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ServiceProxying/CSharp/CSharpServiceProxyGenerator.cs index c899270ad2..e0dcc14fb1 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ServiceProxying/CSharp/CSharpServiceProxyGenerator.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ServiceProxying/CSharp/CSharpServiceProxyGenerator.cs @@ -553,11 +553,16 @@ public class CSharpServiceProxyGenerator : ServiceProxyGeneratorBase")) + { + type.Append("<"); + } } } else diff --git a/framework/src/Volo.Abp.Core/Volo/Abp/Bundling/BundleContext.cs b/framework/src/Volo.Abp.Core/Volo/Abp/Bundling/BundleContext.cs index ab30160866..bdb13c5ee2 100644 --- a/framework/src/Volo.Abp.Core/Volo/Abp/Bundling/BundleContext.cs +++ b/framework/src/Volo.Abp.Core/Volo/Abp/Bundling/BundleContext.cs @@ -6,6 +6,7 @@ public class BundleContext { public List BundleDefinitions { get; set; } public BundleParameterDictionary Parameters { get; set; } + public bool InteractiveAuto { get; set; } public BundleContext() { diff --git a/framework/src/Volo.Abp.Core/Volo/Abp/Modularity/AbpModuleHelper.cs b/framework/src/Volo.Abp.Core/Volo/Abp/Modularity/AbpModuleHelper.cs index eb72664444..af06d908f0 100644 --- a/framework/src/Volo.Abp.Core/Volo/Abp/Modularity/AbpModuleHelper.cs +++ b/framework/src/Volo.Abp.Core/Volo/Abp/Modularity/AbpModuleHelper.cs @@ -6,12 +6,12 @@ using Microsoft.Extensions.Logging; namespace Volo.Abp.Modularity; -internal static class AbpModuleHelper +public static class AbpModuleHelper { - public static List FindAllModuleTypes(Type startupModuleType, ILogger logger) + public static List FindAllModuleTypes(Type startupModuleType, ILogger? logger) { var moduleTypes = new List(); - logger.Log(LogLevel.Information, "Loaded ABP modules:"); + logger?.Log(LogLevel.Information, "Loaded ABP modules:"); AddModuleAndDependenciesRecursively(moduleTypes, startupModuleType, logger); return moduleTypes; } @@ -36,7 +36,7 @@ internal static class AbpModuleHelper return dependencies; } - + public static Assembly[] GetAllAssemblies(Type moduleType) { var assemblies = new List(); @@ -52,7 +52,7 @@ internal static class AbpModuleHelper assemblies.AddIfNotContains(assembly); } } - + assemblies.Add(moduleType.Assembly); return assemblies.ToArray(); @@ -61,7 +61,7 @@ internal static class AbpModuleHelper private static void AddModuleAndDependenciesRecursively( List moduleTypes, Type moduleType, - ILogger logger, + ILogger? logger, int depth = 0) { AbpModule.CheckAbpModuleType(moduleType); @@ -72,7 +72,7 @@ internal static class AbpModuleHelper } moduleTypes.Add(moduleType); - logger.Log(LogLevel.Information, $"{new string(' ', depth * 2)}- {moduleType.FullName}"); + logger?.Log(LogLevel.Information, $"{new string(' ', depth * 2)}- {moduleType.FullName}"); foreach (var dependedModuleType in FindDependedModuleTypes(moduleType)) { diff --git a/framework/src/Volo.Abp.EntityFrameworkCore.Sqlite/Volo/Abp/EntityFrameworkCore/Sqlite/AbpUnitTestSqliteConnection.cs b/framework/src/Volo.Abp.EntityFrameworkCore.Sqlite/Volo/Abp/EntityFrameworkCore/Sqlite/AbpUnitTestSqliteConnection.cs new file mode 100644 index 0000000000..e3b0dd7e30 --- /dev/null +++ b/framework/src/Volo.Abp.EntityFrameworkCore.Sqlite/Volo/Abp/EntityFrameworkCore/Sqlite/AbpUnitTestSqliteConnection.cs @@ -0,0 +1,52 @@ +using System.Threading; +using Microsoft.Data.Sqlite; +using Volo.Abp.Threading; + +namespace Volo.Abp.EntityFrameworkCore.Sqlite; + +/// +/// This class is for unit testing purposes. +/// It prevents exceptions in concurrent testing because Sqlite is not thread-safe. +/// +public class AbpUnitTestSqliteConnection : SqliteConnection +{ + public AbpUnitTestSqliteConnection(string connectionString) + : base(connectionString) + { + } + + public override SqliteCommand CreateCommand() + { + return new AbpSqliteCommand + { + Connection = this, + CommandTimeout = DefaultTimeout, + Transaction = Transaction + }; + } +} + +internal class AbpSqliteCommand : SqliteCommand +{ + private readonly static SemaphoreSlim Semaphore = new SemaphoreSlim(1, 1); + + public override SqliteConnection? Connection + { + get => base.Connection; + set + { + using (Semaphore.Lock()) + { + base.Connection = value; + } + } + } + + protected override void Dispose(bool disposing) + { + using (Semaphore.Lock()) + { + base.Dispose(disposing); + } + } +} diff --git a/framework/src/Volo.Abp.Json.SystemTextJson/Volo/Abp/Json/SystemTextJson/JsonConverters/AbpStringToEnumConverter.cs b/framework/src/Volo.Abp.Json.SystemTextJson/Volo/Abp/Json/SystemTextJson/JsonConverters/AbpStringToEnumConverter.cs index 9b20a4aa09..ac6208f47b 100644 --- a/framework/src/Volo.Abp.Json.SystemTextJson/Volo/Abp/Json/SystemTextJson/JsonConverters/AbpStringToEnumConverter.cs +++ b/framework/src/Volo.Abp.Json.SystemTextJson/Volo/Abp/Json/SystemTextJson/JsonConverters/AbpStringToEnumConverter.cs @@ -11,6 +11,8 @@ public class AbpStringToEnumConverter : JsonConverter private JsonSerializerOptions? _readJsonSerializerOptions; + private JsonSerializerOptions? _writeJsonSerializerOptions; + public AbpStringToEnumConverter() : this(namingPolicy: null, allowIntegerValues: true) { @@ -39,7 +41,11 @@ public class AbpStringToEnumConverter : JsonConverter public override void Write(Utf8JsonWriter writer, T value, JsonSerializerOptions options) { - JsonSerializer.Serialize(writer, value); + _writeJsonSerializerOptions ??= JsonSerializerOptionsHelper.Create(options, x => + x == this || + x.GetType() == typeof(AbpStringToEnumFactory)); + + JsonSerializer.Serialize(writer, value, _writeJsonSerializerOptions); } public override T ReadAsPropertyName(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) diff --git a/framework/test/Volo.Abp.Auditing.Tests/Volo/Abp/Auditing/AbpAuditingTestModule.cs b/framework/test/Volo.Abp.Auditing.Tests/Volo/Abp/Auditing/AbpAuditingTestModule.cs index 3a21cfaf5a..c753d65d07 100644 --- a/framework/test/Volo.Abp.Auditing.Tests/Volo/Abp/Auditing/AbpAuditingTestModule.cs +++ b/framework/test/Volo.Abp.Auditing.Tests/Volo/Abp/Auditing/AbpAuditingTestModule.cs @@ -62,7 +62,7 @@ public class AbpAuditingTestModule : AbpModule private static SqliteConnection CreateDatabaseAndGetConnection() { - var connection = new SqliteConnection("Data Source=:memory:"); + var connection = new AbpUnitTestSqliteConnection("Data Source=:memory:"); connection.Open(); using (var context = new AbpAuditingTestDbContext(new DbContextOptionsBuilder() diff --git a/framework/test/Volo.Abp.EntityFrameworkCore.Tests/Volo/Abp/EntityFrameworkCore/AbpEntityFrameworkCoreTestModule.cs b/framework/test/Volo.Abp.EntityFrameworkCore.Tests/Volo/Abp/EntityFrameworkCore/AbpEntityFrameworkCoreTestModule.cs index f23ac14fda..7db3130827 100644 --- a/framework/test/Volo.Abp.EntityFrameworkCore.Tests/Volo/Abp/EntityFrameworkCore/AbpEntityFrameworkCoreTestModule.cs +++ b/framework/test/Volo.Abp.EntityFrameworkCore.Tests/Volo/Abp/EntityFrameworkCore/AbpEntityFrameworkCoreTestModule.cs @@ -93,7 +93,7 @@ public class AbpEntityFrameworkCoreTestModule : AbpModule private static SqliteConnection CreateDatabaseAndGetConnection() { - var connection = new SqliteConnection("Data Source=:memory:"); + var connection = new AbpUnitTestSqliteConnection("Data Source=:memory:"); connection.Open(); using (var context = new TestMigrationsDbContext(new DbContextOptionsBuilder().UseSqlite(connection).Options)) diff --git a/framework/test/Volo.Abp.Imaging.Abstractions.Tests/Volo/Abp/Imaging/Files/abp.jpg b/framework/test/Volo.Abp.Imaging.Abstractions.Tests/Volo/Abp/Imaging/Files/abp.jpg index 16415cc706..5bbfa3fff3 100644 Binary files a/framework/test/Volo.Abp.Imaging.Abstractions.Tests/Volo/Abp/Imaging/Files/abp.jpg and b/framework/test/Volo.Abp.Imaging.Abstractions.Tests/Volo/Abp/Imaging/Files/abp.jpg differ diff --git a/framework/test/Volo.Abp.Imaging.Abstractions.Tests/Volo/Abp/Imaging/Files/abp.webp b/framework/test/Volo.Abp.Imaging.Abstractions.Tests/Volo/Abp/Imaging/Files/abp.webp index 377861d583..846a0a3950 100644 Binary files a/framework/test/Volo.Abp.Imaging.Abstractions.Tests/Volo/Abp/Imaging/Files/abp.webp and b/framework/test/Volo.Abp.Imaging.Abstractions.Tests/Volo/Abp/Imaging/Files/abp.webp differ diff --git a/framework/test/Volo.Abp.Json.Tests/Volo/Abp/Json/AbpStringToEnum_Tests.cs b/framework/test/Volo.Abp.Json.Tests/Volo/Abp/Json/AbpStringToEnum_Tests.cs index 8d00afd109..3996ddafe5 100644 --- a/framework/test/Volo.Abp.Json.Tests/Volo/Abp/Json/AbpStringToEnum_Tests.cs +++ b/framework/test/Volo.Abp.Json.Tests/Volo/Abp/Json/AbpStringToEnum_Tests.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Text.Json; +using System.Text.Json.Serialization; using Shouldly; using Volo.Abp.Json.SystemTextJson.JsonConverters; using Xunit; @@ -53,10 +54,26 @@ public class AbpStringToEnum_Tests var testClassJson = JsonSerializer.Serialize(new TestClass() { Day = DayOfWeek.Monday - }); + }, options); testClassJson.ShouldBe("{\"Day\":1}"); + options = new JsonSerializerOptions() + { + Converters = + { + new AbpStringToEnumFactory(), + new JsonStringEnumConverter() + } + }; + + testClassJson = JsonSerializer.Serialize(new TestClass() + { + Day = DayOfWeek.Monday + }, options); + + testClassJson.ShouldBe("{\"Day\":\"Monday\"}"); + testClassJson = JsonSerializer.Serialize(new Dictionary { {DayOfWeek.Monday, "Mo"} diff --git a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/en.json b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/en.json index 183bb5363e..39ca254f67 100644 --- a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/en.json +++ b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/en.json @@ -10,7 +10,7 @@ "UseAnotherServiceToLogin": "Use another service to log in", "UserLockedOutMessage": "The user account has been locked out due to invalid login attempts. Please wait a while and try again.", "InvalidUserNameOrPassword": "Invalid username or password!", - "LoginIsNotAllowed": "You are not allowed to login! Your account is inactive or needs to confirm your email/phone number.", + "LoginIsNotAllowed": "You are not allowed to log in! Your account is inactive or needs to confirm your email/phone number.", "SelfRegistrationDisabledMessage": "Self-registration is disabled for this application. Please contact the application administrator to register a new user.", "LocalLoginDisabledMessage": "Local login is disabled for this application.", "Login": "Login", @@ -35,7 +35,7 @@ "PersonalSettings": "Personal settings", "PersonalSettingsSaved": "Personal settings saved", "PersonalSettingsChangedConfirmationModalTitle": "Personal info changed", - "PersonalSettingsChangedConfirmationModalDescription": "If you want to apply these changes, you have to login. Do you want to log out?", + "PersonalSettingsChangedConfirmationModalDescription": "The changes will be reflected after logging in again. Do you want to log out now?", "PasswordChanged": "Password changed", "NewPasswordConfirmFailed": "Please confirm the new password.", "NewPasswordSameAsOld": "New password must be different from the old one.", @@ -70,4 +70,4 @@ "OrRegisterWith": "Or register with", "RegisterUsingYourProviderAccount": "Register using your {0} account" } -} \ No newline at end of file +} diff --git a/modules/account/src/Volo.Abp.Account.HttpApi/Volo/Abp/Account/AccountController.cs b/modules/account/src/Volo.Abp.Account.HttpApi/Volo/Abp/Account/AccountController.cs index c262c6a4cb..14f3554a14 100644 --- a/modules/account/src/Volo.Abp.Account.HttpApi/Volo/Abp/Account/AccountController.cs +++ b/modules/account/src/Volo.Abp.Account.HttpApi/Volo/Abp/Account/AccountController.cs @@ -33,7 +33,7 @@ public class AccountController : AbpControllerBase, IAccountAppService [HttpPost] [Route("verify-password-reset-token")] - public Task VerifyPasswordResetTokenAsync(VerifyPasswordResetTokenInput input) + public virtual Task VerifyPasswordResetTokenAsync(VerifyPasswordResetTokenInput input) { return AccountAppService.VerifyPasswordResetTokenAsync(input); } diff --git a/modules/account/test/Volo.Abp.Account.Application.Tests/Volo/Abp/Account/AbpAccountApplicationTestModule.cs b/modules/account/test/Volo.Abp.Account.Application.Tests/Volo/Abp/Account/AbpAccountApplicationTestModule.cs index 100087f1fb..2a6c932753 100644 --- a/modules/account/test/Volo.Abp.Account.Application.Tests/Volo/Abp/Account/AbpAccountApplicationTestModule.cs +++ b/modules/account/test/Volo.Abp.Account.Application.Tests/Volo/Abp/Account/AbpAccountApplicationTestModule.cs @@ -44,7 +44,7 @@ public class AbpAccountApplicationTestModule : AbpModule } private static SqliteConnection CreateDatabaseAndGetConnection() { - var connection = new SqliteConnection("Data Source=:memory:"); + var connection = new AbpUnitTestSqliteConnection("Data Source=:memory:"); connection.Open(); new IdentityDbContext( diff --git a/modules/audit-logging/test/Volo.Abp.AuditLogging.EntityFrameworkCore.Tests/Volo/Abp/AuditLogging/EntityFrameworkCore/AbpAuditLoggingEntityFrameworkCoreTestModule.cs b/modules/audit-logging/test/Volo.Abp.AuditLogging.EntityFrameworkCore.Tests/Volo/Abp/AuditLogging/EntityFrameworkCore/AbpAuditLoggingEntityFrameworkCoreTestModule.cs index bb8570d253..42d246625e 100644 --- a/modules/audit-logging/test/Volo.Abp.AuditLogging.EntityFrameworkCore.Tests/Volo/Abp/AuditLogging/EntityFrameworkCore/AbpAuditLoggingEntityFrameworkCoreTestModule.cs +++ b/modules/audit-logging/test/Volo.Abp.AuditLogging.EntityFrameworkCore.Tests/Volo/Abp/AuditLogging/EntityFrameworkCore/AbpAuditLoggingEntityFrameworkCoreTestModule.cs @@ -31,7 +31,7 @@ public class AbpAuditLoggingEntityFrameworkCoreTestModule : AbpModule private static SqliteConnection CreateDatabaseAndGetConnection() { - var connection = new SqliteConnection("Data Source=:memory:"); + var connection = new AbpUnitTestSqliteConnection("Data Source=:memory:"); connection.Open(); new AbpAuditLoggingDbContext( diff --git a/modules/background-jobs/test/Volo.Abp.BackgroundJobs.EntityFrameworkCore.Tests/Volo/Abp/BackgroundJobs/EntityFrameworkCore/AbpBackgroundJobsEntityFrameworkCoreTestModule.cs b/modules/background-jobs/test/Volo.Abp.BackgroundJobs.EntityFrameworkCore.Tests/Volo/Abp/BackgroundJobs/EntityFrameworkCore/AbpBackgroundJobsEntityFrameworkCoreTestModule.cs index a642ddc227..c19016d0d0 100644 --- a/modules/background-jobs/test/Volo.Abp.BackgroundJobs.EntityFrameworkCore.Tests/Volo/Abp/BackgroundJobs/EntityFrameworkCore/AbpBackgroundJobsEntityFrameworkCoreTestModule.cs +++ b/modules/background-jobs/test/Volo.Abp.BackgroundJobs.EntityFrameworkCore.Tests/Volo/Abp/BackgroundJobs/EntityFrameworkCore/AbpBackgroundJobsEntityFrameworkCoreTestModule.cs @@ -31,7 +31,7 @@ public class AbpBackgroundJobsEntityFrameworkCoreTestModule : AbpModule private static SqliteConnection CreateDatabaseAndGetConnection() { - var connection = new SqliteConnection("Data Source=:memory:"); + var connection = new AbpUnitTestSqliteConnection("Data Source=:memory:"); connection.Open(); new BackgroundJobsDbContext( diff --git a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme/AbpAspNetCoreComponentsWebAssemblyBasicThemeModule.cs b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme/AbpAspNetCoreComponentsWebAssemblyBasicThemeModule.cs index a1b179abf3..eb38111b37 100644 --- a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme/AbpAspNetCoreComponentsWebAssemblyBasicThemeModule.cs +++ b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme/AbpAspNetCoreComponentsWebAssemblyBasicThemeModule.cs @@ -1,4 +1,6 @@ -using Volo.Abp.AspNetCore.Components.Web.BasicTheme; +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.AspNetCore.Components.Server; +using Volo.Abp.AspNetCore.Components.Web.BasicTheme; using Volo.Abp.AspNetCore.Components.Web.Theming.Routing; using Volo.Abp.AspNetCore.Components.Web.Theming.Toolbars; using Volo.Abp.AspNetCore.Components.WebAssembly.Theming; @@ -25,5 +27,14 @@ public class AbpAspNetCoreComponentsWebAssemblyBasicThemeModule : AbpModule { options.Contributors.Add(new BasicThemeToolbarContributor()); }); + + if (context.Services.ExecutePreConfiguredActions().IsBlazorWebApp) + { + Configure(options => + { + options.LoginUrl = "Account/Login"; + options.LogoutUrl = "Account/Logout"; + }); + } } } diff --git a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme/AuthenticationOptions.cs b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme/AuthenticationOptions.cs new file mode 100644 index 0000000000..aaa03fed6e --- /dev/null +++ b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme/AuthenticationOptions.cs @@ -0,0 +1,8 @@ +namespace Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme; + +public class AuthenticationOptions +{ + public string LoginUrl { get; set; } = "authentication/login"; + + public string LogoutUrl { get; set; } = "authentication/logout"; +} diff --git a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme/Themes/Basic/LoginDisplay.razor b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme/Themes/Basic/LoginDisplay.razor index 0715560b1c..a8987982ad 100644 --- a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme/Themes/Basic/LoginDisplay.razor +++ b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme/Themes/Basic/LoginDisplay.razor @@ -1,13 +1,13 @@ @using Microsoft.Extensions.Localization -@using Volo.Abp.Users -@using Volo.Abp.MultiTenancy @using global::Localization.Resources.AbpUi +@using Microsoft.Extensions.Options +@using Volo.Abp.AspNetCore.Components.Server @inherits AbpComponentBase -@inject ICurrentUser CurrentUser -@inject ICurrentTenant CurrentTenant @inject IJSRuntime JsRuntime @inject NavigationManager Navigation @inject IStringLocalizer UiLocalizer +@inject IOptions AuthenticationOptions +@inject IOptions AbpAspNetCoreComponentsWebOptions @@ -35,6 +35,6 @@ - @UiLocalizer["Login"] + @UiLocalizer["Login"] diff --git a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme/Themes/Basic/LoginDisplay.razor.cs b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme/Themes/Basic/LoginDisplay.razor.cs index 4312369b2b..08d40e4bfe 100644 --- a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme/Themes/Basic/LoginDisplay.razor.cs +++ b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme/Themes/Basic/LoginDisplay.razor.cs @@ -1,8 +1,6 @@ using System; using System.Threading.Tasks; -using JetBrains.Annotations; using Microsoft.AspNetCore.Components; -using Microsoft.AspNetCore.Components.Authorization; using Microsoft.AspNetCore.Components.Routing; using Microsoft.AspNetCore.Components.WebAssembly.Authentication; using Microsoft.JSInterop; @@ -61,6 +59,13 @@ public partial class LoginDisplay : IDisposable private void BeginSignOut() { - Navigation.NavigateToLogout("authentication/logout"); + if (AbpAspNetCoreComponentsWebOptions.Value.IsBlazorWebApp) + { + Navigation.NavigateTo(AuthenticationOptions.Value.LogoutUrl, forceLoad: true); + } + else + { + Navigation.NavigateToLogout(AuthenticationOptions.Value.LogoutUrl); + } } } diff --git a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme/Themes/Basic/WebAssemblyRedirectToLogin.razor b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme/Themes/Basic/WebAssemblyRedirectToLogin.razor index ebae71d62a..71ee368102 100644 --- a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme/Themes/Basic/WebAssemblyRedirectToLogin.razor +++ b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme/Themes/Basic/WebAssemblyRedirectToLogin.razor @@ -1,17 +1,25 @@ @inject NavigationManager Navigation - @using Volo.Abp.DependencyInjection @using Volo.Abp.AspNetCore.Components.Web.BasicTheme.Themes.Basic @using Microsoft.AspNetCore.Components.WebAssembly.Authentication +@using Microsoft.Extensions.Options +@using Volo.Abp.AspNetCore.Components.Server @inherits RedirectToLogin @attribute [ExposeServices(typeof(RedirectToLogin))] @attribute [Dependency(ReplaceServices = true)] +@inject IOptions AuthenticationOptions +@inject IOptions AbpAspNetCoreComponentsWebOptions @code { - protected override void OnInitialized() { - Navigation.NavigateToLogin("authentication/login"); + if (AbpAspNetCoreComponentsWebOptions.Value.IsBlazorWebApp) + { + Navigation.NavigateTo(AuthenticationOptions.Value.LogoutUrl, forceLoad: true); + } + else + { + Navigation.NavigateToLogin(AuthenticationOptions.Value.LoginUrl); + } } - -} \ No newline at end of file +} diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json index f0875fa504..10ff881ce1 100644 --- a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json +++ b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json @@ -3,8 +3,8 @@ "name": "asp.net", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.shared": "~8.1.0-rc.1", - "@abp/prismjs": "~8.1.0-rc.1", - "@abp/highlight.js": "~8.1.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.shared": "~8.1.0-rc.2", + "@abp/prismjs": "~8.1.0-rc.2", + "@abp/highlight.js": "~8.1.0-rc.2" } } diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/favicon.ico/favicon-16x16.png b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/favicon.ico/favicon-16x16.png index 1b6cec7bf1..d2e40e0a3d 100644 Binary files a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/favicon.ico/favicon-16x16.png and b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/favicon.ico/favicon-16x16.png differ diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/favicon.ico/favicon-32x32.png b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/favicon.ico/favicon-32x32.png index 2b3f15dee5..daec194b40 100644 Binary files a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/favicon.ico/favicon-32x32.png and b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/favicon.ico/favicon-32x32.png differ diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/imgs/demo/abp-io-light.png b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/imgs/demo/abp-io-light.png index 6a671a31be..cb03eb80c3 100644 Binary files a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/imgs/demo/abp-io-light.png and b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/imgs/demo/abp-io-light.png differ diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/@fortawesome/fontawesome-free/css/all.css b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/@fortawesome/fontawesome-free/css/all.css index d9ade752d8..1893247a7d 100644 --- a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/@fortawesome/fontawesome-free/css/all.css +++ b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/@fortawesome/fontawesome-free/css/all.css @@ -1,31 +1,39 @@ /*! - * Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com + * Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + * Copyright 2023 Fonticons, Inc. */ +.fa { + font-family: var(--fa-style-family, "Font Awesome 6 Free"); + font-weight: var(--fa-style, 900); } + .fa, +.fa-classic, +.fa-sharp, .fas, +.fa-solid, .far, -.fal, -.fad, -.fab { +.fa-regular, +.fab, +.fa-brands { -moz-osx-font-smoothing: grayscale; -webkit-font-smoothing: antialiased; - display: inline-block; + display: var(--fa-display, inline-block); font-style: normal; font-variant: normal; - text-rendering: auto; - line-height: 1; } - -.fa-lg { - font-size: 1.33333em; - line-height: 0.75em; - vertical-align: -.0667em; } + line-height: 1; + text-rendering: auto; } -.fa-xs { - font-size: .75em; } +.fas, +.fa-classic, +.fa-solid, +.far, +.fa-regular { + font-family: 'Font Awesome 6 Free'; } -.fa-sm { - font-size: .875em; } +.fab, +.fa-brands { + font-family: 'Font Awesome 6 Brands'; } .fa-1x { font-size: 1em; } @@ -57,56 +65,361 @@ .fa-10x { font-size: 10em; } +.fa-2xs { + font-size: 0.625em; + line-height: 0.1em; + vertical-align: 0.225em; } + +.fa-xs { + font-size: 0.75em; + line-height: 0.08333em; + vertical-align: 0.125em; } + +.fa-sm { + font-size: 0.875em; + line-height: 0.07143em; + vertical-align: 0.05357em; } + +.fa-lg { + font-size: 1.25em; + line-height: 0.05em; + vertical-align: -0.075em; } + +.fa-xl { + font-size: 1.5em; + line-height: 0.04167em; + vertical-align: -0.125em; } + +.fa-2xl { + font-size: 2em; + line-height: 0.03125em; + vertical-align: -0.1875em; } + .fa-fw { text-align: center; width: 1.25em; } .fa-ul { list-style-type: none; - margin-left: 2.5em; + margin-left: var(--fa-li-margin, 2.5em); padding-left: 0; } .fa-ul > li { position: relative; } .fa-li { - left: -2em; + left: calc(var(--fa-li-width, 2em) * -1); position: absolute; text-align: center; - width: 2em; + width: var(--fa-li-width, 2em); line-height: inherit; } .fa-border { - border: solid 0.08em #eee; - border-radius: .1em; - padding: .2em .25em .15em; } + border-color: var(--fa-border-color, #eee); + border-radius: var(--fa-border-radius, 0.1em); + border-style: var(--fa-border-style, solid); + border-width: var(--fa-border-width, 0.08em); + padding: var(--fa-border-padding, 0.2em 0.25em 0.15em); } .fa-pull-left { - float: left; } + float: left; + margin-right: var(--fa-pull-margin, 0.3em); } .fa-pull-right { - float: right; } - -.fa.fa-pull-left, -.fas.fa-pull-left, -.far.fa-pull-left, -.fal.fa-pull-left, -.fab.fa-pull-left { - margin-right: .3em; } - -.fa.fa-pull-right, -.fas.fa-pull-right, -.far.fa-pull-right, -.fal.fa-pull-right, -.fab.fa-pull-right { - margin-left: .3em; } + float: right; + margin-left: var(--fa-pull-margin, 0.3em); } + +.fa-beat { + -webkit-animation-name: fa-beat; + animation-name: fa-beat; + -webkit-animation-delay: var(--fa-animation-delay, 0s); + animation-delay: var(--fa-animation-delay, 0s); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out); + animation-timing-function: var(--fa-animation-timing, ease-in-out); } + +.fa-bounce { + -webkit-animation-name: fa-bounce; + animation-name: fa-bounce; + -webkit-animation-delay: var(--fa-animation-delay, 0s); + animation-delay: var(--fa-animation-delay, 0s); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1)); + animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1)); } + +.fa-fade { + -webkit-animation-name: fa-fade; + animation-name: fa-fade; + -webkit-animation-delay: var(--fa-animation-delay, 0s); + animation-delay: var(--fa-animation-delay, 0s); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); + animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); } + +.fa-beat-fade { + -webkit-animation-name: fa-beat-fade; + animation-name: fa-beat-fade; + -webkit-animation-delay: var(--fa-animation-delay, 0s); + animation-delay: var(--fa-animation-delay, 0s); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); + animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); } + +.fa-flip { + -webkit-animation-name: fa-flip; + animation-name: fa-flip; + -webkit-animation-delay: var(--fa-animation-delay, 0s); + animation-delay: var(--fa-animation-delay, 0s); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out); + animation-timing-function: var(--fa-animation-timing, ease-in-out); } + +.fa-shake { + -webkit-animation-name: fa-shake; + animation-name: fa-shake; + -webkit-animation-delay: var(--fa-animation-delay, 0s); + animation-delay: var(--fa-animation-delay, 0s); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, linear); + animation-timing-function: var(--fa-animation-timing, linear); } .fa-spin { - -webkit-animation: fa-spin 2s infinite linear; - animation: fa-spin 2s infinite linear; } + -webkit-animation-name: fa-spin; + animation-name: fa-spin; + -webkit-animation-delay: var(--fa-animation-delay, 0s); + animation-delay: var(--fa-animation-delay, 0s); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 2s); + animation-duration: var(--fa-animation-duration, 2s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, linear); + animation-timing-function: var(--fa-animation-timing, linear); } + +.fa-spin-reverse { + --fa-animation-direction: reverse; } + +.fa-pulse, +.fa-spin-pulse { + -webkit-animation-name: fa-spin; + animation-name: fa-spin; + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, steps(8)); + animation-timing-function: var(--fa-animation-timing, steps(8)); } + +@media (prefers-reduced-motion: reduce) { + .fa-beat, + .fa-bounce, + .fa-fade, + .fa-beat-fade, + .fa-flip, + .fa-pulse, + .fa-shake, + .fa-spin, + .fa-spin-pulse { + -webkit-animation-delay: -1ms; + animation-delay: -1ms; + -webkit-animation-duration: 1ms; + animation-duration: 1ms; + -webkit-animation-iteration-count: 1; + animation-iteration-count: 1; + -webkit-transition-delay: 0s; + transition-delay: 0s; + -webkit-transition-duration: 0s; + transition-duration: 0s; } } + +@-webkit-keyframes fa-beat { + 0%, 90% { + -webkit-transform: scale(1); + transform: scale(1); } + 45% { + -webkit-transform: scale(var(--fa-beat-scale, 1.25)); + transform: scale(var(--fa-beat-scale, 1.25)); } } + +@keyframes fa-beat { + 0%, 90% { + -webkit-transform: scale(1); + transform: scale(1); } + 45% { + -webkit-transform: scale(var(--fa-beat-scale, 1.25)); + transform: scale(var(--fa-beat-scale, 1.25)); } } + +@-webkit-keyframes fa-bounce { + 0% { + -webkit-transform: scale(1, 1) translateY(0); + transform: scale(1, 1) translateY(0); } + 10% { + -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); + transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); } + 30% { + -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); + transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); } + 50% { + -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); + transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); } + 57% { + -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); + transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); } + 64% { + -webkit-transform: scale(1, 1) translateY(0); + transform: scale(1, 1) translateY(0); } + 100% { + -webkit-transform: scale(1, 1) translateY(0); + transform: scale(1, 1) translateY(0); } } + +@keyframes fa-bounce { + 0% { + -webkit-transform: scale(1, 1) translateY(0); + transform: scale(1, 1) translateY(0); } + 10% { + -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); + transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); } + 30% { + -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); + transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); } + 50% { + -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); + transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); } + 57% { + -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); + transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); } + 64% { + -webkit-transform: scale(1, 1) translateY(0); + transform: scale(1, 1) translateY(0); } + 100% { + -webkit-transform: scale(1, 1) translateY(0); + transform: scale(1, 1) translateY(0); } } + +@-webkit-keyframes fa-fade { + 50% { + opacity: var(--fa-fade-opacity, 0.4); } } + +@keyframes fa-fade { + 50% { + opacity: var(--fa-fade-opacity, 0.4); } } + +@-webkit-keyframes fa-beat-fade { + 0%, 100% { + opacity: var(--fa-beat-fade-opacity, 0.4); + -webkit-transform: scale(1); + transform: scale(1); } + 50% { + opacity: 1; + -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125)); + transform: scale(var(--fa-beat-fade-scale, 1.125)); } } + +@keyframes fa-beat-fade { + 0%, 100% { + opacity: var(--fa-beat-fade-opacity, 0.4); + -webkit-transform: scale(1); + transform: scale(1); } + 50% { + opacity: 1; + -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125)); + transform: scale(var(--fa-beat-fade-scale, 1.125)); } } + +@-webkit-keyframes fa-flip { + 50% { + -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); + transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); } } + +@keyframes fa-flip { + 50% { + -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); + transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); } } + +@-webkit-keyframes fa-shake { + 0% { + -webkit-transform: rotate(-15deg); + transform: rotate(-15deg); } + 4% { + -webkit-transform: rotate(15deg); + transform: rotate(15deg); } + 8%, 24% { + -webkit-transform: rotate(-18deg); + transform: rotate(-18deg); } + 12%, 28% { + -webkit-transform: rotate(18deg); + transform: rotate(18deg); } + 16% { + -webkit-transform: rotate(-22deg); + transform: rotate(-22deg); } + 20% { + -webkit-transform: rotate(22deg); + transform: rotate(22deg); } + 32% { + -webkit-transform: rotate(-12deg); + transform: rotate(-12deg); } + 36% { + -webkit-transform: rotate(12deg); + transform: rotate(12deg); } + 40%, 100% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } } -.fa-pulse { - -webkit-animation: fa-spin 1s infinite steps(8); - animation: fa-spin 1s infinite steps(8); } +@keyframes fa-shake { + 0% { + -webkit-transform: rotate(-15deg); + transform: rotate(-15deg); } + 4% { + -webkit-transform: rotate(15deg); + transform: rotate(15deg); } + 8%, 24% { + -webkit-transform: rotate(-18deg); + transform: rotate(-18deg); } + 12%, 28% { + -webkit-transform: rotate(18deg); + transform: rotate(18deg); } + 16% { + -webkit-transform: rotate(-22deg); + transform: rotate(-22deg); } + 20% { + -webkit-transform: rotate(22deg); + transform: rotate(22deg); } + 32% { + -webkit-transform: rotate(-12deg); + transform: rotate(-12deg); } + 36% { + -webkit-transform: rotate(12deg); + transform: rotate(12deg); } + 40%, 100% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } } @-webkit-keyframes fa-spin { 0% { @@ -125,43 +438,33 @@ transform: rotate(360deg); } } .fa-rotate-90 { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)"; -webkit-transform: rotate(90deg); transform: rotate(90deg); } .fa-rotate-180 { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)"; -webkit-transform: rotate(180deg); transform: rotate(180deg); } .fa-rotate-270 { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)"; -webkit-transform: rotate(270deg); transform: rotate(270deg); } .fa-flip-horizontal { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)"; -webkit-transform: scale(-1, 1); transform: scale(-1, 1); } .fa-flip-vertical { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; -webkit-transform: scale(1, -1); transform: scale(1, -1); } -.fa-flip-both, .fa-flip-horizontal.fa-flip-vertical { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; +.fa-flip-both, +.fa-flip-horizontal.fa-flip-vertical { -webkit-transform: scale(-1, -1); transform: scale(-1, -1); } -:root .fa-rotate-90, -:root .fa-rotate-180, -:root .fa-rotate-270, -:root .fa-flip-horizontal, -:root .fa-flip-vertical, -:root .fa-flip-both { - -webkit-filter: none; - filter: none; } +.fa-rotate-by { + -webkit-transform: rotate(var(--fa-rotate-angle, none)); + transform: rotate(var(--fa-rotate-angle, none)); } .fa-stack { display: inline-block; @@ -176,7 +479,8 @@ left: 0; position: absolute; text-align: center; - width: 100%; } + width: 100%; + z-index: var(--fa-stack-z-index, auto); } .fa-stack-1x { line-height: inherit; } @@ -185,4432 +489,7515 @@ font-size: 2em; } .fa-inverse { - color: #fff; } + color: var(--fa-inverse, #fff); } /* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen readers do not read off random characters that represent icons */ -.fa-500px:before { - content: "\f26e"; } -.fa-accessible-icon:before { - content: "\f368"; } +.fa-0::before { + content: "\30"; } -.fa-accusoft:before { - content: "\f369"; } +.fa-1::before { + content: "\31"; } -.fa-acquisitions-incorporated:before { - content: "\f6af"; } +.fa-2::before { + content: "\32"; } -.fa-ad:before { - content: "\f641"; } +.fa-3::before { + content: "\33"; } -.fa-address-book:before { - content: "\f2b9"; } +.fa-4::before { + content: "\34"; } -.fa-address-card:before { - content: "\f2bb"; } +.fa-5::before { + content: "\35"; } -.fa-adjust:before { - content: "\f042"; } +.fa-6::before { + content: "\36"; } -.fa-adn:before { - content: "\f170"; } +.fa-7::before { + content: "\37"; } -.fa-adversal:before { - content: "\f36a"; } +.fa-8::before { + content: "\38"; } -.fa-affiliatetheme:before { - content: "\f36b"; } +.fa-9::before { + content: "\39"; } -.fa-air-freshener:before { - content: "\f5d0"; } +.fa-fill-drip::before { + content: "\f576"; } -.fa-airbnb:before { - content: "\f834"; } +.fa-arrows-to-circle::before { + content: "\e4bd"; } -.fa-algolia:before { - content: "\f36c"; } +.fa-circle-chevron-right::before { + content: "\f138"; } -.fa-align-center:before { - content: "\f037"; } +.fa-chevron-circle-right::before { + content: "\f138"; } -.fa-align-justify:before { - content: "\f039"; } +.fa-at::before { + content: "\40"; } -.fa-align-left:before { - content: "\f036"; } +.fa-trash-can::before { + content: "\f2ed"; } -.fa-align-right:before { - content: "\f038"; } +.fa-trash-alt::before { + content: "\f2ed"; } -.fa-alipay:before { - content: "\f642"; } +.fa-text-height::before { + content: "\f034"; } -.fa-allergies:before { - content: "\f461"; } +.fa-user-xmark::before { + content: "\f235"; } -.fa-amazon:before { - content: "\f270"; } +.fa-user-times::before { + content: "\f235"; } -.fa-amazon-pay:before { - content: "\f42c"; } +.fa-stethoscope::before { + content: "\f0f1"; } -.fa-ambulance:before { - content: "\f0f9"; } +.fa-message::before { + content: "\f27a"; } -.fa-american-sign-language-interpreting:before { - content: "\f2a3"; } +.fa-comment-alt::before { + content: "\f27a"; } -.fa-amilia:before { - content: "\f36d"; } +.fa-info::before { + content: "\f129"; } -.fa-anchor:before { - content: "\f13d"; } +.fa-down-left-and-up-right-to-center::before { + content: "\f422"; } -.fa-android:before { - content: "\f17b"; } +.fa-compress-alt::before { + content: "\f422"; } -.fa-angellist:before { - content: "\f209"; } +.fa-explosion::before { + content: "\e4e9"; } -.fa-angle-double-down:before { - content: "\f103"; } +.fa-file-lines::before { + content: "\f15c"; } -.fa-angle-double-left:before { - content: "\f100"; } +.fa-file-alt::before { + content: "\f15c"; } -.fa-angle-double-right:before { - content: "\f101"; } +.fa-file-text::before { + content: "\f15c"; } -.fa-angle-double-up:before { - content: "\f102"; } +.fa-wave-square::before { + content: "\f83e"; } -.fa-angle-down:before { - content: "\f107"; } +.fa-ring::before { + content: "\f70b"; } -.fa-angle-left:before { - content: "\f104"; } +.fa-building-un::before { + content: "\e4d9"; } -.fa-angle-right:before { - content: "\f105"; } +.fa-dice-three::before { + content: "\f527"; } -.fa-angle-up:before { - content: "\f106"; } +.fa-calendar-days::before { + content: "\f073"; } -.fa-angry:before { - content: "\f556"; } +.fa-calendar-alt::before { + content: "\f073"; } -.fa-angrycreative:before { - content: "\f36e"; } +.fa-anchor-circle-check::before { + content: "\e4aa"; } -.fa-angular:before { - content: "\f420"; } +.fa-building-circle-arrow-right::before { + content: "\e4d1"; } -.fa-ankh:before { - content: "\f644"; } +.fa-volleyball::before { + content: "\f45f"; } -.fa-app-store:before { - content: "\f36f"; } +.fa-volleyball-ball::before { + content: "\f45f"; } -.fa-app-store-ios:before { - content: "\f370"; } +.fa-arrows-up-to-line::before { + content: "\e4c2"; } -.fa-apper:before { - content: "\f371"; } +.fa-sort-down::before { + content: "\f0dd"; } -.fa-apple:before { - content: "\f179"; } +.fa-sort-desc::before { + content: "\f0dd"; } -.fa-apple-alt:before { - content: "\f5d1"; } +.fa-circle-minus::before { + content: "\f056"; } -.fa-apple-pay:before { - content: "\f415"; } +.fa-minus-circle::before { + content: "\f056"; } -.fa-archive:before { - content: "\f187"; } +.fa-door-open::before { + content: "\f52b"; } -.fa-archway:before { - content: "\f557"; } +.fa-right-from-bracket::before { + content: "\f2f5"; } -.fa-arrow-alt-circle-down:before { - content: "\f358"; } +.fa-sign-out-alt::before { + content: "\f2f5"; } -.fa-arrow-alt-circle-left:before { - content: "\f359"; } +.fa-atom::before { + content: "\f5d2"; } -.fa-arrow-alt-circle-right:before { - content: "\f35a"; } +.fa-soap::before { + content: "\e06e"; } -.fa-arrow-alt-circle-up:before { - content: "\f35b"; } +.fa-icons::before { + content: "\f86d"; } -.fa-arrow-circle-down:before { - content: "\f0ab"; } +.fa-heart-music-camera-bolt::before { + content: "\f86d"; } -.fa-arrow-circle-left:before { - content: "\f0a8"; } +.fa-microphone-lines-slash::before { + content: "\f539"; } -.fa-arrow-circle-right:before { - content: "\f0a9"; } +.fa-microphone-alt-slash::before { + content: "\f539"; } -.fa-arrow-circle-up:before { - content: "\f0aa"; } +.fa-bridge-circle-check::before { + content: "\e4c9"; } -.fa-arrow-down:before { - content: "\f063"; } +.fa-pump-medical::before { + content: "\e06a"; } -.fa-arrow-left:before { - content: "\f060"; } +.fa-fingerprint::before { + content: "\f577"; } -.fa-arrow-right:before { - content: "\f061"; } +.fa-hand-point-right::before { + content: "\f0a4"; } -.fa-arrow-up:before { - content: "\f062"; } +.fa-magnifying-glass-location::before { + content: "\f689"; } -.fa-arrows-alt:before { - content: "\f0b2"; } +.fa-search-location::before { + content: "\f689"; } -.fa-arrows-alt-h:before { - content: "\f337"; } +.fa-forward-step::before { + content: "\f051"; } -.fa-arrows-alt-v:before { - content: "\f338"; } +.fa-step-forward::before { + content: "\f051"; } -.fa-artstation:before { - content: "\f77a"; } +.fa-face-smile-beam::before { + content: "\f5b8"; } -.fa-assistive-listening-systems:before { - content: "\f2a2"; } +.fa-smile-beam::before { + content: "\f5b8"; } -.fa-asterisk:before { - content: "\f069"; } +.fa-flag-checkered::before { + content: "\f11e"; } -.fa-asymmetrik:before { - content: "\f372"; } +.fa-football::before { + content: "\f44e"; } -.fa-at:before { - content: "\f1fa"; } +.fa-football-ball::before { + content: "\f44e"; } -.fa-atlas:before { - content: "\f558"; } +.fa-school-circle-exclamation::before { + content: "\e56c"; } -.fa-atlassian:before { - content: "\f77b"; } +.fa-crop::before { + content: "\f125"; } -.fa-atom:before { - content: "\f5d2"; } +.fa-angles-down::before { + content: "\f103"; } -.fa-audible:before { - content: "\f373"; } +.fa-angle-double-down::before { + content: "\f103"; } -.fa-audio-description:before { - content: "\f29e"; } +.fa-users-rectangle::before { + content: "\e594"; } -.fa-autoprefixer:before { - content: "\f41c"; } +.fa-people-roof::before { + content: "\e537"; } -.fa-avianex:before { - content: "\f374"; } +.fa-people-line::before { + content: "\e534"; } -.fa-aviato:before { - content: "\f421"; } +.fa-beer-mug-empty::before { + content: "\f0fc"; } -.fa-award:before { - content: "\f559"; } +.fa-beer::before { + content: "\f0fc"; } -.fa-aws:before { - content: "\f375"; } +.fa-diagram-predecessor::before { + content: "\e477"; } -.fa-baby:before { - content: "\f77c"; } +.fa-arrow-up-long::before { + content: "\f176"; } -.fa-baby-carriage:before { - content: "\f77d"; } +.fa-long-arrow-up::before { + content: "\f176"; } -.fa-backspace:before { - content: "\f55a"; } +.fa-fire-flame-simple::before { + content: "\f46a"; } -.fa-backward:before { - content: "\f04a"; } +.fa-burn::before { + content: "\f46a"; } -.fa-bacon:before { - content: "\f7e5"; } +.fa-person::before { + content: "\f183"; } -.fa-bacteria:before { - content: "\e059"; } +.fa-male::before { + content: "\f183"; } -.fa-bacterium:before { - content: "\e05a"; } +.fa-laptop::before { + content: "\f109"; } -.fa-bahai:before { - content: "\f666"; } +.fa-file-csv::before { + content: "\f6dd"; } -.fa-balance-scale:before { - content: "\f24e"; } +.fa-menorah::before { + content: "\f676"; } -.fa-balance-scale-left:before { - content: "\f515"; } +.fa-truck-plane::before { + content: "\e58f"; } -.fa-balance-scale-right:before { - content: "\f516"; } +.fa-record-vinyl::before { + content: "\f8d9"; } -.fa-ban:before { - content: "\f05e"; } +.fa-face-grin-stars::before { + content: "\f587"; } -.fa-band-aid:before { - content: "\f462"; } +.fa-grin-stars::before { + content: "\f587"; } -.fa-bandcamp:before { - content: "\f2d5"; } +.fa-bong::before { + content: "\f55c"; } -.fa-barcode:before { - content: "\f02a"; } +.fa-spaghetti-monster-flying::before { + content: "\f67b"; } -.fa-bars:before { - content: "\f0c9"; } +.fa-pastafarianism::before { + content: "\f67b"; } -.fa-baseball-ball:before { - content: "\f433"; } +.fa-arrow-down-up-across-line::before { + content: "\e4af"; } -.fa-basketball-ball:before { - content: "\f434"; } +.fa-spoon::before { + content: "\f2e5"; } -.fa-bath:before { - content: "\f2cd"; } +.fa-utensil-spoon::before { + content: "\f2e5"; } -.fa-battery-empty:before { - content: "\f244"; } +.fa-jar-wheat::before { + content: "\e517"; } -.fa-battery-full:before { - content: "\f240"; } +.fa-envelopes-bulk::before { + content: "\f674"; } -.fa-battery-half:before { - content: "\f242"; } +.fa-mail-bulk::before { + content: "\f674"; } -.fa-battery-quarter:before { - content: "\f243"; } +.fa-file-circle-exclamation::before { + content: "\e4eb"; } -.fa-battery-three-quarters:before { - content: "\f241"; } +.fa-circle-h::before { + content: "\f47e"; } -.fa-battle-net:before { - content: "\f835"; } +.fa-hospital-symbol::before { + content: "\f47e"; } -.fa-bed:before { - content: "\f236"; } +.fa-pager::before { + content: "\f815"; } -.fa-beer:before { - content: "\f0fc"; } +.fa-address-book::before { + content: "\f2b9"; } -.fa-behance:before { - content: "\f1b4"; } +.fa-contact-book::before { + content: "\f2b9"; } -.fa-behance-square:before { - content: "\f1b5"; } +.fa-strikethrough::before { + content: "\f0cc"; } -.fa-bell:before { - content: "\f0f3"; } +.fa-k::before { + content: "\4b"; } -.fa-bell-slash:before { - content: "\f1f6"; } +.fa-landmark-flag::before { + content: "\e51c"; } -.fa-bezier-curve:before { - content: "\f55b"; } +.fa-pencil::before { + content: "\f303"; } -.fa-bible:before { - content: "\f647"; } +.fa-pencil-alt::before { + content: "\f303"; } -.fa-bicycle:before { - content: "\f206"; } +.fa-backward::before { + content: "\f04a"; } -.fa-biking:before { - content: "\f84a"; } +.fa-caret-right::before { + content: "\f0da"; } -.fa-bimobject:before { - content: "\f378"; } +.fa-comments::before { + content: "\f086"; } -.fa-binoculars:before { - content: "\f1e5"; } +.fa-paste::before { + content: "\f0ea"; } -.fa-biohazard:before { - content: "\f780"; } +.fa-file-clipboard::before { + content: "\f0ea"; } -.fa-birthday-cake:before { - content: "\f1fd"; } +.fa-code-pull-request::before { + content: "\e13c"; } -.fa-bitbucket:before { - content: "\f171"; } +.fa-clipboard-list::before { + content: "\f46d"; } -.fa-bitcoin:before { - content: "\f379"; } +.fa-truck-ramp-box::before { + content: "\f4de"; } -.fa-bity:before { - content: "\f37a"; } +.fa-truck-loading::before { + content: "\f4de"; } -.fa-black-tie:before { - content: "\f27e"; } +.fa-user-check::before { + content: "\f4fc"; } -.fa-blackberry:before { - content: "\f37b"; } +.fa-vial-virus::before { + content: "\e597"; } -.fa-blender:before { - content: "\f517"; } +.fa-sheet-plastic::before { + content: "\e571"; } -.fa-blender-phone:before { - content: "\f6b6"; } +.fa-blog::before { + content: "\f781"; } -.fa-blind:before { - content: "\f29d"; } +.fa-user-ninja::before { + content: "\f504"; } -.fa-blog:before { - content: "\f781"; } +.fa-person-arrow-up-from-line::before { + content: "\e539"; } -.fa-blogger:before { - content: "\f37c"; } +.fa-scroll-torah::before { + content: "\f6a0"; } -.fa-blogger-b:before { - content: "\f37d"; } +.fa-torah::before { + content: "\f6a0"; } -.fa-bluetooth:before { - content: "\f293"; } +.fa-broom-ball::before { + content: "\f458"; } -.fa-bluetooth-b:before { - content: "\f294"; } +.fa-quidditch::before { + content: "\f458"; } -.fa-bold:before { - content: "\f032"; } +.fa-quidditch-broom-ball::before { + content: "\f458"; } -.fa-bolt:before { - content: "\f0e7"; } +.fa-toggle-off::before { + content: "\f204"; } -.fa-bomb:before { - content: "\f1e2"; } +.fa-box-archive::before { + content: "\f187"; } -.fa-bone:before { - content: "\f5d7"; } +.fa-archive::before { + content: "\f187"; } -.fa-bong:before { - content: "\f55c"; } +.fa-person-drowning::before { + content: "\e545"; } -.fa-book:before { - content: "\f02d"; } +.fa-arrow-down-9-1::before { + content: "\f886"; } -.fa-book-dead:before { - content: "\f6b7"; } +.fa-sort-numeric-desc::before { + content: "\f886"; } -.fa-book-medical:before { - content: "\f7e6"; } +.fa-sort-numeric-down-alt::before { + content: "\f886"; } -.fa-book-open:before { - content: "\f518"; } +.fa-face-grin-tongue-squint::before { + content: "\f58a"; } -.fa-book-reader:before { - content: "\f5da"; } +.fa-grin-tongue-squint::before { + content: "\f58a"; } -.fa-bookmark:before { - content: "\f02e"; } +.fa-spray-can::before { + content: "\f5bd"; } -.fa-bootstrap:before { - content: "\f836"; } +.fa-truck-monster::before { + content: "\f63b"; } -.fa-border-all:before { - content: "\f84c"; } +.fa-w::before { + content: "\57"; } -.fa-border-none:before { - content: "\f850"; } +.fa-earth-africa::before { + content: "\f57c"; } -.fa-border-style:before { - content: "\f853"; } +.fa-globe-africa::before { + content: "\f57c"; } -.fa-bowling-ball:before { - content: "\f436"; } +.fa-rainbow::before { + content: "\f75b"; } -.fa-box:before { - content: "\f466"; } +.fa-circle-notch::before { + content: "\f1ce"; } -.fa-box-open:before { - content: "\f49e"; } +.fa-tablet-screen-button::before { + content: "\f3fa"; } -.fa-box-tissue:before { - content: "\e05b"; } +.fa-tablet-alt::before { + content: "\f3fa"; } -.fa-boxes:before { - content: "\f468"; } +.fa-paw::before { + content: "\f1b0"; } -.fa-braille:before { - content: "\f2a1"; } +.fa-cloud::before { + content: "\f0c2"; } -.fa-brain:before { - content: "\f5dc"; } +.fa-trowel-bricks::before { + content: "\e58a"; } -.fa-bread-slice:before { - content: "\f7ec"; } +.fa-face-flushed::before { + content: "\f579"; } -.fa-briefcase:before { - content: "\f0b1"; } +.fa-flushed::before { + content: "\f579"; } -.fa-briefcase-medical:before { - content: "\f469"; } +.fa-hospital-user::before { + content: "\f80d"; } -.fa-broadcast-tower:before { - content: "\f519"; } +.fa-tent-arrow-left-right::before { + content: "\e57f"; } -.fa-broom:before { - content: "\f51a"; } +.fa-gavel::before { + content: "\f0e3"; } -.fa-brush:before { - content: "\f55d"; } +.fa-legal::before { + content: "\f0e3"; } -.fa-btc:before { - content: "\f15a"; } +.fa-binoculars::before { + content: "\f1e5"; } -.fa-buffer:before { - content: "\f837"; } +.fa-microphone-slash::before { + content: "\f131"; } -.fa-bug:before { - content: "\f188"; } +.fa-box-tissue::before { + content: "\e05b"; } -.fa-building:before { - content: "\f1ad"; } +.fa-motorcycle::before { + content: "\f21c"; } -.fa-bullhorn:before { - content: "\f0a1"; } +.fa-bell-concierge::before { + content: "\f562"; } -.fa-bullseye:before { - content: "\f140"; } +.fa-concierge-bell::before { + content: "\f562"; } -.fa-burn:before { - content: "\f46a"; } +.fa-pen-ruler::before { + content: "\f5ae"; } -.fa-buromobelexperte:before { - content: "\f37f"; } +.fa-pencil-ruler::before { + content: "\f5ae"; } -.fa-bus:before { - content: "\f207"; } +.fa-people-arrows::before { + content: "\e068"; } -.fa-bus-alt:before { - content: "\f55e"; } +.fa-people-arrows-left-right::before { + content: "\e068"; } -.fa-business-time:before { - content: "\f64a"; } +.fa-mars-and-venus-burst::before { + content: "\e523"; } -.fa-buy-n-large:before { - content: "\f8a6"; } +.fa-square-caret-right::before { + content: "\f152"; } -.fa-buysellads:before { - content: "\f20d"; } +.fa-caret-square-right::before { + content: "\f152"; } -.fa-calculator:before { - content: "\f1ec"; } +.fa-scissors::before { + content: "\f0c4"; } -.fa-calendar:before { - content: "\f133"; } +.fa-cut::before { + content: "\f0c4"; } -.fa-calendar-alt:before { - content: "\f073"; } +.fa-sun-plant-wilt::before { + content: "\e57a"; } -.fa-calendar-check:before { - content: "\f274"; } +.fa-toilets-portable::before { + content: "\e584"; } -.fa-calendar-day:before { - content: "\f783"; } +.fa-hockey-puck::before { + content: "\f453"; } -.fa-calendar-minus:before { - content: "\f272"; } +.fa-table::before { + content: "\f0ce"; } -.fa-calendar-plus:before { - content: "\f271"; } +.fa-magnifying-glass-arrow-right::before { + content: "\e521"; } -.fa-calendar-times:before { - content: "\f273"; } +.fa-tachograph-digital::before { + content: "\f566"; } -.fa-calendar-week:before { - content: "\f784"; } +.fa-digital-tachograph::before { + content: "\f566"; } -.fa-camera:before { - content: "\f030"; } +.fa-users-slash::before { + content: "\e073"; } -.fa-camera-retro:before { - content: "\f083"; } +.fa-clover::before { + content: "\e139"; } -.fa-campground:before { - content: "\f6bb"; } +.fa-reply::before { + content: "\f3e5"; } -.fa-canadian-maple-leaf:before { - content: "\f785"; } +.fa-mail-reply::before { + content: "\f3e5"; } -.fa-candy-cane:before { - content: "\f786"; } +.fa-star-and-crescent::before { + content: "\f699"; } -.fa-cannabis:before { - content: "\f55f"; } +.fa-house-fire::before { + content: "\e50c"; } -.fa-capsules:before { - content: "\f46b"; } +.fa-square-minus::before { + content: "\f146"; } -.fa-car:before { - content: "\f1b9"; } +.fa-minus-square::before { + content: "\f146"; } -.fa-car-alt:before { - content: "\f5de"; } +.fa-helicopter::before { + content: "\f533"; } -.fa-car-battery:before { - content: "\f5df"; } +.fa-compass::before { + content: "\f14e"; } -.fa-car-crash:before { - content: "\f5e1"; } +.fa-square-caret-down::before { + content: "\f150"; } -.fa-car-side:before { - content: "\f5e4"; } +.fa-caret-square-down::before { + content: "\f150"; } -.fa-caravan:before { - content: "\f8ff"; } +.fa-file-circle-question::before { + content: "\e4ef"; } -.fa-caret-down:before { - content: "\f0d7"; } +.fa-laptop-code::before { + content: "\f5fc"; } -.fa-caret-left:before { - content: "\f0d9"; } +.fa-swatchbook::before { + content: "\f5c3"; } -.fa-caret-right:before { - content: "\f0da"; } +.fa-prescription-bottle::before { + content: "\f485"; } -.fa-caret-square-down:before { - content: "\f150"; } +.fa-bars::before { + content: "\f0c9"; } -.fa-caret-square-left:before { - content: "\f191"; } +.fa-navicon::before { + content: "\f0c9"; } -.fa-caret-square-right:before { - content: "\f152"; } +.fa-people-group::before { + content: "\e533"; } -.fa-caret-square-up:before { - content: "\f151"; } +.fa-hourglass-end::before { + content: "\f253"; } -.fa-caret-up:before { - content: "\f0d8"; } +.fa-hourglass-3::before { + content: "\f253"; } -.fa-carrot:before { - content: "\f787"; } +.fa-heart-crack::before { + content: "\f7a9"; } -.fa-cart-arrow-down:before { - content: "\f218"; } +.fa-heart-broken::before { + content: "\f7a9"; } -.fa-cart-plus:before { - content: "\f217"; } +.fa-square-up-right::before { + content: "\f360"; } -.fa-cash-register:before { - content: "\f788"; } +.fa-external-link-square-alt::before { + content: "\f360"; } -.fa-cat:before { - content: "\f6be"; } +.fa-face-kiss-beam::before { + content: "\f597"; } -.fa-cc-amazon-pay:before { - content: "\f42d"; } +.fa-kiss-beam::before { + content: "\f597"; } -.fa-cc-amex:before { - content: "\f1f3"; } +.fa-film::before { + content: "\f008"; } -.fa-cc-apple-pay:before { - content: "\f416"; } +.fa-ruler-horizontal::before { + content: "\f547"; } -.fa-cc-diners-club:before { - content: "\f24c"; } +.fa-people-robbery::before { + content: "\e536"; } -.fa-cc-discover:before { - content: "\f1f2"; } +.fa-lightbulb::before { + content: "\f0eb"; } -.fa-cc-jcb:before { - content: "\f24b"; } +.fa-caret-left::before { + content: "\f0d9"; } -.fa-cc-mastercard:before { - content: "\f1f1"; } +.fa-circle-exclamation::before { + content: "\f06a"; } -.fa-cc-paypal:before { - content: "\f1f4"; } +.fa-exclamation-circle::before { + content: "\f06a"; } -.fa-cc-stripe:before { - content: "\f1f5"; } +.fa-school-circle-xmark::before { + content: "\e56d"; } -.fa-cc-visa:before { - content: "\f1f0"; } +.fa-arrow-right-from-bracket::before { + content: "\f08b"; } -.fa-centercode:before { - content: "\f380"; } +.fa-sign-out::before { + content: "\f08b"; } -.fa-centos:before { - content: "\f789"; } +.fa-circle-chevron-down::before { + content: "\f13a"; } -.fa-certificate:before { - content: "\f0a3"; } +.fa-chevron-circle-down::before { + content: "\f13a"; } -.fa-chair:before { - content: "\f6c0"; } +.fa-unlock-keyhole::before { + content: "\f13e"; } -.fa-chalkboard:before { - content: "\f51b"; } +.fa-unlock-alt::before { + content: "\f13e"; } -.fa-chalkboard-teacher:before { - content: "\f51c"; } +.fa-cloud-showers-heavy::before { + content: "\f740"; } -.fa-charging-station:before { - content: "\f5e7"; } +.fa-headphones-simple::before { + content: "\f58f"; } -.fa-chart-area:before { - content: "\f1fe"; } +.fa-headphones-alt::before { + content: "\f58f"; } -.fa-chart-bar:before { - content: "\f080"; } +.fa-sitemap::before { + content: "\f0e8"; } -.fa-chart-line:before { - content: "\f201"; } +.fa-circle-dollar-to-slot::before { + content: "\f4b9"; } -.fa-chart-pie:before { - content: "\f200"; } +.fa-donate::before { + content: "\f4b9"; } -.fa-check:before { - content: "\f00c"; } +.fa-memory::before { + content: "\f538"; } -.fa-check-circle:before { - content: "\f058"; } +.fa-road-spikes::before { + content: "\e568"; } -.fa-check-double:before { - content: "\f560"; } +.fa-fire-burner::before { + content: "\e4f1"; } -.fa-check-square:before { - content: "\f14a"; } +.fa-flag::before { + content: "\f024"; } -.fa-cheese:before { - content: "\f7ef"; } +.fa-hanukiah::before { + content: "\f6e6"; } -.fa-chess:before { - content: "\f439"; } +.fa-feather::before { + content: "\f52d"; } -.fa-chess-bishop:before { - content: "\f43a"; } +.fa-volume-low::before { + content: "\f027"; } -.fa-chess-board:before { - content: "\f43c"; } +.fa-volume-down::before { + content: "\f027"; } -.fa-chess-king:before { - content: "\f43f"; } +.fa-comment-slash::before { + content: "\f4b3"; } -.fa-chess-knight:before { - content: "\f441"; } +.fa-cloud-sun-rain::before { + content: "\f743"; } -.fa-chess-pawn:before { - content: "\f443"; } +.fa-compress::before { + content: "\f066"; } -.fa-chess-queen:before { - content: "\f445"; } +.fa-wheat-awn::before { + content: "\e2cd"; } -.fa-chess-rook:before { - content: "\f447"; } +.fa-wheat-alt::before { + content: "\e2cd"; } -.fa-chevron-circle-down:before { - content: "\f13a"; } +.fa-ankh::before { + content: "\f644"; } -.fa-chevron-circle-left:before { - content: "\f137"; } +.fa-hands-holding-child::before { + content: "\e4fa"; } -.fa-chevron-circle-right:before { - content: "\f138"; } +.fa-asterisk::before { + content: "\2a"; } -.fa-chevron-circle-up:before { - content: "\f139"; } +.fa-square-check::before { + content: "\f14a"; } -.fa-chevron-down:before { - content: "\f078"; } +.fa-check-square::before { + content: "\f14a"; } -.fa-chevron-left:before { - content: "\f053"; } +.fa-peseta-sign::before { + content: "\e221"; } -.fa-chevron-right:before { - content: "\f054"; } +.fa-heading::before { + content: "\f1dc"; } -.fa-chevron-up:before { - content: "\f077"; } +.fa-header::before { + content: "\f1dc"; } -.fa-child:before { - content: "\f1ae"; } +.fa-ghost::before { + content: "\f6e2"; } -.fa-chrome:before { - content: "\f268"; } +.fa-list::before { + content: "\f03a"; } -.fa-chromecast:before { - content: "\f838"; } +.fa-list-squares::before { + content: "\f03a"; } -.fa-church:before { - content: "\f51d"; } +.fa-square-phone-flip::before { + content: "\f87b"; } -.fa-circle:before { - content: "\f111"; } +.fa-phone-square-alt::before { + content: "\f87b"; } -.fa-circle-notch:before { - content: "\f1ce"; } +.fa-cart-plus::before { + content: "\f217"; } -.fa-city:before { - content: "\f64f"; } +.fa-gamepad::before { + content: "\f11b"; } -.fa-clinic-medical:before { - content: "\f7f2"; } +.fa-circle-dot::before { + content: "\f192"; } -.fa-clipboard:before { - content: "\f328"; } +.fa-dot-circle::before { + content: "\f192"; } -.fa-clipboard-check:before { - content: "\f46c"; } +.fa-face-dizzy::before { + content: "\f567"; } -.fa-clipboard-list:before { - content: "\f46d"; } +.fa-dizzy::before { + content: "\f567"; } -.fa-clock:before { - content: "\f017"; } +.fa-egg::before { + content: "\f7fb"; } -.fa-clone:before { - content: "\f24d"; } +.fa-house-medical-circle-xmark::before { + content: "\e513"; } -.fa-closed-captioning:before { - content: "\f20a"; } +.fa-campground::before { + content: "\f6bb"; } -.fa-cloud:before { - content: "\f0c2"; } +.fa-folder-plus::before { + content: "\f65e"; } -.fa-cloud-download-alt:before { - content: "\f381"; } +.fa-futbol::before { + content: "\f1e3"; } -.fa-cloud-meatball:before { - content: "\f73b"; } +.fa-futbol-ball::before { + content: "\f1e3"; } -.fa-cloud-moon:before { - content: "\f6c3"; } +.fa-soccer-ball::before { + content: "\f1e3"; } -.fa-cloud-moon-rain:before { - content: "\f73c"; } +.fa-paintbrush::before { + content: "\f1fc"; } -.fa-cloud-rain:before { - content: "\f73d"; } +.fa-paint-brush::before { + content: "\f1fc"; } -.fa-cloud-showers-heavy:before { - content: "\f740"; } +.fa-lock::before { + content: "\f023"; } -.fa-cloud-sun:before { - content: "\f6c4"; } +.fa-gas-pump::before { + content: "\f52f"; } -.fa-cloud-sun-rain:before { - content: "\f743"; } +.fa-hot-tub-person::before { + content: "\f593"; } -.fa-cloud-upload-alt:before { - content: "\f382"; } +.fa-hot-tub::before { + content: "\f593"; } -.fa-cloudflare:before { - content: "\e07d"; } +.fa-map-location::before { + content: "\f59f"; } -.fa-cloudscale:before { - content: "\f383"; } +.fa-map-marked::before { + content: "\f59f"; } -.fa-cloudsmith:before { - content: "\f384"; } +.fa-house-flood-water::before { + content: "\e50e"; } -.fa-cloudversify:before { - content: "\f385"; } +.fa-tree::before { + content: "\f1bb"; } -.fa-cocktail:before { - content: "\f561"; } +.fa-bridge-lock::before { + content: "\e4cc"; } -.fa-code:before { - content: "\f121"; } +.fa-sack-dollar::before { + content: "\f81d"; } -.fa-code-branch:before { - content: "\f126"; } +.fa-pen-to-square::before { + content: "\f044"; } -.fa-codepen:before { - content: "\f1cb"; } +.fa-edit::before { + content: "\f044"; } -.fa-codiepie:before { - content: "\f284"; } +.fa-car-side::before { + content: "\f5e4"; } -.fa-coffee:before { - content: "\f0f4"; } +.fa-share-nodes::before { + content: "\f1e0"; } -.fa-cog:before { - content: "\f013"; } +.fa-share-alt::before { + content: "\f1e0"; } -.fa-cogs:before { - content: "\f085"; } +.fa-heart-circle-minus::before { + content: "\e4ff"; } -.fa-coins:before { - content: "\f51e"; } +.fa-hourglass-half::before { + content: "\f252"; } -.fa-columns:before { - content: "\f0db"; } +.fa-hourglass-2::before { + content: "\f252"; } -.fa-comment:before { - content: "\f075"; } +.fa-microscope::before { + content: "\f610"; } -.fa-comment-alt:before { - content: "\f27a"; } +.fa-sink::before { + content: "\e06d"; } -.fa-comment-dollar:before { - content: "\f651"; } +.fa-bag-shopping::before { + content: "\f290"; } -.fa-comment-dots:before { - content: "\f4ad"; } +.fa-shopping-bag::before { + content: "\f290"; } -.fa-comment-medical:before { - content: "\f7f5"; } +.fa-arrow-down-z-a::before { + content: "\f881"; } -.fa-comment-slash:before { - content: "\f4b3"; } +.fa-sort-alpha-desc::before { + content: "\f881"; } -.fa-comments:before { - content: "\f086"; } +.fa-sort-alpha-down-alt::before { + content: "\f881"; } -.fa-comments-dollar:before { - content: "\f653"; } +.fa-mitten::before { + content: "\f7b5"; } -.fa-compact-disc:before { - content: "\f51f"; } +.fa-person-rays::before { + content: "\e54d"; } -.fa-compass:before { - content: "\f14e"; } +.fa-users::before { + content: "\f0c0"; } -.fa-compress:before { - content: "\f066"; } +.fa-eye-slash::before { + content: "\f070"; } -.fa-compress-alt:before { - content: "\f422"; } +.fa-flask-vial::before { + content: "\e4f3"; } -.fa-compress-arrows-alt:before { - content: "\f78c"; } +.fa-hand::before { + content: "\f256"; } -.fa-concierge-bell:before { - content: "\f562"; } +.fa-hand-paper::before { + content: "\f256"; } -.fa-confluence:before { - content: "\f78d"; } +.fa-om::before { + content: "\f679"; } -.fa-connectdevelop:before { - content: "\f20e"; } +.fa-worm::before { + content: "\e599"; } -.fa-contao:before { - content: "\f26d"; } +.fa-house-circle-xmark::before { + content: "\e50b"; } -.fa-cookie:before { - content: "\f563"; } +.fa-plug::before { + content: "\f1e6"; } -.fa-cookie-bite:before { - content: "\f564"; } +.fa-chevron-up::before { + content: "\f077"; } -.fa-copy:before { - content: "\f0c5"; } +.fa-hand-spock::before { + content: "\f259"; } -.fa-copyright:before { - content: "\f1f9"; } +.fa-stopwatch::before { + content: "\f2f2"; } -.fa-cotton-bureau:before { - content: "\f89e"; } +.fa-face-kiss::before { + content: "\f596"; } -.fa-couch:before { - content: "\f4b8"; } +.fa-kiss::before { + content: "\f596"; } -.fa-cpanel:before { - content: "\f388"; } +.fa-bridge-circle-xmark::before { + content: "\e4cb"; } -.fa-creative-commons:before { - content: "\f25e"; } +.fa-face-grin-tongue::before { + content: "\f589"; } -.fa-creative-commons-by:before { - content: "\f4e7"; } +.fa-grin-tongue::before { + content: "\f589"; } -.fa-creative-commons-nc:before { - content: "\f4e8"; } +.fa-chess-bishop::before { + content: "\f43a"; } -.fa-creative-commons-nc-eu:before { - content: "\f4e9"; } +.fa-face-grin-wink::before { + content: "\f58c"; } -.fa-creative-commons-nc-jp:before { - content: "\f4ea"; } +.fa-grin-wink::before { + content: "\f58c"; } -.fa-creative-commons-nd:before { - content: "\f4eb"; } +.fa-ear-deaf::before { + content: "\f2a4"; } -.fa-creative-commons-pd:before { - content: "\f4ec"; } +.fa-deaf::before { + content: "\f2a4"; } -.fa-creative-commons-pd-alt:before { - content: "\f4ed"; } +.fa-deafness::before { + content: "\f2a4"; } -.fa-creative-commons-remix:before { - content: "\f4ee"; } +.fa-hard-of-hearing::before { + content: "\f2a4"; } -.fa-creative-commons-sa:before { - content: "\f4ef"; } +.fa-road-circle-check::before { + content: "\e564"; } -.fa-creative-commons-sampling:before { - content: "\f4f0"; } +.fa-dice-five::before { + content: "\f523"; } -.fa-creative-commons-sampling-plus:before { - content: "\f4f1"; } +.fa-square-rss::before { + content: "\f143"; } -.fa-creative-commons-share:before { - content: "\f4f2"; } +.fa-rss-square::before { + content: "\f143"; } -.fa-creative-commons-zero:before { - content: "\f4f3"; } +.fa-land-mine-on::before { + content: "\e51b"; } -.fa-credit-card:before { - content: "\f09d"; } +.fa-i-cursor::before { + content: "\f246"; } -.fa-critical-role:before { - content: "\f6c9"; } +.fa-stamp::before { + content: "\f5bf"; } -.fa-crop:before { - content: "\f125"; } +.fa-stairs::before { + content: "\e289"; } -.fa-crop-alt:before { - content: "\f565"; } +.fa-i::before { + content: "\49"; } -.fa-cross:before { - content: "\f654"; } +.fa-hryvnia-sign::before { + content: "\f6f2"; } -.fa-crosshairs:before { - content: "\f05b"; } +.fa-hryvnia::before { + content: "\f6f2"; } -.fa-crow:before { - content: "\f520"; } +.fa-pills::before { + content: "\f484"; } -.fa-crown:before { - content: "\f521"; } +.fa-face-grin-wide::before { + content: "\f581"; } -.fa-crutch:before { - content: "\f7f7"; } +.fa-grin-alt::before { + content: "\f581"; } -.fa-css3:before { - content: "\f13c"; } +.fa-tooth::before { + content: "\f5c9"; } -.fa-css3-alt:before { - content: "\f38b"; } +.fa-v::before { + content: "\56"; } -.fa-cube:before { - content: "\f1b2"; } +.fa-bangladeshi-taka-sign::before { + content: "\e2e6"; } -.fa-cubes:before { - content: "\f1b3"; } +.fa-bicycle::before { + content: "\f206"; } -.fa-cut:before { - content: "\f0c4"; } +.fa-staff-snake::before { + content: "\e579"; } -.fa-cuttlefish:before { - content: "\f38c"; } +.fa-rod-asclepius::before { + content: "\e579"; } -.fa-d-and-d:before { - content: "\f38d"; } +.fa-rod-snake::before { + content: "\e579"; } -.fa-d-and-d-beyond:before { - content: "\f6ca"; } +.fa-staff-aesculapius::before { + content: "\e579"; } -.fa-dailymotion:before { - content: "\e052"; } +.fa-head-side-cough-slash::before { + content: "\e062"; } -.fa-dashcube:before { - content: "\f210"; } +.fa-truck-medical::before { + content: "\f0f9"; } -.fa-database:before { - content: "\f1c0"; } +.fa-ambulance::before { + content: "\f0f9"; } -.fa-deaf:before { - content: "\f2a4"; } +.fa-wheat-awn-circle-exclamation::before { + content: "\e598"; } -.fa-deezer:before { - content: "\e077"; } +.fa-snowman::before { + content: "\f7d0"; } -.fa-delicious:before { - content: "\f1a5"; } +.fa-mortar-pestle::before { + content: "\f5a7"; } -.fa-democrat:before { - content: "\f747"; } +.fa-road-barrier::before { + content: "\e562"; } -.fa-deploydog:before { - content: "\f38e"; } +.fa-school::before { + content: "\f549"; } -.fa-deskpro:before { - content: "\f38f"; } +.fa-igloo::before { + content: "\f7ae"; } -.fa-desktop:before { - content: "\f108"; } +.fa-joint::before { + content: "\f595"; } -.fa-dev:before { - content: "\f6cc"; } +.fa-angle-right::before { + content: "\f105"; } -.fa-deviantart:before { - content: "\f1bd"; } +.fa-horse::before { + content: "\f6f0"; } -.fa-dharmachakra:before { - content: "\f655"; } +.fa-q::before { + content: "\51"; } -.fa-dhl:before { - content: "\f790"; } +.fa-g::before { + content: "\47"; } -.fa-diagnoses:before { - content: "\f470"; } +.fa-notes-medical::before { + content: "\f481"; } -.fa-diaspora:before { - content: "\f791"; } +.fa-temperature-half::before { + content: "\f2c9"; } -.fa-dice:before { - content: "\f522"; } +.fa-temperature-2::before { + content: "\f2c9"; } -.fa-dice-d20:before { - content: "\f6cf"; } +.fa-thermometer-2::before { + content: "\f2c9"; } -.fa-dice-d6:before { - content: "\f6d1"; } +.fa-thermometer-half::before { + content: "\f2c9"; } -.fa-dice-five:before { - content: "\f523"; } +.fa-dong-sign::before { + content: "\e169"; } -.fa-dice-four:before { - content: "\f524"; } +.fa-capsules::before { + content: "\f46b"; } -.fa-dice-one:before { - content: "\f525"; } +.fa-poo-storm::before { + content: "\f75a"; } -.fa-dice-six:before { - content: "\f526"; } - -.fa-dice-three:before { - content: "\f527"; } - -.fa-dice-two:before { - content: "\f528"; } - -.fa-digg:before { - content: "\f1a6"; } - -.fa-digital-ocean:before { - content: "\f391"; } +.fa-poo-bolt::before { + content: "\f75a"; } -.fa-digital-tachograph:before { - content: "\f566"; } +.fa-face-frown-open::before { + content: "\f57a"; } -.fa-directions:before { - content: "\f5eb"; } +.fa-frown-open::before { + content: "\f57a"; } -.fa-discord:before { - content: "\f392"; } +.fa-hand-point-up::before { + content: "\f0a6"; } -.fa-discourse:before { - content: "\f393"; } +.fa-money-bill::before { + content: "\f0d6"; } -.fa-disease:before { - content: "\f7fa"; } +.fa-bookmark::before { + content: "\f02e"; } -.fa-divide:before { - content: "\f529"; } +.fa-align-justify::before { + content: "\f039"; } -.fa-dizzy:before { - content: "\f567"; } +.fa-umbrella-beach::before { + content: "\f5ca"; } -.fa-dna:before { - content: "\f471"; } +.fa-helmet-un::before { + content: "\e503"; } -.fa-dochub:before { - content: "\f394"; } +.fa-bullseye::before { + content: "\f140"; } -.fa-docker:before { - content: "\f395"; } +.fa-bacon::before { + content: "\f7e5"; } -.fa-dog:before { - content: "\f6d3"; } +.fa-hand-point-down::before { + content: "\f0a7"; } -.fa-dollar-sign:before { - content: "\f155"; } +.fa-arrow-up-from-bracket::before { + content: "\e09a"; } -.fa-dolly:before { - content: "\f472"; } +.fa-folder::before { + content: "\f07b"; } -.fa-dolly-flatbed:before { - content: "\f474"; } +.fa-folder-blank::before { + content: "\f07b"; } -.fa-donate:before { - content: "\f4b9"; } +.fa-file-waveform::before { + content: "\f478"; } -.fa-door-closed:before { - content: "\f52a"; } +.fa-file-medical-alt::before { + content: "\f478"; } -.fa-door-open:before { - content: "\f52b"; } +.fa-radiation::before { + content: "\f7b9"; } -.fa-dot-circle:before { - content: "\f192"; } +.fa-chart-simple::before { + content: "\e473"; } -.fa-dove:before { - content: "\f4ba"; } +.fa-mars-stroke::before { + content: "\f229"; } -.fa-download:before { - content: "\f019"; } +.fa-vial::before { + content: "\f492"; } -.fa-draft2digital:before { - content: "\f396"; } +.fa-gauge::before { + content: "\f624"; } -.fa-drafting-compass:before { - content: "\f568"; } +.fa-dashboard::before { + content: "\f624"; } -.fa-dragon:before { - content: "\f6d5"; } +.fa-gauge-med::before { + content: "\f624"; } -.fa-draw-polygon:before { - content: "\f5ee"; } +.fa-tachometer-alt-average::before { + content: "\f624"; } -.fa-dribbble:before { - content: "\f17d"; } +.fa-wand-magic-sparkles::before { + content: "\e2ca"; } -.fa-dribbble-square:before { - content: "\f397"; } +.fa-magic-wand-sparkles::before { + content: "\e2ca"; } -.fa-dropbox:before { - content: "\f16b"; } +.fa-e::before { + content: "\45"; } -.fa-drum:before { - content: "\f569"; } +.fa-pen-clip::before { + content: "\f305"; } -.fa-drum-steelpan:before { - content: "\f56a"; } +.fa-pen-alt::before { + content: "\f305"; } -.fa-drumstick-bite:before { - content: "\f6d7"; } +.fa-bridge-circle-exclamation::before { + content: "\e4ca"; } -.fa-drupal:before { - content: "\f1a9"; } +.fa-user::before { + content: "\f007"; } -.fa-dumbbell:before { - content: "\f44b"; } +.fa-school-circle-check::before { + content: "\e56b"; } -.fa-dumpster:before { +.fa-dumpster::before { content: "\f793"; } -.fa-dumpster-fire:before { - content: "\f794"; } +.fa-van-shuttle::before { + content: "\f5b6"; } -.fa-dungeon:before { - content: "\f6d9"; } +.fa-shuttle-van::before { + content: "\f5b6"; } -.fa-dyalog:before { - content: "\f399"; } +.fa-building-user::before { + content: "\e4da"; } -.fa-earlybirds:before { - content: "\f39a"; } +.fa-square-caret-left::before { + content: "\f191"; } -.fa-ebay:before { - content: "\f4f4"; } +.fa-caret-square-left::before { + content: "\f191"; } -.fa-edge:before { - content: "\f282"; } +.fa-highlighter::before { + content: "\f591"; } -.fa-edge-legacy:before { - content: "\e078"; } +.fa-key::before { + content: "\f084"; } -.fa-edit:before { - content: "\f044"; } +.fa-bullhorn::before { + content: "\f0a1"; } -.fa-egg:before { - content: "\f7fb"; } +.fa-globe::before { + content: "\f0ac"; } -.fa-eject:before { - content: "\f052"; } +.fa-synagogue::before { + content: "\f69b"; } -.fa-elementor:before { - content: "\f430"; } +.fa-person-half-dress::before { + content: "\e548"; } -.fa-ellipsis-h:before { - content: "\f141"; } +.fa-road-bridge::before { + content: "\e563"; } -.fa-ellipsis-v:before { - content: "\f142"; } +.fa-location-arrow::before { + content: "\f124"; } -.fa-ello:before { - content: "\f5f1"; } +.fa-c::before { + content: "\43"; } -.fa-ember:before { - content: "\f423"; } +.fa-tablet-button::before { + content: "\f10a"; } -.fa-empire:before { - content: "\f1d1"; } +.fa-building-lock::before { + content: "\e4d6"; } -.fa-envelope:before { - content: "\f0e0"; } +.fa-pizza-slice::before { + content: "\f818"; } -.fa-envelope-open:before { - content: "\f2b6"; } +.fa-money-bill-wave::before { + content: "\f53a"; } -.fa-envelope-open-text:before { - content: "\f658"; } +.fa-chart-area::before { + content: "\f1fe"; } -.fa-envelope-square:before { - content: "\f199"; } +.fa-area-chart::before { + content: "\f1fe"; } -.fa-envira:before { - content: "\f299"; } +.fa-house-flag::before { + content: "\e50d"; } -.fa-equals:before { - content: "\f52c"; } +.fa-person-circle-minus::before { + content: "\e540"; } -.fa-eraser:before { - content: "\f12d"; } +.fa-ban::before { + content: "\f05e"; } -.fa-erlang:before { - content: "\f39d"; } +.fa-cancel::before { + content: "\f05e"; } -.fa-ethereum:before { - content: "\f42e"; } +.fa-camera-rotate::before { + content: "\e0d8"; } -.fa-ethernet:before { - content: "\f796"; } +.fa-spray-can-sparkles::before { + content: "\f5d0"; } -.fa-etsy:before { - content: "\f2d7"; } +.fa-air-freshener::before { + content: "\f5d0"; } -.fa-euro-sign:before { - content: "\f153"; } +.fa-star::before { + content: "\f005"; } -.fa-evernote:before { - content: "\f839"; } +.fa-repeat::before { + content: "\f363"; } -.fa-exchange-alt:before { - content: "\f362"; } +.fa-cross::before { + content: "\f654"; } -.fa-exclamation:before { - content: "\f12a"; } +.fa-box::before { + content: "\f466"; } -.fa-exclamation-circle:before { - content: "\f06a"; } +.fa-venus-mars::before { + content: "\f228"; } -.fa-exclamation-triangle:before { - content: "\f071"; } +.fa-arrow-pointer::before { + content: "\f245"; } -.fa-expand:before { - content: "\f065"; } +.fa-mouse-pointer::before { + content: "\f245"; } -.fa-expand-alt:before { - content: "\f424"; } +.fa-maximize::before { + content: "\f31e"; } -.fa-expand-arrows-alt:before { +.fa-expand-arrows-alt::before { content: "\f31e"; } -.fa-expeditedssl:before { - content: "\f23e"; } +.fa-charging-station::before { + content: "\f5e7"; } -.fa-external-link-alt:before { - content: "\f35d"; } +.fa-shapes::before { + content: "\f61f"; } -.fa-external-link-square-alt:before { - content: "\f360"; } +.fa-triangle-circle-square::before { + content: "\f61f"; } -.fa-eye:before { - content: "\f06e"; } +.fa-shuffle::before { + content: "\f074"; } -.fa-eye-dropper:before { - content: "\f1fb"; } +.fa-random::before { + content: "\f074"; } -.fa-eye-slash:before { - content: "\f070"; } +.fa-person-running::before { + content: "\f70c"; } -.fa-facebook:before { - content: "\f09a"; } +.fa-running::before { + content: "\f70c"; } -.fa-facebook-f:before { - content: "\f39e"; } +.fa-mobile-retro::before { + content: "\e527"; } -.fa-facebook-messenger:before { - content: "\f39f"; } +.fa-grip-lines-vertical::before { + content: "\f7a5"; } -.fa-facebook-square:before { - content: "\f082"; } +.fa-spider::before { + content: "\f717"; } -.fa-fan:before { - content: "\f863"; } +.fa-hands-bound::before { + content: "\e4f9"; } -.fa-fantasy-flight-games:before { - content: "\f6dc"; } +.fa-file-invoice-dollar::before { + content: "\f571"; } -.fa-fast-backward:before { - content: "\f049"; } +.fa-plane-circle-exclamation::before { + content: "\e556"; } -.fa-fast-forward:before { - content: "\f050"; } +.fa-x-ray::before { + content: "\f497"; } -.fa-faucet:before { - content: "\e005"; } +.fa-spell-check::before { + content: "\f891"; } -.fa-fax:before { - content: "\f1ac"; } +.fa-slash::before { + content: "\f715"; } -.fa-feather:before { - content: "\f52d"; } +.fa-computer-mouse::before { + content: "\f8cc"; } -.fa-feather-alt:before { - content: "\f56b"; } +.fa-mouse::before { + content: "\f8cc"; } -.fa-fedex:before { - content: "\f797"; } +.fa-arrow-right-to-bracket::before { + content: "\f090"; } -.fa-fedora:before { - content: "\f798"; } +.fa-sign-in::before { + content: "\f090"; } -.fa-female:before { - content: "\f182"; } +.fa-shop-slash::before { + content: "\e070"; } -.fa-fighter-jet:before { - content: "\f0fb"; } +.fa-store-alt-slash::before { + content: "\e070"; } -.fa-figma:before { - content: "\f799"; } +.fa-server::before { + content: "\f233"; } -.fa-file:before { - content: "\f15b"; } +.fa-virus-covid-slash::before { + content: "\e4a9"; } -.fa-file-alt:before { - content: "\f15c"; } +.fa-shop-lock::before { + content: "\e4a5"; } -.fa-file-archive:before { - content: "\f1c6"; } +.fa-hourglass-start::before { + content: "\f251"; } -.fa-file-audio:before { - content: "\f1c7"; } +.fa-hourglass-1::before { + content: "\f251"; } -.fa-file-code:before { - content: "\f1c9"; } +.fa-blender-phone::before { + content: "\f6b6"; } -.fa-file-contract:before { - content: "\f56c"; } +.fa-building-wheat::before { + content: "\e4db"; } -.fa-file-csv:before { - content: "\f6dd"; } +.fa-person-breastfeeding::before { + content: "\e53a"; } -.fa-file-download:before { - content: "\f56d"; } +.fa-right-to-bracket::before { + content: "\f2f6"; } -.fa-file-excel:before { - content: "\f1c3"; } +.fa-sign-in-alt::before { + content: "\f2f6"; } -.fa-file-export:before { - content: "\f56e"; } +.fa-venus::before { + content: "\f221"; } -.fa-file-image:before { - content: "\f1c5"; } +.fa-passport::before { + content: "\f5ab"; } -.fa-file-import:before { - content: "\f56f"; } +.fa-heart-pulse::before { + content: "\f21e"; } -.fa-file-invoice:before { - content: "\f570"; } +.fa-heartbeat::before { + content: "\f21e"; } -.fa-file-invoice-dollar:before { - content: "\f571"; } +.fa-people-carry-box::before { + content: "\f4ce"; } -.fa-file-medical:before { - content: "\f477"; } +.fa-people-carry::before { + content: "\f4ce"; } -.fa-file-medical-alt:before { - content: "\f478"; } +.fa-temperature-high::before { + content: "\f769"; } -.fa-file-pdf:before { - content: "\f1c1"; } +.fa-microchip::before { + content: "\f2db"; } -.fa-file-powerpoint:before { - content: "\f1c4"; } +.fa-crown::before { + content: "\f521"; } + +.fa-weight-hanging::before { + content: "\f5cd"; } -.fa-file-prescription:before { +.fa-xmarks-lines::before { + content: "\e59a"; } + +.fa-file-prescription::before { content: "\f572"; } -.fa-file-signature:before { - content: "\f573"; } +.fa-weight-scale::before { + content: "\f496"; } -.fa-file-upload:before { - content: "\f574"; } +.fa-weight::before { + content: "\f496"; } -.fa-file-video:before { - content: "\f1c8"; } +.fa-user-group::before { + content: "\f500"; } -.fa-file-word:before { - content: "\f1c2"; } +.fa-user-friends::before { + content: "\f500"; } -.fa-fill:before { - content: "\f575"; } +.fa-arrow-up-a-z::before { + content: "\f15e"; } -.fa-fill-drip:before { - content: "\f576"; } +.fa-sort-alpha-up::before { + content: "\f15e"; } -.fa-film:before { - content: "\f008"; } +.fa-chess-knight::before { + content: "\f441"; } -.fa-filter:before { - content: "\f0b0"; } +.fa-face-laugh-squint::before { + content: "\f59b"; } -.fa-fingerprint:before { - content: "\f577"; } +.fa-laugh-squint::before { + content: "\f59b"; } -.fa-fire:before { - content: "\f06d"; } +.fa-wheelchair::before { + content: "\f193"; } -.fa-fire-alt:before { - content: "\f7e4"; } +.fa-circle-arrow-up::before { + content: "\f0aa"; } -.fa-fire-extinguisher:before { - content: "\f134"; } +.fa-arrow-circle-up::before { + content: "\f0aa"; } -.fa-firefox:before { - content: "\f269"; } +.fa-toggle-on::before { + content: "\f205"; } -.fa-firefox-browser:before { - content: "\e007"; } +.fa-person-walking::before { + content: "\f554"; } -.fa-first-aid:before { - content: "\f479"; } +.fa-walking::before { + content: "\f554"; } -.fa-first-order:before { - content: "\f2b0"; } +.fa-l::before { + content: "\4c"; } -.fa-first-order-alt:before { - content: "\f50a"; } +.fa-fire::before { + content: "\f06d"; } -.fa-firstdraft:before { - content: "\f3a1"; } +.fa-bed-pulse::before { + content: "\f487"; } -.fa-fish:before { - content: "\f578"; } +.fa-procedures::before { + content: "\f487"; } -.fa-fist-raised:before { - content: "\f6de"; } +.fa-shuttle-space::before { + content: "\f197"; } -.fa-flag:before { - content: "\f024"; } +.fa-space-shuttle::before { + content: "\f197"; } -.fa-flag-checkered:before { - content: "\f11e"; } +.fa-face-laugh::before { + content: "\f599"; } -.fa-flag-usa:before { - content: "\f74d"; } +.fa-laugh::before { + content: "\f599"; } -.fa-flask:before { - content: "\f0c3"; } +.fa-folder-open::before { + content: "\f07c"; } -.fa-flickr:before { - content: "\f16e"; } +.fa-heart-circle-plus::before { + content: "\e500"; } -.fa-flipboard:before { - content: "\f44d"; } +.fa-code-fork::before { + content: "\e13b"; } -.fa-flushed:before { - content: "\f579"; } +.fa-city::before { + content: "\f64f"; } -.fa-fly:before { - content: "\f417"; } +.fa-microphone-lines::before { + content: "\f3c9"; } -.fa-folder:before { - content: "\f07b"; } +.fa-microphone-alt::before { + content: "\f3c9"; } -.fa-folder-minus:before { - content: "\f65d"; } +.fa-pepper-hot::before { + content: "\f816"; } -.fa-folder-open:before { - content: "\f07c"; } +.fa-unlock::before { + content: "\f09c"; } -.fa-folder-plus:before { - content: "\f65e"; } +.fa-colon-sign::before { + content: "\e140"; } -.fa-font:before { - content: "\f031"; } +.fa-headset::before { + content: "\f590"; } -.fa-font-awesome:before { - content: "\f2b4"; } +.fa-store-slash::before { + content: "\e071"; } -.fa-font-awesome-alt:before { - content: "\f35c"; } +.fa-road-circle-xmark::before { + content: "\e566"; } -.fa-font-awesome-flag:before { - content: "\f425"; } +.fa-user-minus::before { + content: "\f503"; } -.fa-font-awesome-logo-full:before { - content: "\f4e6"; } +.fa-mars-stroke-up::before { + content: "\f22a"; } -.fa-fonticons:before { - content: "\f280"; } +.fa-mars-stroke-v::before { + content: "\f22a"; } -.fa-fonticons-fi:before { - content: "\f3a2"; } +.fa-champagne-glasses::before { + content: "\f79f"; } -.fa-football-ball:before { - content: "\f44e"; } +.fa-glass-cheers::before { + content: "\f79f"; } -.fa-fort-awesome:before { - content: "\f286"; } +.fa-clipboard::before { + content: "\f328"; } -.fa-fort-awesome-alt:before { - content: "\f3a3"; } +.fa-house-circle-exclamation::before { + content: "\e50a"; } -.fa-forumbee:before { - content: "\f211"; } +.fa-file-arrow-up::before { + content: "\f574"; } -.fa-forward:before { - content: "\f04e"; } +.fa-file-upload::before { + content: "\f574"; } -.fa-foursquare:before { - content: "\f180"; } +.fa-wifi::before { + content: "\f1eb"; } -.fa-free-code-camp:before { - content: "\f2c5"; } +.fa-wifi-3::before { + content: "\f1eb"; } -.fa-freebsd:before { - content: "\f3a4"; } +.fa-wifi-strong::before { + content: "\f1eb"; } -.fa-frog:before { - content: "\f52e"; } +.fa-bath::before { + content: "\f2cd"; } -.fa-frown:before { - content: "\f119"; } +.fa-bathtub::before { + content: "\f2cd"; } -.fa-frown-open:before { - content: "\f57a"; } +.fa-underline::before { + content: "\f0cd"; } -.fa-fulcrum:before { - content: "\f50b"; } +.fa-user-pen::before { + content: "\f4ff"; } -.fa-funnel-dollar:before { - content: "\f662"; } +.fa-user-edit::before { + content: "\f4ff"; } -.fa-futbol:before { - content: "\f1e3"; } +.fa-signature::before { + content: "\f5b7"; } -.fa-galactic-republic:before { - content: "\f50c"; } +.fa-stroopwafel::before { + content: "\f551"; } -.fa-galactic-senate:before { - content: "\f50d"; } +.fa-bold::before { + content: "\f032"; } -.fa-gamepad:before { - content: "\f11b"; } +.fa-anchor-lock::before { + content: "\e4ad"; } -.fa-gas-pump:before { - content: "\f52f"; } +.fa-building-ngo::before { + content: "\e4d7"; } -.fa-gavel:before { - content: "\f0e3"; } +.fa-manat-sign::before { + content: "\e1d5"; } -.fa-gem:before { - content: "\f3a5"; } +.fa-not-equal::before { + content: "\f53e"; } -.fa-genderless:before { - content: "\f22d"; } +.fa-border-top-left::before { + content: "\f853"; } -.fa-get-pocket:before { - content: "\f265"; } +.fa-border-style::before { + content: "\f853"; } -.fa-gg:before { - content: "\f260"; } +.fa-map-location-dot::before { + content: "\f5a0"; } -.fa-gg-circle:before { - content: "\f261"; } +.fa-map-marked-alt::before { + content: "\f5a0"; } -.fa-ghost:before { - content: "\f6e2"; } +.fa-jedi::before { + content: "\f669"; } -.fa-gift:before { - content: "\f06b"; } +.fa-square-poll-vertical::before { + content: "\f681"; } -.fa-gifts:before { - content: "\f79c"; } +.fa-poll::before { + content: "\f681"; } -.fa-git:before { - content: "\f1d3"; } +.fa-mug-hot::before { + content: "\f7b6"; } -.fa-git-alt:before { - content: "\f841"; } +.fa-car-battery::before { + content: "\f5df"; } -.fa-git-square:before { - content: "\f1d2"; } +.fa-battery-car::before { + content: "\f5df"; } -.fa-github:before { - content: "\f09b"; } +.fa-gift::before { + content: "\f06b"; } -.fa-github-alt:before { - content: "\f113"; } +.fa-dice-two::before { + content: "\f528"; } -.fa-github-square:before { - content: "\f092"; } +.fa-chess-queen::before { + content: "\f445"; } -.fa-gitkraken:before { - content: "\f3a6"; } +.fa-glasses::before { + content: "\f530"; } -.fa-gitlab:before { - content: "\f296"; } +.fa-chess-board::before { + content: "\f43c"; } -.fa-gitter:before { - content: "\f426"; } +.fa-building-circle-check::before { + content: "\e4d2"; } -.fa-glass-cheers:before { - content: "\f79f"; } +.fa-person-chalkboard::before { + content: "\e53d"; } -.fa-glass-martini:before { - content: "\f000"; } +.fa-mars-stroke-right::before { + content: "\f22b"; } -.fa-glass-martini-alt:before { - content: "\f57b"; } +.fa-mars-stroke-h::before { + content: "\f22b"; } -.fa-glass-whiskey:before { - content: "\f7a0"; } +.fa-hand-back-fist::before { + content: "\f255"; } -.fa-glasses:before { - content: "\f530"; } +.fa-hand-rock::before { + content: "\f255"; } -.fa-glide:before { - content: "\f2a5"; } +.fa-square-caret-up::before { + content: "\f151"; } -.fa-glide-g:before { - content: "\f2a6"; } +.fa-caret-square-up::before { + content: "\f151"; } -.fa-globe:before { - content: "\f0ac"; } +.fa-cloud-showers-water::before { + content: "\e4e4"; } -.fa-globe-africa:before { - content: "\f57c"; } +.fa-chart-bar::before { + content: "\f080"; } -.fa-globe-americas:before { - content: "\f57d"; } +.fa-bar-chart::before { + content: "\f080"; } -.fa-globe-asia:before { - content: "\f57e"; } +.fa-hands-bubbles::before { + content: "\e05e"; } -.fa-globe-europe:before { - content: "\f7a2"; } +.fa-hands-wash::before { + content: "\e05e"; } -.fa-gofore:before { - content: "\f3a7"; } +.fa-less-than-equal::before { + content: "\f537"; } -.fa-golf-ball:before { - content: "\f450"; } +.fa-train::before { + content: "\f238"; } -.fa-goodreads:before { - content: "\f3a8"; } +.fa-eye-low-vision::before { + content: "\f2a8"; } -.fa-goodreads-g:before { - content: "\f3a9"; } +.fa-low-vision::before { + content: "\f2a8"; } -.fa-google:before { - content: "\f1a0"; } +.fa-crow::before { + content: "\f520"; } -.fa-google-drive:before { - content: "\f3aa"; } +.fa-sailboat::before { + content: "\e445"; } -.fa-google-pay:before { - content: "\e079"; } +.fa-window-restore::before { + content: "\f2d2"; } -.fa-google-play:before { - content: "\f3ab"; } +.fa-square-plus::before { + content: "\f0fe"; } -.fa-google-plus:before { - content: "\f2b3"; } +.fa-plus-square::before { + content: "\f0fe"; } -.fa-google-plus-g:before { - content: "\f0d5"; } +.fa-torii-gate::before { + content: "\f6a1"; } -.fa-google-plus-square:before { - content: "\f0d4"; } +.fa-frog::before { + content: "\f52e"; } -.fa-google-wallet:before { - content: "\f1ee"; } +.fa-bucket::before { + content: "\e4cf"; } -.fa-gopuram:before { - content: "\f664"; } +.fa-image::before { + content: "\f03e"; } -.fa-graduation-cap:before { - content: "\f19d"; } +.fa-microphone::before { + content: "\f130"; } -.fa-gratipay:before { - content: "\f184"; } +.fa-cow::before { + content: "\f6c8"; } -.fa-grav:before { - content: "\f2d6"; } +.fa-caret-up::before { + content: "\f0d8"; } -.fa-greater-than:before { - content: "\f531"; } +.fa-screwdriver::before { + content: "\f54a"; } -.fa-greater-than-equal:before { - content: "\f532"; } +.fa-folder-closed::before { + content: "\e185"; } -.fa-grimace:before { - content: "\f57f"; } +.fa-house-tsunami::before { + content: "\e515"; } -.fa-grin:before { - content: "\f580"; } +.fa-square-nfi::before { + content: "\e576"; } -.fa-grin-alt:before { - content: "\f581"; } +.fa-arrow-up-from-ground-water::before { + content: "\e4b5"; } -.fa-grin-beam:before { - content: "\f582"; } +.fa-martini-glass::before { + content: "\f57b"; } -.fa-grin-beam-sweat:before { - content: "\f583"; } +.fa-glass-martini-alt::before { + content: "\f57b"; } -.fa-grin-hearts:before { - content: "\f584"; } +.fa-rotate-left::before { + content: "\f2ea"; } -.fa-grin-squint:before { - content: "\f585"; } +.fa-rotate-back::before { + content: "\f2ea"; } -.fa-grin-squint-tears:before { - content: "\f586"; } +.fa-rotate-backward::before { + content: "\f2ea"; } -.fa-grin-stars:before { - content: "\f587"; } +.fa-undo-alt::before { + content: "\f2ea"; } -.fa-grin-tears:before { - content: "\f588"; } +.fa-table-columns::before { + content: "\f0db"; } -.fa-grin-tongue:before { - content: "\f589"; } +.fa-columns::before { + content: "\f0db"; } -.fa-grin-tongue-squint:before { - content: "\f58a"; } +.fa-lemon::before { + content: "\f094"; } -.fa-grin-tongue-wink:before { - content: "\f58b"; } +.fa-head-side-mask::before { + content: "\e063"; } -.fa-grin-wink:before { - content: "\f58c"; } +.fa-handshake::before { + content: "\f2b5"; } -.fa-grip-horizontal:before { - content: "\f58d"; } +.fa-gem::before { + content: "\f3a5"; } -.fa-grip-lines:before { - content: "\f7a4"; } +.fa-dolly::before { + content: "\f472"; } -.fa-grip-lines-vertical:before { - content: "\f7a5"; } +.fa-dolly-box::before { + content: "\f472"; } -.fa-grip-vertical:before { - content: "\f58e"; } +.fa-smoking::before { + content: "\f48d"; } -.fa-gripfire:before { - content: "\f3ac"; } +.fa-minimize::before { + content: "\f78c"; } -.fa-grunt:before { - content: "\f3ad"; } +.fa-compress-arrows-alt::before { + content: "\f78c"; } -.fa-guilded:before { - content: "\e07e"; } +.fa-monument::before { + content: "\f5a6"; } -.fa-guitar:before { - content: "\f7a6"; } +.fa-snowplow::before { + content: "\f7d2"; } -.fa-gulp:before { - content: "\f3ae"; } +.fa-angles-right::before { + content: "\f101"; } -.fa-h-square:before { - content: "\f0fd"; } +.fa-angle-double-right::before { + content: "\f101"; } -.fa-hacker-news:before { - content: "\f1d4"; } +.fa-cannabis::before { + content: "\f55f"; } -.fa-hacker-news-square:before { - content: "\f3af"; } +.fa-circle-play::before { + content: "\f144"; } -.fa-hackerrank:before { - content: "\f5f7"; } +.fa-play-circle::before { + content: "\f144"; } -.fa-hamburger:before { - content: "\f805"; } +.fa-tablets::before { + content: "\f490"; } -.fa-hammer:before { - content: "\f6e3"; } +.fa-ethernet::before { + content: "\f796"; } -.fa-hamsa:before { - content: "\f665"; } +.fa-euro-sign::before { + content: "\f153"; } -.fa-hand-holding:before { - content: "\f4bd"; } +.fa-eur::before { + content: "\f153"; } -.fa-hand-holding-heart:before { - content: "\f4be"; } +.fa-euro::before { + content: "\f153"; } -.fa-hand-holding-medical:before { - content: "\e05c"; } +.fa-chair::before { + content: "\f6c0"; } -.fa-hand-holding-usd:before { - content: "\f4c0"; } +.fa-circle-check::before { + content: "\f058"; } -.fa-hand-holding-water:before { - content: "\f4c1"; } +.fa-check-circle::before { + content: "\f058"; } -.fa-hand-lizard:before { - content: "\f258"; } +.fa-circle-stop::before { + content: "\f28d"; } -.fa-hand-middle-finger:before { - content: "\f806"; } +.fa-stop-circle::before { + content: "\f28d"; } -.fa-hand-paper:before { - content: "\f256"; } +.fa-compass-drafting::before { + content: "\f568"; } -.fa-hand-peace:before { - content: "\f25b"; } +.fa-drafting-compass::before { + content: "\f568"; } -.fa-hand-point-down:before { - content: "\f0a7"; } +.fa-plate-wheat::before { + content: "\e55a"; } -.fa-hand-point-left:before { - content: "\f0a5"; } +.fa-icicles::before { + content: "\f7ad"; } -.fa-hand-point-right:before { - content: "\f0a4"; } +.fa-person-shelter::before { + content: "\e54f"; } -.fa-hand-point-up:before { - content: "\f0a6"; } +.fa-neuter::before { + content: "\f22c"; } -.fa-hand-pointer:before { - content: "\f25a"; } +.fa-id-badge::before { + content: "\f2c1"; } -.fa-hand-rock:before { - content: "\f255"; } +.fa-marker::before { + content: "\f5a1"; } -.fa-hand-scissors:before { - content: "\f257"; } +.fa-face-laugh-beam::before { + content: "\f59a"; } -.fa-hand-sparkles:before { - content: "\e05d"; } +.fa-laugh-beam::before { + content: "\f59a"; } -.fa-hand-spock:before { - content: "\f259"; } +.fa-helicopter-symbol::before { + content: "\e502"; } -.fa-hands:before { - content: "\f4c2"; } +.fa-universal-access::before { + content: "\f29a"; } -.fa-hands-helping:before { - content: "\f4c4"; } +.fa-circle-chevron-up::before { + content: "\f139"; } -.fa-hands-wash:before { - content: "\e05e"; } +.fa-chevron-circle-up::before { + content: "\f139"; } -.fa-handshake:before { - content: "\f2b5"; } +.fa-lari-sign::before { + content: "\e1c8"; } -.fa-handshake-alt-slash:before { - content: "\e05f"; } +.fa-volcano::before { + content: "\f770"; } -.fa-handshake-slash:before { - content: "\e060"; } +.fa-person-walking-dashed-line-arrow-right::before { + content: "\e553"; } -.fa-hanukiah:before { - content: "\f6e6"; } +.fa-sterling-sign::before { + content: "\f154"; } -.fa-hard-hat:before { - content: "\f807"; } +.fa-gbp::before { + content: "\f154"; } -.fa-hashtag:before { - content: "\f292"; } +.fa-pound-sign::before { + content: "\f154"; } -.fa-hat-cowboy:before { - content: "\f8c0"; } +.fa-viruses::before { + content: "\e076"; } -.fa-hat-cowboy-side:before { - content: "\f8c1"; } +.fa-square-person-confined::before { + content: "\e577"; } -.fa-hat-wizard:before { - content: "\f6e8"; } +.fa-user-tie::before { + content: "\f508"; } -.fa-hdd:before { - content: "\f0a0"; } +.fa-arrow-down-long::before { + content: "\f175"; } -.fa-head-side-cough:before { - content: "\e061"; } +.fa-long-arrow-down::before { + content: "\f175"; } -.fa-head-side-cough-slash:before { - content: "\e062"; } +.fa-tent-arrow-down-to-line::before { + content: "\e57e"; } -.fa-head-side-mask:before { - content: "\e063"; } +.fa-certificate::before { + content: "\f0a3"; } -.fa-head-side-virus:before { - content: "\e064"; } +.fa-reply-all::before { + content: "\f122"; } -.fa-heading:before { - content: "\f1dc"; } +.fa-mail-reply-all::before { + content: "\f122"; } -.fa-headphones:before { - content: "\f025"; } +.fa-suitcase::before { + content: "\f0f2"; } -.fa-headphones-alt:before { - content: "\f58f"; } +.fa-person-skating::before { + content: "\f7c5"; } -.fa-headset:before { - content: "\f590"; } +.fa-skating::before { + content: "\f7c5"; } -.fa-heart:before { - content: "\f004"; } +.fa-filter-circle-dollar::before { + content: "\f662"; } -.fa-heart-broken:before { - content: "\f7a9"; } +.fa-funnel-dollar::before { + content: "\f662"; } -.fa-heartbeat:before { - content: "\f21e"; } +.fa-camera-retro::before { + content: "\f083"; } -.fa-helicopter:before { - content: "\f533"; } +.fa-circle-arrow-down::before { + content: "\f0ab"; } -.fa-highlighter:before { - content: "\f591"; } +.fa-arrow-circle-down::before { + content: "\f0ab"; } -.fa-hiking:before { - content: "\f6ec"; } +.fa-file-import::before { + content: "\f56f"; } -.fa-hippo:before { - content: "\f6ed"; } +.fa-arrow-right-to-file::before { + content: "\f56f"; } -.fa-hips:before { - content: "\f452"; } +.fa-square-arrow-up-right::before { + content: "\f14c"; } -.fa-hire-a-helper:before { - content: "\f3b0"; } +.fa-external-link-square::before { + content: "\f14c"; } -.fa-history:before { - content: "\f1da"; } +.fa-box-open::before { + content: "\f49e"; } -.fa-hive:before { - content: "\e07f"; } +.fa-scroll::before { + content: "\f70e"; } -.fa-hockey-puck:before { - content: "\f453"; } +.fa-spa::before { + content: "\f5bb"; } -.fa-holly-berry:before { - content: "\f7aa"; } +.fa-location-pin-lock::before { + content: "\e51f"; } -.fa-home:before { - content: "\f015"; } +.fa-pause::before { + content: "\f04c"; } -.fa-hooli:before { - content: "\f427"; } +.fa-hill-avalanche::before { + content: "\e507"; } -.fa-hornbill:before { - content: "\f592"; } +.fa-temperature-empty::before { + content: "\f2cb"; } -.fa-horse:before { - content: "\f6f0"; } +.fa-temperature-0::before { + content: "\f2cb"; } -.fa-horse-head:before { - content: "\f7ab"; } +.fa-thermometer-0::before { + content: "\f2cb"; } -.fa-hospital:before { - content: "\f0f8"; } +.fa-thermometer-empty::before { + content: "\f2cb"; } -.fa-hospital-alt:before { - content: "\f47d"; } +.fa-bomb::before { + content: "\f1e2"; } -.fa-hospital-symbol:before { - content: "\f47e"; } +.fa-registered::before { + content: "\f25d"; } -.fa-hospital-user:before { - content: "\f80d"; } +.fa-address-card::before { + content: "\f2bb"; } -.fa-hot-tub:before { - content: "\f593"; } +.fa-contact-card::before { + content: "\f2bb"; } -.fa-hotdog:before { - content: "\f80f"; } +.fa-vcard::before { + content: "\f2bb"; } -.fa-hotel:before { - content: "\f594"; } +.fa-scale-unbalanced-flip::before { + content: "\f516"; } -.fa-hotjar:before { - content: "\f3b1"; } +.fa-balance-scale-right::before { + content: "\f516"; } -.fa-hourglass:before { - content: "\f254"; } +.fa-subscript::before { + content: "\f12c"; } -.fa-hourglass-end:before { - content: "\f253"; } +.fa-diamond-turn-right::before { + content: "\f5eb"; } -.fa-hourglass-half:before { - content: "\f252"; } +.fa-directions::before { + content: "\f5eb"; } -.fa-hourglass-start:before { - content: "\f251"; } +.fa-burst::before { + content: "\e4dc"; } -.fa-house-damage:before { - content: "\f6f1"; } +.fa-house-laptop::before { + content: "\e066"; } -.fa-house-user:before { - content: "\e065"; } +.fa-laptop-house::before { + content: "\e066"; } -.fa-houzz:before { - content: "\f27c"; } +.fa-face-tired::before { + content: "\f5c8"; } -.fa-hryvnia:before { - content: "\f6f2"; } +.fa-tired::before { + content: "\f5c8"; } -.fa-html5:before { - content: "\f13b"; } +.fa-money-bills::before { + content: "\e1f3"; } -.fa-hubspot:before { - content: "\f3b2"; } +.fa-smog::before { + content: "\f75f"; } -.fa-i-cursor:before { - content: "\f246"; } +.fa-crutch::before { + content: "\f7f7"; } -.fa-ice-cream:before { - content: "\f810"; } +.fa-cloud-arrow-up::before { + content: "\f0ee"; } -.fa-icicles:before { - content: "\f7ad"; } +.fa-cloud-upload::before { + content: "\f0ee"; } -.fa-icons:before { - content: "\f86d"; } +.fa-cloud-upload-alt::before { + content: "\f0ee"; } -.fa-id-badge:before { - content: "\f2c1"; } +.fa-palette::before { + content: "\f53f"; } -.fa-id-card:before { - content: "\f2c2"; } +.fa-arrows-turn-right::before { + content: "\e4c0"; } -.fa-id-card-alt:before { - content: "\f47f"; } +.fa-vest::before { + content: "\e085"; } -.fa-ideal:before { - content: "\e013"; } +.fa-ferry::before { + content: "\e4ea"; } -.fa-igloo:before { - content: "\f7ae"; } +.fa-arrows-down-to-people::before { + content: "\e4b9"; } -.fa-image:before { - content: "\f03e"; } +.fa-seedling::before { + content: "\f4d8"; } -.fa-images:before { - content: "\f302"; } +.fa-sprout::before { + content: "\f4d8"; } -.fa-imdb:before { - content: "\f2d8"; } +.fa-left-right::before { + content: "\f337"; } -.fa-inbox:before { - content: "\f01c"; } +.fa-arrows-alt-h::before { + content: "\f337"; } -.fa-indent:before { - content: "\f03c"; } +.fa-boxes-packing::before { + content: "\e4c7"; } -.fa-industry:before { - content: "\f275"; } +.fa-circle-arrow-left::before { + content: "\f0a8"; } -.fa-infinity:before { - content: "\f534"; } +.fa-arrow-circle-left::before { + content: "\f0a8"; } -.fa-info:before { - content: "\f129"; } +.fa-group-arrows-rotate::before { + content: "\e4f6"; } -.fa-info-circle:before { - content: "\f05a"; } +.fa-bowl-food::before { + content: "\e4c6"; } -.fa-innosoft:before { - content: "\e080"; } +.fa-candy-cane::before { + content: "\f786"; } -.fa-instagram:before { - content: "\f16d"; } +.fa-arrow-down-wide-short::before { + content: "\f160"; } -.fa-instagram-square:before { - content: "\e055"; } +.fa-sort-amount-asc::before { + content: "\f160"; } -.fa-instalod:before { - content: "\e081"; } +.fa-sort-amount-down::before { + content: "\f160"; } -.fa-intercom:before { - content: "\f7af"; } +.fa-cloud-bolt::before { + content: "\f76c"; } -.fa-internet-explorer:before { - content: "\f26b"; } +.fa-thunderstorm::before { + content: "\f76c"; } -.fa-invision:before { - content: "\f7b0"; } +.fa-text-slash::before { + content: "\f87d"; } -.fa-ioxhost:before { - content: "\f208"; } +.fa-remove-format::before { + content: "\f87d"; } -.fa-italic:before { - content: "\f033"; } +.fa-face-smile-wink::before { + content: "\f4da"; } -.fa-itch-io:before { - content: "\f83a"; } +.fa-smile-wink::before { + content: "\f4da"; } -.fa-itunes:before { - content: "\f3b4"; } +.fa-file-word::before { + content: "\f1c2"; } -.fa-itunes-note:before { - content: "\f3b5"; } +.fa-file-powerpoint::before { + content: "\f1c4"; } -.fa-java:before { - content: "\f4e4"; } +.fa-arrows-left-right::before { + content: "\f07e"; } -.fa-jedi:before { - content: "\f669"; } +.fa-arrows-h::before { + content: "\f07e"; } -.fa-jedi-order:before { - content: "\f50e"; } +.fa-house-lock::before { + content: "\e510"; } -.fa-jenkins:before { - content: "\f3b6"; } +.fa-cloud-arrow-down::before { + content: "\f0ed"; } -.fa-jira:before { - content: "\f7b1"; } +.fa-cloud-download::before { + content: "\f0ed"; } -.fa-joget:before { - content: "\f3b7"; } +.fa-cloud-download-alt::before { + content: "\f0ed"; } -.fa-joint:before { - content: "\f595"; } +.fa-children::before { + content: "\e4e1"; } -.fa-joomla:before { - content: "\f1aa"; } +.fa-chalkboard::before { + content: "\f51b"; } -.fa-journal-whills:before { - content: "\f66a"; } +.fa-blackboard::before { + content: "\f51b"; } -.fa-js:before { - content: "\f3b8"; } +.fa-user-large-slash::before { + content: "\f4fa"; } -.fa-js-square:before { - content: "\f3b9"; } +.fa-user-alt-slash::before { + content: "\f4fa"; } -.fa-jsfiddle:before { - content: "\f1cc"; } +.fa-envelope-open::before { + content: "\f2b6"; } -.fa-kaaba:before { - content: "\f66b"; } +.fa-handshake-simple-slash::before { + content: "\e05f"; } -.fa-kaggle:before { - content: "\f5fa"; } +.fa-handshake-alt-slash::before { + content: "\e05f"; } -.fa-key:before { - content: "\f084"; } +.fa-mattress-pillow::before { + content: "\e525"; } -.fa-keybase:before { - content: "\f4f5"; } +.fa-guarani-sign::before { + content: "\e19a"; } -.fa-keyboard:before { - content: "\f11c"; } +.fa-arrows-rotate::before { + content: "\f021"; } -.fa-keycdn:before { - content: "\f3ba"; } +.fa-refresh::before { + content: "\f021"; } -.fa-khanda:before { - content: "\f66d"; } +.fa-sync::before { + content: "\f021"; } -.fa-kickstarter:before { - content: "\f3bb"; } +.fa-fire-extinguisher::before { + content: "\f134"; } -.fa-kickstarter-k:before { - content: "\f3bc"; } +.fa-cruzeiro-sign::before { + content: "\e152"; } -.fa-kiss:before { - content: "\f596"; } +.fa-greater-than-equal::before { + content: "\f532"; } -.fa-kiss-beam:before { - content: "\f597"; } +.fa-shield-halved::before { + content: "\f3ed"; } -.fa-kiss-wink-heart:before { - content: "\f598"; } +.fa-shield-alt::before { + content: "\f3ed"; } -.fa-kiwi-bird:before { - content: "\f535"; } +.fa-book-atlas::before { + content: "\f558"; } -.fa-korvue:before { - content: "\f42f"; } +.fa-atlas::before { + content: "\f558"; } -.fa-landmark:before { - content: "\f66f"; } +.fa-virus::before { + content: "\e074"; } -.fa-language:before { - content: "\f1ab"; } +.fa-envelope-circle-check::before { + content: "\e4e8"; } -.fa-laptop:before { - content: "\f109"; } +.fa-layer-group::before { + content: "\f5fd"; } -.fa-laptop-code:before { - content: "\f5fc"; } +.fa-arrows-to-dot::before { + content: "\e4be"; } -.fa-laptop-house:before { - content: "\e066"; } +.fa-archway::before { + content: "\f557"; } -.fa-laptop-medical:before { - content: "\f812"; } +.fa-heart-circle-check::before { + content: "\e4fd"; } -.fa-laravel:before { - content: "\f3bd"; } +.fa-house-chimney-crack::before { + content: "\f6f1"; } -.fa-lastfm:before { - content: "\f202"; } +.fa-house-damage::before { + content: "\f6f1"; } -.fa-lastfm-square:before { - content: "\f203"; } +.fa-file-zipper::before { + content: "\f1c6"; } -.fa-laugh:before { - content: "\f599"; } +.fa-file-archive::before { + content: "\f1c6"; } -.fa-laugh-beam:before { - content: "\f59a"; } +.fa-square::before { + content: "\f0c8"; } -.fa-laugh-squint:before { - content: "\f59b"; } +.fa-martini-glass-empty::before { + content: "\f000"; } -.fa-laugh-wink:before { - content: "\f59c"; } +.fa-glass-martini::before { + content: "\f000"; } -.fa-layer-group:before { - content: "\f5fd"; } +.fa-couch::before { + content: "\f4b8"; } -.fa-leaf:before { - content: "\f06c"; } +.fa-cedi-sign::before { + content: "\e0df"; } -.fa-leanpub:before { - content: "\f212"; } +.fa-italic::before { + content: "\f033"; } -.fa-lemon:before { - content: "\f094"; } +.fa-church::before { + content: "\f51d"; } -.fa-less:before { - content: "\f41d"; } +.fa-comments-dollar::before { + content: "\f653"; } -.fa-less-than:before { - content: "\f536"; } +.fa-democrat::before { + content: "\f747"; } -.fa-less-than-equal:before { - content: "\f537"; } +.fa-z::before { + content: "\5a"; } -.fa-level-down-alt:before { - content: "\f3be"; } +.fa-person-skiing::before { + content: "\f7c9"; } -.fa-level-up-alt:before { - content: "\f3bf"; } +.fa-skiing::before { + content: "\f7c9"; } -.fa-life-ring:before { - content: "\f1cd"; } +.fa-road-lock::before { + content: "\e567"; } -.fa-lightbulb:before { - content: "\f0eb"; } +.fa-a::before { + content: "\41"; } -.fa-line:before { - content: "\f3c0"; } +.fa-temperature-arrow-down::before { + content: "\e03f"; } -.fa-link:before { - content: "\f0c1"; } +.fa-temperature-down::before { + content: "\e03f"; } -.fa-linkedin:before { - content: "\f08c"; } +.fa-feather-pointed::before { + content: "\f56b"; } -.fa-linkedin-in:before { - content: "\f0e1"; } +.fa-feather-alt::before { + content: "\f56b"; } -.fa-linode:before { - content: "\f2b8"; } +.fa-p::before { + content: "\50"; } -.fa-linux:before { - content: "\f17c"; } +.fa-snowflake::before { + content: "\f2dc"; } -.fa-lira-sign:before { - content: "\f195"; } +.fa-newspaper::before { + content: "\f1ea"; } -.fa-list:before { - content: "\f03a"; } +.fa-rectangle-ad::before { + content: "\f641"; } -.fa-list-alt:before { - content: "\f022"; } +.fa-ad::before { + content: "\f641"; } -.fa-list-ol:before { - content: "\f0cb"; } +.fa-circle-arrow-right::before { + content: "\f0a9"; } -.fa-list-ul:before { - content: "\f0ca"; } +.fa-arrow-circle-right::before { + content: "\f0a9"; } -.fa-location-arrow:before { - content: "\f124"; } +.fa-filter-circle-xmark::before { + content: "\e17b"; } -.fa-lock:before { - content: "\f023"; } +.fa-locust::before { + content: "\e520"; } -.fa-lock-open:before { - content: "\f3c1"; } +.fa-sort::before { + content: "\f0dc"; } -.fa-long-arrow-alt-down:before { - content: "\f309"; } +.fa-unsorted::before { + content: "\f0dc"; } -.fa-long-arrow-alt-left:before { - content: "\f30a"; } +.fa-list-ol::before { + content: "\f0cb"; } -.fa-long-arrow-alt-right:before { - content: "\f30b"; } +.fa-list-1-2::before { + content: "\f0cb"; } -.fa-long-arrow-alt-up:before { - content: "\f30c"; } +.fa-list-numeric::before { + content: "\f0cb"; } -.fa-low-vision:before { - content: "\f2a8"; } +.fa-person-dress-burst::before { + content: "\e544"; } -.fa-luggage-cart:before { - content: "\f59d"; } +.fa-money-check-dollar::before { + content: "\f53d"; } -.fa-lungs:before { - content: "\f604"; } +.fa-money-check-alt::before { + content: "\f53d"; } -.fa-lungs-virus:before { - content: "\e067"; } +.fa-vector-square::before { + content: "\f5cb"; } -.fa-lyft:before { - content: "\f3c3"; } +.fa-bread-slice::before { + content: "\f7ec"; } -.fa-magento:before { - content: "\f3c4"; } +.fa-language::before { + content: "\f1ab"; } -.fa-magic:before { - content: "\f0d0"; } +.fa-face-kiss-wink-heart::before { + content: "\f598"; } -.fa-magnet:before { - content: "\f076"; } +.fa-kiss-wink-heart::before { + content: "\f598"; } -.fa-mail-bulk:before { - content: "\f674"; } +.fa-filter::before { + content: "\f0b0"; } -.fa-mailchimp:before { - content: "\f59e"; } +.fa-question::before { + content: "\3f"; } -.fa-male:before { - content: "\f183"; } +.fa-file-signature::before { + content: "\f573"; } -.fa-mandalorian:before { - content: "\f50f"; } +.fa-up-down-left-right::before { + content: "\f0b2"; } -.fa-map:before { - content: "\f279"; } +.fa-arrows-alt::before { + content: "\f0b2"; } -.fa-map-marked:before { - content: "\f59f"; } +.fa-house-chimney-user::before { + content: "\e065"; } -.fa-map-marked-alt:before { - content: "\f5a0"; } +.fa-hand-holding-heart::before { + content: "\f4be"; } -.fa-map-marker:before { - content: "\f041"; } +.fa-puzzle-piece::before { + content: "\f12e"; } -.fa-map-marker-alt:before { - content: "\f3c5"; } +.fa-money-check::before { + content: "\f53c"; } -.fa-map-pin:before { - content: "\f276"; } +.fa-star-half-stroke::before { + content: "\f5c0"; } -.fa-map-signs:before { - content: "\f277"; } +.fa-star-half-alt::before { + content: "\f5c0"; } -.fa-markdown:before { - content: "\f60f"; } +.fa-code::before { + content: "\f121"; } -.fa-marker:before { - content: "\f5a1"; } +.fa-whiskey-glass::before { + content: "\f7a0"; } -.fa-mars:before { - content: "\f222"; } +.fa-glass-whiskey::before { + content: "\f7a0"; } -.fa-mars-double:before { - content: "\f227"; } +.fa-building-circle-exclamation::before { + content: "\e4d3"; } -.fa-mars-stroke:before { - content: "\f229"; } +.fa-magnifying-glass-chart::before { + content: "\e522"; } -.fa-mars-stroke-h:before { - content: "\f22b"; } +.fa-arrow-up-right-from-square::before { + content: "\f08e"; } -.fa-mars-stroke-v:before { - content: "\f22a"; } +.fa-external-link::before { + content: "\f08e"; } -.fa-mask:before { - content: "\f6fa"; } +.fa-cubes-stacked::before { + content: "\e4e6"; } -.fa-mastodon:before { - content: "\f4f6"; } +.fa-won-sign::before { + content: "\f159"; } -.fa-maxcdn:before { - content: "\f136"; } +.fa-krw::before { + content: "\f159"; } -.fa-mdb:before { - content: "\f8ca"; } +.fa-won::before { + content: "\f159"; } -.fa-medal:before { - content: "\f5a2"; } +.fa-virus-covid::before { + content: "\e4a8"; } -.fa-medapps:before { - content: "\f3c6"; } +.fa-austral-sign::before { + content: "\e0a9"; } -.fa-medium:before { - content: "\f23a"; } +.fa-f::before { + content: "\46"; } -.fa-medium-m:before { - content: "\f3c7"; } +.fa-leaf::before { + content: "\f06c"; } -.fa-medkit:before { - content: "\f0fa"; } +.fa-road::before { + content: "\f018"; } -.fa-medrt:before { - content: "\f3c8"; } +.fa-taxi::before { + content: "\f1ba"; } -.fa-meetup:before { - content: "\f2e0"; } +.fa-cab::before { + content: "\f1ba"; } -.fa-megaport:before { - content: "\f5a3"; } +.fa-person-circle-plus::before { + content: "\e541"; } -.fa-meh:before { - content: "\f11a"; } +.fa-chart-pie::before { + content: "\f200"; } -.fa-meh-blank:before { - content: "\f5a4"; } +.fa-pie-chart::before { + content: "\f200"; } -.fa-meh-rolling-eyes:before { - content: "\f5a5"; } +.fa-bolt-lightning::before { + content: "\e0b7"; } -.fa-memory:before { - content: "\f538"; } +.fa-sack-xmark::before { + content: "\e56a"; } -.fa-mendeley:before { - content: "\f7b3"; } +.fa-file-excel::before { + content: "\f1c3"; } -.fa-menorah:before { - content: "\f676"; } +.fa-file-contract::before { + content: "\f56c"; } -.fa-mercury:before { - content: "\f223"; } +.fa-fish-fins::before { + content: "\e4f2"; } -.fa-meteor:before { - content: "\f753"; } +.fa-building-flag::before { + content: "\e4d5"; } -.fa-microblog:before { - content: "\e01a"; } +.fa-face-grin-beam::before { + content: "\f582"; } -.fa-microchip:before { - content: "\f2db"; } +.fa-grin-beam::before { + content: "\f582"; } -.fa-microphone:before { - content: "\f130"; } +.fa-object-ungroup::before { + content: "\f248"; } -.fa-microphone-alt:before { - content: "\f3c9"; } +.fa-poop::before { + content: "\f619"; } -.fa-microphone-alt-slash:before { - content: "\f539"; } +.fa-location-pin::before { + content: "\f041"; } -.fa-microphone-slash:before { - content: "\f131"; } +.fa-map-marker::before { + content: "\f041"; } -.fa-microscope:before { - content: "\f610"; } +.fa-kaaba::before { + content: "\f66b"; } -.fa-microsoft:before { - content: "\f3ca"; } +.fa-toilet-paper::before { + content: "\f71e"; } -.fa-minus:before { - content: "\f068"; } +.fa-helmet-safety::before { + content: "\f807"; } -.fa-minus-circle:before { - content: "\f056"; } +.fa-hard-hat::before { + content: "\f807"; } -.fa-minus-square:before { - content: "\f146"; } +.fa-hat-hard::before { + content: "\f807"; } -.fa-mitten:before { - content: "\f7b5"; } +.fa-eject::before { + content: "\f052"; } -.fa-mix:before { - content: "\f3cb"; } +.fa-circle-right::before { + content: "\f35a"; } -.fa-mixcloud:before { - content: "\f289"; } +.fa-arrow-alt-circle-right::before { + content: "\f35a"; } -.fa-mixer:before { - content: "\e056"; } +.fa-plane-circle-check::before { + content: "\e555"; } -.fa-mizuni:before { - content: "\f3cc"; } +.fa-face-rolling-eyes::before { + content: "\f5a5"; } -.fa-mobile:before { - content: "\f10b"; } +.fa-meh-rolling-eyes::before { + content: "\f5a5"; } -.fa-mobile-alt:before { - content: "\f3cd"; } +.fa-object-group::before { + content: "\f247"; } -.fa-modx:before { - content: "\f285"; } +.fa-chart-line::before { + content: "\f201"; } -.fa-monero:before { - content: "\f3d0"; } +.fa-line-chart::before { + content: "\f201"; } -.fa-money-bill:before { - content: "\f0d6"; } +.fa-mask-ventilator::before { + content: "\e524"; } -.fa-money-bill-alt:before { - content: "\f3d1"; } +.fa-arrow-right::before { + content: "\f061"; } -.fa-money-bill-wave:before { - content: "\f53a"; } +.fa-signs-post::before { + content: "\f277"; } -.fa-money-bill-wave-alt:before { - content: "\f53b"; } +.fa-map-signs::before { + content: "\f277"; } -.fa-money-check:before { - content: "\f53c"; } +.fa-cash-register::before { + content: "\f788"; } -.fa-money-check-alt:before { - content: "\f53d"; } +.fa-person-circle-question::before { + content: "\e542"; } -.fa-monument:before { - content: "\f5a6"; } +.fa-h::before { + content: "\48"; } -.fa-moon:before { - content: "\f186"; } +.fa-tarp::before { + content: "\e57b"; } -.fa-mortar-pestle:before { - content: "\f5a7"; } +.fa-screwdriver-wrench::before { + content: "\f7d9"; } -.fa-mosque:before { - content: "\f678"; } +.fa-tools::before { + content: "\f7d9"; } -.fa-motorcycle:before { - content: "\f21c"; } +.fa-arrows-to-eye::before { + content: "\e4bf"; } -.fa-mountain:before { - content: "\f6fc"; } +.fa-plug-circle-bolt::before { + content: "\e55b"; } -.fa-mouse:before { - content: "\f8cc"; } +.fa-heart::before { + content: "\f004"; } -.fa-mouse-pointer:before { - content: "\f245"; } +.fa-mars-and-venus::before { + content: "\f224"; } -.fa-mug-hot:before { - content: "\f7b6"; } +.fa-house-user::before { + content: "\e1b0"; } -.fa-music:before { - content: "\f001"; } +.fa-home-user::before { + content: "\e1b0"; } -.fa-napster:before { - content: "\f3d2"; } +.fa-dumpster-fire::before { + content: "\f794"; } -.fa-neos:before { - content: "\f612"; } +.fa-house-crack::before { + content: "\e3b1"; } -.fa-network-wired:before { - content: "\f6ff"; } +.fa-martini-glass-citrus::before { + content: "\f561"; } -.fa-neuter:before { - content: "\f22c"; } +.fa-cocktail::before { + content: "\f561"; } -.fa-newspaper:before { - content: "\f1ea"; } +.fa-face-surprise::before { + content: "\f5c2"; } -.fa-nimblr:before { - content: "\f5a8"; } +.fa-surprise::before { + content: "\f5c2"; } -.fa-node:before { - content: "\f419"; } +.fa-bottle-water::before { + content: "\e4c5"; } -.fa-node-js:before { - content: "\f3d3"; } +.fa-circle-pause::before { + content: "\f28b"; } -.fa-not-equal:before { - content: "\f53e"; } +.fa-pause-circle::before { + content: "\f28b"; } -.fa-notes-medical:before { - content: "\f481"; } +.fa-toilet-paper-slash::before { + content: "\e072"; } -.fa-npm:before { - content: "\f3d4"; } +.fa-apple-whole::before { + content: "\f5d1"; } -.fa-ns8:before { - content: "\f3d5"; } +.fa-apple-alt::before { + content: "\f5d1"; } -.fa-nutritionix:before { - content: "\f3d6"; } +.fa-kitchen-set::before { + content: "\e51a"; } -.fa-object-group:before { - content: "\f247"; } +.fa-r::before { + content: "\52"; } -.fa-object-ungroup:before { - content: "\f248"; } +.fa-temperature-quarter::before { + content: "\f2ca"; } -.fa-octopus-deploy:before { - content: "\e082"; } +.fa-temperature-1::before { + content: "\f2ca"; } -.fa-odnoklassniki:before { - content: "\f263"; } +.fa-thermometer-1::before { + content: "\f2ca"; } -.fa-odnoklassniki-square:before { - content: "\f264"; } +.fa-thermometer-quarter::before { + content: "\f2ca"; } -.fa-oil-can:before { - content: "\f613"; } +.fa-cube::before { + content: "\f1b2"; } -.fa-old-republic:before { - content: "\f510"; } +.fa-bitcoin-sign::before { + content: "\e0b4"; } -.fa-om:before { - content: "\f679"; } +.fa-shield-dog::before { + content: "\e573"; } -.fa-opencart:before { - content: "\f23d"; } +.fa-solar-panel::before { + content: "\f5ba"; } -.fa-openid:before { - content: "\f19b"; } +.fa-lock-open::before { + content: "\f3c1"; } -.fa-opera:before { - content: "\f26a"; } +.fa-elevator::before { + content: "\e16d"; } -.fa-optin-monster:before { - content: "\f23c"; } +.fa-money-bill-transfer::before { + content: "\e528"; } -.fa-orcid:before { - content: "\f8d2"; } +.fa-money-bill-trend-up::before { + content: "\e529"; } -.fa-osi:before { - content: "\f41a"; } +.fa-house-flood-water-circle-arrow-right::before { + content: "\e50f"; } -.fa-otter:before { - content: "\f700"; } +.fa-square-poll-horizontal::before { + content: "\f682"; } -.fa-outdent:before { - content: "\f03b"; } +.fa-poll-h::before { + content: "\f682"; } -.fa-page4:before { - content: "\f3d7"; } +.fa-circle::before { + content: "\f111"; } -.fa-pagelines:before { - content: "\f18c"; } +.fa-backward-fast::before { + content: "\f049"; } -.fa-pager:before { - content: "\f815"; } +.fa-fast-backward::before { + content: "\f049"; } -.fa-paint-brush:before { - content: "\f1fc"; } +.fa-recycle::before { + content: "\f1b8"; } -.fa-paint-roller:before { - content: "\f5aa"; } +.fa-user-astronaut::before { + content: "\f4fb"; } -.fa-palette:before { - content: "\f53f"; } +.fa-plane-slash::before { + content: "\e069"; } -.fa-palfed:before { - content: "\f3d8"; } +.fa-trademark::before { + content: "\f25c"; } -.fa-pallet:before { - content: "\f482"; } +.fa-basketball::before { + content: "\f434"; } -.fa-paper-plane:before { - content: "\f1d8"; } +.fa-basketball-ball::before { + content: "\f434"; } -.fa-paperclip:before { - content: "\f0c6"; } +.fa-satellite-dish::before { + content: "\f7c0"; } -.fa-parachute-box:before { - content: "\f4cd"; } +.fa-circle-up::before { + content: "\f35b"; } -.fa-paragraph:before { - content: "\f1dd"; } +.fa-arrow-alt-circle-up::before { + content: "\f35b"; } -.fa-parking:before { - content: "\f540"; } +.fa-mobile-screen-button::before { + content: "\f3cd"; } -.fa-passport:before { - content: "\f5ab"; } +.fa-mobile-alt::before { + content: "\f3cd"; } -.fa-pastafarianism:before { - content: "\f67b"; } +.fa-volume-high::before { + content: "\f028"; } -.fa-paste:before { - content: "\f0ea"; } +.fa-volume-up::before { + content: "\f028"; } -.fa-patreon:before { - content: "\f3d9"; } +.fa-users-rays::before { + content: "\e593"; } -.fa-pause:before { - content: "\f04c"; } +.fa-wallet::before { + content: "\f555"; } -.fa-pause-circle:before { - content: "\f28b"; } +.fa-clipboard-check::before { + content: "\f46c"; } -.fa-paw:before { - content: "\f1b0"; } +.fa-file-audio::before { + content: "\f1c7"; } -.fa-paypal:before { - content: "\f1ed"; } +.fa-burger::before { + content: "\f805"; } -.fa-peace:before { - content: "\f67c"; } +.fa-hamburger::before { + content: "\f805"; } -.fa-pen:before { - content: "\f304"; } +.fa-wrench::before { + content: "\f0ad"; } -.fa-pen-alt:before { - content: "\f305"; } +.fa-bugs::before { + content: "\e4d0"; } -.fa-pen-fancy:before { - content: "\f5ac"; } +.fa-rupee-sign::before { + content: "\f156"; } -.fa-pen-nib:before { - content: "\f5ad"; } +.fa-rupee::before { + content: "\f156"; } -.fa-pen-square:before { - content: "\f14b"; } +.fa-file-image::before { + content: "\f1c5"; } -.fa-pencil-alt:before { - content: "\f303"; } +.fa-circle-question::before { + content: "\f059"; } -.fa-pencil-ruler:before { - content: "\f5ae"; } +.fa-question-circle::before { + content: "\f059"; } -.fa-penny-arcade:before { - content: "\f704"; } +.fa-plane-departure::before { + content: "\f5b0"; } -.fa-people-arrows:before { - content: "\e068"; } +.fa-handshake-slash::before { + content: "\e060"; } -.fa-people-carry:before { - content: "\f4ce"; } +.fa-book-bookmark::before { + content: "\e0bb"; } -.fa-pepper-hot:before { - content: "\f816"; } +.fa-code-branch::before { + content: "\f126"; } -.fa-perbyte:before { - content: "\e083"; } +.fa-hat-cowboy::before { + content: "\f8c0"; } -.fa-percent:before { - content: "\f295"; } +.fa-bridge::before { + content: "\e4c8"; } -.fa-percentage:before { - content: "\f541"; } +.fa-phone-flip::before { + content: "\f879"; } -.fa-periscope:before { - content: "\f3da"; } +.fa-phone-alt::before { + content: "\f879"; } -.fa-person-booth:before { - content: "\f756"; } +.fa-truck-front::before { + content: "\e2b7"; } -.fa-phabricator:before { - content: "\f3db"; } +.fa-cat::before { + content: "\f6be"; } -.fa-phoenix-framework:before { - content: "\f3dc"; } +.fa-anchor-circle-exclamation::before { + content: "\e4ab"; } -.fa-phoenix-squadron:before { - content: "\f511"; } +.fa-truck-field::before { + content: "\e58d"; } -.fa-phone:before { - content: "\f095"; } +.fa-route::before { + content: "\f4d7"; } -.fa-phone-alt:before { - content: "\f879"; } +.fa-clipboard-question::before { + content: "\e4e3"; } -.fa-phone-slash:before { - content: "\f3dd"; } +.fa-panorama::before { + content: "\e209"; } -.fa-phone-square:before { - content: "\f098"; } +.fa-comment-medical::before { + content: "\f7f5"; } -.fa-phone-square-alt:before { - content: "\f87b"; } +.fa-teeth-open::before { + content: "\f62f"; } -.fa-phone-volume:before { - content: "\f2a0"; } +.fa-file-circle-minus::before { + content: "\e4ed"; } -.fa-photo-video:before { - content: "\f87c"; } +.fa-tags::before { + content: "\f02c"; } -.fa-php:before { - content: "\f457"; } +.fa-wine-glass::before { + content: "\f4e3"; } -.fa-pied-piper:before { - content: "\f2ae"; } +.fa-forward-fast::before { + content: "\f050"; } -.fa-pied-piper-alt:before { - content: "\f1a8"; } +.fa-fast-forward::before { + content: "\f050"; } -.fa-pied-piper-hat:before { - content: "\f4e5"; } +.fa-face-meh-blank::before { + content: "\f5a4"; } -.fa-pied-piper-pp:before { - content: "\f1a7"; } +.fa-meh-blank::before { + content: "\f5a4"; } -.fa-pied-piper-square:before { - content: "\e01e"; } +.fa-square-parking::before { + content: "\f540"; } -.fa-piggy-bank:before { - content: "\f4d3"; } +.fa-parking::before { + content: "\f540"; } -.fa-pills:before { - content: "\f484"; } +.fa-house-signal::before { + content: "\e012"; } -.fa-pinterest:before { - content: "\f0d2"; } +.fa-bars-progress::before { + content: "\f828"; } -.fa-pinterest-p:before { - content: "\f231"; } +.fa-tasks-alt::before { + content: "\f828"; } -.fa-pinterest-square:before { - content: "\f0d3"; } +.fa-faucet-drip::before { + content: "\e006"; } -.fa-pizza-slice:before { - content: "\f818"; } +.fa-cart-flatbed::before { + content: "\f474"; } -.fa-place-of-worship:before { - content: "\f67f"; } +.fa-dolly-flatbed::before { + content: "\f474"; } -.fa-plane:before { - content: "\f072"; } +.fa-ban-smoking::before { + content: "\f54d"; } -.fa-plane-arrival:before { - content: "\f5af"; } +.fa-smoking-ban::before { + content: "\f54d"; } -.fa-plane-departure:before { - content: "\f5b0"; } +.fa-terminal::before { + content: "\f120"; } -.fa-plane-slash:before { - content: "\e069"; } +.fa-mobile-button::before { + content: "\f10b"; } -.fa-play:before { - content: "\f04b"; } +.fa-house-medical-flag::before { + content: "\e514"; } -.fa-play-circle:before { - content: "\f144"; } +.fa-basket-shopping::before { + content: "\f291"; } -.fa-playstation:before { - content: "\f3df"; } +.fa-shopping-basket::before { + content: "\f291"; } -.fa-plug:before { - content: "\f1e6"; } +.fa-tape::before { + content: "\f4db"; } -.fa-plus:before { - content: "\f067"; } +.fa-bus-simple::before { + content: "\f55e"; } -.fa-plus-circle:before { - content: "\f055"; } +.fa-bus-alt::before { + content: "\f55e"; } -.fa-plus-square:before { - content: "\f0fe"; } +.fa-eye::before { + content: "\f06e"; } -.fa-podcast:before { - content: "\f2ce"; } +.fa-face-sad-cry::before { + content: "\f5b3"; } -.fa-poll:before { - content: "\f681"; } +.fa-sad-cry::before { + content: "\f5b3"; } -.fa-poll-h:before { - content: "\f682"; } +.fa-audio-description::before { + content: "\f29e"; } -.fa-poo:before { - content: "\f2fe"; } +.fa-person-military-to-person::before { + content: "\e54c"; } -.fa-poo-storm:before { - content: "\f75a"; } +.fa-file-shield::before { + content: "\e4f0"; } -.fa-poop:before { - content: "\f619"; } +.fa-user-slash::before { + content: "\f506"; } -.fa-portrait:before { - content: "\f3e0"; } +.fa-pen::before { + content: "\f304"; } -.fa-pound-sign:before { - content: "\f154"; } +.fa-tower-observation::before { + content: "\e586"; } -.fa-power-off:before { - content: "\f011"; } +.fa-file-code::before { + content: "\f1c9"; } -.fa-pray:before { - content: "\f683"; } +.fa-signal::before { + content: "\f012"; } -.fa-praying-hands:before { - content: "\f684"; } +.fa-signal-5::before { + content: "\f012"; } -.fa-prescription:before { - content: "\f5b1"; } +.fa-signal-perfect::before { + content: "\f012"; } -.fa-prescription-bottle:before { - content: "\f485"; } +.fa-bus::before { + content: "\f207"; } -.fa-prescription-bottle-alt:before { - content: "\f486"; } +.fa-heart-circle-xmark::before { + content: "\e501"; } -.fa-print:before { - content: "\f02f"; } +.fa-house-chimney::before { + content: "\e3af"; } -.fa-procedures:before { - content: "\f487"; } +.fa-home-lg::before { + content: "\e3af"; } -.fa-product-hunt:before { - content: "\f288"; } +.fa-window-maximize::before { + content: "\f2d0"; } -.fa-project-diagram:before { - content: "\f542"; } +.fa-face-frown::before { + content: "\f119"; } -.fa-pump-medical:before { - content: "\e06a"; } +.fa-frown::before { + content: "\f119"; } -.fa-pump-soap:before { - content: "\e06b"; } +.fa-prescription::before { + content: "\f5b1"; } -.fa-pushed:before { - content: "\f3e1"; } +.fa-shop::before { + content: "\f54f"; } -.fa-puzzle-piece:before { - content: "\f12e"; } +.fa-store-alt::before { + content: "\f54f"; } -.fa-python:before { - content: "\f3e2"; } +.fa-floppy-disk::before { + content: "\f0c7"; } -.fa-qq:before { - content: "\f1d6"; } +.fa-save::before { + content: "\f0c7"; } -.fa-qrcode:before { - content: "\f029"; } +.fa-vihara::before { + content: "\f6a7"; } -.fa-question:before { - content: "\f128"; } +.fa-scale-unbalanced::before { + content: "\f515"; } -.fa-question-circle:before { - content: "\f059"; } +.fa-balance-scale-left::before { + content: "\f515"; } -.fa-quidditch:before { - content: "\f458"; } +.fa-sort-up::before { + content: "\f0de"; } -.fa-quinscape:before { - content: "\f459"; } +.fa-sort-asc::before { + content: "\f0de"; } -.fa-quora:before { - content: "\f2c4"; } +.fa-comment-dots::before { + content: "\f4ad"; } -.fa-quote-left:before { - content: "\f10d"; } +.fa-commenting::before { + content: "\f4ad"; } -.fa-quote-right:before { - content: "\f10e"; } +.fa-plant-wilt::before { + content: "\e5aa"; } -.fa-quran:before { - content: "\f687"; } +.fa-diamond::before { + content: "\f219"; } -.fa-r-project:before { - content: "\f4f7"; } +.fa-face-grin-squint::before { + content: "\f585"; } -.fa-radiation:before { - content: "\f7b9"; } +.fa-grin-squint::before { + content: "\f585"; } -.fa-radiation-alt:before { - content: "\f7ba"; } +.fa-hand-holding-dollar::before { + content: "\f4c0"; } -.fa-rainbow:before { - content: "\f75b"; } +.fa-hand-holding-usd::before { + content: "\f4c0"; } -.fa-random:before { - content: "\f074"; } +.fa-bacterium::before { + content: "\e05a"; } -.fa-raspberry-pi:before { - content: "\f7bb"; } +.fa-hand-pointer::before { + content: "\f25a"; } -.fa-ravelry:before { - content: "\f2d9"; } +.fa-drum-steelpan::before { + content: "\f56a"; } -.fa-react:before { - content: "\f41b"; } +.fa-hand-scissors::before { + content: "\f257"; } -.fa-reacteurope:before { - content: "\f75d"; } +.fa-hands-praying::before { + content: "\f684"; } -.fa-readme:before { - content: "\f4d5"; } +.fa-praying-hands::before { + content: "\f684"; } -.fa-rebel:before { - content: "\f1d0"; } +.fa-arrow-rotate-right::before { + content: "\f01e"; } -.fa-receipt:before { - content: "\f543"; } +.fa-arrow-right-rotate::before { + content: "\f01e"; } -.fa-record-vinyl:before { - content: "\f8d9"; } +.fa-arrow-rotate-forward::before { + content: "\f01e"; } -.fa-recycle:before { - content: "\f1b8"; } +.fa-redo::before { + content: "\f01e"; } -.fa-red-river:before { - content: "\f3e3"; } +.fa-biohazard::before { + content: "\f780"; } -.fa-reddit:before { - content: "\f1a1"; } +.fa-location-crosshairs::before { + content: "\f601"; } -.fa-reddit-alien:before { - content: "\f281"; } +.fa-location::before { + content: "\f601"; } -.fa-reddit-square:before { - content: "\f1a2"; } +.fa-mars-double::before { + content: "\f227"; } -.fa-redhat:before { - content: "\f7bc"; } +.fa-child-dress::before { + content: "\e59c"; } -.fa-redo:before { - content: "\f01e"; } +.fa-users-between-lines::before { + content: "\e591"; } -.fa-redo-alt:before { - content: "\f2f9"; } +.fa-lungs-virus::before { + content: "\e067"; } -.fa-registered:before { - content: "\f25d"; } +.fa-face-grin-tears::before { + content: "\f588"; } -.fa-remove-format:before { - content: "\f87d"; } +.fa-grin-tears::before { + content: "\f588"; } -.fa-renren:before { - content: "\f18b"; } +.fa-phone::before { + content: "\f095"; } -.fa-reply:before { - content: "\f3e5"; } +.fa-calendar-xmark::before { + content: "\f273"; } -.fa-reply-all:before { - content: "\f122"; } +.fa-calendar-times::before { + content: "\f273"; } -.fa-replyd:before { - content: "\f3e6"; } +.fa-child-reaching::before { + content: "\e59d"; } -.fa-republican:before { - content: "\f75e"; } +.fa-head-side-virus::before { + content: "\e064"; } -.fa-researchgate:before { - content: "\f4f8"; } +.fa-user-gear::before { + content: "\f4fe"; } -.fa-resolving:before { - content: "\f3e7"; } +.fa-user-cog::before { + content: "\f4fe"; } -.fa-restroom:before { - content: "\f7bd"; } +.fa-arrow-up-1-9::before { + content: "\f163"; } -.fa-retweet:before { - content: "\f079"; } +.fa-sort-numeric-up::before { + content: "\f163"; } -.fa-rev:before { - content: "\f5b2"; } +.fa-door-closed::before { + content: "\f52a"; } -.fa-ribbon:before { - content: "\f4d6"; } +.fa-shield-virus::before { + content: "\e06c"; } -.fa-ring:before { - content: "\f70b"; } +.fa-dice-six::before { + content: "\f526"; } -.fa-road:before { - content: "\f018"; } +.fa-mosquito-net::before { + content: "\e52c"; } -.fa-robot:before { - content: "\f544"; } +.fa-bridge-water::before { + content: "\e4ce"; } -.fa-rocket:before { - content: "\f135"; } +.fa-person-booth::before { + content: "\f756"; } -.fa-rocketchat:before { - content: "\f3e8"; } +.fa-text-width::before { + content: "\f035"; } -.fa-rockrms:before { - content: "\f3e9"; } +.fa-hat-wizard::before { + content: "\f6e8"; } -.fa-route:before { - content: "\f4d7"; } +.fa-pen-fancy::before { + content: "\f5ac"; } -.fa-rss:before { - content: "\f09e"; } +.fa-person-digging::before { + content: "\f85e"; } -.fa-rss-square:before { - content: "\f143"; } +.fa-digging::before { + content: "\f85e"; } -.fa-ruble-sign:before { - content: "\f158"; } +.fa-trash::before { + content: "\f1f8"; } -.fa-ruler:before { - content: "\f545"; } +.fa-gauge-simple::before { + content: "\f629"; } -.fa-ruler-combined:before { - content: "\f546"; } +.fa-gauge-simple-med::before { + content: "\f629"; } -.fa-ruler-horizontal:before { - content: "\f547"; } +.fa-tachometer-average::before { + content: "\f629"; } -.fa-ruler-vertical:before { - content: "\f548"; } +.fa-book-medical::before { + content: "\f7e6"; } -.fa-running:before { - content: "\f70c"; } +.fa-poo::before { + content: "\f2fe"; } -.fa-rupee-sign:before { - content: "\f156"; } +.fa-quote-right::before { + content: "\f10e"; } -.fa-rust:before { - content: "\e07a"; } +.fa-quote-right-alt::before { + content: "\f10e"; } -.fa-sad-cry:before { - content: "\f5b3"; } +.fa-shirt::before { + content: "\f553"; } -.fa-sad-tear:before { - content: "\f5b4"; } +.fa-t-shirt::before { + content: "\f553"; } -.fa-safari:before { - content: "\f267"; } +.fa-tshirt::before { + content: "\f553"; } -.fa-salesforce:before { - content: "\f83b"; } +.fa-cubes::before { + content: "\f1b3"; } -.fa-sass:before { - content: "\f41e"; } +.fa-divide::before { + content: "\f529"; } -.fa-satellite:before { - content: "\f7bf"; } +.fa-tenge-sign::before { + content: "\f7d7"; } -.fa-satellite-dish:before { - content: "\f7c0"; } +.fa-tenge::before { + content: "\f7d7"; } -.fa-save:before { - content: "\f0c7"; } +.fa-headphones::before { + content: "\f025"; } -.fa-schlix:before { - content: "\f3ea"; } +.fa-hands-holding::before { + content: "\f4c2"; } -.fa-school:before { - content: "\f549"; } +.fa-hands-clapping::before { + content: "\e1a8"; } -.fa-screwdriver:before { - content: "\f54a"; } +.fa-republican::before { + content: "\f75e"; } -.fa-scribd:before { - content: "\f28a"; } +.fa-arrow-left::before { + content: "\f060"; } -.fa-scroll:before { - content: "\f70e"; } +.fa-person-circle-xmark::before { + content: "\e543"; } -.fa-sd-card:before { - content: "\f7c2"; } +.fa-ruler::before { + content: "\f545"; } -.fa-search:before { - content: "\f002"; } +.fa-align-left::before { + content: "\f036"; } -.fa-search-dollar:before { - content: "\f688"; } +.fa-dice-d6::before { + content: "\f6d1"; } -.fa-search-location:before { - content: "\f689"; } +.fa-restroom::before { + content: "\f7bd"; } -.fa-search-minus:before { - content: "\f010"; } +.fa-j::before { + content: "\4a"; } -.fa-search-plus:before { - content: "\f00e"; } +.fa-users-viewfinder::before { + content: "\e595"; } -.fa-searchengin:before { - content: "\f3eb"; } +.fa-file-video::before { + content: "\f1c8"; } -.fa-seedling:before { - content: "\f4d8"; } +.fa-up-right-from-square::before { + content: "\f35d"; } -.fa-sellcast:before { - content: "\f2da"; } +.fa-external-link-alt::before { + content: "\f35d"; } -.fa-sellsy:before { - content: "\f213"; } +.fa-table-cells::before { + content: "\f00a"; } -.fa-server:before { - content: "\f233"; } +.fa-th::before { + content: "\f00a"; } -.fa-servicestack:before { - content: "\f3ec"; } +.fa-file-pdf::before { + content: "\f1c1"; } -.fa-shapes:before { - content: "\f61f"; } +.fa-book-bible::before { + content: "\f647"; } -.fa-share:before { - content: "\f064"; } +.fa-bible::before { + content: "\f647"; } -.fa-share-alt:before { - content: "\f1e0"; } +.fa-o::before { + content: "\4f"; } -.fa-share-alt-square:before { - content: "\f1e1"; } +.fa-suitcase-medical::before { + content: "\f0fa"; } -.fa-share-square:before { - content: "\f14d"; } +.fa-medkit::before { + content: "\f0fa"; } -.fa-shekel-sign:before { - content: "\f20b"; } +.fa-user-secret::before { + content: "\f21b"; } -.fa-shield-alt:before { - content: "\f3ed"; } +.fa-otter::before { + content: "\f700"; } -.fa-shield-virus:before { - content: "\e06c"; } +.fa-person-dress::before { + content: "\f182"; } -.fa-ship:before { - content: "\f21a"; } +.fa-female::before { + content: "\f182"; } -.fa-shipping-fast:before { - content: "\f48b"; } +.fa-comment-dollar::before { + content: "\f651"; } -.fa-shirtsinbulk:before { - content: "\f214"; } +.fa-business-time::before { + content: "\f64a"; } -.fa-shoe-prints:before { - content: "\f54b"; } +.fa-briefcase-clock::before { + content: "\f64a"; } -.fa-shopify:before { - content: "\e057"; } +.fa-table-cells-large::before { + content: "\f009"; } -.fa-shopping-bag:before { - content: "\f290"; } +.fa-th-large::before { + content: "\f009"; } -.fa-shopping-basket:before { - content: "\f291"; } +.fa-book-tanakh::before { + content: "\f827"; } -.fa-shopping-cart:before { - content: "\f07a"; } +.fa-tanakh::before { + content: "\f827"; } -.fa-shopware:before { - content: "\f5b5"; } +.fa-phone-volume::before { + content: "\f2a0"; } -.fa-shower:before { - content: "\f2cc"; } +.fa-volume-control-phone::before { + content: "\f2a0"; } -.fa-shuttle-van:before { - content: "\f5b6"; } +.fa-hat-cowboy-side::before { + content: "\f8c1"; } -.fa-sign:before { - content: "\f4d9"; } +.fa-clipboard-user::before { + content: "\f7f3"; } -.fa-sign-in-alt:before { - content: "\f2f6"; } +.fa-child::before { + content: "\f1ae"; } -.fa-sign-language:before { - content: "\f2a7"; } +.fa-lira-sign::before { + content: "\f195"; } -.fa-sign-out-alt:before { - content: "\f2f5"; } +.fa-satellite::before { + content: "\f7bf"; } -.fa-signal:before { - content: "\f012"; } +.fa-plane-lock::before { + content: "\e558"; } -.fa-signature:before { - content: "\f5b7"; } +.fa-tag::before { + content: "\f02b"; } -.fa-sim-card:before { - content: "\f7c4"; } +.fa-comment::before { + content: "\f075"; } -.fa-simplybuilt:before { - content: "\f215"; } +.fa-cake-candles::before { + content: "\f1fd"; } -.fa-sink:before { - content: "\e06d"; } +.fa-birthday-cake::before { + content: "\f1fd"; } -.fa-sistrix:before { - content: "\f3ee"; } +.fa-cake::before { + content: "\f1fd"; } -.fa-sitemap:before { - content: "\f0e8"; } +.fa-envelope::before { + content: "\f0e0"; } -.fa-sith:before { - content: "\f512"; } - -.fa-skating:before { - content: "\f7c5"; } - -.fa-sketch:before { - content: "\f7c6"; } +.fa-angles-up::before { + content: "\f102"; } -.fa-skiing:before { - content: "\f7c9"; } +.fa-angle-double-up::before { + content: "\f102"; } -.fa-skiing-nordic:before { - content: "\f7ca"; } +.fa-paperclip::before { + content: "\f0c6"; } -.fa-skull:before { - content: "\f54c"; } +.fa-arrow-right-to-city::before { + content: "\e4b3"; } -.fa-skull-crossbones:before { - content: "\f714"; } +.fa-ribbon::before { + content: "\f4d6"; } -.fa-skyatlas:before { - content: "\f216"; } +.fa-lungs::before { + content: "\f604"; } -.fa-skype:before { - content: "\f17e"; } +.fa-arrow-up-9-1::before { + content: "\f887"; } -.fa-slack:before { - content: "\f198"; } +.fa-sort-numeric-up-alt::before { + content: "\f887"; } -.fa-slack-hash:before { - content: "\f3ef"; } +.fa-litecoin-sign::before { + content: "\e1d3"; } -.fa-slash:before { - content: "\f715"; } +.fa-border-none::before { + content: "\f850"; } -.fa-sleigh:before { - content: "\f7cc"; } +.fa-circle-nodes::before { + content: "\e4e2"; } -.fa-sliders-h:before { - content: "\f1de"; } +.fa-parachute-box::before { + content: "\f4cd"; } -.fa-slideshare:before { - content: "\f1e7"; } +.fa-indent::before { + content: "\f03c"; } -.fa-smile:before { - content: "\f118"; } +.fa-truck-field-un::before { + content: "\e58e"; } -.fa-smile-beam:before { - content: "\f5b8"; } +.fa-hourglass::before { + content: "\f254"; } -.fa-smile-wink:before { - content: "\f4da"; } +.fa-hourglass-empty::before { + content: "\f254"; } -.fa-smog:before { - content: "\f75f"; } +.fa-mountain::before { + content: "\f6fc"; } -.fa-smoking:before { - content: "\f48d"; } +.fa-user-doctor::before { + content: "\f0f0"; } -.fa-smoking-ban:before { - content: "\f54d"; } +.fa-user-md::before { + content: "\f0f0"; } -.fa-sms:before { - content: "\f7cd"; } +.fa-circle-info::before { + content: "\f05a"; } -.fa-snapchat:before { - content: "\f2ab"; } +.fa-info-circle::before { + content: "\f05a"; } -.fa-snapchat-ghost:before { - content: "\f2ac"; } +.fa-cloud-meatball::before { + content: "\f73b"; } -.fa-snapchat-square:before { - content: "\f2ad"; } +.fa-camera::before { + content: "\f030"; } -.fa-snowboarding:before { - content: "\f7ce"; } +.fa-camera-alt::before { + content: "\f030"; } -.fa-snowflake:before { - content: "\f2dc"; } +.fa-square-virus::before { + content: "\e578"; } -.fa-snowman:before { - content: "\f7d0"; } +.fa-meteor::before { + content: "\f753"; } -.fa-snowplow:before { - content: "\f7d2"; } +.fa-car-on::before { + content: "\e4dd"; } -.fa-soap:before { - content: "\e06e"; } +.fa-sleigh::before { + content: "\f7cc"; } -.fa-socks:before { - content: "\f696"; } +.fa-arrow-down-1-9::before { + content: "\f162"; } -.fa-solar-panel:before { - content: "\f5ba"; } +.fa-sort-numeric-asc::before { + content: "\f162"; } -.fa-sort:before { - content: "\f0dc"; } +.fa-sort-numeric-down::before { + content: "\f162"; } -.fa-sort-alpha-down:before { - content: "\f15d"; } +.fa-hand-holding-droplet::before { + content: "\f4c1"; } -.fa-sort-alpha-down-alt:before { - content: "\f881"; } +.fa-hand-holding-water::before { + content: "\f4c1"; } -.fa-sort-alpha-up:before { - content: "\f15e"; } +.fa-water::before { + content: "\f773"; } -.fa-sort-alpha-up-alt:before { - content: "\f882"; } +.fa-calendar-check::before { + content: "\f274"; } -.fa-sort-amount-down:before { - content: "\f160"; } +.fa-braille::before { + content: "\f2a1"; } -.fa-sort-amount-down-alt:before { - content: "\f884"; } +.fa-prescription-bottle-medical::before { + content: "\f486"; } -.fa-sort-amount-up:before { - content: "\f161"; } +.fa-prescription-bottle-alt::before { + content: "\f486"; } -.fa-sort-amount-up-alt:before { - content: "\f885"; } +.fa-landmark::before { + content: "\f66f"; } -.fa-sort-down:before { - content: "\f0dd"; } +.fa-truck::before { + content: "\f0d1"; } -.fa-sort-numeric-down:before { - content: "\f162"; } +.fa-crosshairs::before { + content: "\f05b"; } -.fa-sort-numeric-down-alt:before { - content: "\f886"; } +.fa-person-cane::before { + content: "\e53c"; } -.fa-sort-numeric-up:before { - content: "\f163"; } +.fa-tent::before { + content: "\e57d"; } -.fa-sort-numeric-up-alt:before { - content: "\f887"; } +.fa-vest-patches::before { + content: "\e086"; } -.fa-sort-up:before { - content: "\f0de"; } +.fa-check-double::before { + content: "\f560"; } -.fa-soundcloud:before { - content: "\f1be"; } +.fa-arrow-down-a-z::before { + content: "\f15d"; } -.fa-sourcetree:before { - content: "\f7d3"; } +.fa-sort-alpha-asc::before { + content: "\f15d"; } -.fa-spa:before { - content: "\f5bb"; } +.fa-sort-alpha-down::before { + content: "\f15d"; } -.fa-space-shuttle:before { - content: "\f197"; } +.fa-money-bill-wheat::before { + content: "\e52a"; } -.fa-speakap:before { - content: "\f3f3"; } +.fa-cookie::before { + content: "\f563"; } -.fa-speaker-deck:before { - content: "\f83c"; } +.fa-arrow-rotate-left::before { + content: "\f0e2"; } -.fa-spell-check:before { - content: "\f891"; } +.fa-arrow-left-rotate::before { + content: "\f0e2"; } -.fa-spider:before { - content: "\f717"; } +.fa-arrow-rotate-back::before { + content: "\f0e2"; } -.fa-spinner:before { - content: "\f110"; } +.fa-arrow-rotate-backward::before { + content: "\f0e2"; } -.fa-splotch:before { - content: "\f5bc"; } +.fa-undo::before { + content: "\f0e2"; } -.fa-spotify:before { - content: "\f1bc"; } +.fa-hard-drive::before { + content: "\f0a0"; } -.fa-spray-can:before { - content: "\f5bd"; } +.fa-hdd::before { + content: "\f0a0"; } -.fa-square:before { - content: "\f0c8"; } +.fa-face-grin-squint-tears::before { + content: "\f586"; } -.fa-square-full:before { - content: "\f45c"; } +.fa-grin-squint-tears::before { + content: "\f586"; } -.fa-square-root-alt:before { - content: "\f698"; } +.fa-dumbbell::before { + content: "\f44b"; } -.fa-squarespace:before { - content: "\f5be"; } +.fa-rectangle-list::before { + content: "\f022"; } -.fa-stack-exchange:before { - content: "\f18d"; } +.fa-list-alt::before { + content: "\f022"; } -.fa-stack-overflow:before { - content: "\f16c"; } +.fa-tarp-droplet::before { + content: "\e57c"; } -.fa-stackpath:before { - content: "\f842"; } +.fa-house-medical-circle-check::before { + content: "\e511"; } -.fa-stamp:before { - content: "\f5bf"; } +.fa-person-skiing-nordic::before { + content: "\f7ca"; } -.fa-star:before { - content: "\f005"; } +.fa-skiing-nordic::before { + content: "\f7ca"; } -.fa-star-and-crescent:before { - content: "\f699"; } +.fa-calendar-plus::before { + content: "\f271"; } -.fa-star-half:before { - content: "\f089"; } +.fa-plane-arrival::before { + content: "\f5af"; } -.fa-star-half-alt:before { - content: "\f5c0"; } +.fa-circle-left::before { + content: "\f359"; } -.fa-star-of-david:before { - content: "\f69a"; } +.fa-arrow-alt-circle-left::before { + content: "\f359"; } -.fa-star-of-life:before { - content: "\f621"; } +.fa-train-subway::before { + content: "\f239"; } -.fa-staylinked:before { - content: "\f3f5"; } +.fa-subway::before { + content: "\f239"; } -.fa-steam:before { - content: "\f1b6"; } +.fa-chart-gantt::before { + content: "\e0e4"; } -.fa-steam-square:before { - content: "\f1b7"; } +.fa-indian-rupee-sign::before { + content: "\e1bc"; } -.fa-steam-symbol:before { - content: "\f3f6"; } +.fa-indian-rupee::before { + content: "\e1bc"; } -.fa-step-backward:before { - content: "\f048"; } +.fa-inr::before { + content: "\e1bc"; } -.fa-step-forward:before { - content: "\f051"; } +.fa-crop-simple::before { + content: "\f565"; } -.fa-stethoscope:before { - content: "\f0f1"; } +.fa-crop-alt::before { + content: "\f565"; } -.fa-sticker-mule:before { - content: "\f3f7"; } +.fa-money-bill-1::before { + content: "\f3d1"; } -.fa-sticky-note:before { - content: "\f249"; } +.fa-money-bill-alt::before { + content: "\f3d1"; } -.fa-stop:before { - content: "\f04d"; } +.fa-left-long::before { + content: "\f30a"; } -.fa-stop-circle:before { - content: "\f28d"; } +.fa-long-arrow-alt-left::before { + content: "\f30a"; } -.fa-stopwatch:before { - content: "\f2f2"; } +.fa-dna::before { + content: "\f471"; } -.fa-stopwatch-20:before { - content: "\e06f"; } +.fa-virus-slash::before { + content: "\e075"; } -.fa-store:before { - content: "\f54e"; } +.fa-minus::before { + content: "\f068"; } -.fa-store-alt:before { - content: "\f54f"; } +.fa-subtract::before { + content: "\f068"; } -.fa-store-alt-slash:before { - content: "\e070"; } +.fa-chess::before { + content: "\f439"; } -.fa-store-slash:before { - content: "\e071"; } +.fa-arrow-left-long::before { + content: "\f177"; } -.fa-strava:before { - content: "\f428"; } +.fa-long-arrow-left::before { + content: "\f177"; } -.fa-stream:before { - content: "\f550"; } +.fa-plug-circle-check::before { + content: "\e55c"; } -.fa-street-view:before { +.fa-street-view::before { content: "\f21d"; } -.fa-strikethrough:before { - content: "\f0cc"; } +.fa-franc-sign::before { + content: "\e18f"; } -.fa-stripe:before { - content: "\f429"; } +.fa-volume-off::before { + content: "\f026"; } -.fa-stripe-s:before { - content: "\f42a"; } +.fa-hands-asl-interpreting::before { + content: "\f2a3"; } -.fa-stroopwafel:before { - content: "\f551"; } +.fa-american-sign-language-interpreting::before { + content: "\f2a3"; } -.fa-studiovinari:before { - content: "\f3f8"; } +.fa-asl-interpreting::before { + content: "\f2a3"; } -.fa-stumbleupon:before { - content: "\f1a4"; } +.fa-hands-american-sign-language-interpreting::before { + content: "\f2a3"; } -.fa-stumbleupon-circle:before { - content: "\f1a3"; } +.fa-gear::before { + content: "\f013"; } -.fa-subscript:before { - content: "\f12c"; } +.fa-cog::before { + content: "\f013"; } -.fa-subway:before { - content: "\f239"; } +.fa-droplet-slash::before { + content: "\f5c7"; } -.fa-suitcase:before { - content: "\f0f2"; } +.fa-tint-slash::before { + content: "\f5c7"; } -.fa-suitcase-rolling:before { - content: "\f5c1"; } +.fa-mosque::before { + content: "\f678"; } -.fa-sun:before { - content: "\f185"; } +.fa-mosquito::before { + content: "\e52b"; } -.fa-superpowers:before { - content: "\f2dd"; } +.fa-star-of-david::before { + content: "\f69a"; } -.fa-superscript:before { - content: "\f12b"; } +.fa-person-military-rifle::before { + content: "\e54b"; } -.fa-supple:before { - content: "\f3f9"; } +.fa-cart-shopping::before { + content: "\f07a"; } -.fa-surprise:before { - content: "\f5c2"; } +.fa-shopping-cart::before { + content: "\f07a"; } -.fa-suse:before { - content: "\f7d6"; } +.fa-vials::before { + content: "\f493"; } -.fa-swatchbook:before { - content: "\f5c3"; } +.fa-plug-circle-plus::before { + content: "\e55f"; } -.fa-swift:before { - content: "\f8e1"; } +.fa-place-of-worship::before { + content: "\f67f"; } -.fa-swimmer:before { - content: "\f5c4"; } +.fa-grip-vertical::before { + content: "\f58e"; } -.fa-swimming-pool:before { - content: "\f5c5"; } +.fa-arrow-turn-up::before { + content: "\f148"; } -.fa-symfony:before { - content: "\f83d"; } +.fa-level-up::before { + content: "\f148"; } -.fa-synagogue:before { - content: "\f69b"; } +.fa-u::before { + content: "\55"; } -.fa-sync:before { - content: "\f021"; } +.fa-square-root-variable::before { + content: "\f698"; } -.fa-sync-alt:before { - content: "\f2f1"; } +.fa-square-root-alt::before { + content: "\f698"; } -.fa-syringe:before { - content: "\f48e"; } +.fa-clock::before { + content: "\f017"; } -.fa-table:before { - content: "\f0ce"; } +.fa-clock-four::before { + content: "\f017"; } -.fa-table-tennis:before { - content: "\f45d"; } +.fa-backward-step::before { + content: "\f048"; } -.fa-tablet:before { - content: "\f10a"; } +.fa-step-backward::before { + content: "\f048"; } -.fa-tablet-alt:before { - content: "\f3fa"; } +.fa-pallet::before { + content: "\f482"; } -.fa-tablets:before { - content: "\f490"; } +.fa-faucet::before { + content: "\e005"; } -.fa-tachometer-alt:before { - content: "\f3fd"; } +.fa-baseball-bat-ball::before { + content: "\f432"; } -.fa-tag:before { - content: "\f02b"; } +.fa-s::before { + content: "\53"; } -.fa-tags:before { - content: "\f02c"; } +.fa-timeline::before { + content: "\e29c"; } -.fa-tape:before { - content: "\f4db"; } +.fa-keyboard::before { + content: "\f11c"; } -.fa-tasks:before { - content: "\f0ae"; } +.fa-caret-down::before { + content: "\f0d7"; } -.fa-taxi:before { - content: "\f1ba"; } +.fa-house-chimney-medical::before { + content: "\f7f2"; } -.fa-teamspeak:before { - content: "\f4f9"; } +.fa-clinic-medical::before { + content: "\f7f2"; } -.fa-teeth:before { - content: "\f62e"; } +.fa-temperature-three-quarters::before { + content: "\f2c8"; } -.fa-teeth-open:before { - content: "\f62f"; } +.fa-temperature-3::before { + content: "\f2c8"; } -.fa-telegram:before { - content: "\f2c6"; } +.fa-thermometer-3::before { + content: "\f2c8"; } -.fa-telegram-plane:before { - content: "\f3fe"; } +.fa-thermometer-three-quarters::before { + content: "\f2c8"; } -.fa-temperature-high:before { - content: "\f769"; } +.fa-mobile-screen::before { + content: "\f3cf"; } -.fa-temperature-low:before { - content: "\f76b"; } +.fa-mobile-android-alt::before { + content: "\f3cf"; } -.fa-tencent-weibo:before { - content: "\f1d5"; } +.fa-plane-up::before { + content: "\e22d"; } -.fa-tenge:before { - content: "\f7d7"; } +.fa-piggy-bank::before { + content: "\f4d3"; } -.fa-terminal:before { - content: "\f120"; } +.fa-battery-half::before { + content: "\f242"; } -.fa-text-height:before { - content: "\f034"; } +.fa-battery-3::before { + content: "\f242"; } -.fa-text-width:before { - content: "\f035"; } +.fa-mountain-city::before { + content: "\e52e"; } -.fa-th:before { - content: "\f00a"; } +.fa-coins::before { + content: "\f51e"; } -.fa-th-large:before { - content: "\f009"; } +.fa-khanda::before { + content: "\f66d"; } -.fa-th-list:before { - content: "\f00b"; } +.fa-sliders::before { + content: "\f1de"; } -.fa-the-red-yeti:before { - content: "\f69d"; } +.fa-sliders-h::before { + content: "\f1de"; } -.fa-theater-masks:before { - content: "\f630"; } +.fa-folder-tree::before { + content: "\f802"; } -.fa-themeco:before { - content: "\f5c6"; } +.fa-network-wired::before { + content: "\f6ff"; } -.fa-themeisle:before { - content: "\f2b2"; } +.fa-map-pin::before { + content: "\f276"; } -.fa-thermometer:before { - content: "\f491"; } +.fa-hamsa::before { + content: "\f665"; } -.fa-thermometer-empty:before { - content: "\f2cb"; } +.fa-cent-sign::before { + content: "\e3f5"; } -.fa-thermometer-full:before { - content: "\f2c7"; } +.fa-flask::before { + content: "\f0c3"; } -.fa-thermometer-half:before { - content: "\f2c9"; } +.fa-person-pregnant::before { + content: "\e31e"; } -.fa-thermometer-quarter:before { - content: "\f2ca"; } +.fa-wand-sparkles::before { + content: "\f72b"; } -.fa-thermometer-three-quarters:before { - content: "\f2c8"; } +.fa-ellipsis-vertical::before { + content: "\f142"; } -.fa-think-peaks:before { - content: "\f731"; } +.fa-ellipsis-v::before { + content: "\f142"; } -.fa-thumbs-down:before { - content: "\f165"; } +.fa-ticket::before { + content: "\f145"; } -.fa-thumbs-up:before { - content: "\f164"; } +.fa-power-off::before { + content: "\f011"; } -.fa-thumbtack:before { - content: "\f08d"; } +.fa-right-long::before { + content: "\f30b"; } -.fa-ticket-alt:before { - content: "\f3ff"; } +.fa-long-arrow-alt-right::before { + content: "\f30b"; } -.fa-tiktok:before { - content: "\e07b"; } +.fa-flag-usa::before { + content: "\f74d"; } -.fa-times:before { - content: "\f00d"; } +.fa-laptop-file::before { + content: "\e51d"; } -.fa-times-circle:before { - content: "\f057"; } +.fa-tty::before { + content: "\f1e4"; } -.fa-tint:before { - content: "\f043"; } +.fa-teletype::before { + content: "\f1e4"; } -.fa-tint-slash:before { - content: "\f5c7"; } +.fa-diagram-next::before { + content: "\e476"; } -.fa-tired:before { - content: "\f5c8"; } +.fa-person-rifle::before { + content: "\e54e"; } -.fa-toggle-off:before { - content: "\f204"; } +.fa-house-medical-circle-exclamation::before { + content: "\e512"; } -.fa-toggle-on:before { - content: "\f205"; } +.fa-closed-captioning::before { + content: "\f20a"; } -.fa-toilet:before { - content: "\f7d8"; } +.fa-person-hiking::before { + content: "\f6ec"; } -.fa-toilet-paper:before { - content: "\f71e"; } +.fa-hiking::before { + content: "\f6ec"; } -.fa-toilet-paper-slash:before { - content: "\e072"; } +.fa-venus-double::before { + content: "\f226"; } -.fa-toolbox:before { - content: "\f552"; } +.fa-images::before { + content: "\f302"; } -.fa-tools:before { - content: "\f7d9"; } +.fa-calculator::before { + content: "\f1ec"; } -.fa-tooth:before { - content: "\f5c9"; } +.fa-people-pulling::before { + content: "\e535"; } -.fa-torah:before { - content: "\f6a0"; } +.fa-n::before { + content: "\4e"; } -.fa-torii-gate:before { - content: "\f6a1"; } +.fa-cable-car::before { + content: "\f7da"; } -.fa-tractor:before { - content: "\f722"; } +.fa-tram::before { + content: "\f7da"; } -.fa-trade-federation:before { - content: "\f513"; } +.fa-cloud-rain::before { + content: "\f73d"; } -.fa-trademark:before { - content: "\f25c"; } +.fa-building-circle-xmark::before { + content: "\e4d4"; } -.fa-traffic-light:before { - content: "\f637"; } +.fa-ship::before { + content: "\f21a"; } -.fa-trailer:before { - content: "\e041"; } +.fa-arrows-down-to-line::before { + content: "\e4b8"; } -.fa-train:before { - content: "\f238"; } +.fa-download::before { + content: "\f019"; } -.fa-tram:before { - content: "\f7da"; } +.fa-face-grin::before { + content: "\f580"; } -.fa-transgender:before { - content: "\f224"; } +.fa-grin::before { + content: "\f580"; } -.fa-transgender-alt:before { - content: "\f225"; } +.fa-delete-left::before { + content: "\f55a"; } -.fa-trash:before { - content: "\f1f8"; } +.fa-backspace::before { + content: "\f55a"; } -.fa-trash-alt:before { - content: "\f2ed"; } +.fa-eye-dropper::before { + content: "\f1fb"; } -.fa-trash-restore:before { - content: "\f829"; } +.fa-eye-dropper-empty::before { + content: "\f1fb"; } -.fa-trash-restore-alt:before { - content: "\f82a"; } +.fa-eyedropper::before { + content: "\f1fb"; } -.fa-tree:before { - content: "\f1bb"; } +.fa-file-circle-check::before { + content: "\e5a0"; } -.fa-trello:before { - content: "\f181"; } +.fa-forward::before { + content: "\f04e"; } -.fa-trophy:before { - content: "\f091"; } +.fa-mobile::before { + content: "\f3ce"; } -.fa-truck:before { - content: "\f0d1"; } +.fa-mobile-android::before { + content: "\f3ce"; } -.fa-truck-loading:before { - content: "\f4de"; } +.fa-mobile-phone::before { + content: "\f3ce"; } -.fa-truck-monster:before { - content: "\f63b"; } +.fa-face-meh::before { + content: "\f11a"; } -.fa-truck-moving:before { - content: "\f4df"; } +.fa-meh::before { + content: "\f11a"; } -.fa-truck-pickup:before { - content: "\f63c"; } +.fa-align-center::before { + content: "\f037"; } -.fa-tshirt:before { - content: "\f553"; } +.fa-book-skull::before { + content: "\f6b7"; } -.fa-tty:before { - content: "\f1e4"; } +.fa-book-dead::before { + content: "\f6b7"; } -.fa-tumblr:before { - content: "\f173"; } +.fa-id-card::before { + content: "\f2c2"; } -.fa-tumblr-square:before { - content: "\f174"; } +.fa-drivers-license::before { + content: "\f2c2"; } -.fa-tv:before { - content: "\f26c"; } +.fa-outdent::before { + content: "\f03b"; } -.fa-twitch:before { - content: "\f1e8"; } +.fa-dedent::before { + content: "\f03b"; } -.fa-twitter:before { - content: "\f099"; } +.fa-heart-circle-exclamation::before { + content: "\e4fe"; } -.fa-twitter-square:before { - content: "\f081"; } +.fa-house::before { + content: "\f015"; } -.fa-typo3:before { - content: "\f42b"; } +.fa-home::before { + content: "\f015"; } -.fa-uber:before { - content: "\f402"; } +.fa-home-alt::before { + content: "\f015"; } -.fa-ubuntu:before { - content: "\f7df"; } +.fa-home-lg-alt::before { + content: "\f015"; } -.fa-uikit:before { - content: "\f403"; } +.fa-calendar-week::before { + content: "\f784"; } -.fa-umbraco:before { - content: "\f8e8"; } +.fa-laptop-medical::before { + content: "\f812"; } -.fa-umbrella:before { - content: "\f0e9"; } +.fa-b::before { + content: "\42"; } -.fa-umbrella-beach:before { - content: "\f5ca"; } +.fa-file-medical::before { + content: "\f477"; } -.fa-uncharted:before { - content: "\e084"; } +.fa-dice-one::before { + content: "\f525"; } -.fa-underline:before { - content: "\f0cd"; } +.fa-kiwi-bird::before { + content: "\f535"; } -.fa-undo:before { - content: "\f0e2"; } +.fa-arrow-right-arrow-left::before { + content: "\f0ec"; } -.fa-undo-alt:before { - content: "\f2ea"; } +.fa-exchange::before { + content: "\f0ec"; } -.fa-uniregistry:before { - content: "\f404"; } +.fa-rotate-right::before { + content: "\f2f9"; } -.fa-unity:before { - content: "\e049"; } +.fa-redo-alt::before { + content: "\f2f9"; } -.fa-universal-access:before { - content: "\f29a"; } +.fa-rotate-forward::before { + content: "\f2f9"; } -.fa-university:before { - content: "\f19c"; } +.fa-utensils::before { + content: "\f2e7"; } -.fa-unlink:before { - content: "\f127"; } +.fa-cutlery::before { + content: "\f2e7"; } -.fa-unlock:before { - content: "\f09c"; } +.fa-arrow-up-wide-short::before { + content: "\f161"; } -.fa-unlock-alt:before { - content: "\f13e"; } +.fa-sort-amount-up::before { + content: "\f161"; } -.fa-unsplash:before { - content: "\e07c"; } +.fa-mill-sign::before { + content: "\e1ed"; } -.fa-untappd:before { - content: "\f405"; } +.fa-bowl-rice::before { + content: "\e2eb"; } -.fa-upload:before { - content: "\f093"; } +.fa-skull::before { + content: "\f54c"; } -.fa-ups:before { - content: "\f7e0"; } +.fa-tower-broadcast::before { + content: "\f519"; } -.fa-usb:before { - content: "\f287"; } +.fa-broadcast-tower::before { + content: "\f519"; } -.fa-user:before { - content: "\f007"; } +.fa-truck-pickup::before { + content: "\f63c"; } -.fa-user-alt:before { - content: "\f406"; } +.fa-up-long::before { + content: "\f30c"; } -.fa-user-alt-slash:before { - content: "\f4fa"; } +.fa-long-arrow-alt-up::before { + content: "\f30c"; } -.fa-user-astronaut:before { - content: "\f4fb"; } +.fa-stop::before { + content: "\f04d"; } -.fa-user-check:before { - content: "\f4fc"; } +.fa-code-merge::before { + content: "\f387"; } -.fa-user-circle:before { - content: "\f2bd"; } +.fa-upload::before { + content: "\f093"; } -.fa-user-clock:before { - content: "\f4fd"; } +.fa-hurricane::before { + content: "\f751"; } -.fa-user-cog:before { - content: "\f4fe"; } +.fa-mound::before { + content: "\e52d"; } -.fa-user-edit:before { - content: "\f4ff"; } +.fa-toilet-portable::before { + content: "\e583"; } -.fa-user-friends:before { - content: "\f500"; } +.fa-compact-disc::before { + content: "\f51f"; } -.fa-user-graduate:before { - content: "\f501"; } +.fa-file-arrow-down::before { + content: "\f56d"; } -.fa-user-injured:before { - content: "\f728"; } +.fa-file-download::before { + content: "\f56d"; } -.fa-user-lock:before { - content: "\f502"; } +.fa-caravan::before { + content: "\f8ff"; } -.fa-user-md:before { - content: "\f0f0"; } +.fa-shield-cat::before { + content: "\e572"; } -.fa-user-minus:before { - content: "\f503"; } +.fa-bolt::before { + content: "\f0e7"; } -.fa-user-ninja:before { - content: "\f504"; } +.fa-zap::before { + content: "\f0e7"; } -.fa-user-nurse:before { - content: "\f82f"; } +.fa-glass-water::before { + content: "\e4f4"; } -.fa-user-plus:before { - content: "\f234"; } +.fa-oil-well::before { + content: "\e532"; } -.fa-user-secret:before { - content: "\f21b"; } +.fa-vault::before { + content: "\e2c5"; } -.fa-user-shield:before { - content: "\f505"; } +.fa-mars::before { + content: "\f222"; } -.fa-user-slash:before { - content: "\f506"; } +.fa-toilet::before { + content: "\f7d8"; } -.fa-user-tag:before { - content: "\f507"; } +.fa-plane-circle-xmark::before { + content: "\e557"; } -.fa-user-tie:before { - content: "\f508"; } +.fa-yen-sign::before { + content: "\f157"; } -.fa-user-times:before { - content: "\f235"; } +.fa-cny::before { + content: "\f157"; } -.fa-users:before { - content: "\f0c0"; } +.fa-jpy::before { + content: "\f157"; } -.fa-users-cog:before { - content: "\f509"; } +.fa-rmb::before { + content: "\f157"; } -.fa-users-slash:before { - content: "\e073"; } +.fa-yen::before { + content: "\f157"; } -.fa-usps:before { - content: "\f7e1"; } +.fa-ruble-sign::before { + content: "\f158"; } -.fa-ussunnah:before { - content: "\f407"; } +.fa-rouble::before { + content: "\f158"; } -.fa-utensil-spoon:before { - content: "\f2e5"; } +.fa-rub::before { + content: "\f158"; } -.fa-utensils:before { - content: "\f2e7"; } +.fa-ruble::before { + content: "\f158"; } -.fa-vaadin:before { - content: "\f408"; } +.fa-sun::before { + content: "\f185"; } -.fa-vector-square:before { - content: "\f5cb"; } +.fa-guitar::before { + content: "\f7a6"; } -.fa-venus:before { - content: "\f221"; } +.fa-face-laugh-wink::before { + content: "\f59c"; } -.fa-venus-double:before { - content: "\f226"; } +.fa-laugh-wink::before { + content: "\f59c"; } -.fa-venus-mars:before { - content: "\f228"; } +.fa-horse-head::before { + content: "\f7ab"; } -.fa-vest:before { - content: "\e085"; } +.fa-bore-hole::before { + content: "\e4c3"; } -.fa-vest-patches:before { - content: "\e086"; } +.fa-industry::before { + content: "\f275"; } -.fa-viacoin:before { - content: "\f237"; } +.fa-circle-down::before { + content: "\f358"; } -.fa-viadeo:before { - content: "\f2a9"; } +.fa-arrow-alt-circle-down::before { + content: "\f358"; } -.fa-viadeo-square:before { - content: "\f2aa"; } +.fa-arrows-turn-to-dots::before { + content: "\e4c1"; } -.fa-vial:before { - content: "\f492"; } +.fa-florin-sign::before { + content: "\e184"; } -.fa-vials:before { - content: "\f493"; } +.fa-arrow-down-short-wide::before { + content: "\f884"; } -.fa-viber:before { - content: "\f409"; } +.fa-sort-amount-desc::before { + content: "\f884"; } -.fa-video:before { - content: "\f03d"; } +.fa-sort-amount-down-alt::before { + content: "\f884"; } -.fa-video-slash:before { - content: "\f4e2"; } +.fa-less-than::before { + content: "\3c"; } -.fa-vihara:before { - content: "\f6a7"; } +.fa-angle-down::before { + content: "\f107"; } -.fa-vimeo:before { - content: "\f40a"; } +.fa-car-tunnel::before { + content: "\e4de"; } -.fa-vimeo-square:before { - content: "\f194"; } +.fa-head-side-cough::before { + content: "\e061"; } -.fa-vimeo-v:before { - content: "\f27d"; } +.fa-grip-lines::before { + content: "\f7a4"; } -.fa-vine:before { - content: "\f1ca"; } +.fa-thumbs-down::before { + content: "\f165"; } -.fa-virus:before { - content: "\e074"; } +.fa-user-lock::before { + content: "\f502"; } -.fa-virus-slash:before { - content: "\e075"; } +.fa-arrow-right-long::before { + content: "\f178"; } -.fa-viruses:before { - content: "\e076"; } +.fa-long-arrow-right::before { + content: "\f178"; } -.fa-vk:before { - content: "\f189"; } +.fa-anchor-circle-xmark::before { + content: "\e4ac"; } -.fa-vnv:before { - content: "\f40b"; } +.fa-ellipsis::before { + content: "\f141"; } -.fa-voicemail:before { - content: "\f897"; } +.fa-ellipsis-h::before { + content: "\f141"; } -.fa-volleyball-ball:before { - content: "\f45f"; } +.fa-chess-pawn::before { + content: "\f443"; } -.fa-volume-down:before { - content: "\f027"; } +.fa-kit-medical::before { + content: "\f479"; } -.fa-volume-mute:before { - content: "\f6a9"; } +.fa-first-aid::before { + content: "\f479"; } -.fa-volume-off:before { - content: "\f026"; } +.fa-person-through-window::before { + content: "\e5a9"; } -.fa-volume-up:before { - content: "\f028"; } +.fa-toolbox::before { + content: "\f552"; } -.fa-vote-yea:before { - content: "\f772"; } +.fa-hands-holding-circle::before { + content: "\e4fb"; } -.fa-vr-cardboard:before { - content: "\f729"; } +.fa-bug::before { + content: "\f188"; } -.fa-vuejs:before { - content: "\f41f"; } +.fa-credit-card::before { + content: "\f09d"; } -.fa-walking:before { - content: "\f554"; } +.fa-credit-card-alt::before { + content: "\f09d"; } -.fa-wallet:before { - content: "\f555"; } +.fa-car::before { + content: "\f1b9"; } -.fa-warehouse:before { - content: "\f494"; } +.fa-automobile::before { + content: "\f1b9"; } -.fa-watchman-monitoring:before { - content: "\e087"; } +.fa-hand-holding-hand::before { + content: "\e4f7"; } -.fa-water:before { - content: "\f773"; } +.fa-book-open-reader::before { + content: "\f5da"; } -.fa-wave-square:before { - content: "\f83e"; } +.fa-book-reader::before { + content: "\f5da"; } -.fa-waze:before { - content: "\f83f"; } +.fa-mountain-sun::before { + content: "\e52f"; } -.fa-weebly:before { - content: "\f5cc"; } +.fa-arrows-left-right-to-line::before { + content: "\e4ba"; } -.fa-weibo:before { - content: "\f18a"; } +.fa-dice-d20::before { + content: "\f6cf"; } -.fa-weight:before { - content: "\f496"; } +.fa-truck-droplet::before { + content: "\e58c"; } -.fa-weight-hanging:before { - content: "\f5cd"; } +.fa-file-circle-xmark::before { + content: "\e5a1"; } -.fa-weixin:before { - content: "\f1d7"; } +.fa-temperature-arrow-up::before { + content: "\e040"; } -.fa-whatsapp:before { - content: "\f232"; } +.fa-temperature-up::before { + content: "\e040"; } -.fa-whatsapp-square:before { - content: "\f40c"; } +.fa-medal::before { + content: "\f5a2"; } -.fa-wheelchair:before { - content: "\f193"; } +.fa-bed::before { + content: "\f236"; } -.fa-whmcs:before { - content: "\f40d"; } +.fa-square-h::before { + content: "\f0fd"; } -.fa-wifi:before { - content: "\f1eb"; } +.fa-h-square::before { + content: "\f0fd"; } -.fa-wikipedia-w:before { - content: "\f266"; } +.fa-podcast::before { + content: "\f2ce"; } -.fa-wind:before { - content: "\f72e"; } +.fa-temperature-full::before { + content: "\f2c7"; } -.fa-window-close:before { - content: "\f410"; } +.fa-temperature-4::before { + content: "\f2c7"; } -.fa-window-maximize:before { - content: "\f2d0"; } +.fa-thermometer-4::before { + content: "\f2c7"; } -.fa-window-minimize:before { - content: "\f2d1"; } +.fa-thermometer-full::before { + content: "\f2c7"; } -.fa-window-restore:before { - content: "\f2d2"; } +.fa-bell::before { + content: "\f0f3"; } -.fa-windows:before { - content: "\f17a"; } +.fa-superscript::before { + content: "\f12b"; } -.fa-wine-bottle:before { - content: "\f72f"; } +.fa-plug-circle-xmark::before { + content: "\e560"; } -.fa-wine-glass:before { - content: "\f4e3"; } +.fa-star-of-life::before { + content: "\f621"; } -.fa-wine-glass-alt:before { - content: "\f5ce"; } +.fa-phone-slash::before { + content: "\f3dd"; } -.fa-wix:before { - content: "\f5cf"; } +.fa-paint-roller::before { + content: "\f5aa"; } -.fa-wizards-of-the-coast:before { - content: "\f730"; } +.fa-handshake-angle::before { + content: "\f4c4"; } -.fa-wodu:before { - content: "\e088"; } +.fa-hands-helping::before { + content: "\f4c4"; } -.fa-wolf-pack-battalion:before { - content: "\f514"; } +.fa-location-dot::before { + content: "\f3c5"; } -.fa-won-sign:before { - content: "\f159"; } +.fa-map-marker-alt::before { + content: "\f3c5"; } -.fa-wordpress:before { - content: "\f19a"; } +.fa-file::before { + content: "\f15b"; } -.fa-wordpress-simple:before { - content: "\f411"; } +.fa-greater-than::before { + content: "\3e"; } -.fa-wpbeginner:before { - content: "\f297"; } +.fa-person-swimming::before { + content: "\f5c4"; } -.fa-wpexplorer:before { - content: "\f2de"; } +.fa-swimmer::before { + content: "\f5c4"; } -.fa-wpforms:before { - content: "\f298"; } +.fa-arrow-down::before { + content: "\f063"; } -.fa-wpressr:before { - content: "\f3e4"; } +.fa-droplet::before { + content: "\f043"; } -.fa-wrench:before { - content: "\f0ad"; } +.fa-tint::before { + content: "\f043"; } -.fa-x-ray:before { - content: "\f497"; } +.fa-eraser::before { + content: "\f12d"; } -.fa-xbox:before { - content: "\f412"; } +.fa-earth-americas::before { + content: "\f57d"; } -.fa-xing:before { - content: "\f168"; } +.fa-earth::before { + content: "\f57d"; } -.fa-xing-square:before { - content: "\f169"; } +.fa-earth-america::before { + content: "\f57d"; } -.fa-y-combinator:before { - content: "\f23b"; } +.fa-globe-americas::before { + content: "\f57d"; } -.fa-yahoo:before { - content: "\f19e"; } +.fa-person-burst::before { + content: "\e53b"; } -.fa-yammer:before { - content: "\f840"; } +.fa-dove::before { + content: "\f4ba"; } -.fa-yandex:before { - content: "\f413"; } +.fa-battery-empty::before { + content: "\f244"; } -.fa-yandex-international:before { - content: "\f414"; } +.fa-battery-0::before { + content: "\f244"; } -.fa-yarn:before { - content: "\f7e3"; } +.fa-socks::before { + content: "\f696"; } -.fa-yelp:before { - content: "\f1e9"; } +.fa-inbox::before { + content: "\f01c"; } -.fa-yen-sign:before { - content: "\f157"; } +.fa-section::before { + content: "\e447"; } -.fa-yin-yang:before { - content: "\f6ad"; } +.fa-gauge-high::before { + content: "\f625"; } -.fa-yoast:before { - content: "\f2b1"; } +.fa-tachometer-alt::before { + content: "\f625"; } -.fa-youtube:before { - content: "\f167"; } +.fa-tachometer-alt-fast::before { + content: "\f625"; } -.fa-youtube-square:before { - content: "\f431"; } +.fa-envelope-open-text::before { + content: "\f658"; } -.fa-zhihu:before { - content: "\f63f"; } +.fa-hospital::before { + content: "\f0f8"; } -.sr-only { - border: 0; - clip: rect(0, 0, 0, 0); - height: 1px; - margin: -1px; - overflow: hidden; - padding: 0; - position: absolute; - width: 1px; } - -.sr-only-focusable:active, .sr-only-focusable:focus { - clip: auto; - height: auto; - margin: 0; - overflow: visible; - position: static; - width: auto; } -@font-face { - font-family: 'Font Awesome 5 Brands'; - font-style: normal; - font-weight: 400; - font-display: block; - src: url("../webfonts/fa-brands-400.eot"); - src: url("../webfonts/fa-brands-400.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.woff") format("woff"), url("../webfonts/fa-brands-400.ttf") format("truetype"), url("../webfonts/fa-brands-400.svg#fontawesome") format("svg"); } +.fa-hospital-alt::before { + content: "\f0f8"; } -.fab { - font-family: 'Font Awesome 5 Brands'; - font-weight: 400; } -@font-face { - font-family: 'Font Awesome 5 Free'; - font-style: normal; - font-weight: 400; - font-display: block; - src: url("../webfonts/fa-regular-400.eot"); - src: url("../webfonts/fa-regular-400.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.woff") format("woff"), url("../webfonts/fa-regular-400.ttf") format("truetype"), url("../webfonts/fa-regular-400.svg#fontawesome") format("svg"); } +.fa-hospital-wide::before { + content: "\f0f8"; } -.far { - font-family: 'Font Awesome 5 Free'; - font-weight: 400; } -@font-face { - font-family: 'Font Awesome 5 Free'; - font-style: normal; - font-weight: 900; - font-display: block; - src: url("../webfonts/fa-solid-900.eot"); - src: url("../webfonts/fa-solid-900.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.woff") format("woff"), url("../webfonts/fa-solid-900.ttf") format("truetype"), url("../webfonts/fa-solid-900.svg#fontawesome") format("svg"); } +.fa-wine-bottle::before { + content: "\f72f"; } -.fa, -.fas { - font-family: 'Font Awesome 5 Free'; - font-weight: 900; } +.fa-chess-rook::before { + content: "\f447"; } + +.fa-bars-staggered::before { + content: "\f550"; } + +.fa-reorder::before { + content: "\f550"; } + +.fa-stream::before { + content: "\f550"; } + +.fa-dharmachakra::before { + content: "\f655"; } + +.fa-hotdog::before { + content: "\f80f"; } + +.fa-person-walking-with-cane::before { + content: "\f29d"; } + +.fa-blind::before { + content: "\f29d"; } + +.fa-drum::before { + content: "\f569"; } + +.fa-ice-cream::before { + content: "\f810"; } + +.fa-heart-circle-bolt::before { + content: "\e4fc"; } + +.fa-fax::before { + content: "\f1ac"; } + +.fa-paragraph::before { + content: "\f1dd"; } + +.fa-check-to-slot::before { + content: "\f772"; } + +.fa-vote-yea::before { + content: "\f772"; } + +.fa-star-half::before { + content: "\f089"; } + +.fa-boxes-stacked::before { + content: "\f468"; } + +.fa-boxes::before { + content: "\f468"; } + +.fa-boxes-alt::before { + content: "\f468"; } + +.fa-link::before { + content: "\f0c1"; } + +.fa-chain::before { + content: "\f0c1"; } + +.fa-ear-listen::before { + content: "\f2a2"; } + +.fa-assistive-listening-systems::before { + content: "\f2a2"; } + +.fa-tree-city::before { + content: "\e587"; } + +.fa-play::before { + content: "\f04b"; } + +.fa-font::before { + content: "\f031"; } + +.fa-rupiah-sign::before { + content: "\e23d"; } + +.fa-magnifying-glass::before { + content: "\f002"; } + +.fa-search::before { + content: "\f002"; } + +.fa-table-tennis-paddle-ball::before { + content: "\f45d"; } + +.fa-ping-pong-paddle-ball::before { + content: "\f45d"; } + +.fa-table-tennis::before { + content: "\f45d"; } + +.fa-person-dots-from-line::before { + content: "\f470"; } + +.fa-diagnoses::before { + content: "\f470"; } + +.fa-trash-can-arrow-up::before { + content: "\f82a"; } + +.fa-trash-restore-alt::before { + content: "\f82a"; } + +.fa-naira-sign::before { + content: "\e1f6"; } + +.fa-cart-arrow-down::before { + content: "\f218"; } + +.fa-walkie-talkie::before { + content: "\f8ef"; } + +.fa-file-pen::before { + content: "\f31c"; } + +.fa-file-edit::before { + content: "\f31c"; } + +.fa-receipt::before { + content: "\f543"; } + +.fa-square-pen::before { + content: "\f14b"; } + +.fa-pen-square::before { + content: "\f14b"; } + +.fa-pencil-square::before { + content: "\f14b"; } + +.fa-suitcase-rolling::before { + content: "\f5c1"; } + +.fa-person-circle-exclamation::before { + content: "\e53f"; } + +.fa-chevron-down::before { + content: "\f078"; } + +.fa-battery-full::before { + content: "\f240"; } + +.fa-battery::before { + content: "\f240"; } + +.fa-battery-5::before { + content: "\f240"; } + +.fa-skull-crossbones::before { + content: "\f714"; } + +.fa-code-compare::before { + content: "\e13a"; } + +.fa-list-ul::before { + content: "\f0ca"; } + +.fa-list-dots::before { + content: "\f0ca"; } + +.fa-school-lock::before { + content: "\e56f"; } + +.fa-tower-cell::before { + content: "\e585"; } + +.fa-down-long::before { + content: "\f309"; } + +.fa-long-arrow-alt-down::before { + content: "\f309"; } + +.fa-ranking-star::before { + content: "\e561"; } + +.fa-chess-king::before { + content: "\f43f"; } + +.fa-person-harassing::before { + content: "\e549"; } + +.fa-brazilian-real-sign::before { + content: "\e46c"; } + +.fa-landmark-dome::before { + content: "\f752"; } + +.fa-landmark-alt::before { + content: "\f752"; } + +.fa-arrow-up::before { + content: "\f062"; } + +.fa-tv::before { + content: "\f26c"; } + +.fa-television::before { + content: "\f26c"; } + +.fa-tv-alt::before { + content: "\f26c"; } + +.fa-shrimp::before { + content: "\e448"; } + +.fa-list-check::before { + content: "\f0ae"; } + +.fa-tasks::before { + content: "\f0ae"; } + +.fa-jug-detergent::before { + content: "\e519"; } + +.fa-circle-user::before { + content: "\f2bd"; } + +.fa-user-circle::before { + content: "\f2bd"; } + +.fa-user-shield::before { + content: "\f505"; } + +.fa-wind::before { + content: "\f72e"; } + +.fa-car-burst::before { + content: "\f5e1"; } + +.fa-car-crash::before { + content: "\f5e1"; } + +.fa-y::before { + content: "\59"; } + +.fa-person-snowboarding::before { + content: "\f7ce"; } + +.fa-snowboarding::before { + content: "\f7ce"; } + +.fa-truck-fast::before { + content: "\f48b"; } + +.fa-shipping-fast::before { + content: "\f48b"; } + +.fa-fish::before { + content: "\f578"; } + +.fa-user-graduate::before { + content: "\f501"; } + +.fa-circle-half-stroke::before { + content: "\f042"; } + +.fa-adjust::before { + content: "\f042"; } + +.fa-clapperboard::before { + content: "\e131"; } + +.fa-circle-radiation::before { + content: "\f7ba"; } + +.fa-radiation-alt::before { + content: "\f7ba"; } + +.fa-baseball::before { + content: "\f433"; } + +.fa-baseball-ball::before { + content: "\f433"; } + +.fa-jet-fighter-up::before { + content: "\e518"; } + +.fa-diagram-project::before { + content: "\f542"; } + +.fa-project-diagram::before { + content: "\f542"; } + +.fa-copy::before { + content: "\f0c5"; } + +.fa-volume-xmark::before { + content: "\f6a9"; } + +.fa-volume-mute::before { + content: "\f6a9"; } + +.fa-volume-times::before { + content: "\f6a9"; } + +.fa-hand-sparkles::before { + content: "\e05d"; } + +.fa-grip::before { + content: "\f58d"; } + +.fa-grip-horizontal::before { + content: "\f58d"; } + +.fa-share-from-square::before { + content: "\f14d"; } + +.fa-share-square::before { + content: "\f14d"; } + +.fa-child-combatant::before { + content: "\e4e0"; } + +.fa-child-rifle::before { + content: "\e4e0"; } + +.fa-gun::before { + content: "\e19b"; } + +.fa-square-phone::before { + content: "\f098"; } + +.fa-phone-square::before { + content: "\f098"; } + +.fa-plus::before { + content: "\2b"; } + +.fa-add::before { + content: "\2b"; } + +.fa-expand::before { + content: "\f065"; } + +.fa-computer::before { + content: "\e4e5"; } + +.fa-xmark::before { + content: "\f00d"; } + +.fa-close::before { + content: "\f00d"; } + +.fa-multiply::before { + content: "\f00d"; } + +.fa-remove::before { + content: "\f00d"; } + +.fa-times::before { + content: "\f00d"; } + +.fa-arrows-up-down-left-right::before { + content: "\f047"; } + +.fa-arrows::before { + content: "\f047"; } + +.fa-chalkboard-user::before { + content: "\f51c"; } + +.fa-chalkboard-teacher::before { + content: "\f51c"; } + +.fa-peso-sign::before { + content: "\e222"; } + +.fa-building-shield::before { + content: "\e4d8"; } + +.fa-baby::before { + content: "\f77c"; } + +.fa-users-line::before { + content: "\e592"; } + +.fa-quote-left::before { + content: "\f10d"; } + +.fa-quote-left-alt::before { + content: "\f10d"; } + +.fa-tractor::before { + content: "\f722"; } + +.fa-trash-arrow-up::before { + content: "\f829"; } + +.fa-trash-restore::before { + content: "\f829"; } + +.fa-arrow-down-up-lock::before { + content: "\e4b0"; } + +.fa-lines-leaning::before { + content: "\e51e"; } + +.fa-ruler-combined::before { + content: "\f546"; } + +.fa-copyright::before { + content: "\f1f9"; } + +.fa-equals::before { + content: "\3d"; } + +.fa-blender::before { + content: "\f517"; } + +.fa-teeth::before { + content: "\f62e"; } + +.fa-shekel-sign::before { + content: "\f20b"; } + +.fa-ils::before { + content: "\f20b"; } + +.fa-shekel::before { + content: "\f20b"; } + +.fa-sheqel::before { + content: "\f20b"; } + +.fa-sheqel-sign::before { + content: "\f20b"; } + +.fa-map::before { + content: "\f279"; } + +.fa-rocket::before { + content: "\f135"; } + +.fa-photo-film::before { + content: "\f87c"; } + +.fa-photo-video::before { + content: "\f87c"; } + +.fa-folder-minus::before { + content: "\f65d"; } + +.fa-store::before { + content: "\f54e"; } + +.fa-arrow-trend-up::before { + content: "\e098"; } + +.fa-plug-circle-minus::before { + content: "\e55e"; } + +.fa-sign-hanging::before { + content: "\f4d9"; } + +.fa-sign::before { + content: "\f4d9"; } + +.fa-bezier-curve::before { + content: "\f55b"; } + +.fa-bell-slash::before { + content: "\f1f6"; } + +.fa-tablet::before { + content: "\f3fb"; } + +.fa-tablet-android::before { + content: "\f3fb"; } + +.fa-school-flag::before { + content: "\e56e"; } + +.fa-fill::before { + content: "\f575"; } + +.fa-angle-up::before { + content: "\f106"; } + +.fa-drumstick-bite::before { + content: "\f6d7"; } + +.fa-holly-berry::before { + content: "\f7aa"; } + +.fa-chevron-left::before { + content: "\f053"; } + +.fa-bacteria::before { + content: "\e059"; } + +.fa-hand-lizard::before { + content: "\f258"; } + +.fa-notdef::before { + content: "\e1fe"; } + +.fa-disease::before { + content: "\f7fa"; } + +.fa-briefcase-medical::before { + content: "\f469"; } + +.fa-genderless::before { + content: "\f22d"; } + +.fa-chevron-right::before { + content: "\f054"; } + +.fa-retweet::before { + content: "\f079"; } + +.fa-car-rear::before { + content: "\f5de"; } + +.fa-car-alt::before { + content: "\f5de"; } + +.fa-pump-soap::before { + content: "\e06b"; } + +.fa-video-slash::before { + content: "\f4e2"; } + +.fa-battery-quarter::before { + content: "\f243"; } + +.fa-battery-2::before { + content: "\f243"; } + +.fa-radio::before { + content: "\f8d7"; } + +.fa-baby-carriage::before { + content: "\f77d"; } + +.fa-carriage-baby::before { + content: "\f77d"; } + +.fa-traffic-light::before { + content: "\f637"; } + +.fa-thermometer::before { + content: "\f491"; } + +.fa-vr-cardboard::before { + content: "\f729"; } + +.fa-hand-middle-finger::before { + content: "\f806"; } + +.fa-percent::before { + content: "\25"; } + +.fa-percentage::before { + content: "\25"; } + +.fa-truck-moving::before { + content: "\f4df"; } + +.fa-glass-water-droplet::before { + content: "\e4f5"; } + +.fa-display::before { + content: "\e163"; } + +.fa-face-smile::before { + content: "\f118"; } + +.fa-smile::before { + content: "\f118"; } + +.fa-thumbtack::before { + content: "\f08d"; } + +.fa-thumb-tack::before { + content: "\f08d"; } + +.fa-trophy::before { + content: "\f091"; } + +.fa-person-praying::before { + content: "\f683"; } + +.fa-pray::before { + content: "\f683"; } + +.fa-hammer::before { + content: "\f6e3"; } + +.fa-hand-peace::before { + content: "\f25b"; } + +.fa-rotate::before { + content: "\f2f1"; } + +.fa-sync-alt::before { + content: "\f2f1"; } + +.fa-spinner::before { + content: "\f110"; } + +.fa-robot::before { + content: "\f544"; } + +.fa-peace::before { + content: "\f67c"; } + +.fa-gears::before { + content: "\f085"; } + +.fa-cogs::before { + content: "\f085"; } + +.fa-warehouse::before { + content: "\f494"; } + +.fa-arrow-up-right-dots::before { + content: "\e4b7"; } + +.fa-splotch::before { + content: "\f5bc"; } + +.fa-face-grin-hearts::before { + content: "\f584"; } + +.fa-grin-hearts::before { + content: "\f584"; } + +.fa-dice-four::before { + content: "\f524"; } + +.fa-sim-card::before { + content: "\f7c4"; } + +.fa-transgender::before { + content: "\f225"; } + +.fa-transgender-alt::before { + content: "\f225"; } + +.fa-mercury::before { + content: "\f223"; } + +.fa-arrow-turn-down::before { + content: "\f149"; } + +.fa-level-down::before { + content: "\f149"; } + +.fa-person-falling-burst::before { + content: "\e547"; } + +.fa-award::before { + content: "\f559"; } + +.fa-ticket-simple::before { + content: "\f3ff"; } + +.fa-ticket-alt::before { + content: "\f3ff"; } + +.fa-building::before { + content: "\f1ad"; } + +.fa-angles-left::before { + content: "\f100"; } + +.fa-angle-double-left::before { + content: "\f100"; } + +.fa-qrcode::before { + content: "\f029"; } + +.fa-clock-rotate-left::before { + content: "\f1da"; } + +.fa-history::before { + content: "\f1da"; } + +.fa-face-grin-beam-sweat::before { + content: "\f583"; } + +.fa-grin-beam-sweat::before { + content: "\f583"; } + +.fa-file-export::before { + content: "\f56e"; } + +.fa-arrow-right-from-file::before { + content: "\f56e"; } + +.fa-shield::before { + content: "\f132"; } + +.fa-shield-blank::before { + content: "\f132"; } + +.fa-arrow-up-short-wide::before { + content: "\f885"; } + +.fa-sort-amount-up-alt::before { + content: "\f885"; } + +.fa-house-medical::before { + content: "\e3b2"; } + +.fa-golf-ball-tee::before { + content: "\f450"; } + +.fa-golf-ball::before { + content: "\f450"; } + +.fa-circle-chevron-left::before { + content: "\f137"; } + +.fa-chevron-circle-left::before { + content: "\f137"; } + +.fa-house-chimney-window::before { + content: "\e00d"; } + +.fa-pen-nib::before { + content: "\f5ad"; } + +.fa-tent-arrow-turn-left::before { + content: "\e580"; } + +.fa-tents::before { + content: "\e582"; } + +.fa-wand-magic::before { + content: "\f0d0"; } + +.fa-magic::before { + content: "\f0d0"; } + +.fa-dog::before { + content: "\f6d3"; } + +.fa-carrot::before { + content: "\f787"; } + +.fa-moon::before { + content: "\f186"; } + +.fa-wine-glass-empty::before { + content: "\f5ce"; } + +.fa-wine-glass-alt::before { + content: "\f5ce"; } + +.fa-cheese::before { + content: "\f7ef"; } + +.fa-yin-yang::before { + content: "\f6ad"; } + +.fa-music::before { + content: "\f001"; } + +.fa-code-commit::before { + content: "\f386"; } + +.fa-temperature-low::before { + content: "\f76b"; } + +.fa-person-biking::before { + content: "\f84a"; } + +.fa-biking::before { + content: "\f84a"; } + +.fa-broom::before { + content: "\f51a"; } + +.fa-shield-heart::before { + content: "\e574"; } + +.fa-gopuram::before { + content: "\f664"; } + +.fa-earth-oceania::before { + content: "\e47b"; } + +.fa-globe-oceania::before { + content: "\e47b"; } + +.fa-square-xmark::before { + content: "\f2d3"; } + +.fa-times-square::before { + content: "\f2d3"; } + +.fa-xmark-square::before { + content: "\f2d3"; } + +.fa-hashtag::before { + content: "\23"; } + +.fa-up-right-and-down-left-from-center::before { + content: "\f424"; } + +.fa-expand-alt::before { + content: "\f424"; } + +.fa-oil-can::before { + content: "\f613"; } + +.fa-t::before { + content: "\54"; } + +.fa-hippo::before { + content: "\f6ed"; } + +.fa-chart-column::before { + content: "\e0e3"; } + +.fa-infinity::before { + content: "\f534"; } + +.fa-vial-circle-check::before { + content: "\e596"; } + +.fa-person-arrow-down-to-line::before { + content: "\e538"; } + +.fa-voicemail::before { + content: "\f897"; } + +.fa-fan::before { + content: "\f863"; } + +.fa-person-walking-luggage::before { + content: "\e554"; } + +.fa-up-down::before { + content: "\f338"; } + +.fa-arrows-alt-v::before { + content: "\f338"; } + +.fa-cloud-moon-rain::before { + content: "\f73c"; } + +.fa-calendar::before { + content: "\f133"; } + +.fa-trailer::before { + content: "\e041"; } + +.fa-bahai::before { + content: "\f666"; } + +.fa-haykal::before { + content: "\f666"; } + +.fa-sd-card::before { + content: "\f7c2"; } + +.fa-dragon::before { + content: "\f6d5"; } + +.fa-shoe-prints::before { + content: "\f54b"; } + +.fa-circle-plus::before { + content: "\f055"; } + +.fa-plus-circle::before { + content: "\f055"; } + +.fa-face-grin-tongue-wink::before { + content: "\f58b"; } + +.fa-grin-tongue-wink::before { + content: "\f58b"; } + +.fa-hand-holding::before { + content: "\f4bd"; } + +.fa-plug-circle-exclamation::before { + content: "\e55d"; } + +.fa-link-slash::before { + content: "\f127"; } + +.fa-chain-broken::before { + content: "\f127"; } + +.fa-chain-slash::before { + content: "\f127"; } + +.fa-unlink::before { + content: "\f127"; } + +.fa-clone::before { + content: "\f24d"; } + +.fa-person-walking-arrow-loop-left::before { + content: "\e551"; } + +.fa-arrow-up-z-a::before { + content: "\f882"; } + +.fa-sort-alpha-up-alt::before { + content: "\f882"; } + +.fa-fire-flame-curved::before { + content: "\f7e4"; } + +.fa-fire-alt::before { + content: "\f7e4"; } + +.fa-tornado::before { + content: "\f76f"; } + +.fa-file-circle-plus::before { + content: "\e494"; } + +.fa-book-quran::before { + content: "\f687"; } + +.fa-quran::before { + content: "\f687"; } + +.fa-anchor::before { + content: "\f13d"; } + +.fa-border-all::before { + content: "\f84c"; } + +.fa-face-angry::before { + content: "\f556"; } + +.fa-angry::before { + content: "\f556"; } + +.fa-cookie-bite::before { + content: "\f564"; } + +.fa-arrow-trend-down::before { + content: "\e097"; } + +.fa-rss::before { + content: "\f09e"; } + +.fa-feed::before { + content: "\f09e"; } + +.fa-draw-polygon::before { + content: "\f5ee"; } + +.fa-scale-balanced::before { + content: "\f24e"; } + +.fa-balance-scale::before { + content: "\f24e"; } + +.fa-gauge-simple-high::before { + content: "\f62a"; } + +.fa-tachometer::before { + content: "\f62a"; } + +.fa-tachometer-fast::before { + content: "\f62a"; } + +.fa-shower::before { + content: "\f2cc"; } + +.fa-desktop::before { + content: "\f390"; } + +.fa-desktop-alt::before { + content: "\f390"; } + +.fa-m::before { + content: "\4d"; } + +.fa-table-list::before { + content: "\f00b"; } + +.fa-th-list::before { + content: "\f00b"; } + +.fa-comment-sms::before { + content: "\f7cd"; } + +.fa-sms::before { + content: "\f7cd"; } + +.fa-book::before { + content: "\f02d"; } + +.fa-user-plus::before { + content: "\f234"; } + +.fa-check::before { + content: "\f00c"; } + +.fa-battery-three-quarters::before { + content: "\f241"; } + +.fa-battery-4::before { + content: "\f241"; } + +.fa-house-circle-check::before { + content: "\e509"; } + +.fa-angle-left::before { + content: "\f104"; } + +.fa-diagram-successor::before { + content: "\e47a"; } + +.fa-truck-arrow-right::before { + content: "\e58b"; } + +.fa-arrows-split-up-and-left::before { + content: "\e4bc"; } + +.fa-hand-fist::before { + content: "\f6de"; } + +.fa-fist-raised::before { + content: "\f6de"; } + +.fa-cloud-moon::before { + content: "\f6c3"; } + +.fa-briefcase::before { + content: "\f0b1"; } + +.fa-person-falling::before { + content: "\e546"; } + +.fa-image-portrait::before { + content: "\f3e0"; } + +.fa-portrait::before { + content: "\f3e0"; } + +.fa-user-tag::before { + content: "\f507"; } + +.fa-rug::before { + content: "\e569"; } + +.fa-earth-europe::before { + content: "\f7a2"; } + +.fa-globe-europe::before { + content: "\f7a2"; } + +.fa-cart-flatbed-suitcase::before { + content: "\f59d"; } + +.fa-luggage-cart::before { + content: "\f59d"; } + +.fa-rectangle-xmark::before { + content: "\f410"; } + +.fa-rectangle-times::before { + content: "\f410"; } + +.fa-times-rectangle::before { + content: "\f410"; } + +.fa-window-close::before { + content: "\f410"; } + +.fa-baht-sign::before { + content: "\e0ac"; } + +.fa-book-open::before { + content: "\f518"; } + +.fa-book-journal-whills::before { + content: "\f66a"; } + +.fa-journal-whills::before { + content: "\f66a"; } + +.fa-handcuffs::before { + content: "\e4f8"; } + +.fa-triangle-exclamation::before { + content: "\f071"; } + +.fa-exclamation-triangle::before { + content: "\f071"; } + +.fa-warning::before { + content: "\f071"; } + +.fa-database::before { + content: "\f1c0"; } + +.fa-share::before { + content: "\f064"; } + +.fa-mail-forward::before { + content: "\f064"; } + +.fa-bottle-droplet::before { + content: "\e4c4"; } + +.fa-mask-face::before { + content: "\e1d7"; } + +.fa-hill-rockslide::before { + content: "\e508"; } + +.fa-right-left::before { + content: "\f362"; } + +.fa-exchange-alt::before { + content: "\f362"; } + +.fa-paper-plane::before { + content: "\f1d8"; } + +.fa-road-circle-exclamation::before { + content: "\e565"; } + +.fa-dungeon::before { + content: "\f6d9"; } + +.fa-align-right::before { + content: "\f038"; } + +.fa-money-bill-1-wave::before { + content: "\f53b"; } + +.fa-money-bill-wave-alt::before { + content: "\f53b"; } + +.fa-life-ring::before { + content: "\f1cd"; } + +.fa-hands::before { + content: "\f2a7"; } + +.fa-sign-language::before { + content: "\f2a7"; } + +.fa-signing::before { + content: "\f2a7"; } + +.fa-calendar-day::before { + content: "\f783"; } + +.fa-water-ladder::before { + content: "\f5c5"; } + +.fa-ladder-water::before { + content: "\f5c5"; } + +.fa-swimming-pool::before { + content: "\f5c5"; } + +.fa-arrows-up-down::before { + content: "\f07d"; } + +.fa-arrows-v::before { + content: "\f07d"; } + +.fa-face-grimace::before { + content: "\f57f"; } + +.fa-grimace::before { + content: "\f57f"; } + +.fa-wheelchair-move::before { + content: "\e2ce"; } + +.fa-wheelchair-alt::before { + content: "\e2ce"; } + +.fa-turn-down::before { + content: "\f3be"; } + +.fa-level-down-alt::before { + content: "\f3be"; } + +.fa-person-walking-arrow-right::before { + content: "\e552"; } + +.fa-square-envelope::before { + content: "\f199"; } + +.fa-envelope-square::before { + content: "\f199"; } + +.fa-dice::before { + content: "\f522"; } + +.fa-bowling-ball::before { + content: "\f436"; } + +.fa-brain::before { + content: "\f5dc"; } + +.fa-bandage::before { + content: "\f462"; } + +.fa-band-aid::before { + content: "\f462"; } + +.fa-calendar-minus::before { + content: "\f272"; } + +.fa-circle-xmark::before { + content: "\f057"; } + +.fa-times-circle::before { + content: "\f057"; } + +.fa-xmark-circle::before { + content: "\f057"; } + +.fa-gifts::before { + content: "\f79c"; } + +.fa-hotel::before { + content: "\f594"; } + +.fa-earth-asia::before { + content: "\f57e"; } + +.fa-globe-asia::before { + content: "\f57e"; } + +.fa-id-card-clip::before { + content: "\f47f"; } + +.fa-id-card-alt::before { + content: "\f47f"; } + +.fa-magnifying-glass-plus::before { + content: "\f00e"; } + +.fa-search-plus::before { + content: "\f00e"; } + +.fa-thumbs-up::before { + content: "\f164"; } + +.fa-user-clock::before { + content: "\f4fd"; } + +.fa-hand-dots::before { + content: "\f461"; } + +.fa-allergies::before { + content: "\f461"; } + +.fa-file-invoice::before { + content: "\f570"; } + +.fa-window-minimize::before { + content: "\f2d1"; } + +.fa-mug-saucer::before { + content: "\f0f4"; } + +.fa-coffee::before { + content: "\f0f4"; } + +.fa-brush::before { + content: "\f55d"; } + +.fa-mask::before { + content: "\f6fa"; } + +.fa-magnifying-glass-minus::before { + content: "\f010"; } + +.fa-search-minus::before { + content: "\f010"; } + +.fa-ruler-vertical::before { + content: "\f548"; } + +.fa-user-large::before { + content: "\f406"; } + +.fa-user-alt::before { + content: "\f406"; } + +.fa-train-tram::before { + content: "\e5b4"; } + +.fa-user-nurse::before { + content: "\f82f"; } + +.fa-syringe::before { + content: "\f48e"; } + +.fa-cloud-sun::before { + content: "\f6c4"; } + +.fa-stopwatch-20::before { + content: "\e06f"; } + +.fa-square-full::before { + content: "\f45c"; } + +.fa-magnet::before { + content: "\f076"; } + +.fa-jar::before { + content: "\e516"; } + +.fa-note-sticky::before { + content: "\f249"; } + +.fa-sticky-note::before { + content: "\f249"; } + +.fa-bug-slash::before { + content: "\e490"; } + +.fa-arrow-up-from-water-pump::before { + content: "\e4b6"; } + +.fa-bone::before { + content: "\f5d7"; } + +.fa-user-injured::before { + content: "\f728"; } + +.fa-face-sad-tear::before { + content: "\f5b4"; } + +.fa-sad-tear::before { + content: "\f5b4"; } + +.fa-plane::before { + content: "\f072"; } + +.fa-tent-arrows-down::before { + content: "\e581"; } + +.fa-exclamation::before { + content: "\21"; } + +.fa-arrows-spin::before { + content: "\e4bb"; } + +.fa-print::before { + content: "\f02f"; } + +.fa-turkish-lira-sign::before { + content: "\e2bb"; } + +.fa-try::before { + content: "\e2bb"; } + +.fa-turkish-lira::before { + content: "\e2bb"; } + +.fa-dollar-sign::before { + content: "\24"; } + +.fa-dollar::before { + content: "\24"; } + +.fa-usd::before { + content: "\24"; } + +.fa-x::before { + content: "\58"; } + +.fa-magnifying-glass-dollar::before { + content: "\f688"; } + +.fa-search-dollar::before { + content: "\f688"; } + +.fa-users-gear::before { + content: "\f509"; } + +.fa-users-cog::before { + content: "\f509"; } + +.fa-person-military-pointing::before { + content: "\e54a"; } + +.fa-building-columns::before { + content: "\f19c"; } + +.fa-bank::before { + content: "\f19c"; } + +.fa-institution::before { + content: "\f19c"; } + +.fa-museum::before { + content: "\f19c"; } + +.fa-university::before { + content: "\f19c"; } + +.fa-umbrella::before { + content: "\f0e9"; } + +.fa-trowel::before { + content: "\e589"; } + +.fa-d::before { + content: "\44"; } + +.fa-stapler::before { + content: "\e5af"; } + +.fa-masks-theater::before { + content: "\f630"; } + +.fa-theater-masks::before { + content: "\f630"; } + +.fa-kip-sign::before { + content: "\e1c4"; } + +.fa-hand-point-left::before { + content: "\f0a5"; } + +.fa-handshake-simple::before { + content: "\f4c6"; } + +.fa-handshake-alt::before { + content: "\f4c6"; } + +.fa-jet-fighter::before { + content: "\f0fb"; } + +.fa-fighter-jet::before { + content: "\f0fb"; } + +.fa-square-share-nodes::before { + content: "\f1e1"; } + +.fa-share-alt-square::before { + content: "\f1e1"; } + +.fa-barcode::before { + content: "\f02a"; } + +.fa-plus-minus::before { + content: "\e43c"; } + +.fa-video::before { + content: "\f03d"; } + +.fa-video-camera::before { + content: "\f03d"; } + +.fa-graduation-cap::before { + content: "\f19d"; } + +.fa-mortar-board::before { + content: "\f19d"; } + +.fa-hand-holding-medical::before { + content: "\e05c"; } + +.fa-person-circle-check::before { + content: "\e53e"; } + +.fa-turn-up::before { + content: "\f3bf"; } + +.fa-level-up-alt::before { + content: "\f3bf"; } + +.sr-only, +.fa-sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border-width: 0; } + +.sr-only-focusable:not(:focus), +.fa-sr-only-focusable:not(:focus) { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border-width: 0; } +:root, :host { + --fa-style-family-brands: 'Font Awesome 6 Brands'; + --fa-font-brands: normal 400 1em/1 'Font Awesome 6 Brands'; } + +@font-face { + font-family: 'Font Awesome 6 Brands'; + font-style: normal; + font-weight: 400; + font-display: block; + src: url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.ttf") format("truetype"); } + +.fab, +.fa-brands { + font-weight: 400; } + +.fa-monero:before { + content: "\f3d0"; } + +.fa-hooli:before { + content: "\f427"; } + +.fa-yelp:before { + content: "\f1e9"; } + +.fa-cc-visa:before { + content: "\f1f0"; } + +.fa-lastfm:before { + content: "\f202"; } + +.fa-shopware:before { + content: "\f5b5"; } + +.fa-creative-commons-nc:before { + content: "\f4e8"; } + +.fa-aws:before { + content: "\f375"; } + +.fa-redhat:before { + content: "\f7bc"; } + +.fa-yoast:before { + content: "\f2b1"; } + +.fa-cloudflare:before { + content: "\e07d"; } + +.fa-ups:before { + content: "\f7e0"; } + +.fa-pixiv:before { + content: "\e640"; } + +.fa-wpexplorer:before { + content: "\f2de"; } + +.fa-dyalog:before { + content: "\f399"; } + +.fa-bity:before { + content: "\f37a"; } + +.fa-stackpath:before { + content: "\f842"; } + +.fa-buysellads:before { + content: "\f20d"; } + +.fa-first-order:before { + content: "\f2b0"; } + +.fa-modx:before { + content: "\f285"; } + +.fa-guilded:before { + content: "\e07e"; } + +.fa-vnv:before { + content: "\f40b"; } + +.fa-square-js:before { + content: "\f3b9"; } + +.fa-js-square:before { + content: "\f3b9"; } + +.fa-microsoft:before { + content: "\f3ca"; } + +.fa-qq:before { + content: "\f1d6"; } + +.fa-orcid:before { + content: "\f8d2"; } + +.fa-java:before { + content: "\f4e4"; } + +.fa-invision:before { + content: "\f7b0"; } + +.fa-creative-commons-pd-alt:before { + content: "\f4ed"; } + +.fa-centercode:before { + content: "\f380"; } + +.fa-glide-g:before { + content: "\f2a6"; } + +.fa-drupal:before { + content: "\f1a9"; } + +.fa-hire-a-helper:before { + content: "\f3b0"; } + +.fa-creative-commons-by:before { + content: "\f4e7"; } + +.fa-unity:before { + content: "\e049"; } + +.fa-whmcs:before { + content: "\f40d"; } + +.fa-rocketchat:before { + content: "\f3e8"; } + +.fa-vk:before { + content: "\f189"; } + +.fa-untappd:before { + content: "\f405"; } + +.fa-mailchimp:before { + content: "\f59e"; } + +.fa-css3-alt:before { + content: "\f38b"; } + +.fa-square-reddit:before { + content: "\f1a2"; } + +.fa-reddit-square:before { + content: "\f1a2"; } + +.fa-vimeo-v:before { + content: "\f27d"; } + +.fa-contao:before { + content: "\f26d"; } + +.fa-square-font-awesome:before { + content: "\e5ad"; } + +.fa-deskpro:before { + content: "\f38f"; } + +.fa-brave:before { + content: "\e63c"; } + +.fa-sistrix:before { + content: "\f3ee"; } + +.fa-square-instagram:before { + content: "\e055"; } + +.fa-instagram-square:before { + content: "\e055"; } + +.fa-battle-net:before { + content: "\f835"; } + +.fa-the-red-yeti:before { + content: "\f69d"; } + +.fa-square-hacker-news:before { + content: "\f3af"; } + +.fa-hacker-news-square:before { + content: "\f3af"; } + +.fa-edge:before { + content: "\f282"; } + +.fa-threads:before { + content: "\e618"; } + +.fa-napster:before { + content: "\f3d2"; } + +.fa-square-snapchat:before { + content: "\f2ad"; } + +.fa-snapchat-square:before { + content: "\f2ad"; } + +.fa-google-plus-g:before { + content: "\f0d5"; } + +.fa-artstation:before { + content: "\f77a"; } + +.fa-markdown:before { + content: "\f60f"; } + +.fa-sourcetree:before { + content: "\f7d3"; } + +.fa-google-plus:before { + content: "\f2b3"; } + +.fa-diaspora:before { + content: "\f791"; } + +.fa-foursquare:before { + content: "\f180"; } + +.fa-stack-overflow:before { + content: "\f16c"; } + +.fa-github-alt:before { + content: "\f113"; } + +.fa-phoenix-squadron:before { + content: "\f511"; } + +.fa-pagelines:before { + content: "\f18c"; } + +.fa-algolia:before { + content: "\f36c"; } + +.fa-red-river:before { + content: "\f3e3"; } + +.fa-creative-commons-sa:before { + content: "\f4ef"; } + +.fa-safari:before { + content: "\f267"; } + +.fa-google:before { + content: "\f1a0"; } + +.fa-square-font-awesome-stroke:before { + content: "\f35c"; } + +.fa-font-awesome-alt:before { + content: "\f35c"; } + +.fa-atlassian:before { + content: "\f77b"; } + +.fa-linkedin-in:before { + content: "\f0e1"; } + +.fa-digital-ocean:before { + content: "\f391"; } + +.fa-nimblr:before { + content: "\f5a8"; } + +.fa-chromecast:before { + content: "\f838"; } + +.fa-evernote:before { + content: "\f839"; } + +.fa-hacker-news:before { + content: "\f1d4"; } + +.fa-creative-commons-sampling:before { + content: "\f4f0"; } + +.fa-adversal:before { + content: "\f36a"; } + +.fa-creative-commons:before { + content: "\f25e"; } + +.fa-watchman-monitoring:before { + content: "\e087"; } + +.fa-fonticons:before { + content: "\f280"; } + +.fa-weixin:before { + content: "\f1d7"; } + +.fa-shirtsinbulk:before { + content: "\f214"; } + +.fa-codepen:before { + content: "\f1cb"; } + +.fa-git-alt:before { + content: "\f841"; } + +.fa-lyft:before { + content: "\f3c3"; } + +.fa-rev:before { + content: "\f5b2"; } + +.fa-windows:before { + content: "\f17a"; } + +.fa-wizards-of-the-coast:before { + content: "\f730"; } + +.fa-square-viadeo:before { + content: "\f2aa"; } + +.fa-viadeo-square:before { + content: "\f2aa"; } + +.fa-meetup:before { + content: "\f2e0"; } + +.fa-centos:before { + content: "\f789"; } + +.fa-adn:before { + content: "\f170"; } + +.fa-cloudsmith:before { + content: "\f384"; } + +.fa-opensuse:before { + content: "\e62b"; } + +.fa-pied-piper-alt:before { + content: "\f1a8"; } + +.fa-square-dribbble:before { + content: "\f397"; } + +.fa-dribbble-square:before { + content: "\f397"; } + +.fa-codiepie:before { + content: "\f284"; } + +.fa-node:before { + content: "\f419"; } + +.fa-mix:before { + content: "\f3cb"; } + +.fa-steam:before { + content: "\f1b6"; } + +.fa-cc-apple-pay:before { + content: "\f416"; } + +.fa-scribd:before { + content: "\f28a"; } + +.fa-debian:before { + content: "\e60b"; } + +.fa-openid:before { + content: "\f19b"; } + +.fa-instalod:before { + content: "\e081"; } + +.fa-expeditedssl:before { + content: "\f23e"; } + +.fa-sellcast:before { + content: "\f2da"; } + +.fa-square-twitter:before { + content: "\f081"; } + +.fa-twitter-square:before { + content: "\f081"; } + +.fa-r-project:before { + content: "\f4f7"; } + +.fa-delicious:before { + content: "\f1a5"; } + +.fa-freebsd:before { + content: "\f3a4"; } + +.fa-vuejs:before { + content: "\f41f"; } + +.fa-accusoft:before { + content: "\f369"; } + +.fa-ioxhost:before { + content: "\f208"; } + +.fa-fonticons-fi:before { + content: "\f3a2"; } + +.fa-app-store:before { + content: "\f36f"; } + +.fa-cc-mastercard:before { + content: "\f1f1"; } + +.fa-itunes-note:before { + content: "\f3b5"; } + +.fa-golang:before { + content: "\e40f"; } + +.fa-kickstarter:before { + content: "\f3bb"; } + +.fa-grav:before { + content: "\f2d6"; } + +.fa-weibo:before { + content: "\f18a"; } + +.fa-uncharted:before { + content: "\e084"; } + +.fa-firstdraft:before { + content: "\f3a1"; } + +.fa-square-youtube:before { + content: "\f431"; } + +.fa-youtube-square:before { + content: "\f431"; } + +.fa-wikipedia-w:before { + content: "\f266"; } + +.fa-wpressr:before { + content: "\f3e4"; } + +.fa-rendact:before { + content: "\f3e4"; } + +.fa-angellist:before { + content: "\f209"; } + +.fa-galactic-republic:before { + content: "\f50c"; } + +.fa-nfc-directional:before { + content: "\e530"; } + +.fa-skype:before { + content: "\f17e"; } + +.fa-joget:before { + content: "\f3b7"; } + +.fa-fedora:before { + content: "\f798"; } + +.fa-stripe-s:before { + content: "\f42a"; } + +.fa-meta:before { + content: "\e49b"; } + +.fa-laravel:before { + content: "\f3bd"; } + +.fa-hotjar:before { + content: "\f3b1"; } + +.fa-bluetooth-b:before { + content: "\f294"; } + +.fa-square-letterboxd:before { + content: "\e62e"; } + +.fa-sticker-mule:before { + content: "\f3f7"; } + +.fa-creative-commons-zero:before { + content: "\f4f3"; } + +.fa-hips:before { + content: "\f452"; } + +.fa-behance:before { + content: "\f1b4"; } + +.fa-reddit:before { + content: "\f1a1"; } + +.fa-discord:before { + content: "\f392"; } + +.fa-chrome:before { + content: "\f268"; } + +.fa-app-store-ios:before { + content: "\f370"; } + +.fa-cc-discover:before { + content: "\f1f2"; } + +.fa-wpbeginner:before { + content: "\f297"; } + +.fa-confluence:before { + content: "\f78d"; } + +.fa-shoelace:before { + content: "\e60c"; } + +.fa-mdb:before { + content: "\f8ca"; } + +.fa-dochub:before { + content: "\f394"; } + +.fa-accessible-icon:before { + content: "\f368"; } + +.fa-ebay:before { + content: "\f4f4"; } + +.fa-amazon:before { + content: "\f270"; } + +.fa-unsplash:before { + content: "\e07c"; } + +.fa-yarn:before { + content: "\f7e3"; } + +.fa-square-steam:before { + content: "\f1b7"; } + +.fa-steam-square:before { + content: "\f1b7"; } + +.fa-500px:before { + content: "\f26e"; } + +.fa-square-vimeo:before { + content: "\f194"; } + +.fa-vimeo-square:before { + content: "\f194"; } + +.fa-asymmetrik:before { + content: "\f372"; } + +.fa-font-awesome:before { + content: "\f2b4"; } + +.fa-font-awesome-flag:before { + content: "\f2b4"; } + +.fa-font-awesome-logo-full:before { + content: "\f2b4"; } + +.fa-gratipay:before { + content: "\f184"; } + +.fa-apple:before { + content: "\f179"; } + +.fa-hive:before { + content: "\e07f"; } + +.fa-gitkraken:before { + content: "\f3a6"; } + +.fa-keybase:before { + content: "\f4f5"; } + +.fa-apple-pay:before { + content: "\f415"; } + +.fa-padlet:before { + content: "\e4a0"; } + +.fa-amazon-pay:before { + content: "\f42c"; } + +.fa-square-github:before { + content: "\f092"; } + +.fa-github-square:before { + content: "\f092"; } + +.fa-stumbleupon:before { + content: "\f1a4"; } + +.fa-fedex:before { + content: "\f797"; } + +.fa-phoenix-framework:before { + content: "\f3dc"; } + +.fa-shopify:before { + content: "\e057"; } + +.fa-neos:before { + content: "\f612"; } + +.fa-square-threads:before { + content: "\e619"; } + +.fa-hackerrank:before { + content: "\f5f7"; } + +.fa-researchgate:before { + content: "\f4f8"; } + +.fa-swift:before { + content: "\f8e1"; } + +.fa-angular:before { + content: "\f420"; } + +.fa-speakap:before { + content: "\f3f3"; } + +.fa-angrycreative:before { + content: "\f36e"; } + +.fa-y-combinator:before { + content: "\f23b"; } + +.fa-empire:before { + content: "\f1d1"; } + +.fa-envira:before { + content: "\f299"; } + +.fa-google-scholar:before { + content: "\e63b"; } + +.fa-square-gitlab:before { + content: "\e5ae"; } + +.fa-gitlab-square:before { + content: "\e5ae"; } + +.fa-studiovinari:before { + content: "\f3f8"; } + +.fa-pied-piper:before { + content: "\f2ae"; } + +.fa-wordpress:before { + content: "\f19a"; } + +.fa-product-hunt:before { + content: "\f288"; } + +.fa-firefox:before { + content: "\f269"; } + +.fa-linode:before { + content: "\f2b8"; } + +.fa-goodreads:before { + content: "\f3a8"; } + +.fa-square-odnoklassniki:before { + content: "\f264"; } + +.fa-odnoklassniki-square:before { + content: "\f264"; } + +.fa-jsfiddle:before { + content: "\f1cc"; } + +.fa-sith:before { + content: "\f512"; } + +.fa-themeisle:before { + content: "\f2b2"; } + +.fa-page4:before { + content: "\f3d7"; } + +.fa-hashnode:before { + content: "\e499"; } + +.fa-react:before { + content: "\f41b"; } + +.fa-cc-paypal:before { + content: "\f1f4"; } + +.fa-squarespace:before { + content: "\f5be"; } + +.fa-cc-stripe:before { + content: "\f1f5"; } + +.fa-creative-commons-share:before { + content: "\f4f2"; } + +.fa-bitcoin:before { + content: "\f379"; } + +.fa-keycdn:before { + content: "\f3ba"; } + +.fa-opera:before { + content: "\f26a"; } + +.fa-itch-io:before { + content: "\f83a"; } + +.fa-umbraco:before { + content: "\f8e8"; } + +.fa-galactic-senate:before { + content: "\f50d"; } + +.fa-ubuntu:before { + content: "\f7df"; } + +.fa-draft2digital:before { + content: "\f396"; } + +.fa-stripe:before { + content: "\f429"; } + +.fa-houzz:before { + content: "\f27c"; } + +.fa-gg:before { + content: "\f260"; } + +.fa-dhl:before { + content: "\f790"; } + +.fa-square-pinterest:before { + content: "\f0d3"; } + +.fa-pinterest-square:before { + content: "\f0d3"; } + +.fa-xing:before { + content: "\f168"; } + +.fa-blackberry:before { + content: "\f37b"; } + +.fa-creative-commons-pd:before { + content: "\f4ec"; } + +.fa-playstation:before { + content: "\f3df"; } + +.fa-quinscape:before { + content: "\f459"; } + +.fa-less:before { + content: "\f41d"; } + +.fa-blogger-b:before { + content: "\f37d"; } + +.fa-opencart:before { + content: "\f23d"; } + +.fa-vine:before { + content: "\f1ca"; } + +.fa-signal-messenger:before { + content: "\e663"; } + +.fa-paypal:before { + content: "\f1ed"; } + +.fa-gitlab:before { + content: "\f296"; } + +.fa-typo3:before { + content: "\f42b"; } + +.fa-reddit-alien:before { + content: "\f281"; } + +.fa-yahoo:before { + content: "\f19e"; } + +.fa-dailymotion:before { + content: "\e052"; } + +.fa-affiliatetheme:before { + content: "\f36b"; } + +.fa-pied-piper-pp:before { + content: "\f1a7"; } + +.fa-bootstrap:before { + content: "\f836"; } + +.fa-odnoklassniki:before { + content: "\f263"; } + +.fa-nfc-symbol:before { + content: "\e531"; } + +.fa-mintbit:before { + content: "\e62f"; } + +.fa-ethereum:before { + content: "\f42e"; } + +.fa-speaker-deck:before { + content: "\f83c"; } + +.fa-creative-commons-nc-eu:before { + content: "\f4e9"; } + +.fa-patreon:before { + content: "\f3d9"; } + +.fa-avianex:before { + content: "\f374"; } + +.fa-ello:before { + content: "\f5f1"; } + +.fa-gofore:before { + content: "\f3a7"; } + +.fa-bimobject:before { + content: "\f378"; } + +.fa-brave-reverse:before { + content: "\e63d"; } + +.fa-facebook-f:before { + content: "\f39e"; } + +.fa-square-google-plus:before { + content: "\f0d4"; } + +.fa-google-plus-square:before { + content: "\f0d4"; } + +.fa-mandalorian:before { + content: "\f50f"; } + +.fa-first-order-alt:before { + content: "\f50a"; } + +.fa-osi:before { + content: "\f41a"; } + +.fa-google-wallet:before { + content: "\f1ee"; } + +.fa-d-and-d-beyond:before { + content: "\f6ca"; } + +.fa-periscope:before { + content: "\f3da"; } + +.fa-fulcrum:before { + content: "\f50b"; } + +.fa-cloudscale:before { + content: "\f383"; } + +.fa-forumbee:before { + content: "\f211"; } + +.fa-mizuni:before { + content: "\f3cc"; } + +.fa-schlix:before { + content: "\f3ea"; } + +.fa-square-xing:before { + content: "\f169"; } + +.fa-xing-square:before { + content: "\f169"; } + +.fa-bandcamp:before { + content: "\f2d5"; } + +.fa-wpforms:before { + content: "\f298"; } + +.fa-cloudversify:before { + content: "\f385"; } + +.fa-usps:before { + content: "\f7e1"; } + +.fa-megaport:before { + content: "\f5a3"; } + +.fa-magento:before { + content: "\f3c4"; } + +.fa-spotify:before { + content: "\f1bc"; } + +.fa-optin-monster:before { + content: "\f23c"; } + +.fa-fly:before { + content: "\f417"; } + +.fa-aviato:before { + content: "\f421"; } + +.fa-itunes:before { + content: "\f3b4"; } + +.fa-cuttlefish:before { + content: "\f38c"; } + +.fa-blogger:before { + content: "\f37c"; } + +.fa-flickr:before { + content: "\f16e"; } + +.fa-viber:before { + content: "\f409"; } + +.fa-soundcloud:before { + content: "\f1be"; } + +.fa-digg:before { + content: "\f1a6"; } + +.fa-tencent-weibo:before { + content: "\f1d5"; } + +.fa-letterboxd:before { + content: "\e62d"; } + +.fa-symfony:before { + content: "\f83d"; } + +.fa-maxcdn:before { + content: "\f136"; } + +.fa-etsy:before { + content: "\f2d7"; } + +.fa-facebook-messenger:before { + content: "\f39f"; } + +.fa-audible:before { + content: "\f373"; } + +.fa-think-peaks:before { + content: "\f731"; } + +.fa-bilibili:before { + content: "\e3d9"; } + +.fa-erlang:before { + content: "\f39d"; } + +.fa-x-twitter:before { + content: "\e61b"; } + +.fa-cotton-bureau:before { + content: "\f89e"; } + +.fa-dashcube:before { + content: "\f210"; } + +.fa-42-group:before { + content: "\e080"; } + +.fa-innosoft:before { + content: "\e080"; } + +.fa-stack-exchange:before { + content: "\f18d"; } + +.fa-elementor:before { + content: "\f430"; } + +.fa-square-pied-piper:before { + content: "\e01e"; } + +.fa-pied-piper-square:before { + content: "\e01e"; } + +.fa-creative-commons-nd:before { + content: "\f4eb"; } + +.fa-palfed:before { + content: "\f3d8"; } + +.fa-superpowers:before { + content: "\f2dd"; } + +.fa-resolving:before { + content: "\f3e7"; } + +.fa-xbox:before { + content: "\f412"; } + +.fa-searchengin:before { + content: "\f3eb"; } + +.fa-tiktok:before { + content: "\e07b"; } + +.fa-square-facebook:before { + content: "\f082"; } + +.fa-facebook-square:before { + content: "\f082"; } + +.fa-renren:before { + content: "\f18b"; } + +.fa-linux:before { + content: "\f17c"; } + +.fa-glide:before { + content: "\f2a5"; } + +.fa-linkedin:before { + content: "\f08c"; } + +.fa-hubspot:before { + content: "\f3b2"; } + +.fa-deploydog:before { + content: "\f38e"; } + +.fa-twitch:before { + content: "\f1e8"; } + +.fa-ravelry:before { + content: "\f2d9"; } + +.fa-mixer:before { + content: "\e056"; } + +.fa-square-lastfm:before { + content: "\f203"; } + +.fa-lastfm-square:before { + content: "\f203"; } + +.fa-vimeo:before { + content: "\f40a"; } + +.fa-mendeley:before { + content: "\f7b3"; } + +.fa-uniregistry:before { + content: "\f404"; } + +.fa-figma:before { + content: "\f799"; } + +.fa-creative-commons-remix:before { + content: "\f4ee"; } + +.fa-cc-amazon-pay:before { + content: "\f42d"; } + +.fa-dropbox:before { + content: "\f16b"; } + +.fa-instagram:before { + content: "\f16d"; } + +.fa-cmplid:before { + content: "\e360"; } + +.fa-upwork:before { + content: "\e641"; } + +.fa-facebook:before { + content: "\f09a"; } + +.fa-gripfire:before { + content: "\f3ac"; } + +.fa-jedi-order:before { + content: "\f50e"; } + +.fa-uikit:before { + content: "\f403"; } + +.fa-fort-awesome-alt:before { + content: "\f3a3"; } + +.fa-phabricator:before { + content: "\f3db"; } + +.fa-ussunnah:before { + content: "\f407"; } + +.fa-earlybirds:before { + content: "\f39a"; } + +.fa-trade-federation:before { + content: "\f513"; } + +.fa-autoprefixer:before { + content: "\f41c"; } + +.fa-whatsapp:before { + content: "\f232"; } + +.fa-slideshare:before { + content: "\f1e7"; } + +.fa-google-play:before { + content: "\f3ab"; } + +.fa-viadeo:before { + content: "\f2a9"; } + +.fa-line:before { + content: "\f3c0"; } + +.fa-google-drive:before { + content: "\f3aa"; } + +.fa-servicestack:before { + content: "\f3ec"; } + +.fa-simplybuilt:before { + content: "\f215"; } + +.fa-bitbucket:before { + content: "\f171"; } + +.fa-imdb:before { + content: "\f2d8"; } + +.fa-deezer:before { + content: "\e077"; } + +.fa-raspberry-pi:before { + content: "\f7bb"; } + +.fa-jira:before { + content: "\f7b1"; } + +.fa-docker:before { + content: "\f395"; } + +.fa-screenpal:before { + content: "\e570"; } + +.fa-bluetooth:before { + content: "\f293"; } + +.fa-gitter:before { + content: "\f426"; } + +.fa-d-and-d:before { + content: "\f38d"; } + +.fa-microblog:before { + content: "\e01a"; } + +.fa-cc-diners-club:before { + content: "\f24c"; } + +.fa-gg-circle:before { + content: "\f261"; } + +.fa-pied-piper-hat:before { + content: "\f4e5"; } + +.fa-kickstarter-k:before { + content: "\f3bc"; } + +.fa-yandex:before { + content: "\f413"; } + +.fa-readme:before { + content: "\f4d5"; } + +.fa-html5:before { + content: "\f13b"; } + +.fa-sellsy:before { + content: "\f213"; } + +.fa-sass:before { + content: "\f41e"; } + +.fa-wirsindhandwerk:before { + content: "\e2d0"; } + +.fa-wsh:before { + content: "\e2d0"; } + +.fa-buromobelexperte:before { + content: "\f37f"; } + +.fa-salesforce:before { + content: "\f83b"; } + +.fa-octopus-deploy:before { + content: "\e082"; } + +.fa-medapps:before { + content: "\f3c6"; } + +.fa-ns8:before { + content: "\f3d5"; } + +.fa-pinterest-p:before { + content: "\f231"; } + +.fa-apper:before { + content: "\f371"; } + +.fa-fort-awesome:before { + content: "\f286"; } + +.fa-waze:before { + content: "\f83f"; } + +.fa-cc-jcb:before { + content: "\f24b"; } + +.fa-snapchat:before { + content: "\f2ab"; } + +.fa-snapchat-ghost:before { + content: "\f2ab"; } + +.fa-fantasy-flight-games:before { + content: "\f6dc"; } + +.fa-rust:before { + content: "\e07a"; } + +.fa-wix:before { + content: "\f5cf"; } + +.fa-square-behance:before { + content: "\f1b5"; } + +.fa-behance-square:before { + content: "\f1b5"; } + +.fa-supple:before { + content: "\f3f9"; } + +.fa-webflow:before { + content: "\e65c"; } + +.fa-rebel:before { + content: "\f1d0"; } + +.fa-css3:before { + content: "\f13c"; } + +.fa-staylinked:before { + content: "\f3f5"; } + +.fa-kaggle:before { + content: "\f5fa"; } + +.fa-space-awesome:before { + content: "\e5ac"; } + +.fa-deviantart:before { + content: "\f1bd"; } + +.fa-cpanel:before { + content: "\f388"; } + +.fa-goodreads-g:before { + content: "\f3a9"; } + +.fa-square-git:before { + content: "\f1d2"; } + +.fa-git-square:before { + content: "\f1d2"; } + +.fa-square-tumblr:before { + content: "\f174"; } + +.fa-tumblr-square:before { + content: "\f174"; } + +.fa-trello:before { + content: "\f181"; } + +.fa-creative-commons-nc-jp:before { + content: "\f4ea"; } + +.fa-get-pocket:before { + content: "\f265"; } + +.fa-perbyte:before { + content: "\e083"; } + +.fa-grunt:before { + content: "\f3ad"; } + +.fa-weebly:before { + content: "\f5cc"; } + +.fa-connectdevelop:before { + content: "\f20e"; } + +.fa-leanpub:before { + content: "\f212"; } + +.fa-black-tie:before { + content: "\f27e"; } + +.fa-themeco:before { + content: "\f5c6"; } + +.fa-python:before { + content: "\f3e2"; } + +.fa-android:before { + content: "\f17b"; } + +.fa-bots:before { + content: "\e340"; } + +.fa-free-code-camp:before { + content: "\f2c5"; } + +.fa-hornbill:before { + content: "\f592"; } + +.fa-js:before { + content: "\f3b8"; } + +.fa-ideal:before { + content: "\e013"; } + +.fa-git:before { + content: "\f1d3"; } + +.fa-dev:before { + content: "\f6cc"; } + +.fa-sketch:before { + content: "\f7c6"; } + +.fa-yandex-international:before { + content: "\f414"; } + +.fa-cc-amex:before { + content: "\f1f3"; } + +.fa-uber:before { + content: "\f402"; } + +.fa-github:before { + content: "\f09b"; } + +.fa-php:before { + content: "\f457"; } + +.fa-alipay:before { + content: "\f642"; } + +.fa-youtube:before { + content: "\f167"; } + +.fa-skyatlas:before { + content: "\f216"; } + +.fa-firefox-browser:before { + content: "\e007"; } + +.fa-replyd:before { + content: "\f3e6"; } + +.fa-suse:before { + content: "\f7d6"; } + +.fa-jenkins:before { + content: "\f3b6"; } + +.fa-twitter:before { + content: "\f099"; } + +.fa-rockrms:before { + content: "\f3e9"; } + +.fa-pinterest:before { + content: "\f0d2"; } + +.fa-buffer:before { + content: "\f837"; } + +.fa-npm:before { + content: "\f3d4"; } + +.fa-yammer:before { + content: "\f840"; } + +.fa-btc:before { + content: "\f15a"; } + +.fa-dribbble:before { + content: "\f17d"; } + +.fa-stumbleupon-circle:before { + content: "\f1a3"; } + +.fa-internet-explorer:before { + content: "\f26b"; } + +.fa-stubber:before { + content: "\e5c7"; } + +.fa-telegram:before { + content: "\f2c6"; } + +.fa-telegram-plane:before { + content: "\f2c6"; } + +.fa-old-republic:before { + content: "\f510"; } + +.fa-odysee:before { + content: "\e5c6"; } + +.fa-square-whatsapp:before { + content: "\f40c"; } + +.fa-whatsapp-square:before { + content: "\f40c"; } + +.fa-node-js:before { + content: "\f3d3"; } + +.fa-edge-legacy:before { + content: "\e078"; } + +.fa-slack:before { + content: "\f198"; } + +.fa-slack-hash:before { + content: "\f198"; } + +.fa-medrt:before { + content: "\f3c8"; } + +.fa-usb:before { + content: "\f287"; } + +.fa-tumblr:before { + content: "\f173"; } + +.fa-vaadin:before { + content: "\f408"; } + +.fa-quora:before { + content: "\f2c4"; } + +.fa-square-x-twitter:before { + content: "\e61a"; } + +.fa-reacteurope:before { + content: "\f75d"; } + +.fa-medium:before { + content: "\f23a"; } + +.fa-medium-m:before { + content: "\f23a"; } + +.fa-amilia:before { + content: "\f36d"; } + +.fa-mixcloud:before { + content: "\f289"; } + +.fa-flipboard:before { + content: "\f44d"; } + +.fa-viacoin:before { + content: "\f237"; } + +.fa-critical-role:before { + content: "\f6c9"; } + +.fa-sitrox:before { + content: "\e44a"; } + +.fa-discourse:before { + content: "\f393"; } + +.fa-joomla:before { + content: "\f1aa"; } + +.fa-mastodon:before { + content: "\f4f6"; } + +.fa-airbnb:before { + content: "\f834"; } + +.fa-wolf-pack-battalion:before { + content: "\f514"; } + +.fa-buy-n-large:before { + content: "\f8a6"; } + +.fa-gulp:before { + content: "\f3ae"; } + +.fa-creative-commons-sampling-plus:before { + content: "\f4f1"; } + +.fa-strava:before { + content: "\f428"; } + +.fa-ember:before { + content: "\f423"; } + +.fa-canadian-maple-leaf:before { + content: "\f785"; } + +.fa-teamspeak:before { + content: "\f4f9"; } + +.fa-pushed:before { + content: "\f3e1"; } + +.fa-wordpress-simple:before { + content: "\f411"; } + +.fa-nutritionix:before { + content: "\f3d6"; } + +.fa-wodu:before { + content: "\e088"; } + +.fa-google-pay:before { + content: "\e079"; } + +.fa-intercom:before { + content: "\f7af"; } + +.fa-zhihu:before { + content: "\f63f"; } + +.fa-korvue:before { + content: "\f42f"; } + +.fa-pix:before { + content: "\e43a"; } + +.fa-steam-symbol:before { + content: "\f3f6"; } +:root, :host { + --fa-style-family-classic: 'Font Awesome 6 Free'; + --fa-font-regular: normal 400 1em/1 'Font Awesome 6 Free'; } + +@font-face { + font-family: 'Font Awesome 6 Free'; + font-style: normal; + font-weight: 400; + font-display: block; + src: url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.ttf") format("truetype"); } + +.far, +.fa-regular { + font-weight: 400; } +:root, :host { + --fa-style-family-classic: 'Font Awesome 6 Free'; + --fa-font-solid: normal 900 1em/1 'Font Awesome 6 Free'; } + +@font-face { + font-family: 'Font Awesome 6 Free'; + font-style: normal; + font-weight: 900; + font-display: block; + src: url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.ttf") format("truetype"); } + +.fas, +.fa-solid { + font-weight: 900; } +@font-face { + font-family: 'Font Awesome 5 Brands'; + font-display: block; + font-weight: 400; + src: url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.ttf") format("truetype"); } + +@font-face { + font-family: 'Font Awesome 5 Free'; + font-display: block; + font-weight: 900; + src: url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.ttf") format("truetype"); } + +@font-face { + font-family: 'Font Awesome 5 Free'; + font-display: block; + font-weight: 400; + src: url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.ttf") format("truetype"); } +@font-face { + font-family: 'FontAwesome'; + font-display: block; + src: url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.ttf") format("truetype"); } + +@font-face { + font-family: 'FontAwesome'; + font-display: block; + src: url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.ttf") format("truetype"); } + +@font-face { + font-family: 'FontAwesome'; + font-display: block; + src: url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.ttf") format("truetype"); + unicode-range: U+F003,U+F006,U+F014,U+F016-F017,U+F01A-F01B,U+F01D,U+F022,U+F03E,U+F044,U+F046,U+F05C-F05D,U+F06E,U+F070,U+F087-F088,U+F08A,U+F094,U+F096-F097,U+F09D,U+F0A0,U+F0A2,U+F0A4-F0A7,U+F0C5,U+F0C7,U+F0E5-F0E6,U+F0EB,U+F0F6-F0F8,U+F10C,U+F114-F115,U+F118-F11A,U+F11C-F11D,U+F133,U+F147,U+F14E,U+F150-F152,U+F185-F186,U+F18E,U+F190-F192,U+F196,U+F1C1-F1C9,U+F1D9,U+F1DB,U+F1E3,U+F1EA,U+F1F7,U+F1F9,U+F20A,U+F247-F248,U+F24A,U+F24D,U+F255-F25B,U+F25D,U+F271-F274,U+F278,U+F27B,U+F28C,U+F28E,U+F29C,U+F2B5,U+F2B7,U+F2BA,U+F2BC,U+F2BE,U+F2C0-F2C1,U+F2C3,U+F2D0,U+F2D2,U+F2D4,U+F2DC; } + +@font-face { + font-family: 'FontAwesome'; + font-display: block; + src: url("../webfonts/fa-v4compatibility.woff2") format("woff2"), url("../webfonts/fa-v4compatibility.ttf") format("truetype"); + unicode-range: U+F041,U+F047,U+F065-F066,U+F07D-F07E,U+F080,U+F08B,U+F08E,U+F090,U+F09A,U+F0AC,U+F0AE,U+F0B2,U+F0D0,U+F0D6,U+F0E4,U+F0EC,U+F10A-F10B,U+F123,U+F13E,U+F148-F149,U+F14C,U+F156,U+F15E,U+F160-F161,U+F163,U+F175-F178,U+F195,U+F1F8,U+F219,U+F27A; } diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/@fortawesome/fontawesome-free/css/v4-shims.css b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/@fortawesome/fontawesome-free/css/v4-shims.css index 1ef4893b4a..3cd2e1bfc5 100644 --- a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/@fortawesome/fontawesome-free/css/v4-shims.css +++ b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/@fortawesome/fontawesome-free/css/v4-shims.css @@ -1,16 +1,20 @@ /*! - * Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com + * Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + * Copyright 2023 Fonticons, Inc. */ .fa.fa-glass:before { content: "\f000"; } -.fa.fa-meetup { - font-family: 'Font Awesome 5 Brands'; +.fa.fa-envelope-o { + font-family: 'Font Awesome 6 Free'; font-weight: 400; } +.fa.fa-envelope-o:before { + content: "\f0e0"; } + .fa.fa-star-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-star-o:before { @@ -26,42 +30,45 @@ content: "\f013"; } .fa.fa-trash-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-trash-o:before { content: "\f2ed"; } +.fa.fa-home:before { + content: "\f015"; } + .fa.fa-file-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-file-o:before { content: "\f15b"; } .fa.fa-clock-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-clock-o:before { content: "\f017"; } .fa.fa-arrow-circle-o-down { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-arrow-circle-o-down:before { content: "\f358"; } .fa.fa-arrow-circle-o-up { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-arrow-circle-o-up:before { content: "\f35b"; } .fa.fa-play-circle-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-play-circle-o:before { @@ -77,9 +84,12 @@ content: "\f021"; } .fa.fa-list-alt { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } +.fa.fa-list-alt:before { + content: "\f022"; } + .fa.fa-dedent:before { content: "\f03b"; } @@ -87,48 +97,48 @@ content: "\f03d"; } .fa.fa-picture-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-picture-o:before { content: "\f03e"; } .fa.fa-photo { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-photo:before { content: "\f03e"; } .fa.fa-image { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-image:before { content: "\f03e"; } -.fa.fa-pencil:before { - content: "\f303"; } - .fa.fa-map-marker:before { content: "\f3c5"; } .fa.fa-pencil-square-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-pencil-square-o:before { content: "\f044"; } -.fa.fa-share-square-o { - font-family: 'Font Awesome 5 Free'; +.fa.fa-edit { + font-family: 'Font Awesome 6 Free'; font-weight: 400; } +.fa.fa-edit:before { + content: "\f044"; } + .fa.fa-share-square-o:before { content: "\f14d"; } .fa.fa-check-square-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-check-square-o:before { @@ -138,14 +148,14 @@ content: "\f0b2"; } .fa.fa-times-circle-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-times-circle-o:before { content: "\f057"; } .fa.fa-check-circle-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-check-circle-o:before { @@ -161,11 +171,11 @@ content: "\f422"; } .fa.fa-eye { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-eye-slash { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-warning:before { @@ -180,47 +190,45 @@ .fa.fa-arrows-h:before { content: "\f337"; } -.fa.fa-bar-chart { - font-family: 'Font Awesome 5 Free'; - font-weight: 400; } - .fa.fa-bar-chart:before { - content: "\f080"; } - -.fa.fa-bar-chart-o { - font-family: 'Font Awesome 5 Free'; - font-weight: 400; } + content: "\e0e3"; } .fa.fa-bar-chart-o:before { - content: "\f080"; } + content: "\e0e3"; } .fa.fa-twitter-square { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } +.fa.fa-twitter-square:before { + content: "\f081"; } + .fa.fa-facebook-square { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } +.fa.fa-facebook-square:before { + content: "\f082"; } + .fa.fa-gears:before { content: "\f085"; } .fa.fa-thumbs-o-up { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-thumbs-o-up:before { content: "\f164"; } .fa.fa-thumbs-o-down { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-thumbs-o-down:before { content: "\f165"; } .fa.fa-heart-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-heart-o:before { @@ -230,7 +238,7 @@ content: "\f2f5"; } .fa.fa-linkedin-square { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-linkedin-square:before { @@ -246,94 +254,103 @@ content: "\f2f6"; } .fa.fa-github-square { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } +.fa.fa-github-square:before { + content: "\f092"; } + .fa.fa-lemon-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-lemon-o:before { content: "\f094"; } .fa.fa-square-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-square-o:before { content: "\f0c8"; } .fa.fa-bookmark-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-bookmark-o:before { content: "\f02e"; } .fa.fa-twitter { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-facebook { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-facebook:before { content: "\f39e"; } .fa.fa-facebook-f { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-facebook-f:before { content: "\f39e"; } .fa.fa-github { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-credit-card { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-feed:before { content: "\f09e"; } .fa.fa-hdd-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-hdd-o:before { content: "\f0a0"; } .fa.fa-hand-o-right { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-hand-o-right:before { content: "\f0a4"; } .fa.fa-hand-o-left { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-hand-o-left:before { content: "\f0a5"; } .fa.fa-hand-o-up { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-hand-o-up:before { content: "\f0a6"; } .fa.fa-hand-o-down { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-hand-o-down:before { content: "\f0a7"; } +.fa.fa-globe:before { + content: "\f57d"; } + +.fa.fa-tasks:before { + content: "\f828"; } + .fa.fa-arrows-alt:before { content: "\f31e"; } @@ -343,52 +360,64 @@ .fa.fa-chain:before { content: "\f0c1"; } -.fa.fa-scissors:before { +.fa.fa-cut:before { content: "\f0c4"; } .fa.fa-files-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-files-o:before { content: "\f0c5"; } .fa.fa-floppy-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-floppy-o:before { content: "\f0c7"; } +.fa.fa-save { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-save:before { + content: "\f0c7"; } + .fa.fa-navicon:before { content: "\f0c9"; } .fa.fa-reorder:before { content: "\f0c9"; } +.fa.fa-magic:before { + content: "\e2ca"; } + .fa.fa-pinterest { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-pinterest-square { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } +.fa.fa-pinterest-square:before { + content: "\f0d3"; } + .fa.fa-google-plus-square { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } +.fa.fa-google-plus-square:before { + content: "\f0d4"; } + .fa.fa-google-plus { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-google-plus:before { content: "\f0d5"; } -.fa.fa-money { - font-family: 'Font Awesome 5 Free'; - font-weight: 400; } - .fa.fa-money:before { content: "\f3d1"; } @@ -402,7 +431,7 @@ content: "\f0de"; } .fa.fa-linkedin { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-linkedin:before { @@ -415,20 +444,20 @@ content: "\f0e3"; } .fa.fa-tachometer:before { - content: "\f3fd"; } + content: "\f625"; } .fa.fa-dashboard:before { - content: "\f3fd"; } + content: "\f625"; } .fa.fa-comment-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-comment-o:before { content: "\f075"; } .fa.fa-comments-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-comments-o:before { @@ -437,19 +466,11 @@ .fa.fa-flash:before { content: "\f0e7"; } -.fa.fa-clipboard { - font-family: 'Font Awesome 5 Free'; - font-weight: 400; } - -.fa.fa-paste { - font-family: 'Font Awesome 5 Free'; - font-weight: 400; } - -.fa.fa-paste:before { - content: "\f328"; } +.fa.fa-clipboard:before { + content: "\f0ea"; } .fa.fa-lightbulb-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-lightbulb-o:before { @@ -459,13 +480,13 @@ content: "\f362"; } .fa.fa-cloud-download:before { - content: "\f381"; } + content: "\f0ed"; } .fa.fa-cloud-upload:before { - content: "\f382"; } + content: "\f0ee"; } .fa.fa-bell-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-bell-o:before { @@ -475,21 +496,21 @@ content: "\f2e7"; } .fa.fa-file-text-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-file-text-o:before { content: "\f15c"; } .fa.fa-building-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-building-o:before { content: "\f1ad"; } .fa.fa-hospital-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-hospital-o:before { @@ -505,7 +526,7 @@ content: "\f3cd"; } .fa.fa-circle-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-circle-o:before { @@ -515,53 +536,53 @@ content: "\f3e5"; } .fa.fa-github-alt { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-folder-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-folder-o:before { content: "\f07b"; } .fa.fa-folder-open-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-folder-open-o:before { content: "\f07c"; } .fa.fa-smile-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-smile-o:before { content: "\f118"; } .fa.fa-frown-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-frown-o:before { content: "\f119"; } .fa.fa-meh-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-meh-o:before { content: "\f11a"; } .fa.fa-keyboard-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-keyboard-o:before { content: "\f11c"; } .fa.fa-flag-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-flag-o:before { @@ -571,25 +592,25 @@ content: "\f122"; } .fa.fa-star-half-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-star-half-o:before { - content: "\f089"; } + content: "\f5c0"; } .fa.fa-star-half-empty { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-star-half-empty:before { - content: "\f089"; } + content: "\f5c0"; } .fa.fa-star-half-full { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-star-half-full:before { - content: "\f089"; } + content: "\f5c0"; } .fa.fa-code-fork:before { content: "\f126"; } @@ -597,33 +618,33 @@ .fa.fa-chain-broken:before { content: "\f127"; } -.fa.fa-shield:before { - content: "\f3ed"; } +.fa.fa-unlink:before { + content: "\f127"; } .fa.fa-calendar-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-calendar-o:before { content: "\f133"; } .fa.fa-maxcdn { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-html5 { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-css3 { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } -.fa.fa-ticket:before { - content: "\f3ff"; } +.fa.fa-unlock-alt:before { + content: "\f09c"; } .fa.fa-minus-square-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-minus-square-o:before { @@ -642,46 +663,46 @@ content: "\f360"; } .fa.fa-compass { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-caret-square-o-down { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-caret-square-o-down:before { content: "\f150"; } .fa.fa-toggle-down { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-toggle-down:before { content: "\f150"; } .fa.fa-caret-square-o-up { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-caret-square-o-up:before { content: "\f151"; } .fa.fa-toggle-up { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-toggle-up:before { content: "\f151"; } .fa.fa-caret-square-o-right { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-caret-square-o-right:before { content: "\f152"; } .fa.fa-toggle-right { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-toggle-right:before { @@ -697,16 +718,16 @@ content: "\f154"; } .fa.fa-usd:before { - content: "\f155"; } + content: "\24"; } .fa.fa-dollar:before { - content: "\f155"; } + content: "\24"; } .fa.fa-inr:before { - content: "\f156"; } + content: "\e1bc"; } .fa.fa-rupee:before { - content: "\f156"; } + content: "\e1bc"; } .fa.fa-jpy:before { content: "\f157"; } @@ -736,11 +757,11 @@ content: "\f159"; } .fa.fa-btc { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-bitcoin { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-bitcoin:before { @@ -756,10 +777,10 @@ content: "\f881"; } .fa.fa-sort-amount-asc:before { - content: "\f160"; } + content: "\f884"; } .fa.fa-sort-amount-desc:before { - content: "\f884"; } + content: "\f160"; } .fa.fa-sort-numeric-asc:before { content: "\f162"; } @@ -768,67 +789,76 @@ content: "\f886"; } .fa.fa-youtube-square { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } +.fa.fa-youtube-square:before { + content: "\f431"; } + .fa.fa-youtube { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-xing { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-xing-square { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } +.fa.fa-xing-square:before { + content: "\f169"; } + .fa.fa-youtube-play { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-youtube-play:before { content: "\f167"; } .fa.fa-dropbox { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-stack-overflow { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-instagram { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-flickr { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-adn { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-bitbucket { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-bitbucket-square { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-bitbucket-square:before { content: "\f171"; } .fa.fa-tumblr { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-tumblr-square { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } +.fa.fa-tumblr-square:before { + content: "\f174"; } + .fa.fa-long-arrow-down:before { content: "\f309"; } @@ -842,144 +872,147 @@ content: "\f30b"; } .fa.fa-apple { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-windows { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-android { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-linux { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-dribbble { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-skype { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-foursquare { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-trello { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-gratipay { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-gittip { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-gittip:before { content: "\f184"; } .fa.fa-sun-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-sun-o:before { content: "\f185"; } .fa.fa-moon-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-moon-o:before { content: "\f186"; } .fa.fa-vk { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-weibo { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-renren { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-pagelines { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-stack-exchange { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-arrow-circle-o-right { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-arrow-circle-o-right:before { content: "\f35a"; } .fa.fa-arrow-circle-o-left { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-arrow-circle-o-left:before { content: "\f359"; } .fa.fa-caret-square-o-left { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-caret-square-o-left:before { content: "\f191"; } .fa.fa-toggle-left { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-toggle-left:before { content: "\f191"; } .fa.fa-dot-circle-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-dot-circle-o:before { content: "\f192"; } .fa.fa-vimeo-square { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } +.fa.fa-vimeo-square:before { + content: "\f194"; } + .fa.fa-try:before { - content: "\f195"; } + content: "\e2bb"; } .fa.fa-turkish-lira:before { - content: "\f195"; } + content: "\e2bb"; } .fa.fa-plus-square-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-plus-square-o:before { content: "\f0fe"; } .fa.fa-slack { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-wordpress { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-openid { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-institution:before { @@ -992,233 +1025,215 @@ content: "\f19d"; } .fa.fa-yahoo { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-google { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-reddit { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-reddit-square { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } +.fa.fa-reddit-square:before { + content: "\f1a2"; } + .fa.fa-stumbleupon-circle { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-stumbleupon { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-delicious { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-digg { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-pied-piper-pp { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-pied-piper-alt { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-drupal { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-joomla { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } -.fa.fa-spoon:before { - content: "\f2e5"; } - .fa.fa-behance { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-behance-square { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } +.fa.fa-behance-square:before { + content: "\f1b5"; } + .fa.fa-steam { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-steam-square { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } +.fa.fa-steam-square:before { + content: "\f1b7"; } + .fa.fa-automobile:before { content: "\f1b9"; } -.fa.fa-envelope-o { - font-family: 'Font Awesome 5 Free'; - font-weight: 400; } - -.fa.fa-envelope-o:before { - content: "\f0e0"; } +.fa.fa-cab:before { + content: "\f1ba"; } .fa.fa-spotify { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-deviantart { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-soundcloud { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-file-pdf-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-file-pdf-o:before { content: "\f1c1"; } .fa.fa-file-word-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-file-word-o:before { content: "\f1c2"; } .fa.fa-file-excel-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-file-excel-o:before { content: "\f1c3"; } .fa.fa-file-powerpoint-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-file-powerpoint-o:before { content: "\f1c4"; } .fa.fa-file-image-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-file-image-o:before { content: "\f1c5"; } .fa.fa-file-photo-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-file-photo-o:before { content: "\f1c5"; } .fa.fa-file-picture-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-file-picture-o:before { content: "\f1c5"; } .fa.fa-file-archive-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-file-archive-o:before { content: "\f1c6"; } .fa.fa-file-zip-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-file-zip-o:before { content: "\f1c6"; } .fa.fa-file-audio-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-file-audio-o:before { content: "\f1c7"; } .fa.fa-file-sound-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-file-sound-o:before { content: "\f1c7"; } .fa.fa-file-video-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-file-video-o:before { content: "\f1c8"; } .fa.fa-file-movie-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-file-movie-o:before { content: "\f1c8"; } .fa.fa-file-code-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-file-code-o:before { content: "\f1c9"; } .fa.fa-vine { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-codepen { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-jsfiddle { - font-family: 'Font Awesome 5 Brands'; - font-weight: 400; } - -.fa.fa-life-ring { - font-family: 'Font Awesome 5 Free'; - font-weight: 400; } - -.fa.fa-life-bouy { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-life-bouy:before { content: "\f1cd"; } -.fa.fa-life-buoy { - font-family: 'Font Awesome 5 Free'; - font-weight: 400; } - .fa.fa-life-buoy:before { content: "\f1cd"; } -.fa.fa-life-saver { - font-family: 'Font Awesome 5 Free'; - font-weight: 400; } - .fa.fa-life-saver:before { content: "\f1cd"; } -.fa.fa-support { - font-family: 'Font Awesome 5 Free'; - font-weight: 400; } - .fa.fa-support:before { content: "\f1cd"; } @@ -1226,74 +1241,77 @@ content: "\f1ce"; } .fa.fa-rebel { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-ra { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-ra:before { content: "\f1d0"; } .fa.fa-resistance { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-resistance:before { content: "\f1d0"; } .fa.fa-empire { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-ge { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-ge:before { content: "\f1d1"; } .fa.fa-git-square { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } +.fa.fa-git-square:before { + content: "\f1d2"; } + .fa.fa-git { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-hacker-news { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-y-combinator-square { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-y-combinator-square:before { content: "\f1d4"; } .fa.fa-yc-square { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-yc-square:before { content: "\f1d4"; } .fa.fa-tencent-weibo { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-qq { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-weixin { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-wechat { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-wechat:before { @@ -1303,21 +1321,21 @@ content: "\f1d8"; } .fa.fa-paper-plane-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-paper-plane-o:before { content: "\f1d8"; } .fa.fa-send-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-send-o:before { content: "\f1d8"; } .fa.fa-circle-thin { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-circle-thin:before { @@ -1326,76 +1344,73 @@ .fa.fa-header:before { content: "\f1dc"; } -.fa.fa-sliders:before { - content: "\f1de"; } - .fa.fa-futbol-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-futbol-o:before { content: "\f1e3"; } .fa.fa-soccer-ball-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-soccer-ball-o:before { content: "\f1e3"; } .fa.fa-slideshare { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-twitch { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-yelp { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-newspaper-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-newspaper-o:before { content: "\f1ea"; } .fa.fa-paypal { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-google-wallet { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-cc-visa { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-cc-mastercard { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-cc-discover { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-cc-amex { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-cc-paypal { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-cc-stripe { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-bell-slash-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-bell-slash-o:before { @@ -1405,7 +1420,7 @@ content: "\f2ed"; } .fa.fa-copyright { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-eyedropper:before { @@ -1421,23 +1436,26 @@ content: "\f201"; } .fa.fa-lastfm { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-lastfm-square { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } +.fa.fa-lastfm-square:before { + content: "\f203"; } + .fa.fa-ioxhost { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-angellist { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-cc { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-cc:before { @@ -1452,106 +1470,105 @@ .fa.fa-sheqel:before { content: "\f20b"; } -.fa.fa-meanpath { - font-family: 'Font Awesome 5 Brands'; - font-weight: 400; } - -.fa.fa-meanpath:before { - content: "\f2b4"; } - .fa.fa-buysellads { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-connectdevelop { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-dashcube { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-forumbee { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-leanpub { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-sellsy { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-shirtsinbulk { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-simplybuilt { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-skyatlas { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-diamond { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-diamond:before { content: "\f3a5"; } +.fa.fa-transgender:before { + content: "\f224"; } + .fa.fa-intersex:before { content: "\f224"; } +.fa.fa-transgender-alt:before { + content: "\f225"; } + .fa.fa-facebook-official { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-facebook-official:before { content: "\f09a"; } .fa.fa-pinterest-p { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-whatsapp { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-hotel:before { content: "\f236"; } .fa.fa-viacoin { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-medium { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-y-combinator { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-yc { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-yc:before { content: "\f23b"; } .fa.fa-optin-monster { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-opencart { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-expeditedssl { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-battery-4:before { @@ -1573,34 +1590,30 @@ content: "\f244"; } .fa.fa-object-group { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-object-ungroup { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-sticky-note-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-sticky-note-o:before { content: "\f249"; } .fa.fa-cc-jcb { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-cc-diners-club { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-clone { - font-family: 'Font Awesome 5 Free'; - font-weight: 400; } - -.fa.fa-hourglass-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-hourglass-o:before { @@ -1616,169 +1629,168 @@ content: "\f253"; } .fa.fa-hand-rock-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-hand-rock-o:before { content: "\f255"; } .fa.fa-hand-grab-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-hand-grab-o:before { content: "\f255"; } .fa.fa-hand-paper-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-hand-paper-o:before { content: "\f256"; } .fa.fa-hand-stop-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-hand-stop-o:before { content: "\f256"; } .fa.fa-hand-scissors-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-hand-scissors-o:before { content: "\f257"; } .fa.fa-hand-lizard-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-hand-lizard-o:before { content: "\f258"; } .fa.fa-hand-spock-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-hand-spock-o:before { content: "\f259"; } .fa.fa-hand-pointer-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-hand-pointer-o:before { content: "\f25a"; } .fa.fa-hand-peace-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-hand-peace-o:before { content: "\f25b"; } .fa.fa-registered { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-creative-commons { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-gg { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-gg-circle { - font-family: 'Font Awesome 5 Brands'; - font-weight: 400; } - -.fa.fa-tripadvisor { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-odnoklassniki { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-odnoklassniki-square { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } +.fa.fa-odnoklassniki-square:before { + content: "\f264"; } + .fa.fa-get-pocket { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-wikipedia-w { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-safari { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-chrome { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-firefox { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-opera { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-internet-explorer { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-television:before { content: "\f26c"; } .fa.fa-contao { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-500px { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-amazon { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-calendar-plus-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-calendar-plus-o:before { content: "\f271"; } .fa.fa-calendar-minus-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-calendar-minus-o:before { content: "\f272"; } .fa.fa-calendar-times-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-calendar-times-o:before { content: "\f273"; } .fa.fa-calendar-check-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-calendar-check-o:before { content: "\f274"; } .fa.fa-map-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-map-o:before { @@ -1788,117 +1800,117 @@ content: "\f4ad"; } .fa.fa-commenting-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-commenting-o:before { content: "\f4ad"; } .fa.fa-houzz { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-vimeo { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-vimeo:before { content: "\f27d"; } .fa.fa-black-tie { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-fonticons { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-reddit-alien { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-edge { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-credit-card-alt:before { content: "\f09d"; } .fa.fa-codiepie { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-modx { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-fort-awesome { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-usb { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-product-hunt { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-mixcloud { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-scribd { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-pause-circle-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-pause-circle-o:before { content: "\f28b"; } .fa.fa-stop-circle-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-stop-circle-o:before { content: "\f28d"; } .fa.fa-bluetooth { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-bluetooth-b { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-gitlab { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-wpbeginner { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-wpforms { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-envira { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-wheelchair-alt { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-wheelchair-alt:before { content: "\f368"; } .fa.fa-question-circle-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-question-circle-o:before { @@ -1917,97 +1929,106 @@ content: "\f2a4"; } .fa.fa-glide { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-glide-g { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-signing:before { content: "\f2a7"; } .fa.fa-viadeo { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-viadeo-square { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } +.fa.fa-viadeo-square:before { + content: "\f2aa"; } + .fa.fa-snapchat { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-snapchat-ghost { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } +.fa.fa-snapchat-ghost:before { + content: "\f2ab"; } + .fa.fa-snapchat-square { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } +.fa.fa-snapchat-square:before { + content: "\f2ad"; } + .fa.fa-pied-piper { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-first-order { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-yoast { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-themeisle { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-google-plus-official { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-google-plus-official:before { content: "\f2b3"; } .fa.fa-google-plus-circle { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-google-plus-circle:before { content: "\f2b3"; } .fa.fa-font-awesome { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-fa { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-fa:before { content: "\f2b4"; } .fa.fa-handshake-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-handshake-o:before { content: "\f2b5"; } .fa.fa-envelope-open-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-envelope-open-o:before { content: "\f2b6"; } .fa.fa-linode { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-address-book-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-address-book-o:before { @@ -2017,64 +2038,64 @@ content: "\f2bb"; } .fa.fa-address-card-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-address-card-o:before { content: "\f2bb"; } .fa.fa-vcard-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-vcard-o:before { content: "\f2bb"; } .fa.fa-user-circle-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-user-circle-o:before { content: "\f2bd"; } .fa.fa-user-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-user-o:before { content: "\f007"; } .fa.fa-id-badge { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-drivers-license:before { content: "\f2c2"; } .fa.fa-id-card-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-id-card-o:before { content: "\f2c2"; } .fa.fa-drivers-license-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-drivers-license-o:before { content: "\f2c2"; } .fa.fa-quora { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-free-code-camp { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-telegram { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-thermometer-4:before { @@ -2102,71 +2123,72 @@ content: "\f2cd"; } .fa.fa-window-maximize { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-window-restore { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-times-rectangle:before { content: "\f410"; } .fa.fa-window-close-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-window-close-o:before { content: "\f410"; } .fa.fa-times-rectangle-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-times-rectangle-o:before { content: "\f410"; } .fa.fa-bandcamp { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-grav { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-etsy { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-imdb { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-ravelry { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-eercast { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-eercast:before { content: "\f2da"; } .fa.fa-snowflake-o { - font-family: 'Font Awesome 5 Free'; + font-family: 'Font Awesome 6 Free'; font-weight: 400; } .fa.fa-snowflake-o:before { content: "\f2dc"; } .fa.fa-superpowers { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } .fa.fa-wpexplorer { - font-family: 'Font Awesome 5 Brands'; + font-family: 'Font Awesome 6 Brands'; font-weight: 400; } -.fa.fa-cab:before { - content: "\f1ba"; } +.fa.fa-meetup { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-brands-400.eot b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-brands-400.eot deleted file mode 100644 index cba6c6cce8..0000000000 Binary files a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-brands-400.eot and /dev/null differ diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-brands-400.svg b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-brands-400.svg deleted file mode 100644 index b9881a43b7..0000000000 --- a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-brands-400.svg +++ /dev/null @@ -1,3717 +0,0 @@ - - - - -Created by FontForge 20201107 at Wed Aug 4 12:25:29 2021 - By Robert Madole -Copyright (c) Font Awesome - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-brands-400.ttf b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-brands-400.ttf index 8d75deddae..5efb1d4f96 100644 Binary files a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-brands-400.ttf and b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-brands-400.ttf differ diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-brands-400.woff b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-brands-400.woff deleted file mode 100644 index 3375bef091..0000000000 Binary files a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-brands-400.woff and /dev/null differ diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-brands-400.woff2 b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-brands-400.woff2 index 402f81c0bc..36fbda7d33 100644 Binary files a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-brands-400.woff2 and b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-brands-400.woff2 differ diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-regular-400.eot b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-regular-400.eot deleted file mode 100644 index a4e598936b..0000000000 Binary files a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-regular-400.eot and /dev/null differ diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-regular-400.svg b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-regular-400.svg deleted file mode 100644 index 463af27c02..0000000000 --- a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-regular-400.svg +++ /dev/null @@ -1,801 +0,0 @@ - - - - -Created by FontForge 20201107 at Wed Aug 4 12:25:29 2021 - By Robert Madole -Copyright (c) Font Awesome - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-regular-400.ttf b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-regular-400.ttf index 7157aafbac..838b4e2cfe 100644 Binary files a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-regular-400.ttf and b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-regular-400.ttf differ diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-regular-400.woff b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-regular-400.woff deleted file mode 100644 index ad077c6bec..0000000000 Binary files a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-regular-400.woff and /dev/null differ diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-regular-400.woff2 b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-regular-400.woff2 index 56328948b3..b6cabbacb6 100644 Binary files a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-regular-400.woff2 and b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-regular-400.woff2 differ diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-solid-900.eot b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-solid-900.eot deleted file mode 100644 index e99417197e..0000000000 Binary files a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-solid-900.eot and /dev/null differ diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-solid-900.svg b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-solid-900.svg deleted file mode 100644 index 00296e9598..0000000000 --- a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-solid-900.svg +++ /dev/null @@ -1,5034 +0,0 @@ - - - - -Created by FontForge 20201107 at Wed Aug 4 12:25:29 2021 - By Robert Madole -Copyright (c) Font Awesome - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-solid-900.ttf b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-solid-900.ttf index 25abf389e2..ec24749db9 100644 Binary files a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-solid-900.ttf and b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-solid-900.ttf differ diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-solid-900.woff b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-solid-900.woff deleted file mode 100644 index 23ee663443..0000000000 Binary files a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-solid-900.woff and /dev/null differ diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-solid-900.woff2 b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-solid-900.woff2 index 2217164f0c..824d518eb4 100644 Binary files a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-solid-900.woff2 and b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-solid-900.woff2 differ diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-v4compatibility.ttf b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-v4compatibility.ttf new file mode 100644 index 0000000000..b175aa8ece Binary files /dev/null and b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-v4compatibility.ttf differ diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-v4compatibility.woff2 b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-v4compatibility.woff2 new file mode 100644 index 0000000000..e09b5a5500 Binary files /dev/null and b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-v4compatibility.woff2 differ diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/malihu-custom-scrollbar-plugin/mCSB_buttons.png b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/malihu-custom-scrollbar-plugin/mCSB_buttons.png index 985a9b8b5a..74424318a4 100644 Binary files a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/malihu-custom-scrollbar-plugin/mCSB_buttons.png and b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/malihu-custom-scrollbar-plugin/mCSB_buttons.png differ diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/yarn.lock b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/yarn.lock index 6e8f03f3bf..1858edf764 100644 --- a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/yarn.lock +++ b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/yarn.lock @@ -2,32 +2,32 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.shared@~8.0.4": - version "8.0.4" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.0.4.tgz#43962f5f8b0309be99dfd4378f2d2b05f8e27116" - integrity sha512-ardy6J8xmZHdYvJQs3v0XrTjcRbAxKEa2RXunePnZeGLSfYRMfgHOAjZ2gi41sIvy7nDdPd7msJVaSpN9t/GUA== - dependencies: - "@abp/aspnetcore.mvc.ui" "~8.0.4" - "@abp/bootstrap" "~8.0.4" - "@abp/bootstrap-datepicker" "~8.0.4" - "@abp/bootstrap-daterangepicker" "~8.0.4" - "@abp/datatables.net-bs5" "~8.0.4" - "@abp/font-awesome" "~8.0.4" - "@abp/jquery-form" "~8.0.4" - "@abp/jquery-validation-unobtrusive" "~8.0.4" - "@abp/lodash" "~8.0.4" - "@abp/luxon" "~8.0.4" - "@abp/malihu-custom-scrollbar-plugin" "~8.0.4" - "@abp/moment" "~8.0.4" - "@abp/select2" "~8.0.4" - "@abp/sweetalert2" "~8.0.4" - "@abp/timeago" "~8.0.4" - "@abp/toastr" "~8.0.4" - -"@abp/aspnetcore.mvc.ui@~8.0.4": - version "8.0.4" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.0.4.tgz#73d81828e657f3db3b86a2d6a89fa5106ca7b394" - integrity sha512-6wGp6GD1vX4td2uQNuuEyPBNka8pJmhtt5MinBW0jPbdL0SlPDvXjSiuhdXQbmRP+u8n/cKS/Gox95P98Z6y6A== +"@abp/aspnetcore.mvc.ui.theme.shared@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.1.0-rc.2.tgz#a298f276a110901bf754429a2597e37abf0f779c" + integrity sha512-+rTR6umuWicvvC0Tp8TA+QcB0yJ4S9a6nyvH753AyIFSsszr+soyRoav44WOkkK4IoaoT6GhCI+VtznAssLjlA== + dependencies: + "@abp/aspnetcore.mvc.ui" "~8.1.0-rc.2" + "@abp/bootstrap" "~8.1.0-rc.2" + "@abp/bootstrap-datepicker" "~8.1.0-rc.2" + "@abp/bootstrap-daterangepicker" "~8.1.0-rc.2" + "@abp/datatables.net-bs5" "~8.1.0-rc.2" + "@abp/font-awesome" "~8.1.0-rc.2" + "@abp/jquery-form" "~8.1.0-rc.2" + "@abp/jquery-validation-unobtrusive" "~8.1.0-rc.2" + "@abp/lodash" "~8.1.0-rc.2" + "@abp/luxon" "~8.1.0-rc.2" + "@abp/malihu-custom-scrollbar-plugin" "~8.1.0-rc.2" + "@abp/moment" "~8.1.0-rc.2" + "@abp/select2" "~8.1.0-rc.2" + "@abp/sweetalert2" "~8.1.0-rc.2" + "@abp/timeago" "~8.1.0-rc.2" + "@abp/toastr" "~8.1.0-rc.2" + +"@abp/aspnetcore.mvc.ui@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.1.0-rc.2.tgz#384433d9f1e54e23633d16916ba9615e42e8b4e5" + integrity sha512-6Myb/cKviQxFcKP96wOenYafnYrU5OfhnhvJGRReCaay9IyuCET/ENrPJx7MKunlR5KFoJdvqH0tL7W7SJdFLw== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -36,190 +36,190 @@ merge-stream "^2.0.0" micromatch "^4.0.2" -"@abp/bootstrap-datepicker@~8.0.4": - version "8.0.4" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.0.4.tgz#b7ff6940947317b98d0977bcd1f482ce09a68107" - integrity sha512-IZh4wPHm6htdFWGg8BLQe1XkcMFO3pHpfuzxeJ2D8kY4ByLfWjtb9uj8RlTJejjAibx2tghSZIl9DjgHwXiKjg== +"@abp/bootstrap-datepicker@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.1.0-rc.2.tgz#adfb49acaf8952da57046520c9524994caf2938e" + integrity sha512-QUVh0DSPHH9PpZXS/MoYO+G4j8DGwHSyw/fF1y+oYVSH28csNnkq4i0fNVl1THwQDHZPZE6BN+WLB6UTy3HLYA== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap-daterangepicker@~8.0.4": - version "8.0.4" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.0.4.tgz#a7751fb1962d8535e257c19d946a14fcbe9cfe6b" - integrity sha512-b3tKdJYZj2KOmfW8Rf18Rnp+M5kRE5mKGkA6QkHDWRIN9608DkZchUX+EeqUAEILCBXGRN5QpPDZideTbHfN5Q== +"@abp/bootstrap-daterangepicker@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.1.0-rc.2.tgz#d79017933d1329c7ee1812c38ea0aaad098b4e89" + integrity sha512-t5O+Ibo9dvI/KosagDg7z5U3l8il87DP//tn5dyJtbBrx+336T7p2jcn4E2/TbzQbwKhMbkERHrGo0bRUy/N9A== dependencies: bootstrap-daterangepicker "^3.1.0" -"@abp/bootstrap@~8.0.4": - version "8.0.4" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.0.4.tgz#ff63cfa60768cd00a12d5c296f46a9be234ed293" - integrity sha512-SX6/AVQcdD8R2y5dZSI+y2V3kuCDkSkHrqBn9Y1ChYASMp4N8dUk9xP6CIL1H5prnZG/DqIicRIi2xzssgP2xw== +"@abp/bootstrap@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.1.0-rc.2.tgz#92b52790122acb9df9d73dfae8d5d0825051986c" + integrity sha512-p5+t5KGU8/hE5cKMbp9I3ZJLiPdZeNMSJJuccIjqGFaivU35bAOouAgWWZfdive66X3h5GgHipEkS3obQITprQ== dependencies: - "@abp/core" "~8.0.4" + "@abp/core" "~8.1.0-rc.2" bootstrap "^5.1.3" -"@abp/clipboard@~8.0.4": - version "8.0.4" - resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-8.0.4.tgz#e1a65b4e276e949d559dc25c653c665d26f58884" - integrity sha512-RWz1ri3l0BXh+51OzwVjPX8C4OSOwqroiSbEK+yYfXDIVMY24EjbLEfaRBKnwZMmrBz0Yy0bfoJmB73RnqukWQ== +"@abp/clipboard@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-8.1.0-rc.2.tgz#87c5299b0c63fadd7307251040af330247830c13" + integrity sha512-Piy8bPIJOoCNZjwmUZKe2kA16Weqhvz/SjaxvrlCADmN/0zY2WPFOhE89WA7pb9M/2EGynWF/hot35XqbG15CQ== dependencies: - "@abp/core" "~8.0.4" + "@abp/core" "~8.1.0-rc.2" clipboard "^2.0.8" -"@abp/core@~8.0.4": - version "8.0.4" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.0.4.tgz#0f6069aef72b723849e3e61013b8d678fdbe7698" - integrity sha512-+mS7YRIZ8j73FIvJeGlS+3nK11jxU78bLf5Xfg6OmVZbfFAymtlyHdnaSPaGbzr9L0YVAAfzVA2jc+NDibkbWQ== +"@abp/core@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.1.0-rc.2.tgz#78b6db67f7381d9fc26cd8a35e8e21f417a4bea9" + integrity sha512-5VK48/gCE+FSuWXHzUGh5MN3x2gEG9S2Av4Z83gDaHulF7fuaDu0J1KruPHIjpcpNGoko0lOcXNc80JvsYZsAg== dependencies: - "@abp/utils" "~8.0.4" + "@abp/utils" "~8.1.0-rc.2" -"@abp/datatables.net-bs5@~8.0.4": - version "8.0.4" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.0.4.tgz#70241dad64d12dc461c391bc9f14002cb2a06b36" - integrity sha512-NHpA/G5nzVaBJ5sMt9PTOvSXraVUL3joG+ocl3FL8sTE3WWGNYl+YWWi5sjnVTPo/g2VcNVo/flSb/+CbSqYMA== +"@abp/datatables.net-bs5@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.1.0-rc.2.tgz#878e02bd414b27494891e6440f7bce4e5f3d2207" + integrity sha512-RMVf7jz/S0Oo6heRXTpmxx7FPybWA+Visj5MyCbQaSjcrog9VOFrQnlckTEwosU5jL6NWJ0JtIauuiUDxArQdg== dependencies: - "@abp/datatables.net" "~8.0.4" + "@abp/datatables.net" "~8.1.0-rc.2" datatables.net-bs5 "^1.11.4" -"@abp/datatables.net@~8.0.4": - version "8.0.4" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.0.4.tgz#4632559d28c8fc8a3c1d0ab01cf5d6be35bd2242" - integrity sha512-7mCjLOvh9ZuGii99tnwrF9KCqVBoSR5dPkWSaxZPn4N/aweqnatEGFFIk8g/fIt6hRv6SnTcOq1o8GpWvSFyWQ== +"@abp/datatables.net@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.1.0-rc.2.tgz#bb9f571f9da7e764f1d21377012d5275f663941e" + integrity sha512-6ukqd4+1FajCP/F0+pB1uiFdUJjPQex0pdl9qrAcWsqSRaO44SUsYThs/RvMJW6heblA8HsCaAW0DYFod0YMbQ== dependencies: - "@abp/jquery" "~8.0.4" + "@abp/jquery" "~8.1.0-rc.2" datatables.net "^1.11.4" -"@abp/font-awesome@~8.0.4": - version "8.0.4" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.0.4.tgz#d48effc941b11b23839f2c800cec3a5df4ed327e" - integrity sha512-QeCPzHHJVXKUW2SBHspXhvHs4JC7Fxt8c0BbkD9l6m4qig5gCq+DC2lgin3WAf1rA5FZ4NswXt6uclmQ9V8+mQ== +"@abp/font-awesome@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.1.0-rc.2.tgz#c0af9c2772a78ee7276ccd9aac2f3a361f88848e" + integrity sha512-ick6hyY/oCaIEDdferjI7qAckZUE8lyN1K7EUf8xO8u9lxdK89wCVCEVwZaEDUQth+JQXfiGKkgrH0EdFa9pOQ== dependencies: - "@abp/core" "~8.0.4" - "@fortawesome/fontawesome-free" "^5.15.4" + "@abp/core" "~8.1.0-rc.2" + "@fortawesome/fontawesome-free" "^6.5.1" -"@abp/highlight.js@~8.0.4": - version "8.0.4" - resolved "https://registry.yarnpkg.com/@abp/highlight.js/-/highlight.js-8.0.4.tgz#879d2801d00acd5a7be20790e8f8ff06a2edd9ca" - integrity sha512-rWnPcioYQOkcm/DPajGRcivVKdMVoxQ+IlGe2YXvG+WPqF2yc46XbZ/9wVC5aUO4Ytm1QX4hFYqTksxMZoiqjg== +"@abp/highlight.js@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/highlight.js/-/highlight.js-8.1.0-rc.2.tgz#a1f7b0583819055e324c1ab0624ad69a93621095" + integrity sha512-wF3sgwoiOf5Y5dYOW0BmI84ld9PBxKUodi1djx0DtXMPR6xZfRu4ZbniFzyz1RImoqrcnx38G+twQYFr0O/kFA== dependencies: - "@abp/core" "~8.0.4" + "@abp/core" "~8.1.0-rc.2" "@highlightjs/cdn-assets" "~11.4.0" -"@abp/jquery-form@~8.0.4": - version "8.0.4" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.0.4.tgz#0d6a973160bfe31651c8c81a5ccd0fdf7673c0bf" - integrity sha512-xka5KWmC38H857MlEPgIpXUaqdFHcS1QHGSB3OiIirV9oejMcxjwNv1tNbwFdEDLg1R3DktLEUKYJItpbx4nfg== +"@abp/jquery-form@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.1.0-rc.2.tgz#00fb51f14e9ddc3e3824082edfc48593a52ee61e" + integrity sha512-8T1SpscYXQ7S+kdtV6esZnncyYAG82LZkM1igfS++nqDIYELSDp1c7DoRMZoEFxwdHfbavzRkGq9BAlBBDyVxQ== dependencies: - "@abp/jquery" "~8.0.4" + "@abp/jquery" "~8.1.0-rc.2" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~8.0.4": - version "8.0.4" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.0.4.tgz#2615eb074cc789143311805fcd381038dc2beb0d" - integrity sha512-VJyAZUtDNENDyMch3l7T2qqw1weRXpQhs6HdCJcwHCz8Ekfks8CUclmYBs8iyBEzbevqbjsy4ipKeIR9B72I2w== +"@abp/jquery-validation-unobtrusive@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.1.0-rc.2.tgz#74b8d99989cb337725f258f370b8c68fbb882372" + integrity sha512-wwJvMfdiIELJtabZqGUarEc3FJNthK8PGAAeuVzygfjcV0yVlGpAB4aHOOVhyvTsuZ3BxwifGOg7550FIwJ79g== dependencies: - "@abp/jquery-validation" "~8.0.4" + "@abp/jquery-validation" "~8.1.0-rc.2" jquery-validation-unobtrusive "^3.2.12" -"@abp/jquery-validation@~8.0.4": - version "8.0.4" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.0.4.tgz#f4953ec43d7546383de0bf3369d10a2cbb631015" - integrity sha512-u0G9WTQKJ+0oKR5Xjc0HrsSXI4yrBpD9wU1vpbw9IpZJ5EGXffqddhjuZN9sOSBzZC42kYCRWK1/fQJHk5hG6Q== +"@abp/jquery-validation@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.1.0-rc.2.tgz#3ec6e150fe7ace940f3e63f7696cd06014ce06e7" + integrity sha512-pREGhrtU245nACpmOCuyHBkqH/OAzehsBVRj6SyGlA4ScEgQG6Zya1hBAe4BL33bPeWuSCkUZM+lrSDSzexSjA== dependencies: - "@abp/jquery" "~8.0.4" + "@abp/jquery" "~8.1.0-rc.2" jquery-validation "^1.19.3" -"@abp/jquery@~8.0.4": - version "8.0.4" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.0.4.tgz#dd9ff4fbe09980598b510414e2b982749311e7d0" - integrity sha512-mzT8ve65N4jZhZAzX34nY8iFkJ88gZ3JYodC7/vHOyNPHYxM7FNqhFiqKvIPuUSpd1NJgYATYr5nJEdap/2aSA== +"@abp/jquery@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.1.0-rc.2.tgz#7d2df898cb7911842915860bae196d174519375a" + integrity sha512-Fe8S3jHS1KDL6EGo2dURdkO7XsZFggB5XQa82DNMJs7njK5qATCxAXiNExSQ5/EbSu0Y/reaC4BGC51OMYe14w== dependencies: - "@abp/core" "~8.0.4" + "@abp/core" "~8.1.0-rc.2" jquery "~3.6.0" -"@abp/lodash@~8.0.4": - version "8.0.4" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.0.4.tgz#37e87bcf88f81b70a9efa4d1ddaec2290f48cf17" - integrity sha512-MjpN/g0DQDR3nR7mlfd5MNjd51HYq3WnDcsb3FeJGbVjzQ03pqX6KBMAN5Q2JFp4fJDQniDU792cey60xp8SUw== +"@abp/lodash@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.1.0-rc.2.tgz#37fd0296bc5666699541ed8fb158e60b9137af09" + integrity sha512-2t0UUztGT3x3fET+dmHmN/QYmjkz7MpSi8mK2pLbjlCkAoOSmd+Zv9kgWxwxtE9y9ltu3EHYD15BvPL+fd+srQ== dependencies: - "@abp/core" "~8.0.4" + "@abp/core" "~8.1.0-rc.2" lodash "^4.17.21" -"@abp/luxon@~8.0.4": - version "8.0.4" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.0.4.tgz#3f1fc96fac4fdd14b93748c5fcb0d6d483f006d9" - integrity sha512-AuTvL+L2J1fZhu7IZRLyCVK+3B53ML6QRJo8VKFogy/VlN8jaYbMluGusm7OIVkGH79zuibBPO8TiE2tBMOnBQ== +"@abp/luxon@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.1.0-rc.2.tgz#80ea50dd41997fe41578a3d6d7bab2dd14fd60d5" + integrity sha512-hsrna+XTGdWBHflnTCsT1uWYWdWyrEHom2eyi1AhqcFmaMccwTS3+u6e5zsNTuuqpoCF9GU3ZxQ5Q1VPDaxxiw== dependencies: - "@abp/core" "~8.0.4" + "@abp/core" "~8.1.0-rc.2" luxon "^2.3.0" -"@abp/malihu-custom-scrollbar-plugin@~8.0.4": - version "8.0.4" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.0.4.tgz#92202ca3f6e9275939b62f8378b15c8e5a81bf0c" - integrity sha512-CLj1HJA5ik8b+CcEZVJSWKZ9JNMDNheCrumxwbNKPVlrWRomik16ZrLQlWtjv5MmFyEixp6taYqfa8SuQZ2jWA== +"@abp/malihu-custom-scrollbar-plugin@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.1.0-rc.2.tgz#11968069de66efc3a5b2eb79ade4d38fa92ef83e" + integrity sha512-REmQaHSc1GCWwMlWb1XLOgvCmPfvVkMAPg02GOrDYSB3+w9RKZGhkWbAUNlDYehMJin3FgY7kBophZNPi4Ae2A== dependencies: - "@abp/core" "~8.0.4" + "@abp/core" "~8.1.0-rc.2" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/moment@~8.0.4": - version "8.0.4" - resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.0.4.tgz#532e4a89ef2c4839ac650916ba651f471f526872" - integrity sha512-EV6Uxm1Kx/+IxQa0RxGwMlgnhLpQrZQY0g4THc32/1hggyDALImW7f13NuLGviHhAgRSq+Sk6Yqwqckmt0R5og== +"@abp/moment@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.1.0-rc.2.tgz#73751afb93313e56ecaac7ebb785809d6e26010d" + integrity sha512-JOMS6AbPMVKJP5yQs5aagaT1q/UjlM041YsIN3xKIBX5QFp70zHNRdHtskl4cpnKf8q/nXhtnvawuQiqvGbPbw== dependencies: moment "^2.9.0" -"@abp/prismjs@~8.0.4": - version "8.0.4" - resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-8.0.4.tgz#863ab0194f92b2b3fa58708356ae3883b5720814" - integrity sha512-3OROMxrzvBn7OrhJkC4kyrltemfRPfA0IJiOLyzl0QVk6UzMLAr2EQbv2P1e1BM1wzOVboGdq/OsrSQYcT+XRw== +"@abp/prismjs@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-8.1.0-rc.2.tgz#5b2718ed92ae97e6cfeca1a61e860651ee474626" + integrity sha512-GxcnZmqY0mqEUvUQLX2gDeLKGryOQyRS4MWEpabccDmh6ntXzN2JdDcm5lP/c/5UAVeovn3PrdrJ3x2TTrGDWQ== dependencies: - "@abp/clipboard" "~8.0.4" - "@abp/core" "~8.0.4" + "@abp/clipboard" "~8.1.0-rc.2" + "@abp/core" "~8.1.0-rc.2" prismjs "^1.26.0" -"@abp/select2@~8.0.4": - version "8.0.4" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.0.4.tgz#46b65b518c8bb045f3ae0686482a3c955db428e1" - integrity sha512-lw0jWUGXzU0BM8HGdRcMZkDeLNs0EhJeQaapr2v1+T1lvZQ6tn2ba9jf8cLV8haCnvnqLjEP2YinAa6NVpTT8Q== +"@abp/select2@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.1.0-rc.2.tgz#b13b6f6764affa24a30bff2c02443ad61141ddc8" + integrity sha512-pvGUp/wSanCI8vbyf8UxNnL3kfUCJet/lUREEtRFXZQFpyKVDIntcnz+qFFp0zChums7jiuIziwg/slM5R/kuw== dependencies: - "@abp/core" "~8.0.4" + "@abp/core" "~8.1.0-rc.2" select2 "^4.0.13" -"@abp/sweetalert2@~8.0.4": - version "8.0.4" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.0.4.tgz#dd4f3ad02a8305e7806500116e29bb0cb182a7a4" - integrity sha512-4v1MOXdt8WJq2KdZ9ModajWBfVgf8QyOGra8mts24GmbAibcoHXMCHQXBEwfKM+o0DNHv9eTQL9E8foeAjivZA== +"@abp/sweetalert2@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.1.0-rc.2.tgz#bed9314d47634d3532b0dd32e4e2cd8b77539eb5" + integrity sha512-pq1D/kWH0TSYd8hYWiDulSFcSkUHC5i+0alecwyGUDdWzIPoAPmPjA7HxABKwxlLnnciUGed/mEJngfIPp+OYw== dependencies: - "@abp/core" "~8.0.4" + "@abp/core" "~8.1.0-rc.2" sweetalert2 "^11.3.6" -"@abp/timeago@~8.0.4": - version "8.0.4" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.0.4.tgz#b21a6e406e05f6345e6536e725dd10a1237d611b" - integrity sha512-E/R0WNqQk17awVExd9irwLbwpdcMea+5gsicBiUS71jZzbpH7rKoLW1YYpsIcTkzzbfR57MDvB0pCHLMEfDvRg== +"@abp/timeago@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.1.0-rc.2.tgz#9911bdb81001189f30eb7a68fe345e0a692109b2" + integrity sha512-mlCosUBw+n9A6+gXZ2PL2iS/lLMAI2zx7sXFUuV829rtWq54YOkivj/uTOxGHNwNhE4KbW39NqkKK+IJdl/6kQ== dependencies: - "@abp/jquery" "~8.0.4" + "@abp/jquery" "~8.1.0-rc.2" timeago "^1.6.7" -"@abp/toastr@~8.0.4": - version "8.0.4" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.0.4.tgz#d3458e9e6a3eea5ea764cd2dd2b68193c247d72b" - integrity sha512-M9sR0r+2ZSXxMxgm5bjMRLi0MuNxW+VPA+N9SskRXOyCZUyoSxebOJrHbMec5GyarMLUG+oGIL8MOhgs0tlKBw== +"@abp/toastr@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.1.0-rc.2.tgz#8e09730d7149eadb7a9e4fe8c447022d7647b1d7" + integrity sha512-b4bMxJ5aVSBedhq/fPaR5ayPvZMPmK/gbE6zb03+SF22YV6lQW9RDQV1bgnl/T3YLLXYIsrwPpgi67rPo8cZzQ== dependencies: - "@abp/jquery" "~8.0.4" + "@abp/jquery" "~8.1.0-rc.2" toastr "^2.1.4" -"@abp/utils@~8.0.4": - version "8.0.4" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.0.4.tgz#e260be756e196ef9db9bc6e6f6585b401f6e807d" - integrity sha512-YW0NzVQJqfHOcaMVpKo2wYk7rstgcPmQHk6DaapnlZ9m5WHYg8ZrslAshsVmSDdOY4vejAX8dq8G/XikWFdvFg== +"@abp/utils@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.1.0-rc.2.tgz#1fa7eae2578c82a75a1e4147796f95dbe0367e2f" + integrity sha512-+IcoeTAAReepH8jCcN6cRTb9AP3suzZMtWt65luCWODqFuYk7otCYDyGGwUBMA+nlmXjyWhotMfVkdBgidWpWw== dependencies: just-compare "^2.3.0" -"@fortawesome/fontawesome-free@^5.15.4": - version "5.15.4" - resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-5.15.4.tgz#ecda5712b61ac852c760d8b3c79c96adca5554e5" - integrity sha512-eYm8vijH/hpzr/6/1CJ/V/Eb1xQFW2nnUKArb3z+yUWv7HTwj6M7SP957oMjfZjAHU6qpoNc2wQvIxBLWYa/Jg== +"@fortawesome/fontawesome-free@^6.5.1": + version "6.5.1" + resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-6.5.1.tgz#55cc8410abf1003b726324661ce5b0d1c10de258" + integrity sha512-CNy5vSwN3fsUStPRLX7fUYojyuzoEMSXPl7zSLJ8TgtRfjv24LOnOWKT2zYwaHZCJGkdyRnTmstR0P+Ah503Gw== "@highlightjs/cdn-assets@~11.4.0": version "11.4.0" diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json index cfffb15c31..14a7c1bcd7 100644 --- a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json +++ b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json @@ -3,8 +3,8 @@ "name": "asp.net", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "~8.1.0-rc.1", - "@abp/prismjs": "~8.1.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "~8.1.0-rc.2", + "@abp/prismjs": "~8.1.0-rc.2" }, "devDependencies": {} } diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/wwwroot/libs/malihu-custom-scrollbar-plugin/mCSB_buttons.png b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/wwwroot/libs/malihu-custom-scrollbar-plugin/mCSB_buttons.png index 985a9b8b5a..74424318a4 100644 Binary files a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/wwwroot/libs/malihu-custom-scrollbar-plugin/mCSB_buttons.png and b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/wwwroot/libs/malihu-custom-scrollbar-plugin/mCSB_buttons.png differ diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/yarn.lock b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/yarn.lock index f67961bb64..d719bc9934 100644 --- a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/yarn.lock +++ b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/yarn.lock @@ -2,39 +2,39 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.1.0-rc.1.tgz#5f1503a4526817ec7471a08f29cd82a0bedce2e2" - integrity sha512-NCM8JrgCALz7k4JIm3O2H+pCE9slL6V4ntXC3lA7ReA6hLFEWvP1EBIBCXlHLN2qccqh9+pLN+Ow7/LUt+Ph9g== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~8.1.0-rc.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.1.0-rc.1.tgz#dee786935b41c83250cde627ee8211afd42608f0" - integrity sha512-6sUYndKpAyXF8AVlDm+fXusE9IifrO9yP/Wmt82caSLCtx+rjqiPMcewkQkbOGPNi8+B7H+lgF9azEUjifsKVA== - dependencies: - "@abp/aspnetcore.mvc.ui" "~8.1.0-rc.1" - "@abp/bootstrap" "~8.1.0-rc.1" - "@abp/bootstrap-datepicker" "~8.1.0-rc.1" - "@abp/bootstrap-daterangepicker" "~8.1.0-rc.1" - "@abp/datatables.net-bs5" "~8.1.0-rc.1" - "@abp/font-awesome" "~8.1.0-rc.1" - "@abp/jquery-form" "~8.1.0-rc.1" - "@abp/jquery-validation-unobtrusive" "~8.1.0-rc.1" - "@abp/lodash" "~8.1.0-rc.1" - "@abp/luxon" "~8.1.0-rc.1" - "@abp/malihu-custom-scrollbar-plugin" "~8.1.0-rc.1" - "@abp/moment" "~8.1.0-rc.1" - "@abp/select2" "~8.1.0-rc.1" - "@abp/sweetalert2" "~8.1.0-rc.1" - "@abp/timeago" "~8.1.0-rc.1" - "@abp/toastr" "~8.1.0-rc.1" - -"@abp/aspnetcore.mvc.ui@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.1.0-rc.1.tgz#8b5f31f9d5580c511ad47cedee81752e7eda9ecf" - integrity sha512-161Z4zuZkl81mTiZieOI4g9r1AptsrZyrgaUBNOwVyBrAA2reWGRAtDjGi5UASQks+Na/8Vle48swKxT/lNdhQ== +"@abp/aspnetcore.mvc.ui.theme.basic@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.1.0-rc.2.tgz#d3f61ae2a096d14984a7d6c962360c119f56ac18" + integrity sha512-Y1ueZ8P1VsRo6i+PwfHaAI1yVBkZvQ+3hXB5ishRqF/qCbZIk3l6zZ/7Y85z5cobwp1kfTFEAD4qWrrLb4EBVA== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~8.1.0-rc.2" + +"@abp/aspnetcore.mvc.ui.theme.shared@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.1.0-rc.2.tgz#a298f276a110901bf754429a2597e37abf0f779c" + integrity sha512-+rTR6umuWicvvC0Tp8TA+QcB0yJ4S9a6nyvH753AyIFSsszr+soyRoav44WOkkK4IoaoT6GhCI+VtznAssLjlA== + dependencies: + "@abp/aspnetcore.mvc.ui" "~8.1.0-rc.2" + "@abp/bootstrap" "~8.1.0-rc.2" + "@abp/bootstrap-datepicker" "~8.1.0-rc.2" + "@abp/bootstrap-daterangepicker" "~8.1.0-rc.2" + "@abp/datatables.net-bs5" "~8.1.0-rc.2" + "@abp/font-awesome" "~8.1.0-rc.2" + "@abp/jquery-form" "~8.1.0-rc.2" + "@abp/jquery-validation-unobtrusive" "~8.1.0-rc.2" + "@abp/lodash" "~8.1.0-rc.2" + "@abp/luxon" "~8.1.0-rc.2" + "@abp/malihu-custom-scrollbar-plugin" "~8.1.0-rc.2" + "@abp/moment" "~8.1.0-rc.2" + "@abp/select2" "~8.1.0-rc.2" + "@abp/sweetalert2" "~8.1.0-rc.2" + "@abp/timeago" "~8.1.0-rc.2" + "@abp/toastr" "~8.1.0-rc.2" + +"@abp/aspnetcore.mvc.ui@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.1.0-rc.2.tgz#384433d9f1e54e23633d16916ba9615e42e8b4e5" + integrity sha512-6Myb/cKviQxFcKP96wOenYafnYrU5OfhnhvJGRReCaay9IyuCET/ENrPJx7MKunlR5KFoJdvqH0tL7W7SJdFLw== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -43,175 +43,175 @@ merge-stream "^2.0.0" micromatch "^4.0.2" -"@abp/bootstrap-datepicker@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.1.0-rc.1.tgz#bb7adc6e42aa94629b24ca2fa1464aae6138afbe" - integrity sha512-Gfa+I2TK1X1UisGNJhOTIK4eu/upgazeO9P1gOHryDe5JBhmdo6AKv1wEF/csVVXh52xGs+JtSiyhRt2sH36fA== +"@abp/bootstrap-datepicker@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.1.0-rc.2.tgz#adfb49acaf8952da57046520c9524994caf2938e" + integrity sha512-QUVh0DSPHH9PpZXS/MoYO+G4j8DGwHSyw/fF1y+oYVSH28csNnkq4i0fNVl1THwQDHZPZE6BN+WLB6UTy3HLYA== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap-daterangepicker@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.1.0-rc.1.tgz#ad3c54ebd8a6bcc4c39542c90c8391b06869e996" - integrity sha512-nl2eWyYB9ovQvAMQiLeTHG52fl9rLGLvINnG/ftwlIzGN62mDGkShnZVi6I1EJL2yS0OtMcGyfcmnt5d9n2JGg== +"@abp/bootstrap-daterangepicker@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.1.0-rc.2.tgz#d79017933d1329c7ee1812c38ea0aaad098b4e89" + integrity sha512-t5O+Ibo9dvI/KosagDg7z5U3l8il87DP//tn5dyJtbBrx+336T7p2jcn4E2/TbzQbwKhMbkERHrGo0bRUy/N9A== dependencies: bootstrap-daterangepicker "^3.1.0" -"@abp/bootstrap@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.1.0-rc.1.tgz#14c23314775af1d97564fbbb4c5c304c3a24b919" - integrity sha512-Ze9th6Fyhq8Vh2e3Tk/quN0kQw4k5VuMXvgd/WQoqwa8xlWcWt3q2m+xG8NUuvcj6+O0bcg2KO2nzkBl+oJtbg== +"@abp/bootstrap@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.1.0-rc.2.tgz#92b52790122acb9df9d73dfae8d5d0825051986c" + integrity sha512-p5+t5KGU8/hE5cKMbp9I3ZJLiPdZeNMSJJuccIjqGFaivU35bAOouAgWWZfdive66X3h5GgHipEkS3obQITprQ== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" bootstrap "^5.1.3" -"@abp/clipboard@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-8.1.0-rc.1.tgz#1e82e955fab968ce71002f10efe9ae4a78c65696" - integrity sha512-k8riJptYKKpRIlsQng6pJOk5MdxK414aIPmoAqpcWv3BfGuZqndnp/TpZPWknQqRBm8OUhnC4eQh7L00mjtHuw== +"@abp/clipboard@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-8.1.0-rc.2.tgz#87c5299b0c63fadd7307251040af330247830c13" + integrity sha512-Piy8bPIJOoCNZjwmUZKe2kA16Weqhvz/SjaxvrlCADmN/0zY2WPFOhE89WA7pb9M/2EGynWF/hot35XqbG15CQ== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" clipboard "^2.0.8" -"@abp/core@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.1.0-rc.1.tgz#ddb848c3400decfad6fa1c0877ed4c87f69bb125" - integrity sha512-uMSxjVWEBPer3evCx5LPSqvG4kMK5IHWryJOILvDLBxR7bszex18TpAMDP3WqALmBPY5rl3v+GQlcEkmh8iKkw== +"@abp/core@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.1.0-rc.2.tgz#78b6db67f7381d9fc26cd8a35e8e21f417a4bea9" + integrity sha512-5VK48/gCE+FSuWXHzUGh5MN3x2gEG9S2Av4Z83gDaHulF7fuaDu0J1KruPHIjpcpNGoko0lOcXNc80JvsYZsAg== dependencies: - "@abp/utils" "~8.1.0-rc.1" + "@abp/utils" "~8.1.0-rc.2" -"@abp/datatables.net-bs5@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.1.0-rc.1.tgz#4f316b0266665bfddc359d9bd08f5759cbe73610" - integrity sha512-FgdOSvakD87pVS4ECux1oamqh8zQ1t3ZzzErXajA2mORQ2AJH+ESTCPvUcuD99BQCcqbGkWhuzPFM5ADNApkNQ== +"@abp/datatables.net-bs5@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.1.0-rc.2.tgz#878e02bd414b27494891e6440f7bce4e5f3d2207" + integrity sha512-RMVf7jz/S0Oo6heRXTpmxx7FPybWA+Visj5MyCbQaSjcrog9VOFrQnlckTEwosU5jL6NWJ0JtIauuiUDxArQdg== dependencies: - "@abp/datatables.net" "~8.1.0-rc.1" + "@abp/datatables.net" "~8.1.0-rc.2" datatables.net-bs5 "^1.11.4" -"@abp/datatables.net@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.1.0-rc.1.tgz#f4a47ccec70a777d26158bbcd3b560dcf5f7f4bf" - integrity sha512-TBMVeaFRSp9DMhsOgr1UNXZXHL8g4P8/kezMu8wO4W78x3hr9hmQX+h0obCJBkMONbsswLSoc+JVwtLJmpn4QQ== +"@abp/datatables.net@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.1.0-rc.2.tgz#bb9f571f9da7e764f1d21377012d5275f663941e" + integrity sha512-6ukqd4+1FajCP/F0+pB1uiFdUJjPQex0pdl9qrAcWsqSRaO44SUsYThs/RvMJW6heblA8HsCaAW0DYFod0YMbQ== dependencies: - "@abp/jquery" "~8.1.0-rc.1" + "@abp/jquery" "~8.1.0-rc.2" datatables.net "^1.11.4" -"@abp/font-awesome@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.1.0-rc.1.tgz#c544207fd843f46aed124f18e972b6a02bca525c" - integrity sha512-jXGRODAjdsgqUhH0LtX5fniB+2XcHZ1uHs2BG3OyVC11C5OfLd613OIru2y8lrVI9PwGjU9QzkfrWD88eSWUQA== +"@abp/font-awesome@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.1.0-rc.2.tgz#c0af9c2772a78ee7276ccd9aac2f3a361f88848e" + integrity sha512-ick6hyY/oCaIEDdferjI7qAckZUE8lyN1K7EUf8xO8u9lxdK89wCVCEVwZaEDUQth+JQXfiGKkgrH0EdFa9pOQ== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" "@fortawesome/fontawesome-free" "^6.5.1" -"@abp/jquery-form@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.1.0-rc.1.tgz#879772d1ddd3d76f738411d2121f3ca58b9380b1" - integrity sha512-olM3pRzcGq9fNwyI/m+V9AGOcOa2rjSQHPD2uqS3gqNQtNBCRA27Rt7Uarnwy5Aha7obtB3cVANZjcWHyubEQg== +"@abp/jquery-form@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.1.0-rc.2.tgz#00fb51f14e9ddc3e3824082edfc48593a52ee61e" + integrity sha512-8T1SpscYXQ7S+kdtV6esZnncyYAG82LZkM1igfS++nqDIYELSDp1c7DoRMZoEFxwdHfbavzRkGq9BAlBBDyVxQ== dependencies: - "@abp/jquery" "~8.1.0-rc.1" + "@abp/jquery" "~8.1.0-rc.2" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.1.0-rc.1.tgz#0cc63ff8bb8f995e55ded83996d5f10e3ff4ab13" - integrity sha512-PBDD9fkNzVTync4qHPwwavB7R09Z3yis9rGqF0QGHRcIVwfHU3C66gItpVN5xdmNNko/ynlB81qZjIIyqtkiIw== +"@abp/jquery-validation-unobtrusive@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.1.0-rc.2.tgz#74b8d99989cb337725f258f370b8c68fbb882372" + integrity sha512-wwJvMfdiIELJtabZqGUarEc3FJNthK8PGAAeuVzygfjcV0yVlGpAB4aHOOVhyvTsuZ3BxwifGOg7550FIwJ79g== dependencies: - "@abp/jquery-validation" "~8.1.0-rc.1" + "@abp/jquery-validation" "~8.1.0-rc.2" jquery-validation-unobtrusive "^3.2.12" -"@abp/jquery-validation@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.1.0-rc.1.tgz#0006cda24b89534bacd6bb27aef0741f776d4a5f" - integrity sha512-iKbV1uzvJWYOk5xvNPP9zliQJWH5nMKnnKUlV/5VA0NO2PVsFOdG8FvNHE1APvccqKKMoau5NJ2+8/tq/pf88Q== +"@abp/jquery-validation@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.1.0-rc.2.tgz#3ec6e150fe7ace940f3e63f7696cd06014ce06e7" + integrity sha512-pREGhrtU245nACpmOCuyHBkqH/OAzehsBVRj6SyGlA4ScEgQG6Zya1hBAe4BL33bPeWuSCkUZM+lrSDSzexSjA== dependencies: - "@abp/jquery" "~8.1.0-rc.1" + "@abp/jquery" "~8.1.0-rc.2" jquery-validation "^1.19.3" -"@abp/jquery@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.1.0-rc.1.tgz#089847bedd38f0d91bdb57ac7520b8159685db50" - integrity sha512-Amc2/mS8YJU06NW/W0AFCPpvDFweFSkKHcEuhXtrGEdnRWUeNm3TLc80vA88aILpztX2+wdp9QiYomx7QDtkzg== +"@abp/jquery@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.1.0-rc.2.tgz#7d2df898cb7911842915860bae196d174519375a" + integrity sha512-Fe8S3jHS1KDL6EGo2dURdkO7XsZFggB5XQa82DNMJs7njK5qATCxAXiNExSQ5/EbSu0Y/reaC4BGC51OMYe14w== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" jquery "~3.6.0" -"@abp/lodash@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.1.0-rc.1.tgz#1ba04f8eaba8d8878d2ac6f5cfae94cf12f90f4b" - integrity sha512-xIHVLTIdObUx9mX+BkJNJuZePVhgH8v8mlbQAjCajbHvoVtDNb16in8xqsQM+gHfdmhUb7iA95HdhZGhMCM4pw== +"@abp/lodash@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.1.0-rc.2.tgz#37fd0296bc5666699541ed8fb158e60b9137af09" + integrity sha512-2t0UUztGT3x3fET+dmHmN/QYmjkz7MpSi8mK2pLbjlCkAoOSmd+Zv9kgWxwxtE9y9ltu3EHYD15BvPL+fd+srQ== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" lodash "^4.17.21" -"@abp/luxon@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.1.0-rc.1.tgz#0cfd66c5c16df5d0ad9c4bfc48648b24a969c892" - integrity sha512-/aYZ0aaCKZUYuc2weAVjcFfPJMpOGECZoJ/2VDemLpixA+iJisgyZPT0GosLHir2HMPPaXkmlXXqvIaLrUNEZg== +"@abp/luxon@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.1.0-rc.2.tgz#80ea50dd41997fe41578a3d6d7bab2dd14fd60d5" + integrity sha512-hsrna+XTGdWBHflnTCsT1uWYWdWyrEHom2eyi1AhqcFmaMccwTS3+u6e5zsNTuuqpoCF9GU3ZxQ5Q1VPDaxxiw== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" luxon "^2.3.0" -"@abp/malihu-custom-scrollbar-plugin@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.1.0-rc.1.tgz#3b9a7be7c067ebd08112d768f4901023e3f58180" - integrity sha512-Sr14jXu03SkJUegs2Rk17+opLnUJ4GC0rPN+Ruf4NxLr2nXneecq3/E6D/LGC5NVjaMgGXWXtKVczUq9rBf6ow== +"@abp/malihu-custom-scrollbar-plugin@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.1.0-rc.2.tgz#11968069de66efc3a5b2eb79ade4d38fa92ef83e" + integrity sha512-REmQaHSc1GCWwMlWb1XLOgvCmPfvVkMAPg02GOrDYSB3+w9RKZGhkWbAUNlDYehMJin3FgY7kBophZNPi4Ae2A== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/moment@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.1.0-rc.1.tgz#770167bd2fc6ec89a47e2c9b3c1088cad87469c3" - integrity sha512-TKaZWD7d+5DtGqiQbrmiybvidqZzHx3wAPzrH7S4I0g+VH+SGTdaNlII+/ZZhqIpadW07G1SJnnI1EY6aU9msg== +"@abp/moment@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.1.0-rc.2.tgz#73751afb93313e56ecaac7ebb785809d6e26010d" + integrity sha512-JOMS6AbPMVKJP5yQs5aagaT1q/UjlM041YsIN3xKIBX5QFp70zHNRdHtskl4cpnKf8q/nXhtnvawuQiqvGbPbw== dependencies: moment "^2.9.0" -"@abp/prismjs@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-8.1.0-rc.1.tgz#a2244029151b9e4f5d8c2c6c94eba2b976c2c776" - integrity sha512-1D30iE4EXOPLirNJIO22/uNQ457xSi5f6iQwQPovuxJaCeb4eOm1Sfg5yR8XmXrKNya/MJhQN2xyyahVxNEe8w== +"@abp/prismjs@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-8.1.0-rc.2.tgz#5b2718ed92ae97e6cfeca1a61e860651ee474626" + integrity sha512-GxcnZmqY0mqEUvUQLX2gDeLKGryOQyRS4MWEpabccDmh6ntXzN2JdDcm5lP/c/5UAVeovn3PrdrJ3x2TTrGDWQ== dependencies: - "@abp/clipboard" "~8.1.0-rc.1" - "@abp/core" "~8.1.0-rc.1" + "@abp/clipboard" "~8.1.0-rc.2" + "@abp/core" "~8.1.0-rc.2" prismjs "^1.26.0" -"@abp/select2@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.1.0-rc.1.tgz#6beb1c5cfb5668b5cd51e4aa06388b30b3e7b250" - integrity sha512-1scGGpN2Zwu3FvctSEo/JThmO/6dgdiH8a067GZ9Wtz1fgy8/TCxHxywF/5yCfHxy0aljdYPUS1XyrhXHq6nfA== +"@abp/select2@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.1.0-rc.2.tgz#b13b6f6764affa24a30bff2c02443ad61141ddc8" + integrity sha512-pvGUp/wSanCI8vbyf8UxNnL3kfUCJet/lUREEtRFXZQFpyKVDIntcnz+qFFp0zChums7jiuIziwg/slM5R/kuw== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" select2 "^4.0.13" -"@abp/sweetalert2@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.1.0-rc.1.tgz#c2793eba4517ad767450535d77a793971215bc35" - integrity sha512-Dm9mHs9o2pkZxodNQ5R5L7Asm5ER1Cdi0oqB3ciBAj8ro5yp4lTp/BdnoRZVxJXd9mu/BiNY/NzASSpvkbR1og== +"@abp/sweetalert2@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.1.0-rc.2.tgz#bed9314d47634d3532b0dd32e4e2cd8b77539eb5" + integrity sha512-pq1D/kWH0TSYd8hYWiDulSFcSkUHC5i+0alecwyGUDdWzIPoAPmPjA7HxABKwxlLnnciUGed/mEJngfIPp+OYw== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" sweetalert2 "^11.3.6" -"@abp/timeago@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.1.0-rc.1.tgz#0ce17676ce01c07c40da7a8748a5e7cf5166a001" - integrity sha512-cZqlgA1LLYfBAwrxOhYiH+mcaQqxj3RAXx4q5tGpOOwJGqOr22bMZP7i6ODEro6KPmWc1UpknV6zWESJlBySMQ== +"@abp/timeago@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.1.0-rc.2.tgz#9911bdb81001189f30eb7a68fe345e0a692109b2" + integrity sha512-mlCosUBw+n9A6+gXZ2PL2iS/lLMAI2zx7sXFUuV829rtWq54YOkivj/uTOxGHNwNhE4KbW39NqkKK+IJdl/6kQ== dependencies: - "@abp/jquery" "~8.1.0-rc.1" + "@abp/jquery" "~8.1.0-rc.2" timeago "^1.6.7" -"@abp/toastr@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.1.0-rc.1.tgz#8d863f34b9211096d35872a501780fe5bbe3b164" - integrity sha512-U2sf5ZXHBkwOUxhwg8lk4hiMvs2rTb5Rm7elenUIm8r6tc17mkTTPZQ/qVVDSgtQDaD+DmodhSXBYBD2M/QrCg== +"@abp/toastr@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.1.0-rc.2.tgz#8e09730d7149eadb7a9e4fe8c447022d7647b1d7" + integrity sha512-b4bMxJ5aVSBedhq/fPaR5ayPvZMPmK/gbE6zb03+SF22YV6lQW9RDQV1bgnl/T3YLLXYIsrwPpgi67rPo8cZzQ== dependencies: - "@abp/jquery" "~8.1.0-rc.1" + "@abp/jquery" "~8.1.0-rc.2" toastr "^2.1.4" -"@abp/utils@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.1.0-rc.1.tgz#dafb48ba1b1f885ae96eca27241bd96d65132488" - integrity sha512-nZYWdQqAFVL4XkWcXYuUUXDkTJOZH38Sz0RHMbS/0seCVsjz88nCWRhgDb3Taduo79WZVNhS+rYhPW6KVR659g== +"@abp/utils@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.1.0-rc.2.tgz#1fa7eae2578c82a75a1e4147796f95dbe0367e2f" + integrity sha512-+IcoeTAAReepH8jCcN6cRTb9AP3suzZMtWt65luCWODqFuYk7otCYDyGGwUBMA+nlmXjyWhotMfVkdBgidWpWw== dependencies: just-compare "^2.3.0" diff --git a/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.Tests/EntityFrameworkCore/BlobStoringDatabaseEntityFrameworkCoreTestModule.cs b/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.Tests/EntityFrameworkCore/BlobStoringDatabaseEntityFrameworkCoreTestModule.cs index 082b1640b7..038ca5874d 100644 --- a/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.Tests/EntityFrameworkCore/BlobStoringDatabaseEntityFrameworkCoreTestModule.cs +++ b/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.Tests/EntityFrameworkCore/BlobStoringDatabaseEntityFrameworkCoreTestModule.cs @@ -2,6 +2,7 @@ using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; using Microsoft.EntityFrameworkCore.Storage; +using Volo.Abp.EntityFrameworkCore.Sqlite; using Volo.Abp.EntityFrameworkCore; using Volo.Abp.Modularity; @@ -9,7 +10,8 @@ namespace Volo.Abp.BlobStoring.Database.EntityFrameworkCore; [DependsOn( typeof(BlobStoringDatabaseTestBaseModule), - typeof(BlobStoringDatabaseEntityFrameworkCoreModule) + typeof(BlobStoringDatabaseEntityFrameworkCoreModule), + typeof(AbpEntityFrameworkCoreSqliteModule) )] public class BlobStoringDatabaseEntityFrameworkCoreTestModule : AbpModule { @@ -28,7 +30,7 @@ public class BlobStoringDatabaseEntityFrameworkCoreTestModule : AbpModule private static SqliteConnection CreateDatabaseAndGetConnection() { - var connection = new SqliteConnection("Data Source=:memory:"); + var connection = new AbpUnitTestSqliteConnection("Data Source=:memory:"); connection.Open(); new BlobStoringDbContext( diff --git a/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.Tests/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.Tests.csproj b/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.Tests/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.Tests.csproj index 59db9b77df..b48e29993d 100644 --- a/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.Tests/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.Tests.csproj +++ b/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.Tests/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.Tests.csproj @@ -11,6 +11,7 @@ + diff --git a/modules/blogging/app/Volo.BloggingTestApp/package.json b/modules/blogging/app/Volo.BloggingTestApp/package.json index 32ee78de08..d49a0c8433 100644 --- a/modules/blogging/app/Volo.BloggingTestApp/package.json +++ b/modules/blogging/app/Volo.BloggingTestApp/package.json @@ -3,7 +3,7 @@ "name": "volo.blogtestapp", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "~8.1.0-rc.1", - "@abp/blogging": "~8.1.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "~8.1.0-rc.2", + "@abp/blogging": "~8.1.0-rc.2" } } diff --git a/modules/blogging/app/Volo.BloggingTestApp/wwwroot/libs/malihu-custom-scrollbar-plugin/mCSB_buttons.png b/modules/blogging/app/Volo.BloggingTestApp/wwwroot/libs/malihu-custom-scrollbar-plugin/mCSB_buttons.png index 985a9b8b5a..74424318a4 100644 Binary files a/modules/blogging/app/Volo.BloggingTestApp/wwwroot/libs/malihu-custom-scrollbar-plugin/mCSB_buttons.png and b/modules/blogging/app/Volo.BloggingTestApp/wwwroot/libs/malihu-custom-scrollbar-plugin/mCSB_buttons.png differ diff --git a/modules/blogging/app/Volo.BloggingTestApp/wwwroot/libs/owl.carousel/assets/owl.video.play.png b/modules/blogging/app/Volo.BloggingTestApp/wwwroot/libs/owl.carousel/assets/owl.video.play.png index 5d0218d466..3ac8dad770 100644 Binary files a/modules/blogging/app/Volo.BloggingTestApp/wwwroot/libs/owl.carousel/assets/owl.video.play.png and b/modules/blogging/app/Volo.BloggingTestApp/wwwroot/libs/owl.carousel/assets/owl.video.play.png differ diff --git a/modules/blogging/app/Volo.BloggingTestApp/yarn.lock b/modules/blogging/app/Volo.BloggingTestApp/yarn.lock index 85f976959a..5aab348c6d 100644 --- a/modules/blogging/app/Volo.BloggingTestApp/yarn.lock +++ b/modules/blogging/app/Volo.BloggingTestApp/yarn.lock @@ -2,39 +2,39 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.1.0-rc.1.tgz#5f1503a4526817ec7471a08f29cd82a0bedce2e2" - integrity sha512-NCM8JrgCALz7k4JIm3O2H+pCE9slL6V4ntXC3lA7ReA6hLFEWvP1EBIBCXlHLN2qccqh9+pLN+Ow7/LUt+Ph9g== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~8.1.0-rc.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.1.0-rc.1.tgz#dee786935b41c83250cde627ee8211afd42608f0" - integrity sha512-6sUYndKpAyXF8AVlDm+fXusE9IifrO9yP/Wmt82caSLCtx+rjqiPMcewkQkbOGPNi8+B7H+lgF9azEUjifsKVA== - dependencies: - "@abp/aspnetcore.mvc.ui" "~8.1.0-rc.1" - "@abp/bootstrap" "~8.1.0-rc.1" - "@abp/bootstrap-datepicker" "~8.1.0-rc.1" - "@abp/bootstrap-daterangepicker" "~8.1.0-rc.1" - "@abp/datatables.net-bs5" "~8.1.0-rc.1" - "@abp/font-awesome" "~8.1.0-rc.1" - "@abp/jquery-form" "~8.1.0-rc.1" - "@abp/jquery-validation-unobtrusive" "~8.1.0-rc.1" - "@abp/lodash" "~8.1.0-rc.1" - "@abp/luxon" "~8.1.0-rc.1" - "@abp/malihu-custom-scrollbar-plugin" "~8.1.0-rc.1" - "@abp/moment" "~8.1.0-rc.1" - "@abp/select2" "~8.1.0-rc.1" - "@abp/sweetalert2" "~8.1.0-rc.1" - "@abp/timeago" "~8.1.0-rc.1" - "@abp/toastr" "~8.1.0-rc.1" - -"@abp/aspnetcore.mvc.ui@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.1.0-rc.1.tgz#8b5f31f9d5580c511ad47cedee81752e7eda9ecf" - integrity sha512-161Z4zuZkl81mTiZieOI4g9r1AptsrZyrgaUBNOwVyBrAA2reWGRAtDjGi5UASQks+Na/8Vle48swKxT/lNdhQ== +"@abp/aspnetcore.mvc.ui.theme.basic@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.1.0-rc.2.tgz#d3f61ae2a096d14984a7d6c962360c119f56ac18" + integrity sha512-Y1ueZ8P1VsRo6i+PwfHaAI1yVBkZvQ+3hXB5ishRqF/qCbZIk3l6zZ/7Y85z5cobwp1kfTFEAD4qWrrLb4EBVA== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~8.1.0-rc.2" + +"@abp/aspnetcore.mvc.ui.theme.shared@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.1.0-rc.2.tgz#a298f276a110901bf754429a2597e37abf0f779c" + integrity sha512-+rTR6umuWicvvC0Tp8TA+QcB0yJ4S9a6nyvH753AyIFSsszr+soyRoav44WOkkK4IoaoT6GhCI+VtznAssLjlA== + dependencies: + "@abp/aspnetcore.mvc.ui" "~8.1.0-rc.2" + "@abp/bootstrap" "~8.1.0-rc.2" + "@abp/bootstrap-datepicker" "~8.1.0-rc.2" + "@abp/bootstrap-daterangepicker" "~8.1.0-rc.2" + "@abp/datatables.net-bs5" "~8.1.0-rc.2" + "@abp/font-awesome" "~8.1.0-rc.2" + "@abp/jquery-form" "~8.1.0-rc.2" + "@abp/jquery-validation-unobtrusive" "~8.1.0-rc.2" + "@abp/lodash" "~8.1.0-rc.2" + "@abp/luxon" "~8.1.0-rc.2" + "@abp/malihu-custom-scrollbar-plugin" "~8.1.0-rc.2" + "@abp/moment" "~8.1.0-rc.2" + "@abp/select2" "~8.1.0-rc.2" + "@abp/sweetalert2" "~8.1.0-rc.2" + "@abp/timeago" "~8.1.0-rc.2" + "@abp/toastr" "~8.1.0-rc.2" + +"@abp/aspnetcore.mvc.ui@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.1.0-rc.2.tgz#384433d9f1e54e23633d16916ba9615e42e8b4e5" + integrity sha512-6Myb/cKviQxFcKP96wOenYafnYrU5OfhnhvJGRReCaay9IyuCET/ENrPJx7MKunlR5KFoJdvqH0tL7W7SJdFLw== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -43,201 +43,201 @@ merge-stream "^2.0.0" micromatch "^4.0.2" -"@abp/blogging@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/blogging/-/blogging-8.1.0-rc.1.tgz#b0dea2d4ab33aef409319b8f9626456ed2302fa2" - integrity sha512-8Srh12RFo/b6ufohO1CJJZEpIFsEJTJV38NmoFDU5WAIifIA0j7T+Yxg15MTIe0s8NzfBbVojFwKf8csBHI4KA== +"@abp/blogging@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/blogging/-/blogging-8.1.0-rc.2.tgz#277407f105e88565c52af3521cc16dc3fc9c4c35" + integrity sha512-SOZWB8r5723lbMkQqRXP04BjDik28OqrHA5HEDw25ZMDosB9rL0tcFHdH6N8VDXEmNwaH5G5vkTWThhh2f3i4g== dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~8.1.0-rc.1" - "@abp/owl.carousel" "~8.1.0-rc.1" - "@abp/prismjs" "~8.1.0-rc.1" - "@abp/tui-editor" "~8.1.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.shared" "~8.1.0-rc.2" + "@abp/owl.carousel" "~8.1.0-rc.2" + "@abp/prismjs" "~8.1.0-rc.2" + "@abp/tui-editor" "~8.1.0-rc.2" -"@abp/bootstrap-datepicker@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.1.0-rc.1.tgz#bb7adc6e42aa94629b24ca2fa1464aae6138afbe" - integrity sha512-Gfa+I2TK1X1UisGNJhOTIK4eu/upgazeO9P1gOHryDe5JBhmdo6AKv1wEF/csVVXh52xGs+JtSiyhRt2sH36fA== +"@abp/bootstrap-datepicker@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.1.0-rc.2.tgz#adfb49acaf8952da57046520c9524994caf2938e" + integrity sha512-QUVh0DSPHH9PpZXS/MoYO+G4j8DGwHSyw/fF1y+oYVSH28csNnkq4i0fNVl1THwQDHZPZE6BN+WLB6UTy3HLYA== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap-daterangepicker@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.1.0-rc.1.tgz#ad3c54ebd8a6bcc4c39542c90c8391b06869e996" - integrity sha512-nl2eWyYB9ovQvAMQiLeTHG52fl9rLGLvINnG/ftwlIzGN62mDGkShnZVi6I1EJL2yS0OtMcGyfcmnt5d9n2JGg== +"@abp/bootstrap-daterangepicker@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.1.0-rc.2.tgz#d79017933d1329c7ee1812c38ea0aaad098b4e89" + integrity sha512-t5O+Ibo9dvI/KosagDg7z5U3l8il87DP//tn5dyJtbBrx+336T7p2jcn4E2/TbzQbwKhMbkERHrGo0bRUy/N9A== dependencies: bootstrap-daterangepicker "^3.1.0" -"@abp/bootstrap@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.1.0-rc.1.tgz#14c23314775af1d97564fbbb4c5c304c3a24b919" - integrity sha512-Ze9th6Fyhq8Vh2e3Tk/quN0kQw4k5VuMXvgd/WQoqwa8xlWcWt3q2m+xG8NUuvcj6+O0bcg2KO2nzkBl+oJtbg== +"@abp/bootstrap@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.1.0-rc.2.tgz#92b52790122acb9df9d73dfae8d5d0825051986c" + integrity sha512-p5+t5KGU8/hE5cKMbp9I3ZJLiPdZeNMSJJuccIjqGFaivU35bAOouAgWWZfdive66X3h5GgHipEkS3obQITprQ== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" bootstrap "^5.1.3" -"@abp/clipboard@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-8.1.0-rc.1.tgz#1e82e955fab968ce71002f10efe9ae4a78c65696" - integrity sha512-k8riJptYKKpRIlsQng6pJOk5MdxK414aIPmoAqpcWv3BfGuZqndnp/TpZPWknQqRBm8OUhnC4eQh7L00mjtHuw== +"@abp/clipboard@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-8.1.0-rc.2.tgz#87c5299b0c63fadd7307251040af330247830c13" + integrity sha512-Piy8bPIJOoCNZjwmUZKe2kA16Weqhvz/SjaxvrlCADmN/0zY2WPFOhE89WA7pb9M/2EGynWF/hot35XqbG15CQ== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" clipboard "^2.0.8" -"@abp/core@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.1.0-rc.1.tgz#ddb848c3400decfad6fa1c0877ed4c87f69bb125" - integrity sha512-uMSxjVWEBPer3evCx5LPSqvG4kMK5IHWryJOILvDLBxR7bszex18TpAMDP3WqALmBPY5rl3v+GQlcEkmh8iKkw== +"@abp/core@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.1.0-rc.2.tgz#78b6db67f7381d9fc26cd8a35e8e21f417a4bea9" + integrity sha512-5VK48/gCE+FSuWXHzUGh5MN3x2gEG9S2Av4Z83gDaHulF7fuaDu0J1KruPHIjpcpNGoko0lOcXNc80JvsYZsAg== dependencies: - "@abp/utils" "~8.1.0-rc.1" + "@abp/utils" "~8.1.0-rc.2" -"@abp/datatables.net-bs5@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.1.0-rc.1.tgz#4f316b0266665bfddc359d9bd08f5759cbe73610" - integrity sha512-FgdOSvakD87pVS4ECux1oamqh8zQ1t3ZzzErXajA2mORQ2AJH+ESTCPvUcuD99BQCcqbGkWhuzPFM5ADNApkNQ== +"@abp/datatables.net-bs5@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.1.0-rc.2.tgz#878e02bd414b27494891e6440f7bce4e5f3d2207" + integrity sha512-RMVf7jz/S0Oo6heRXTpmxx7FPybWA+Visj5MyCbQaSjcrog9VOFrQnlckTEwosU5jL6NWJ0JtIauuiUDxArQdg== dependencies: - "@abp/datatables.net" "~8.1.0-rc.1" + "@abp/datatables.net" "~8.1.0-rc.2" datatables.net-bs5 "^1.11.4" -"@abp/datatables.net@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.1.0-rc.1.tgz#f4a47ccec70a777d26158bbcd3b560dcf5f7f4bf" - integrity sha512-TBMVeaFRSp9DMhsOgr1UNXZXHL8g4P8/kezMu8wO4W78x3hr9hmQX+h0obCJBkMONbsswLSoc+JVwtLJmpn4QQ== +"@abp/datatables.net@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.1.0-rc.2.tgz#bb9f571f9da7e764f1d21377012d5275f663941e" + integrity sha512-6ukqd4+1FajCP/F0+pB1uiFdUJjPQex0pdl9qrAcWsqSRaO44SUsYThs/RvMJW6heblA8HsCaAW0DYFod0YMbQ== dependencies: - "@abp/jquery" "~8.1.0-rc.1" + "@abp/jquery" "~8.1.0-rc.2" datatables.net "^1.11.4" -"@abp/font-awesome@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.1.0-rc.1.tgz#c544207fd843f46aed124f18e972b6a02bca525c" - integrity sha512-jXGRODAjdsgqUhH0LtX5fniB+2XcHZ1uHs2BG3OyVC11C5OfLd613OIru2y8lrVI9PwGjU9QzkfrWD88eSWUQA== +"@abp/font-awesome@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.1.0-rc.2.tgz#c0af9c2772a78ee7276ccd9aac2f3a361f88848e" + integrity sha512-ick6hyY/oCaIEDdferjI7qAckZUE8lyN1K7EUf8xO8u9lxdK89wCVCEVwZaEDUQth+JQXfiGKkgrH0EdFa9pOQ== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" "@fortawesome/fontawesome-free" "^6.5.1" -"@abp/jquery-form@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.1.0-rc.1.tgz#879772d1ddd3d76f738411d2121f3ca58b9380b1" - integrity sha512-olM3pRzcGq9fNwyI/m+V9AGOcOa2rjSQHPD2uqS3gqNQtNBCRA27Rt7Uarnwy5Aha7obtB3cVANZjcWHyubEQg== +"@abp/jquery-form@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.1.0-rc.2.tgz#00fb51f14e9ddc3e3824082edfc48593a52ee61e" + integrity sha512-8T1SpscYXQ7S+kdtV6esZnncyYAG82LZkM1igfS++nqDIYELSDp1c7DoRMZoEFxwdHfbavzRkGq9BAlBBDyVxQ== dependencies: - "@abp/jquery" "~8.1.0-rc.1" + "@abp/jquery" "~8.1.0-rc.2" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.1.0-rc.1.tgz#0cc63ff8bb8f995e55ded83996d5f10e3ff4ab13" - integrity sha512-PBDD9fkNzVTync4qHPwwavB7R09Z3yis9rGqF0QGHRcIVwfHU3C66gItpVN5xdmNNko/ynlB81qZjIIyqtkiIw== +"@abp/jquery-validation-unobtrusive@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.1.0-rc.2.tgz#74b8d99989cb337725f258f370b8c68fbb882372" + integrity sha512-wwJvMfdiIELJtabZqGUarEc3FJNthK8PGAAeuVzygfjcV0yVlGpAB4aHOOVhyvTsuZ3BxwifGOg7550FIwJ79g== dependencies: - "@abp/jquery-validation" "~8.1.0-rc.1" + "@abp/jquery-validation" "~8.1.0-rc.2" jquery-validation-unobtrusive "^3.2.12" -"@abp/jquery-validation@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.1.0-rc.1.tgz#0006cda24b89534bacd6bb27aef0741f776d4a5f" - integrity sha512-iKbV1uzvJWYOk5xvNPP9zliQJWH5nMKnnKUlV/5VA0NO2PVsFOdG8FvNHE1APvccqKKMoau5NJ2+8/tq/pf88Q== +"@abp/jquery-validation@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.1.0-rc.2.tgz#3ec6e150fe7ace940f3e63f7696cd06014ce06e7" + integrity sha512-pREGhrtU245nACpmOCuyHBkqH/OAzehsBVRj6SyGlA4ScEgQG6Zya1hBAe4BL33bPeWuSCkUZM+lrSDSzexSjA== dependencies: - "@abp/jquery" "~8.1.0-rc.1" + "@abp/jquery" "~8.1.0-rc.2" jquery-validation "^1.19.3" -"@abp/jquery@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.1.0-rc.1.tgz#089847bedd38f0d91bdb57ac7520b8159685db50" - integrity sha512-Amc2/mS8YJU06NW/W0AFCPpvDFweFSkKHcEuhXtrGEdnRWUeNm3TLc80vA88aILpztX2+wdp9QiYomx7QDtkzg== +"@abp/jquery@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.1.0-rc.2.tgz#7d2df898cb7911842915860bae196d174519375a" + integrity sha512-Fe8S3jHS1KDL6EGo2dURdkO7XsZFggB5XQa82DNMJs7njK5qATCxAXiNExSQ5/EbSu0Y/reaC4BGC51OMYe14w== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" jquery "~3.6.0" -"@abp/lodash@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.1.0-rc.1.tgz#1ba04f8eaba8d8878d2ac6f5cfae94cf12f90f4b" - integrity sha512-xIHVLTIdObUx9mX+BkJNJuZePVhgH8v8mlbQAjCajbHvoVtDNb16in8xqsQM+gHfdmhUb7iA95HdhZGhMCM4pw== +"@abp/lodash@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.1.0-rc.2.tgz#37fd0296bc5666699541ed8fb158e60b9137af09" + integrity sha512-2t0UUztGT3x3fET+dmHmN/QYmjkz7MpSi8mK2pLbjlCkAoOSmd+Zv9kgWxwxtE9y9ltu3EHYD15BvPL+fd+srQ== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" lodash "^4.17.21" -"@abp/luxon@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.1.0-rc.1.tgz#0cfd66c5c16df5d0ad9c4bfc48648b24a969c892" - integrity sha512-/aYZ0aaCKZUYuc2weAVjcFfPJMpOGECZoJ/2VDemLpixA+iJisgyZPT0GosLHir2HMPPaXkmlXXqvIaLrUNEZg== +"@abp/luxon@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.1.0-rc.2.tgz#80ea50dd41997fe41578a3d6d7bab2dd14fd60d5" + integrity sha512-hsrna+XTGdWBHflnTCsT1uWYWdWyrEHom2eyi1AhqcFmaMccwTS3+u6e5zsNTuuqpoCF9GU3ZxQ5Q1VPDaxxiw== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" luxon "^2.3.0" -"@abp/malihu-custom-scrollbar-plugin@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.1.0-rc.1.tgz#3b9a7be7c067ebd08112d768f4901023e3f58180" - integrity sha512-Sr14jXu03SkJUegs2Rk17+opLnUJ4GC0rPN+Ruf4NxLr2nXneecq3/E6D/LGC5NVjaMgGXWXtKVczUq9rBf6ow== +"@abp/malihu-custom-scrollbar-plugin@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.1.0-rc.2.tgz#11968069de66efc3a5b2eb79ade4d38fa92ef83e" + integrity sha512-REmQaHSc1GCWwMlWb1XLOgvCmPfvVkMAPg02GOrDYSB3+w9RKZGhkWbAUNlDYehMJin3FgY7kBophZNPi4Ae2A== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/moment@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.1.0-rc.1.tgz#770167bd2fc6ec89a47e2c9b3c1088cad87469c3" - integrity sha512-TKaZWD7d+5DtGqiQbrmiybvidqZzHx3wAPzrH7S4I0g+VH+SGTdaNlII+/ZZhqIpadW07G1SJnnI1EY6aU9msg== +"@abp/moment@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.1.0-rc.2.tgz#73751afb93313e56ecaac7ebb785809d6e26010d" + integrity sha512-JOMS6AbPMVKJP5yQs5aagaT1q/UjlM041YsIN3xKIBX5QFp70zHNRdHtskl4cpnKf8q/nXhtnvawuQiqvGbPbw== dependencies: moment "^2.9.0" -"@abp/owl.carousel@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/owl.carousel/-/owl.carousel-8.1.0-rc.1.tgz#ed48dcc8032c68e926c9ec02cf69d56966a9220f" - integrity sha512-1iXBDN9kxeZgdryITyawMYrdYBpK96kCCiyTcekiqJeIPpYXHfW8tjqOm/iQFRZa97+qaGOKeBqqLe0IBpaAsQ== +"@abp/owl.carousel@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/owl.carousel/-/owl.carousel-8.1.0-rc.2.tgz#4841c3b824c04f1a02e7c99e2810e5f01c49ceb3" + integrity sha512-eUT9mxVjOaqurb1FB0Fdv90jQ2tmgz9TxV9vrTO5iJsE77wM52jc/K+avyTikFBpdYOFFaSpVCuYB9MVoomfGg== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" owl.carousel "^2.3.4" -"@abp/prismjs@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-8.1.0-rc.1.tgz#a2244029151b9e4f5d8c2c6c94eba2b976c2c776" - integrity sha512-1D30iE4EXOPLirNJIO22/uNQ457xSi5f6iQwQPovuxJaCeb4eOm1Sfg5yR8XmXrKNya/MJhQN2xyyahVxNEe8w== +"@abp/prismjs@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-8.1.0-rc.2.tgz#5b2718ed92ae97e6cfeca1a61e860651ee474626" + integrity sha512-GxcnZmqY0mqEUvUQLX2gDeLKGryOQyRS4MWEpabccDmh6ntXzN2JdDcm5lP/c/5UAVeovn3PrdrJ3x2TTrGDWQ== dependencies: - "@abp/clipboard" "~8.1.0-rc.1" - "@abp/core" "~8.1.0-rc.1" + "@abp/clipboard" "~8.1.0-rc.2" + "@abp/core" "~8.1.0-rc.2" prismjs "^1.26.0" -"@abp/select2@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.1.0-rc.1.tgz#6beb1c5cfb5668b5cd51e4aa06388b30b3e7b250" - integrity sha512-1scGGpN2Zwu3FvctSEo/JThmO/6dgdiH8a067GZ9Wtz1fgy8/TCxHxywF/5yCfHxy0aljdYPUS1XyrhXHq6nfA== +"@abp/select2@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.1.0-rc.2.tgz#b13b6f6764affa24a30bff2c02443ad61141ddc8" + integrity sha512-pvGUp/wSanCI8vbyf8UxNnL3kfUCJet/lUREEtRFXZQFpyKVDIntcnz+qFFp0zChums7jiuIziwg/slM5R/kuw== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" select2 "^4.0.13" -"@abp/sweetalert2@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.1.0-rc.1.tgz#c2793eba4517ad767450535d77a793971215bc35" - integrity sha512-Dm9mHs9o2pkZxodNQ5R5L7Asm5ER1Cdi0oqB3ciBAj8ro5yp4lTp/BdnoRZVxJXd9mu/BiNY/NzASSpvkbR1og== +"@abp/sweetalert2@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.1.0-rc.2.tgz#bed9314d47634d3532b0dd32e4e2cd8b77539eb5" + integrity sha512-pq1D/kWH0TSYd8hYWiDulSFcSkUHC5i+0alecwyGUDdWzIPoAPmPjA7HxABKwxlLnnciUGed/mEJngfIPp+OYw== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" sweetalert2 "^11.3.6" -"@abp/timeago@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.1.0-rc.1.tgz#0ce17676ce01c07c40da7a8748a5e7cf5166a001" - integrity sha512-cZqlgA1LLYfBAwrxOhYiH+mcaQqxj3RAXx4q5tGpOOwJGqOr22bMZP7i6ODEro6KPmWc1UpknV6zWESJlBySMQ== +"@abp/timeago@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.1.0-rc.2.tgz#9911bdb81001189f30eb7a68fe345e0a692109b2" + integrity sha512-mlCosUBw+n9A6+gXZ2PL2iS/lLMAI2zx7sXFUuV829rtWq54YOkivj/uTOxGHNwNhE4KbW39NqkKK+IJdl/6kQ== dependencies: - "@abp/jquery" "~8.1.0-rc.1" + "@abp/jquery" "~8.1.0-rc.2" timeago "^1.6.7" -"@abp/toastr@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.1.0-rc.1.tgz#8d863f34b9211096d35872a501780fe5bbe3b164" - integrity sha512-U2sf5ZXHBkwOUxhwg8lk4hiMvs2rTb5Rm7elenUIm8r6tc17mkTTPZQ/qVVDSgtQDaD+DmodhSXBYBD2M/QrCg== +"@abp/toastr@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.1.0-rc.2.tgz#8e09730d7149eadb7a9e4fe8c447022d7647b1d7" + integrity sha512-b4bMxJ5aVSBedhq/fPaR5ayPvZMPmK/gbE6zb03+SF22YV6lQW9RDQV1bgnl/T3YLLXYIsrwPpgi67rPo8cZzQ== dependencies: - "@abp/jquery" "~8.1.0-rc.1" + "@abp/jquery" "~8.1.0-rc.2" toastr "^2.1.4" -"@abp/tui-editor@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-8.1.0-rc.1.tgz#01a80a9334ad874d6ef21e898d8f2b3d07354df9" - integrity sha512-Fsq1styNfApaXu0SmAmFlyi2PRScioMEtX+ApiYAGrHcjaX3xBrShg7QZf7Z1cFveZpEFKpK6mfhEZS6u3JWkg== +"@abp/tui-editor@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-8.1.0-rc.2.tgz#2e8f62857c2cc883c2a25cd04238479b49568759" + integrity sha512-gPvYhCw+LGxAcNKhP5rNY9rpUOwO06rHTzfri4gRKWCLnRX/hrgAJvQqqSltnPa+KzCrKNu2BjKia3yFHlZqQw== dependencies: - "@abp/jquery" "~8.1.0-rc.1" - "@abp/prismjs" "~8.1.0-rc.1" + "@abp/jquery" "~8.1.0-rc.2" + "@abp/prismjs" "~8.1.0-rc.2" -"@abp/utils@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.1.0-rc.1.tgz#dafb48ba1b1f885ae96eca27241bd96d65132488" - integrity sha512-nZYWdQqAFVL4XkWcXYuUUXDkTJOZH38Sz0RHMbS/0seCVsjz88nCWRhgDb3Taduo79WZVNhS+rYhPW6KVR659g== +"@abp/utils@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.1.0-rc.2.tgz#1fa7eae2578c82a75a1e4147796f95dbe0367e2f" + integrity sha512-+IcoeTAAReepH8jCcN6cRTb9AP3suzZMtWt65luCWODqFuYk7otCYDyGGwUBMA+nlmXjyWhotMfVkdBgidWpWw== dependencies: just-compare "^2.3.0" diff --git a/modules/blogging/test/Volo.Blogging.EntityFrameworkCore.Tests/Volo/Blogging/EntityFrameworkCore/BloggingEntityFrameworkCoreTestModule.cs b/modules/blogging/test/Volo.Blogging.EntityFrameworkCore.Tests/Volo/Blogging/EntityFrameworkCore/BloggingEntityFrameworkCoreTestModule.cs index 0a27448f6e..498e8e7ab6 100644 --- a/modules/blogging/test/Volo.Blogging.EntityFrameworkCore.Tests/Volo/Blogging/EntityFrameworkCore/BloggingEntityFrameworkCoreTestModule.cs +++ b/modules/blogging/test/Volo.Blogging.EntityFrameworkCore.Tests/Volo/Blogging/EntityFrameworkCore/BloggingEntityFrameworkCoreTestModule.cs @@ -33,7 +33,7 @@ namespace Volo.Blogging.EntityFrameworkCore private static SqliteConnection CreateDatabaseAndGetConnection() { - var connection = new SqliteConnection("Data Source=:memory:"); + var connection = new AbpUnitTestSqliteConnection("Data Source=:memory:"); connection.Open(); var options = new DbContextOptionsBuilder().UseSqlite(connection).Options; diff --git a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json index 2b50241b9b..20d4dd3b39 100644 --- a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json +++ b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json @@ -3,6 +3,6 @@ "name": "client-simulation-web", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "~8.1.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "~8.1.0-rc.2" } } diff --git a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/wwwroot/libs/malihu-custom-scrollbar-plugin/mCSB_buttons.png b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/wwwroot/libs/malihu-custom-scrollbar-plugin/mCSB_buttons.png index 985a9b8b5a..74424318a4 100644 Binary files a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/wwwroot/libs/malihu-custom-scrollbar-plugin/mCSB_buttons.png and b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/wwwroot/libs/malihu-custom-scrollbar-plugin/mCSB_buttons.png differ diff --git a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock index 4f7c6e7715..3bdc5eb52d 100644 --- a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock +++ b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock @@ -2,39 +2,39 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.1.0-rc.1.tgz#5f1503a4526817ec7471a08f29cd82a0bedce2e2" - integrity sha512-NCM8JrgCALz7k4JIm3O2H+pCE9slL6V4ntXC3lA7ReA6hLFEWvP1EBIBCXlHLN2qccqh9+pLN+Ow7/LUt+Ph9g== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~8.1.0-rc.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.1.0-rc.1.tgz#dee786935b41c83250cde627ee8211afd42608f0" - integrity sha512-6sUYndKpAyXF8AVlDm+fXusE9IifrO9yP/Wmt82caSLCtx+rjqiPMcewkQkbOGPNi8+B7H+lgF9azEUjifsKVA== - dependencies: - "@abp/aspnetcore.mvc.ui" "~8.1.0-rc.1" - "@abp/bootstrap" "~8.1.0-rc.1" - "@abp/bootstrap-datepicker" "~8.1.0-rc.1" - "@abp/bootstrap-daterangepicker" "~8.1.0-rc.1" - "@abp/datatables.net-bs5" "~8.1.0-rc.1" - "@abp/font-awesome" "~8.1.0-rc.1" - "@abp/jquery-form" "~8.1.0-rc.1" - "@abp/jquery-validation-unobtrusive" "~8.1.0-rc.1" - "@abp/lodash" "~8.1.0-rc.1" - "@abp/luxon" "~8.1.0-rc.1" - "@abp/malihu-custom-scrollbar-plugin" "~8.1.0-rc.1" - "@abp/moment" "~8.1.0-rc.1" - "@abp/select2" "~8.1.0-rc.1" - "@abp/sweetalert2" "~8.1.0-rc.1" - "@abp/timeago" "~8.1.0-rc.1" - "@abp/toastr" "~8.1.0-rc.1" - -"@abp/aspnetcore.mvc.ui@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.1.0-rc.1.tgz#8b5f31f9d5580c511ad47cedee81752e7eda9ecf" - integrity sha512-161Z4zuZkl81mTiZieOI4g9r1AptsrZyrgaUBNOwVyBrAA2reWGRAtDjGi5UASQks+Na/8Vle48swKxT/lNdhQ== +"@abp/aspnetcore.mvc.ui.theme.basic@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.1.0-rc.2.tgz#d3f61ae2a096d14984a7d6c962360c119f56ac18" + integrity sha512-Y1ueZ8P1VsRo6i+PwfHaAI1yVBkZvQ+3hXB5ishRqF/qCbZIk3l6zZ/7Y85z5cobwp1kfTFEAD4qWrrLb4EBVA== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~8.1.0-rc.2" + +"@abp/aspnetcore.mvc.ui.theme.shared@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.1.0-rc.2.tgz#a298f276a110901bf754429a2597e37abf0f779c" + integrity sha512-+rTR6umuWicvvC0Tp8TA+QcB0yJ4S9a6nyvH753AyIFSsszr+soyRoav44WOkkK4IoaoT6GhCI+VtznAssLjlA== + dependencies: + "@abp/aspnetcore.mvc.ui" "~8.1.0-rc.2" + "@abp/bootstrap" "~8.1.0-rc.2" + "@abp/bootstrap-datepicker" "~8.1.0-rc.2" + "@abp/bootstrap-daterangepicker" "~8.1.0-rc.2" + "@abp/datatables.net-bs5" "~8.1.0-rc.2" + "@abp/font-awesome" "~8.1.0-rc.2" + "@abp/jquery-form" "~8.1.0-rc.2" + "@abp/jquery-validation-unobtrusive" "~8.1.0-rc.2" + "@abp/lodash" "~8.1.0-rc.2" + "@abp/luxon" "~8.1.0-rc.2" + "@abp/malihu-custom-scrollbar-plugin" "~8.1.0-rc.2" + "@abp/moment" "~8.1.0-rc.2" + "@abp/select2" "~8.1.0-rc.2" + "@abp/sweetalert2" "~8.1.0-rc.2" + "@abp/timeago" "~8.1.0-rc.2" + "@abp/toastr" "~8.1.0-rc.2" + +"@abp/aspnetcore.mvc.ui@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.1.0-rc.2.tgz#384433d9f1e54e23633d16916ba9615e42e8b4e5" + integrity sha512-6Myb/cKviQxFcKP96wOenYafnYrU5OfhnhvJGRReCaay9IyuCET/ENrPJx7MKunlR5KFoJdvqH0tL7W7SJdFLw== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -43,158 +43,158 @@ merge-stream "^2.0.0" micromatch "^4.0.2" -"@abp/bootstrap-datepicker@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.1.0-rc.1.tgz#bb7adc6e42aa94629b24ca2fa1464aae6138afbe" - integrity sha512-Gfa+I2TK1X1UisGNJhOTIK4eu/upgazeO9P1gOHryDe5JBhmdo6AKv1wEF/csVVXh52xGs+JtSiyhRt2sH36fA== +"@abp/bootstrap-datepicker@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.1.0-rc.2.tgz#adfb49acaf8952da57046520c9524994caf2938e" + integrity sha512-QUVh0DSPHH9PpZXS/MoYO+G4j8DGwHSyw/fF1y+oYVSH28csNnkq4i0fNVl1THwQDHZPZE6BN+WLB6UTy3HLYA== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap-daterangepicker@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.1.0-rc.1.tgz#ad3c54ebd8a6bcc4c39542c90c8391b06869e996" - integrity sha512-nl2eWyYB9ovQvAMQiLeTHG52fl9rLGLvINnG/ftwlIzGN62mDGkShnZVi6I1EJL2yS0OtMcGyfcmnt5d9n2JGg== +"@abp/bootstrap-daterangepicker@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.1.0-rc.2.tgz#d79017933d1329c7ee1812c38ea0aaad098b4e89" + integrity sha512-t5O+Ibo9dvI/KosagDg7z5U3l8il87DP//tn5dyJtbBrx+336T7p2jcn4E2/TbzQbwKhMbkERHrGo0bRUy/N9A== dependencies: bootstrap-daterangepicker "^3.1.0" -"@abp/bootstrap@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.1.0-rc.1.tgz#14c23314775af1d97564fbbb4c5c304c3a24b919" - integrity sha512-Ze9th6Fyhq8Vh2e3Tk/quN0kQw4k5VuMXvgd/WQoqwa8xlWcWt3q2m+xG8NUuvcj6+O0bcg2KO2nzkBl+oJtbg== +"@abp/bootstrap@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.1.0-rc.2.tgz#92b52790122acb9df9d73dfae8d5d0825051986c" + integrity sha512-p5+t5KGU8/hE5cKMbp9I3ZJLiPdZeNMSJJuccIjqGFaivU35bAOouAgWWZfdive66X3h5GgHipEkS3obQITprQ== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" bootstrap "^5.1.3" -"@abp/core@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.1.0-rc.1.tgz#ddb848c3400decfad6fa1c0877ed4c87f69bb125" - integrity sha512-uMSxjVWEBPer3evCx5LPSqvG4kMK5IHWryJOILvDLBxR7bszex18TpAMDP3WqALmBPY5rl3v+GQlcEkmh8iKkw== +"@abp/core@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.1.0-rc.2.tgz#78b6db67f7381d9fc26cd8a35e8e21f417a4bea9" + integrity sha512-5VK48/gCE+FSuWXHzUGh5MN3x2gEG9S2Av4Z83gDaHulF7fuaDu0J1KruPHIjpcpNGoko0lOcXNc80JvsYZsAg== dependencies: - "@abp/utils" "~8.1.0-rc.1" + "@abp/utils" "~8.1.0-rc.2" -"@abp/datatables.net-bs5@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.1.0-rc.1.tgz#4f316b0266665bfddc359d9bd08f5759cbe73610" - integrity sha512-FgdOSvakD87pVS4ECux1oamqh8zQ1t3ZzzErXajA2mORQ2AJH+ESTCPvUcuD99BQCcqbGkWhuzPFM5ADNApkNQ== +"@abp/datatables.net-bs5@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.1.0-rc.2.tgz#878e02bd414b27494891e6440f7bce4e5f3d2207" + integrity sha512-RMVf7jz/S0Oo6heRXTpmxx7FPybWA+Visj5MyCbQaSjcrog9VOFrQnlckTEwosU5jL6NWJ0JtIauuiUDxArQdg== dependencies: - "@abp/datatables.net" "~8.1.0-rc.1" + "@abp/datatables.net" "~8.1.0-rc.2" datatables.net-bs5 "^1.11.4" -"@abp/datatables.net@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.1.0-rc.1.tgz#f4a47ccec70a777d26158bbcd3b560dcf5f7f4bf" - integrity sha512-TBMVeaFRSp9DMhsOgr1UNXZXHL8g4P8/kezMu8wO4W78x3hr9hmQX+h0obCJBkMONbsswLSoc+JVwtLJmpn4QQ== +"@abp/datatables.net@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.1.0-rc.2.tgz#bb9f571f9da7e764f1d21377012d5275f663941e" + integrity sha512-6ukqd4+1FajCP/F0+pB1uiFdUJjPQex0pdl9qrAcWsqSRaO44SUsYThs/RvMJW6heblA8HsCaAW0DYFod0YMbQ== dependencies: - "@abp/jquery" "~8.1.0-rc.1" + "@abp/jquery" "~8.1.0-rc.2" datatables.net "^1.11.4" -"@abp/font-awesome@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.1.0-rc.1.tgz#c544207fd843f46aed124f18e972b6a02bca525c" - integrity sha512-jXGRODAjdsgqUhH0LtX5fniB+2XcHZ1uHs2BG3OyVC11C5OfLd613OIru2y8lrVI9PwGjU9QzkfrWD88eSWUQA== +"@abp/font-awesome@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.1.0-rc.2.tgz#c0af9c2772a78ee7276ccd9aac2f3a361f88848e" + integrity sha512-ick6hyY/oCaIEDdferjI7qAckZUE8lyN1K7EUf8xO8u9lxdK89wCVCEVwZaEDUQth+JQXfiGKkgrH0EdFa9pOQ== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" "@fortawesome/fontawesome-free" "^6.5.1" -"@abp/jquery-form@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.1.0-rc.1.tgz#879772d1ddd3d76f738411d2121f3ca58b9380b1" - integrity sha512-olM3pRzcGq9fNwyI/m+V9AGOcOa2rjSQHPD2uqS3gqNQtNBCRA27Rt7Uarnwy5Aha7obtB3cVANZjcWHyubEQg== +"@abp/jquery-form@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.1.0-rc.2.tgz#00fb51f14e9ddc3e3824082edfc48593a52ee61e" + integrity sha512-8T1SpscYXQ7S+kdtV6esZnncyYAG82LZkM1igfS++nqDIYELSDp1c7DoRMZoEFxwdHfbavzRkGq9BAlBBDyVxQ== dependencies: - "@abp/jquery" "~8.1.0-rc.1" + "@abp/jquery" "~8.1.0-rc.2" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.1.0-rc.1.tgz#0cc63ff8bb8f995e55ded83996d5f10e3ff4ab13" - integrity sha512-PBDD9fkNzVTync4qHPwwavB7R09Z3yis9rGqF0QGHRcIVwfHU3C66gItpVN5xdmNNko/ynlB81qZjIIyqtkiIw== +"@abp/jquery-validation-unobtrusive@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.1.0-rc.2.tgz#74b8d99989cb337725f258f370b8c68fbb882372" + integrity sha512-wwJvMfdiIELJtabZqGUarEc3FJNthK8PGAAeuVzygfjcV0yVlGpAB4aHOOVhyvTsuZ3BxwifGOg7550FIwJ79g== dependencies: - "@abp/jquery-validation" "~8.1.0-rc.1" + "@abp/jquery-validation" "~8.1.0-rc.2" jquery-validation-unobtrusive "^3.2.12" -"@abp/jquery-validation@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.1.0-rc.1.tgz#0006cda24b89534bacd6bb27aef0741f776d4a5f" - integrity sha512-iKbV1uzvJWYOk5xvNPP9zliQJWH5nMKnnKUlV/5VA0NO2PVsFOdG8FvNHE1APvccqKKMoau5NJ2+8/tq/pf88Q== +"@abp/jquery-validation@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.1.0-rc.2.tgz#3ec6e150fe7ace940f3e63f7696cd06014ce06e7" + integrity sha512-pREGhrtU245nACpmOCuyHBkqH/OAzehsBVRj6SyGlA4ScEgQG6Zya1hBAe4BL33bPeWuSCkUZM+lrSDSzexSjA== dependencies: - "@abp/jquery" "~8.1.0-rc.1" + "@abp/jquery" "~8.1.0-rc.2" jquery-validation "^1.19.3" -"@abp/jquery@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.1.0-rc.1.tgz#089847bedd38f0d91bdb57ac7520b8159685db50" - integrity sha512-Amc2/mS8YJU06NW/W0AFCPpvDFweFSkKHcEuhXtrGEdnRWUeNm3TLc80vA88aILpztX2+wdp9QiYomx7QDtkzg== +"@abp/jquery@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.1.0-rc.2.tgz#7d2df898cb7911842915860bae196d174519375a" + integrity sha512-Fe8S3jHS1KDL6EGo2dURdkO7XsZFggB5XQa82DNMJs7njK5qATCxAXiNExSQ5/EbSu0Y/reaC4BGC51OMYe14w== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" jquery "~3.6.0" -"@abp/lodash@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.1.0-rc.1.tgz#1ba04f8eaba8d8878d2ac6f5cfae94cf12f90f4b" - integrity sha512-xIHVLTIdObUx9mX+BkJNJuZePVhgH8v8mlbQAjCajbHvoVtDNb16in8xqsQM+gHfdmhUb7iA95HdhZGhMCM4pw== +"@abp/lodash@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.1.0-rc.2.tgz#37fd0296bc5666699541ed8fb158e60b9137af09" + integrity sha512-2t0UUztGT3x3fET+dmHmN/QYmjkz7MpSi8mK2pLbjlCkAoOSmd+Zv9kgWxwxtE9y9ltu3EHYD15BvPL+fd+srQ== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" lodash "^4.17.21" -"@abp/luxon@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.1.0-rc.1.tgz#0cfd66c5c16df5d0ad9c4bfc48648b24a969c892" - integrity sha512-/aYZ0aaCKZUYuc2weAVjcFfPJMpOGECZoJ/2VDemLpixA+iJisgyZPT0GosLHir2HMPPaXkmlXXqvIaLrUNEZg== +"@abp/luxon@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.1.0-rc.2.tgz#80ea50dd41997fe41578a3d6d7bab2dd14fd60d5" + integrity sha512-hsrna+XTGdWBHflnTCsT1uWYWdWyrEHom2eyi1AhqcFmaMccwTS3+u6e5zsNTuuqpoCF9GU3ZxQ5Q1VPDaxxiw== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" luxon "^2.3.0" -"@abp/malihu-custom-scrollbar-plugin@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.1.0-rc.1.tgz#3b9a7be7c067ebd08112d768f4901023e3f58180" - integrity sha512-Sr14jXu03SkJUegs2Rk17+opLnUJ4GC0rPN+Ruf4NxLr2nXneecq3/E6D/LGC5NVjaMgGXWXtKVczUq9rBf6ow== +"@abp/malihu-custom-scrollbar-plugin@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.1.0-rc.2.tgz#11968069de66efc3a5b2eb79ade4d38fa92ef83e" + integrity sha512-REmQaHSc1GCWwMlWb1XLOgvCmPfvVkMAPg02GOrDYSB3+w9RKZGhkWbAUNlDYehMJin3FgY7kBophZNPi4Ae2A== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/moment@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.1.0-rc.1.tgz#770167bd2fc6ec89a47e2c9b3c1088cad87469c3" - integrity sha512-TKaZWD7d+5DtGqiQbrmiybvidqZzHx3wAPzrH7S4I0g+VH+SGTdaNlII+/ZZhqIpadW07G1SJnnI1EY6aU9msg== +"@abp/moment@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.1.0-rc.2.tgz#73751afb93313e56ecaac7ebb785809d6e26010d" + integrity sha512-JOMS6AbPMVKJP5yQs5aagaT1q/UjlM041YsIN3xKIBX5QFp70zHNRdHtskl4cpnKf8q/nXhtnvawuQiqvGbPbw== dependencies: moment "^2.9.0" -"@abp/select2@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.1.0-rc.1.tgz#6beb1c5cfb5668b5cd51e4aa06388b30b3e7b250" - integrity sha512-1scGGpN2Zwu3FvctSEo/JThmO/6dgdiH8a067GZ9Wtz1fgy8/TCxHxywF/5yCfHxy0aljdYPUS1XyrhXHq6nfA== +"@abp/select2@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.1.0-rc.2.tgz#b13b6f6764affa24a30bff2c02443ad61141ddc8" + integrity sha512-pvGUp/wSanCI8vbyf8UxNnL3kfUCJet/lUREEtRFXZQFpyKVDIntcnz+qFFp0zChums7jiuIziwg/slM5R/kuw== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" select2 "^4.0.13" -"@abp/sweetalert2@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.1.0-rc.1.tgz#c2793eba4517ad767450535d77a793971215bc35" - integrity sha512-Dm9mHs9o2pkZxodNQ5R5L7Asm5ER1Cdi0oqB3ciBAj8ro5yp4lTp/BdnoRZVxJXd9mu/BiNY/NzASSpvkbR1og== +"@abp/sweetalert2@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.1.0-rc.2.tgz#bed9314d47634d3532b0dd32e4e2cd8b77539eb5" + integrity sha512-pq1D/kWH0TSYd8hYWiDulSFcSkUHC5i+0alecwyGUDdWzIPoAPmPjA7HxABKwxlLnnciUGed/mEJngfIPp+OYw== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" sweetalert2 "^11.3.6" -"@abp/timeago@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.1.0-rc.1.tgz#0ce17676ce01c07c40da7a8748a5e7cf5166a001" - integrity sha512-cZqlgA1LLYfBAwrxOhYiH+mcaQqxj3RAXx4q5tGpOOwJGqOr22bMZP7i6ODEro6KPmWc1UpknV6zWESJlBySMQ== +"@abp/timeago@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.1.0-rc.2.tgz#9911bdb81001189f30eb7a68fe345e0a692109b2" + integrity sha512-mlCosUBw+n9A6+gXZ2PL2iS/lLMAI2zx7sXFUuV829rtWq54YOkivj/uTOxGHNwNhE4KbW39NqkKK+IJdl/6kQ== dependencies: - "@abp/jquery" "~8.1.0-rc.1" + "@abp/jquery" "~8.1.0-rc.2" timeago "^1.6.7" -"@abp/toastr@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.1.0-rc.1.tgz#8d863f34b9211096d35872a501780fe5bbe3b164" - integrity sha512-U2sf5ZXHBkwOUxhwg8lk4hiMvs2rTb5Rm7elenUIm8r6tc17mkTTPZQ/qVVDSgtQDaD+DmodhSXBYBD2M/QrCg== +"@abp/toastr@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.1.0-rc.2.tgz#8e09730d7149eadb7a9e4fe8c447022d7647b1d7" + integrity sha512-b4bMxJ5aVSBedhq/fPaR5ayPvZMPmK/gbE6zb03+SF22YV6lQW9RDQV1bgnl/T3YLLXYIsrwPpgi67rPo8cZzQ== dependencies: - "@abp/jquery" "~8.1.0-rc.1" + "@abp/jquery" "~8.1.0-rc.2" toastr "^2.1.4" -"@abp/utils@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.1.0-rc.1.tgz#dafb48ba1b1f885ae96eca27241bd96d65132488" - integrity sha512-nZYWdQqAFVL4XkWcXYuUUXDkTJOZH38Sz0RHMbS/0seCVsjz88nCWRhgDb3Taduo79WZVNhS+rYhPW6KVR659g== +"@abp/utils@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.1.0-rc.2.tgz#1fa7eae2578c82a75a1e4147796f95dbe0367e2f" + integrity sha512-+IcoeTAAReepH8jCcN6cRTb9AP3suzZMtWt65luCWODqFuYk7otCYDyGGwUBMA+nlmXjyWhotMfVkdBgidWpWw== dependencies: just-compare "^2.3.0" diff --git a/modules/cms-kit/angular/package.json b/modules/cms-kit/angular/package.json index d5c3ec6595..45a8012e8f 100644 --- a/modules/cms-kit/angular/package.json +++ b/modules/cms-kit/angular/package.json @@ -15,11 +15,11 @@ }, "private": true, "dependencies": { - "@abp/ng.account": "~8.1.0-rc.1", - "@abp/ng.identity": "~8.1.0-rc.1", - "@abp/ng.setting-management": "~8.1.0-rc.1", - "@abp/ng.tenant-management": "~8.1.0-rc.1", - "@abp/ng.theme.basic": "~8.1.0-rc.1", + "@abp/ng.account": "~8.1.0-rc.2", + "@abp/ng.identity": "~8.1.0-rc.2", + "@abp/ng.setting-management": "~8.1.0-rc.2", + "@abp/ng.tenant-management": "~8.1.0-rc.2", + "@abp/ng.theme.basic": "~8.1.0-rc.2", "@angular/animations": "~10.0.0", "@angular/common": "~10.0.0", "@angular/compiler": "~10.0.0", diff --git a/modules/cms-kit/angular/projects/cms-kit/package.json b/modules/cms-kit/angular/projects/cms-kit/package.json index 67c9b292d9..c2d6106bd3 100644 --- a/modules/cms-kit/angular/projects/cms-kit/package.json +++ b/modules/cms-kit/angular/projects/cms-kit/package.json @@ -4,8 +4,8 @@ "peerDependencies": { "@angular/common": "^9.1.11", "@angular/core": "^9.1.11", - "@abp/ng.core": ">=8.1.0-rc.1", - "@abp/ng.theme.shared": ">=8.1.0-rc.1" + "@abp/ng.core": ">=8.1.0-rc.2", + "@abp/ng.theme.shared": ">=8.1.0-rc.2" }, "dependencies": { "tslib": "^2.0.0" diff --git a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json index 2d7edd5857..94639a6a9f 100644 --- a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json +++ b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json @@ -3,6 +3,6 @@ "name": "my-app-identityserver", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "~8.1.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "~8.1.0-rc.2" } } diff --git a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/wwwroot/libs/malihu-custom-scrollbar-plugin/mCSB_buttons.png b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/wwwroot/libs/malihu-custom-scrollbar-plugin/mCSB_buttons.png index 985a9b8b5a..74424318a4 100644 Binary files a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/wwwroot/libs/malihu-custom-scrollbar-plugin/mCSB_buttons.png and b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/wwwroot/libs/malihu-custom-scrollbar-plugin/mCSB_buttons.png differ diff --git a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock index 4f7c6e7715..3bdc5eb52d 100644 --- a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock +++ b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock @@ -2,39 +2,39 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.1.0-rc.1.tgz#5f1503a4526817ec7471a08f29cd82a0bedce2e2" - integrity sha512-NCM8JrgCALz7k4JIm3O2H+pCE9slL6V4ntXC3lA7ReA6hLFEWvP1EBIBCXlHLN2qccqh9+pLN+Ow7/LUt+Ph9g== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~8.1.0-rc.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.1.0-rc.1.tgz#dee786935b41c83250cde627ee8211afd42608f0" - integrity sha512-6sUYndKpAyXF8AVlDm+fXusE9IifrO9yP/Wmt82caSLCtx+rjqiPMcewkQkbOGPNi8+B7H+lgF9azEUjifsKVA== - dependencies: - "@abp/aspnetcore.mvc.ui" "~8.1.0-rc.1" - "@abp/bootstrap" "~8.1.0-rc.1" - "@abp/bootstrap-datepicker" "~8.1.0-rc.1" - "@abp/bootstrap-daterangepicker" "~8.1.0-rc.1" - "@abp/datatables.net-bs5" "~8.1.0-rc.1" - "@abp/font-awesome" "~8.1.0-rc.1" - "@abp/jquery-form" "~8.1.0-rc.1" - "@abp/jquery-validation-unobtrusive" "~8.1.0-rc.1" - "@abp/lodash" "~8.1.0-rc.1" - "@abp/luxon" "~8.1.0-rc.1" - "@abp/malihu-custom-scrollbar-plugin" "~8.1.0-rc.1" - "@abp/moment" "~8.1.0-rc.1" - "@abp/select2" "~8.1.0-rc.1" - "@abp/sweetalert2" "~8.1.0-rc.1" - "@abp/timeago" "~8.1.0-rc.1" - "@abp/toastr" "~8.1.0-rc.1" - -"@abp/aspnetcore.mvc.ui@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.1.0-rc.1.tgz#8b5f31f9d5580c511ad47cedee81752e7eda9ecf" - integrity sha512-161Z4zuZkl81mTiZieOI4g9r1AptsrZyrgaUBNOwVyBrAA2reWGRAtDjGi5UASQks+Na/8Vle48swKxT/lNdhQ== +"@abp/aspnetcore.mvc.ui.theme.basic@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.1.0-rc.2.tgz#d3f61ae2a096d14984a7d6c962360c119f56ac18" + integrity sha512-Y1ueZ8P1VsRo6i+PwfHaAI1yVBkZvQ+3hXB5ishRqF/qCbZIk3l6zZ/7Y85z5cobwp1kfTFEAD4qWrrLb4EBVA== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~8.1.0-rc.2" + +"@abp/aspnetcore.mvc.ui.theme.shared@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.1.0-rc.2.tgz#a298f276a110901bf754429a2597e37abf0f779c" + integrity sha512-+rTR6umuWicvvC0Tp8TA+QcB0yJ4S9a6nyvH753AyIFSsszr+soyRoav44WOkkK4IoaoT6GhCI+VtznAssLjlA== + dependencies: + "@abp/aspnetcore.mvc.ui" "~8.1.0-rc.2" + "@abp/bootstrap" "~8.1.0-rc.2" + "@abp/bootstrap-datepicker" "~8.1.0-rc.2" + "@abp/bootstrap-daterangepicker" "~8.1.0-rc.2" + "@abp/datatables.net-bs5" "~8.1.0-rc.2" + "@abp/font-awesome" "~8.1.0-rc.2" + "@abp/jquery-form" "~8.1.0-rc.2" + "@abp/jquery-validation-unobtrusive" "~8.1.0-rc.2" + "@abp/lodash" "~8.1.0-rc.2" + "@abp/luxon" "~8.1.0-rc.2" + "@abp/malihu-custom-scrollbar-plugin" "~8.1.0-rc.2" + "@abp/moment" "~8.1.0-rc.2" + "@abp/select2" "~8.1.0-rc.2" + "@abp/sweetalert2" "~8.1.0-rc.2" + "@abp/timeago" "~8.1.0-rc.2" + "@abp/toastr" "~8.1.0-rc.2" + +"@abp/aspnetcore.mvc.ui@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.1.0-rc.2.tgz#384433d9f1e54e23633d16916ba9615e42e8b4e5" + integrity sha512-6Myb/cKviQxFcKP96wOenYafnYrU5OfhnhvJGRReCaay9IyuCET/ENrPJx7MKunlR5KFoJdvqH0tL7W7SJdFLw== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -43,158 +43,158 @@ merge-stream "^2.0.0" micromatch "^4.0.2" -"@abp/bootstrap-datepicker@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.1.0-rc.1.tgz#bb7adc6e42aa94629b24ca2fa1464aae6138afbe" - integrity sha512-Gfa+I2TK1X1UisGNJhOTIK4eu/upgazeO9P1gOHryDe5JBhmdo6AKv1wEF/csVVXh52xGs+JtSiyhRt2sH36fA== +"@abp/bootstrap-datepicker@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.1.0-rc.2.tgz#adfb49acaf8952da57046520c9524994caf2938e" + integrity sha512-QUVh0DSPHH9PpZXS/MoYO+G4j8DGwHSyw/fF1y+oYVSH28csNnkq4i0fNVl1THwQDHZPZE6BN+WLB6UTy3HLYA== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap-daterangepicker@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.1.0-rc.1.tgz#ad3c54ebd8a6bcc4c39542c90c8391b06869e996" - integrity sha512-nl2eWyYB9ovQvAMQiLeTHG52fl9rLGLvINnG/ftwlIzGN62mDGkShnZVi6I1EJL2yS0OtMcGyfcmnt5d9n2JGg== +"@abp/bootstrap-daterangepicker@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.1.0-rc.2.tgz#d79017933d1329c7ee1812c38ea0aaad098b4e89" + integrity sha512-t5O+Ibo9dvI/KosagDg7z5U3l8il87DP//tn5dyJtbBrx+336T7p2jcn4E2/TbzQbwKhMbkERHrGo0bRUy/N9A== dependencies: bootstrap-daterangepicker "^3.1.0" -"@abp/bootstrap@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.1.0-rc.1.tgz#14c23314775af1d97564fbbb4c5c304c3a24b919" - integrity sha512-Ze9th6Fyhq8Vh2e3Tk/quN0kQw4k5VuMXvgd/WQoqwa8xlWcWt3q2m+xG8NUuvcj6+O0bcg2KO2nzkBl+oJtbg== +"@abp/bootstrap@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.1.0-rc.2.tgz#92b52790122acb9df9d73dfae8d5d0825051986c" + integrity sha512-p5+t5KGU8/hE5cKMbp9I3ZJLiPdZeNMSJJuccIjqGFaivU35bAOouAgWWZfdive66X3h5GgHipEkS3obQITprQ== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" bootstrap "^5.1.3" -"@abp/core@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.1.0-rc.1.tgz#ddb848c3400decfad6fa1c0877ed4c87f69bb125" - integrity sha512-uMSxjVWEBPer3evCx5LPSqvG4kMK5IHWryJOILvDLBxR7bszex18TpAMDP3WqALmBPY5rl3v+GQlcEkmh8iKkw== +"@abp/core@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.1.0-rc.2.tgz#78b6db67f7381d9fc26cd8a35e8e21f417a4bea9" + integrity sha512-5VK48/gCE+FSuWXHzUGh5MN3x2gEG9S2Av4Z83gDaHulF7fuaDu0J1KruPHIjpcpNGoko0lOcXNc80JvsYZsAg== dependencies: - "@abp/utils" "~8.1.0-rc.1" + "@abp/utils" "~8.1.0-rc.2" -"@abp/datatables.net-bs5@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.1.0-rc.1.tgz#4f316b0266665bfddc359d9bd08f5759cbe73610" - integrity sha512-FgdOSvakD87pVS4ECux1oamqh8zQ1t3ZzzErXajA2mORQ2AJH+ESTCPvUcuD99BQCcqbGkWhuzPFM5ADNApkNQ== +"@abp/datatables.net-bs5@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.1.0-rc.2.tgz#878e02bd414b27494891e6440f7bce4e5f3d2207" + integrity sha512-RMVf7jz/S0Oo6heRXTpmxx7FPybWA+Visj5MyCbQaSjcrog9VOFrQnlckTEwosU5jL6NWJ0JtIauuiUDxArQdg== dependencies: - "@abp/datatables.net" "~8.1.0-rc.1" + "@abp/datatables.net" "~8.1.0-rc.2" datatables.net-bs5 "^1.11.4" -"@abp/datatables.net@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.1.0-rc.1.tgz#f4a47ccec70a777d26158bbcd3b560dcf5f7f4bf" - integrity sha512-TBMVeaFRSp9DMhsOgr1UNXZXHL8g4P8/kezMu8wO4W78x3hr9hmQX+h0obCJBkMONbsswLSoc+JVwtLJmpn4QQ== +"@abp/datatables.net@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.1.0-rc.2.tgz#bb9f571f9da7e764f1d21377012d5275f663941e" + integrity sha512-6ukqd4+1FajCP/F0+pB1uiFdUJjPQex0pdl9qrAcWsqSRaO44SUsYThs/RvMJW6heblA8HsCaAW0DYFod0YMbQ== dependencies: - "@abp/jquery" "~8.1.0-rc.1" + "@abp/jquery" "~8.1.0-rc.2" datatables.net "^1.11.4" -"@abp/font-awesome@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.1.0-rc.1.tgz#c544207fd843f46aed124f18e972b6a02bca525c" - integrity sha512-jXGRODAjdsgqUhH0LtX5fniB+2XcHZ1uHs2BG3OyVC11C5OfLd613OIru2y8lrVI9PwGjU9QzkfrWD88eSWUQA== +"@abp/font-awesome@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.1.0-rc.2.tgz#c0af9c2772a78ee7276ccd9aac2f3a361f88848e" + integrity sha512-ick6hyY/oCaIEDdferjI7qAckZUE8lyN1K7EUf8xO8u9lxdK89wCVCEVwZaEDUQth+JQXfiGKkgrH0EdFa9pOQ== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" "@fortawesome/fontawesome-free" "^6.5.1" -"@abp/jquery-form@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.1.0-rc.1.tgz#879772d1ddd3d76f738411d2121f3ca58b9380b1" - integrity sha512-olM3pRzcGq9fNwyI/m+V9AGOcOa2rjSQHPD2uqS3gqNQtNBCRA27Rt7Uarnwy5Aha7obtB3cVANZjcWHyubEQg== +"@abp/jquery-form@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.1.0-rc.2.tgz#00fb51f14e9ddc3e3824082edfc48593a52ee61e" + integrity sha512-8T1SpscYXQ7S+kdtV6esZnncyYAG82LZkM1igfS++nqDIYELSDp1c7DoRMZoEFxwdHfbavzRkGq9BAlBBDyVxQ== dependencies: - "@abp/jquery" "~8.1.0-rc.1" + "@abp/jquery" "~8.1.0-rc.2" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.1.0-rc.1.tgz#0cc63ff8bb8f995e55ded83996d5f10e3ff4ab13" - integrity sha512-PBDD9fkNzVTync4qHPwwavB7R09Z3yis9rGqF0QGHRcIVwfHU3C66gItpVN5xdmNNko/ynlB81qZjIIyqtkiIw== +"@abp/jquery-validation-unobtrusive@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.1.0-rc.2.tgz#74b8d99989cb337725f258f370b8c68fbb882372" + integrity sha512-wwJvMfdiIELJtabZqGUarEc3FJNthK8PGAAeuVzygfjcV0yVlGpAB4aHOOVhyvTsuZ3BxwifGOg7550FIwJ79g== dependencies: - "@abp/jquery-validation" "~8.1.0-rc.1" + "@abp/jquery-validation" "~8.1.0-rc.2" jquery-validation-unobtrusive "^3.2.12" -"@abp/jquery-validation@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.1.0-rc.1.tgz#0006cda24b89534bacd6bb27aef0741f776d4a5f" - integrity sha512-iKbV1uzvJWYOk5xvNPP9zliQJWH5nMKnnKUlV/5VA0NO2PVsFOdG8FvNHE1APvccqKKMoau5NJ2+8/tq/pf88Q== +"@abp/jquery-validation@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.1.0-rc.2.tgz#3ec6e150fe7ace940f3e63f7696cd06014ce06e7" + integrity sha512-pREGhrtU245nACpmOCuyHBkqH/OAzehsBVRj6SyGlA4ScEgQG6Zya1hBAe4BL33bPeWuSCkUZM+lrSDSzexSjA== dependencies: - "@abp/jquery" "~8.1.0-rc.1" + "@abp/jquery" "~8.1.0-rc.2" jquery-validation "^1.19.3" -"@abp/jquery@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.1.0-rc.1.tgz#089847bedd38f0d91bdb57ac7520b8159685db50" - integrity sha512-Amc2/mS8YJU06NW/W0AFCPpvDFweFSkKHcEuhXtrGEdnRWUeNm3TLc80vA88aILpztX2+wdp9QiYomx7QDtkzg== +"@abp/jquery@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.1.0-rc.2.tgz#7d2df898cb7911842915860bae196d174519375a" + integrity sha512-Fe8S3jHS1KDL6EGo2dURdkO7XsZFggB5XQa82DNMJs7njK5qATCxAXiNExSQ5/EbSu0Y/reaC4BGC51OMYe14w== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" jquery "~3.6.0" -"@abp/lodash@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.1.0-rc.1.tgz#1ba04f8eaba8d8878d2ac6f5cfae94cf12f90f4b" - integrity sha512-xIHVLTIdObUx9mX+BkJNJuZePVhgH8v8mlbQAjCajbHvoVtDNb16in8xqsQM+gHfdmhUb7iA95HdhZGhMCM4pw== +"@abp/lodash@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.1.0-rc.2.tgz#37fd0296bc5666699541ed8fb158e60b9137af09" + integrity sha512-2t0UUztGT3x3fET+dmHmN/QYmjkz7MpSi8mK2pLbjlCkAoOSmd+Zv9kgWxwxtE9y9ltu3EHYD15BvPL+fd+srQ== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" lodash "^4.17.21" -"@abp/luxon@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.1.0-rc.1.tgz#0cfd66c5c16df5d0ad9c4bfc48648b24a969c892" - integrity sha512-/aYZ0aaCKZUYuc2weAVjcFfPJMpOGECZoJ/2VDemLpixA+iJisgyZPT0GosLHir2HMPPaXkmlXXqvIaLrUNEZg== +"@abp/luxon@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.1.0-rc.2.tgz#80ea50dd41997fe41578a3d6d7bab2dd14fd60d5" + integrity sha512-hsrna+XTGdWBHflnTCsT1uWYWdWyrEHom2eyi1AhqcFmaMccwTS3+u6e5zsNTuuqpoCF9GU3ZxQ5Q1VPDaxxiw== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" luxon "^2.3.0" -"@abp/malihu-custom-scrollbar-plugin@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.1.0-rc.1.tgz#3b9a7be7c067ebd08112d768f4901023e3f58180" - integrity sha512-Sr14jXu03SkJUegs2Rk17+opLnUJ4GC0rPN+Ruf4NxLr2nXneecq3/E6D/LGC5NVjaMgGXWXtKVczUq9rBf6ow== +"@abp/malihu-custom-scrollbar-plugin@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.1.0-rc.2.tgz#11968069de66efc3a5b2eb79ade4d38fa92ef83e" + integrity sha512-REmQaHSc1GCWwMlWb1XLOgvCmPfvVkMAPg02GOrDYSB3+w9RKZGhkWbAUNlDYehMJin3FgY7kBophZNPi4Ae2A== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/moment@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.1.0-rc.1.tgz#770167bd2fc6ec89a47e2c9b3c1088cad87469c3" - integrity sha512-TKaZWD7d+5DtGqiQbrmiybvidqZzHx3wAPzrH7S4I0g+VH+SGTdaNlII+/ZZhqIpadW07G1SJnnI1EY6aU9msg== +"@abp/moment@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.1.0-rc.2.tgz#73751afb93313e56ecaac7ebb785809d6e26010d" + integrity sha512-JOMS6AbPMVKJP5yQs5aagaT1q/UjlM041YsIN3xKIBX5QFp70zHNRdHtskl4cpnKf8q/nXhtnvawuQiqvGbPbw== dependencies: moment "^2.9.0" -"@abp/select2@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.1.0-rc.1.tgz#6beb1c5cfb5668b5cd51e4aa06388b30b3e7b250" - integrity sha512-1scGGpN2Zwu3FvctSEo/JThmO/6dgdiH8a067GZ9Wtz1fgy8/TCxHxywF/5yCfHxy0aljdYPUS1XyrhXHq6nfA== +"@abp/select2@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.1.0-rc.2.tgz#b13b6f6764affa24a30bff2c02443ad61141ddc8" + integrity sha512-pvGUp/wSanCI8vbyf8UxNnL3kfUCJet/lUREEtRFXZQFpyKVDIntcnz+qFFp0zChums7jiuIziwg/slM5R/kuw== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" select2 "^4.0.13" -"@abp/sweetalert2@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.1.0-rc.1.tgz#c2793eba4517ad767450535d77a793971215bc35" - integrity sha512-Dm9mHs9o2pkZxodNQ5R5L7Asm5ER1Cdi0oqB3ciBAj8ro5yp4lTp/BdnoRZVxJXd9mu/BiNY/NzASSpvkbR1og== +"@abp/sweetalert2@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.1.0-rc.2.tgz#bed9314d47634d3532b0dd32e4e2cd8b77539eb5" + integrity sha512-pq1D/kWH0TSYd8hYWiDulSFcSkUHC5i+0alecwyGUDdWzIPoAPmPjA7HxABKwxlLnnciUGed/mEJngfIPp+OYw== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" sweetalert2 "^11.3.6" -"@abp/timeago@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.1.0-rc.1.tgz#0ce17676ce01c07c40da7a8748a5e7cf5166a001" - integrity sha512-cZqlgA1LLYfBAwrxOhYiH+mcaQqxj3RAXx4q5tGpOOwJGqOr22bMZP7i6ODEro6KPmWc1UpknV6zWESJlBySMQ== +"@abp/timeago@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.1.0-rc.2.tgz#9911bdb81001189f30eb7a68fe345e0a692109b2" + integrity sha512-mlCosUBw+n9A6+gXZ2PL2iS/lLMAI2zx7sXFUuV829rtWq54YOkivj/uTOxGHNwNhE4KbW39NqkKK+IJdl/6kQ== dependencies: - "@abp/jquery" "~8.1.0-rc.1" + "@abp/jquery" "~8.1.0-rc.2" timeago "^1.6.7" -"@abp/toastr@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.1.0-rc.1.tgz#8d863f34b9211096d35872a501780fe5bbe3b164" - integrity sha512-U2sf5ZXHBkwOUxhwg8lk4hiMvs2rTb5Rm7elenUIm8r6tc17mkTTPZQ/qVVDSgtQDaD+DmodhSXBYBD2M/QrCg== +"@abp/toastr@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.1.0-rc.2.tgz#8e09730d7149eadb7a9e4fe8c447022d7647b1d7" + integrity sha512-b4bMxJ5aVSBedhq/fPaR5ayPvZMPmK/gbE6zb03+SF22YV6lQW9RDQV1bgnl/T3YLLXYIsrwPpgi67rPo8cZzQ== dependencies: - "@abp/jquery" "~8.1.0-rc.1" + "@abp/jquery" "~8.1.0-rc.2" toastr "^2.1.4" -"@abp/utils@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.1.0-rc.1.tgz#dafb48ba1b1f885ae96eca27241bd96d65132488" - integrity sha512-nZYWdQqAFVL4XkWcXYuUUXDkTJOZH38Sz0RHMbS/0seCVsjz88nCWRhgDb3Taduo79WZVNhS+rYhPW6KVR659g== +"@abp/utils@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.1.0-rc.2.tgz#1fa7eae2578c82a75a1e4147796f95dbe0367e2f" + integrity sha512-+IcoeTAAReepH8jCcN6cRTb9AP3suzZMtWt65luCWODqFuYk7otCYDyGGwUBMA+nlmXjyWhotMfVkdBgidWpWw== dependencies: just-compare "^2.3.0" diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Host/package.json b/modules/cms-kit/host/Volo.CmsKit.Web.Host/package.json index 93ef466224..aaf79a8f9b 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Host/package.json +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Host/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "~8.1.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "~8.1.0-rc.2" } } diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Host/wwwroot/libs/malihu-custom-scrollbar-plugin/mCSB_buttons.png b/modules/cms-kit/host/Volo.CmsKit.Web.Host/wwwroot/libs/malihu-custom-scrollbar-plugin/mCSB_buttons.png index 985a9b8b5a..74424318a4 100644 Binary files a/modules/cms-kit/host/Volo.CmsKit.Web.Host/wwwroot/libs/malihu-custom-scrollbar-plugin/mCSB_buttons.png and b/modules/cms-kit/host/Volo.CmsKit.Web.Host/wwwroot/libs/malihu-custom-scrollbar-plugin/mCSB_buttons.png differ diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock b/modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock index 4f7c6e7715..3bdc5eb52d 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock @@ -2,39 +2,39 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.1.0-rc.1.tgz#5f1503a4526817ec7471a08f29cd82a0bedce2e2" - integrity sha512-NCM8JrgCALz7k4JIm3O2H+pCE9slL6V4ntXC3lA7ReA6hLFEWvP1EBIBCXlHLN2qccqh9+pLN+Ow7/LUt+Ph9g== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~8.1.0-rc.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.1.0-rc.1.tgz#dee786935b41c83250cde627ee8211afd42608f0" - integrity sha512-6sUYndKpAyXF8AVlDm+fXusE9IifrO9yP/Wmt82caSLCtx+rjqiPMcewkQkbOGPNi8+B7H+lgF9azEUjifsKVA== - dependencies: - "@abp/aspnetcore.mvc.ui" "~8.1.0-rc.1" - "@abp/bootstrap" "~8.1.0-rc.1" - "@abp/bootstrap-datepicker" "~8.1.0-rc.1" - "@abp/bootstrap-daterangepicker" "~8.1.0-rc.1" - "@abp/datatables.net-bs5" "~8.1.0-rc.1" - "@abp/font-awesome" "~8.1.0-rc.1" - "@abp/jquery-form" "~8.1.0-rc.1" - "@abp/jquery-validation-unobtrusive" "~8.1.0-rc.1" - "@abp/lodash" "~8.1.0-rc.1" - "@abp/luxon" "~8.1.0-rc.1" - "@abp/malihu-custom-scrollbar-plugin" "~8.1.0-rc.1" - "@abp/moment" "~8.1.0-rc.1" - "@abp/select2" "~8.1.0-rc.1" - "@abp/sweetalert2" "~8.1.0-rc.1" - "@abp/timeago" "~8.1.0-rc.1" - "@abp/toastr" "~8.1.0-rc.1" - -"@abp/aspnetcore.mvc.ui@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.1.0-rc.1.tgz#8b5f31f9d5580c511ad47cedee81752e7eda9ecf" - integrity sha512-161Z4zuZkl81mTiZieOI4g9r1AptsrZyrgaUBNOwVyBrAA2reWGRAtDjGi5UASQks+Na/8Vle48swKxT/lNdhQ== +"@abp/aspnetcore.mvc.ui.theme.basic@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.1.0-rc.2.tgz#d3f61ae2a096d14984a7d6c962360c119f56ac18" + integrity sha512-Y1ueZ8P1VsRo6i+PwfHaAI1yVBkZvQ+3hXB5ishRqF/qCbZIk3l6zZ/7Y85z5cobwp1kfTFEAD4qWrrLb4EBVA== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~8.1.0-rc.2" + +"@abp/aspnetcore.mvc.ui.theme.shared@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.1.0-rc.2.tgz#a298f276a110901bf754429a2597e37abf0f779c" + integrity sha512-+rTR6umuWicvvC0Tp8TA+QcB0yJ4S9a6nyvH753AyIFSsszr+soyRoav44WOkkK4IoaoT6GhCI+VtznAssLjlA== + dependencies: + "@abp/aspnetcore.mvc.ui" "~8.1.0-rc.2" + "@abp/bootstrap" "~8.1.0-rc.2" + "@abp/bootstrap-datepicker" "~8.1.0-rc.2" + "@abp/bootstrap-daterangepicker" "~8.1.0-rc.2" + "@abp/datatables.net-bs5" "~8.1.0-rc.2" + "@abp/font-awesome" "~8.1.0-rc.2" + "@abp/jquery-form" "~8.1.0-rc.2" + "@abp/jquery-validation-unobtrusive" "~8.1.0-rc.2" + "@abp/lodash" "~8.1.0-rc.2" + "@abp/luxon" "~8.1.0-rc.2" + "@abp/malihu-custom-scrollbar-plugin" "~8.1.0-rc.2" + "@abp/moment" "~8.1.0-rc.2" + "@abp/select2" "~8.1.0-rc.2" + "@abp/sweetalert2" "~8.1.0-rc.2" + "@abp/timeago" "~8.1.0-rc.2" + "@abp/toastr" "~8.1.0-rc.2" + +"@abp/aspnetcore.mvc.ui@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.1.0-rc.2.tgz#384433d9f1e54e23633d16916ba9615e42e8b4e5" + integrity sha512-6Myb/cKviQxFcKP96wOenYafnYrU5OfhnhvJGRReCaay9IyuCET/ENrPJx7MKunlR5KFoJdvqH0tL7W7SJdFLw== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -43,158 +43,158 @@ merge-stream "^2.0.0" micromatch "^4.0.2" -"@abp/bootstrap-datepicker@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.1.0-rc.1.tgz#bb7adc6e42aa94629b24ca2fa1464aae6138afbe" - integrity sha512-Gfa+I2TK1X1UisGNJhOTIK4eu/upgazeO9P1gOHryDe5JBhmdo6AKv1wEF/csVVXh52xGs+JtSiyhRt2sH36fA== +"@abp/bootstrap-datepicker@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.1.0-rc.2.tgz#adfb49acaf8952da57046520c9524994caf2938e" + integrity sha512-QUVh0DSPHH9PpZXS/MoYO+G4j8DGwHSyw/fF1y+oYVSH28csNnkq4i0fNVl1THwQDHZPZE6BN+WLB6UTy3HLYA== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap-daterangepicker@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.1.0-rc.1.tgz#ad3c54ebd8a6bcc4c39542c90c8391b06869e996" - integrity sha512-nl2eWyYB9ovQvAMQiLeTHG52fl9rLGLvINnG/ftwlIzGN62mDGkShnZVi6I1EJL2yS0OtMcGyfcmnt5d9n2JGg== +"@abp/bootstrap-daterangepicker@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.1.0-rc.2.tgz#d79017933d1329c7ee1812c38ea0aaad098b4e89" + integrity sha512-t5O+Ibo9dvI/KosagDg7z5U3l8il87DP//tn5dyJtbBrx+336T7p2jcn4E2/TbzQbwKhMbkERHrGo0bRUy/N9A== dependencies: bootstrap-daterangepicker "^3.1.0" -"@abp/bootstrap@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.1.0-rc.1.tgz#14c23314775af1d97564fbbb4c5c304c3a24b919" - integrity sha512-Ze9th6Fyhq8Vh2e3Tk/quN0kQw4k5VuMXvgd/WQoqwa8xlWcWt3q2m+xG8NUuvcj6+O0bcg2KO2nzkBl+oJtbg== +"@abp/bootstrap@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.1.0-rc.2.tgz#92b52790122acb9df9d73dfae8d5d0825051986c" + integrity sha512-p5+t5KGU8/hE5cKMbp9I3ZJLiPdZeNMSJJuccIjqGFaivU35bAOouAgWWZfdive66X3h5GgHipEkS3obQITprQ== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" bootstrap "^5.1.3" -"@abp/core@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.1.0-rc.1.tgz#ddb848c3400decfad6fa1c0877ed4c87f69bb125" - integrity sha512-uMSxjVWEBPer3evCx5LPSqvG4kMK5IHWryJOILvDLBxR7bszex18TpAMDP3WqALmBPY5rl3v+GQlcEkmh8iKkw== +"@abp/core@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.1.0-rc.2.tgz#78b6db67f7381d9fc26cd8a35e8e21f417a4bea9" + integrity sha512-5VK48/gCE+FSuWXHzUGh5MN3x2gEG9S2Av4Z83gDaHulF7fuaDu0J1KruPHIjpcpNGoko0lOcXNc80JvsYZsAg== dependencies: - "@abp/utils" "~8.1.0-rc.1" + "@abp/utils" "~8.1.0-rc.2" -"@abp/datatables.net-bs5@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.1.0-rc.1.tgz#4f316b0266665bfddc359d9bd08f5759cbe73610" - integrity sha512-FgdOSvakD87pVS4ECux1oamqh8zQ1t3ZzzErXajA2mORQ2AJH+ESTCPvUcuD99BQCcqbGkWhuzPFM5ADNApkNQ== +"@abp/datatables.net-bs5@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.1.0-rc.2.tgz#878e02bd414b27494891e6440f7bce4e5f3d2207" + integrity sha512-RMVf7jz/S0Oo6heRXTpmxx7FPybWA+Visj5MyCbQaSjcrog9VOFrQnlckTEwosU5jL6NWJ0JtIauuiUDxArQdg== dependencies: - "@abp/datatables.net" "~8.1.0-rc.1" + "@abp/datatables.net" "~8.1.0-rc.2" datatables.net-bs5 "^1.11.4" -"@abp/datatables.net@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.1.0-rc.1.tgz#f4a47ccec70a777d26158bbcd3b560dcf5f7f4bf" - integrity sha512-TBMVeaFRSp9DMhsOgr1UNXZXHL8g4P8/kezMu8wO4W78x3hr9hmQX+h0obCJBkMONbsswLSoc+JVwtLJmpn4QQ== +"@abp/datatables.net@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.1.0-rc.2.tgz#bb9f571f9da7e764f1d21377012d5275f663941e" + integrity sha512-6ukqd4+1FajCP/F0+pB1uiFdUJjPQex0pdl9qrAcWsqSRaO44SUsYThs/RvMJW6heblA8HsCaAW0DYFod0YMbQ== dependencies: - "@abp/jquery" "~8.1.0-rc.1" + "@abp/jquery" "~8.1.0-rc.2" datatables.net "^1.11.4" -"@abp/font-awesome@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.1.0-rc.1.tgz#c544207fd843f46aed124f18e972b6a02bca525c" - integrity sha512-jXGRODAjdsgqUhH0LtX5fniB+2XcHZ1uHs2BG3OyVC11C5OfLd613OIru2y8lrVI9PwGjU9QzkfrWD88eSWUQA== +"@abp/font-awesome@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.1.0-rc.2.tgz#c0af9c2772a78ee7276ccd9aac2f3a361f88848e" + integrity sha512-ick6hyY/oCaIEDdferjI7qAckZUE8lyN1K7EUf8xO8u9lxdK89wCVCEVwZaEDUQth+JQXfiGKkgrH0EdFa9pOQ== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" "@fortawesome/fontawesome-free" "^6.5.1" -"@abp/jquery-form@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.1.0-rc.1.tgz#879772d1ddd3d76f738411d2121f3ca58b9380b1" - integrity sha512-olM3pRzcGq9fNwyI/m+V9AGOcOa2rjSQHPD2uqS3gqNQtNBCRA27Rt7Uarnwy5Aha7obtB3cVANZjcWHyubEQg== +"@abp/jquery-form@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.1.0-rc.2.tgz#00fb51f14e9ddc3e3824082edfc48593a52ee61e" + integrity sha512-8T1SpscYXQ7S+kdtV6esZnncyYAG82LZkM1igfS++nqDIYELSDp1c7DoRMZoEFxwdHfbavzRkGq9BAlBBDyVxQ== dependencies: - "@abp/jquery" "~8.1.0-rc.1" + "@abp/jquery" "~8.1.0-rc.2" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.1.0-rc.1.tgz#0cc63ff8bb8f995e55ded83996d5f10e3ff4ab13" - integrity sha512-PBDD9fkNzVTync4qHPwwavB7R09Z3yis9rGqF0QGHRcIVwfHU3C66gItpVN5xdmNNko/ynlB81qZjIIyqtkiIw== +"@abp/jquery-validation-unobtrusive@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.1.0-rc.2.tgz#74b8d99989cb337725f258f370b8c68fbb882372" + integrity sha512-wwJvMfdiIELJtabZqGUarEc3FJNthK8PGAAeuVzygfjcV0yVlGpAB4aHOOVhyvTsuZ3BxwifGOg7550FIwJ79g== dependencies: - "@abp/jquery-validation" "~8.1.0-rc.1" + "@abp/jquery-validation" "~8.1.0-rc.2" jquery-validation-unobtrusive "^3.2.12" -"@abp/jquery-validation@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.1.0-rc.1.tgz#0006cda24b89534bacd6bb27aef0741f776d4a5f" - integrity sha512-iKbV1uzvJWYOk5xvNPP9zliQJWH5nMKnnKUlV/5VA0NO2PVsFOdG8FvNHE1APvccqKKMoau5NJ2+8/tq/pf88Q== +"@abp/jquery-validation@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.1.0-rc.2.tgz#3ec6e150fe7ace940f3e63f7696cd06014ce06e7" + integrity sha512-pREGhrtU245nACpmOCuyHBkqH/OAzehsBVRj6SyGlA4ScEgQG6Zya1hBAe4BL33bPeWuSCkUZM+lrSDSzexSjA== dependencies: - "@abp/jquery" "~8.1.0-rc.1" + "@abp/jquery" "~8.1.0-rc.2" jquery-validation "^1.19.3" -"@abp/jquery@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.1.0-rc.1.tgz#089847bedd38f0d91bdb57ac7520b8159685db50" - integrity sha512-Amc2/mS8YJU06NW/W0AFCPpvDFweFSkKHcEuhXtrGEdnRWUeNm3TLc80vA88aILpztX2+wdp9QiYomx7QDtkzg== +"@abp/jquery@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.1.0-rc.2.tgz#7d2df898cb7911842915860bae196d174519375a" + integrity sha512-Fe8S3jHS1KDL6EGo2dURdkO7XsZFggB5XQa82DNMJs7njK5qATCxAXiNExSQ5/EbSu0Y/reaC4BGC51OMYe14w== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" jquery "~3.6.0" -"@abp/lodash@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.1.0-rc.1.tgz#1ba04f8eaba8d8878d2ac6f5cfae94cf12f90f4b" - integrity sha512-xIHVLTIdObUx9mX+BkJNJuZePVhgH8v8mlbQAjCajbHvoVtDNb16in8xqsQM+gHfdmhUb7iA95HdhZGhMCM4pw== +"@abp/lodash@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.1.0-rc.2.tgz#37fd0296bc5666699541ed8fb158e60b9137af09" + integrity sha512-2t0UUztGT3x3fET+dmHmN/QYmjkz7MpSi8mK2pLbjlCkAoOSmd+Zv9kgWxwxtE9y9ltu3EHYD15BvPL+fd+srQ== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" lodash "^4.17.21" -"@abp/luxon@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.1.0-rc.1.tgz#0cfd66c5c16df5d0ad9c4bfc48648b24a969c892" - integrity sha512-/aYZ0aaCKZUYuc2weAVjcFfPJMpOGECZoJ/2VDemLpixA+iJisgyZPT0GosLHir2HMPPaXkmlXXqvIaLrUNEZg== +"@abp/luxon@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.1.0-rc.2.tgz#80ea50dd41997fe41578a3d6d7bab2dd14fd60d5" + integrity sha512-hsrna+XTGdWBHflnTCsT1uWYWdWyrEHom2eyi1AhqcFmaMccwTS3+u6e5zsNTuuqpoCF9GU3ZxQ5Q1VPDaxxiw== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" luxon "^2.3.0" -"@abp/malihu-custom-scrollbar-plugin@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.1.0-rc.1.tgz#3b9a7be7c067ebd08112d768f4901023e3f58180" - integrity sha512-Sr14jXu03SkJUegs2Rk17+opLnUJ4GC0rPN+Ruf4NxLr2nXneecq3/E6D/LGC5NVjaMgGXWXtKVczUq9rBf6ow== +"@abp/malihu-custom-scrollbar-plugin@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.1.0-rc.2.tgz#11968069de66efc3a5b2eb79ade4d38fa92ef83e" + integrity sha512-REmQaHSc1GCWwMlWb1XLOgvCmPfvVkMAPg02GOrDYSB3+w9RKZGhkWbAUNlDYehMJin3FgY7kBophZNPi4Ae2A== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/moment@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.1.0-rc.1.tgz#770167bd2fc6ec89a47e2c9b3c1088cad87469c3" - integrity sha512-TKaZWD7d+5DtGqiQbrmiybvidqZzHx3wAPzrH7S4I0g+VH+SGTdaNlII+/ZZhqIpadW07G1SJnnI1EY6aU9msg== +"@abp/moment@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.1.0-rc.2.tgz#73751afb93313e56ecaac7ebb785809d6e26010d" + integrity sha512-JOMS6AbPMVKJP5yQs5aagaT1q/UjlM041YsIN3xKIBX5QFp70zHNRdHtskl4cpnKf8q/nXhtnvawuQiqvGbPbw== dependencies: moment "^2.9.0" -"@abp/select2@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.1.0-rc.1.tgz#6beb1c5cfb5668b5cd51e4aa06388b30b3e7b250" - integrity sha512-1scGGpN2Zwu3FvctSEo/JThmO/6dgdiH8a067GZ9Wtz1fgy8/TCxHxywF/5yCfHxy0aljdYPUS1XyrhXHq6nfA== +"@abp/select2@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.1.0-rc.2.tgz#b13b6f6764affa24a30bff2c02443ad61141ddc8" + integrity sha512-pvGUp/wSanCI8vbyf8UxNnL3kfUCJet/lUREEtRFXZQFpyKVDIntcnz+qFFp0zChums7jiuIziwg/slM5R/kuw== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" select2 "^4.0.13" -"@abp/sweetalert2@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.1.0-rc.1.tgz#c2793eba4517ad767450535d77a793971215bc35" - integrity sha512-Dm9mHs9o2pkZxodNQ5R5L7Asm5ER1Cdi0oqB3ciBAj8ro5yp4lTp/BdnoRZVxJXd9mu/BiNY/NzASSpvkbR1og== +"@abp/sweetalert2@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.1.0-rc.2.tgz#bed9314d47634d3532b0dd32e4e2cd8b77539eb5" + integrity sha512-pq1D/kWH0TSYd8hYWiDulSFcSkUHC5i+0alecwyGUDdWzIPoAPmPjA7HxABKwxlLnnciUGed/mEJngfIPp+OYw== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" sweetalert2 "^11.3.6" -"@abp/timeago@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.1.0-rc.1.tgz#0ce17676ce01c07c40da7a8748a5e7cf5166a001" - integrity sha512-cZqlgA1LLYfBAwrxOhYiH+mcaQqxj3RAXx4q5tGpOOwJGqOr22bMZP7i6ODEro6KPmWc1UpknV6zWESJlBySMQ== +"@abp/timeago@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.1.0-rc.2.tgz#9911bdb81001189f30eb7a68fe345e0a692109b2" + integrity sha512-mlCosUBw+n9A6+gXZ2PL2iS/lLMAI2zx7sXFUuV829rtWq54YOkivj/uTOxGHNwNhE4KbW39NqkKK+IJdl/6kQ== dependencies: - "@abp/jquery" "~8.1.0-rc.1" + "@abp/jquery" "~8.1.0-rc.2" timeago "^1.6.7" -"@abp/toastr@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.1.0-rc.1.tgz#8d863f34b9211096d35872a501780fe5bbe3b164" - integrity sha512-U2sf5ZXHBkwOUxhwg8lk4hiMvs2rTb5Rm7elenUIm8r6tc17mkTTPZQ/qVVDSgtQDaD+DmodhSXBYBD2M/QrCg== +"@abp/toastr@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.1.0-rc.2.tgz#8e09730d7149eadb7a9e4fe8c447022d7647b1d7" + integrity sha512-b4bMxJ5aVSBedhq/fPaR5ayPvZMPmK/gbE6zb03+SF22YV6lQW9RDQV1bgnl/T3YLLXYIsrwPpgi67rPo8cZzQ== dependencies: - "@abp/jquery" "~8.1.0-rc.1" + "@abp/jquery" "~8.1.0-rc.2" toastr "^2.1.4" -"@abp/utils@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.1.0-rc.1.tgz#dafb48ba1b1f885ae96eca27241bd96d65132488" - integrity sha512-nZYWdQqAFVL4XkWcXYuUUXDkTJOZH38Sz0RHMbS/0seCVsjz88nCWRhgDb3Taduo79WZVNhS+rYhPW6KVR659g== +"@abp/utils@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.1.0-rc.2.tgz#1fa7eae2578c82a75a1e4147796f95dbe0367e2f" + integrity sha512-+IcoeTAAReepH8jCcN6cRTb9AP3suzZMtWt65luCWODqFuYk7otCYDyGGwUBMA+nlmXjyWhotMfVkdBgidWpWw== dependencies: just-compare "^2.3.0" diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json index 617fe6a6ba..816cf2a344 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json @@ -3,7 +3,7 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "~8.1.0-rc.1", - "@abp/cms-kit": "8.1.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "~8.1.0-rc.2", + "@abp/cms-kit": "8.1.0-rc.2" } } diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/wwwroot/libs/malihu-custom-scrollbar-plugin/mCSB_buttons.png b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/wwwroot/libs/malihu-custom-scrollbar-plugin/mCSB_buttons.png index 985a9b8b5a..74424318a4 100644 Binary files a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/wwwroot/libs/malihu-custom-scrollbar-plugin/mCSB_buttons.png and b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/wwwroot/libs/malihu-custom-scrollbar-plugin/mCSB_buttons.png differ diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/yarn.lock b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/yarn.lock index 674872b6ad..05ac1b37bf 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/yarn.lock +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/yarn.lock @@ -2,39 +2,39 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.1.0-rc.1.tgz#5f1503a4526817ec7471a08f29cd82a0bedce2e2" - integrity sha512-NCM8JrgCALz7k4JIm3O2H+pCE9slL6V4ntXC3lA7ReA6hLFEWvP1EBIBCXlHLN2qccqh9+pLN+Ow7/LUt+Ph9g== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~8.1.0-rc.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.1.0-rc.1.tgz#dee786935b41c83250cde627ee8211afd42608f0" - integrity sha512-6sUYndKpAyXF8AVlDm+fXusE9IifrO9yP/Wmt82caSLCtx+rjqiPMcewkQkbOGPNi8+B7H+lgF9azEUjifsKVA== - dependencies: - "@abp/aspnetcore.mvc.ui" "~8.1.0-rc.1" - "@abp/bootstrap" "~8.1.0-rc.1" - "@abp/bootstrap-datepicker" "~8.1.0-rc.1" - "@abp/bootstrap-daterangepicker" "~8.1.0-rc.1" - "@abp/datatables.net-bs5" "~8.1.0-rc.1" - "@abp/font-awesome" "~8.1.0-rc.1" - "@abp/jquery-form" "~8.1.0-rc.1" - "@abp/jquery-validation-unobtrusive" "~8.1.0-rc.1" - "@abp/lodash" "~8.1.0-rc.1" - "@abp/luxon" "~8.1.0-rc.1" - "@abp/malihu-custom-scrollbar-plugin" "~8.1.0-rc.1" - "@abp/moment" "~8.1.0-rc.1" - "@abp/select2" "~8.1.0-rc.1" - "@abp/sweetalert2" "~8.1.0-rc.1" - "@abp/timeago" "~8.1.0-rc.1" - "@abp/toastr" "~8.1.0-rc.1" - -"@abp/aspnetcore.mvc.ui@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.1.0-rc.1.tgz#8b5f31f9d5580c511ad47cedee81752e7eda9ecf" - integrity sha512-161Z4zuZkl81mTiZieOI4g9r1AptsrZyrgaUBNOwVyBrAA2reWGRAtDjGi5UASQks+Na/8Vle48swKxT/lNdhQ== +"@abp/aspnetcore.mvc.ui.theme.basic@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.1.0-rc.2.tgz#d3f61ae2a096d14984a7d6c962360c119f56ac18" + integrity sha512-Y1ueZ8P1VsRo6i+PwfHaAI1yVBkZvQ+3hXB5ishRqF/qCbZIk3l6zZ/7Y85z5cobwp1kfTFEAD4qWrrLb4EBVA== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~8.1.0-rc.2" + +"@abp/aspnetcore.mvc.ui.theme.shared@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.1.0-rc.2.tgz#a298f276a110901bf754429a2597e37abf0f779c" + integrity sha512-+rTR6umuWicvvC0Tp8TA+QcB0yJ4S9a6nyvH753AyIFSsszr+soyRoav44WOkkK4IoaoT6GhCI+VtznAssLjlA== + dependencies: + "@abp/aspnetcore.mvc.ui" "~8.1.0-rc.2" + "@abp/bootstrap" "~8.1.0-rc.2" + "@abp/bootstrap-datepicker" "~8.1.0-rc.2" + "@abp/bootstrap-daterangepicker" "~8.1.0-rc.2" + "@abp/datatables.net-bs5" "~8.1.0-rc.2" + "@abp/font-awesome" "~8.1.0-rc.2" + "@abp/jquery-form" "~8.1.0-rc.2" + "@abp/jquery-validation-unobtrusive" "~8.1.0-rc.2" + "@abp/lodash" "~8.1.0-rc.2" + "@abp/luxon" "~8.1.0-rc.2" + "@abp/malihu-custom-scrollbar-plugin" "~8.1.0-rc.2" + "@abp/moment" "~8.1.0-rc.2" + "@abp/select2" "~8.1.0-rc.2" + "@abp/sweetalert2" "~8.1.0-rc.2" + "@abp/timeago" "~8.1.0-rc.2" + "@abp/toastr" "~8.1.0-rc.2" + +"@abp/aspnetcore.mvc.ui@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.1.0-rc.2.tgz#384433d9f1e54e23633d16916ba9615e42e8b4e5" + integrity sha512-6Myb/cKviQxFcKP96wOenYafnYrU5OfhnhvJGRReCaay9IyuCET/ENrPJx7MKunlR5KFoJdvqH0tL7W7SJdFLw== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -43,257 +43,257 @@ merge-stream "^2.0.0" micromatch "^4.0.2" -"@abp/bootstrap-datepicker@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.1.0-rc.1.tgz#bb7adc6e42aa94629b24ca2fa1464aae6138afbe" - integrity sha512-Gfa+I2TK1X1UisGNJhOTIK4eu/upgazeO9P1gOHryDe5JBhmdo6AKv1wEF/csVVXh52xGs+JtSiyhRt2sH36fA== +"@abp/bootstrap-datepicker@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.1.0-rc.2.tgz#adfb49acaf8952da57046520c9524994caf2938e" + integrity sha512-QUVh0DSPHH9PpZXS/MoYO+G4j8DGwHSyw/fF1y+oYVSH28csNnkq4i0fNVl1THwQDHZPZE6BN+WLB6UTy3HLYA== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap-daterangepicker@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.1.0-rc.1.tgz#ad3c54ebd8a6bcc4c39542c90c8391b06869e996" - integrity sha512-nl2eWyYB9ovQvAMQiLeTHG52fl9rLGLvINnG/ftwlIzGN62mDGkShnZVi6I1EJL2yS0OtMcGyfcmnt5d9n2JGg== +"@abp/bootstrap-daterangepicker@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.1.0-rc.2.tgz#d79017933d1329c7ee1812c38ea0aaad098b4e89" + integrity sha512-t5O+Ibo9dvI/KosagDg7z5U3l8il87DP//tn5dyJtbBrx+336T7p2jcn4E2/TbzQbwKhMbkERHrGo0bRUy/N9A== dependencies: bootstrap-daterangepicker "^3.1.0" -"@abp/bootstrap@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.1.0-rc.1.tgz#14c23314775af1d97564fbbb4c5c304c3a24b919" - integrity sha512-Ze9th6Fyhq8Vh2e3Tk/quN0kQw4k5VuMXvgd/WQoqwa8xlWcWt3q2m+xG8NUuvcj6+O0bcg2KO2nzkBl+oJtbg== +"@abp/bootstrap@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.1.0-rc.2.tgz#92b52790122acb9df9d73dfae8d5d0825051986c" + integrity sha512-p5+t5KGU8/hE5cKMbp9I3ZJLiPdZeNMSJJuccIjqGFaivU35bAOouAgWWZfdive66X3h5GgHipEkS3obQITprQ== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" bootstrap "^5.1.3" -"@abp/clipboard@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-8.1.0-rc.1.tgz#1e82e955fab968ce71002f10efe9ae4a78c65696" - integrity sha512-k8riJptYKKpRIlsQng6pJOk5MdxK414aIPmoAqpcWv3BfGuZqndnp/TpZPWknQqRBm8OUhnC4eQh7L00mjtHuw== +"@abp/clipboard@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-8.1.0-rc.2.tgz#87c5299b0c63fadd7307251040af330247830c13" + integrity sha512-Piy8bPIJOoCNZjwmUZKe2kA16Weqhvz/SjaxvrlCADmN/0zY2WPFOhE89WA7pb9M/2EGynWF/hot35XqbG15CQ== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" clipboard "^2.0.8" -"@abp/cms-kit.admin@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/cms-kit.admin/-/cms-kit.admin-8.1.0-rc.1.tgz#6732fa92e6396ba90d39f2df3ced6768b763fecf" - integrity sha512-eU1EDFqnoP+h66qG/b1WTvP1H4xHzpsGb6M9SpN2ZHWxugSwafxwCjFCCYO/0xdt2E4N/9dw28LneIQurhfyRQ== +"@abp/cms-kit.admin@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/cms-kit.admin/-/cms-kit.admin-8.1.0-rc.2.tgz#ffa32e84ca09519c034daf957b3491c3a3913864" + integrity sha512-an40fchY42IYPw97tbyl7Ve4kpKDuIak6afyTDejGkjIp9TPLxPpEyurJYrJNUzyQX6yta9YwBNCDpuXAZQTLQ== dependencies: - "@abp/codemirror" "~8.1.0-rc.1" - "@abp/jstree" "~8.1.0-rc.1" - "@abp/slugify" "~8.1.0-rc.1" - "@abp/tui-editor" "~8.1.0-rc.1" - "@abp/uppy" "~8.1.0-rc.1" + "@abp/codemirror" "~8.1.0-rc.2" + "@abp/jstree" "~8.1.0-rc.2" + "@abp/slugify" "~8.1.0-rc.2" + "@abp/tui-editor" "~8.1.0-rc.2" + "@abp/uppy" "~8.1.0-rc.2" -"@abp/cms-kit.public@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/cms-kit.public/-/cms-kit.public-8.1.0-rc.1.tgz#abe3bf76f77f88c4926027b0727650eb90fcf3d1" - integrity sha512-KzuOt5Enw8KNjVAZFLzGOi2C9hhtVyome+rZ0Wcsd3tTWOtPXRUdUMIzxb6kFMx984eyyglDXQ1NhKXtZ0+Blw== +"@abp/cms-kit.public@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/cms-kit.public/-/cms-kit.public-8.1.0-rc.2.tgz#49998c3f0b89528a4338a35a133a5a5b3d514fdd" + integrity sha512-TmiJ3g2doux/dfvVurtxU8CvpvxgvpmClKz89Z/pwHhzLSl7PIc4BCHQPSzLRPcwxOUPXx5gvagiroLdavH77A== dependencies: - "@abp/highlight.js" "~8.1.0-rc.1" - "@abp/star-rating-svg" "~8.1.0-rc.1" + "@abp/highlight.js" "~8.1.0-rc.2" + "@abp/star-rating-svg" "~8.1.0-rc.2" -"@abp/cms-kit@8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/cms-kit/-/cms-kit-8.1.0-rc.1.tgz#4d6be4ce09995a5048c41a230009fa07303bdcd6" - integrity sha512-M19tlNHjuy9UIN7ygNY+r1kQ/Hy8OHbN4YQ9gBAgv16YrJajidyqHadryE7vAbzGVOwZBI6ujMFkB+Y02npAHQ== +"@abp/cms-kit@8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/cms-kit/-/cms-kit-8.1.0-rc.2.tgz#4233d1ea7c21f8bba68ff529b7be322d867d9a40" + integrity sha512-12RdVzWLlo2ORoMommh8QnJB7ZxK7cevenT/eXbg1OWeBNx8qAV4e4/H9GVoEDRq2o9s65ft4A+0ikJDDuYY3w== dependencies: - "@abp/cms-kit.admin" "~8.1.0-rc.1" - "@abp/cms-kit.public" "~8.1.0-rc.1" + "@abp/cms-kit.admin" "~8.1.0-rc.2" + "@abp/cms-kit.public" "~8.1.0-rc.2" -"@abp/codemirror@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/codemirror/-/codemirror-8.1.0-rc.1.tgz#eb6055c2d228204d55c655ee35bee57532e7d636" - integrity sha512-o2HGBvx8XgkE7zJQt3FALsJO47IIO7B9muzl7Ss4Xa57BAUdwwvaaq36J7idPUKN7L3M7tM0xj3HTF0rXyB4Yw== +"@abp/codemirror@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/codemirror/-/codemirror-8.1.0-rc.2.tgz#48050a6dfec39ada22c29f0febf0d454fcc7c2ab" + integrity sha512-VsgC4VVO/pmEBWVq3u+tMHBF5wEDZL1S29yIDXvuhU8HRHN3iEn13aDij3HQt6hj3zATbHYfSNJYcTnlLjL+Hg== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" codemirror "^5.65.1" -"@abp/core@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.1.0-rc.1.tgz#ddb848c3400decfad6fa1c0877ed4c87f69bb125" - integrity sha512-uMSxjVWEBPer3evCx5LPSqvG4kMK5IHWryJOILvDLBxR7bszex18TpAMDP3WqALmBPY5rl3v+GQlcEkmh8iKkw== +"@abp/core@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.1.0-rc.2.tgz#78b6db67f7381d9fc26cd8a35e8e21f417a4bea9" + integrity sha512-5VK48/gCE+FSuWXHzUGh5MN3x2gEG9S2Av4Z83gDaHulF7fuaDu0J1KruPHIjpcpNGoko0lOcXNc80JvsYZsAg== dependencies: - "@abp/utils" "~8.1.0-rc.1" + "@abp/utils" "~8.1.0-rc.2" -"@abp/datatables.net-bs5@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.1.0-rc.1.tgz#4f316b0266665bfddc359d9bd08f5759cbe73610" - integrity sha512-FgdOSvakD87pVS4ECux1oamqh8zQ1t3ZzzErXajA2mORQ2AJH+ESTCPvUcuD99BQCcqbGkWhuzPFM5ADNApkNQ== +"@abp/datatables.net-bs5@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.1.0-rc.2.tgz#878e02bd414b27494891e6440f7bce4e5f3d2207" + integrity sha512-RMVf7jz/S0Oo6heRXTpmxx7FPybWA+Visj5MyCbQaSjcrog9VOFrQnlckTEwosU5jL6NWJ0JtIauuiUDxArQdg== dependencies: - "@abp/datatables.net" "~8.1.0-rc.1" + "@abp/datatables.net" "~8.1.0-rc.2" datatables.net-bs5 "^1.11.4" -"@abp/datatables.net@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.1.0-rc.1.tgz#f4a47ccec70a777d26158bbcd3b560dcf5f7f4bf" - integrity sha512-TBMVeaFRSp9DMhsOgr1UNXZXHL8g4P8/kezMu8wO4W78x3hr9hmQX+h0obCJBkMONbsswLSoc+JVwtLJmpn4QQ== +"@abp/datatables.net@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.1.0-rc.2.tgz#bb9f571f9da7e764f1d21377012d5275f663941e" + integrity sha512-6ukqd4+1FajCP/F0+pB1uiFdUJjPQex0pdl9qrAcWsqSRaO44SUsYThs/RvMJW6heblA8HsCaAW0DYFod0YMbQ== dependencies: - "@abp/jquery" "~8.1.0-rc.1" + "@abp/jquery" "~8.1.0-rc.2" datatables.net "^1.11.4" -"@abp/font-awesome@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.1.0-rc.1.tgz#c544207fd843f46aed124f18e972b6a02bca525c" - integrity sha512-jXGRODAjdsgqUhH0LtX5fniB+2XcHZ1uHs2BG3OyVC11C5OfLd613OIru2y8lrVI9PwGjU9QzkfrWD88eSWUQA== +"@abp/font-awesome@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.1.0-rc.2.tgz#c0af9c2772a78ee7276ccd9aac2f3a361f88848e" + integrity sha512-ick6hyY/oCaIEDdferjI7qAckZUE8lyN1K7EUf8xO8u9lxdK89wCVCEVwZaEDUQth+JQXfiGKkgrH0EdFa9pOQ== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" "@fortawesome/fontawesome-free" "^6.5.1" -"@abp/highlight.js@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/highlight.js/-/highlight.js-8.1.0-rc.1.tgz#fd7d619bb2361ed26687fd3de3ebe2ddbd03539c" - integrity sha512-uKFWIdLksYDNEcTOaiHirRPYiPU++0Brh2Xy68OCpTM2qEkCYTIVbQGX641L9BMJp/Gh3YEZHZ8Y4lQF706SEw== +"@abp/highlight.js@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/highlight.js/-/highlight.js-8.1.0-rc.2.tgz#a1f7b0583819055e324c1ab0624ad69a93621095" + integrity sha512-wF3sgwoiOf5Y5dYOW0BmI84ld9PBxKUodi1djx0DtXMPR6xZfRu4ZbniFzyz1RImoqrcnx38G+twQYFr0O/kFA== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" "@highlightjs/cdn-assets" "~11.4.0" -"@abp/jquery-form@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.1.0-rc.1.tgz#879772d1ddd3d76f738411d2121f3ca58b9380b1" - integrity sha512-olM3pRzcGq9fNwyI/m+V9AGOcOa2rjSQHPD2uqS3gqNQtNBCRA27Rt7Uarnwy5Aha7obtB3cVANZjcWHyubEQg== +"@abp/jquery-form@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.1.0-rc.2.tgz#00fb51f14e9ddc3e3824082edfc48593a52ee61e" + integrity sha512-8T1SpscYXQ7S+kdtV6esZnncyYAG82LZkM1igfS++nqDIYELSDp1c7DoRMZoEFxwdHfbavzRkGq9BAlBBDyVxQ== dependencies: - "@abp/jquery" "~8.1.0-rc.1" + "@abp/jquery" "~8.1.0-rc.2" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.1.0-rc.1.tgz#0cc63ff8bb8f995e55ded83996d5f10e3ff4ab13" - integrity sha512-PBDD9fkNzVTync4qHPwwavB7R09Z3yis9rGqF0QGHRcIVwfHU3C66gItpVN5xdmNNko/ynlB81qZjIIyqtkiIw== +"@abp/jquery-validation-unobtrusive@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.1.0-rc.2.tgz#74b8d99989cb337725f258f370b8c68fbb882372" + integrity sha512-wwJvMfdiIELJtabZqGUarEc3FJNthK8PGAAeuVzygfjcV0yVlGpAB4aHOOVhyvTsuZ3BxwifGOg7550FIwJ79g== dependencies: - "@abp/jquery-validation" "~8.1.0-rc.1" + "@abp/jquery-validation" "~8.1.0-rc.2" jquery-validation-unobtrusive "^3.2.12" -"@abp/jquery-validation@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.1.0-rc.1.tgz#0006cda24b89534bacd6bb27aef0741f776d4a5f" - integrity sha512-iKbV1uzvJWYOk5xvNPP9zliQJWH5nMKnnKUlV/5VA0NO2PVsFOdG8FvNHE1APvccqKKMoau5NJ2+8/tq/pf88Q== +"@abp/jquery-validation@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.1.0-rc.2.tgz#3ec6e150fe7ace940f3e63f7696cd06014ce06e7" + integrity sha512-pREGhrtU245nACpmOCuyHBkqH/OAzehsBVRj6SyGlA4ScEgQG6Zya1hBAe4BL33bPeWuSCkUZM+lrSDSzexSjA== dependencies: - "@abp/jquery" "~8.1.0-rc.1" + "@abp/jquery" "~8.1.0-rc.2" jquery-validation "^1.19.3" -"@abp/jquery@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.1.0-rc.1.tgz#089847bedd38f0d91bdb57ac7520b8159685db50" - integrity sha512-Amc2/mS8YJU06NW/W0AFCPpvDFweFSkKHcEuhXtrGEdnRWUeNm3TLc80vA88aILpztX2+wdp9QiYomx7QDtkzg== +"@abp/jquery@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.1.0-rc.2.tgz#7d2df898cb7911842915860bae196d174519375a" + integrity sha512-Fe8S3jHS1KDL6EGo2dURdkO7XsZFggB5XQa82DNMJs7njK5qATCxAXiNExSQ5/EbSu0Y/reaC4BGC51OMYe14w== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" jquery "~3.6.0" -"@abp/jstree@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jstree/-/jstree-8.1.0-rc.1.tgz#c37fad1a9268054f1d9c97dec606b931a12bc7e3" - integrity sha512-KgsCySwEuhUjy0tfhL9QMTdlDgXVtMPphOWmnNyDZvLpA7EEVfUGEoGqIdQBWg8+eeO4DorMSTuGu+NJYqDuxg== +"@abp/jstree@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jstree/-/jstree-8.1.0-rc.2.tgz#70dd64dab1ecade071e877de0016189ea388adaf" + integrity sha512-CZaJeDqD3OnjixImq8jMZhO0EUYmAjpr1Y10y0T57pMuVV4EozGcXGNNNH7RRw8k7ET2qub6P14LRnR1eltIlQ== dependencies: - "@abp/jquery" "~8.1.0-rc.1" + "@abp/jquery" "~8.1.0-rc.2" jstree "^3.3.12" -"@abp/lodash@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.1.0-rc.1.tgz#1ba04f8eaba8d8878d2ac6f5cfae94cf12f90f4b" - integrity sha512-xIHVLTIdObUx9mX+BkJNJuZePVhgH8v8mlbQAjCajbHvoVtDNb16in8xqsQM+gHfdmhUb7iA95HdhZGhMCM4pw== +"@abp/lodash@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.1.0-rc.2.tgz#37fd0296bc5666699541ed8fb158e60b9137af09" + integrity sha512-2t0UUztGT3x3fET+dmHmN/QYmjkz7MpSi8mK2pLbjlCkAoOSmd+Zv9kgWxwxtE9y9ltu3EHYD15BvPL+fd+srQ== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" lodash "^4.17.21" -"@abp/luxon@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.1.0-rc.1.tgz#0cfd66c5c16df5d0ad9c4bfc48648b24a969c892" - integrity sha512-/aYZ0aaCKZUYuc2weAVjcFfPJMpOGECZoJ/2VDemLpixA+iJisgyZPT0GosLHir2HMPPaXkmlXXqvIaLrUNEZg== +"@abp/luxon@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.1.0-rc.2.tgz#80ea50dd41997fe41578a3d6d7bab2dd14fd60d5" + integrity sha512-hsrna+XTGdWBHflnTCsT1uWYWdWyrEHom2eyi1AhqcFmaMccwTS3+u6e5zsNTuuqpoCF9GU3ZxQ5Q1VPDaxxiw== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" luxon "^2.3.0" -"@abp/malihu-custom-scrollbar-plugin@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.1.0-rc.1.tgz#3b9a7be7c067ebd08112d768f4901023e3f58180" - integrity sha512-Sr14jXu03SkJUegs2Rk17+opLnUJ4GC0rPN+Ruf4NxLr2nXneecq3/E6D/LGC5NVjaMgGXWXtKVczUq9rBf6ow== +"@abp/malihu-custom-scrollbar-plugin@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.1.0-rc.2.tgz#11968069de66efc3a5b2eb79ade4d38fa92ef83e" + integrity sha512-REmQaHSc1GCWwMlWb1XLOgvCmPfvVkMAPg02GOrDYSB3+w9RKZGhkWbAUNlDYehMJin3FgY7kBophZNPi4Ae2A== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/moment@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.1.0-rc.1.tgz#770167bd2fc6ec89a47e2c9b3c1088cad87469c3" - integrity sha512-TKaZWD7d+5DtGqiQbrmiybvidqZzHx3wAPzrH7S4I0g+VH+SGTdaNlII+/ZZhqIpadW07G1SJnnI1EY6aU9msg== +"@abp/moment@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.1.0-rc.2.tgz#73751afb93313e56ecaac7ebb785809d6e26010d" + integrity sha512-JOMS6AbPMVKJP5yQs5aagaT1q/UjlM041YsIN3xKIBX5QFp70zHNRdHtskl4cpnKf8q/nXhtnvawuQiqvGbPbw== dependencies: moment "^2.9.0" -"@abp/prismjs@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-8.1.0-rc.1.tgz#a2244029151b9e4f5d8c2c6c94eba2b976c2c776" - integrity sha512-1D30iE4EXOPLirNJIO22/uNQ457xSi5f6iQwQPovuxJaCeb4eOm1Sfg5yR8XmXrKNya/MJhQN2xyyahVxNEe8w== +"@abp/prismjs@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-8.1.0-rc.2.tgz#5b2718ed92ae97e6cfeca1a61e860651ee474626" + integrity sha512-GxcnZmqY0mqEUvUQLX2gDeLKGryOQyRS4MWEpabccDmh6ntXzN2JdDcm5lP/c/5UAVeovn3PrdrJ3x2TTrGDWQ== dependencies: - "@abp/clipboard" "~8.1.0-rc.1" - "@abp/core" "~8.1.0-rc.1" + "@abp/clipboard" "~8.1.0-rc.2" + "@abp/core" "~8.1.0-rc.2" prismjs "^1.26.0" -"@abp/select2@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.1.0-rc.1.tgz#6beb1c5cfb5668b5cd51e4aa06388b30b3e7b250" - integrity sha512-1scGGpN2Zwu3FvctSEo/JThmO/6dgdiH8a067GZ9Wtz1fgy8/TCxHxywF/5yCfHxy0aljdYPUS1XyrhXHq6nfA== +"@abp/select2@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.1.0-rc.2.tgz#b13b6f6764affa24a30bff2c02443ad61141ddc8" + integrity sha512-pvGUp/wSanCI8vbyf8UxNnL3kfUCJet/lUREEtRFXZQFpyKVDIntcnz+qFFp0zChums7jiuIziwg/slM5R/kuw== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" select2 "^4.0.13" -"@abp/slugify@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/slugify/-/slugify-8.1.0-rc.1.tgz#c905a5481a2cc9fee8c10e69a35af63d17210b3f" - integrity sha512-0Wn2BHtUf523sQhN8RIH3MrVcycD9IUj2QvA5C7g3oj0o89IGnFGSkb6zYIP5mpWOl5QjWV7SMGfFdqRjecMwA== +"@abp/slugify@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/slugify/-/slugify-8.1.0-rc.2.tgz#a6b761e78c1c62b6508d9082c3f48cebcc1e922b" + integrity sha512-MaM8/I5Mcp5fBklQ3ul775+w8KpdpxdwmjV/AO2d83OnPdn7HW+zr3+TEkrZ0EYS0yF+FaGyxStYO6eszbCpAA== dependencies: slugify "^1.6.5" -"@abp/star-rating-svg@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/star-rating-svg/-/star-rating-svg-8.1.0-rc.1.tgz#a266b2ee0bd5a93bc1fb3406c784a9c9d2f7ca8e" - integrity sha512-GKYb2IZmliVwZzevXroGsXzD7FYo/w+SALXN+HIQws1I28eNpsJDOlrKaskjIFJTz0k6UBigQkkR/ZkjKR3QTQ== +"@abp/star-rating-svg@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/star-rating-svg/-/star-rating-svg-8.1.0-rc.2.tgz#825633bf0096a880c5d1ffadf9894ca2b03633e0" + integrity sha512-JCwH51SK6uQ6SA8gK4zOrdnki5d5n/FxJFJK6Fe+3LxBg8uFi6M/T9BjRIxHQ6YZiKHqup/moT0VbZada3FgOg== dependencies: - "@abp/jquery" "~8.1.0-rc.1" + "@abp/jquery" "~8.1.0-rc.2" star-rating-svg "^3.5.0" -"@abp/sweetalert2@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.1.0-rc.1.tgz#c2793eba4517ad767450535d77a793971215bc35" - integrity sha512-Dm9mHs9o2pkZxodNQ5R5L7Asm5ER1Cdi0oqB3ciBAj8ro5yp4lTp/BdnoRZVxJXd9mu/BiNY/NzASSpvkbR1og== +"@abp/sweetalert2@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.1.0-rc.2.tgz#bed9314d47634d3532b0dd32e4e2cd8b77539eb5" + integrity sha512-pq1D/kWH0TSYd8hYWiDulSFcSkUHC5i+0alecwyGUDdWzIPoAPmPjA7HxABKwxlLnnciUGed/mEJngfIPp+OYw== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" sweetalert2 "^11.3.6" -"@abp/timeago@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.1.0-rc.1.tgz#0ce17676ce01c07c40da7a8748a5e7cf5166a001" - integrity sha512-cZqlgA1LLYfBAwrxOhYiH+mcaQqxj3RAXx4q5tGpOOwJGqOr22bMZP7i6ODEro6KPmWc1UpknV6zWESJlBySMQ== +"@abp/timeago@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.1.0-rc.2.tgz#9911bdb81001189f30eb7a68fe345e0a692109b2" + integrity sha512-mlCosUBw+n9A6+gXZ2PL2iS/lLMAI2zx7sXFUuV829rtWq54YOkivj/uTOxGHNwNhE4KbW39NqkKK+IJdl/6kQ== dependencies: - "@abp/jquery" "~8.1.0-rc.1" + "@abp/jquery" "~8.1.0-rc.2" timeago "^1.6.7" -"@abp/toastr@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.1.0-rc.1.tgz#8d863f34b9211096d35872a501780fe5bbe3b164" - integrity sha512-U2sf5ZXHBkwOUxhwg8lk4hiMvs2rTb5Rm7elenUIm8r6tc17mkTTPZQ/qVVDSgtQDaD+DmodhSXBYBD2M/QrCg== +"@abp/toastr@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.1.0-rc.2.tgz#8e09730d7149eadb7a9e4fe8c447022d7647b1d7" + integrity sha512-b4bMxJ5aVSBedhq/fPaR5ayPvZMPmK/gbE6zb03+SF22YV6lQW9RDQV1bgnl/T3YLLXYIsrwPpgi67rPo8cZzQ== dependencies: - "@abp/jquery" "~8.1.0-rc.1" + "@abp/jquery" "~8.1.0-rc.2" toastr "^2.1.4" -"@abp/tui-editor@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-8.1.0-rc.1.tgz#01a80a9334ad874d6ef21e898d8f2b3d07354df9" - integrity sha512-Fsq1styNfApaXu0SmAmFlyi2PRScioMEtX+ApiYAGrHcjaX3xBrShg7QZf7Z1cFveZpEFKpK6mfhEZS6u3JWkg== +"@abp/tui-editor@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-8.1.0-rc.2.tgz#2e8f62857c2cc883c2a25cd04238479b49568759" + integrity sha512-gPvYhCw+LGxAcNKhP5rNY9rpUOwO06rHTzfri4gRKWCLnRX/hrgAJvQqqSltnPa+KzCrKNu2BjKia3yFHlZqQw== dependencies: - "@abp/jquery" "~8.1.0-rc.1" - "@abp/prismjs" "~8.1.0-rc.1" + "@abp/jquery" "~8.1.0-rc.2" + "@abp/prismjs" "~8.1.0-rc.2" -"@abp/uppy@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/uppy/-/uppy-8.1.0-rc.1.tgz#8e3b2a9b2a12241c9f7f665f696655ad11f566cb" - integrity sha512-X8MPaz4/Tfx2Y17u5TSce/ailI7kGJWuFs8AxxHHUJAMMWa03lTG5rmtuofgNdo+k+XGUJRvXgtBJ1FrE33vOw== +"@abp/uppy@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/uppy/-/uppy-8.1.0-rc.2.tgz#114c6728d0c9357a87a77037a89a33e543d99a8e" + integrity sha512-2g8yBvy/Ybhd+Nyz4IEn8kLHtKhDcsGXyK6uRFrvw+La0NkCourvgXJTy5fclxvMp0zeJTqRkhPKJWyFAmT3Ug== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" uppy "^3.0.0" -"@abp/utils@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.1.0-rc.1.tgz#dafb48ba1b1f885ae96eca27241bd96d65132488" - integrity sha512-nZYWdQqAFVL4XkWcXYuUUXDkTJOZH38Sz0RHMbS/0seCVsjz88nCWRhgDb3Taduo79WZVNhS+rYhPW6KVR659g== +"@abp/utils@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.1.0-rc.2.tgz#1fa7eae2578c82a75a1e4147796f95dbe0367e2f" + integrity sha512-+IcoeTAAReepH8jCcN6cRTb9AP3suzZMtWt65luCWODqFuYk7otCYDyGGwUBMA+nlmXjyWhotMfVkdBgidWpWw== dependencies: just-compare "^2.3.0" diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.Web/wwwroot/cms-kit/dummy-placeholder-1280x720.png b/modules/cms-kit/src/Volo.CmsKit.Common.Web/wwwroot/cms-kit/dummy-placeholder-1280x720.png new file mode 100644 index 0000000000..ac980eebf2 Binary files /dev/null and b/modules/cms-kit/src/Volo.CmsKit.Common.Web/wwwroot/cms-kit/dummy-placeholder-1280x720.png differ diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.Web/wwwroot/cms-kit/dummy-placeholder-320x180.png b/modules/cms-kit/src/Volo.CmsKit.Common.Web/wwwroot/cms-kit/dummy-placeholder-320x180.png new file mode 100644 index 0000000000..cbb9b8ce6e Binary files /dev/null and b/modules/cms-kit/src/Volo.CmsKit.Common.Web/wwwroot/cms-kit/dummy-placeholder-320x180.png differ diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/CmsKit/Blogs/BlogPost.cshtml b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/CmsKit/Blogs/BlogPost.cshtml index da11b0e9a7..51cc8b9848 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/CmsKit/Blogs/BlogPost.cshtml +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/CmsKit/Blogs/BlogPost.cshtml @@ -20,7 +20,7 @@ @inject ICurrentUser CurrentUser @{ - string dummyImageSource = "https://dummyimage.com/1280x720/a3a3a3/fff.png?text=" + Model.ViewModel.Title; + const string dummyImageSource = "/cms-kit/dummy-placeholder-1280x720.png"; var isScrollIndexEnabled = GlobalFeatureManager.Instance.IsEnabled() && Model.BlogPostScrollIndexFeature?.IsEnabled == true; } diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/CmsKit/Blogs/Index.cshtml b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/CmsKit/Blogs/Index.cshtml index f935e734dc..a0c7163674 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/CmsKit/Blogs/Index.cshtml +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/CmsKit/Blogs/Index.cshtml @@ -19,7 +19,7 @@ } @{ - const string dummyImageSource = "https://dummyimage.com/320x180/a3a3a3/fff.png"; + const string dummyImageSource = "/cms-kit/dummy-placeholder-320x180.png"; } @if (Model.AuthorId.HasValue) diff --git a/modules/cms-kit/test/Volo.CmsKit.EntityFrameworkCore.Tests/EntityFrameworkCore/CmsKitEntityFrameworkCoreTestModule.cs b/modules/cms-kit/test/Volo.CmsKit.EntityFrameworkCore.Tests/EntityFrameworkCore/CmsKitEntityFrameworkCoreTestModule.cs index 9b7fee252a..139e4bdce9 100644 --- a/modules/cms-kit/test/Volo.CmsKit.EntityFrameworkCore.Tests/EntityFrameworkCore/CmsKitEntityFrameworkCoreTestModule.cs +++ b/modules/cms-kit/test/Volo.CmsKit.EntityFrameworkCore.Tests/EntityFrameworkCore/CmsKitEntityFrameworkCoreTestModule.cs @@ -30,7 +30,7 @@ public class CmsKitEntityFrameworkCoreTestModule : AbpModule private static SqliteConnection CreateDatabaseAndGetConnection() { - var connection = new SqliteConnection("Data Source=:memory:"); + var connection = new AbpUnitTestSqliteConnection("Data Source=:memory:"); connection.Open(); new CmsKitDbContext( diff --git a/modules/docs/app/VoloDocs.Web/package.json b/modules/docs/app/VoloDocs.Web/package.json index 5d523d77a0..d1d06d4f34 100644 --- a/modules/docs/app/VoloDocs.Web/package.json +++ b/modules/docs/app/VoloDocs.Web/package.json @@ -3,7 +3,7 @@ "name": "volo.docstestapp", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "~8.1.0-rc.1", - "@abp/docs": "~8.1.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "~8.1.0-rc.2", + "@abp/docs": "~8.1.0-rc.2" } } diff --git a/modules/docs/app/VoloDocs.Web/wwwroot/assets/images/Logo.png b/modules/docs/app/VoloDocs.Web/wwwroot/assets/images/Logo.png index 30a85a0ca0..29e40de500 100644 Binary files a/modules/docs/app/VoloDocs.Web/wwwroot/assets/images/Logo.png and b/modules/docs/app/VoloDocs.Web/wwwroot/assets/images/Logo.png differ diff --git a/modules/docs/app/VoloDocs.Web/wwwroot/libs/malihu-custom-scrollbar-plugin/mCSB_buttons.png b/modules/docs/app/VoloDocs.Web/wwwroot/libs/malihu-custom-scrollbar-plugin/mCSB_buttons.png index 985a9b8b5a..74424318a4 100644 Binary files a/modules/docs/app/VoloDocs.Web/wwwroot/libs/malihu-custom-scrollbar-plugin/mCSB_buttons.png and b/modules/docs/app/VoloDocs.Web/wwwroot/libs/malihu-custom-scrollbar-plugin/mCSB_buttons.png differ diff --git a/modules/docs/app/VoloDocs.Web/yarn.lock b/modules/docs/app/VoloDocs.Web/yarn.lock index 8e65bed7d8..c517d15d34 100644 --- a/modules/docs/app/VoloDocs.Web/yarn.lock +++ b/modules/docs/app/VoloDocs.Web/yarn.lock @@ -2,47 +2,47 @@ # yarn lockfile v1 -"@abp/anchor-js@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/anchor-js/-/anchor-js-8.1.0-rc.1.tgz#967969148de2174d96f9535bcbaecd2d8e33a6c1" - integrity sha512-n29Rm9rfaeMJ+yXi837TXTxVRUGRXJv1ygwcbS8MTKUTyAkHADi4vcaRDGX8lGRRdvokWc+g59y51NTFSOgIaw== +"@abp/anchor-js@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/anchor-js/-/anchor-js-8.1.0-rc.2.tgz#e95263d9a28a0549a3108f80e71abf9b3c2fa1e6" + integrity sha512-Zp6cMKu19zya6R+forMahCrR6tpq4LSEd8u1YDzAc/PIec5Ym85t5MTPwBkLDsZ4ewN2bHUPcn5otiCa5h4N0w== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" anchor-js "^4.3.1" -"@abp/aspnetcore.mvc.ui.theme.basic@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.1.0-rc.1.tgz#5f1503a4526817ec7471a08f29cd82a0bedce2e2" - integrity sha512-NCM8JrgCALz7k4JIm3O2H+pCE9slL6V4ntXC3lA7ReA6hLFEWvP1EBIBCXlHLN2qccqh9+pLN+Ow7/LUt+Ph9g== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~8.1.0-rc.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.1.0-rc.1.tgz#dee786935b41c83250cde627ee8211afd42608f0" - integrity sha512-6sUYndKpAyXF8AVlDm+fXusE9IifrO9yP/Wmt82caSLCtx+rjqiPMcewkQkbOGPNi8+B7H+lgF9azEUjifsKVA== - dependencies: - "@abp/aspnetcore.mvc.ui" "~8.1.0-rc.1" - "@abp/bootstrap" "~8.1.0-rc.1" - "@abp/bootstrap-datepicker" "~8.1.0-rc.1" - "@abp/bootstrap-daterangepicker" "~8.1.0-rc.1" - "@abp/datatables.net-bs5" "~8.1.0-rc.1" - "@abp/font-awesome" "~8.1.0-rc.1" - "@abp/jquery-form" "~8.1.0-rc.1" - "@abp/jquery-validation-unobtrusive" "~8.1.0-rc.1" - "@abp/lodash" "~8.1.0-rc.1" - "@abp/luxon" "~8.1.0-rc.1" - "@abp/malihu-custom-scrollbar-plugin" "~8.1.0-rc.1" - "@abp/moment" "~8.1.0-rc.1" - "@abp/select2" "~8.1.0-rc.1" - "@abp/sweetalert2" "~8.1.0-rc.1" - "@abp/timeago" "~8.1.0-rc.1" - "@abp/toastr" "~8.1.0-rc.1" - -"@abp/aspnetcore.mvc.ui@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.1.0-rc.1.tgz#8b5f31f9d5580c511ad47cedee81752e7eda9ecf" - integrity sha512-161Z4zuZkl81mTiZieOI4g9r1AptsrZyrgaUBNOwVyBrAA2reWGRAtDjGi5UASQks+Na/8Vle48swKxT/lNdhQ== +"@abp/aspnetcore.mvc.ui.theme.basic@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.1.0-rc.2.tgz#d3f61ae2a096d14984a7d6c962360c119f56ac18" + integrity sha512-Y1ueZ8P1VsRo6i+PwfHaAI1yVBkZvQ+3hXB5ishRqF/qCbZIk3l6zZ/7Y85z5cobwp1kfTFEAD4qWrrLb4EBVA== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~8.1.0-rc.2" + +"@abp/aspnetcore.mvc.ui.theme.shared@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.1.0-rc.2.tgz#a298f276a110901bf754429a2597e37abf0f779c" + integrity sha512-+rTR6umuWicvvC0Tp8TA+QcB0yJ4S9a6nyvH753AyIFSsszr+soyRoav44WOkkK4IoaoT6GhCI+VtznAssLjlA== + dependencies: + "@abp/aspnetcore.mvc.ui" "~8.1.0-rc.2" + "@abp/bootstrap" "~8.1.0-rc.2" + "@abp/bootstrap-datepicker" "~8.1.0-rc.2" + "@abp/bootstrap-daterangepicker" "~8.1.0-rc.2" + "@abp/datatables.net-bs5" "~8.1.0-rc.2" + "@abp/font-awesome" "~8.1.0-rc.2" + "@abp/jquery-form" "~8.1.0-rc.2" + "@abp/jquery-validation-unobtrusive" "~8.1.0-rc.2" + "@abp/lodash" "~8.1.0-rc.2" + "@abp/luxon" "~8.1.0-rc.2" + "@abp/malihu-custom-scrollbar-plugin" "~8.1.0-rc.2" + "@abp/moment" "~8.1.0-rc.2" + "@abp/select2" "~8.1.0-rc.2" + "@abp/sweetalert2" "~8.1.0-rc.2" + "@abp/timeago" "~8.1.0-rc.2" + "@abp/toastr" "~8.1.0-rc.2" + +"@abp/aspnetcore.mvc.ui@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.1.0-rc.2.tgz#384433d9f1e54e23633d16916ba9615e42e8b4e5" + integrity sha512-6Myb/cKviQxFcKP96wOenYafnYrU5OfhnhvJGRReCaay9IyuCET/ENrPJx7MKunlR5KFoJdvqH0tL7W7SJdFLw== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -51,194 +51,194 @@ merge-stream "^2.0.0" micromatch "^4.0.2" -"@abp/bootstrap-datepicker@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.1.0-rc.1.tgz#bb7adc6e42aa94629b24ca2fa1464aae6138afbe" - integrity sha512-Gfa+I2TK1X1UisGNJhOTIK4eu/upgazeO9P1gOHryDe5JBhmdo6AKv1wEF/csVVXh52xGs+JtSiyhRt2sH36fA== +"@abp/bootstrap-datepicker@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.1.0-rc.2.tgz#adfb49acaf8952da57046520c9524994caf2938e" + integrity sha512-QUVh0DSPHH9PpZXS/MoYO+G4j8DGwHSyw/fF1y+oYVSH28csNnkq4i0fNVl1THwQDHZPZE6BN+WLB6UTy3HLYA== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap-daterangepicker@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.1.0-rc.1.tgz#ad3c54ebd8a6bcc4c39542c90c8391b06869e996" - integrity sha512-nl2eWyYB9ovQvAMQiLeTHG52fl9rLGLvINnG/ftwlIzGN62mDGkShnZVi6I1EJL2yS0OtMcGyfcmnt5d9n2JGg== +"@abp/bootstrap-daterangepicker@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.1.0-rc.2.tgz#d79017933d1329c7ee1812c38ea0aaad098b4e89" + integrity sha512-t5O+Ibo9dvI/KosagDg7z5U3l8il87DP//tn5dyJtbBrx+336T7p2jcn4E2/TbzQbwKhMbkERHrGo0bRUy/N9A== dependencies: bootstrap-daterangepicker "^3.1.0" -"@abp/bootstrap@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.1.0-rc.1.tgz#14c23314775af1d97564fbbb4c5c304c3a24b919" - integrity sha512-Ze9th6Fyhq8Vh2e3Tk/quN0kQw4k5VuMXvgd/WQoqwa8xlWcWt3q2m+xG8NUuvcj6+O0bcg2KO2nzkBl+oJtbg== +"@abp/bootstrap@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.1.0-rc.2.tgz#92b52790122acb9df9d73dfae8d5d0825051986c" + integrity sha512-p5+t5KGU8/hE5cKMbp9I3ZJLiPdZeNMSJJuccIjqGFaivU35bAOouAgWWZfdive66X3h5GgHipEkS3obQITprQ== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" bootstrap "^5.1.3" -"@abp/clipboard@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-8.1.0-rc.1.tgz#1e82e955fab968ce71002f10efe9ae4a78c65696" - integrity sha512-k8riJptYKKpRIlsQng6pJOk5MdxK414aIPmoAqpcWv3BfGuZqndnp/TpZPWknQqRBm8OUhnC4eQh7L00mjtHuw== +"@abp/clipboard@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-8.1.0-rc.2.tgz#87c5299b0c63fadd7307251040af330247830c13" + integrity sha512-Piy8bPIJOoCNZjwmUZKe2kA16Weqhvz/SjaxvrlCADmN/0zY2WPFOhE89WA7pb9M/2EGynWF/hot35XqbG15CQ== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" clipboard "^2.0.8" -"@abp/core@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.1.0-rc.1.tgz#ddb848c3400decfad6fa1c0877ed4c87f69bb125" - integrity sha512-uMSxjVWEBPer3evCx5LPSqvG4kMK5IHWryJOILvDLBxR7bszex18TpAMDP3WqALmBPY5rl3v+GQlcEkmh8iKkw== +"@abp/core@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.1.0-rc.2.tgz#78b6db67f7381d9fc26cd8a35e8e21f417a4bea9" + integrity sha512-5VK48/gCE+FSuWXHzUGh5MN3x2gEG9S2Av4Z83gDaHulF7fuaDu0J1KruPHIjpcpNGoko0lOcXNc80JvsYZsAg== dependencies: - "@abp/utils" "~8.1.0-rc.1" + "@abp/utils" "~8.1.0-rc.2" -"@abp/datatables.net-bs5@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.1.0-rc.1.tgz#4f316b0266665bfddc359d9bd08f5759cbe73610" - integrity sha512-FgdOSvakD87pVS4ECux1oamqh8zQ1t3ZzzErXajA2mORQ2AJH+ESTCPvUcuD99BQCcqbGkWhuzPFM5ADNApkNQ== +"@abp/datatables.net-bs5@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.1.0-rc.2.tgz#878e02bd414b27494891e6440f7bce4e5f3d2207" + integrity sha512-RMVf7jz/S0Oo6heRXTpmxx7FPybWA+Visj5MyCbQaSjcrog9VOFrQnlckTEwosU5jL6NWJ0JtIauuiUDxArQdg== dependencies: - "@abp/datatables.net" "~8.1.0-rc.1" + "@abp/datatables.net" "~8.1.0-rc.2" datatables.net-bs5 "^1.11.4" -"@abp/datatables.net@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.1.0-rc.1.tgz#f4a47ccec70a777d26158bbcd3b560dcf5f7f4bf" - integrity sha512-TBMVeaFRSp9DMhsOgr1UNXZXHL8g4P8/kezMu8wO4W78x3hr9hmQX+h0obCJBkMONbsswLSoc+JVwtLJmpn4QQ== +"@abp/datatables.net@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.1.0-rc.2.tgz#bb9f571f9da7e764f1d21377012d5275f663941e" + integrity sha512-6ukqd4+1FajCP/F0+pB1uiFdUJjPQex0pdl9qrAcWsqSRaO44SUsYThs/RvMJW6heblA8HsCaAW0DYFod0YMbQ== dependencies: - "@abp/jquery" "~8.1.0-rc.1" + "@abp/jquery" "~8.1.0-rc.2" datatables.net "^1.11.4" -"@abp/docs@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/docs/-/docs-8.1.0-rc.1.tgz#9cf0fe580b142e61ba895c2e98ab90837fe18fb4" - integrity sha512-OHq+FGaH437+3AJJj4ygVwaeiQ3/pcVOK42LH5hgIg/MPEdgsnibn0xnTUfwlzdnNQveJ+cNoinTBPdx4sl6Qg== +"@abp/docs@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/docs/-/docs-8.1.0-rc.2.tgz#f63dfb14c133c9d6f4db605120805065cb5b90a8" + integrity sha512-iqV+amkynmKtzsA7wWf8IkGg18iKWPBf32tHU2t60C0s6qx4gdplBbGE849+Fra+EmbOBXawKQXs7poN9AFimg== dependencies: - "@abp/anchor-js" "~8.1.0-rc.1" - "@abp/clipboard" "~8.1.0-rc.1" - "@abp/malihu-custom-scrollbar-plugin" "~8.1.0-rc.1" - "@abp/popper.js" "~8.1.0-rc.1" - "@abp/prismjs" "~8.1.0-rc.1" + "@abp/anchor-js" "~8.1.0-rc.2" + "@abp/clipboard" "~8.1.0-rc.2" + "@abp/malihu-custom-scrollbar-plugin" "~8.1.0-rc.2" + "@abp/popper.js" "~8.1.0-rc.2" + "@abp/prismjs" "~8.1.0-rc.2" -"@abp/font-awesome@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.1.0-rc.1.tgz#c544207fd843f46aed124f18e972b6a02bca525c" - integrity sha512-jXGRODAjdsgqUhH0LtX5fniB+2XcHZ1uHs2BG3OyVC11C5OfLd613OIru2y8lrVI9PwGjU9QzkfrWD88eSWUQA== +"@abp/font-awesome@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.1.0-rc.2.tgz#c0af9c2772a78ee7276ccd9aac2f3a361f88848e" + integrity sha512-ick6hyY/oCaIEDdferjI7qAckZUE8lyN1K7EUf8xO8u9lxdK89wCVCEVwZaEDUQth+JQXfiGKkgrH0EdFa9pOQ== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" "@fortawesome/fontawesome-free" "^6.5.1" -"@abp/jquery-form@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.1.0-rc.1.tgz#879772d1ddd3d76f738411d2121f3ca58b9380b1" - integrity sha512-olM3pRzcGq9fNwyI/m+V9AGOcOa2rjSQHPD2uqS3gqNQtNBCRA27Rt7Uarnwy5Aha7obtB3cVANZjcWHyubEQg== +"@abp/jquery-form@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.1.0-rc.2.tgz#00fb51f14e9ddc3e3824082edfc48593a52ee61e" + integrity sha512-8T1SpscYXQ7S+kdtV6esZnncyYAG82LZkM1igfS++nqDIYELSDp1c7DoRMZoEFxwdHfbavzRkGq9BAlBBDyVxQ== dependencies: - "@abp/jquery" "~8.1.0-rc.1" + "@abp/jquery" "~8.1.0-rc.2" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.1.0-rc.1.tgz#0cc63ff8bb8f995e55ded83996d5f10e3ff4ab13" - integrity sha512-PBDD9fkNzVTync4qHPwwavB7R09Z3yis9rGqF0QGHRcIVwfHU3C66gItpVN5xdmNNko/ynlB81qZjIIyqtkiIw== +"@abp/jquery-validation-unobtrusive@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.1.0-rc.2.tgz#74b8d99989cb337725f258f370b8c68fbb882372" + integrity sha512-wwJvMfdiIELJtabZqGUarEc3FJNthK8PGAAeuVzygfjcV0yVlGpAB4aHOOVhyvTsuZ3BxwifGOg7550FIwJ79g== dependencies: - "@abp/jquery-validation" "~8.1.0-rc.1" + "@abp/jquery-validation" "~8.1.0-rc.2" jquery-validation-unobtrusive "^3.2.12" -"@abp/jquery-validation@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.1.0-rc.1.tgz#0006cda24b89534bacd6bb27aef0741f776d4a5f" - integrity sha512-iKbV1uzvJWYOk5xvNPP9zliQJWH5nMKnnKUlV/5VA0NO2PVsFOdG8FvNHE1APvccqKKMoau5NJ2+8/tq/pf88Q== +"@abp/jquery-validation@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.1.0-rc.2.tgz#3ec6e150fe7ace940f3e63f7696cd06014ce06e7" + integrity sha512-pREGhrtU245nACpmOCuyHBkqH/OAzehsBVRj6SyGlA4ScEgQG6Zya1hBAe4BL33bPeWuSCkUZM+lrSDSzexSjA== dependencies: - "@abp/jquery" "~8.1.0-rc.1" + "@abp/jquery" "~8.1.0-rc.2" jquery-validation "^1.19.3" -"@abp/jquery@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.1.0-rc.1.tgz#089847bedd38f0d91bdb57ac7520b8159685db50" - integrity sha512-Amc2/mS8YJU06NW/W0AFCPpvDFweFSkKHcEuhXtrGEdnRWUeNm3TLc80vA88aILpztX2+wdp9QiYomx7QDtkzg== +"@abp/jquery@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.1.0-rc.2.tgz#7d2df898cb7911842915860bae196d174519375a" + integrity sha512-Fe8S3jHS1KDL6EGo2dURdkO7XsZFggB5XQa82DNMJs7njK5qATCxAXiNExSQ5/EbSu0Y/reaC4BGC51OMYe14w== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" jquery "~3.6.0" -"@abp/lodash@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.1.0-rc.1.tgz#1ba04f8eaba8d8878d2ac6f5cfae94cf12f90f4b" - integrity sha512-xIHVLTIdObUx9mX+BkJNJuZePVhgH8v8mlbQAjCajbHvoVtDNb16in8xqsQM+gHfdmhUb7iA95HdhZGhMCM4pw== +"@abp/lodash@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.1.0-rc.2.tgz#37fd0296bc5666699541ed8fb158e60b9137af09" + integrity sha512-2t0UUztGT3x3fET+dmHmN/QYmjkz7MpSi8mK2pLbjlCkAoOSmd+Zv9kgWxwxtE9y9ltu3EHYD15BvPL+fd+srQ== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" lodash "^4.17.21" -"@abp/luxon@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.1.0-rc.1.tgz#0cfd66c5c16df5d0ad9c4bfc48648b24a969c892" - integrity sha512-/aYZ0aaCKZUYuc2weAVjcFfPJMpOGECZoJ/2VDemLpixA+iJisgyZPT0GosLHir2HMPPaXkmlXXqvIaLrUNEZg== +"@abp/luxon@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.1.0-rc.2.tgz#80ea50dd41997fe41578a3d6d7bab2dd14fd60d5" + integrity sha512-hsrna+XTGdWBHflnTCsT1uWYWdWyrEHom2eyi1AhqcFmaMccwTS3+u6e5zsNTuuqpoCF9GU3ZxQ5Q1VPDaxxiw== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" luxon "^2.3.0" -"@abp/malihu-custom-scrollbar-plugin@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.1.0-rc.1.tgz#3b9a7be7c067ebd08112d768f4901023e3f58180" - integrity sha512-Sr14jXu03SkJUegs2Rk17+opLnUJ4GC0rPN+Ruf4NxLr2nXneecq3/E6D/LGC5NVjaMgGXWXtKVczUq9rBf6ow== +"@abp/malihu-custom-scrollbar-plugin@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.1.0-rc.2.tgz#11968069de66efc3a5b2eb79ade4d38fa92ef83e" + integrity sha512-REmQaHSc1GCWwMlWb1XLOgvCmPfvVkMAPg02GOrDYSB3+w9RKZGhkWbAUNlDYehMJin3FgY7kBophZNPi4Ae2A== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/moment@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.1.0-rc.1.tgz#770167bd2fc6ec89a47e2c9b3c1088cad87469c3" - integrity sha512-TKaZWD7d+5DtGqiQbrmiybvidqZzHx3wAPzrH7S4I0g+VH+SGTdaNlII+/ZZhqIpadW07G1SJnnI1EY6aU9msg== +"@abp/moment@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.1.0-rc.2.tgz#73751afb93313e56ecaac7ebb785809d6e26010d" + integrity sha512-JOMS6AbPMVKJP5yQs5aagaT1q/UjlM041YsIN3xKIBX5QFp70zHNRdHtskl4cpnKf8q/nXhtnvawuQiqvGbPbw== dependencies: moment "^2.9.0" -"@abp/popper.js@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/popper.js/-/popper.js-8.1.0-rc.1.tgz#8bc24d4d0fe0e8e63371a64f03ff5e8985bc0152" - integrity sha512-2lQmhSwbv1EhXA2Uy19JQiwwK+GonEmfbks6VYbr9uJqM3AHKhCCEHj9BZnlIBzNkLvAXkXgEl4pyfV90ABdHA== +"@abp/popper.js@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/popper.js/-/popper.js-8.1.0-rc.2.tgz#b6dc9511acf1351d1794388f5ef7f853da531467" + integrity sha512-rVuhLIF0Atl93f0kIo5MSZFBAhuL+J7LMNkY9nBLTDvK7HbHnjHd7kQajm9s3RSJFtJifY2CVD/02CLwtSPSAw== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" "@popperjs/core" "^2.11.2" -"@abp/prismjs@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-8.1.0-rc.1.tgz#a2244029151b9e4f5d8c2c6c94eba2b976c2c776" - integrity sha512-1D30iE4EXOPLirNJIO22/uNQ457xSi5f6iQwQPovuxJaCeb4eOm1Sfg5yR8XmXrKNya/MJhQN2xyyahVxNEe8w== +"@abp/prismjs@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-8.1.0-rc.2.tgz#5b2718ed92ae97e6cfeca1a61e860651ee474626" + integrity sha512-GxcnZmqY0mqEUvUQLX2gDeLKGryOQyRS4MWEpabccDmh6ntXzN2JdDcm5lP/c/5UAVeovn3PrdrJ3x2TTrGDWQ== dependencies: - "@abp/clipboard" "~8.1.0-rc.1" - "@abp/core" "~8.1.0-rc.1" + "@abp/clipboard" "~8.1.0-rc.2" + "@abp/core" "~8.1.0-rc.2" prismjs "^1.26.0" -"@abp/select2@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.1.0-rc.1.tgz#6beb1c5cfb5668b5cd51e4aa06388b30b3e7b250" - integrity sha512-1scGGpN2Zwu3FvctSEo/JThmO/6dgdiH8a067GZ9Wtz1fgy8/TCxHxywF/5yCfHxy0aljdYPUS1XyrhXHq6nfA== +"@abp/select2@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.1.0-rc.2.tgz#b13b6f6764affa24a30bff2c02443ad61141ddc8" + integrity sha512-pvGUp/wSanCI8vbyf8UxNnL3kfUCJet/lUREEtRFXZQFpyKVDIntcnz+qFFp0zChums7jiuIziwg/slM5R/kuw== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" select2 "^4.0.13" -"@abp/sweetalert2@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.1.0-rc.1.tgz#c2793eba4517ad767450535d77a793971215bc35" - integrity sha512-Dm9mHs9o2pkZxodNQ5R5L7Asm5ER1Cdi0oqB3ciBAj8ro5yp4lTp/BdnoRZVxJXd9mu/BiNY/NzASSpvkbR1og== +"@abp/sweetalert2@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.1.0-rc.2.tgz#bed9314d47634d3532b0dd32e4e2cd8b77539eb5" + integrity sha512-pq1D/kWH0TSYd8hYWiDulSFcSkUHC5i+0alecwyGUDdWzIPoAPmPjA7HxABKwxlLnnciUGed/mEJngfIPp+OYw== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" sweetalert2 "^11.3.6" -"@abp/timeago@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.1.0-rc.1.tgz#0ce17676ce01c07c40da7a8748a5e7cf5166a001" - integrity sha512-cZqlgA1LLYfBAwrxOhYiH+mcaQqxj3RAXx4q5tGpOOwJGqOr22bMZP7i6ODEro6KPmWc1UpknV6zWESJlBySMQ== +"@abp/timeago@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.1.0-rc.2.tgz#9911bdb81001189f30eb7a68fe345e0a692109b2" + integrity sha512-mlCosUBw+n9A6+gXZ2PL2iS/lLMAI2zx7sXFUuV829rtWq54YOkivj/uTOxGHNwNhE4KbW39NqkKK+IJdl/6kQ== dependencies: - "@abp/jquery" "~8.1.0-rc.1" + "@abp/jquery" "~8.1.0-rc.2" timeago "^1.6.7" -"@abp/toastr@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.1.0-rc.1.tgz#8d863f34b9211096d35872a501780fe5bbe3b164" - integrity sha512-U2sf5ZXHBkwOUxhwg8lk4hiMvs2rTb5Rm7elenUIm8r6tc17mkTTPZQ/qVVDSgtQDaD+DmodhSXBYBD2M/QrCg== +"@abp/toastr@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.1.0-rc.2.tgz#8e09730d7149eadb7a9e4fe8c447022d7647b1d7" + integrity sha512-b4bMxJ5aVSBedhq/fPaR5ayPvZMPmK/gbE6zb03+SF22YV6lQW9RDQV1bgnl/T3YLLXYIsrwPpgi67rPo8cZzQ== dependencies: - "@abp/jquery" "~8.1.0-rc.1" + "@abp/jquery" "~8.1.0-rc.2" toastr "^2.1.4" -"@abp/utils@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.1.0-rc.1.tgz#dafb48ba1b1f885ae96eca27241bd96d65132488" - integrity sha512-nZYWdQqAFVL4XkWcXYuUUXDkTJOZH38Sz0RHMbS/0seCVsjz88nCWRhgDb3Taduo79WZVNhS+rYhPW6KVR659g== +"@abp/utils@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.1.0-rc.2.tgz#1fa7eae2578c82a75a1e4147796f95dbe0367e2f" + integrity sha512-+IcoeTAAReepH8jCcN6cRTb9AP3suzZMtWt65luCWODqFuYk7otCYDyGGwUBMA+nlmXjyWhotMfVkdBgidWpWw== dependencies: just-compare "^2.3.0" diff --git a/modules/docs/screenshot2.png b/modules/docs/screenshot2.png index 0dcdf921b9..d6a730d86a 100644 Binary files a/modules/docs/screenshot2.png and b/modules/docs/screenshot2.png differ diff --git a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml index b2a5b2d1dd..dfb379f5ae 100644 --- a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml +++ b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml @@ -398,23 +398,25 @@ @if (Model.DocumentNavigationsDto.HasPrevious) { - + @L["Previous"] - @Model.DocumentNavigationsDto.Previous.Name +
+ @Model.DocumentNavigationsDto.Previous.Name
} -
+ diff --git a/modules/docs/test/Volo.Docs.EntityFrameworkCore.Tests/Volo/Docs/EntityFrameworkCore/DocsEntityFrameworkCoreTestModule.cs b/modules/docs/test/Volo.Docs.EntityFrameworkCore.Tests/Volo/Docs/EntityFrameworkCore/DocsEntityFrameworkCoreTestModule.cs index eb3a5ae5bd..fe3e32291f 100644 --- a/modules/docs/test/Volo.Docs.EntityFrameworkCore.Tests/Volo/Docs/EntityFrameworkCore/DocsEntityFrameworkCoreTestModule.cs +++ b/modules/docs/test/Volo.Docs.EntityFrameworkCore.Tests/Volo/Docs/EntityFrameworkCore/DocsEntityFrameworkCoreTestModule.cs @@ -30,7 +30,7 @@ namespace Volo.Docs.EntityFrameworkCore private static SqliteConnection CreateDatabaseAndGetConnection() { - var connection = new SqliteConnection("Data Source=:memory:"); + var connection = new AbpUnitTestSqliteConnection("Data Source=:memory:"); connection.Open(); new DocsDbContext( diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Pages/FeatureManagement/FeatureManagementModal.cshtml b/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Pages/FeatureManagement/FeatureManagementModal.cshtml index a3a00a89c1..012f761813 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Pages/FeatureManagement/FeatureManagementModal.cshtml +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Pages/FeatureManagement/FeatureManagementModal.cshtml @@ -43,7 +43,6 @@ @for (var j = 0; j < featureGroup.Features.Count; j++) { var feature = featureGroup.Features[j]; - var disabled = Model.IsDisabled(feature.Provider.Name);
@@ -54,7 +53,6 @@ type="checkbox" abp-id-name="@Model.FeatureGroups[i].Features[j].BoolValue" label="@feature.DisplayName" - disabled="@disabled" group-data-feature-name="@feature.Name" group-data-parent-name="@(feature.ParentName ?? "")" group-style="margin-inline-start: @(feature.Depth * 20)px"/> @@ -76,7 +74,6 @@ Features { get; set; } diff --git a/modules/feature-management/test/Volo.Abp.FeatureManagement.EntityFrameworkCore.Tests/Volo/Abp/FeatureManagement/EntityFrameworkCore/AbpFeatureManagementEntityFrameworkCoreTestModule.cs b/modules/feature-management/test/Volo.Abp.FeatureManagement.EntityFrameworkCore.Tests/Volo/Abp/FeatureManagement/EntityFrameworkCore/AbpFeatureManagementEntityFrameworkCoreTestModule.cs index 3329f1dba6..242cf75233 100644 --- a/modules/feature-management/test/Volo.Abp.FeatureManagement.EntityFrameworkCore.Tests/Volo/Abp/FeatureManagement/EntityFrameworkCore/AbpFeatureManagementEntityFrameworkCoreTestModule.cs +++ b/modules/feature-management/test/Volo.Abp.FeatureManagement.EntityFrameworkCore.Tests/Volo/Abp/FeatureManagement/EntityFrameworkCore/AbpFeatureManagementEntityFrameworkCoreTestModule.cs @@ -36,7 +36,7 @@ public class AbpFeatureManagementEntityFrameworkCoreTestModule : AbpModule private static SqliteConnection CreateDatabaseAndGetConnection() { - var connection = new SqliteConnection("Data Source=:memory:"); + var connection = new AbpUnitTestSqliteConnection("Data Source=:memory:"); connection.Open(); new FeatureManagementDbContext( diff --git a/modules/identity/test/Volo.Abp.Identity.EntityFrameworkCore.Tests/Volo/Abp/Identity/EntityFrameworkCore/AbpIdentityEntityFrameworkCoreTestModule.cs b/modules/identity/test/Volo.Abp.Identity.EntityFrameworkCore.Tests/Volo/Abp/Identity/EntityFrameworkCore/AbpIdentityEntityFrameworkCoreTestModule.cs index beb2797ea9..f0d1966bd0 100644 --- a/modules/identity/test/Volo.Abp.Identity.EntityFrameworkCore.Tests/Volo/Abp/Identity/EntityFrameworkCore/AbpIdentityEntityFrameworkCoreTestModule.cs +++ b/modules/identity/test/Volo.Abp.Identity.EntityFrameworkCore.Tests/Volo/Abp/Identity/EntityFrameworkCore/AbpIdentityEntityFrameworkCoreTestModule.cs @@ -35,7 +35,7 @@ public class AbpIdentityEntityFrameworkCoreTestModule : AbpModule private static SqliteConnection CreateDatabaseAndGetConnection() { - var connection = new SqliteConnection("Data Source=:memory:"); + var connection = new AbpUnitTestSqliteConnection("Data Source=:memory:"); connection.Open(); new IdentityDbContext( diff --git a/modules/identityserver/test/Volo.Abp.IdentityServer.EntityFrameworkCore.Tests/Volo/Abp/IdentityServer/AbpIdentityServerTestEntityFrameworkCoreModule.cs b/modules/identityserver/test/Volo.Abp.IdentityServer.EntityFrameworkCore.Tests/Volo/Abp/IdentityServer/AbpIdentityServerTestEntityFrameworkCoreModule.cs index 6e934d1d8c..e6711fc180 100644 --- a/modules/identityserver/test/Volo.Abp.IdentityServer.EntityFrameworkCore.Tests/Volo/Abp/IdentityServer/AbpIdentityServerTestEntityFrameworkCoreModule.cs +++ b/modules/identityserver/test/Volo.Abp.IdentityServer.EntityFrameworkCore.Tests/Volo/Abp/IdentityServer/AbpIdentityServerTestEntityFrameworkCoreModule.cs @@ -40,7 +40,7 @@ public class AbpIdentityServerTestEntityFrameworkCoreModule : AbpModule private static SqliteConnection CreateDatabaseAndGetConnection() { - var connection = new SqliteConnection("Data Source=:memory:"); + var connection = new AbpUnitTestSqliteConnection("Data Source=:memory:"); connection.Open(); new IdentityDbContext( diff --git a/modules/openiddict/app/OpenIddict.Demo.Server/package.json b/modules/openiddict/app/OpenIddict.Demo.Server/package.json index 93ef466224..aaf79a8f9b 100644 --- a/modules/openiddict/app/OpenIddict.Demo.Server/package.json +++ b/modules/openiddict/app/OpenIddict.Demo.Server/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "~8.1.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "~8.1.0-rc.2" } } diff --git a/modules/openiddict/app/OpenIddict.Demo.Server/wwwroot/libs/malihu-custom-scrollbar-plugin/mCSB_buttons.png b/modules/openiddict/app/OpenIddict.Demo.Server/wwwroot/libs/malihu-custom-scrollbar-plugin/mCSB_buttons.png index 985a9b8b5a..74424318a4 100644 Binary files a/modules/openiddict/app/OpenIddict.Demo.Server/wwwroot/libs/malihu-custom-scrollbar-plugin/mCSB_buttons.png and b/modules/openiddict/app/OpenIddict.Demo.Server/wwwroot/libs/malihu-custom-scrollbar-plugin/mCSB_buttons.png differ diff --git a/modules/openiddict/app/angular/package.json b/modules/openiddict/app/angular/package.json index 177b78fe37..68508e4cbf 100644 --- a/modules/openiddict/app/angular/package.json +++ b/modules/openiddict/app/angular/package.json @@ -12,15 +12,15 @@ }, "private": true, "dependencies": { - "@abp/ng.account": "~8.1.0-rc.1", - "@abp/ng.components": "~8.1.0-rc.1", - "@abp/ng.core": "~8.1.0-rc.1", - "@abp/ng.oauth": "~8.1.0-rc.1", - "@abp/ng.identity": "~8.1.0-rc.1", - "@abp/ng.setting-management": "~8.1.0-rc.1", - "@abp/ng.tenant-management": "~8.1.0-rc.1", - "@abp/ng.theme.shared": "~8.1.0-rc.1", - "@abp/ng.theme.lepton-x": "~3.0.3", + "@abp/ng.account": "~8.1.0-rc.2", + "@abp/ng.components": "~8.1.0-rc.2", + "@abp/ng.core": "~8.1.0-rc.2", + "@abp/ng.oauth": "~8.1.0-rc.2", + "@abp/ng.identity": "~8.1.0-rc.2", + "@abp/ng.setting-management": "~8.1.0-rc.2", + "@abp/ng.tenant-management": "~8.1.0-rc.2", + "@abp/ng.theme.shared": "~8.1.0-rc.2", + "@abp/ng.theme.lepton-x": "~3.1.0-rc.2", "@angular/animations": "^15.0.1", "@angular/common": "^15.0.1", "@angular/compiler": "^15.0.1", @@ -36,7 +36,7 @@ "zone.js": "~0.11.4" }, "devDependencies": { - "@abp/ng.schematics": "~8.1.0-rc.1", + "@abp/ng.schematics": "~8.1.0-rc.2", "@angular-devkit/build-angular": "^15.0.1", "@angular-eslint/builder": "~15.1.0", "@angular-eslint/eslint-plugin": "~15.1.0", diff --git a/modules/openiddict/app/angular/src/assets/images/logo/logo-light-thumbnail.png b/modules/openiddict/app/angular/src/assets/images/logo/logo-light-thumbnail.png index 886c960864..ca3918481a 100644 Binary files a/modules/openiddict/app/angular/src/assets/images/logo/logo-light-thumbnail.png and b/modules/openiddict/app/angular/src/assets/images/logo/logo-light-thumbnail.png differ diff --git a/modules/openiddict/app/angular/src/assets/images/logo/logo-light.png b/modules/openiddict/app/angular/src/assets/images/logo/logo-light.png index 6ebd97e2b2..761fb4443d 100644 Binary files a/modules/openiddict/app/angular/src/assets/images/logo/logo-light.png and b/modules/openiddict/app/angular/src/assets/images/logo/logo-light.png differ diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/AbpOpenIddictStoreBase.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/AbpOpenIddictStoreBase.cs index 784e07f7cf..469476bed4 100644 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/AbpOpenIddictStoreBase.cs +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/AbpOpenIddictStoreBase.cs @@ -6,6 +6,7 @@ using System.Text.Json; using System.Threading.Tasks; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; +using Microsoft.Extensions.Options; using Volo.Abp.Domain.Repositories; using Volo.Abp.Guids; using Volo.Abp.Uow; @@ -22,14 +23,16 @@ public abstract class AbpOpenIddictStoreBase protected IGuidGenerator GuidGenerator { get; } protected AbpOpenIddictIdentifierConverter IdentifierConverter { get; } protected IOpenIddictDbConcurrencyExceptionHandler ConcurrencyExceptionHandler { get; } + protected IOptions StoreOptions { get; } - protected AbpOpenIddictStoreBase(TRepository repository, IUnitOfWorkManager unitOfWorkManager, IGuidGenerator guidGenerator, AbpOpenIddictIdentifierConverter identifierConverter, IOpenIddictDbConcurrencyExceptionHandler concurrencyExceptionHandler) + protected AbpOpenIddictStoreBase(TRepository repository, IUnitOfWorkManager unitOfWorkManager, IGuidGenerator guidGenerator, AbpOpenIddictIdentifierConverter identifierConverter, IOpenIddictDbConcurrencyExceptionHandler concurrencyExceptionHandler, IOptions storeOptions) { Repository = repository; UnitOfWorkManager = unitOfWorkManager; GuidGenerator = guidGenerator; IdentifierConverter = identifierConverter; ConcurrencyExceptionHandler = concurrencyExceptionHandler; + StoreOptions = storeOptions; Logger = NullLogger>.Instance; } diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/AbpOpenIddictStoreOptions.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/AbpOpenIddictStoreOptions.cs new file mode 100644 index 0000000000..cfc9878c86 --- /dev/null +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/AbpOpenIddictStoreOptions.cs @@ -0,0 +1,16 @@ +using System.Data; + +namespace Volo.Abp.OpenIddict; + +public class AbpOpenIddictStoreOptions +{ + public IsolationLevel? PruneIsolationLevel { get; set; } + + public IsolationLevel? DeleteIsolationLevel { get; set; } + + public AbpOpenIddictStoreOptions() + { + PruneIsolationLevel = IsolationLevel.RepeatableRead; + DeleteIsolationLevel = IsolationLevel.Serializable; + } +} diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Applications/AbpOpenIddictApplicationStore.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Applications/AbpOpenIddictApplicationStore.cs index b5f2e03f8e..31c49807e2 100644 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Applications/AbpOpenIddictApplicationStore.cs +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Applications/AbpOpenIddictApplicationStore.cs @@ -9,6 +9,7 @@ using System.Text.Json; using System.Threading; using System.Threading.Tasks; using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Options; using Microsoft.IdentityModel.Tokens; using OpenIddict.Abstractions; using Volo.Abp.Data; @@ -28,8 +29,9 @@ public class AbpOpenIddictApplicationStore : AbpOpenIddictStoreBase storeOptions) + : base(repository, unitOfWorkManager, guidGenerator, identifierConverter, concurrencyExceptionHandler, storeOptions) { TokenRepository = tokenRepository; } @@ -59,7 +61,7 @@ public class AbpOpenIddictApplicationStore : AbpOpenIddictStoreBase storeOptions) + : base(repository, unitOfWorkManager, guidGenerator, identifierConverter, concurrencyExceptionHandler, storeOptions) { ApplicationRepository = applicationRepository; TokenRepository = tokenRepository; @@ -61,7 +63,7 @@ public class AbpOpenIddictAuthorizationStore : AbpOpenIddictStoreBase PruneAsync(DateTimeOffset threshold, CancellationToken cancellationToken) { - using (var uow = UnitOfWorkManager.Begin(requiresNew: true, isTransactional: true, isolationLevel: IsolationLevel.RepeatableRead)) + using (var uow = UnitOfWorkManager.Begin(requiresNew: true, isTransactional: true, isolationLevel: StoreOptions.Value.PruneIsolationLevel)) { var date = threshold.UtcDateTime; var count = await Repository.PruneAsync(date, cancellationToken: cancellationToken); diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Scopes/AbpOpenIddictScopeStore.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Scopes/AbpOpenIddictScopeStore.cs index 15354a6664..9d235c9137 100644 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Scopes/AbpOpenIddictScopeStore.cs +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Scopes/AbpOpenIddictScopeStore.cs @@ -8,6 +8,7 @@ using System.Text.Json; using System.Threading; using System.Threading.Tasks; using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Options; using OpenIddict.Abstractions; using Volo.Abp.Data; using Volo.Abp.Guids; @@ -22,8 +23,9 @@ public class AbpOpenIddictScopeStore : AbpOpenIddictStoreBase storeOptions) + : base(repository, unitOfWorkManager, guidGenerator, identifierConverter, concurrencyExceptionHandler, storeOptions) { } diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Tokens/AbpOpenIddictTokenStore.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Tokens/AbpOpenIddictTokenStore.cs index b861da8407..c8d1f0895c 100644 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Tokens/AbpOpenIddictTokenStore.cs +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Tokens/AbpOpenIddictTokenStore.cs @@ -8,6 +8,7 @@ using System.Text.Json; using System.Threading; using System.Threading.Tasks; using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Options; using OpenIddict.Abstractions; using Volo.Abp.Data; using Volo.Abp.Guids; @@ -29,8 +30,9 @@ public class AbpOpenIddictTokenStore : AbpOpenIddictStoreBase storeOptions) + : base(repository, unitOfWorkManager, guidGenerator, identifierConverter, concurrencyExceptionHandler, storeOptions) { ApplicationRepository = applicationRepository; AuthorizationRepository = authorizationRepository; @@ -309,7 +311,7 @@ public class AbpOpenIddictTokenStore : AbpOpenIddictStoreBase PruneAsync(DateTimeOffset threshold, CancellationToken cancellationToken) { - using (var uow = UnitOfWorkManager.Begin(requiresNew: true, isTransactional: true, isolationLevel: IsolationLevel.RepeatableRead)) + using (var uow = UnitOfWorkManager.Begin(requiresNew: true, isTransactional: true, isolationLevel: StoreOptions.Value.PruneIsolationLevel)) { var date = threshold.UtcDateTime; var count = await Repository.PruneAsync(date, cancellationToken: cancellationToken); diff --git a/modules/openiddict/test/Volo.Abp.OpenIddict.EntityFrameworkCore.Tests/Volo/Abp/OpenIddict/EntityFrameworkCore/OpenIddictEntityFrameworkCoreTestModule.cs b/modules/openiddict/test/Volo.Abp.OpenIddict.EntityFrameworkCore.Tests/Volo/Abp/OpenIddict/EntityFrameworkCore/OpenIddictEntityFrameworkCoreTestModule.cs index b7bf216098..c47ecc7996 100644 --- a/modules/openiddict/test/Volo.Abp.OpenIddict.EntityFrameworkCore.Tests/Volo/Abp/OpenIddict/EntityFrameworkCore/OpenIddictEntityFrameworkCoreTestModule.cs +++ b/modules/openiddict/test/Volo.Abp.OpenIddict.EntityFrameworkCore.Tests/Volo/Abp/OpenIddict/EntityFrameworkCore/OpenIddictEntityFrameworkCoreTestModule.cs @@ -37,7 +37,7 @@ public class OpenIddictEntityFrameworkCoreTestModule : AbpModule private static SqliteConnection CreateDatabaseAndGetConnection() { - var connection = new SqliteConnection("Data Source=:memory:"); + var connection = new AbpUnitTestSqliteConnection("Data Source=:memory:"); connection.Open(); new IdentityDbContext( diff --git a/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/package.json b/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/package.json index 0ac88e6a0d..f01ce9cb12 100644 --- a/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/package.json +++ b/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/package.json @@ -3,6 +3,6 @@ "name": "demo-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "~8.1.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "~8.1.0-rc.2" } } diff --git a/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/wwwroot/libs/malihu-custom-scrollbar-plugin/mCSB_buttons.png b/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/wwwroot/libs/malihu-custom-scrollbar-plugin/mCSB_buttons.png index 985a9b8b5a..74424318a4 100644 Binary files a/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/wwwroot/libs/malihu-custom-scrollbar-plugin/mCSB_buttons.png and b/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/wwwroot/libs/malihu-custom-scrollbar-plugin/mCSB_buttons.png differ diff --git a/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/yarn.lock b/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/yarn.lock index 4f7c6e7715..3bdc5eb52d 100644 --- a/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/yarn.lock +++ b/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/yarn.lock @@ -2,39 +2,39 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.1.0-rc.1.tgz#5f1503a4526817ec7471a08f29cd82a0bedce2e2" - integrity sha512-NCM8JrgCALz7k4JIm3O2H+pCE9slL6V4ntXC3lA7ReA6hLFEWvP1EBIBCXlHLN2qccqh9+pLN+Ow7/LUt+Ph9g== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~8.1.0-rc.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.1.0-rc.1.tgz#dee786935b41c83250cde627ee8211afd42608f0" - integrity sha512-6sUYndKpAyXF8AVlDm+fXusE9IifrO9yP/Wmt82caSLCtx+rjqiPMcewkQkbOGPNi8+B7H+lgF9azEUjifsKVA== - dependencies: - "@abp/aspnetcore.mvc.ui" "~8.1.0-rc.1" - "@abp/bootstrap" "~8.1.0-rc.1" - "@abp/bootstrap-datepicker" "~8.1.0-rc.1" - "@abp/bootstrap-daterangepicker" "~8.1.0-rc.1" - "@abp/datatables.net-bs5" "~8.1.0-rc.1" - "@abp/font-awesome" "~8.1.0-rc.1" - "@abp/jquery-form" "~8.1.0-rc.1" - "@abp/jquery-validation-unobtrusive" "~8.1.0-rc.1" - "@abp/lodash" "~8.1.0-rc.1" - "@abp/luxon" "~8.1.0-rc.1" - "@abp/malihu-custom-scrollbar-plugin" "~8.1.0-rc.1" - "@abp/moment" "~8.1.0-rc.1" - "@abp/select2" "~8.1.0-rc.1" - "@abp/sweetalert2" "~8.1.0-rc.1" - "@abp/timeago" "~8.1.0-rc.1" - "@abp/toastr" "~8.1.0-rc.1" - -"@abp/aspnetcore.mvc.ui@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.1.0-rc.1.tgz#8b5f31f9d5580c511ad47cedee81752e7eda9ecf" - integrity sha512-161Z4zuZkl81mTiZieOI4g9r1AptsrZyrgaUBNOwVyBrAA2reWGRAtDjGi5UASQks+Na/8Vle48swKxT/lNdhQ== +"@abp/aspnetcore.mvc.ui.theme.basic@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.1.0-rc.2.tgz#d3f61ae2a096d14984a7d6c962360c119f56ac18" + integrity sha512-Y1ueZ8P1VsRo6i+PwfHaAI1yVBkZvQ+3hXB5ishRqF/qCbZIk3l6zZ/7Y85z5cobwp1kfTFEAD4qWrrLb4EBVA== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~8.1.0-rc.2" + +"@abp/aspnetcore.mvc.ui.theme.shared@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.1.0-rc.2.tgz#a298f276a110901bf754429a2597e37abf0f779c" + integrity sha512-+rTR6umuWicvvC0Tp8TA+QcB0yJ4S9a6nyvH753AyIFSsszr+soyRoav44WOkkK4IoaoT6GhCI+VtznAssLjlA== + dependencies: + "@abp/aspnetcore.mvc.ui" "~8.1.0-rc.2" + "@abp/bootstrap" "~8.1.0-rc.2" + "@abp/bootstrap-datepicker" "~8.1.0-rc.2" + "@abp/bootstrap-daterangepicker" "~8.1.0-rc.2" + "@abp/datatables.net-bs5" "~8.1.0-rc.2" + "@abp/font-awesome" "~8.1.0-rc.2" + "@abp/jquery-form" "~8.1.0-rc.2" + "@abp/jquery-validation-unobtrusive" "~8.1.0-rc.2" + "@abp/lodash" "~8.1.0-rc.2" + "@abp/luxon" "~8.1.0-rc.2" + "@abp/malihu-custom-scrollbar-plugin" "~8.1.0-rc.2" + "@abp/moment" "~8.1.0-rc.2" + "@abp/select2" "~8.1.0-rc.2" + "@abp/sweetalert2" "~8.1.0-rc.2" + "@abp/timeago" "~8.1.0-rc.2" + "@abp/toastr" "~8.1.0-rc.2" + +"@abp/aspnetcore.mvc.ui@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.1.0-rc.2.tgz#384433d9f1e54e23633d16916ba9615e42e8b4e5" + integrity sha512-6Myb/cKviQxFcKP96wOenYafnYrU5OfhnhvJGRReCaay9IyuCET/ENrPJx7MKunlR5KFoJdvqH0tL7W7SJdFLw== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -43,158 +43,158 @@ merge-stream "^2.0.0" micromatch "^4.0.2" -"@abp/bootstrap-datepicker@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.1.0-rc.1.tgz#bb7adc6e42aa94629b24ca2fa1464aae6138afbe" - integrity sha512-Gfa+I2TK1X1UisGNJhOTIK4eu/upgazeO9P1gOHryDe5JBhmdo6AKv1wEF/csVVXh52xGs+JtSiyhRt2sH36fA== +"@abp/bootstrap-datepicker@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.1.0-rc.2.tgz#adfb49acaf8952da57046520c9524994caf2938e" + integrity sha512-QUVh0DSPHH9PpZXS/MoYO+G4j8DGwHSyw/fF1y+oYVSH28csNnkq4i0fNVl1THwQDHZPZE6BN+WLB6UTy3HLYA== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap-daterangepicker@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.1.0-rc.1.tgz#ad3c54ebd8a6bcc4c39542c90c8391b06869e996" - integrity sha512-nl2eWyYB9ovQvAMQiLeTHG52fl9rLGLvINnG/ftwlIzGN62mDGkShnZVi6I1EJL2yS0OtMcGyfcmnt5d9n2JGg== +"@abp/bootstrap-daterangepicker@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.1.0-rc.2.tgz#d79017933d1329c7ee1812c38ea0aaad098b4e89" + integrity sha512-t5O+Ibo9dvI/KosagDg7z5U3l8il87DP//tn5dyJtbBrx+336T7p2jcn4E2/TbzQbwKhMbkERHrGo0bRUy/N9A== dependencies: bootstrap-daterangepicker "^3.1.0" -"@abp/bootstrap@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.1.0-rc.1.tgz#14c23314775af1d97564fbbb4c5c304c3a24b919" - integrity sha512-Ze9th6Fyhq8Vh2e3Tk/quN0kQw4k5VuMXvgd/WQoqwa8xlWcWt3q2m+xG8NUuvcj6+O0bcg2KO2nzkBl+oJtbg== +"@abp/bootstrap@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.1.0-rc.2.tgz#92b52790122acb9df9d73dfae8d5d0825051986c" + integrity sha512-p5+t5KGU8/hE5cKMbp9I3ZJLiPdZeNMSJJuccIjqGFaivU35bAOouAgWWZfdive66X3h5GgHipEkS3obQITprQ== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" bootstrap "^5.1.3" -"@abp/core@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.1.0-rc.1.tgz#ddb848c3400decfad6fa1c0877ed4c87f69bb125" - integrity sha512-uMSxjVWEBPer3evCx5LPSqvG4kMK5IHWryJOILvDLBxR7bszex18TpAMDP3WqALmBPY5rl3v+GQlcEkmh8iKkw== +"@abp/core@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.1.0-rc.2.tgz#78b6db67f7381d9fc26cd8a35e8e21f417a4bea9" + integrity sha512-5VK48/gCE+FSuWXHzUGh5MN3x2gEG9S2Av4Z83gDaHulF7fuaDu0J1KruPHIjpcpNGoko0lOcXNc80JvsYZsAg== dependencies: - "@abp/utils" "~8.1.0-rc.1" + "@abp/utils" "~8.1.0-rc.2" -"@abp/datatables.net-bs5@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.1.0-rc.1.tgz#4f316b0266665bfddc359d9bd08f5759cbe73610" - integrity sha512-FgdOSvakD87pVS4ECux1oamqh8zQ1t3ZzzErXajA2mORQ2AJH+ESTCPvUcuD99BQCcqbGkWhuzPFM5ADNApkNQ== +"@abp/datatables.net-bs5@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.1.0-rc.2.tgz#878e02bd414b27494891e6440f7bce4e5f3d2207" + integrity sha512-RMVf7jz/S0Oo6heRXTpmxx7FPybWA+Visj5MyCbQaSjcrog9VOFrQnlckTEwosU5jL6NWJ0JtIauuiUDxArQdg== dependencies: - "@abp/datatables.net" "~8.1.0-rc.1" + "@abp/datatables.net" "~8.1.0-rc.2" datatables.net-bs5 "^1.11.4" -"@abp/datatables.net@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.1.0-rc.1.tgz#f4a47ccec70a777d26158bbcd3b560dcf5f7f4bf" - integrity sha512-TBMVeaFRSp9DMhsOgr1UNXZXHL8g4P8/kezMu8wO4W78x3hr9hmQX+h0obCJBkMONbsswLSoc+JVwtLJmpn4QQ== +"@abp/datatables.net@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.1.0-rc.2.tgz#bb9f571f9da7e764f1d21377012d5275f663941e" + integrity sha512-6ukqd4+1FajCP/F0+pB1uiFdUJjPQex0pdl9qrAcWsqSRaO44SUsYThs/RvMJW6heblA8HsCaAW0DYFod0YMbQ== dependencies: - "@abp/jquery" "~8.1.0-rc.1" + "@abp/jquery" "~8.1.0-rc.2" datatables.net "^1.11.4" -"@abp/font-awesome@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.1.0-rc.1.tgz#c544207fd843f46aed124f18e972b6a02bca525c" - integrity sha512-jXGRODAjdsgqUhH0LtX5fniB+2XcHZ1uHs2BG3OyVC11C5OfLd613OIru2y8lrVI9PwGjU9QzkfrWD88eSWUQA== +"@abp/font-awesome@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.1.0-rc.2.tgz#c0af9c2772a78ee7276ccd9aac2f3a361f88848e" + integrity sha512-ick6hyY/oCaIEDdferjI7qAckZUE8lyN1K7EUf8xO8u9lxdK89wCVCEVwZaEDUQth+JQXfiGKkgrH0EdFa9pOQ== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" "@fortawesome/fontawesome-free" "^6.5.1" -"@abp/jquery-form@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.1.0-rc.1.tgz#879772d1ddd3d76f738411d2121f3ca58b9380b1" - integrity sha512-olM3pRzcGq9fNwyI/m+V9AGOcOa2rjSQHPD2uqS3gqNQtNBCRA27Rt7Uarnwy5Aha7obtB3cVANZjcWHyubEQg== +"@abp/jquery-form@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.1.0-rc.2.tgz#00fb51f14e9ddc3e3824082edfc48593a52ee61e" + integrity sha512-8T1SpscYXQ7S+kdtV6esZnncyYAG82LZkM1igfS++nqDIYELSDp1c7DoRMZoEFxwdHfbavzRkGq9BAlBBDyVxQ== dependencies: - "@abp/jquery" "~8.1.0-rc.1" + "@abp/jquery" "~8.1.0-rc.2" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.1.0-rc.1.tgz#0cc63ff8bb8f995e55ded83996d5f10e3ff4ab13" - integrity sha512-PBDD9fkNzVTync4qHPwwavB7R09Z3yis9rGqF0QGHRcIVwfHU3C66gItpVN5xdmNNko/ynlB81qZjIIyqtkiIw== +"@abp/jquery-validation-unobtrusive@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.1.0-rc.2.tgz#74b8d99989cb337725f258f370b8c68fbb882372" + integrity sha512-wwJvMfdiIELJtabZqGUarEc3FJNthK8PGAAeuVzygfjcV0yVlGpAB4aHOOVhyvTsuZ3BxwifGOg7550FIwJ79g== dependencies: - "@abp/jquery-validation" "~8.1.0-rc.1" + "@abp/jquery-validation" "~8.1.0-rc.2" jquery-validation-unobtrusive "^3.2.12" -"@abp/jquery-validation@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.1.0-rc.1.tgz#0006cda24b89534bacd6bb27aef0741f776d4a5f" - integrity sha512-iKbV1uzvJWYOk5xvNPP9zliQJWH5nMKnnKUlV/5VA0NO2PVsFOdG8FvNHE1APvccqKKMoau5NJ2+8/tq/pf88Q== +"@abp/jquery-validation@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.1.0-rc.2.tgz#3ec6e150fe7ace940f3e63f7696cd06014ce06e7" + integrity sha512-pREGhrtU245nACpmOCuyHBkqH/OAzehsBVRj6SyGlA4ScEgQG6Zya1hBAe4BL33bPeWuSCkUZM+lrSDSzexSjA== dependencies: - "@abp/jquery" "~8.1.0-rc.1" + "@abp/jquery" "~8.1.0-rc.2" jquery-validation "^1.19.3" -"@abp/jquery@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.1.0-rc.1.tgz#089847bedd38f0d91bdb57ac7520b8159685db50" - integrity sha512-Amc2/mS8YJU06NW/W0AFCPpvDFweFSkKHcEuhXtrGEdnRWUeNm3TLc80vA88aILpztX2+wdp9QiYomx7QDtkzg== +"@abp/jquery@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.1.0-rc.2.tgz#7d2df898cb7911842915860bae196d174519375a" + integrity sha512-Fe8S3jHS1KDL6EGo2dURdkO7XsZFggB5XQa82DNMJs7njK5qATCxAXiNExSQ5/EbSu0Y/reaC4BGC51OMYe14w== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" jquery "~3.6.0" -"@abp/lodash@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.1.0-rc.1.tgz#1ba04f8eaba8d8878d2ac6f5cfae94cf12f90f4b" - integrity sha512-xIHVLTIdObUx9mX+BkJNJuZePVhgH8v8mlbQAjCajbHvoVtDNb16in8xqsQM+gHfdmhUb7iA95HdhZGhMCM4pw== +"@abp/lodash@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.1.0-rc.2.tgz#37fd0296bc5666699541ed8fb158e60b9137af09" + integrity sha512-2t0UUztGT3x3fET+dmHmN/QYmjkz7MpSi8mK2pLbjlCkAoOSmd+Zv9kgWxwxtE9y9ltu3EHYD15BvPL+fd+srQ== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" lodash "^4.17.21" -"@abp/luxon@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.1.0-rc.1.tgz#0cfd66c5c16df5d0ad9c4bfc48648b24a969c892" - integrity sha512-/aYZ0aaCKZUYuc2weAVjcFfPJMpOGECZoJ/2VDemLpixA+iJisgyZPT0GosLHir2HMPPaXkmlXXqvIaLrUNEZg== +"@abp/luxon@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.1.0-rc.2.tgz#80ea50dd41997fe41578a3d6d7bab2dd14fd60d5" + integrity sha512-hsrna+XTGdWBHflnTCsT1uWYWdWyrEHom2eyi1AhqcFmaMccwTS3+u6e5zsNTuuqpoCF9GU3ZxQ5Q1VPDaxxiw== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" luxon "^2.3.0" -"@abp/malihu-custom-scrollbar-plugin@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.1.0-rc.1.tgz#3b9a7be7c067ebd08112d768f4901023e3f58180" - integrity sha512-Sr14jXu03SkJUegs2Rk17+opLnUJ4GC0rPN+Ruf4NxLr2nXneecq3/E6D/LGC5NVjaMgGXWXtKVczUq9rBf6ow== +"@abp/malihu-custom-scrollbar-plugin@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.1.0-rc.2.tgz#11968069de66efc3a5b2eb79ade4d38fa92ef83e" + integrity sha512-REmQaHSc1GCWwMlWb1XLOgvCmPfvVkMAPg02GOrDYSB3+w9RKZGhkWbAUNlDYehMJin3FgY7kBophZNPi4Ae2A== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/moment@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.1.0-rc.1.tgz#770167bd2fc6ec89a47e2c9b3c1088cad87469c3" - integrity sha512-TKaZWD7d+5DtGqiQbrmiybvidqZzHx3wAPzrH7S4I0g+VH+SGTdaNlII+/ZZhqIpadW07G1SJnnI1EY6aU9msg== +"@abp/moment@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.1.0-rc.2.tgz#73751afb93313e56ecaac7ebb785809d6e26010d" + integrity sha512-JOMS6AbPMVKJP5yQs5aagaT1q/UjlM041YsIN3xKIBX5QFp70zHNRdHtskl4cpnKf8q/nXhtnvawuQiqvGbPbw== dependencies: moment "^2.9.0" -"@abp/select2@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.1.0-rc.1.tgz#6beb1c5cfb5668b5cd51e4aa06388b30b3e7b250" - integrity sha512-1scGGpN2Zwu3FvctSEo/JThmO/6dgdiH8a067GZ9Wtz1fgy8/TCxHxywF/5yCfHxy0aljdYPUS1XyrhXHq6nfA== +"@abp/select2@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.1.0-rc.2.tgz#b13b6f6764affa24a30bff2c02443ad61141ddc8" + integrity sha512-pvGUp/wSanCI8vbyf8UxNnL3kfUCJet/lUREEtRFXZQFpyKVDIntcnz+qFFp0zChums7jiuIziwg/slM5R/kuw== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" select2 "^4.0.13" -"@abp/sweetalert2@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.1.0-rc.1.tgz#c2793eba4517ad767450535d77a793971215bc35" - integrity sha512-Dm9mHs9o2pkZxodNQ5R5L7Asm5ER1Cdi0oqB3ciBAj8ro5yp4lTp/BdnoRZVxJXd9mu/BiNY/NzASSpvkbR1og== +"@abp/sweetalert2@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.1.0-rc.2.tgz#bed9314d47634d3532b0dd32e4e2cd8b77539eb5" + integrity sha512-pq1D/kWH0TSYd8hYWiDulSFcSkUHC5i+0alecwyGUDdWzIPoAPmPjA7HxABKwxlLnnciUGed/mEJngfIPp+OYw== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" sweetalert2 "^11.3.6" -"@abp/timeago@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.1.0-rc.1.tgz#0ce17676ce01c07c40da7a8748a5e7cf5166a001" - integrity sha512-cZqlgA1LLYfBAwrxOhYiH+mcaQqxj3RAXx4q5tGpOOwJGqOr22bMZP7i6ODEro6KPmWc1UpknV6zWESJlBySMQ== +"@abp/timeago@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.1.0-rc.2.tgz#9911bdb81001189f30eb7a68fe345e0a692109b2" + integrity sha512-mlCosUBw+n9A6+gXZ2PL2iS/lLMAI2zx7sXFUuV829rtWq54YOkivj/uTOxGHNwNhE4KbW39NqkKK+IJdl/6kQ== dependencies: - "@abp/jquery" "~8.1.0-rc.1" + "@abp/jquery" "~8.1.0-rc.2" timeago "^1.6.7" -"@abp/toastr@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.1.0-rc.1.tgz#8d863f34b9211096d35872a501780fe5bbe3b164" - integrity sha512-U2sf5ZXHBkwOUxhwg8lk4hiMvs2rTb5Rm7elenUIm8r6tc17mkTTPZQ/qVVDSgtQDaD+DmodhSXBYBD2M/QrCg== +"@abp/toastr@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.1.0-rc.2.tgz#8e09730d7149eadb7a9e4fe8c447022d7647b1d7" + integrity sha512-b4bMxJ5aVSBedhq/fPaR5ayPvZMPmK/gbE6zb03+SF22YV6lQW9RDQV1bgnl/T3YLLXYIsrwPpgi67rPo8cZzQ== dependencies: - "@abp/jquery" "~8.1.0-rc.1" + "@abp/jquery" "~8.1.0-rc.2" toastr "^2.1.4" -"@abp/utils@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.1.0-rc.1.tgz#dafb48ba1b1f885ae96eca27241bd96d65132488" - integrity sha512-nZYWdQqAFVL4XkWcXYuUUXDkTJOZH38Sz0RHMbS/0seCVsjz88nCWRhgDb3Taduo79WZVNhS+rYhPW6KVR659g== +"@abp/utils@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.1.0-rc.2.tgz#1fa7eae2578c82a75a1e4147796f95dbe0367e2f" + integrity sha512-+IcoeTAAReepH8jCcN6cRTb9AP3suzZMtWt65luCWODqFuYk7otCYDyGGwUBMA+nlmXjyWhotMfVkdBgidWpWw== dependencies: just-compare "^2.3.0" diff --git a/modules/setting-management/test/Volo.Abp.SettingManagement.EntityFrameworkCore.Tests/Volo/Abp/SettingManagement/EntityFrameworkCore/AbpSettingManagementEntityFrameworkCoreTestModule.cs b/modules/setting-management/test/Volo.Abp.SettingManagement.EntityFrameworkCore.Tests/Volo/Abp/SettingManagement/EntityFrameworkCore/AbpSettingManagementEntityFrameworkCoreTestModule.cs index 9a2c51853e..58df348af7 100644 --- a/modules/setting-management/test/Volo.Abp.SettingManagement.EntityFrameworkCore.Tests/Volo/Abp/SettingManagement/EntityFrameworkCore/AbpSettingManagementEntityFrameworkCoreTestModule.cs +++ b/modules/setting-management/test/Volo.Abp.SettingManagement.EntityFrameworkCore.Tests/Volo/Abp/SettingManagement/EntityFrameworkCore/AbpSettingManagementEntityFrameworkCoreTestModule.cs @@ -33,7 +33,7 @@ public class AbpSettingManagementEntityFrameworkCoreTestModule : AbpModule private static SqliteConnection CreateDatabaseAndGetConnection() { - var connection = new SqliteConnection("Data Source=:memory:"); + var connection = new AbpUnitTestSqliteConnection("Data Source=:memory:"); connection.Open(); new SettingManagementDbContext( diff --git a/modules/tenant-management/test/Volo.Abp.TenantManagement.EntityFrameworkCore.Tests/Volo/Abp/TenantManagement/EntityFrameworkCore/AbpTenantManagementEntityFrameworkCoreTestModule.cs b/modules/tenant-management/test/Volo.Abp.TenantManagement.EntityFrameworkCore.Tests/Volo/Abp/TenantManagement/EntityFrameworkCore/AbpTenantManagementEntityFrameworkCoreTestModule.cs index 9358a42216..336fbb228f 100644 --- a/modules/tenant-management/test/Volo.Abp.TenantManagement.EntityFrameworkCore.Tests/Volo/Abp/TenantManagement/EntityFrameworkCore/AbpTenantManagementEntityFrameworkCoreTestModule.cs +++ b/modules/tenant-management/test/Volo.Abp.TenantManagement.EntityFrameworkCore.Tests/Volo/Abp/TenantManagement/EntityFrameworkCore/AbpTenantManagementEntityFrameworkCoreTestModule.cs @@ -37,7 +37,7 @@ public class AbpTenantManagementEntityFrameworkCoreTestModule : AbpModule private static SqliteConnection CreateDatabaseAndGetConnection() { - var connection = new SqliteConnection("Data Source=:memory:"); + var connection = new AbpUnitTestSqliteConnection("Data Source=:memory:"); connection.Open(); new TenantManagementDbContext( diff --git a/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/package.json b/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/package.json index 2a2f226b62..f4e998d662 100644 --- a/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/package.json +++ b/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/package.json @@ -3,7 +3,7 @@ "version": "1.0.0", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "~8.1.0-rc.1", - "@abp/virtual-file-explorer": "~8.1.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "~8.1.0-rc.2", + "@abp/virtual-file-explorer": "~8.1.0-rc.2" } } diff --git a/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/malihu-custom-scrollbar-plugin/mCSB_buttons.png b/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/malihu-custom-scrollbar-plugin/mCSB_buttons.png index 985a9b8b5a..74424318a4 100644 Binary files a/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/malihu-custom-scrollbar-plugin/mCSB_buttons.png and b/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/malihu-custom-scrollbar-plugin/mCSB_buttons.png differ diff --git a/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/yarn.lock b/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/yarn.lock index c4330168f0..afc82b5d69 100644 --- a/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/yarn.lock +++ b/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/yarn.lock @@ -2,39 +2,39 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.1.0-rc.1.tgz#5f1503a4526817ec7471a08f29cd82a0bedce2e2" - integrity sha512-NCM8JrgCALz7k4JIm3O2H+pCE9slL6V4ntXC3lA7ReA6hLFEWvP1EBIBCXlHLN2qccqh9+pLN+Ow7/LUt+Ph9g== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~8.1.0-rc.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.1.0-rc.1.tgz#dee786935b41c83250cde627ee8211afd42608f0" - integrity sha512-6sUYndKpAyXF8AVlDm+fXusE9IifrO9yP/Wmt82caSLCtx+rjqiPMcewkQkbOGPNi8+B7H+lgF9azEUjifsKVA== - dependencies: - "@abp/aspnetcore.mvc.ui" "~8.1.0-rc.1" - "@abp/bootstrap" "~8.1.0-rc.1" - "@abp/bootstrap-datepicker" "~8.1.0-rc.1" - "@abp/bootstrap-daterangepicker" "~8.1.0-rc.1" - "@abp/datatables.net-bs5" "~8.1.0-rc.1" - "@abp/font-awesome" "~8.1.0-rc.1" - "@abp/jquery-form" "~8.1.0-rc.1" - "@abp/jquery-validation-unobtrusive" "~8.1.0-rc.1" - "@abp/lodash" "~8.1.0-rc.1" - "@abp/luxon" "~8.1.0-rc.1" - "@abp/malihu-custom-scrollbar-plugin" "~8.1.0-rc.1" - "@abp/moment" "~8.1.0-rc.1" - "@abp/select2" "~8.1.0-rc.1" - "@abp/sweetalert2" "~8.1.0-rc.1" - "@abp/timeago" "~8.1.0-rc.1" - "@abp/toastr" "~8.1.0-rc.1" - -"@abp/aspnetcore.mvc.ui@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.1.0-rc.1.tgz#8b5f31f9d5580c511ad47cedee81752e7eda9ecf" - integrity sha512-161Z4zuZkl81mTiZieOI4g9r1AptsrZyrgaUBNOwVyBrAA2reWGRAtDjGi5UASQks+Na/8Vle48swKxT/lNdhQ== +"@abp/aspnetcore.mvc.ui.theme.basic@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.1.0-rc.2.tgz#d3f61ae2a096d14984a7d6c962360c119f56ac18" + integrity sha512-Y1ueZ8P1VsRo6i+PwfHaAI1yVBkZvQ+3hXB5ishRqF/qCbZIk3l6zZ/7Y85z5cobwp1kfTFEAD4qWrrLb4EBVA== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~8.1.0-rc.2" + +"@abp/aspnetcore.mvc.ui.theme.shared@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.1.0-rc.2.tgz#a298f276a110901bf754429a2597e37abf0f779c" + integrity sha512-+rTR6umuWicvvC0Tp8TA+QcB0yJ4S9a6nyvH753AyIFSsszr+soyRoav44WOkkK4IoaoT6GhCI+VtznAssLjlA== + dependencies: + "@abp/aspnetcore.mvc.ui" "~8.1.0-rc.2" + "@abp/bootstrap" "~8.1.0-rc.2" + "@abp/bootstrap-datepicker" "~8.1.0-rc.2" + "@abp/bootstrap-daterangepicker" "~8.1.0-rc.2" + "@abp/datatables.net-bs5" "~8.1.0-rc.2" + "@abp/font-awesome" "~8.1.0-rc.2" + "@abp/jquery-form" "~8.1.0-rc.2" + "@abp/jquery-validation-unobtrusive" "~8.1.0-rc.2" + "@abp/lodash" "~8.1.0-rc.2" + "@abp/luxon" "~8.1.0-rc.2" + "@abp/malihu-custom-scrollbar-plugin" "~8.1.0-rc.2" + "@abp/moment" "~8.1.0-rc.2" + "@abp/select2" "~8.1.0-rc.2" + "@abp/sweetalert2" "~8.1.0-rc.2" + "@abp/timeago" "~8.1.0-rc.2" + "@abp/toastr" "~8.1.0-rc.2" + +"@abp/aspnetcore.mvc.ui@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.1.0-rc.2.tgz#384433d9f1e54e23633d16916ba9615e42e8b4e5" + integrity sha512-6Myb/cKviQxFcKP96wOenYafnYrU5OfhnhvJGRReCaay9IyuCET/ENrPJx7MKunlR5KFoJdvqH0tL7W7SJdFLw== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -43,185 +43,185 @@ merge-stream "^2.0.0" micromatch "^4.0.2" -"@abp/bootstrap-datepicker@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.1.0-rc.1.tgz#bb7adc6e42aa94629b24ca2fa1464aae6138afbe" - integrity sha512-Gfa+I2TK1X1UisGNJhOTIK4eu/upgazeO9P1gOHryDe5JBhmdo6AKv1wEF/csVVXh52xGs+JtSiyhRt2sH36fA== +"@abp/bootstrap-datepicker@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.1.0-rc.2.tgz#adfb49acaf8952da57046520c9524994caf2938e" + integrity sha512-QUVh0DSPHH9PpZXS/MoYO+G4j8DGwHSyw/fF1y+oYVSH28csNnkq4i0fNVl1THwQDHZPZE6BN+WLB6UTy3HLYA== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap-daterangepicker@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.1.0-rc.1.tgz#ad3c54ebd8a6bcc4c39542c90c8391b06869e996" - integrity sha512-nl2eWyYB9ovQvAMQiLeTHG52fl9rLGLvINnG/ftwlIzGN62mDGkShnZVi6I1EJL2yS0OtMcGyfcmnt5d9n2JGg== +"@abp/bootstrap-daterangepicker@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.1.0-rc.2.tgz#d79017933d1329c7ee1812c38ea0aaad098b4e89" + integrity sha512-t5O+Ibo9dvI/KosagDg7z5U3l8il87DP//tn5dyJtbBrx+336T7p2jcn4E2/TbzQbwKhMbkERHrGo0bRUy/N9A== dependencies: bootstrap-daterangepicker "^3.1.0" -"@abp/bootstrap@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.1.0-rc.1.tgz#14c23314775af1d97564fbbb4c5c304c3a24b919" - integrity sha512-Ze9th6Fyhq8Vh2e3Tk/quN0kQw4k5VuMXvgd/WQoqwa8xlWcWt3q2m+xG8NUuvcj6+O0bcg2KO2nzkBl+oJtbg== +"@abp/bootstrap@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.1.0-rc.2.tgz#92b52790122acb9df9d73dfae8d5d0825051986c" + integrity sha512-p5+t5KGU8/hE5cKMbp9I3ZJLiPdZeNMSJJuccIjqGFaivU35bAOouAgWWZfdive66X3h5GgHipEkS3obQITprQ== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" bootstrap "^5.1.3" -"@abp/clipboard@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-8.1.0-rc.1.tgz#1e82e955fab968ce71002f10efe9ae4a78c65696" - integrity sha512-k8riJptYKKpRIlsQng6pJOk5MdxK414aIPmoAqpcWv3BfGuZqndnp/TpZPWknQqRBm8OUhnC4eQh7L00mjtHuw== +"@abp/clipboard@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-8.1.0-rc.2.tgz#87c5299b0c63fadd7307251040af330247830c13" + integrity sha512-Piy8bPIJOoCNZjwmUZKe2kA16Weqhvz/SjaxvrlCADmN/0zY2WPFOhE89WA7pb9M/2EGynWF/hot35XqbG15CQ== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" clipboard "^2.0.8" -"@abp/core@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.1.0-rc.1.tgz#ddb848c3400decfad6fa1c0877ed4c87f69bb125" - integrity sha512-uMSxjVWEBPer3evCx5LPSqvG4kMK5IHWryJOILvDLBxR7bszex18TpAMDP3WqALmBPY5rl3v+GQlcEkmh8iKkw== +"@abp/core@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.1.0-rc.2.tgz#78b6db67f7381d9fc26cd8a35e8e21f417a4bea9" + integrity sha512-5VK48/gCE+FSuWXHzUGh5MN3x2gEG9S2Av4Z83gDaHulF7fuaDu0J1KruPHIjpcpNGoko0lOcXNc80JvsYZsAg== dependencies: - "@abp/utils" "~8.1.0-rc.1" + "@abp/utils" "~8.1.0-rc.2" -"@abp/datatables.net-bs5@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.1.0-rc.1.tgz#4f316b0266665bfddc359d9bd08f5759cbe73610" - integrity sha512-FgdOSvakD87pVS4ECux1oamqh8zQ1t3ZzzErXajA2mORQ2AJH+ESTCPvUcuD99BQCcqbGkWhuzPFM5ADNApkNQ== +"@abp/datatables.net-bs5@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.1.0-rc.2.tgz#878e02bd414b27494891e6440f7bce4e5f3d2207" + integrity sha512-RMVf7jz/S0Oo6heRXTpmxx7FPybWA+Visj5MyCbQaSjcrog9VOFrQnlckTEwosU5jL6NWJ0JtIauuiUDxArQdg== dependencies: - "@abp/datatables.net" "~8.1.0-rc.1" + "@abp/datatables.net" "~8.1.0-rc.2" datatables.net-bs5 "^1.11.4" -"@abp/datatables.net@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.1.0-rc.1.tgz#f4a47ccec70a777d26158bbcd3b560dcf5f7f4bf" - integrity sha512-TBMVeaFRSp9DMhsOgr1UNXZXHL8g4P8/kezMu8wO4W78x3hr9hmQX+h0obCJBkMONbsswLSoc+JVwtLJmpn4QQ== +"@abp/datatables.net@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.1.0-rc.2.tgz#bb9f571f9da7e764f1d21377012d5275f663941e" + integrity sha512-6ukqd4+1FajCP/F0+pB1uiFdUJjPQex0pdl9qrAcWsqSRaO44SUsYThs/RvMJW6heblA8HsCaAW0DYFod0YMbQ== dependencies: - "@abp/jquery" "~8.1.0-rc.1" + "@abp/jquery" "~8.1.0-rc.2" datatables.net "^1.11.4" -"@abp/font-awesome@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.1.0-rc.1.tgz#c544207fd843f46aed124f18e972b6a02bca525c" - integrity sha512-jXGRODAjdsgqUhH0LtX5fniB+2XcHZ1uHs2BG3OyVC11C5OfLd613OIru2y8lrVI9PwGjU9QzkfrWD88eSWUQA== +"@abp/font-awesome@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.1.0-rc.2.tgz#c0af9c2772a78ee7276ccd9aac2f3a361f88848e" + integrity sha512-ick6hyY/oCaIEDdferjI7qAckZUE8lyN1K7EUf8xO8u9lxdK89wCVCEVwZaEDUQth+JQXfiGKkgrH0EdFa9pOQ== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" "@fortawesome/fontawesome-free" "^6.5.1" -"@abp/jquery-form@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.1.0-rc.1.tgz#879772d1ddd3d76f738411d2121f3ca58b9380b1" - integrity sha512-olM3pRzcGq9fNwyI/m+V9AGOcOa2rjSQHPD2uqS3gqNQtNBCRA27Rt7Uarnwy5Aha7obtB3cVANZjcWHyubEQg== +"@abp/jquery-form@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.1.0-rc.2.tgz#00fb51f14e9ddc3e3824082edfc48593a52ee61e" + integrity sha512-8T1SpscYXQ7S+kdtV6esZnncyYAG82LZkM1igfS++nqDIYELSDp1c7DoRMZoEFxwdHfbavzRkGq9BAlBBDyVxQ== dependencies: - "@abp/jquery" "~8.1.0-rc.1" + "@abp/jquery" "~8.1.0-rc.2" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.1.0-rc.1.tgz#0cc63ff8bb8f995e55ded83996d5f10e3ff4ab13" - integrity sha512-PBDD9fkNzVTync4qHPwwavB7R09Z3yis9rGqF0QGHRcIVwfHU3C66gItpVN5xdmNNko/ynlB81qZjIIyqtkiIw== +"@abp/jquery-validation-unobtrusive@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.1.0-rc.2.tgz#74b8d99989cb337725f258f370b8c68fbb882372" + integrity sha512-wwJvMfdiIELJtabZqGUarEc3FJNthK8PGAAeuVzygfjcV0yVlGpAB4aHOOVhyvTsuZ3BxwifGOg7550FIwJ79g== dependencies: - "@abp/jquery-validation" "~8.1.0-rc.1" + "@abp/jquery-validation" "~8.1.0-rc.2" jquery-validation-unobtrusive "^3.2.12" -"@abp/jquery-validation@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.1.0-rc.1.tgz#0006cda24b89534bacd6bb27aef0741f776d4a5f" - integrity sha512-iKbV1uzvJWYOk5xvNPP9zliQJWH5nMKnnKUlV/5VA0NO2PVsFOdG8FvNHE1APvccqKKMoau5NJ2+8/tq/pf88Q== +"@abp/jquery-validation@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.1.0-rc.2.tgz#3ec6e150fe7ace940f3e63f7696cd06014ce06e7" + integrity sha512-pREGhrtU245nACpmOCuyHBkqH/OAzehsBVRj6SyGlA4ScEgQG6Zya1hBAe4BL33bPeWuSCkUZM+lrSDSzexSjA== dependencies: - "@abp/jquery" "~8.1.0-rc.1" + "@abp/jquery" "~8.1.0-rc.2" jquery-validation "^1.19.3" -"@abp/jquery@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.1.0-rc.1.tgz#089847bedd38f0d91bdb57ac7520b8159685db50" - integrity sha512-Amc2/mS8YJU06NW/W0AFCPpvDFweFSkKHcEuhXtrGEdnRWUeNm3TLc80vA88aILpztX2+wdp9QiYomx7QDtkzg== +"@abp/jquery@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.1.0-rc.2.tgz#7d2df898cb7911842915860bae196d174519375a" + integrity sha512-Fe8S3jHS1KDL6EGo2dURdkO7XsZFggB5XQa82DNMJs7njK5qATCxAXiNExSQ5/EbSu0Y/reaC4BGC51OMYe14w== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" jquery "~3.6.0" -"@abp/lodash@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.1.0-rc.1.tgz#1ba04f8eaba8d8878d2ac6f5cfae94cf12f90f4b" - integrity sha512-xIHVLTIdObUx9mX+BkJNJuZePVhgH8v8mlbQAjCajbHvoVtDNb16in8xqsQM+gHfdmhUb7iA95HdhZGhMCM4pw== +"@abp/lodash@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.1.0-rc.2.tgz#37fd0296bc5666699541ed8fb158e60b9137af09" + integrity sha512-2t0UUztGT3x3fET+dmHmN/QYmjkz7MpSi8mK2pLbjlCkAoOSmd+Zv9kgWxwxtE9y9ltu3EHYD15BvPL+fd+srQ== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" lodash "^4.17.21" -"@abp/luxon@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.1.0-rc.1.tgz#0cfd66c5c16df5d0ad9c4bfc48648b24a969c892" - integrity sha512-/aYZ0aaCKZUYuc2weAVjcFfPJMpOGECZoJ/2VDemLpixA+iJisgyZPT0GosLHir2HMPPaXkmlXXqvIaLrUNEZg== +"@abp/luxon@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.1.0-rc.2.tgz#80ea50dd41997fe41578a3d6d7bab2dd14fd60d5" + integrity sha512-hsrna+XTGdWBHflnTCsT1uWYWdWyrEHom2eyi1AhqcFmaMccwTS3+u6e5zsNTuuqpoCF9GU3ZxQ5Q1VPDaxxiw== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" luxon "^2.3.0" -"@abp/malihu-custom-scrollbar-plugin@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.1.0-rc.1.tgz#3b9a7be7c067ebd08112d768f4901023e3f58180" - integrity sha512-Sr14jXu03SkJUegs2Rk17+opLnUJ4GC0rPN+Ruf4NxLr2nXneecq3/E6D/LGC5NVjaMgGXWXtKVczUq9rBf6ow== +"@abp/malihu-custom-scrollbar-plugin@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.1.0-rc.2.tgz#11968069de66efc3a5b2eb79ade4d38fa92ef83e" + integrity sha512-REmQaHSc1GCWwMlWb1XLOgvCmPfvVkMAPg02GOrDYSB3+w9RKZGhkWbAUNlDYehMJin3FgY7kBophZNPi4Ae2A== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/moment@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.1.0-rc.1.tgz#770167bd2fc6ec89a47e2c9b3c1088cad87469c3" - integrity sha512-TKaZWD7d+5DtGqiQbrmiybvidqZzHx3wAPzrH7S4I0g+VH+SGTdaNlII+/ZZhqIpadW07G1SJnnI1EY6aU9msg== +"@abp/moment@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.1.0-rc.2.tgz#73751afb93313e56ecaac7ebb785809d6e26010d" + integrity sha512-JOMS6AbPMVKJP5yQs5aagaT1q/UjlM041YsIN3xKIBX5QFp70zHNRdHtskl4cpnKf8q/nXhtnvawuQiqvGbPbw== dependencies: moment "^2.9.0" -"@abp/prismjs@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-8.1.0-rc.1.tgz#a2244029151b9e4f5d8c2c6c94eba2b976c2c776" - integrity sha512-1D30iE4EXOPLirNJIO22/uNQ457xSi5f6iQwQPovuxJaCeb4eOm1Sfg5yR8XmXrKNya/MJhQN2xyyahVxNEe8w== +"@abp/prismjs@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-8.1.0-rc.2.tgz#5b2718ed92ae97e6cfeca1a61e860651ee474626" + integrity sha512-GxcnZmqY0mqEUvUQLX2gDeLKGryOQyRS4MWEpabccDmh6ntXzN2JdDcm5lP/c/5UAVeovn3PrdrJ3x2TTrGDWQ== dependencies: - "@abp/clipboard" "~8.1.0-rc.1" - "@abp/core" "~8.1.0-rc.1" + "@abp/clipboard" "~8.1.0-rc.2" + "@abp/core" "~8.1.0-rc.2" prismjs "^1.26.0" -"@abp/select2@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.1.0-rc.1.tgz#6beb1c5cfb5668b5cd51e4aa06388b30b3e7b250" - integrity sha512-1scGGpN2Zwu3FvctSEo/JThmO/6dgdiH8a067GZ9Wtz1fgy8/TCxHxywF/5yCfHxy0aljdYPUS1XyrhXHq6nfA== +"@abp/select2@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.1.0-rc.2.tgz#b13b6f6764affa24a30bff2c02443ad61141ddc8" + integrity sha512-pvGUp/wSanCI8vbyf8UxNnL3kfUCJet/lUREEtRFXZQFpyKVDIntcnz+qFFp0zChums7jiuIziwg/slM5R/kuw== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" select2 "^4.0.13" -"@abp/sweetalert2@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.1.0-rc.1.tgz#c2793eba4517ad767450535d77a793971215bc35" - integrity sha512-Dm9mHs9o2pkZxodNQ5R5L7Asm5ER1Cdi0oqB3ciBAj8ro5yp4lTp/BdnoRZVxJXd9mu/BiNY/NzASSpvkbR1og== +"@abp/sweetalert2@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.1.0-rc.2.tgz#bed9314d47634d3532b0dd32e4e2cd8b77539eb5" + integrity sha512-pq1D/kWH0TSYd8hYWiDulSFcSkUHC5i+0alecwyGUDdWzIPoAPmPjA7HxABKwxlLnnciUGed/mEJngfIPp+OYw== dependencies: - "@abp/core" "~8.1.0-rc.1" + "@abp/core" "~8.1.0-rc.2" sweetalert2 "^11.3.6" -"@abp/timeago@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.1.0-rc.1.tgz#0ce17676ce01c07c40da7a8748a5e7cf5166a001" - integrity sha512-cZqlgA1LLYfBAwrxOhYiH+mcaQqxj3RAXx4q5tGpOOwJGqOr22bMZP7i6ODEro6KPmWc1UpknV6zWESJlBySMQ== +"@abp/timeago@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.1.0-rc.2.tgz#9911bdb81001189f30eb7a68fe345e0a692109b2" + integrity sha512-mlCosUBw+n9A6+gXZ2PL2iS/lLMAI2zx7sXFUuV829rtWq54YOkivj/uTOxGHNwNhE4KbW39NqkKK+IJdl/6kQ== dependencies: - "@abp/jquery" "~8.1.0-rc.1" + "@abp/jquery" "~8.1.0-rc.2" timeago "^1.6.7" -"@abp/toastr@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.1.0-rc.1.tgz#8d863f34b9211096d35872a501780fe5bbe3b164" - integrity sha512-U2sf5ZXHBkwOUxhwg8lk4hiMvs2rTb5Rm7elenUIm8r6tc17mkTTPZQ/qVVDSgtQDaD+DmodhSXBYBD2M/QrCg== +"@abp/toastr@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.1.0-rc.2.tgz#8e09730d7149eadb7a9e4fe8c447022d7647b1d7" + integrity sha512-b4bMxJ5aVSBedhq/fPaR5ayPvZMPmK/gbE6zb03+SF22YV6lQW9RDQV1bgnl/T3YLLXYIsrwPpgi67rPo8cZzQ== dependencies: - "@abp/jquery" "~8.1.0-rc.1" + "@abp/jquery" "~8.1.0-rc.2" toastr "^2.1.4" -"@abp/utils@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.1.0-rc.1.tgz#dafb48ba1b1f885ae96eca27241bd96d65132488" - integrity sha512-nZYWdQqAFVL4XkWcXYuUUXDkTJOZH38Sz0RHMbS/0seCVsjz88nCWRhgDb3Taduo79WZVNhS+rYhPW6KVR659g== +"@abp/utils@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.1.0-rc.2.tgz#1fa7eae2578c82a75a1e4147796f95dbe0367e2f" + integrity sha512-+IcoeTAAReepH8jCcN6cRTb9AP3suzZMtWt65luCWODqFuYk7otCYDyGGwUBMA+nlmXjyWhotMfVkdBgidWpWw== dependencies: just-compare "^2.3.0" -"@abp/virtual-file-explorer@~8.1.0-rc.1": - version "8.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/virtual-file-explorer/-/virtual-file-explorer-8.1.0-rc.1.tgz#fcee390c46827c9b12e91945fbe51de50b830343" - integrity sha512-77R1uTx217D0HN+YpHulWC8K20jQ18wlBcjEA9n7C9ODkCz+Vay5bWSoOujWh3BKBVA1+Sf8K9w8AgR9AJDuCg== +"@abp/virtual-file-explorer@~8.1.0-rc.2": + version "8.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/virtual-file-explorer/-/virtual-file-explorer-8.1.0-rc.2.tgz#14a008825754d6245c3b6c72843ed3941223c83b" + integrity sha512-0r8ZLzKtF4uZyQzI4Hu3PwjbbjhpznFc09pB+S8CYS/P5MpT8hLwyJk2U5t5L8q2PlNoMX3H+eCScCCBJJ0HYQ== dependencies: - "@abp/clipboard" "~8.1.0-rc.1" - "@abp/prismjs" "~8.1.0-rc.1" + "@abp/clipboard" "~8.1.0-rc.2" + "@abp/prismjs" "~8.1.0-rc.2" "@fortawesome/fontawesome-free@^6.5.1": version "6.5.1" diff --git a/npm/lerna.json b/npm/lerna.json index 52aa49aea1..b621bc654f 100644 --- a/npm/lerna.json +++ b/npm/lerna.json @@ -1,5 +1,5 @@ { - "version": "8.1.0-rc.1", + "version": "8.1.0-rc.2", "packages": [ "packs/*" ], diff --git a/npm/ng-packs/package.json b/npm/ng-packs/package.json index 03a55f7e36..6b46fa897a 100644 --- a/npm/ng-packs/package.json +++ b/npm/ng-packs/package.json @@ -44,8 +44,8 @@ }, "private": true, "devDependencies": { - "@abp/ng.theme.lepton-x": "~3.0.3", - "@abp/utils": "~8.1.0-rc.1", + "@abp/ng.theme.lepton-x": "~3.1.0-rc.2", + "@abp/utils": "~8.1.0-rc.2", "@angular-devkit/build-angular": "~17.1.0", "@angular-devkit/core": "~17.1.0", "@angular-devkit/schematics": "~17.1.0", diff --git a/npm/ng-packs/packages/account-core/package.json b/npm/ng-packs/packages/account-core/package.json index 67e6c9ad55..5d5b5be2f6 100644 --- a/npm/ng-packs/packages/account-core/package.json +++ b/npm/ng-packs/packages/account-core/package.json @@ -1,14 +1,14 @@ { "name": "@abp/ng.account.core", - "version": "8.1.0-rc.1", + "version": "8.1.0-rc.2", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "peerDependencies": { - "@abp/ng.core": "~8.1.0-rc.1", - "@abp/ng.theme.shared": "~8.1.0-rc.1", + "@abp/ng.core": "~8.1.0-rc.2", + "@abp/ng.theme.shared": "~8.1.0-rc.2", "@angular/common": ">=12.0.0", "@angular/core": ">=12.0.0" }, diff --git a/npm/ng-packs/packages/account/package.json b/npm/ng-packs/packages/account/package.json index d658e84b86..ebbd8e8799 100644 --- a/npm/ng-packs/packages/account/package.json +++ b/npm/ng-packs/packages/account/package.json @@ -1,14 +1,14 @@ { "name": "@abp/ng.account", - "version": "8.1.0-rc.1", + "version": "8.1.0-rc.2", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.account.core": "~8.1.0-rc.1", - "@abp/ng.theme.shared": "~8.1.0-rc.1", + "@abp/ng.account.core": "~8.1.0-rc.2", + "@abp/ng.theme.shared": "~8.1.0-rc.2", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/components/extensible/src/lib/components/extensible-form/extensible-form-prop.component.html b/npm/ng-packs/packages/components/extensible/src/lib/components/extensible-form/extensible-form-prop.component.html index 4f77dd0cf7..1f8833f929 100644 --- a/npm/ng-packs/packages/components/extensible/src/lib/components/extensible-form/extensible-form-prop.component.html +++ b/npm/ng-packs/packages/components/extensible/src/lib/components/extensible-form/extensible-form-prop.component.html @@ -1,7 +1,4 @@ - + @@ -178,5 +175,8 @@ {{ prop.displayName | abpLocalization }} } {{ asterisk }} + @if (prop.tooltip) { + + } diff --git a/npm/ng-packs/packages/components/extensible/src/lib/components/extensible-form/extensible-form-prop.component.ts b/npm/ng-packs/packages/components/extensible/src/lib/components/extensible-form/extensible-form-prop.component.ts index 37f05a892e..1805d87233 100644 --- a/npm/ng-packs/packages/components/extensible/src/lib/components/extensible-form/extensible-form-prop.component.ts +++ b/npm/ng-packs/packages/components/extensible/src/lib/components/extensible-form/extensible-form-prop.component.ts @@ -49,6 +49,7 @@ import { NgxValidateCoreModule } from '@ngx-validate/core'; import { ExtensibleFormPropService } from '../../services/extensible-form-prop.service'; import { CreateInjectorPipe } from '../../pipes/create-injector.pipe'; import { CommonModule } from '@angular/common'; +import { NgbTooltip } from '@ng-bootstrap/ng-bootstrap'; @Component({ selector: 'abp-extensible-form-prop', @@ -61,6 +62,7 @@ import { CommonModule } from '@angular/common'; ReactiveFormsModule, DisabledDirective, NgxValidateCoreModule, + NgbTooltip, NgbTypeaheadModule, CreateInjectorPipe, ShowPasswordDirective, diff --git a/npm/ng-packs/packages/components/extensible/src/lib/components/extensible-form/extensible-form.component.html b/npm/ng-packs/packages/components/extensible/src/lib/components/extensible-form/extensible-form.component.html index 739fe6a114..4b47e8fbb1 100644 --- a/npm/ng-packs/packages/components/extensible/src/lib/components/extensible-form/extensible-form.component.html +++ b/npm/ng-packs/packages/components/extensible/src/lib/components/extensible-form/extensible-form.component.html @@ -1,9 +1,10 @@ @if (form) { - @for (groupedProp of groupedPropList.items; track $index) { + @for (groupedProp of groupedPropList.items; track i; let i = $index) { - @if(groupedProp.group?.className) { -
} @else { - - + + }
- } + } } @for (prop of groupedProp.formPropList; let first = $first; track prop.name) { - @if(prop.visible(data)) { - - - - - - - - + @if (prop.visible(data)) { + @if (extraProperties.controls[prop.name]) { + + + + } @else { + @if (form.get(prop.name)) { + + } + } } } diff --git a/npm/ng-packs/packages/components/extensible/src/lib/components/extensible-form/extensible-form.component.ts b/npm/ng-packs/packages/components/extensible/src/lib/components/extensible-form/extensible-form.component.ts index c7436d3374..455f8cdd99 100644 --- a/npm/ng-packs/packages/components/extensible/src/lib/components/extensible-form/extensible-form.component.ts +++ b/npm/ng-packs/packages/components/extensible/src/lib/components/extensible-form/extensible-form.component.ts @@ -1,76 +1,84 @@ -import {TrackByService} from '@abp/ng.core'; +import { TrackByService } from '@abp/ng.core'; import { - ChangeDetectionStrategy, - ChangeDetectorRef, - Component, inject, - Input, - Optional, - QueryList, - SkipSelf, - ViewChildren, + ChangeDetectionStrategy, + ChangeDetectorRef, + Component, + inject, + Input, + Optional, + QueryList, + SkipSelf, + ViewChildren, } from '@angular/core'; -import {ControlContainer, ReactiveFormsModule, UntypedFormGroup} from '@angular/forms'; -import {EXTRA_PROPERTIES_KEY} from '../../constants/extra-properties'; -import {FormPropList, GroupedFormPropList} from '../../models/form-props'; -import {ExtensionsService} from '../../services/extensions.service'; -import {EXTENSIONS_IDENTIFIER} from '../../tokens/extensions.token'; -import {selfFactory} from '../../utils/factory.util'; -import {ExtensibleFormPropComponent} from './extensible-form-prop.component'; -import {CommonModule} from "@angular/common"; -import {PropDataDirective} from "../../directives/prop-data.directive"; +import { ControlContainer, ReactiveFormsModule, UntypedFormGroup } from '@angular/forms'; +import { EXTRA_PROPERTIES_KEY } from '../../constants/extra-properties'; +import { FormProp, FormPropList, GroupedFormPropList } from '../../models/form-props'; +import { ExtensionsService } from '../../services/extensions.service'; +import { EXTENSIONS_IDENTIFIER } from '../../tokens/extensions.token'; +import { selfFactory } from '../../utils/factory.util'; +import { ExtensibleFormPropComponent } from './extensible-form-prop.component'; +import { CommonModule } from '@angular/common'; +import { PropDataDirective } from '../../directives/prop-data.directive'; @Component({ - exportAs: 'abpExtensibleForm', - selector: 'abp-extensible-form', - templateUrl: './extensible-form.component.html', - standalone:true, - imports:[CommonModule, PropDataDirective,ReactiveFormsModule,ExtensibleFormPropComponent], - changeDetection: ChangeDetectionStrategy.OnPush, - viewProviders: [ - { - provide: ControlContainer, - useFactory: selfFactory, - deps: [[new Optional(), new SkipSelf(), ControlContainer]], - }, - ], + standalone: true, + exportAs: 'abpExtensibleForm', + selector: 'abp-extensible-form', + templateUrl: './extensible-form.component.html', + imports: [CommonModule, PropDataDirective, ReactiveFormsModule, ExtensibleFormPropComponent], + changeDetection: ChangeDetectionStrategy.OnPush, + viewProviders: [ + { + provide: ControlContainer, + useFactory: selfFactory, + deps: [[new Optional(), new SkipSelf(), ControlContainer]], + }, + ], }) export class ExtensibleFormComponent { + public readonly cdRef = inject(ChangeDetectorRef); + public readonly track = inject(TrackByService); + private readonly container = inject(ControlContainer); + private readonly extensions = inject(ExtensionsService); + private readonly identifier = inject(EXTENSIONS_IDENTIFIER); - @ViewChildren(ExtensibleFormPropComponent) - formProps!: QueryList; + @ViewChildren(ExtensibleFormPropComponent) + formProps!: QueryList; - @Input() - set selectedRecord(record: R) { - const type = !record || JSON.stringify(record) === '{}' ? 'create' : 'edit'; - const propList = this.extensions[`${type}FormProps`].get(this.identifier).props; - this.groupedPropList = this.createGroupedList(propList); - this.record = record; - } + @Input() + set selectedRecord(record: R) { + const type = !record || JSON.stringify(record) === '{}' ? 'create' : 'edit'; + const propList = this.extensions[`${type}FormProps`].get(this.identifier).props; + this.groupedPropList = this.createGroupedList(propList); + this.record = record; + } - extraPropertiesKey = EXTRA_PROPERTIES_KEY; - groupedPropList!: GroupedFormPropList; - record!: R; + extraPropertiesKey = EXTRA_PROPERTIES_KEY; + groupedPropList!: GroupedFormPropList; + groupedPropListOfArray: FormProp[][]; + record!: R; - public readonly cdRef = inject(ChangeDetectorRef) - public readonly track = inject(TrackByService) - private container = inject(ControlContainer) - private extensions = inject(ExtensionsService); - private identifier = inject(EXTENSIONS_IDENTIFIER) + get form(): UntypedFormGroup { + return (this.container ? this.container.control : { controls: {} }) as UntypedFormGroup; + } - createGroupedList(propList: FormPropList) { - const groupedFormPropList = new GroupedFormPropList(); - propList.forEach(item => { - groupedFormPropList.addItem(item.value); - }); - return groupedFormPropList; - } + get extraProperties(): UntypedFormGroup { + return (this.form.controls.extraProperties || { controls: {} }) as UntypedFormGroup; + } - get form(): UntypedFormGroup { - return (this.container ? this.container.control : {controls: {}}) as UntypedFormGroup; - } + createGroupedList(propList: FormPropList) { + const groupedFormPropList = new GroupedFormPropList(); + propList.forEach(item => { + groupedFormPropList.addItem(item.value); + }); - get extraProperties(): UntypedFormGroup { - return (this.form.controls.extraProperties || {controls: {}}) as UntypedFormGroup; - } + return groupedFormPropList; + } + //TODO: Reactor this method + isAnyGroupMemberVisible(index: number, data) { + const { items } = this.groupedPropList; + const formPropList = items[index].formPropList.toArray(); + return formPropList.some(prop => prop.visible(data)); + } } diff --git a/npm/ng-packs/packages/components/extensible/src/lib/components/extensible-table/extensible-table.component.html b/npm/ng-packs/packages/components/extensible/src/lib/components/extensible-table/extensible-table.component.html index 0ba4b22d45..5b28627085 100644 --- a/npm/ng-packs/packages/components/extensible/src/lib/components/extensible-table/extensible-table.component.html +++ b/npm/ng-packs/packages/components/extensible/src/lib/components/extensible-table/extensible-table.component.html @@ -31,9 +31,10 @@ > @if (prop.tooltip) { - - {{ column.name }} - + + {{ column.name }} + }@else{ {{ column.name }} } diff --git a/npm/ng-packs/packages/components/extensible/src/lib/components/grid-actions/grid-actions.component.html b/npm/ng-packs/packages/components/extensible/src/lib/components/grid-actions/grid-actions.component.html index 73e01b3440..70809a8975 100644 --- a/npm/ng-packs/packages/components/extensible/src/lib/components/grid-actions/grid-actions.component.html +++ b/npm/ng-packs/packages/components/extensible/src/lib/components/grid-actions/grid-actions.component.html @@ -41,26 +41,28 @@ - - @if (action.icon) { - {{ action.text | abpLocalization }} - }@else { -
{{ action.text | abpLocalization }}
+ + @if (!action.showOnlyIcon) { + @if (action.icon) { + {{ action.text | abpLocalization }} + } @else { +
{{ action.text | abpLocalization }}
+ } }
@if (action.visible(data)) { - + } diff --git a/npm/ng-packs/packages/components/extensible/src/lib/models/entity-actions.ts b/npm/ng-packs/packages/components/extensible/src/lib/models/entity-actions.ts index 4a801e841e..f49b6fcf2c 100644 --- a/npm/ng-packs/packages/components/extensible/src/lib/models/entity-actions.ts +++ b/npm/ng-packs/packages/components/extensible/src/lib/models/entity-actions.ts @@ -24,6 +24,7 @@ export class EntityAction extends Action { readonly icon: string; readonly btnClass?: string; readonly btnStyle?: string; + readonly showOnlyIcon?: boolean; constructor(options: EntityActionOptions) { super(options.permission || '', options.visible, options.action); @@ -31,6 +32,7 @@ export class EntityAction extends Action { this.icon = options.icon || ''; this.btnClass = options.btnClass || 'btn btn-primary text-center'; this.btnStyle = options.btnStyle; + this.showOnlyIcon = options.showOnlyIcon || false; } static create(options: EntityActionOptions) { diff --git a/npm/ng-packs/packages/components/extensible/src/lib/models/entity-props.ts b/npm/ng-packs/packages/components/extensible/src/lib/models/entity-props.ts index e86e3ae34e..7692457cd8 100644 --- a/npm/ng-packs/packages/components/extensible/src/lib/models/entity-props.ts +++ b/npm/ng-packs/packages/components/extensible/src/lib/models/entity-props.ts @@ -12,6 +12,7 @@ import { Props, PropsFactory, } from './props'; +import { FormPropTooltip } from './form-props'; export class EntityPropList extends PropList> {} @@ -30,7 +31,7 @@ export class EntityProp extends Prop { readonly action?: ActionCallback; readonly component?: Type; readonly enumList?: Array>; - readonly tooltip?: string; + readonly tooltip?: FormPropTooltip; readonly columnVisible: ColumnPredicate; constructor(options: EntityPropOptions) { diff --git a/npm/ng-packs/packages/components/extensible/src/lib/models/form-props.ts b/npm/ng-packs/packages/components/extensible/src/lib/models/form-props.ts index 3ad64e8a13..ec1c825e9a 100644 --- a/npm/ng-packs/packages/components/extensible/src/lib/models/form-props.ts +++ b/npm/ng-packs/packages/components/extensible/src/lib/models/form-props.ts @@ -27,8 +27,14 @@ export interface FormPropGroup { className?: string; } +export interface FormPropTooltip { + text: string; + placement?: 'top' | 'end' | 'bottom' | 'start'; +} + export class GroupedFormPropList { public readonly items: GroupedFormPropItem[] = []; + count = 1; addItem(item: FormProp) { const groupName = item.group?.name; let group = this.items.find(i => i.group?.name === groupName); @@ -37,7 +43,7 @@ export class GroupedFormPropList { } else { group = { formPropList: new FormPropList(), - group: item.group, + group: item.group || { name: `default${this.count++}`, className: item.group?.className }, }; group.formPropList.addHead(item); this.items.push(group); @@ -72,6 +78,7 @@ export class FormProp extends Prop { readonly group?: FormPropGroup | undefined; readonly displayTextResolver?: PropDisplayTextResolver; readonly formText?: string; + readonly tooltip?: FormPropTooltip; constructor(options: FormPropOptions) { super( @@ -84,10 +91,12 @@ export class FormProp extends Prop { options.template, options.className, options.formText, + options.tooltip, ); this.group = options.group; this.className = options.className; this.formText = options.formText; + this.tooltip = options.tooltip; this.asyncValidators = options.asyncValidators || (_ => []); this.validators = options.validators || (_ => []); this.disabled = options.disabled || (_ => false); @@ -135,6 +144,7 @@ export type FormPropOptions = O.Optional< | 'id' | 'displayTextResolver' | 'formText' + | 'tooltip' >; export type CreateFormPropDefaults = Record[]>; diff --git a/npm/ng-packs/packages/components/extensible/src/lib/models/props.ts b/npm/ng-packs/packages/components/extensible/src/lib/models/props.ts index 799702bc70..2c88bd9939 100644 --- a/npm/ng-packs/packages/components/extensible/src/lib/models/props.ts +++ b/npm/ng-packs/packages/components/extensible/src/lib/models/props.ts @@ -2,6 +2,7 @@ import { LinkedList } from '@abp/utils'; import { InjectFlags, InjectionToken, InjectOptions, Type } from '@angular/core'; import { O } from 'ts-toolbelt'; import { ePropType } from '../enums/props.enum'; +import { FormPropTooltip } from './form-props'; export abstract class PropList> extends LinkedList {} @@ -36,6 +37,7 @@ export abstract class Prop { public readonly template?: Type, public readonly className?: string, public readonly formText?: string, + public readonly tooltip?: FormPropTooltip, public readonly displayTextResolver?: PropDisplayTextResolver, ) { this.displayName = this.displayName || this.name; diff --git a/npm/ng-packs/packages/components/package.json b/npm/ng-packs/packages/components/package.json index 0200147d37..3f7c734323 100644 --- a/npm/ng-packs/packages/components/package.json +++ b/npm/ng-packs/packages/components/package.json @@ -1,14 +1,14 @@ { "name": "@abp/ng.components", - "version": "8.1.0-rc.1", + "version": "8.1.0-rc.2", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "peerDependencies": { - "@abp/ng.core": ">=8.1.0-rc.1", - "@abp/ng.theme.shared": ">=8.1.0-rc.1" + "@abp/ng.core": ">=8.1.0-rc.2", + "@abp/ng.theme.shared": ">=8.1.0-rc.2" }, "dependencies": { "chart.js": "^3.5.1", diff --git a/npm/ng-packs/packages/core/package.json b/npm/ng-packs/packages/core/package.json index eaaa3dbd9e..5febc625b3 100644 --- a/npm/ng-packs/packages/core/package.json +++ b/npm/ng-packs/packages/core/package.json @@ -1,13 +1,13 @@ { "name": "@abp/ng.core", - "version": "8.1.0-rc.1", + "version": "8.1.0-rc.2", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/utils": "~8.1.0-rc.1", + "@abp/utils": "~8.1.0-rc.2", "just-clone": "^6.0.0", "just-compare": "^2.0.0", "ts-toolbelt": "6.15.4", diff --git a/npm/ng-packs/packages/core/src/lib/proxy/generate-proxy.json b/npm/ng-packs/packages/core/src/lib/proxy/generate-proxy.json index cf5aab144f..1a09eb3816 100644 --- a/npm/ng-packs/packages/core/src/lib/proxy/generate-proxy.json +++ b/npm/ng-packs/packages/core/src/lib/proxy/generate-proxy.json @@ -3,35 +3,27 @@ "abp" ], "modules": { - "permissionManagement": { - "rootPath": "permissionManagement", - "remoteServiceName": "AbpPermissionManagement", + "abp": { + "rootPath": "abp", + "remoteServiceName": "abp", "controllers": { - "Volo.Abp.PermissionManagement.PermissionsController": { - "controllerName": "Permissions", - "controllerGroupName": "Permissions", + "Pages.Abp.MultiTenancy.AbpTenantController": { + "controllerName": "AbpTenant", + "controllerGroupName": "AbpTenant", "isRemoteService": true, "isIntegrationService": false, "apiVersion": null, - "type": "Volo.Abp.PermissionManagement.PermissionsController", + "type": "Pages.Abp.MultiTenancy.AbpTenantController", "interfaces": [ { - "type": "Volo.Abp.PermissionManagement.IPermissionAppService", - "name": "IPermissionAppService", + "type": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.IAbpTenantAppService", + "name": "IAbpTenantAppService", "methods": [ { - "name": "GetAsync", + "name": "FindTenantByNameAsync", "parametersOnMethod": [ { - "name": "providerName", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "providerKey", + "name": "name", "typeAsString": "System.String, System.Private.CoreLib", "type": "System.String", "typeSimple": "string", @@ -40,64 +32,40 @@ } ], "returnValue": { - "type": "Volo.Abp.PermissionManagement.GetPermissionListResultDto", - "typeSimple": "Volo.Abp.PermissionManagement.GetPermissionListResultDto" + "type": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.FindTenantResultDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.FindTenantResultDto" } }, { - "name": "UpdateAsync", + "name": "FindTenantByIdAsync", "parametersOnMethod": [ { - "name": "providerName", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "providerKey", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", "typeSimple": "string", "isOptional": false, "defaultValue": null - }, - { - "name": "input", - "typeAsString": "Volo.Abp.PermissionManagement.UpdatePermissionsDto, Volo.Abp.PermissionManagement.Application.Contracts", - "type": "Volo.Abp.PermissionManagement.UpdatePermissionsDto", - "typeSimple": "Volo.Abp.PermissionManagement.UpdatePermissionsDto", - "isOptional": false, - "defaultValue": null } ], "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" + "type": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.FindTenantResultDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.FindTenantResultDto" } } ] } ], "actions": { - "GetAsyncByProviderNameAndProviderKey": { - "uniqueName": "GetAsyncByProviderNameAndProviderKey", - "name": "GetAsync", + "FindTenantByNameAsyncByName": { + "uniqueName": "FindTenantByNameAsyncByName", + "name": "FindTenantByNameAsync", "httpMethod": "GET", - "url": "api/permission-management/permissions", + "url": "api/abp/multi-tenancy/tenants/by-name/{name}", "supportedVersions": [], "parametersOnMethod": [ { - "name": "providerName", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "providerKey", + "name": "name", "typeAsString": "System.String, System.Private.CoreLib", "type": "System.String", "typeSimple": "string", @@ -107,383 +75,237 @@ ], "parameters": [ { - "nameOnMethod": "providerName", - "name": "providerName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "" - }, - { - "nameOnMethod": "providerKey", - "name": "providerKey", + "nameOnMethod": "name", + "name": "name", "jsonName": null, "type": "System.String", "typeSimple": "string", "isOptional": false, "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", + "constraintTypes": [], + "bindingSourceId": "Path", "descriptorName": "" } ], "returnValue": { - "type": "Volo.Abp.PermissionManagement.GetPermissionListResultDto", - "typeSimple": "Volo.Abp.PermissionManagement.GetPermissionListResultDto" + "type": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.FindTenantResultDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.FindTenantResultDto" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.PermissionManagement.IPermissionAppService" + "implementFrom": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.IAbpTenantAppService" }, - "UpdateAsyncByProviderNameAndProviderKeyAndInput": { - "uniqueName": "UpdateAsyncByProviderNameAndProviderKeyAndInput", - "name": "UpdateAsync", - "httpMethod": "PUT", - "url": "api/permission-management/permissions", + "FindTenantByIdAsyncById": { + "uniqueName": "FindTenantByIdAsyncById", + "name": "FindTenantByIdAsync", + "httpMethod": "GET", + "url": "api/abp/multi-tenancy/tenants/by-id/{id}", "supportedVersions": [], "parametersOnMethod": [ { - "name": "providerName", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "providerKey", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", "typeSimple": "string", "isOptional": false, "defaultValue": null - }, - { - "name": "input", - "typeAsString": "Volo.Abp.PermissionManagement.UpdatePermissionsDto, Volo.Abp.PermissionManagement.Application.Contracts", - "type": "Volo.Abp.PermissionManagement.UpdatePermissionsDto", - "typeSimple": "Volo.Abp.PermissionManagement.UpdatePermissionsDto", - "isOptional": false, - "defaultValue": null } ], "parameters": [ { - "nameOnMethod": "providerName", - "name": "providerName", + "nameOnMethod": "id", + "name": "id", "jsonName": null, - "type": "System.String", + "type": "System.Guid", "typeSimple": "string", "isOptional": false, "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", + "constraintTypes": [], + "bindingSourceId": "Path", "descriptorName": "" - }, + } + ], + "returnValue": { + "type": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.FindTenantResultDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.FindTenantResultDto" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.IAbpTenantAppService" + } + } + }, + "Volo.Abp.AspNetCore.Mvc.ApiExploring.AbpApiDefinitionController": { + "controllerName": "AbpApiDefinition", + "controllerGroupName": "AbpApiDefinition", + "isRemoteService": true, + "isIntegrationService": false, + "apiVersion": null, + "type": "Volo.Abp.AspNetCore.Mvc.ApiExploring.AbpApiDefinitionController", + "interfaces": [], + "actions": { + "GetByModel": { + "uniqueName": "GetByModel", + "name": "Get", + "httpMethod": "GET", + "url": "api/abp/api-definition", + "supportedVersions": [], + "parametersOnMethod": [ { - "nameOnMethod": "providerKey", - "name": "providerKey", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", + "name": "model", + "typeAsString": "Volo.Abp.Http.Modeling.ApplicationApiDescriptionModelRequestDto, Volo.Abp.Http", + "type": "Volo.Abp.Http.Modeling.ApplicationApiDescriptionModelRequestDto", + "typeSimple": "Volo.Abp.Http.Modeling.ApplicationApiDescriptionModelRequestDto", "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "" - }, + "defaultValue": null + } + ], + "parameters": [ { - "nameOnMethod": "input", - "name": "input", + "nameOnMethod": "model", + "name": "IncludeTypes", "jsonName": null, - "type": "Volo.Abp.PermissionManagement.UpdatePermissionsDto", - "typeSimple": "Volo.Abp.PermissionManagement.UpdatePermissionsDto", + "type": "System.Boolean", + "typeSimple": "boolean", "isOptional": false, "defaultValue": null, "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" + "bindingSourceId": "ModelBinding", + "descriptorName": "model" } ], "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" + "type": "Volo.Abp.Http.Modeling.ApplicationApiDescriptionModel", + "typeSimple": "Volo.Abp.Http.Modeling.ApplicationApiDescriptionModel" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.PermissionManagement.IPermissionAppService" + "implementFrom": "Volo.Abp.AspNetCore.Mvc.ApiExploring.AbpApiDefinitionController" } } - } - } - }, - "featureManagement": { - "rootPath": "featureManagement", - "remoteServiceName": "AbpFeatureManagement", - "controllers": { - "Volo.Abp.FeatureManagement.FeaturesController": { - "controllerName": "Features", - "controllerGroupName": "Features", + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationConfigurationController": { + "controllerName": "AbpApplicationConfiguration", + "controllerGroupName": "AbpApplicationConfiguration", "isRemoteService": true, "isIntegrationService": false, "apiVersion": null, - "type": "Volo.Abp.FeatureManagement.FeaturesController", + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationConfigurationController", "interfaces": [ { - "type": "Volo.Abp.FeatureManagement.IFeatureAppService", - "name": "IFeatureAppService", + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.IAbpApplicationConfigurationAppService", + "name": "IAbpApplicationConfigurationAppService", "methods": [ { "name": "GetAsync", "parametersOnMethod": [ { - "name": "providerName", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "providerKey", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", + "name": "options", + "typeAsString": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationRequestOptions, Volo.Abp.AspNetCore.Mvc.Contracts", + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationRequestOptions", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationRequestOptions", "isOptional": false, "defaultValue": null } ], "returnValue": { - "type": "Volo.Abp.FeatureManagement.GetFeatureListResultDto", - "typeSimple": "Volo.Abp.FeatureManagement.GetFeatureListResultDto" - } - }, - { - "name": "UpdateAsync", - "parametersOnMethod": [ - { - "name": "providerName", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "providerKey", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "input", - "typeAsString": "Volo.Abp.FeatureManagement.UpdateFeaturesDto, Volo.Abp.FeatureManagement.Application.Contracts", - "type": "Volo.Abp.FeatureManagement.UpdateFeaturesDto", - "typeSimple": "Volo.Abp.FeatureManagement.UpdateFeaturesDto", - "isOptional": false, - "defaultValue": null - } - ], - "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - } - }, - { - "name": "DeleteAsync", - "parametersOnMethod": [ - { - "name": "providerName", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "providerKey", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationDto" } } ] } ], "actions": { - "GetAsyncByProviderNameAndProviderKey": { - "uniqueName": "GetAsyncByProviderNameAndProviderKey", + "GetAsyncByOptions": { + "uniqueName": "GetAsyncByOptions", "name": "GetAsync", "httpMethod": "GET", - "url": "api/feature-management/features", + "url": "api/abp/application-configuration", "supportedVersions": [], "parametersOnMethod": [ { - "name": "providerName", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "providerKey", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", + "name": "options", + "typeAsString": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationRequestOptions, Volo.Abp.AspNetCore.Mvc.Contracts", + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationRequestOptions", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationRequestOptions", "isOptional": false, "defaultValue": null } ], "parameters": [ { - "nameOnMethod": "providerName", - "name": "providerName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "" - }, - { - "nameOnMethod": "providerKey", - "name": "providerKey", + "nameOnMethod": "options", + "name": "IncludeLocalizationResources", "jsonName": null, - "type": "System.String", - "typeSimple": "string", + "type": "System.Boolean", + "typeSimple": "boolean", "isOptional": false, "defaultValue": null, "constraintTypes": null, "bindingSourceId": "ModelBinding", - "descriptorName": "" + "descriptorName": "options" } ], "returnValue": { - "type": "Volo.Abp.FeatureManagement.GetFeatureListResultDto", - "typeSimple": "Volo.Abp.FeatureManagement.GetFeatureListResultDto" + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationDto" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.FeatureManagement.IFeatureAppService" - }, - "UpdateAsyncByProviderNameAndProviderKeyAndInput": { - "uniqueName": "UpdateAsyncByProviderNameAndProviderKeyAndInput", - "name": "UpdateAsync", - "httpMethod": "PUT", - "url": "api/feature-management/features", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "providerName", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "providerKey", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "input", - "typeAsString": "Volo.Abp.FeatureManagement.UpdateFeaturesDto, Volo.Abp.FeatureManagement.Application.Contracts", - "type": "Volo.Abp.FeatureManagement.UpdateFeaturesDto", - "typeSimple": "Volo.Abp.FeatureManagement.UpdateFeaturesDto", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "providerName", - "name": "providerName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "" - }, - { - "nameOnMethod": "providerKey", - "name": "providerKey", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "" - }, + "implementFrom": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.IAbpApplicationConfigurationAppService" + } + } + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationLocalizationController": { + "controllerName": "AbpApplicationLocalization", + "controllerGroupName": "AbpApplicationLocalization", + "isRemoteService": true, + "isIntegrationService": false, + "apiVersion": null, + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationLocalizationController", + "interfaces": [ + { + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.IAbpApplicationLocalizationAppService", + "name": "IAbpApplicationLocalizationAppService", + "methods": [ { - "nameOnMethod": "input", - "name": "input", - "jsonName": null, - "type": "Volo.Abp.FeatureManagement.UpdateFeaturesDto", - "typeSimple": "Volo.Abp.FeatureManagement.UpdateFeaturesDto", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" + "name": "GetAsync", + "parametersOnMethod": [ + { + "name": "input", + "typeAsString": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationRequestDto, Volo.Abp.AspNetCore.Mvc.Contracts", + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationRequestDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationRequestDto", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationDto" + } } - ], - "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - }, - "allowAnonymous": null, - "implementFrom": "Volo.Abp.FeatureManagement.IFeatureAppService" - }, - "DeleteAsyncByProviderNameAndProviderKey": { - "uniqueName": "DeleteAsyncByProviderNameAndProviderKey", - "name": "DeleteAsync", - "httpMethod": "DELETE", - "url": "api/feature-management/features", + ] + } + ], + "actions": { + "GetAsyncByInput": { + "uniqueName": "GetAsyncByInput", + "name": "GetAsync", + "httpMethod": "GET", + "url": "api/abp/application-localization", "supportedVersions": [], "parametersOnMethod": [ { - "name": "providerName", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "providerKey", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", + "name": "input", + "typeAsString": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationRequestDto, Volo.Abp.AspNetCore.Mvc.Contracts", + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationRequestDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationRequestDto", "isOptional": false, "defaultValue": null } ], "parameters": [ { - "nameOnMethod": "providerName", - "name": "providerName", + "nameOnMethod": "input", + "name": "CultureName", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -491,27 +313,27 @@ "defaultValue": null, "constraintTypes": null, "bindingSourceId": "ModelBinding", - "descriptorName": "" + "descriptorName": "input" }, { - "nameOnMethod": "providerKey", - "name": "providerKey", + "nameOnMethod": "input", + "name": "OnlyDynamics", "jsonName": null, - "type": "System.String", - "typeSimple": "string", + "type": "System.Boolean", + "typeSimple": "boolean", "isOptional": false, "defaultValue": null, "constraintTypes": null, "bindingSourceId": "ModelBinding", - "descriptorName": "" + "descriptorName": "input" } ], "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationDto" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.FeatureManagement.IFeatureAppService" + "implementFrom": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.IAbpApplicationLocalizationAppService" } } } @@ -755,57 +577,35 @@ } } }, - "Volo.Abp.Account.Web.Areas.Account.Controllers.AccountController": { - "controllerName": "Account", - "controllerGroupName": "Login", + "Volo.Abp.Account.DynamicClaimsController": { + "controllerName": "DynamicClaims", + "controllerGroupName": "DynamicClaims", "isRemoteService": true, "isIntegrationService": false, "apiVersion": null, - "type": "Volo.Abp.Account.Web.Areas.Account.Controllers.AccountController", - "interfaces": [], - "actions": { - "LoginByLogin": { - "uniqueName": "LoginByLogin", - "name": "Login", - "httpMethod": "POST", - "url": "api/account/login", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "login", - "typeAsString": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo, Volo.Abp.Account.Web", - "type": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo", - "typeSimple": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ + "type": "Volo.Abp.Account.DynamicClaimsController", + "interfaces": [ + { + "type": "Volo.Abp.Account.IDynamicClaimsAppService", + "name": "IDynamicClaimsAppService", + "methods": [ { - "nameOnMethod": "login", - "name": "login", - "jsonName": null, - "type": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo", - "typeSimple": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" + "name": "RefreshAsync", + "parametersOnMethod": [], + "returnValue": { + "type": "System.Void", + "typeSimple": "System.Void" + } } - ], - "returnValue": { - "type": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.AbpLoginResult", - "typeSimple": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.AbpLoginResult" - }, - "allowAnonymous": null, - "implementFrom": "Volo.Abp.Account.Web.Areas.Account.Controllers.AccountController" - }, - "Logout": { - "uniqueName": "Logout", - "name": "Logout", - "httpMethod": "GET", - "url": "api/account/logout", + ] + } + ], + "actions": { + "RefreshAsync": { + "uniqueName": "RefreshAsync", + "name": "RefreshAsync", + "httpMethod": "POST", + "url": "api/account/dynamic-claims/refresh", "supportedVersions": [], "parametersOnMethod": [], "parameters": [], @@ -814,44 +614,7 @@ "typeSimple": "System.Void" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.Account.Web.Areas.Account.Controllers.AccountController" - }, - "CheckPasswordByLogin": { - "uniqueName": "CheckPasswordByLogin", - "name": "CheckPassword", - "httpMethod": "POST", - "url": "api/account/check-password", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "login", - "typeAsString": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo, Volo.Abp.Account.Web", - "type": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo", - "typeSimple": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "login", - "name": "login", - "jsonName": null, - "type": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo", - "typeSimple": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" - } - ], - "returnValue": { - "type": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.AbpLoginResult", - "typeSimple": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.AbpLoginResult" - }, - "allowAnonymous": null, - "implementFrom": "Volo.Abp.Account.Web.Areas.Account.Controllers.AccountController" + "implementFrom": "Volo.Abp.Account.IDynamicClaimsAppService" } } }, @@ -936,21 +699,106 @@ "supportedVersions": [], "parametersOnMethod": [ { - "name": "input", - "typeAsString": "Volo.Abp.Account.UpdateProfileDto, Volo.Abp.Account.Application.Contracts", - "type": "Volo.Abp.Account.UpdateProfileDto", - "typeSimple": "Volo.Abp.Account.UpdateProfileDto", + "name": "input", + "typeAsString": "Volo.Abp.Account.UpdateProfileDto, Volo.Abp.Account.Application.Contracts", + "type": "Volo.Abp.Account.UpdateProfileDto", + "typeSimple": "Volo.Abp.Account.UpdateProfileDto", + "isOptional": false, + "defaultValue": null + } + ], + "parameters": [ + { + "nameOnMethod": "input", + "name": "input", + "jsonName": null, + "type": "Volo.Abp.Account.UpdateProfileDto", + "typeSimple": "Volo.Abp.Account.UpdateProfileDto", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "Body", + "descriptorName": "" + } + ], + "returnValue": { + "type": "Volo.Abp.Account.ProfileDto", + "typeSimple": "Volo.Abp.Account.ProfileDto" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.Account.IProfileAppService" + }, + "ChangePasswordAsyncByInput": { + "uniqueName": "ChangePasswordAsyncByInput", + "name": "ChangePasswordAsync", + "httpMethod": "POST", + "url": "api/account/my-profile/change-password", + "supportedVersions": [], + "parametersOnMethod": [ + { + "name": "input", + "typeAsString": "Volo.Abp.Account.ChangePasswordInput, Volo.Abp.Account.Application.Contracts", + "type": "Volo.Abp.Account.ChangePasswordInput", + "typeSimple": "Volo.Abp.Account.ChangePasswordInput", + "isOptional": false, + "defaultValue": null + } + ], + "parameters": [ + { + "nameOnMethod": "input", + "name": "input", + "jsonName": null, + "type": "Volo.Abp.Account.ChangePasswordInput", + "typeSimple": "Volo.Abp.Account.ChangePasswordInput", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "Body", + "descriptorName": "" + } + ], + "returnValue": { + "type": "System.Void", + "typeSimple": "System.Void" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.Account.IProfileAppService" + } + } + }, + "Volo.Abp.Account.Web.Areas.Account.Controllers.AccountController": { + "controllerName": "Account", + "controllerGroupName": "Login", + "isRemoteService": true, + "isIntegrationService": false, + "apiVersion": null, + "type": "Volo.Abp.Account.Web.Areas.Account.Controllers.AccountController", + "interfaces": [], + "actions": { + "LoginByLogin": { + "uniqueName": "LoginByLogin", + "name": "Login", + "httpMethod": "POST", + "url": "api/account/login", + "supportedVersions": [], + "parametersOnMethod": [ + { + "name": "login", + "typeAsString": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo, Volo.Abp.Account.Web", + "type": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo", + "typeSimple": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo", "isOptional": false, "defaultValue": null } ], "parameters": [ { - "nameOnMethod": "input", - "name": "input", + "nameOnMethod": "login", + "name": "login", "jsonName": null, - "type": "Volo.Abp.Account.UpdateProfileDto", - "typeSimple": "Volo.Abp.Account.UpdateProfileDto", + "type": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo", + "typeSimple": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo", "isOptional": false, "defaultValue": null, "constraintTypes": null, @@ -959,35 +807,50 @@ } ], "returnValue": { - "type": "Volo.Abp.Account.ProfileDto", - "typeSimple": "Volo.Abp.Account.ProfileDto" + "type": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.AbpLoginResult", + "typeSimple": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.AbpLoginResult" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.Account.IProfileAppService" + "implementFrom": "Volo.Abp.Account.Web.Areas.Account.Controllers.AccountController" }, - "ChangePasswordAsyncByInput": { - "uniqueName": "ChangePasswordAsyncByInput", - "name": "ChangePasswordAsync", + "Logout": { + "uniqueName": "Logout", + "name": "Logout", + "httpMethod": "GET", + "url": "api/account/logout", + "supportedVersions": [], + "parametersOnMethod": [], + "parameters": [], + "returnValue": { + "type": "System.Void", + "typeSimple": "System.Void" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.Account.Web.Areas.Account.Controllers.AccountController" + }, + "CheckPasswordByLogin": { + "uniqueName": "CheckPasswordByLogin", + "name": "CheckPassword", "httpMethod": "POST", - "url": "api/account/my-profile/change-password", + "url": "api/account/check-password", "supportedVersions": [], "parametersOnMethod": [ { - "name": "input", - "typeAsString": "Volo.Abp.Account.ChangePasswordInput, Volo.Abp.Account.Application.Contracts", - "type": "Volo.Abp.Account.ChangePasswordInput", - "typeSimple": "Volo.Abp.Account.ChangePasswordInput", + "name": "login", + "typeAsString": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo, Volo.Abp.Account.Web", + "type": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo", + "typeSimple": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo", "isOptional": false, "defaultValue": null } ], "parameters": [ { - "nameOnMethod": "input", - "name": "input", + "nameOnMethod": "login", + "name": "login", "jsonName": null, - "type": "Volo.Abp.Account.ChangePasswordInput", - "typeSimple": "Volo.Abp.Account.ChangePasswordInput", + "type": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo", + "typeSimple": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo", "isOptional": false, "defaultValue": null, "constraintTypes": null, @@ -996,48 +859,81 @@ } ], "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" + "type": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.AbpLoginResult", + "typeSimple": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.AbpLoginResult" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.Account.IProfileAppService" + "implementFrom": "Volo.Abp.Account.Web.Areas.Account.Controllers.AccountController" } } } } }, - "settingManagement": { - "rootPath": "settingManagement", - "remoteServiceName": "SettingManagement", + "featureManagement": { + "rootPath": "featureManagement", + "remoteServiceName": "AbpFeatureManagement", "controllers": { - "Volo.Abp.SettingManagement.EmailSettingsController": { - "controllerName": "EmailSettings", - "controllerGroupName": "EmailSettings", + "Volo.Abp.FeatureManagement.FeaturesController": { + "controllerName": "Features", + "controllerGroupName": "Features", "isRemoteService": true, "isIntegrationService": false, "apiVersion": null, - "type": "Volo.Abp.SettingManagement.EmailSettingsController", + "type": "Volo.Abp.FeatureManagement.FeaturesController", "interfaces": [ { - "type": "Volo.Abp.SettingManagement.IEmailSettingsAppService", - "name": "IEmailSettingsAppService", + "type": "Volo.Abp.FeatureManagement.IFeatureAppService", + "name": "IFeatureAppService", "methods": [ { "name": "GetAsync", - "parametersOnMethod": [], + "parametersOnMethod": [ + { + "name": "providerName", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "providerKey", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], "returnValue": { - "type": "Volo.Abp.SettingManagement.EmailSettingsDto", - "typeSimple": "Volo.Abp.SettingManagement.EmailSettingsDto" + "type": "Volo.Abp.FeatureManagement.GetFeatureListResultDto", + "typeSimple": "Volo.Abp.FeatureManagement.GetFeatureListResultDto" } }, { "name": "UpdateAsync", "parametersOnMethod": [ + { + "name": "providerName", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "providerKey", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, { "name": "input", - "typeAsString": "Volo.Abp.SettingManagement.UpdateEmailSettingsDto, Volo.Abp.SettingManagement.Application.Contracts", - "type": "Volo.Abp.SettingManagement.UpdateEmailSettingsDto", - "typeSimple": "Volo.Abp.SettingManagement.UpdateEmailSettingsDto", + "typeAsString": "Volo.Abp.FeatureManagement.UpdateFeaturesDto, Volo.Abp.FeatureManagement.Application.Contracts", + "type": "Volo.Abp.FeatureManagement.UpdateFeaturesDto", + "typeSimple": "Volo.Abp.FeatureManagement.UpdateFeaturesDto", "isOptional": false, "defaultValue": null } @@ -1048,13 +944,21 @@ } }, { - "name": "SendTestEmailAsync", + "name": "DeleteAsync", "parametersOnMethod": [ { - "name": "input", - "typeAsString": "Volo.Abp.SettingManagement.SendTestEmailInput, Volo.Abp.SettingManagement.Application.Contracts", - "type": "Volo.Abp.SettingManagement.SendTestEmailInput", - "typeSimple": "Volo.Abp.SettingManagement.SendTestEmailInput", + "name": "providerName", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "providerKey", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", "isOptional": false, "defaultValue": null } @@ -1068,44 +972,126 @@ } ], "actions": { - "GetAsync": { - "uniqueName": "GetAsync", + "GetAsyncByProviderNameAndProviderKey": { + "uniqueName": "GetAsyncByProviderNameAndProviderKey", "name": "GetAsync", "httpMethod": "GET", - "url": "api/setting-management/emailing", + "url": "api/feature-management/features", "supportedVersions": [], - "parametersOnMethod": [], - "parameters": [], + "parametersOnMethod": [ + { + "name": "providerName", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "providerKey", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "parameters": [ + { + "nameOnMethod": "providerName", + "name": "providerName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "" + }, + { + "nameOnMethod": "providerKey", + "name": "providerKey", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "" + } + ], "returnValue": { - "type": "Volo.Abp.SettingManagement.EmailSettingsDto", - "typeSimple": "Volo.Abp.SettingManagement.EmailSettingsDto" + "type": "Volo.Abp.FeatureManagement.GetFeatureListResultDto", + "typeSimple": "Volo.Abp.FeatureManagement.GetFeatureListResultDto" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.SettingManagement.IEmailSettingsAppService" + "implementFrom": "Volo.Abp.FeatureManagement.IFeatureAppService" }, - "UpdateAsyncByInput": { - "uniqueName": "UpdateAsyncByInput", + "UpdateAsyncByProviderNameAndProviderKeyAndInput": { + "uniqueName": "UpdateAsyncByProviderNameAndProviderKeyAndInput", "name": "UpdateAsync", - "httpMethod": "POST", - "url": "api/setting-management/emailing", + "httpMethod": "PUT", + "url": "api/feature-management/features", "supportedVersions": [], "parametersOnMethod": [ + { + "name": "providerName", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "providerKey", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, { "name": "input", - "typeAsString": "Volo.Abp.SettingManagement.UpdateEmailSettingsDto, Volo.Abp.SettingManagement.Application.Contracts", - "type": "Volo.Abp.SettingManagement.UpdateEmailSettingsDto", - "typeSimple": "Volo.Abp.SettingManagement.UpdateEmailSettingsDto", + "typeAsString": "Volo.Abp.FeatureManagement.UpdateFeaturesDto, Volo.Abp.FeatureManagement.Application.Contracts", + "type": "Volo.Abp.FeatureManagement.UpdateFeaturesDto", + "typeSimple": "Volo.Abp.FeatureManagement.UpdateFeaturesDto", "isOptional": false, "defaultValue": null } ], "parameters": [ + { + "nameOnMethod": "providerName", + "name": "providerName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "" + }, + { + "nameOnMethod": "providerKey", + "name": "providerKey", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "" + }, { "nameOnMethod": "input", "name": "input", "jsonName": null, - "type": "Volo.Abp.SettingManagement.UpdateEmailSettingsDto", - "typeSimple": "Volo.Abp.SettingManagement.UpdateEmailSettingsDto", + "type": "Volo.Abp.FeatureManagement.UpdateFeaturesDto", + "typeSimple": "Volo.Abp.FeatureManagement.UpdateFeaturesDto", "isOptional": false, "defaultValue": null, "constraintTypes": null, @@ -1118,35 +1104,55 @@ "typeSimple": "System.Void" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.SettingManagement.IEmailSettingsAppService" + "implementFrom": "Volo.Abp.FeatureManagement.IFeatureAppService" }, - "SendTestEmailAsyncByInput": { - "uniqueName": "SendTestEmailAsyncByInput", - "name": "SendTestEmailAsync", - "httpMethod": "POST", - "url": "api/setting-management/emailing/send-test-email", + "DeleteAsyncByProviderNameAndProviderKey": { + "uniqueName": "DeleteAsyncByProviderNameAndProviderKey", + "name": "DeleteAsync", + "httpMethod": "DELETE", + "url": "api/feature-management/features", "supportedVersions": [], "parametersOnMethod": [ { - "name": "input", - "typeAsString": "Volo.Abp.SettingManagement.SendTestEmailInput, Volo.Abp.SettingManagement.Application.Contracts", - "type": "Volo.Abp.SettingManagement.SendTestEmailInput", - "typeSimple": "Volo.Abp.SettingManagement.SendTestEmailInput", + "name": "providerName", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "providerKey", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", "isOptional": false, "defaultValue": null } ], "parameters": [ { - "nameOnMethod": "input", - "name": "input", + "nameOnMethod": "providerName", + "name": "providerName", "jsonName": null, - "type": "Volo.Abp.SettingManagement.SendTestEmailInput", - "typeSimple": "Volo.Abp.SettingManagement.SendTestEmailInput", + "type": "System.String", + "typeSimple": "string", "isOptional": false, "defaultValue": null, "constraintTypes": null, - "bindingSourceId": "Body", + "bindingSourceId": "ModelBinding", + "descriptorName": "" + }, + { + "nameOnMethod": "providerKey", + "name": "providerKey", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", "descriptorName": "" } ], @@ -1155,85 +1161,34 @@ "typeSimple": "System.Void" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.SettingManagement.IEmailSettingsAppService" + "implementFrom": "Volo.Abp.FeatureManagement.IFeatureAppService" } } } } }, - "multi-tenancy": { - "rootPath": "multi-tenancy", - "remoteServiceName": "AbpTenantManagement", + "identity": { + "rootPath": "identity", + "remoteServiceName": "AbpIdentity", "controllers": { - "Volo.Abp.TenantManagement.TenantController": { - "controllerName": "Tenant", - "controllerGroupName": "Tenant", + "Volo.Abp.Identity.IdentityRoleController": { + "controllerName": "IdentityRole", + "controllerGroupName": "Role", "isRemoteService": true, "isIntegrationService": false, "apiVersion": null, - "type": "Volo.Abp.TenantManagement.TenantController", + "type": "Volo.Abp.Identity.IdentityRoleController", "interfaces": [ { - "type": "Volo.Abp.TenantManagement.ITenantAppService", - "name": "ITenantAppService", + "type": "Volo.Abp.Identity.IIdentityRoleAppService", + "name": "IIdentityRoleAppService", "methods": [ { - "name": "GetDefaultConnectionStringAsync", - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "returnValue": { - "type": "System.String", - "typeSimple": "string" - } - }, - { - "name": "UpdateDefaultConnectionStringAsync", - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "defaultConnectionString", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - } - }, - { - "name": "DeleteDefaultConnectionStringAsync", - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], + "name": "GetAllListAsync", + "parametersOnMethod": [], "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" + "type": "Volo.Abp.Application.Dtos.ListResultDto", + "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto" } }, { @@ -1249,8 +1204,8 @@ } ], "returnValue": { - "type": "Volo.Abp.TenantManagement.TenantDto", - "typeSimple": "Volo.Abp.TenantManagement.TenantDto" + "type": "Volo.Abp.Identity.IdentityRoleDto", + "typeSimple": "Volo.Abp.Identity.IdentityRoleDto" } }, { @@ -1258,16 +1213,16 @@ "parametersOnMethod": [ { "name": "input", - "typeAsString": "Volo.Abp.TenantManagement.GetTenantsInput, Volo.Abp.TenantManagement.Application.Contracts", - "type": "Volo.Abp.TenantManagement.GetTenantsInput", - "typeSimple": "Volo.Abp.TenantManagement.GetTenantsInput", + "typeAsString": "Volo.Abp.Identity.GetIdentityRolesInput, Volo.Abp.Identity.Application.Contracts", + "type": "Volo.Abp.Identity.GetIdentityRolesInput", + "typeSimple": "Volo.Abp.Identity.GetIdentityRolesInput", "isOptional": false, "defaultValue": null } ], "returnValue": { - "type": "Volo.Abp.Application.Dtos.PagedResultDto", - "typeSimple": "Volo.Abp.Application.Dtos.PagedResultDto" + "type": "Volo.Abp.Application.Dtos.PagedResultDto", + "typeSimple": "Volo.Abp.Application.Dtos.PagedResultDto" } }, { @@ -1275,16 +1230,16 @@ "parametersOnMethod": [ { "name": "input", - "typeAsString": "Volo.Abp.TenantManagement.TenantCreateDto, Volo.Abp.TenantManagement.Application.Contracts", - "type": "Volo.Abp.TenantManagement.TenantCreateDto", - "typeSimple": "Volo.Abp.TenantManagement.TenantCreateDto", + "typeAsString": "Volo.Abp.Identity.IdentityRoleCreateDto, Volo.Abp.Identity.Application.Contracts", + "type": "Volo.Abp.Identity.IdentityRoleCreateDto", + "typeSimple": "Volo.Abp.Identity.IdentityRoleCreateDto", "isOptional": false, "defaultValue": null } ], "returnValue": { - "type": "Volo.Abp.TenantManagement.TenantDto", - "typeSimple": "Volo.Abp.TenantManagement.TenantDto" + "type": "Volo.Abp.Identity.IdentityRoleDto", + "typeSimple": "Volo.Abp.Identity.IdentityRoleDto" } }, { @@ -1300,16 +1255,16 @@ }, { "name": "input", - "typeAsString": "Volo.Abp.TenantManagement.TenantUpdateDto, Volo.Abp.TenantManagement.Application.Contracts", - "type": "Volo.Abp.TenantManagement.TenantUpdateDto", - "typeSimple": "Volo.Abp.TenantManagement.TenantUpdateDto", + "typeAsString": "Volo.Abp.Identity.IdentityRoleUpdateDto, Volo.Abp.Identity.Application.Contracts", + "type": "Volo.Abp.Identity.IdentityRoleUpdateDto", + "typeSimple": "Volo.Abp.Identity.IdentityRoleUpdateDto", "isOptional": false, "defaultValue": null } ], "returnValue": { - "type": "Volo.Abp.TenantManagement.TenantDto", - "typeSimple": "Volo.Abp.TenantManagement.TenantDto" + "type": "Volo.Abp.Identity.IdentityRoleDto", + "typeSimple": "Volo.Abp.Identity.IdentityRoleDto" } }, { @@ -1333,55 +1288,33 @@ } ], "actions": { - "GetAsyncById": { - "uniqueName": "GetAsyncById", - "name": "GetAsync", + "GetAllListAsync": { + "uniqueName": "GetAllListAsync", + "name": "GetAllListAsync", "httpMethod": "GET", - "url": "api/multi-tenancy/tenants/{id}", + "url": "api/identity/roles/all", "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - } - ], + "parametersOnMethod": [], + "parameters": [], "returnValue": { - "type": "Volo.Abp.TenantManagement.TenantDto", - "typeSimple": "Volo.Abp.TenantManagement.TenantDto" + "type": "Volo.Abp.Application.Dtos.ListResultDto", + "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.Application.Services.IReadOnlyAppService" + "implementFrom": "Volo.Abp.Identity.IIdentityRoleAppService" }, "GetListAsyncByInput": { "uniqueName": "GetListAsyncByInput", "name": "GetListAsync", "httpMethod": "GET", - "url": "api/multi-tenancy/tenants", + "url": "api/identity/roles", "supportedVersions": [], "parametersOnMethod": [ { "name": "input", - "typeAsString": "Volo.Abp.TenantManagement.GetTenantsInput, Volo.Abp.TenantManagement.Application.Contracts", - "type": "Volo.Abp.TenantManagement.GetTenantsInput", - "typeSimple": "Volo.Abp.TenantManagement.GetTenantsInput", + "typeAsString": "Volo.Abp.Identity.GetIdentityRolesInput, Volo.Abp.Identity.Application.Contracts", + "type": "Volo.Abp.Identity.GetIdentityRolesInput", + "typeSimple": "Volo.Abp.Identity.GetIdentityRolesInput", "isOptional": false, "defaultValue": null } @@ -1437,24 +1370,61 @@ } ], "returnValue": { - "type": "Volo.Abp.Application.Dtos.PagedResultDto", - "typeSimple": "Volo.Abp.Application.Dtos.PagedResultDto" + "type": "Volo.Abp.Application.Dtos.PagedResultDto", + "typeSimple": "Volo.Abp.Application.Dtos.PagedResultDto" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.Application.Services.IReadOnlyAppService" + }, + "GetAsyncById": { + "uniqueName": "GetAsyncById", + "name": "GetAsync", + "httpMethod": "GET", + "url": "api/identity/roles/{id}", + "supportedVersions": [], + "parametersOnMethod": [ + { + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "parameters": [ + { + "nameOnMethod": "id", + "name": "id", + "jsonName": null, + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": [], + "bindingSourceId": "Path", + "descriptorName": "" + } + ], + "returnValue": { + "type": "Volo.Abp.Identity.IdentityRoleDto", + "typeSimple": "Volo.Abp.Identity.IdentityRoleDto" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.Application.Services.IReadOnlyAppService" + "implementFrom": "Volo.Abp.Application.Services.IReadOnlyAppService" }, "CreateAsyncByInput": { "uniqueName": "CreateAsyncByInput", "name": "CreateAsync", "httpMethod": "POST", - "url": "api/multi-tenancy/tenants", + "url": "api/identity/roles", "supportedVersions": [], "parametersOnMethod": [ { "name": "input", - "typeAsString": "Volo.Abp.TenantManagement.TenantCreateDto, Volo.Abp.TenantManagement.Application.Contracts", - "type": "Volo.Abp.TenantManagement.TenantCreateDto", - "typeSimple": "Volo.Abp.TenantManagement.TenantCreateDto", + "typeAsString": "Volo.Abp.Identity.IdentityRoleCreateDto, Volo.Abp.Identity.Application.Contracts", + "type": "Volo.Abp.Identity.IdentityRoleCreateDto", + "typeSimple": "Volo.Abp.Identity.IdentityRoleCreateDto", "isOptional": false, "defaultValue": null } @@ -1464,8 +1434,8 @@ "nameOnMethod": "input", "name": "input", "jsonName": null, - "type": "Volo.Abp.TenantManagement.TenantCreateDto", - "typeSimple": "Volo.Abp.TenantManagement.TenantCreateDto", + "type": "Volo.Abp.Identity.IdentityRoleCreateDto", + "typeSimple": "Volo.Abp.Identity.IdentityRoleCreateDto", "isOptional": false, "defaultValue": null, "constraintTypes": null, @@ -1474,17 +1444,17 @@ } ], "returnValue": { - "type": "Volo.Abp.TenantManagement.TenantDto", - "typeSimple": "Volo.Abp.TenantManagement.TenantDto" + "type": "Volo.Abp.Identity.IdentityRoleDto", + "typeSimple": "Volo.Abp.Identity.IdentityRoleDto" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.Application.Services.ICreateAppService" + "implementFrom": "Volo.Abp.Application.Services.ICreateAppService" }, "UpdateAsyncByIdAndInput": { "uniqueName": "UpdateAsyncByIdAndInput", "name": "UpdateAsync", "httpMethod": "PUT", - "url": "api/multi-tenancy/tenants/{id}", + "url": "api/identity/roles/{id}", "supportedVersions": [], "parametersOnMethod": [ { @@ -1497,9 +1467,9 @@ }, { "name": "input", - "typeAsString": "Volo.Abp.TenantManagement.TenantUpdateDto, Volo.Abp.TenantManagement.Application.Contracts", - "type": "Volo.Abp.TenantManagement.TenantUpdateDto", - "typeSimple": "Volo.Abp.TenantManagement.TenantUpdateDto", + "typeAsString": "Volo.Abp.Identity.IdentityRoleUpdateDto, Volo.Abp.Identity.Application.Contracts", + "type": "Volo.Abp.Identity.IdentityRoleUpdateDto", + "typeSimple": "Volo.Abp.Identity.IdentityRoleUpdateDto", "isOptional": false, "defaultValue": null } @@ -1521,8 +1491,8 @@ "nameOnMethod": "input", "name": "input", "jsonName": null, - "type": "Volo.Abp.TenantManagement.TenantUpdateDto", - "typeSimple": "Volo.Abp.TenantManagement.TenantUpdateDto", + "type": "Volo.Abp.Identity.IdentityRoleUpdateDto", + "typeSimple": "Volo.Abp.Identity.IdentityRoleUpdateDto", "isOptional": false, "defaultValue": null, "constraintTypes": null, @@ -1531,17 +1501,249 @@ } ], "returnValue": { - "type": "Volo.Abp.TenantManagement.TenantDto", - "typeSimple": "Volo.Abp.TenantManagement.TenantDto" + "type": "Volo.Abp.Identity.IdentityRoleDto", + "typeSimple": "Volo.Abp.Identity.IdentityRoleDto" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.Application.Services.IUpdateAppService" + "implementFrom": "Volo.Abp.Application.Services.IUpdateAppService" }, "DeleteAsyncById": { "uniqueName": "DeleteAsyncById", "name": "DeleteAsync", "httpMethod": "DELETE", - "url": "api/multi-tenancy/tenants/{id}", + "url": "api/identity/roles/{id}", + "supportedVersions": [], + "parametersOnMethod": [ + { + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "parameters": [ + { + "nameOnMethod": "id", + "name": "id", + "jsonName": null, + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": [], + "bindingSourceId": "Path", + "descriptorName": "" + } + ], + "returnValue": { + "type": "System.Void", + "typeSimple": "System.Void" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.Application.Services.IDeleteAppService" + } + } + }, + "Volo.Abp.Identity.IdentityUserController": { + "controllerName": "IdentityUser", + "controllerGroupName": "User", + "isRemoteService": true, + "isIntegrationService": false, + "apiVersion": null, + "type": "Volo.Abp.Identity.IdentityUserController", + "interfaces": [ + { + "type": "Volo.Abp.Identity.IIdentityUserAppService", + "name": "IIdentityUserAppService", + "methods": [ + { + "name": "GetRolesAsync", + "parametersOnMethod": [ + { + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.Application.Dtos.ListResultDto", + "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto" + } + }, + { + "name": "GetAssignableRolesAsync", + "parametersOnMethod": [], + "returnValue": { + "type": "Volo.Abp.Application.Dtos.ListResultDto", + "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto" + } + }, + { + "name": "UpdateRolesAsync", + "parametersOnMethod": [ + { + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "input", + "typeAsString": "Volo.Abp.Identity.IdentityUserUpdateRolesDto, Volo.Abp.Identity.Application.Contracts", + "type": "Volo.Abp.Identity.IdentityUserUpdateRolesDto", + "typeSimple": "Volo.Abp.Identity.IdentityUserUpdateRolesDto", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "System.Void", + "typeSimple": "System.Void" + } + }, + { + "name": "FindByUsernameAsync", + "parametersOnMethod": [ + { + "name": "userName", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.Identity.IdentityUserDto", + "typeSimple": "Volo.Abp.Identity.IdentityUserDto" + } + }, + { + "name": "FindByEmailAsync", + "parametersOnMethod": [ + { + "name": "email", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.Identity.IdentityUserDto", + "typeSimple": "Volo.Abp.Identity.IdentityUserDto" + } + }, + { + "name": "GetAsync", + "parametersOnMethod": [ + { + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.Identity.IdentityUserDto", + "typeSimple": "Volo.Abp.Identity.IdentityUserDto" + } + }, + { + "name": "GetListAsync", + "parametersOnMethod": [ + { + "name": "input", + "typeAsString": "Volo.Abp.Identity.GetIdentityUsersInput, Volo.Abp.Identity.Application.Contracts", + "type": "Volo.Abp.Identity.GetIdentityUsersInput", + "typeSimple": "Volo.Abp.Identity.GetIdentityUsersInput", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.Application.Dtos.PagedResultDto", + "typeSimple": "Volo.Abp.Application.Dtos.PagedResultDto" + } + }, + { + "name": "CreateAsync", + "parametersOnMethod": [ + { + "name": "input", + "typeAsString": "Volo.Abp.Identity.IdentityUserCreateDto, Volo.Abp.Identity.Application.Contracts", + "type": "Volo.Abp.Identity.IdentityUserCreateDto", + "typeSimple": "Volo.Abp.Identity.IdentityUserCreateDto", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.Identity.IdentityUserDto", + "typeSimple": "Volo.Abp.Identity.IdentityUserDto" + } + }, + { + "name": "UpdateAsync", + "parametersOnMethod": [ + { + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "input", + "typeAsString": "Volo.Abp.Identity.IdentityUserUpdateDto, Volo.Abp.Identity.Application.Contracts", + "type": "Volo.Abp.Identity.IdentityUserUpdateDto", + "typeSimple": "Volo.Abp.Identity.IdentityUserUpdateDto", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.Identity.IdentityUserDto", + "typeSimple": "Volo.Abp.Identity.IdentityUserDto" + } + }, + { + "name": "DeleteAsync", + "parametersOnMethod": [ + { + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "System.Void", + "typeSimple": "System.Void" + } + } + ] + } + ], + "actions": { + "GetAsyncById": { + "uniqueName": "GetAsyncById", + "name": "GetAsync", + "httpMethod": "GET", + "url": "api/identity/users/{id}", "supportedVersions": [], "parametersOnMethod": [ { @@ -1568,111 +1770,127 @@ } ], "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" + "type": "Volo.Abp.Identity.IdentityUserDto", + "typeSimple": "Volo.Abp.Identity.IdentityUserDto" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.Application.Services.IDeleteAppService" + "implementFrom": "Volo.Abp.Application.Services.IReadOnlyAppService" }, - "GetDefaultConnectionStringAsyncById": { - "uniqueName": "GetDefaultConnectionStringAsyncById", - "name": "GetDefaultConnectionStringAsync", + "GetListAsyncByInput": { + "uniqueName": "GetListAsyncByInput", + "name": "GetListAsync", "httpMethod": "GET", - "url": "api/multi-tenancy/tenants/{id}/default-connection-string", + "url": "api/identity/users", "supportedVersions": [], "parametersOnMethod": [ { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", + "name": "input", + "typeAsString": "Volo.Abp.Identity.GetIdentityUsersInput, Volo.Abp.Identity.Application.Contracts", + "type": "Volo.Abp.Identity.GetIdentityUsersInput", + "typeSimple": "Volo.Abp.Identity.GetIdentityUsersInput", "isOptional": false, "defaultValue": null } ], "parameters": [ { - "nameOnMethod": "id", - "name": "id", + "nameOnMethod": "input", + "name": "Filter", "jsonName": null, - "type": "System.Guid", + "type": "System.String", "typeSimple": "string", "isOptional": false, "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "input" + }, + { + "nameOnMethod": "input", + "name": "Sorting", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "input" + }, + { + "nameOnMethod": "input", + "name": "SkipCount", + "jsonName": null, + "type": "System.Int32", + "typeSimple": "number", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "input" + }, + { + "nameOnMethod": "input", + "name": "MaxResultCount", + "jsonName": null, + "type": "System.Int32", + "typeSimple": "number", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "input" } ], "returnValue": { - "type": "System.String", - "typeSimple": "string" + "type": "Volo.Abp.Application.Dtos.PagedResultDto", + "typeSimple": "Volo.Abp.Application.Dtos.PagedResultDto" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.TenantManagement.ITenantAppService" + "implementFrom": "Volo.Abp.Application.Services.IReadOnlyAppService" }, - "UpdateDefaultConnectionStringAsyncByIdAndDefaultConnectionString": { - "uniqueName": "UpdateDefaultConnectionStringAsyncByIdAndDefaultConnectionString", - "name": "UpdateDefaultConnectionStringAsync", - "httpMethod": "PUT", - "url": "api/multi-tenancy/tenants/{id}/default-connection-string", + "CreateAsyncByInput": { + "uniqueName": "CreateAsyncByInput", + "name": "CreateAsync", + "httpMethod": "POST", + "url": "api/identity/users", "supportedVersions": [], "parametersOnMethod": [ { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "defaultConnectionString", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", + "name": "input", + "typeAsString": "Volo.Abp.Identity.IdentityUserCreateDto, Volo.Abp.Identity.Application.Contracts", + "type": "Volo.Abp.Identity.IdentityUserCreateDto", + "typeSimple": "Volo.Abp.Identity.IdentityUserCreateDto", "isOptional": false, "defaultValue": null } ], "parameters": [ { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - }, - { - "nameOnMethod": "defaultConnectionString", - "name": "defaultConnectionString", + "nameOnMethod": "input", + "name": "input", "jsonName": null, - "type": "System.String", - "typeSimple": "string", + "type": "Volo.Abp.Identity.IdentityUserCreateDto", + "typeSimple": "Volo.Abp.Identity.IdentityUserCreateDto", "isOptional": false, "defaultValue": null, "constraintTypes": null, - "bindingSourceId": "ModelBinding", + "bindingSourceId": "Body", "descriptorName": "" } ], "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" + "type": "Volo.Abp.Identity.IdentityUserDto", + "typeSimple": "Volo.Abp.Identity.IdentityUserDto" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.TenantManagement.ITenantAppService" + "implementFrom": "Volo.Abp.Application.Services.ICreateAppService" }, - "DeleteDefaultConnectionStringAsyncById": { - "uniqueName": "DeleteDefaultConnectionStringAsyncById", - "name": "DeleteDefaultConnectionStringAsync", - "httpMethod": "DELETE", - "url": "api/multi-tenancy/tenants/{id}/default-connection-string", + "UpdateAsyncByIdAndInput": { + "uniqueName": "UpdateAsyncByIdAndInput", + "name": "UpdateAsync", + "httpMethod": "PUT", + "url": "api/identity/users/{id}", "supportedVersions": [], "parametersOnMethod": [ { @@ -1682,6 +1900,14 @@ "typeSimple": "string", "isOptional": false, "defaultValue": null + }, + { + "name": "input", + "typeAsString": "Volo.Abp.Identity.IdentityUserUpdateDto, Volo.Abp.Identity.Application.Contracts", + "type": "Volo.Abp.Identity.IdentityUserUpdateDto", + "typeSimple": "Volo.Abp.Identity.IdentityUserUpdateDto", + "isOptional": false, + "defaultValue": null } ], "parameters": [ @@ -1696,84 +1922,38 @@ "constraintTypes": [], "bindingSourceId": "Path", "descriptorName": "" + }, + { + "nameOnMethod": "input", + "name": "input", + "jsonName": null, + "type": "Volo.Abp.Identity.IdentityUserUpdateDto", + "typeSimple": "Volo.Abp.Identity.IdentityUserUpdateDto", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "Body", + "descriptorName": "" } ], "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" + "type": "Volo.Abp.Identity.IdentityUserDto", + "typeSimple": "Volo.Abp.Identity.IdentityUserDto" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.TenantManagement.ITenantAppService" - } - } - } - } - }, - "abp": { - "rootPath": "abp", - "remoteServiceName": "abp", - "controllers": { - "Pages.Abp.MultiTenancy.AbpTenantController": { - "controllerName": "AbpTenant", - "controllerGroupName": "AbpTenant", - "isRemoteService": true, - "isIntegrationService": false, - "apiVersion": null, - "type": "Pages.Abp.MultiTenancy.AbpTenantController", - "interfaces": [ - { - "type": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.IAbpTenantAppService", - "name": "IAbpTenantAppService", - "methods": [ - { - "name": "FindTenantByNameAsync", - "parametersOnMethod": [ - { - "name": "name", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "returnValue": { - "type": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.FindTenantResultDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.FindTenantResultDto" - } - }, - { - "name": "FindTenantByIdAsync", - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "returnValue": { - "type": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.FindTenantResultDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.FindTenantResultDto" - } - } - ] - } - ], - "actions": { - "FindTenantByNameAsyncByName": { - "uniqueName": "FindTenantByNameAsyncByName", - "name": "FindTenantByNameAsync", - "httpMethod": "GET", - "url": "api/abp/multi-tenancy/tenants/by-name/{name}", + "implementFrom": "Volo.Abp.Application.Services.IUpdateAppService" + }, + "DeleteAsyncById": { + "uniqueName": "DeleteAsyncById", + "name": "DeleteAsync", + "httpMethod": "DELETE", + "url": "api/identity/users/{id}", "supportedVersions": [], "parametersOnMethod": [ { - "name": "name", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", "typeSimple": "string", "isOptional": false, "defaultValue": null @@ -1781,10 +1961,10 @@ ], "parameters": [ { - "nameOnMethod": "name", - "name": "name", + "nameOnMethod": "id", + "name": "id", "jsonName": null, - "type": "System.String", + "type": "System.Guid", "typeSimple": "string", "isOptional": false, "defaultValue": null, @@ -1794,17 +1974,17 @@ } ], "returnValue": { - "type": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.FindTenantResultDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.FindTenantResultDto" + "type": "System.Void", + "typeSimple": "System.Void" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.IAbpTenantAppService" + "implementFrom": "Volo.Abp.Application.Services.IDeleteAppService" }, - "FindTenantByIdAsyncById": { - "uniqueName": "FindTenantByIdAsyncById", - "name": "FindTenantByIdAsync", + "GetRolesAsyncById": { + "uniqueName": "GetRolesAsyncById", + "name": "GetRolesAsync", "httpMethod": "GET", - "url": "api/abp/multi-tenancy/tenants/by-id/{id}", + "url": "api/identity/users/{id}/roles", "supportedVersions": [], "parametersOnMethod": [ { @@ -1831,246 +2011,174 @@ } ], "returnValue": { - "type": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.FindTenantResultDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.FindTenantResultDto" + "type": "Volo.Abp.Application.Dtos.ListResultDto", + "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.IAbpTenantAppService" - } - } - }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationConfigurationController": { - "controllerName": "AbpApplicationConfiguration", - "controllerGroupName": "AbpApplicationConfiguration", - "isRemoteService": true, - "isIntegrationService": false, - "apiVersion": null, - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationConfigurationController", - "interfaces": [ - { - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.IAbpApplicationConfigurationAppService", - "name": "IAbpApplicationConfigurationAppService", - "methods": [ - { - "name": "GetAsync", - "parametersOnMethod": [ - { - "name": "options", - "typeAsString": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationRequestOptions, Volo.Abp.AspNetCore.Mvc.Contracts", - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationRequestOptions", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationRequestOptions", - "isOptional": false, - "defaultValue": null - } - ], - "returnValue": { - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationDto" - } - } - ] - } - ], - "actions": { - "GetAsyncByOptions": { - "uniqueName": "GetAsyncByOptions", - "name": "GetAsync", + "implementFrom": "Volo.Abp.Identity.IIdentityUserAppService" + }, + "GetAssignableRolesAsync": { + "uniqueName": "GetAssignableRolesAsync", + "name": "GetAssignableRolesAsync", "httpMethod": "GET", - "url": "api/abp/application-configuration", + "url": "api/identity/users/assignable-roles", + "supportedVersions": [], + "parametersOnMethod": [], + "parameters": [], + "returnValue": { + "type": "Volo.Abp.Application.Dtos.ListResultDto", + "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.Identity.IIdentityUserAppService" + }, + "UpdateRolesAsyncByIdAndInput": { + "uniqueName": "UpdateRolesAsyncByIdAndInput", + "name": "UpdateRolesAsync", + "httpMethod": "PUT", + "url": "api/identity/users/{id}/roles", "supportedVersions": [], "parametersOnMethod": [ { - "name": "options", - "typeAsString": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationRequestOptions, Volo.Abp.AspNetCore.Mvc.Contracts", - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationRequestOptions", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationRequestOptions", + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "input", + "typeAsString": "Volo.Abp.Identity.IdentityUserUpdateRolesDto, Volo.Abp.Identity.Application.Contracts", + "type": "Volo.Abp.Identity.IdentityUserUpdateRolesDto", + "typeSimple": "Volo.Abp.Identity.IdentityUserUpdateRolesDto", "isOptional": false, "defaultValue": null } ], "parameters": [ { - "nameOnMethod": "options", - "name": "IncludeLocalizationResources", + "nameOnMethod": "id", + "name": "id", "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": [], + "bindingSourceId": "Path", + "descriptorName": "" + }, + { + "nameOnMethod": "input", + "name": "input", + "jsonName": null, + "type": "Volo.Abp.Identity.IdentityUserUpdateRolesDto", + "typeSimple": "Volo.Abp.Identity.IdentityUserUpdateRolesDto", "isOptional": false, "defaultValue": null, "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "options" + "bindingSourceId": "Body", + "descriptorName": "" } ], "returnValue": { - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationDto" + "type": "System.Void", + "typeSimple": "System.Void" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.IAbpApplicationConfigurationAppService" - } - } - }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationLocalizationController": { - "controllerName": "AbpApplicationLocalization", - "controllerGroupName": "AbpApplicationLocalization", - "isRemoteService": true, - "isIntegrationService": false, - "apiVersion": null, - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationLocalizationController", - "interfaces": [ - { - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.IAbpApplicationLocalizationAppService", - "name": "IAbpApplicationLocalizationAppService", - "methods": [ - { - "name": "GetAsync", - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationRequestDto, Volo.Abp.AspNetCore.Mvc.Contracts", - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationRequestDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationRequestDto", - "isOptional": false, - "defaultValue": null - } - ], - "returnValue": { - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationDto" - } - } - ] - } - ], - "actions": { - "GetAsyncByInput": { - "uniqueName": "GetAsyncByInput", - "name": "GetAsync", + "implementFrom": "Volo.Abp.Identity.IIdentityUserAppService" + }, + "FindByUsernameAsyncByUserName": { + "uniqueName": "FindByUsernameAsyncByUserName", + "name": "FindByUsernameAsync", "httpMethod": "GET", - "url": "api/abp/application-localization", + "url": "api/identity/users/by-username/{userName}", "supportedVersions": [], "parametersOnMethod": [ { - "name": "input", - "typeAsString": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationRequestDto, Volo.Abp.AspNetCore.Mvc.Contracts", - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationRequestDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationRequestDto", + "name": "userName", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", "isOptional": false, "defaultValue": null } ], "parameters": [ { - "nameOnMethod": "input", - "name": "CultureName", + "nameOnMethod": "userName", + "name": "userName", "jsonName": null, "type": "System.String", "typeSimple": "string", "isOptional": false, "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "OnlyDynamics", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" + "constraintTypes": [], + "bindingSourceId": "Path", + "descriptorName": "" } ], "returnValue": { - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationDto" + "type": "Volo.Abp.Identity.IdentityUserDto", + "typeSimple": "Volo.Abp.Identity.IdentityUserDto" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.IAbpApplicationLocalizationAppService" - } - } - }, - "Volo.Abp.AspNetCore.Mvc.ApiExploring.AbpApiDefinitionController": { - "controllerName": "AbpApiDefinition", - "controllerGroupName": "AbpApiDefinition", - "isRemoteService": true, - "isIntegrationService": false, - "apiVersion": null, - "type": "Volo.Abp.AspNetCore.Mvc.ApiExploring.AbpApiDefinitionController", - "interfaces": [], - "actions": { - "GetByModel": { - "uniqueName": "GetByModel", - "name": "Get", + "implementFrom": "Volo.Abp.Identity.IIdentityUserAppService" + }, + "FindByEmailAsyncByEmail": { + "uniqueName": "FindByEmailAsyncByEmail", + "name": "FindByEmailAsync", "httpMethod": "GET", - "url": "api/abp/api-definition", + "url": "api/identity/users/by-email/{email}", "supportedVersions": [], "parametersOnMethod": [ { - "name": "model", - "typeAsString": "Volo.Abp.Http.Modeling.ApplicationApiDescriptionModelRequestDto, Volo.Abp.Http", - "type": "Volo.Abp.Http.Modeling.ApplicationApiDescriptionModelRequestDto", - "typeSimple": "Volo.Abp.Http.Modeling.ApplicationApiDescriptionModelRequestDto", + "name": "email", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", "isOptional": false, "defaultValue": null } ], "parameters": [ { - "nameOnMethod": "model", - "name": "IncludeTypes", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", + "nameOnMethod": "email", + "name": "email", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", "isOptional": false, "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "model" + "constraintTypes": [], + "bindingSourceId": "Path", + "descriptorName": "" } ], "returnValue": { - "type": "Volo.Abp.Http.Modeling.ApplicationApiDescriptionModel", - "typeSimple": "Volo.Abp.Http.Modeling.ApplicationApiDescriptionModel" + "type": "Volo.Abp.Identity.IdentityUserDto", + "typeSimple": "Volo.Abp.Identity.IdentityUserDto" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.AspNetCore.Mvc.ApiExploring.AbpApiDefinitionController" + "implementFrom": "Volo.Abp.Identity.IIdentityUserAppService" } } - } - } - }, - "identity": { - "rootPath": "identity", - "remoteServiceName": "AbpIdentity", - "controllers": { - "Volo.Abp.Identity.IdentityRoleController": { - "controllerName": "IdentityRole", - "controllerGroupName": "Role", + }, + "Volo.Abp.Identity.IdentityUserLookupController": { + "controllerName": "IdentityUserLookup", + "controllerGroupName": "UserLookup", "isRemoteService": true, "isIntegrationService": false, "apiVersion": null, - "type": "Volo.Abp.Identity.IdentityRoleController", + "type": "Volo.Abp.Identity.IdentityUserLookupController", "interfaces": [ { - "type": "Volo.Abp.Identity.IIdentityRoleAppService", - "name": "IIdentityRoleAppService", + "type": "Volo.Abp.Identity.IIdentityUserLookupAppService", + "name": "IIdentityUserLookupAppService", "methods": [ { - "name": "GetAllListAsync", - "parametersOnMethod": [], - "returnValue": { - "type": "Volo.Abp.Application.Dtos.ListResultDto", - "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto" - } - }, - { - "name": "GetAsync", + "name": "FindByIdAsync", "parametersOnMethod": [ { "name": "id", @@ -2082,183 +2190,70 @@ } ], "returnValue": { - "type": "Volo.Abp.Identity.IdentityRoleDto", - "typeSimple": "Volo.Abp.Identity.IdentityRoleDto" + "type": "Volo.Abp.Users.UserData", + "typeSimple": "Volo.Abp.Users.UserData" } }, { - "name": "GetListAsync", + "name": "FindByUserNameAsync", "parametersOnMethod": [ { - "name": "input", - "typeAsString": "Volo.Abp.Identity.GetIdentityRolesInput, Volo.Abp.Identity.Application.Contracts", - "type": "Volo.Abp.Identity.GetIdentityRolesInput", - "typeSimple": "Volo.Abp.Identity.GetIdentityRolesInput", + "name": "userName", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", "isOptional": false, "defaultValue": null } ], "returnValue": { - "type": "Volo.Abp.Application.Dtos.PagedResultDto", - "typeSimple": "Volo.Abp.Application.Dtos.PagedResultDto" + "type": "Volo.Abp.Users.UserData", + "typeSimple": "Volo.Abp.Users.UserData" } }, { - "name": "CreateAsync", + "name": "SearchAsync", "parametersOnMethod": [ { "name": "input", - "typeAsString": "Volo.Abp.Identity.IdentityRoleCreateDto, Volo.Abp.Identity.Application.Contracts", - "type": "Volo.Abp.Identity.IdentityRoleCreateDto", - "typeSimple": "Volo.Abp.Identity.IdentityRoleCreateDto", + "typeAsString": "Volo.Abp.Identity.UserLookupSearchInputDto, Volo.Abp.Identity.Application.Contracts", + "type": "Volo.Abp.Identity.UserLookupSearchInputDto", + "typeSimple": "Volo.Abp.Identity.UserLookupSearchInputDto", "isOptional": false, "defaultValue": null } ], "returnValue": { - "type": "Volo.Abp.Identity.IdentityRoleDto", - "typeSimple": "Volo.Abp.Identity.IdentityRoleDto" + "type": "Volo.Abp.Application.Dtos.ListResultDto", + "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto" } }, { - "name": "UpdateAsync", + "name": "GetCountAsync", "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, { "name": "input", - "typeAsString": "Volo.Abp.Identity.IdentityRoleUpdateDto, Volo.Abp.Identity.Application.Contracts", - "type": "Volo.Abp.Identity.IdentityRoleUpdateDto", - "typeSimple": "Volo.Abp.Identity.IdentityRoleUpdateDto", - "isOptional": false, - "defaultValue": null - } - ], - "returnValue": { - "type": "Volo.Abp.Identity.IdentityRoleDto", - "typeSimple": "Volo.Abp.Identity.IdentityRoleDto" - } - }, - { - "name": "DeleteAsync", - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", + "typeAsString": "Volo.Abp.Identity.UserLookupCountInputDto, Volo.Abp.Identity.Application.Contracts", + "type": "Volo.Abp.Identity.UserLookupCountInputDto", + "typeSimple": "Volo.Abp.Identity.UserLookupCountInputDto", "isOptional": false, "defaultValue": null } ], "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" + "type": "System.Int64", + "typeSimple": "number" } } ] } ], "actions": { - "GetAllListAsync": { - "uniqueName": "GetAllListAsync", - "name": "GetAllListAsync", - "httpMethod": "GET", - "url": "api/identity/roles/all", - "supportedVersions": [], - "parametersOnMethod": [], - "parameters": [], - "returnValue": { - "type": "Volo.Abp.Application.Dtos.ListResultDto", - "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto" - }, - "allowAnonymous": null, - "implementFrom": "Volo.Abp.Identity.IIdentityRoleAppService" - }, - "GetListAsyncByInput": { - "uniqueName": "GetListAsyncByInput", - "name": "GetListAsync", - "httpMethod": "GET", - "url": "api/identity/roles", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "Volo.Abp.Identity.GetIdentityRolesInput, Volo.Abp.Identity.Application.Contracts", - "type": "Volo.Abp.Identity.GetIdentityRolesInput", - "typeSimple": "Volo.Abp.Identity.GetIdentityRolesInput", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "input", - "name": "Filter", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "Sorting", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "SkipCount", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "MaxResultCount", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - } - ], - "returnValue": { - "type": "Volo.Abp.Application.Dtos.PagedResultDto", - "typeSimple": "Volo.Abp.Application.Dtos.PagedResultDto" - }, - "allowAnonymous": null, - "implementFrom": "Volo.Abp.Application.Services.IReadOnlyAppService" - }, - "GetAsyncById": { - "uniqueName": "GetAsyncById", - "name": "GetAsync", + "FindByIdAsyncById": { + "uniqueName": "FindByIdAsyncById", + "name": "FindByIdAsync", "httpMethod": "GET", - "url": "api/identity/roles/{id}", + "url": "api/identity/users/lookup/{id}", "supportedVersions": [], "parametersOnMethod": [ { @@ -2285,159 +2280,181 @@ } ], "returnValue": { - "type": "Volo.Abp.Identity.IdentityRoleDto", - "typeSimple": "Volo.Abp.Identity.IdentityRoleDto" + "type": "Volo.Abp.Users.UserData", + "typeSimple": "Volo.Abp.Users.UserData" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.Application.Services.IReadOnlyAppService" + "implementFrom": "Volo.Abp.Identity.IIdentityUserLookupAppService" }, - "CreateAsyncByInput": { - "uniqueName": "CreateAsyncByInput", - "name": "CreateAsync", - "httpMethod": "POST", - "url": "api/identity/roles", + "FindByUserNameAsyncByUserName": { + "uniqueName": "FindByUserNameAsyncByUserName", + "name": "FindByUserNameAsync", + "httpMethod": "GET", + "url": "api/identity/users/lookup/by-username/{userName}", "supportedVersions": [], "parametersOnMethod": [ { - "name": "input", - "typeAsString": "Volo.Abp.Identity.IdentityRoleCreateDto, Volo.Abp.Identity.Application.Contracts", - "type": "Volo.Abp.Identity.IdentityRoleCreateDto", - "typeSimple": "Volo.Abp.Identity.IdentityRoleCreateDto", + "name": "userName", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", "isOptional": false, "defaultValue": null } ], "parameters": [ { - "nameOnMethod": "input", - "name": "input", + "nameOnMethod": "userName", + "name": "userName", "jsonName": null, - "type": "Volo.Abp.Identity.IdentityRoleCreateDto", - "typeSimple": "Volo.Abp.Identity.IdentityRoleCreateDto", + "type": "System.String", + "typeSimple": "string", "isOptional": false, "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", + "constraintTypes": [], + "bindingSourceId": "Path", "descriptorName": "" } ], "returnValue": { - "type": "Volo.Abp.Identity.IdentityRoleDto", - "typeSimple": "Volo.Abp.Identity.IdentityRoleDto" + "type": "Volo.Abp.Users.UserData", + "typeSimple": "Volo.Abp.Users.UserData" }, - "allowAnonymous": null, - "implementFrom": "Volo.Abp.Application.Services.ICreateAppService" - }, - "UpdateAsyncByIdAndInput": { - "uniqueName": "UpdateAsyncByIdAndInput", - "name": "UpdateAsync", - "httpMethod": "PUT", - "url": "api/identity/roles/{id}", + "allowAnonymous": null, + "implementFrom": "Volo.Abp.Identity.IIdentityUserLookupAppService" + }, + "SearchAsyncByInput": { + "uniqueName": "SearchAsyncByInput", + "name": "SearchAsync", + "httpMethod": "GET", + "url": "api/identity/users/lookup/search", "supportedVersions": [], "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, { "name": "input", - "typeAsString": "Volo.Abp.Identity.IdentityRoleUpdateDto, Volo.Abp.Identity.Application.Contracts", - "type": "Volo.Abp.Identity.IdentityRoleUpdateDto", - "typeSimple": "Volo.Abp.Identity.IdentityRoleUpdateDto", + "typeAsString": "Volo.Abp.Identity.UserLookupSearchInputDto, Volo.Abp.Identity.Application.Contracts", + "type": "Volo.Abp.Identity.UserLookupSearchInputDto", + "typeSimple": "Volo.Abp.Identity.UserLookupSearchInputDto", "isOptional": false, "defaultValue": null } ], "parameters": [ { - "nameOnMethod": "id", - "name": "id", + "nameOnMethod": "input", + "name": "Filter", "jsonName": null, - "type": "System.Guid", + "type": "System.String", "typeSimple": "string", "isOptional": false, "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "input" }, { "nameOnMethod": "input", - "name": "input", + "name": "Sorting", "jsonName": null, - "type": "Volo.Abp.Identity.IdentityRoleUpdateDto", - "typeSimple": "Volo.Abp.Identity.IdentityRoleUpdateDto", + "type": "System.String", + "typeSimple": "string", "isOptional": false, "defaultValue": null, "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" + "bindingSourceId": "ModelBinding", + "descriptorName": "input" + }, + { + "nameOnMethod": "input", + "name": "SkipCount", + "jsonName": null, + "type": "System.Int32", + "typeSimple": "number", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "input" + }, + { + "nameOnMethod": "input", + "name": "MaxResultCount", + "jsonName": null, + "type": "System.Int32", + "typeSimple": "number", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "input" } ], "returnValue": { - "type": "Volo.Abp.Identity.IdentityRoleDto", - "typeSimple": "Volo.Abp.Identity.IdentityRoleDto" + "type": "Volo.Abp.Application.Dtos.ListResultDto", + "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.Application.Services.IUpdateAppService" + "implementFrom": "Volo.Abp.Identity.IIdentityUserLookupAppService" }, - "DeleteAsyncById": { - "uniqueName": "DeleteAsyncById", - "name": "DeleteAsync", - "httpMethod": "DELETE", - "url": "api/identity/roles/{id}", + "GetCountAsyncByInput": { + "uniqueName": "GetCountAsyncByInput", + "name": "GetCountAsync", + "httpMethod": "GET", + "url": "api/identity/users/lookup/count", "supportedVersions": [], "parametersOnMethod": [ { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", + "name": "input", + "typeAsString": "Volo.Abp.Identity.UserLookupCountInputDto, Volo.Abp.Identity.Application.Contracts", + "type": "Volo.Abp.Identity.UserLookupCountInputDto", + "typeSimple": "Volo.Abp.Identity.UserLookupCountInputDto", "isOptional": false, "defaultValue": null } ], "parameters": [ { - "nameOnMethod": "id", - "name": "id", + "nameOnMethod": "input", + "name": "Filter", "jsonName": null, - "type": "System.Guid", + "type": "System.String", "typeSimple": "string", "isOptional": false, "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "input" } ], "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" + "type": "System.Int64", + "typeSimple": "number" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.Application.Services.IDeleteAppService" + "implementFrom": "Volo.Abp.Identity.IIdentityUserLookupAppService" } } - }, - "Volo.Abp.Identity.IdentityUserController": { - "controllerName": "IdentityUser", - "controllerGroupName": "User", + } + } + }, + "multi-tenancy": { + "rootPath": "multi-tenancy", + "remoteServiceName": "AbpTenantManagement", + "controllers": { + "Volo.Abp.TenantManagement.TenantController": { + "controllerName": "Tenant", + "controllerGroupName": "Tenant", "isRemoteService": true, "isIntegrationService": false, "apiVersion": null, - "type": "Volo.Abp.Identity.IdentityUserController", + "type": "Volo.Abp.TenantManagement.TenantController", "interfaces": [ { - "type": "Volo.Abp.Identity.IIdentityUserAppService", - "name": "IIdentityUserAppService", + "type": "Volo.Abp.TenantManagement.ITenantAppService", + "name": "ITenantAppService", "methods": [ { - "name": "GetRolesAsync", + "name": "GetDefaultConnectionStringAsync", "parametersOnMethod": [ { "name": "id", @@ -2449,20 +2466,12 @@ } ], "returnValue": { - "type": "Volo.Abp.Application.Dtos.ListResultDto", - "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto" - } - }, - { - "name": "GetAssignableRolesAsync", - "parametersOnMethod": [], - "returnValue": { - "type": "Volo.Abp.Application.Dtos.ListResultDto", - "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto" + "type": "System.String", + "typeSimple": "string" } }, { - "name": "UpdateRolesAsync", + "name": "UpdateDefaultConnectionStringAsync", "parametersOnMethod": [ { "name": "id", @@ -2473,24 +2482,7 @@ "defaultValue": null }, { - "name": "input", - "typeAsString": "Volo.Abp.Identity.IdentityUserUpdateRolesDto, Volo.Abp.Identity.Application.Contracts", - "type": "Volo.Abp.Identity.IdentityUserUpdateRolesDto", - "typeSimple": "Volo.Abp.Identity.IdentityUserUpdateRolesDto", - "isOptional": false, - "defaultValue": null - } - ], - "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - } - }, - { - "name": "FindByUsernameAsync", - "parametersOnMethod": [ - { - "name": "userName", + "name": "defaultConnectionString", "typeAsString": "System.String, System.Private.CoreLib", "type": "System.String", "typeSimple": "string", @@ -2499,25 +2491,25 @@ } ], "returnValue": { - "type": "Volo.Abp.Identity.IdentityUserDto", - "typeSimple": "Volo.Abp.Identity.IdentityUserDto" + "type": "System.Void", + "typeSimple": "System.Void" } }, { - "name": "FindByEmailAsync", + "name": "DeleteDefaultConnectionStringAsync", "parametersOnMethod": [ { - "name": "email", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", "typeSimple": "string", "isOptional": false, "defaultValue": null } ], "returnValue": { - "type": "Volo.Abp.Identity.IdentityUserDto", - "typeSimple": "Volo.Abp.Identity.IdentityUserDto" + "type": "System.Void", + "typeSimple": "System.Void" } }, { @@ -2533,8 +2525,8 @@ } ], "returnValue": { - "type": "Volo.Abp.Identity.IdentityUserDto", - "typeSimple": "Volo.Abp.Identity.IdentityUserDto" + "type": "Volo.Abp.TenantManagement.TenantDto", + "typeSimple": "Volo.Abp.TenantManagement.TenantDto" } }, { @@ -2542,16 +2534,16 @@ "parametersOnMethod": [ { "name": "input", - "typeAsString": "Volo.Abp.Identity.GetIdentityUsersInput, Volo.Abp.Identity.Application.Contracts", - "type": "Volo.Abp.Identity.GetIdentityUsersInput", - "typeSimple": "Volo.Abp.Identity.GetIdentityUsersInput", + "typeAsString": "Volo.Abp.TenantManagement.GetTenantsInput, Volo.Abp.TenantManagement.Application.Contracts", + "type": "Volo.Abp.TenantManagement.GetTenantsInput", + "typeSimple": "Volo.Abp.TenantManagement.GetTenantsInput", "isOptional": false, "defaultValue": null } ], "returnValue": { - "type": "Volo.Abp.Application.Dtos.PagedResultDto", - "typeSimple": "Volo.Abp.Application.Dtos.PagedResultDto" + "type": "Volo.Abp.Application.Dtos.PagedResultDto", + "typeSimple": "Volo.Abp.Application.Dtos.PagedResultDto" } }, { @@ -2559,16 +2551,16 @@ "parametersOnMethod": [ { "name": "input", - "typeAsString": "Volo.Abp.Identity.IdentityUserCreateDto, Volo.Abp.Identity.Application.Contracts", - "type": "Volo.Abp.Identity.IdentityUserCreateDto", - "typeSimple": "Volo.Abp.Identity.IdentityUserCreateDto", + "typeAsString": "Volo.Abp.TenantManagement.TenantCreateDto, Volo.Abp.TenantManagement.Application.Contracts", + "type": "Volo.Abp.TenantManagement.TenantCreateDto", + "typeSimple": "Volo.Abp.TenantManagement.TenantCreateDto", "isOptional": false, "defaultValue": null } ], "returnValue": { - "type": "Volo.Abp.Identity.IdentityUserDto", - "typeSimple": "Volo.Abp.Identity.IdentityUserDto" + "type": "Volo.Abp.TenantManagement.TenantDto", + "typeSimple": "Volo.Abp.TenantManagement.TenantDto" } }, { @@ -2584,16 +2576,16 @@ }, { "name": "input", - "typeAsString": "Volo.Abp.Identity.IdentityUserUpdateDto, Volo.Abp.Identity.Application.Contracts", - "type": "Volo.Abp.Identity.IdentityUserUpdateDto", - "typeSimple": "Volo.Abp.Identity.IdentityUserUpdateDto", + "typeAsString": "Volo.Abp.TenantManagement.TenantUpdateDto, Volo.Abp.TenantManagement.Application.Contracts", + "type": "Volo.Abp.TenantManagement.TenantUpdateDto", + "typeSimple": "Volo.Abp.TenantManagement.TenantUpdateDto", "isOptional": false, "defaultValue": null } ], "returnValue": { - "type": "Volo.Abp.Identity.IdentityUserDto", - "typeSimple": "Volo.Abp.Identity.IdentityUserDto" + "type": "Volo.Abp.TenantManagement.TenantDto", + "typeSimple": "Volo.Abp.TenantManagement.TenantDto" } }, { @@ -2621,7 +2613,7 @@ "uniqueName": "GetAsyncById", "name": "GetAsync", "httpMethod": "GET", - "url": "api/identity/users/{id}", + "url": "api/multi-tenancy/tenants/{id}", "supportedVersions": [], "parametersOnMethod": [ { @@ -2648,24 +2640,24 @@ } ], "returnValue": { - "type": "Volo.Abp.Identity.IdentityUserDto", - "typeSimple": "Volo.Abp.Identity.IdentityUserDto" + "type": "Volo.Abp.TenantManagement.TenantDto", + "typeSimple": "Volo.Abp.TenantManagement.TenantDto" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.Application.Services.IReadOnlyAppService" + "implementFrom": "Volo.Abp.Application.Services.IReadOnlyAppService" }, "GetListAsyncByInput": { "uniqueName": "GetListAsyncByInput", "name": "GetListAsync", "httpMethod": "GET", - "url": "api/identity/users", + "url": "api/multi-tenancy/tenants", "supportedVersions": [], "parametersOnMethod": [ { "name": "input", - "typeAsString": "Volo.Abp.Identity.GetIdentityUsersInput, Volo.Abp.Identity.Application.Contracts", - "type": "Volo.Abp.Identity.GetIdentityUsersInput", - "typeSimple": "Volo.Abp.Identity.GetIdentityUsersInput", + "typeAsString": "Volo.Abp.TenantManagement.GetTenantsInput, Volo.Abp.TenantManagement.Application.Contracts", + "type": "Volo.Abp.TenantManagement.GetTenantsInput", + "typeSimple": "Volo.Abp.TenantManagement.GetTenantsInput", "isOptional": false, "defaultValue": null } @@ -2721,24 +2713,24 @@ } ], "returnValue": { - "type": "Volo.Abp.Application.Dtos.PagedResultDto", - "typeSimple": "Volo.Abp.Application.Dtos.PagedResultDto" + "type": "Volo.Abp.Application.Dtos.PagedResultDto", + "typeSimple": "Volo.Abp.Application.Dtos.PagedResultDto" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.Application.Services.IReadOnlyAppService" + "implementFrom": "Volo.Abp.Application.Services.IReadOnlyAppService" }, "CreateAsyncByInput": { "uniqueName": "CreateAsyncByInput", "name": "CreateAsync", "httpMethod": "POST", - "url": "api/identity/users", + "url": "api/multi-tenancy/tenants", "supportedVersions": [], "parametersOnMethod": [ { "name": "input", - "typeAsString": "Volo.Abp.Identity.IdentityUserCreateDto, Volo.Abp.Identity.Application.Contracts", - "type": "Volo.Abp.Identity.IdentityUserCreateDto", - "typeSimple": "Volo.Abp.Identity.IdentityUserCreateDto", + "typeAsString": "Volo.Abp.TenantManagement.TenantCreateDto, Volo.Abp.TenantManagement.Application.Contracts", + "type": "Volo.Abp.TenantManagement.TenantCreateDto", + "typeSimple": "Volo.Abp.TenantManagement.TenantCreateDto", "isOptional": false, "defaultValue": null } @@ -2748,8 +2740,8 @@ "nameOnMethod": "input", "name": "input", "jsonName": null, - "type": "Volo.Abp.Identity.IdentityUserCreateDto", - "typeSimple": "Volo.Abp.Identity.IdentityUserCreateDto", + "type": "Volo.Abp.TenantManagement.TenantCreateDto", + "typeSimple": "Volo.Abp.TenantManagement.TenantCreateDto", "isOptional": false, "defaultValue": null, "constraintTypes": null, @@ -2758,17 +2750,17 @@ } ], "returnValue": { - "type": "Volo.Abp.Identity.IdentityUserDto", - "typeSimple": "Volo.Abp.Identity.IdentityUserDto" + "type": "Volo.Abp.TenantManagement.TenantDto", + "typeSimple": "Volo.Abp.TenantManagement.TenantDto" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.Application.Services.ICreateAppService" + "implementFrom": "Volo.Abp.Application.Services.ICreateAppService" }, "UpdateAsyncByIdAndInput": { "uniqueName": "UpdateAsyncByIdAndInput", "name": "UpdateAsync", "httpMethod": "PUT", - "url": "api/identity/users/{id}", + "url": "api/multi-tenancy/tenants/{id}", "supportedVersions": [], "parametersOnMethod": [ { @@ -2781,9 +2773,9 @@ }, { "name": "input", - "typeAsString": "Volo.Abp.Identity.IdentityUserUpdateDto, Volo.Abp.Identity.Application.Contracts", - "type": "Volo.Abp.Identity.IdentityUserUpdateDto", - "typeSimple": "Volo.Abp.Identity.IdentityUserUpdateDto", + "typeAsString": "Volo.Abp.TenantManagement.TenantUpdateDto, Volo.Abp.TenantManagement.Application.Contracts", + "type": "Volo.Abp.TenantManagement.TenantUpdateDto", + "typeSimple": "Volo.Abp.TenantManagement.TenantUpdateDto", "isOptional": false, "defaultValue": null } @@ -2805,8 +2797,8 @@ "nameOnMethod": "input", "name": "input", "jsonName": null, - "type": "Volo.Abp.Identity.IdentityUserUpdateDto", - "typeSimple": "Volo.Abp.Identity.IdentityUserUpdateDto", + "type": "Volo.Abp.TenantManagement.TenantUpdateDto", + "typeSimple": "Volo.Abp.TenantManagement.TenantUpdateDto", "isOptional": false, "defaultValue": null, "constraintTypes": null, @@ -2815,17 +2807,17 @@ } ], "returnValue": { - "type": "Volo.Abp.Identity.IdentityUserDto", - "typeSimple": "Volo.Abp.Identity.IdentityUserDto" + "type": "Volo.Abp.TenantManagement.TenantDto", + "typeSimple": "Volo.Abp.TenantManagement.TenantDto" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.Application.Services.IUpdateAppService" + "implementFrom": "Volo.Abp.Application.Services.IUpdateAppService" }, "DeleteAsyncById": { "uniqueName": "DeleteAsyncById", "name": "DeleteAsync", "httpMethod": "DELETE", - "url": "api/identity/users/{id}", + "url": "api/multi-tenancy/tenants/{id}", "supportedVersions": [], "parametersOnMethod": [ { @@ -2858,11 +2850,11 @@ "allowAnonymous": null, "implementFrom": "Volo.Abp.Application.Services.IDeleteAppService" }, - "GetRolesAsyncById": { - "uniqueName": "GetRolesAsyncById", - "name": "GetRolesAsync", + "GetDefaultConnectionStringAsyncById": { + "uniqueName": "GetDefaultConnectionStringAsyncById", + "name": "GetDefaultConnectionStringAsync", "httpMethod": "GET", - "url": "api/identity/users/{id}/roles", + "url": "api/multi-tenancy/tenants/{id}/default-connection-string", "supportedVersions": [], "parametersOnMethod": [ { @@ -2889,32 +2881,17 @@ } ], "returnValue": { - "type": "Volo.Abp.Application.Dtos.ListResultDto", - "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto" - }, - "allowAnonymous": null, - "implementFrom": "Volo.Abp.Identity.IIdentityUserAppService" - }, - "GetAssignableRolesAsync": { - "uniqueName": "GetAssignableRolesAsync", - "name": "GetAssignableRolesAsync", - "httpMethod": "GET", - "url": "api/identity/users/assignable-roles", - "supportedVersions": [], - "parametersOnMethod": [], - "parameters": [], - "returnValue": { - "type": "Volo.Abp.Application.Dtos.ListResultDto", - "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto" + "type": "System.String", + "typeSimple": "string" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.Identity.IIdentityUserAppService" + "implementFrom": "Volo.Abp.TenantManagement.ITenantAppService" }, - "UpdateRolesAsyncByIdAndInput": { - "uniqueName": "UpdateRolesAsyncByIdAndInput", - "name": "UpdateRolesAsync", + "UpdateDefaultConnectionStringAsyncByIdAndDefaultConnectionString": { + "uniqueName": "UpdateDefaultConnectionStringAsyncByIdAndDefaultConnectionString", + "name": "UpdateDefaultConnectionStringAsync", "httpMethod": "PUT", - "url": "api/identity/users/{id}/roles", + "url": "api/multi-tenancy/tenants/{id}/default-connection-string", "supportedVersions": [], "parametersOnMethod": [ { @@ -2926,10 +2903,10 @@ "defaultValue": null }, { - "name": "input", - "typeAsString": "Volo.Abp.Identity.IdentityUserUpdateRolesDto, Volo.Abp.Identity.Application.Contracts", - "type": "Volo.Abp.Identity.IdentityUserUpdateRolesDto", - "typeSimple": "Volo.Abp.Identity.IdentityUserUpdateRolesDto", + "name": "defaultConnectionString", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", "isOptional": false, "defaultValue": null } @@ -2948,15 +2925,15 @@ "descriptorName": "" }, { - "nameOnMethod": "input", - "name": "input", + "nameOnMethod": "defaultConnectionString", + "name": "defaultConnectionString", "jsonName": null, - "type": "Volo.Abp.Identity.IdentityUserUpdateRolesDto", - "typeSimple": "Volo.Abp.Identity.IdentityUserUpdateRolesDto", + "type": "System.String", + "typeSimple": "string", "isOptional": false, "defaultValue": null, "constraintTypes": null, - "bindingSourceId": "Body", + "bindingSourceId": "ModelBinding", "descriptorName": "" } ], @@ -2965,17 +2942,144 @@ "typeSimple": "System.Void" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.Identity.IIdentityUserAppService" + "implementFrom": "Volo.Abp.TenantManagement.ITenantAppService" }, - "FindByUsernameAsyncByUserName": { - "uniqueName": "FindByUsernameAsyncByUserName", - "name": "FindByUsernameAsync", + "DeleteDefaultConnectionStringAsyncById": { + "uniqueName": "DeleteDefaultConnectionStringAsyncById", + "name": "DeleteDefaultConnectionStringAsync", + "httpMethod": "DELETE", + "url": "api/multi-tenancy/tenants/{id}/default-connection-string", + "supportedVersions": [], + "parametersOnMethod": [ + { + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "parameters": [ + { + "nameOnMethod": "id", + "name": "id", + "jsonName": null, + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": [], + "bindingSourceId": "Path", + "descriptorName": "" + } + ], + "returnValue": { + "type": "System.Void", + "typeSimple": "System.Void" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.TenantManagement.ITenantAppService" + } + } + } + } + }, + "permissionManagement": { + "rootPath": "permissionManagement", + "remoteServiceName": "AbpPermissionManagement", + "controllers": { + "Volo.Abp.PermissionManagement.PermissionsController": { + "controllerName": "Permissions", + "controllerGroupName": "Permissions", + "isRemoteService": true, + "isIntegrationService": false, + "apiVersion": null, + "type": "Volo.Abp.PermissionManagement.PermissionsController", + "interfaces": [ + { + "type": "Volo.Abp.PermissionManagement.IPermissionAppService", + "name": "IPermissionAppService", + "methods": [ + { + "name": "GetAsync", + "parametersOnMethod": [ + { + "name": "providerName", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "providerKey", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.PermissionManagement.GetPermissionListResultDto", + "typeSimple": "Volo.Abp.PermissionManagement.GetPermissionListResultDto" + } + }, + { + "name": "UpdateAsync", + "parametersOnMethod": [ + { + "name": "providerName", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "providerKey", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "input", + "typeAsString": "Volo.Abp.PermissionManagement.UpdatePermissionsDto, Volo.Abp.PermissionManagement.Application.Contracts", + "type": "Volo.Abp.PermissionManagement.UpdatePermissionsDto", + "typeSimple": "Volo.Abp.PermissionManagement.UpdatePermissionsDto", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "System.Void", + "typeSimple": "System.Void" + } + } + ] + } + ], + "actions": { + "GetAsyncByProviderNameAndProviderKey": { + "uniqueName": "GetAsyncByProviderNameAndProviderKey", + "name": "GetAsync", "httpMethod": "GET", - "url": "api/identity/users/by-username/{userName}", + "url": "api/permission-management/permissions", "supportedVersions": [], "parametersOnMethod": [ { - "name": "userName", + "name": "providerName", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "providerKey", "typeAsString": "System.String, System.Private.CoreLib", "type": "System.String", "typeSimple": "string", @@ -2985,234 +3089,244 @@ ], "parameters": [ { - "nameOnMethod": "userName", - "name": "userName", + "nameOnMethod": "providerName", + "name": "providerName", "jsonName": null, "type": "System.String", "typeSimple": "string", "isOptional": false, "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "" + }, + { + "nameOnMethod": "providerKey", + "name": "providerKey", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", "descriptorName": "" } ], "returnValue": { - "type": "Volo.Abp.Identity.IdentityUserDto", - "typeSimple": "Volo.Abp.Identity.IdentityUserDto" + "type": "Volo.Abp.PermissionManagement.GetPermissionListResultDto", + "typeSimple": "Volo.Abp.PermissionManagement.GetPermissionListResultDto" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.Identity.IIdentityUserAppService" + "implementFrom": "Volo.Abp.PermissionManagement.IPermissionAppService" }, - "FindByEmailAsyncByEmail": { - "uniqueName": "FindByEmailAsyncByEmail", - "name": "FindByEmailAsync", - "httpMethod": "GET", - "url": "api/identity/users/by-email/{email}", + "UpdateAsyncByProviderNameAndProviderKeyAndInput": { + "uniqueName": "UpdateAsyncByProviderNameAndProviderKeyAndInput", + "name": "UpdateAsync", + "httpMethod": "PUT", + "url": "api/permission-management/permissions", "supportedVersions": [], "parametersOnMethod": [ { - "name": "email", + "name": "providerName", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "providerKey", "typeAsString": "System.String, System.Private.CoreLib", "type": "System.String", "typeSimple": "string", "isOptional": false, "defaultValue": null + }, + { + "name": "input", + "typeAsString": "Volo.Abp.PermissionManagement.UpdatePermissionsDto, Volo.Abp.PermissionManagement.Application.Contracts", + "type": "Volo.Abp.PermissionManagement.UpdatePermissionsDto", + "typeSimple": "Volo.Abp.PermissionManagement.UpdatePermissionsDto", + "isOptional": false, + "defaultValue": null } ], "parameters": [ { - "nameOnMethod": "email", - "name": "email", + "nameOnMethod": "providerName", + "name": "providerName", "jsonName": null, "type": "System.String", "typeSimple": "string", "isOptional": false, "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "" + }, + { + "nameOnMethod": "providerKey", + "name": "providerKey", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "" + }, + { + "nameOnMethod": "input", + "name": "input", + "jsonName": null, + "type": "Volo.Abp.PermissionManagement.UpdatePermissionsDto", + "typeSimple": "Volo.Abp.PermissionManagement.UpdatePermissionsDto", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "Body", "descriptorName": "" } ], "returnValue": { - "type": "Volo.Abp.Identity.IdentityUserDto", - "typeSimple": "Volo.Abp.Identity.IdentityUserDto" + "type": "System.Void", + "typeSimple": "System.Void" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.Identity.IIdentityUserAppService" + "implementFrom": "Volo.Abp.PermissionManagement.IPermissionAppService" } } - }, - "Volo.Abp.Identity.IdentityUserLookupController": { - "controllerName": "IdentityUserLookup", - "controllerGroupName": "UserLookup", + } + } + }, + "settingManagement": { + "rootPath": "settingManagement", + "remoteServiceName": "SettingManagement", + "controllers": { + "Volo.Abp.SettingManagement.EmailSettingsController": { + "controllerName": "EmailSettings", + "controllerGroupName": "EmailSettings", "isRemoteService": true, "isIntegrationService": false, "apiVersion": null, - "type": "Volo.Abp.Identity.IdentityUserLookupController", + "type": "Volo.Abp.SettingManagement.EmailSettingsController", "interfaces": [ { - "type": "Volo.Abp.Identity.IIdentityUserLookupAppService", - "name": "IIdentityUserLookupAppService", + "type": "Volo.Abp.SettingManagement.IEmailSettingsAppService", + "name": "IEmailSettingsAppService", "methods": [ { - "name": "FindByIdAsync", - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "returnValue": { - "type": "Volo.Abp.Users.UserData", - "typeSimple": "Volo.Abp.Users.UserData" - } - }, - { - "name": "FindByUserNameAsync", - "parametersOnMethod": [ - { - "name": "userName", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], + "name": "GetAsync", + "parametersOnMethod": [], "returnValue": { - "type": "Volo.Abp.Users.UserData", - "typeSimple": "Volo.Abp.Users.UserData" + "type": "Volo.Abp.SettingManagement.EmailSettingsDto", + "typeSimple": "Volo.Abp.SettingManagement.EmailSettingsDto" } }, { - "name": "SearchAsync", + "name": "UpdateAsync", "parametersOnMethod": [ { "name": "input", - "typeAsString": "Volo.Abp.Identity.UserLookupSearchInputDto, Volo.Abp.Identity.Application.Contracts", - "type": "Volo.Abp.Identity.UserLookupSearchInputDto", - "typeSimple": "Volo.Abp.Identity.UserLookupSearchInputDto", + "typeAsString": "Volo.Abp.SettingManagement.UpdateEmailSettingsDto, Volo.Abp.SettingManagement.Application.Contracts", + "type": "Volo.Abp.SettingManagement.UpdateEmailSettingsDto", + "typeSimple": "Volo.Abp.SettingManagement.UpdateEmailSettingsDto", "isOptional": false, "defaultValue": null } ], "returnValue": { - "type": "Volo.Abp.Application.Dtos.ListResultDto", - "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto" + "type": "System.Void", + "typeSimple": "System.Void" } }, { - "name": "GetCountAsync", + "name": "SendTestEmailAsync", "parametersOnMethod": [ { "name": "input", - "typeAsString": "Volo.Abp.Identity.UserLookupCountInputDto, Volo.Abp.Identity.Application.Contracts", - "type": "Volo.Abp.Identity.UserLookupCountInputDto", - "typeSimple": "Volo.Abp.Identity.UserLookupCountInputDto", + "typeAsString": "Volo.Abp.SettingManagement.SendTestEmailInput, Volo.Abp.SettingManagement.Application.Contracts", + "type": "Volo.Abp.SettingManagement.SendTestEmailInput", + "typeSimple": "Volo.Abp.SettingManagement.SendTestEmailInput", "isOptional": false, "defaultValue": null } ], "returnValue": { - "type": "System.Int64", - "typeSimple": "number" + "type": "System.Void", + "typeSimple": "System.Void" } } ] } ], "actions": { - "FindByIdAsyncById": { - "uniqueName": "FindByIdAsyncById", - "name": "FindByIdAsync", + "GetAsync": { + "uniqueName": "GetAsync", + "name": "GetAsync", "httpMethod": "GET", - "url": "api/identity/users/lookup/{id}", + "url": "api/setting-management/emailing", "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - } - ], + "parametersOnMethod": [], + "parameters": [], "returnValue": { - "type": "Volo.Abp.Users.UserData", - "typeSimple": "Volo.Abp.Users.UserData" + "type": "Volo.Abp.SettingManagement.EmailSettingsDto", + "typeSimple": "Volo.Abp.SettingManagement.EmailSettingsDto" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.Identity.IIdentityUserLookupAppService" + "implementFrom": "Volo.Abp.SettingManagement.IEmailSettingsAppService" }, - "FindByUserNameAsyncByUserName": { - "uniqueName": "FindByUserNameAsyncByUserName", - "name": "FindByUserNameAsync", - "httpMethod": "GET", - "url": "api/identity/users/lookup/by-username/{userName}", + "UpdateAsyncByInput": { + "uniqueName": "UpdateAsyncByInput", + "name": "UpdateAsync", + "httpMethod": "POST", + "url": "api/setting-management/emailing", "supportedVersions": [], "parametersOnMethod": [ { - "name": "userName", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", + "name": "input", + "typeAsString": "Volo.Abp.SettingManagement.UpdateEmailSettingsDto, Volo.Abp.SettingManagement.Application.Contracts", + "type": "Volo.Abp.SettingManagement.UpdateEmailSettingsDto", + "typeSimple": "Volo.Abp.SettingManagement.UpdateEmailSettingsDto", "isOptional": false, "defaultValue": null } ], "parameters": [ { - "nameOnMethod": "userName", - "name": "userName", + "nameOnMethod": "input", + "name": "input", "jsonName": null, - "type": "System.String", - "typeSimple": "string", + "type": "Volo.Abp.SettingManagement.UpdateEmailSettingsDto", + "typeSimple": "Volo.Abp.SettingManagement.UpdateEmailSettingsDto", "isOptional": false, "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", + "constraintTypes": null, + "bindingSourceId": "Body", "descriptorName": "" } ], "returnValue": { - "type": "Volo.Abp.Users.UserData", - "typeSimple": "Volo.Abp.Users.UserData" + "type": "System.Void", + "typeSimple": "System.Void" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.Identity.IIdentityUserLookupAppService" + "implementFrom": "Volo.Abp.SettingManagement.IEmailSettingsAppService" }, - "SearchAsyncByInput": { - "uniqueName": "SearchAsyncByInput", - "name": "SearchAsync", - "httpMethod": "GET", - "url": "api/identity/users/lookup/search", + "SendTestEmailAsyncByInput": { + "uniqueName": "SendTestEmailAsyncByInput", + "name": "SendTestEmailAsync", + "httpMethod": "POST", + "url": "api/setting-management/emailing/send-test-email", "supportedVersions": [], "parametersOnMethod": [ { "name": "input", - "typeAsString": "Volo.Abp.Identity.UserLookupSearchInputDto, Volo.Abp.Identity.Application.Contracts", - "type": "Volo.Abp.Identity.UserLookupSearchInputDto", - "typeSimple": "Volo.Abp.Identity.UserLookupSearchInputDto", + "typeAsString": "Volo.Abp.SettingManagement.SendTestEmailInput, Volo.Abp.SettingManagement.Application.Contracts", + "type": "Volo.Abp.SettingManagement.SendTestEmailInput", + "typeSimple": "Volo.Abp.SettingManagement.SendTestEmailInput", "isOptional": false, "defaultValue": null } @@ -3220,80 +3334,125 @@ "parameters": [ { "nameOnMethod": "input", - "name": "Filter", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "Sorting", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "SkipCount", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "MaxResultCount", + "name": "input", "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", + "type": "Volo.Abp.SettingManagement.SendTestEmailInput", + "typeSimple": "Volo.Abp.SettingManagement.SendTestEmailInput", "isOptional": false, "defaultValue": null, "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" + "bindingSourceId": "Body", + "descriptorName": "" } ], "returnValue": { - "type": "Volo.Abp.Application.Dtos.ListResultDto", - "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto" + "type": "System.Void", + "typeSimple": "System.Void" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.Identity.IIdentityUserLookupAppService" + "implementFrom": "Volo.Abp.SettingManagement.IEmailSettingsAppService" + } + } + }, + "Volo.Abp.SettingManagement.TimeZoneSettingsController": { + "controllerName": "TimeZoneSettings", + "controllerGroupName": "TimeZoneSettings", + "isRemoteService": true, + "isIntegrationService": false, + "apiVersion": null, + "type": "Volo.Abp.SettingManagement.TimeZoneSettingsController", + "interfaces": [ + { + "type": "Volo.Abp.SettingManagement.ITimeZoneSettingsAppService", + "name": "ITimeZoneSettingsAppService", + "methods": [ + { + "name": "GetAsync", + "parametersOnMethod": [], + "returnValue": { + "type": "System.String", + "typeSimple": "string" + } + }, + { + "name": "GetTimezonesAsync", + "parametersOnMethod": [], + "returnValue": { + "type": "System.Collections.Generic.List", + "typeSimple": "[Volo.Abp.NameValue]" + } + }, + { + "name": "UpdateAsync", + "parametersOnMethod": [ + { + "name": "timezone", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "System.Void", + "typeSimple": "System.Void" + } + } + ] + } + ], + "actions": { + "GetAsync": { + "uniqueName": "GetAsync", + "name": "GetAsync", + "httpMethod": "GET", + "url": "api/setting-management/timezone", + "supportedVersions": [], + "parametersOnMethod": [], + "parameters": [], + "returnValue": { + "type": "System.String", + "typeSimple": "string" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.SettingManagement.ITimeZoneSettingsAppService" }, - "GetCountAsyncByInput": { - "uniqueName": "GetCountAsyncByInput", - "name": "GetCountAsync", + "GetTimezonesAsync": { + "uniqueName": "GetTimezonesAsync", + "name": "GetTimezonesAsync", "httpMethod": "GET", - "url": "api/identity/users/lookup/count", + "url": "api/setting-management/timezone/timezones", + "supportedVersions": [], + "parametersOnMethod": [], + "parameters": [], + "returnValue": { + "type": "System.Collections.Generic.List", + "typeSimple": "[Volo.Abp.NameValue]" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.SettingManagement.ITimeZoneSettingsAppService" + }, + "UpdateAsyncByTimezone": { + "uniqueName": "UpdateAsyncByTimezone", + "name": "UpdateAsync", + "httpMethod": "POST", + "url": "api/setting-management/timezone", "supportedVersions": [], "parametersOnMethod": [ { - "name": "input", - "typeAsString": "Volo.Abp.Identity.UserLookupCountInputDto, Volo.Abp.Identity.Application.Contracts", - "type": "Volo.Abp.Identity.UserLookupCountInputDto", - "typeSimple": "Volo.Abp.Identity.UserLookupCountInputDto", + "name": "timezone", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", "isOptional": false, "defaultValue": null } ], "parameters": [ { - "nameOnMethod": "input", - "name": "Filter", + "nameOnMethod": "timezone", + "name": "timezone", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -3301,15 +3460,15 @@ "defaultValue": null, "constraintTypes": null, "bindingSourceId": "ModelBinding", - "descriptorName": "input" + "descriptorName": "" } ], "returnValue": { - "type": "System.Int64", - "typeSimple": "number" + "type": "System.Void", + "typeSimple": "System.Void" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.Identity.IIdentityUserLookupAppService" + "implementFrom": "Volo.Abp.SettingManagement.ITimeZoneSettingsAppService" } } } @@ -3317,39 +3476,27 @@ } }, "types": { - "Volo.Abp.Account.RegisterDto": { - "baseType": "Volo.Abp.ObjectExtending.ExtensibleObject", + "Volo.Abp.Account.ChangePasswordInput": { + "baseType": null, "isEnum": false, "enumNames": null, "enumValues": null, "genericArguments": null, "properties": [ { - "name": "UserName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true, - "minLength": 0, - "maxLength": 256, - "minimum": null, - "maximum": null, - "regex": null - }, - { - "name": "EmailAddress", + "name": "CurrentPassword", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": true, + "isRequired": false, "minLength": 0, - "maxLength": 256, + "maxLength": 128, "minimum": null, "maximum": null, "regex": null }, { - "name": "Password", + "name": "NewPassword", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -3359,61 +3506,16 @@ "minimum": null, "maximum": null, "regex": null - }, - { - "name": "AppName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true, - "minLength": null, - "maxLength": null, - "minimum": null, - "maximum": null, - "regex": null - } - ] - }, - "Volo.Abp.ObjectExtending.ExtensibleObject": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "ExtraProperties", - "jsonName": null, - "type": "{System.String:System.Object}", - "typeSimple": "{string:object}", - "isRequired": false, - "minLength": null, - "maxLength": null, - "minimum": null, - "maximum": null, - "regex": null } ] }, - "Volo.Abp.Identity.IdentityUserDto": { - "baseType": "Volo.Abp.Application.Dtos.ExtensibleFullAuditedEntityDto", + "Volo.Abp.Account.ProfileDto": { + "baseType": "Volo.Abp.ObjectExtending.ExtensibleObject", "isEnum": false, "enumNames": null, "enumValues": null, "genericArguments": null, "properties": [ - { - "name": "TenantId", - "jsonName": null, - "type": "System.Guid?", - "typeSimple": "string?", - "isRequired": false, - "minLength": null, - "maxLength": null, - "minimum": null, - "maximum": null, - "regex": null - }, { "name": "UserName", "jsonName": null, @@ -3427,7 +3529,7 @@ "regex": null }, { - "name": "Name", + "name": "Email", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -3439,7 +3541,7 @@ "regex": null }, { - "name": "Surname", + "name": "Name", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -3451,7 +3553,7 @@ "regex": null }, { - "name": "Email", + "name": "Surname", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -3462,18 +3564,6 @@ "maximum": null, "regex": null }, - { - "name": "EmailConfirmed", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false, - "minLength": null, - "maxLength": null, - "minimum": null, - "maximum": null, - "regex": null - }, { "name": "PhoneNumber", "jsonName": null, @@ -3487,19 +3577,7 @@ "regex": null }, { - "name": "PhoneNumberConfirmed", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false, - "minLength": null, - "maxLength": null, - "minimum": null, - "maximum": null, - "regex": null - }, - { - "name": "IsActive", + "name": "IsExternal", "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", @@ -3511,7 +3589,7 @@ "regex": null }, { - "name": "LockoutEnabled", + "name": "HasPassword", "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", @@ -3522,18 +3600,6 @@ "maximum": null, "regex": null }, - { - "name": "LockoutEnd", - "jsonName": null, - "type": "System.DateTimeOffset?", - "typeSimple": "string?", - "isRequired": false, - "minLength": null, - "maxLength": null, - "minimum": null, - "maximum": null, - "regex": null - }, { "name": "ConcurrencyStamp", "jsonName": null, @@ -3548,80 +3614,55 @@ } ] }, - "Volo.Abp.Application.Dtos.ExtensibleFullAuditedEntityDto": { - "baseType": "Volo.Abp.Application.Dtos.ExtensibleAuditedEntityDto", + "Volo.Abp.Account.RegisterDto": { + "baseType": "Volo.Abp.ObjectExtending.ExtensibleObject", "isEnum": false, "enumNames": null, "enumValues": null, - "genericArguments": [ - "TPrimaryKey" - ], + "genericArguments": null, "properties": [ { - "name": "IsDeleted", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false, - "minLength": null, - "maxLength": null, - "minimum": null, - "maximum": null, - "regex": null - }, - { - "name": "DeleterId", + "name": "UserName", "jsonName": null, - "type": "System.Guid?", - "typeSimple": "string?", - "isRequired": false, - "minLength": null, - "maxLength": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": true, + "minLength": 0, + "maxLength": 256, "minimum": null, "maximum": null, "regex": null }, { - "name": "DeletionTime", - "jsonName": null, - "type": "System.DateTime?", - "typeSimple": "string?", - "isRequired": false, - "minLength": null, - "maxLength": null, + "name": "EmailAddress", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": true, + "minLength": 0, + "maxLength": 256, "minimum": null, "maximum": null, "regex": null - } - ] - }, - "Volo.Abp.Application.Dtos.ExtensibleAuditedEntityDto": { - "baseType": "Volo.Abp.Application.Dtos.ExtensibleCreationAuditedEntityDto", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": [ - "TPrimaryKey" - ], - "properties": [ + }, { - "name": "LastModificationTime", + "name": "Password", "jsonName": null, - "type": "System.DateTime?", - "typeSimple": "string?", - "isRequired": false, - "minLength": null, - "maxLength": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": true, + "minLength": 0, + "maxLength": 128, "minimum": null, "maximum": null, "regex": null }, { - "name": "LastModifierId", + "name": "AppName", "jsonName": null, - "type": "System.Guid?", - "typeSimple": "string?", - "isRequired": false, + "type": "System.String", + "typeSimple": "string", + "isRequired": true, "minLength": null, "maxLength": null, "minimum": null, @@ -3630,19 +3671,17 @@ } ] }, - "Volo.Abp.Application.Dtos.ExtensibleCreationAuditedEntityDto": { - "baseType": "Volo.Abp.Application.Dtos.ExtensibleEntityDto", + "Volo.Abp.Account.ResetPasswordDto": { + "baseType": null, "isEnum": false, "enumNames": null, "enumValues": null, - "genericArguments": [ - "TPrimaryKey" - ], + "genericArguments": null, "properties": [ { - "name": "CreationTime", + "name": "UserId", "jsonName": null, - "type": "System.DateTime", + "type": "System.Guid", "typeSimple": "string", "isRequired": false, "minLength": null, @@ -3652,34 +3691,23 @@ "regex": null }, { - "name": "CreatorId", + "name": "ResetToken", "jsonName": null, - "type": "System.Guid?", - "typeSimple": "string?", - "isRequired": false, + "type": "System.String", + "typeSimple": "string", + "isRequired": true, "minLength": null, "maxLength": null, "minimum": null, "maximum": null, "regex": null - } - ] - }, - "Volo.Abp.Application.Dtos.ExtensibleEntityDto": { - "baseType": "Volo.Abp.ObjectExtending.ExtensibleObject", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": [ - "TKey" - ], - "properties": [ + }, { - "name": "Id", + "name": "Password", "jsonName": null, - "type": "TKey", - "typeSimple": "TKey", - "isRequired": false, + "type": "System.String", + "typeSimple": "string", + "isRequired": true, "minLength": null, "maxLength": null, "minimum": null, @@ -3745,76 +3773,79 @@ } ] }, - "Volo.Abp.Account.VerifyPasswordResetTokenInput": { - "baseType": null, + "Volo.Abp.Account.UpdateProfileDto": { + "baseType": "Volo.Abp.ObjectExtending.ExtensibleObject", "isEnum": false, "enumNames": null, "enumValues": null, "genericArguments": null, "properties": [ { - "name": "UserId", + "name": "UserName", "jsonName": null, - "type": "System.Guid", + "type": "System.String", "typeSimple": "string", "isRequired": false, - "minLength": null, - "maxLength": null, + "minLength": 0, + "maxLength": 256, "minimum": null, "maximum": null, "regex": null }, { - "name": "ResetToken", + "name": "Email", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": true, - "minLength": null, - "maxLength": null, + "isRequired": false, + "minLength": 0, + "maxLength": 256, "minimum": null, "maximum": null, "regex": null - } - ] - }, - "Volo.Abp.Account.ResetPasswordDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ + }, { - "name": "UserId", + "name": "Name", "jsonName": null, - "type": "System.Guid", + "type": "System.String", "typeSimple": "string", "isRequired": false, - "minLength": null, - "maxLength": null, + "minLength": 0, + "maxLength": 64, "minimum": null, "maximum": null, "regex": null }, { - "name": "ResetToken", + "name": "Surname", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": true, - "minLength": null, - "maxLength": null, + "isRequired": false, + "minLength": 0, + "maxLength": 64, "minimum": null, "maximum": null, "regex": null }, { - "name": "Password", + "name": "PhoneNumber", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": true, + "isRequired": false, + "minLength": 0, + "maxLength": 16, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "ConcurrencyStamp", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, "minLength": null, "maxLength": null, "minimum": null, @@ -3823,7 +3854,7 @@ } ] }, - "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo": { + "Volo.Abp.Account.VerifyPasswordResetTokenInput": { "baseType": null, "isEnum": false, "enumNames": null, @@ -3831,35 +3862,23 @@ "genericArguments": null, "properties": [ { - "name": "UserNameOrEmailAddress", + "name": "UserId", "jsonName": null, - "type": "System.String", + "type": "System.Guid", "typeSimple": "string", - "isRequired": true, - "minLength": 0, - "maxLength": 255, + "isRequired": false, + "minLength": null, + "maxLength": null, "minimum": null, "maximum": null, "regex": null }, { - "name": "Password", + "name": "ResetToken", "jsonName": null, "type": "System.String", "typeSimple": "string", "isRequired": true, - "minLength": 0, - "maxLength": 32, - "minimum": null, - "maximum": null, - "regex": null - }, - { - "name": "RememberMe", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false, "minLength": null, "maxLength": null, "minimum": null, @@ -3921,42 +3940,65 @@ "genericArguments": null, "properties": null }, - "Volo.Abp.Account.ProfileDto": { - "baseType": "Volo.Abp.ObjectExtending.ExtensibleObject", + "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo": { + "baseType": null, "isEnum": false, "enumNames": null, "enumValues": null, "genericArguments": null, "properties": [ { - "name": "UserName", + "name": "UserNameOrEmailAddress", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false, - "minLength": null, - "maxLength": null, + "isRequired": true, + "minLength": 0, + "maxLength": 255, "minimum": null, "maximum": null, "regex": null }, { - "name": "Email", + "name": "Password", "jsonName": null, "type": "System.String", "typeSimple": "string", + "isRequired": true, + "minLength": 0, + "maxLength": 32, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "RememberMe", + "jsonName": null, + "type": "System.Boolean", + "typeSimple": "boolean", "isRequired": false, "minLength": null, "maxLength": null, "minimum": null, "maximum": null, "regex": null - }, + } + ] + }, + "Volo.Abp.Application.Dtos.ExtensibleAuditedEntityDto": { + "baseType": "Volo.Abp.Application.Dtos.ExtensibleCreationAuditedEntityDto", + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": [ + "TPrimaryKey" + ], + "properties": [ { - "name": "Name", + "name": "LastModificationTime", "jsonName": null, - "type": "System.String", - "typeSimple": "string", + "type": "System.DateTime?", + "typeSimple": "string?", "isRequired": false, "minLength": null, "maxLength": null, @@ -3965,9 +4007,32 @@ "regex": null }, { - "name": "Surname", + "name": "LastModifierId", "jsonName": null, - "type": "System.String", + "type": "System.Guid?", + "typeSimple": "string?", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + } + ] + }, + "Volo.Abp.Application.Dtos.ExtensibleCreationAuditedEntityDto": { + "baseType": "Volo.Abp.Application.Dtos.ExtensibleEntityDto", + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": [ + "TPrimaryKey" + ], + "properties": [ + { + "name": "CreationTime", + "jsonName": null, + "type": "System.DateTime", "typeSimple": "string", "isRequired": false, "minLength": null, @@ -3977,19 +4042,53 @@ "regex": null }, { - "name": "PhoneNumber", + "name": "CreatorId", + "jsonName": null, + "type": "System.Guid?", + "typeSimple": "string?", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + } + ] + }, + "Volo.Abp.Application.Dtos.ExtensibleEntityDto": { + "baseType": "Volo.Abp.ObjectExtending.ExtensibleObject", + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": [ + "TKey" + ], + "properties": [ + { + "name": "Id", "jsonName": null, - "type": "System.String", - "typeSimple": "string", + "type": "TKey", + "typeSimple": "TKey", "isRequired": false, "minLength": null, "maxLength": null, "minimum": null, "maximum": null, "regex": null - }, + } + ] + }, + "Volo.Abp.Application.Dtos.ExtensibleFullAuditedEntityDto": { + "baseType": "Volo.Abp.Application.Dtos.ExtensibleAuditedEntityDto", + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": [ + "TPrimaryKey" + ], + "properties": [ { - "name": "IsExternal", + "name": "IsDeleted", "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", @@ -4001,10 +4100,10 @@ "regex": null }, { - "name": "HasPassword", + "name": "DeleterId", "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", + "type": "System.Guid?", + "typeSimple": "string?", "isRequired": false, "minLength": null, "maxLength": null, @@ -4013,10 +4112,10 @@ "regex": null }, { - "name": "ConcurrencyStamp", + "name": "DeletionTime", "jsonName": null, - "type": "System.String", - "typeSimple": "string", + "type": "System.DateTime?", + "typeSimple": "string?", "isRequired": false, "minLength": null, "maxLength": null, @@ -4026,78 +4125,109 @@ } ] }, - "Volo.Abp.Account.UpdateProfileDto": { - "baseType": "Volo.Abp.ObjectExtending.ExtensibleObject", + "Volo.Abp.Application.Dtos.LimitedResultRequestDto": { + "baseType": null, "isEnum": false, "enumNames": null, "enumValues": null, "genericArguments": null, "properties": [ { - "name": "UserName", + "name": "DefaultMaxResultCount", "jsonName": null, - "type": "System.String", - "typeSimple": "string", + "type": "System.Int32", + "typeSimple": "number", "isRequired": false, - "minLength": 0, - "maxLength": 256, + "minLength": null, + "maxLength": null, "minimum": null, "maximum": null, "regex": null }, { - "name": "Email", + "name": "MaxMaxResultCount", "jsonName": null, - "type": "System.String", - "typeSimple": "string", + "type": "System.Int32", + "typeSimple": "number", "isRequired": false, - "minLength": 0, - "maxLength": 256, + "minLength": null, + "maxLength": null, "minimum": null, "maximum": null, "regex": null }, { - "name": "Name", + "name": "MaxResultCount", "jsonName": null, - "type": "System.String", - "typeSimple": "string", + "type": "System.Int32", + "typeSimple": "number", "isRequired": false, - "minLength": 0, - "maxLength": 64, - "minimum": null, - "maximum": null, + "minLength": null, + "maxLength": null, + "minimum": "1", + "maximum": "2147483647", "regex": null - }, + } + ] + }, + "Volo.Abp.Application.Dtos.ListResultDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": [ + "T" + ], + "properties": [ { - "name": "Surname", + "name": "Items", "jsonName": null, - "type": "System.String", - "typeSimple": "string", + "type": "[T]", + "typeSimple": "[T]", "isRequired": false, - "minLength": 0, - "maxLength": 64, + "minLength": null, + "maxLength": null, "minimum": null, "maximum": null, "regex": null - }, + } + ] + }, + "Volo.Abp.Application.Dtos.PagedAndSortedResultRequestDto": { + "baseType": "Volo.Abp.Application.Dtos.PagedResultRequestDto", + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ { - "name": "PhoneNumber", + "name": "Sorting", "jsonName": null, "type": "System.String", "typeSimple": "string", "isRequired": false, - "minLength": 0, - "maxLength": 16, + "minLength": null, + "maxLength": null, "minimum": null, "maximum": null, "regex": null - }, + } + ] + }, + "Volo.Abp.Application.Dtos.PagedResultDto": { + "baseType": "Volo.Abp.Application.Dtos.ListResultDto", + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": [ + "T" + ], + "properties": [ { - "name": "ConcurrencyStamp", + "name": "TotalCount", "jsonName": null, - "type": "System.String", - "typeSimple": "string", + "type": "System.Int64", + "typeSimple": "number", "isRequired": false, "minLength": null, "maxLength": null, @@ -4107,40 +4237,49 @@ } ] }, - "Volo.Abp.Account.ChangePasswordInput": { - "baseType": null, + "Volo.Abp.Application.Dtos.PagedResultRequestDto": { + "baseType": "Volo.Abp.Application.Dtos.LimitedResultRequestDto", "isEnum": false, "enumNames": null, "enumValues": null, "genericArguments": null, "properties": [ { - "name": "CurrentPassword", + "name": "SkipCount", "jsonName": null, - "type": "System.String", - "typeSimple": "string", + "type": "System.Int32", + "typeSimple": "number", "isRequired": false, - "minLength": 0, - "maxLength": 128, - "minimum": null, - "maximum": null, + "minLength": null, + "maxLength": null, + "minimum": "0", + "maximum": "2147483647", "regex": null - }, + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationAuthConfigurationDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ { - "name": "NewPassword", + "name": "GrantedPolicies", "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true, - "minLength": 0, - "maxLength": 128, + "type": "{System.String:System.Boolean}", + "typeSimple": "{string:boolean}", + "isRequired": false, + "minLength": null, + "maxLength": null, "minimum": null, "maximum": null, "regex": null } ] }, - "Volo.Abp.AspNetCore.Mvc.MultiTenancy.FindTenantResultDto": { + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationDto": { "baseType": null, "isEnum": false, "enumNames": null, @@ -4148,10 +4287,10 @@ "genericArguments": null, "properties": [ { - "name": "Success", + "name": "Localization", "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationConfigurationDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationConfigurationDto", "isRequired": false, "minLength": null, "maxLength": null, @@ -4160,10 +4299,10 @@ "regex": null }, { - "name": "TenantId", + "name": "Auth", "jsonName": null, - "type": "System.Guid?", - "typeSimple": "string?", + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationAuthConfigurationDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationAuthConfigurationDto", "isRequired": false, "minLength": null, "maxLength": null, @@ -4172,10 +4311,10 @@ "regex": null }, { - "name": "Name", + "name": "Setting", "jsonName": null, - "type": "System.String", - "typeSimple": "string", + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationSettingConfigurationDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationSettingConfigurationDto", "isRequired": false, "minLength": null, "maxLength": null, @@ -4184,54 +4323,58 @@ "regex": null }, { - "name": "IsActive", + "name": "CurrentUser", "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.CurrentUserDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.CurrentUserDto", "isRequired": false, "minLength": null, "maxLength": null, "minimum": null, "maximum": null, "regex": null - } - ] - }, - "Volo.Abp.Application.Dtos.ListResultDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": [ - "T" - ], - "properties": [ + }, { - "name": "Items", + "name": "Features", "jsonName": null, - "type": "[T]", - "typeSimple": "[T]", + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationFeatureConfigurationDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationFeatureConfigurationDto", "isRequired": false, "minLength": null, "maxLength": null, "minimum": null, "maximum": null, "regex": null - } - ] - }, - "Volo.Abp.Identity.IdentityRoleDto": { - "baseType": "Volo.Abp.Application.Dtos.ExtensibleEntityDto", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ + }, + { + "name": "GlobalFeatures", + "jsonName": null, + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationGlobalFeatureConfigurationDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationGlobalFeatureConfigurationDto", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "MultiTenancy", + "jsonName": null, + "type": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.MultiTenancyInfoDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.MultiTenancyInfoDto", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, { - "name": "Name", + "name": "CurrentTenant", "jsonName": null, - "type": "System.String", - "typeSimple": "string", + "type": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.CurrentTenantDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.CurrentTenantDto", "isRequired": false, "minLength": null, "maxLength": null, @@ -4240,10 +4383,10 @@ "regex": null }, { - "name": "IsDefault", + "name": "Timing", "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.TimingDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.TimingDto", "isRequired": false, "minLength": null, "maxLength": null, @@ -4252,10 +4395,10 @@ "regex": null }, { - "name": "IsStatic", + "name": "Clock", "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ClockDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ClockDto", "isRequired": false, "minLength": null, "maxLength": null, @@ -4264,10 +4407,10 @@ "regex": null }, { - "name": "IsPublic", + "name": "ObjectExtensions", "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ObjectExtensionsDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ObjectExtensionsDto", "isRequired": false, "minLength": null, "maxLength": null, @@ -4276,10 +4419,10 @@ "regex": null }, { - "name": "ConcurrencyStamp", + "name": "ExtraProperties", "jsonName": null, - "type": "System.String", - "typeSimple": "string", + "type": "{System.String:System.Object}", + "typeSimple": "{string:object}", "isRequired": false, "minLength": null, "maxLength": null, @@ -4289,18 +4432,18 @@ } ] }, - "Volo.Abp.Identity.GetIdentityRolesInput": { - "baseType": "Volo.Abp.Application.Dtos.PagedAndSortedResultRequestDto", + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationRequestOptions": { + "baseType": null, "isEnum": false, "enumNames": null, "enumValues": null, "genericArguments": null, "properties": [ { - "name": "Filter", + "name": "IncludeLocalizationResources", "jsonName": null, - "type": "System.String", - "typeSimple": "string", + "type": "System.Boolean", + "typeSimple": "boolean", "isRequired": false, "minLength": null, "maxLength": null, @@ -4310,18 +4453,18 @@ } ] }, - "Volo.Abp.Application.Dtos.PagedAndSortedResultRequestDto": { - "baseType": "Volo.Abp.Application.Dtos.PagedResultRequestDto", + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationFeatureConfigurationDto": { + "baseType": null, "isEnum": false, "enumNames": null, "enumValues": null, "genericArguments": null, "properties": [ { - "name": "Sorting", + "name": "Values", "jsonName": null, - "type": "System.String", - "typeSimple": "string", + "type": "{System.String:System.String}", + "typeSimple": "{string:string}", "isRequired": false, "minLength": null, "maxLength": null, @@ -4331,28 +4474,28 @@ } ] }, - "Volo.Abp.Application.Dtos.PagedResultRequestDto": { - "baseType": "Volo.Abp.Application.Dtos.LimitedResultRequestDto", + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationGlobalFeatureConfigurationDto": { + "baseType": null, "isEnum": false, "enumNames": null, "enumValues": null, "genericArguments": null, "properties": [ { - "name": "SkipCount", + "name": "EnabledFeatures", "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", + "type": "[System.String]", + "typeSimple": "[string]", "isRequired": false, "minLength": null, "maxLength": null, - "minimum": "0", - "maximum": "2147483647", + "minimum": null, + "maximum": null, "regex": null } ] }, - "Volo.Abp.Application.Dtos.LimitedResultRequestDto": { + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationConfigurationDto": { "baseType": null, "isEnum": false, "enumNames": null, @@ -4360,10 +4503,10 @@ "genericArguments": null, "properties": [ { - "name": "DefaultMaxResultCount", + "name": "Values", "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", + "type": "{System.String:System.Collections.Generic.Dictionary}", + "typeSimple": "{string:System.Collections.Generic.Dictionary}", "isRequired": false, "minLength": null, "maxLength": null, @@ -4372,10 +4515,10 @@ "regex": null }, { - "name": "MaxMaxResultCount", + "name": "Resources", "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", + "type": "{System.String:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationResourceDto}", + "typeSimple": "{string:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationResourceDto}", "isRequired": false, "minLength": null, "maxLength": null, @@ -4384,33 +4527,91 @@ "regex": null }, { - "name": "MaxResultCount", + "name": "Languages", "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", + "type": "[Volo.Abp.Localization.LanguageInfo]", + "typeSimple": "[Volo.Abp.Localization.LanguageInfo]", "isRequired": false, "minLength": null, "maxLength": null, - "minimum": "1", - "maximum": "2147483647", + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "CurrentCulture", + "jsonName": null, + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.CurrentCultureDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.CurrentCultureDto", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "DefaultResourceName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "LanguagesMap", + "jsonName": null, + "type": "{System.String:[Volo.Abp.NameValue]}", + "typeSimple": "{string:[Volo.Abp.NameValue]}", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "LanguageFilesMap", + "jsonName": null, + "type": "{System.String:[Volo.Abp.NameValue]}", + "typeSimple": "{string:[Volo.Abp.NameValue]}", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, "regex": null } ] }, - "Volo.Abp.Application.Dtos.PagedResultDto": { - "baseType": "Volo.Abp.Application.Dtos.ListResultDto", + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationDto": { + "baseType": null, "isEnum": false, "enumNames": null, "enumValues": null, - "genericArguments": [ - "T" - ], + "genericArguments": null, "properties": [ { - "name": "TotalCount", + "name": "Resources", "jsonName": null, - "type": "System.Int64", - "typeSimple": "number", + "type": "{System.String:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationResourceDto}", + "typeSimple": "{string:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationResourceDto}", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "CurrentCulture", + "jsonName": null, + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.CurrentCultureDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.CurrentCultureDto", "isRequired": false, "minLength": null, "maxLength": null, @@ -4420,39 +4621,19 @@ } ] }, - "Volo.Abp.Identity.IdentityRoleCreateDto": { - "baseType": "Volo.Abp.Identity.IdentityRoleCreateOrUpdateDtoBase", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [] - }, - "Volo.Abp.Identity.IdentityRoleCreateOrUpdateDtoBase": { - "baseType": "Volo.Abp.ObjectExtending.ExtensibleObject", + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationRequestDto": { + "baseType": null, "isEnum": false, "enumNames": null, "enumValues": null, "genericArguments": null, "properties": [ { - "name": "Name", + "name": "CultureName", "jsonName": null, "type": "System.String", "typeSimple": "string", "isRequired": true, - "minLength": 0, - "maxLength": 256, - "minimum": null, - "maximum": null, - "regex": null - }, - { - "name": "IsDefault", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false, "minLength": null, "maxLength": null, "minimum": null, @@ -4460,7 +4641,7 @@ "regex": null }, { - "name": "IsPublic", + "name": "OnlyDynamics", "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", @@ -4473,18 +4654,30 @@ } ] }, - "Volo.Abp.Identity.IdentityRoleUpdateDto": { - "baseType": "Volo.Abp.Identity.IdentityRoleCreateOrUpdateDtoBase", + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationResourceDto": { + "baseType": null, "isEnum": false, "enumNames": null, "enumValues": null, "genericArguments": null, "properties": [ { - "name": "ConcurrencyStamp", + "name": "Texts", "jsonName": null, - "type": "System.String", - "typeSimple": "string", + "type": "{System.String:System.String}", + "typeSimple": "{string:string}", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "BaseResources", + "jsonName": null, + "type": "[System.String]", + "typeSimple": "[string]", "isRequired": false, "minLength": null, "maxLength": null, @@ -4494,18 +4687,18 @@ } ] }, - "Volo.Abp.Identity.GetIdentityUsersInput": { - "baseType": "Volo.Abp.Application.Dtos.PagedAndSortedResultRequestDto", + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationSettingConfigurationDto": { + "baseType": null, "isEnum": false, "enumNames": null, "enumValues": null, "genericArguments": null, "properties": [ { - "name": "Filter", + "name": "Values", "jsonName": null, - "type": "System.String", - "typeSimple": "string", + "type": "{System.String:System.String}", + "typeSimple": "{string:string}", "isRequired": false, "minLength": null, "maxLength": null, @@ -4515,96 +4708,84 @@ } ] }, - "Volo.Abp.Identity.IdentityUserCreateDto": { - "baseType": "Volo.Abp.Identity.IdentityUserCreateOrUpdateDtoBase", + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ClockDto": { + "baseType": null, "isEnum": false, "enumNames": null, "enumValues": null, "genericArguments": null, "properties": [ { - "name": "Password", + "name": "Kind", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": true, - "minLength": 0, - "maxLength": 128, + "isRequired": false, + "minLength": null, + "maxLength": null, "minimum": null, "maximum": null, "regex": null } ] }, - "Volo.Abp.Identity.IdentityUserCreateOrUpdateDtoBase": { - "baseType": "Volo.Abp.ObjectExtending.ExtensibleObject", + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.CurrentCultureDto": { + "baseType": null, "isEnum": false, "enumNames": null, "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "UserName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true, - "minLength": 0, - "maxLength": 256, - "minimum": null, - "maximum": null, - "regex": null - }, + "genericArguments": null, + "properties": [ { - "name": "Name", + "name": "DisplayName", "jsonName": null, "type": "System.String", "typeSimple": "string", "isRequired": false, - "minLength": 0, - "maxLength": 64, + "minLength": null, + "maxLength": null, "minimum": null, "maximum": null, "regex": null }, { - "name": "Surname", + "name": "EnglishName", "jsonName": null, "type": "System.String", "typeSimple": "string", "isRequired": false, - "minLength": 0, - "maxLength": 64, + "minLength": null, + "maxLength": null, "minimum": null, "maximum": null, "regex": null }, { - "name": "Email", + "name": "ThreeLetterIsoLanguageName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": true, - "minLength": 0, - "maxLength": 256, + "isRequired": false, + "minLength": null, + "maxLength": null, "minimum": null, "maximum": null, "regex": null }, { - "name": "PhoneNumber", + "name": "TwoLetterIsoLanguageName", "jsonName": null, "type": "System.String", "typeSimple": "string", "isRequired": false, - "minLength": 0, - "maxLength": 16, + "minLength": null, + "maxLength": null, "minimum": null, "maximum": null, "regex": null }, { - "name": "IsActive", + "name": "IsRightToLeft", "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", @@ -4616,10 +4797,10 @@ "regex": null }, { - "name": "LockoutEnabled", + "name": "CultureName", "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", + "type": "System.String", + "typeSimple": "string", "isRequired": false, "minLength": null, "maxLength": null, @@ -4628,43 +4809,34 @@ "regex": null }, { - "name": "RoleNames", + "name": "Name", "jsonName": null, - "type": "[System.String]", - "typeSimple": "[string]", + "type": "System.String", + "typeSimple": "string", "isRequired": false, "minLength": null, "maxLength": null, "minimum": null, "maximum": null, "regex": null - } - ] - }, - "Volo.Abp.Identity.IdentityUserUpdateDto": { - "baseType": "Volo.Abp.Identity.IdentityUserCreateOrUpdateDtoBase", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ + }, { - "name": "Password", + "name": "NativeName", "jsonName": null, "type": "System.String", "typeSimple": "string", "isRequired": false, - "minLength": 0, - "maxLength": 128, + "minLength": null, + "maxLength": null, "minimum": null, "maximum": null, "regex": null }, { - "name": "ConcurrencyStamp", + "name": "DateTimeFormat", "jsonName": null, - "type": "System.String", - "typeSimple": "string", + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.DateTimeFormatDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.DateTimeFormatDto", "isRequired": false, "minLength": null, "maxLength": null, @@ -4674,7 +4846,7 @@ } ] }, - "Volo.Abp.Identity.IdentityUserUpdateRolesDto": { + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.CurrentUserDto": { "baseType": null, "isEnum": false, "enumNames": null, @@ -4682,31 +4854,22 @@ "genericArguments": null, "properties": [ { - "name": "RoleNames", + "name": "IsAuthenticated", "jsonName": null, - "type": "[System.String]", - "typeSimple": "[string]", - "isRequired": true, + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false, "minLength": null, "maxLength": null, "minimum": null, "maximum": null, "regex": null - } - ] - }, - "Volo.Abp.Users.UserData": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ + }, { "name": "Id", "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", + "type": "System.Guid?", + "typeSimple": "string?", "isRequired": false, "minLength": null, "maxLength": null, @@ -4727,10 +4890,10 @@ "regex": null }, { - "name": "UserName", + "name": "ImpersonatorUserId", "jsonName": null, - "type": "System.String", - "typeSimple": "string", + "type": "System.Guid?", + "typeSimple": "string?", "isRequired": false, "minLength": null, "maxLength": null, @@ -4739,10 +4902,10 @@ "regex": null }, { - "name": "Name", + "name": "ImpersonatorTenantId", "jsonName": null, - "type": "System.String", - "typeSimple": "string", + "type": "System.Guid?", + "typeSimple": "string?", "isRequired": false, "minLength": null, "maxLength": null, @@ -4751,7 +4914,7 @@ "regex": null }, { - "name": "Surname", + "name": "ImpersonatorUserName", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -4763,10 +4926,10 @@ "regex": null }, { - "name": "IsActive", + "name": "ImpersonatorTenantName", "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", + "type": "System.String", + "typeSimple": "string", "isRequired": false, "minLength": null, "maxLength": null, @@ -4775,7 +4938,7 @@ "regex": null }, { - "name": "Email", + "name": "UserName", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -4787,10 +4950,10 @@ "regex": null }, { - "name": "EmailConfirmed", + "name": "Name", "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", + "type": "System.String", + "typeSimple": "string", "isRequired": false, "minLength": null, "maxLength": null, @@ -4799,7 +4962,7 @@ "regex": null }, { - "name": "PhoneNumber", + "name": "SurName", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -4811,49 +4974,31 @@ "regex": null }, { - "name": "PhoneNumberConfirmed", + "name": "Email", "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", + "type": "System.String", + "typeSimple": "string", "isRequired": false, "minLength": null, "maxLength": null, "minimum": null, "maximum": null, "regex": null - } - ] - }, - "Volo.Abp.Identity.UserLookupSearchInputDto": { - "baseType": "Volo.Abp.Application.Dtos.PagedAndSortedResultRequestDto", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ + }, { - "name": "Filter", + "name": "EmailVerified", "jsonName": null, - "type": "System.String", - "typeSimple": "string", + "type": "System.Boolean", + "typeSimple": "boolean", "isRequired": false, "minLength": null, "maxLength": null, "minimum": null, "maximum": null, "regex": null - } - ] - }, - "Volo.Abp.Identity.UserLookupCountInputDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ + }, { - "name": "Filter", + "name": "PhoneNumber", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -4863,21 +5008,12 @@ "minimum": null, "maximum": null, "regex": null - } - ] - }, - "Volo.Abp.PermissionManagement.GetPermissionListResultDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ + }, { - "name": "EntityDisplayName", + "name": "PhoneNumberVerified", "jsonName": null, - "type": "System.String", - "typeSimple": "string", + "type": "System.Boolean", + "typeSimple": "boolean", "isRequired": false, "minLength": null, "maxLength": null, @@ -4886,10 +5022,10 @@ "regex": null }, { - "name": "Groups", + "name": "Roles", "jsonName": null, - "type": "[Volo.Abp.PermissionManagement.PermissionGroupDto]", - "typeSimple": "[Volo.Abp.PermissionManagement.PermissionGroupDto]", + "type": "[System.String]", + "typeSimple": "[string]", "isRequired": false, "minLength": null, "maxLength": null, @@ -4899,7 +5035,7 @@ } ] }, - "Volo.Abp.PermissionManagement.PermissionGroupDto": { + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.DateTimeFormatDto": { "baseType": null, "isEnum": false, "enumNames": null, @@ -4907,7 +5043,7 @@ "genericArguments": null, "properties": [ { - "name": "Name", + "name": "CalendarAlgorithmType", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -4919,7 +5055,7 @@ "regex": null }, { - "name": "DisplayName", + "name": "DateTimeFormatLong", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -4931,7 +5067,7 @@ "regex": null }, { - "name": "DisplayNameKey", + "name": "ShortDatePattern", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -4943,7 +5079,7 @@ "regex": null }, { - "name": "DisplayNameResource", + "name": "FullDateTimePattern", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -4955,28 +5091,7 @@ "regex": null }, { - "name": "Permissions", - "jsonName": null, - "type": "[Volo.Abp.PermissionManagement.PermissionGrantInfoDto]", - "typeSimple": "[Volo.Abp.PermissionManagement.PermissionGrantInfoDto]", - "isRequired": false, - "minLength": null, - "maxLength": null, - "minimum": null, - "maximum": null, - "regex": null - } - ] - }, - "Volo.Abp.PermissionManagement.PermissionGrantInfoDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Name", + "name": "DateSeparator", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -4988,7 +5103,7 @@ "regex": null }, { - "name": "DisplayName", + "name": "ShortTimePattern", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -5000,7 +5115,7 @@ "regex": null }, { - "name": "ParentName", + "name": "LongTimePattern", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -5010,24 +5125,42 @@ "minimum": null, "maximum": null, "regex": null - }, + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.IanaTimeZone": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ { - "name": "IsGranted", + "name": "TimeZoneName", "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", + "type": "System.String", + "typeSimple": "string", "isRequired": false, "minLength": null, "maxLength": null, "minimum": null, "maximum": null, "regex": null - }, + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.EntityExtensionDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ { - "name": "AllowedProviders", + "name": "Properties", "jsonName": null, - "type": "[System.String]", - "typeSimple": "[string]", + "type": "{System.String:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyDto}", + "typeSimple": "{string:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyDto}", "isRequired": false, "minLength": null, "maxLength": null, @@ -5036,10 +5169,10 @@ "regex": null }, { - "name": "GrantedProviders", + "name": "Configuration", "jsonName": null, - "type": "[Volo.Abp.PermissionManagement.ProviderInfoDto]", - "typeSimple": "[Volo.Abp.PermissionManagement.ProviderInfoDto]", + "type": "{System.String:System.Object}", + "typeSimple": "{string:object}", "isRequired": false, "minLength": null, "maxLength": null, @@ -5049,7 +5182,7 @@ } ] }, - "Volo.Abp.PermissionManagement.ProviderInfoDto": { + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionEnumDto": { "baseType": null, "isEnum": false, "enumNames": null, @@ -5057,10 +5190,10 @@ "genericArguments": null, "properties": [ { - "name": "ProviderName", + "name": "Fields", "jsonName": null, - "type": "System.String", - "typeSimple": "string", + "type": "[Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionEnumFieldDto]", + "typeSimple": "[Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionEnumFieldDto]", "isRequired": false, "minLength": null, "maxLength": null, @@ -5069,7 +5202,7 @@ "regex": null }, { - "name": "ProviderKey", + "name": "LocalizationResource", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -5082,28 +5215,7 @@ } ] }, - "Volo.Abp.PermissionManagement.UpdatePermissionsDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Permissions", - "jsonName": null, - "type": "[Volo.Abp.PermissionManagement.UpdatePermissionDto]", - "typeSimple": "[Volo.Abp.PermissionManagement.UpdatePermissionDto]", - "isRequired": false, - "minLength": null, - "maxLength": null, - "minimum": null, - "maximum": null, - "regex": null - } - ] - }, - "Volo.Abp.PermissionManagement.UpdatePermissionDto": { + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionEnumFieldDto": { "baseType": null, "isEnum": false, "enumNames": null, @@ -5123,10 +5235,10 @@ "regex": null }, { - "name": "IsGranted", + "name": "Value", "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", + "type": "System.Object", + "typeSimple": "object", "isRequired": false, "minLength": null, "maxLength": null, @@ -5136,7 +5248,7 @@ } ] }, - "Volo.Abp.SettingManagement.EmailSettingsDto": { + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiCreateDto": { "baseType": null, "isEnum": false, "enumNames": null, @@ -5144,34 +5256,31 @@ "genericArguments": null, "properties": [ { - "name": "SmtpHost", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false, - "minLength": null, - "maxLength": null, - "minimum": null, - "maximum": null, - "regex": null - }, - { - "name": "SmtpPort", + "name": "IsAvailable", "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", + "type": "System.Boolean", + "typeSimple": "boolean", "isRequired": false, "minLength": null, "maxLength": null, "minimum": null, "maximum": null, "regex": null - }, + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ { - "name": "SmtpUserName", + "name": "OnGet", "jsonName": null, - "type": "System.String", - "typeSimple": "string", + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiGetDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiGetDto", "isRequired": false, "minLength": null, "maxLength": null, @@ -5180,10 +5289,10 @@ "regex": null }, { - "name": "SmtpPassword", + "name": "OnCreate", "jsonName": null, - "type": "System.String", - "typeSimple": "string", + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiCreateDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiCreateDto", "isRequired": false, "minLength": null, "maxLength": null, @@ -5192,19 +5301,28 @@ "regex": null }, { - "name": "SmtpDomain", + "name": "OnUpdate", "jsonName": null, - "type": "System.String", - "typeSimple": "string", + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiUpdateDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiUpdateDto", "isRequired": false, "minLength": null, "maxLength": null, "minimum": null, "maximum": null, "regex": null - }, + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiGetDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ { - "name": "SmtpEnableSsl", + "name": "IsAvailable", "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", @@ -5214,9 +5332,18 @@ "minimum": null, "maximum": null, "regex": null - }, + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiUpdateDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ { - "name": "SmtpUseDefaultCredentials", + "name": "IsAvailable", "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", @@ -5226,9 +5353,18 @@ "minimum": null, "maximum": null, "regex": null - }, + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyAttributeDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ { - "name": "DefaultFromAddress", + "name": "TypeSimple", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -5240,10 +5376,10 @@ "regex": null }, { - "name": "DefaultFromDisplayName", + "name": "Config", "jsonName": null, - "type": "System.String", - "typeSimple": "string", + "type": "{System.String:System.Object}", + "typeSimple": "{string:object}", "isRequired": false, "minLength": null, "maxLength": null, @@ -5253,7 +5389,7 @@ } ] }, - "Volo.Abp.SettingManagement.UpdateEmailSettingsDto": { + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyDto": { "baseType": null, "isEnum": false, "enumNames": null, @@ -5261,70 +5397,58 @@ "genericArguments": null, "properties": [ { - "name": "SmtpHost", + "name": "Type", "jsonName": null, "type": "System.String", "typeSimple": "string", "isRequired": false, "minLength": null, - "maxLength": 256, + "maxLength": null, "minimum": null, "maximum": null, "regex": null }, { - "name": "SmtpPort", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isRequired": false, - "minLength": null, - "maxLength": null, - "minimum": "1", - "maximum": "65535", - "regex": null - }, - { - "name": "SmtpUserName", + "name": "TypeSimple", "jsonName": null, "type": "System.String", "typeSimple": "string", "isRequired": false, "minLength": null, - "maxLength": 1024, + "maxLength": null, "minimum": null, "maximum": null, "regex": null }, { - "name": "SmtpPassword", + "name": "DisplayName", "jsonName": null, - "type": "System.String", - "typeSimple": "string", + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.LocalizableStringDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.LocalizableStringDto", "isRequired": false, "minLength": null, - "maxLength": 1024, + "maxLength": null, "minimum": null, "maximum": null, "regex": null }, { - "name": "SmtpDomain", + "name": "Api", "jsonName": null, - "type": "System.String", - "typeSimple": "string", + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiDto", "isRequired": false, "minLength": null, - "maxLength": 1024, + "maxLength": null, "minimum": null, "maximum": null, "regex": null }, { - "name": "SmtpEnableSsl", + "name": "Ui", "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiDto", "isRequired": false, "minLength": null, "maxLength": null, @@ -5333,10 +5457,10 @@ "regex": null }, { - "name": "SmtpUseDefaultCredentials", + "name": "Attributes", "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", + "type": "[Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyAttributeDto]", + "typeSimple": "[Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyAttributeDto]", "isRequired": false, "minLength": null, "maxLength": null, @@ -5345,32 +5469,32 @@ "regex": null }, { - "name": "DefaultFromAddress", + "name": "Configuration", "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true, + "type": "{System.String:System.Object}", + "typeSimple": "{string:object}", + "isRequired": false, "minLength": null, - "maxLength": 1024, + "maxLength": null, "minimum": null, "maximum": null, "regex": null }, { - "name": "DefaultFromDisplayName", + "name": "DefaultValue", "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true, + "type": "System.Object", + "typeSimple": "object", + "isRequired": false, "minLength": null, - "maxLength": 1024, + "maxLength": null, "minimum": null, "maximum": null, "regex": null } ] }, - "Volo.Abp.SettingManagement.SendTestEmailInput": { + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiDto": { "baseType": null, "isEnum": false, "enumNames": null, @@ -5378,35 +5502,11 @@ "genericArguments": null, "properties": [ { - "name": "SenderEmailAddress", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true, - "minLength": null, - "maxLength": null, - "minimum": null, - "maximum": null, - "regex": null - }, - { - "name": "TargetEmailAddress", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true, - "minLength": null, - "maxLength": null, - "minimum": null, - "maximum": null, - "regex": null - }, - { - "name": "Subject", + "name": "OnTable", "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true, + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiTableDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiTableDto", + "isRequired": false, "minLength": null, "maxLength": null, "minimum": null, @@ -5414,31 +5514,22 @@ "regex": null }, { - "name": "Body", + "name": "OnCreateForm", "jsonName": null, - "type": "System.String", - "typeSimple": "string", + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiFormDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiFormDto", "isRequired": false, "minLength": null, "maxLength": null, - "minimum": null, - "maximum": null, - "regex": null - } - ] - }, - "Volo.Abp.TenantManagement.TenantDto": { - "baseType": "Volo.Abp.Application.Dtos.ExtensibleEntityDto", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ + "minimum": null, + "maximum": null, + "regex": null + }, { - "name": "Name", + "name": "OnEditForm", "jsonName": null, - "type": "System.String", - "typeSimple": "string", + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiFormDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiFormDto", "isRequired": false, "minLength": null, "maxLength": null, @@ -5447,10 +5538,10 @@ "regex": null }, { - "name": "ConcurrencyStamp", + "name": "Lookup", "jsonName": null, - "type": "System.String", - "typeSimple": "string", + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiLookupDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiLookupDto", "isRequired": false, "minLength": null, "maxLength": null, @@ -5460,18 +5551,18 @@ } ] }, - "Volo.Abp.TenantManagement.GetTenantsInput": { - "baseType": "Volo.Abp.Application.Dtos.PagedAndSortedResultRequestDto", + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiFormDto": { + "baseType": null, "isEnum": false, "enumNames": null, "enumValues": null, "genericArguments": null, "properties": [ { - "name": "Filter", + "name": "IsVisible", "jsonName": null, - "type": "System.String", - "typeSimple": "string", + "type": "System.Boolean", + "typeSimple": "boolean", "isRequired": false, "minLength": null, "maxLength": null, @@ -5481,69 +5572,63 @@ } ] }, - "Volo.Abp.TenantManagement.TenantCreateDto": { - "baseType": "Volo.Abp.TenantManagement.TenantCreateOrUpdateDtoBase", + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiLookupDto": { + "baseType": null, "isEnum": false, "enumNames": null, "enumValues": null, "genericArguments": null, "properties": [ { - "name": "AdminEmailAddress", + "name": "Url", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": true, + "isRequired": false, "minLength": null, - "maxLength": 256, + "maxLength": null, "minimum": null, "maximum": null, "regex": null }, { - "name": "AdminPassword", + "name": "ResultListPropertyName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": true, + "isRequired": false, "minLength": null, - "maxLength": 128, + "maxLength": null, "minimum": null, "maximum": null, "regex": null - } - ] - }, - "Volo.Abp.TenantManagement.TenantCreateOrUpdateDtoBase": { - "baseType": "Volo.Abp.ObjectExtending.ExtensibleObject", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ + }, { - "name": "Name", + "name": "DisplayPropertyName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": true, - "minLength": 0, - "maxLength": 64, + "isRequired": false, + "minLength": null, + "maxLength": null, "minimum": null, "maximum": null, "regex": null - } - ] - }, - "Volo.Abp.TenantManagement.TenantUpdateDto": { - "baseType": "Volo.Abp.TenantManagement.TenantCreateOrUpdateDtoBase", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ + }, { - "name": "ConcurrencyStamp", + "name": "ValuePropertyName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "FilterParamName", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -5556,7 +5641,7 @@ } ] }, - "Volo.Abp.FeatureManagement.GetFeatureListResultDto": { + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiTableDto": { "baseType": null, "isEnum": false, "enumNames": null, @@ -5564,10 +5649,10 @@ "genericArguments": null, "properties": [ { - "name": "Groups", + "name": "IsVisible", "jsonName": null, - "type": "[Volo.Abp.FeatureManagement.FeatureGroupDto]", - "typeSimple": "[Volo.Abp.FeatureManagement.FeatureGroupDto]", + "type": "System.Boolean", + "typeSimple": "boolean", "isRequired": false, "minLength": null, "maxLength": null, @@ -5577,7 +5662,7 @@ } ] }, - "Volo.Abp.FeatureManagement.FeatureGroupDto": { + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.LocalizableStringDto": { "baseType": null, "isEnum": false, "enumNames": null, @@ -5597,7 +5682,7 @@ "regex": null }, { - "name": "DisplayName", + "name": "Resource", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -5607,22 +5692,10 @@ "minimum": null, "maximum": null, "regex": null - }, - { - "name": "Features", - "jsonName": null, - "type": "[Volo.Abp.FeatureManagement.FeatureDto]", - "typeSimple": "[Volo.Abp.FeatureManagement.FeatureDto]", - "isRequired": false, - "minLength": null, - "maxLength": null, - "minimum": null, - "maximum": null, - "regex": null } ] }, - "Volo.Abp.FeatureManagement.FeatureDto": { + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ModuleExtensionDto": { "baseType": null, "isEnum": false, "enumNames": null, @@ -5630,34 +5703,10 @@ "genericArguments": null, "properties": [ { - "name": "Name", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false, - "minLength": null, - "maxLength": null, - "minimum": null, - "maximum": null, - "regex": null - }, - { - "name": "DisplayName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false, - "minLength": null, - "maxLength": null, - "minimum": null, - "maximum": null, - "regex": null - }, - { - "name": "Value", + "name": "Entities", "jsonName": null, - "type": "System.String", - "typeSimple": "string", + "type": "{System.String:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.EntityExtensionDto}", + "typeSimple": "{string:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.EntityExtensionDto}", "isRequired": false, "minLength": null, "maxLength": null, @@ -5666,22 +5715,31 @@ "regex": null }, { - "name": "Provider", + "name": "Configuration", "jsonName": null, - "type": "Volo.Abp.FeatureManagement.FeatureProviderDto", - "typeSimple": "Volo.Abp.FeatureManagement.FeatureProviderDto", + "type": "{System.String:System.Object}", + "typeSimple": "{string:object}", "isRequired": false, "minLength": null, "maxLength": null, "minimum": null, "maximum": null, "regex": null - }, + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ObjectExtensionsDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ { - "name": "Description", + "name": "Modules", "jsonName": null, - "type": "System.String", - "typeSimple": "string", + "type": "{System.String:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ModuleExtensionDto}", + "typeSimple": "{string:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ModuleExtensionDto}", "isRequired": false, "minLength": null, "maxLength": null, @@ -5690,22 +5748,31 @@ "regex": null }, { - "name": "ValueType", + "name": "Enums", "jsonName": null, - "type": "Volo.Abp.Validation.StringValues.IStringValueType", - "typeSimple": "Volo.Abp.Validation.StringValues.IStringValueType", + "type": "{System.String:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionEnumDto}", + "typeSimple": "{string:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionEnumDto}", "isRequired": false, "minLength": null, "maxLength": null, "minimum": null, "maximum": null, "regex": null - }, + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.TimeZone": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ { - "name": "Depth", + "name": "Iana", "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.IanaTimeZone", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.IanaTimeZone", "isRequired": false, "minLength": null, "maxLength": null, @@ -5714,10 +5781,10 @@ "regex": null }, { - "name": "ParentName", + "name": "Windows", "jsonName": null, - "type": "System.String", - "typeSimple": "string", + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.WindowsTimeZone", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.WindowsTimeZone", "isRequired": false, "minLength": null, "maxLength": null, @@ -5727,7 +5794,7 @@ } ] }, - "Volo.Abp.FeatureManagement.FeatureProviderDto": { + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.TimingDto": { "baseType": null, "isEnum": false, "enumNames": null, @@ -5735,19 +5802,28 @@ "genericArguments": null, "properties": [ { - "name": "Name", + "name": "TimeZone", "jsonName": null, - "type": "System.String", - "typeSimple": "string", + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.TimeZone", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.TimeZone", "isRequired": false, "minLength": null, "maxLength": null, "minimum": null, "maximum": null, "regex": null - }, + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.WindowsTimeZone": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ { - "name": "Key", + "name": "TimeZoneId", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -5760,13 +5836,25 @@ } ] }, - "Volo.Abp.Validation.StringValues.IStringValueType": { + "Volo.Abp.AspNetCore.Mvc.MultiTenancy.CurrentTenantDto": { "baseType": null, "isEnum": false, "enumNames": null, "enumValues": null, "genericArguments": null, "properties": [ + { + "name": "Id", + "jsonName": null, + "type": "System.Guid?", + "typeSimple": "string?", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, { "name": "Name", "jsonName": null, @@ -5780,22 +5868,31 @@ "regex": null }, { - "name": "Item", + "name": "IsAvailable", "jsonName": null, - "type": "System.Object", - "typeSimple": "object", + "type": "System.Boolean", + "typeSimple": "boolean", "isRequired": false, "minLength": null, "maxLength": null, "minimum": null, "maximum": null, "regex": null - }, + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.MultiTenancy.FindTenantResultDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ { - "name": "Properties", + "name": "Success", "jsonName": null, - "type": "{System.String:System.Object}", - "typeSimple": "{string:object}", + "type": "System.Boolean", + "typeSimple": "boolean", "isRequired": false, "minLength": null, "maxLength": null, @@ -5804,26 +5901,17 @@ "regex": null }, { - "name": "Validator", + "name": "TenantId", "jsonName": null, - "type": "Volo.Abp.Validation.StringValues.IValueValidator", - "typeSimple": "Volo.Abp.Validation.StringValues.IValueValidator", + "type": "System.Guid?", + "typeSimple": "string?", "isRequired": false, "minLength": null, "maxLength": null, "minimum": null, "maximum": null, "regex": null - } - ] - }, - "Volo.Abp.Validation.StringValues.IValueValidator": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ + }, { "name": "Name", "jsonName": null, @@ -5837,10 +5925,10 @@ "regex": null }, { - "name": "Item", + "name": "NormalizedName", "jsonName": null, - "type": "System.Object", - "typeSimple": "object", + "type": "System.String", + "typeSimple": "string", "isRequired": false, "minLength": null, "maxLength": null, @@ -5849,10 +5937,10 @@ "regex": null }, { - "name": "Properties", + "name": "IsActive", "jsonName": null, - "type": "{System.String:System.Object}", - "typeSimple": "{string:object}", + "type": "System.Boolean", + "typeSimple": "boolean", "isRequired": false, "minLength": null, "maxLength": null, @@ -5862,7 +5950,7 @@ } ] }, - "Volo.Abp.FeatureManagement.UpdateFeaturesDto": { + "Volo.Abp.AspNetCore.Mvc.MultiTenancy.MultiTenancyInfoDto": { "baseType": null, "isEnum": false, "enumNames": null, @@ -5870,10 +5958,10 @@ "genericArguments": null, "properties": [ { - "name": "Features", + "name": "IsEnabled", "jsonName": null, - "type": "[Volo.Abp.FeatureManagement.UpdateFeatureDto]", - "typeSimple": "[Volo.Abp.FeatureManagement.UpdateFeatureDto]", + "type": "System.Boolean", + "typeSimple": "boolean", "isRequired": false, "minLength": null, "maxLength": null, @@ -5883,7 +5971,7 @@ } ] }, - "Volo.Abp.FeatureManagement.UpdateFeatureDto": { + "Volo.Abp.FeatureManagement.FeatureDto": { "baseType": null, "isEnum": false, "enumNames": null, @@ -5903,7 +5991,7 @@ "regex": null }, { - "name": "Value", + "name": "DisplayName", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -5913,42 +6001,12 @@ "minimum": null, "maximum": null, "regex": null - } - ] - }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationRequestOptions": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "IncludeLocalizationResources", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false, - "minLength": null, - "maxLength": null, - "minimum": null, - "maximum": null, - "regex": null - } - ] - }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ + }, { - "name": "Localization", + "name": "Value", "jsonName": null, - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationConfigurationDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationConfigurationDto", + "type": "System.String", + "typeSimple": "string", "isRequired": false, "minLength": null, "maxLength": null, @@ -5957,10 +6015,10 @@ "regex": null }, { - "name": "Auth", + "name": "Provider", "jsonName": null, - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationAuthConfigurationDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationAuthConfigurationDto", + "type": "Volo.Abp.FeatureManagement.FeatureProviderDto", + "typeSimple": "Volo.Abp.FeatureManagement.FeatureProviderDto", "isRequired": false, "minLength": null, "maxLength": null, @@ -5969,10 +6027,10 @@ "regex": null }, { - "name": "Setting", + "name": "Description", "jsonName": null, - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationSettingConfigurationDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationSettingConfigurationDto", + "type": "System.String", + "typeSimple": "string", "isRequired": false, "minLength": null, "maxLength": null, @@ -5981,10 +6039,10 @@ "regex": null }, { - "name": "CurrentUser", + "name": "ValueType", "jsonName": null, - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.CurrentUserDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.CurrentUserDto", + "type": "Volo.Abp.Validation.StringValues.IStringValueType", + "typeSimple": "Volo.Abp.Validation.StringValues.IStringValueType", "isRequired": false, "minLength": null, "maxLength": null, @@ -5993,10 +6051,10 @@ "regex": null }, { - "name": "Features", + "name": "Depth", "jsonName": null, - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationFeatureConfigurationDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationFeatureConfigurationDto", + "type": "System.Int32", + "typeSimple": "number", "isRequired": false, "minLength": null, "maxLength": null, @@ -6005,22 +6063,31 @@ "regex": null }, { - "name": "GlobalFeatures", + "name": "ParentName", "jsonName": null, - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationGlobalFeatureConfigurationDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationGlobalFeatureConfigurationDto", + "type": "System.String", + "typeSimple": "string", "isRequired": false, "minLength": null, "maxLength": null, "minimum": null, "maximum": null, "regex": null - }, + } + ] + }, + "Volo.Abp.FeatureManagement.FeatureGroupDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ { - "name": "MultiTenancy", + "name": "Name", "jsonName": null, - "type": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.MultiTenancyInfoDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.MultiTenancyInfoDto", + "type": "System.String", + "typeSimple": "string", "isRequired": false, "minLength": null, "maxLength": null, @@ -6029,10 +6096,10 @@ "regex": null }, { - "name": "CurrentTenant", + "name": "DisplayName", "jsonName": null, - "type": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.CurrentTenantDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.CurrentTenantDto", + "type": "System.String", + "typeSimple": "string", "isRequired": false, "minLength": null, "maxLength": null, @@ -6041,22 +6108,31 @@ "regex": null }, { - "name": "Timing", + "name": "Features", "jsonName": null, - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.TimingDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.TimingDto", + "type": "[Volo.Abp.FeatureManagement.FeatureDto]", + "typeSimple": "[Volo.Abp.FeatureManagement.FeatureDto]", "isRequired": false, "minLength": null, "maxLength": null, "minimum": null, "maximum": null, "regex": null - }, + } + ] + }, + "Volo.Abp.FeatureManagement.FeatureProviderDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ { - "name": "Clock", + "name": "Name", "jsonName": null, - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ClockDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ClockDto", + "type": "System.String", + "typeSimple": "string", "isRequired": false, "minLength": null, "maxLength": null, @@ -6065,22 +6141,31 @@ "regex": null }, { - "name": "ObjectExtensions", + "name": "Key", "jsonName": null, - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ObjectExtensionsDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ObjectExtensionsDto", + "type": "System.String", + "typeSimple": "string", "isRequired": false, "minLength": null, "maxLength": null, "minimum": null, "maximum": null, "regex": null - }, + } + ] + }, + "Volo.Abp.FeatureManagement.GetFeatureListResultDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ { - "name": "ExtraProperties", + "name": "Groups", "jsonName": null, - "type": "{System.String:System.Object}", - "typeSimple": "{string:object}", + "type": "[Volo.Abp.FeatureManagement.FeatureGroupDto]", + "typeSimple": "[Volo.Abp.FeatureManagement.FeatureGroupDto]", "isRequired": false, "minLength": null, "maxLength": null, @@ -6090,7 +6175,7 @@ } ] }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationConfigurationDto": { + "Volo.Abp.FeatureManagement.UpdateFeatureDto": { "baseType": null, "isEnum": false, "enumNames": null, @@ -6098,10 +6183,10 @@ "genericArguments": null, "properties": [ { - "name": "Values", + "name": "Name", "jsonName": null, - "type": "{System.String:System.Collections.Generic.Dictionary}", - "typeSimple": "{string:System.Collections.Generic.Dictionary}", + "type": "System.String", + "typeSimple": "string", "isRequired": false, "minLength": null, "maxLength": null, @@ -6110,34 +6195,52 @@ "regex": null }, { - "name": "Resources", + "name": "Value", "jsonName": null, - "type": "{System.String:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationResourceDto}", - "typeSimple": "{string:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationResourceDto}", + "type": "System.String", + "typeSimple": "string", "isRequired": false, "minLength": null, "maxLength": null, "minimum": null, "maximum": null, "regex": null - }, + } + ] + }, + "Volo.Abp.FeatureManagement.UpdateFeaturesDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ { - "name": "Languages", + "name": "Features", "jsonName": null, - "type": "[Volo.Abp.Localization.LanguageInfo]", - "typeSimple": "[Volo.Abp.Localization.LanguageInfo]", + "type": "[Volo.Abp.FeatureManagement.UpdateFeatureDto]", + "typeSimple": "[Volo.Abp.FeatureManagement.UpdateFeatureDto]", "isRequired": false, "minLength": null, "maxLength": null, "minimum": null, "maximum": null, "regex": null - }, + } + ] + }, + "Volo.Abp.Http.Modeling.ActionApiDescriptionModel": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ { - "name": "CurrentCulture", + "name": "UniqueName", "jsonName": null, - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.CurrentCultureDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.CurrentCultureDto", + "type": "System.String", + "typeSimple": "string", "isRequired": false, "minLength": null, "maxLength": null, @@ -6146,7 +6249,7 @@ "regex": null }, { - "name": "DefaultResourceName", + "name": "Name", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -6158,10 +6261,10 @@ "regex": null }, { - "name": "LanguagesMap", + "name": "HttpMethod", "jsonName": null, - "type": "{System.String:[Volo.Abp.NameValue]}", - "typeSimple": "{string:[Volo.Abp.NameValue]}", + "type": "System.String", + "typeSimple": "string", "isRequired": false, "minLength": null, "maxLength": null, @@ -6170,31 +6273,34 @@ "regex": null }, { - "name": "LanguageFilesMap", + "name": "Url", "jsonName": null, - "type": "{System.String:[Volo.Abp.NameValue]}", - "typeSimple": "{string:[Volo.Abp.NameValue]}", + "type": "System.String", + "typeSimple": "string", "isRequired": false, "minLength": null, "maxLength": null, "minimum": null, "maximum": null, "regex": null - } - ] - }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationResourceDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ + }, + { + "name": "SupportedVersions", + "jsonName": null, + "type": "[System.String]", + "typeSimple": "[string]", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, { - "name": "Texts", + "name": "ParametersOnMethod", "jsonName": null, - "type": "{System.String:System.String}", - "typeSimple": "{string:string}", + "type": "[Volo.Abp.Http.Modeling.MethodParameterApiDescriptionModel]", + "typeSimple": "[Volo.Abp.Http.Modeling.MethodParameterApiDescriptionModel]", "isRequired": false, "minLength": null, "maxLength": null, @@ -6203,31 +6309,22 @@ "regex": null }, { - "name": "BaseResources", + "name": "Parameters", "jsonName": null, - "type": "[System.String]", - "typeSimple": "[string]", + "type": "[Volo.Abp.Http.Modeling.ParameterApiDescriptionModel]", + "typeSimple": "[Volo.Abp.Http.Modeling.ParameterApiDescriptionModel]", "isRequired": false, "minLength": null, "maxLength": null, "minimum": null, "maximum": null, "regex": null - } - ] - }, - "Volo.Abp.Localization.LanguageInfo": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ + }, { - "name": "CultureName", + "name": "ReturnValue", "jsonName": null, - "type": "System.String", - "typeSimple": "string", + "type": "Volo.Abp.Http.Modeling.ReturnValueApiDescriptionModel", + "typeSimple": "Volo.Abp.Http.Modeling.ReturnValueApiDescriptionModel", "isRequired": false, "minLength": null, "maxLength": null, @@ -6236,10 +6333,10 @@ "regex": null }, { - "name": "UiCultureName", + "name": "AllowAnonymous", "jsonName": null, - "type": "System.String", - "typeSimple": "string", + "type": "System.Boolean?", + "typeSimple": "boolean?", "isRequired": false, "minLength": null, "maxLength": null, @@ -6248,7 +6345,7 @@ "regex": null }, { - "name": "DisplayName", + "name": "ImplementFrom", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -6258,12 +6355,21 @@ "minimum": null, "maximum": null, "regex": null - }, + } + ] + }, + "Volo.Abp.Http.Modeling.ApplicationApiDescriptionModel": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ { - "name": "TwoLetterISOLanguageName", + "name": "Modules", "jsonName": null, - "type": "System.String", - "typeSimple": "string", + "type": "{System.String:Volo.Abp.Http.Modeling.ModuleApiDescriptionModel}", + "typeSimple": "{string:Volo.Abp.Http.Modeling.ModuleApiDescriptionModel}", "isRequired": false, "minLength": null, "maxLength": null, @@ -6272,10 +6378,10 @@ "regex": null }, { - "name": "FlagIcon", + "name": "Types", "jsonName": null, - "type": "System.String", - "typeSimple": "string", + "type": "{System.String:Volo.Abp.Http.Modeling.TypeApiDescriptionModel}", + "typeSimple": "{string:Volo.Abp.Http.Modeling.TypeApiDescriptionModel}", "isRequired": false, "minLength": null, "maxLength": null, @@ -6285,7 +6391,7 @@ } ] }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.CurrentCultureDto": { + "Volo.Abp.Http.Modeling.ApplicationApiDescriptionModelRequestDto": { "baseType": null, "isEnum": false, "enumNames": null, @@ -6293,19 +6399,28 @@ "genericArguments": null, "properties": [ { - "name": "DisplayName", + "name": "IncludeTypes", "jsonName": null, - "type": "System.String", - "typeSimple": "string", + "type": "System.Boolean", + "typeSimple": "boolean", "isRequired": false, "minLength": null, "maxLength": null, "minimum": null, "maximum": null, "regex": null - }, + } + ] + }, + "Volo.Abp.Http.Modeling.ControllerApiDescriptionModel": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ { - "name": "EnglishName", + "name": "ControllerName", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -6317,7 +6432,7 @@ "regex": null }, { - "name": "ThreeLetterIsoLanguageName", + "name": "ControllerGroupName", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -6329,10 +6444,10 @@ "regex": null }, { - "name": "TwoLetterIsoLanguageName", + "name": "IsRemoteService", "jsonName": null, - "type": "System.String", - "typeSimple": "string", + "type": "System.Boolean", + "typeSimple": "boolean", "isRequired": false, "minLength": null, "maxLength": null, @@ -6341,7 +6456,7 @@ "regex": null }, { - "name": "IsRightToLeft", + "name": "IsIntegrationService", "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", @@ -6353,7 +6468,7 @@ "regex": null }, { - "name": "CultureName", + "name": "ApiVersion", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -6365,7 +6480,7 @@ "regex": null }, { - "name": "Name", + "name": "Type", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -6377,10 +6492,10 @@ "regex": null }, { - "name": "NativeName", + "name": "Interfaces", "jsonName": null, - "type": "System.String", - "typeSimple": "string", + "type": "[Volo.Abp.Http.Modeling.ControllerInterfaceApiDescriptionModel]", + "typeSimple": "[Volo.Abp.Http.Modeling.ControllerInterfaceApiDescriptionModel]", "isRequired": false, "minLength": null, "maxLength": null, @@ -6389,10 +6504,10 @@ "regex": null }, { - "name": "DateTimeFormat", + "name": "Actions", "jsonName": null, - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.DateTimeFormatDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.DateTimeFormatDto", + "type": "{System.String:Volo.Abp.Http.Modeling.ActionApiDescriptionModel}", + "typeSimple": "{string:Volo.Abp.Http.Modeling.ActionApiDescriptionModel}", "isRequired": false, "minLength": null, "maxLength": null, @@ -6402,7 +6517,7 @@ } ] }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.DateTimeFormatDto": { + "Volo.Abp.Http.Modeling.ControllerInterfaceApiDescriptionModel": { "baseType": null, "isEnum": false, "enumNames": null, @@ -6410,19 +6525,7 @@ "genericArguments": null, "properties": [ { - "name": "CalendarAlgorithmType", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false, - "minLength": null, - "maxLength": null, - "minimum": null, - "maximum": null, - "regex": null - }, - { - "name": "DateTimeFormatLong", + "name": "Type", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -6434,7 +6537,7 @@ "regex": null }, { - "name": "ShortDatePattern", + "name": "Name", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -6446,19 +6549,28 @@ "regex": null }, { - "name": "FullDateTimePattern", + "name": "Methods", "jsonName": null, - "type": "System.String", - "typeSimple": "string", + "type": "[Volo.Abp.Http.Modeling.InterfaceMethodApiDescriptionModel]", + "typeSimple": "[Volo.Abp.Http.Modeling.InterfaceMethodApiDescriptionModel]", "isRequired": false, "minLength": null, "maxLength": null, "minimum": null, "maximum": null, "regex": null - }, + } + ] + }, + "Volo.Abp.Http.Modeling.InterfaceMethodApiDescriptionModel": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ { - "name": "DateSeparator", + "name": "Name", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -6470,10 +6582,10 @@ "regex": null }, { - "name": "ShortTimePattern", + "name": "ParametersOnMethod", "jsonName": null, - "type": "System.String", - "typeSimple": "string", + "type": "[Volo.Abp.Http.Modeling.MethodParameterApiDescriptionModel]", + "typeSimple": "[Volo.Abp.Http.Modeling.MethodParameterApiDescriptionModel]", "isRequired": false, "minLength": null, "maxLength": null, @@ -6482,10 +6594,10 @@ "regex": null }, { - "name": "LongTimePattern", + "name": "ReturnValue", "jsonName": null, - "type": "System.String", - "typeSimple": "string", + "type": "Volo.Abp.Http.Modeling.ReturnValueApiDescriptionModel", + "typeSimple": "Volo.Abp.Http.Modeling.ReturnValueApiDescriptionModel", "isRequired": false, "minLength": null, "maxLength": null, @@ -6495,22 +6607,12 @@ } ] }, - "Volo.Abp.NameValue": { - "baseType": "Volo.Abp.NameValue", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [] - }, - "Volo.Abp.NameValue": { + "Volo.Abp.Http.Modeling.MethodParameterApiDescriptionModel": { "baseType": null, "isEnum": false, "enumNames": null, "enumValues": null, - "genericArguments": [ - "T" - ], + "genericArguments": null, "properties": [ { "name": "Name", @@ -6525,70 +6627,43 @@ "regex": null }, { - "name": "Value", + "name": "TypeAsString", "jsonName": null, - "type": "T", - "typeSimple": "T", + "type": "System.String", + "typeSimple": "string", "isRequired": false, "minLength": null, "maxLength": null, "minimum": null, "maximum": null, "regex": null - } - ] - }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationAuthConfigurationDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ + }, { - "name": "GrantedPolicies", + "name": "Type", "jsonName": null, - "type": "{System.String:System.Boolean}", - "typeSimple": "{string:boolean}", + "type": "System.String", + "typeSimple": "string", "isRequired": false, "minLength": null, "maxLength": null, "minimum": null, "maximum": null, "regex": null - } - ] - }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationSettingConfigurationDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ + }, { - "name": "Values", + "name": "TypeSimple", "jsonName": null, - "type": "{System.String:System.String}", - "typeSimple": "{string:string}", + "type": "System.String", + "typeSimple": "string", "isRequired": false, "minLength": null, "maxLength": null, "minimum": null, "maximum": null, "regex": null - } - ] - }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.CurrentUserDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ + }, { - "name": "IsAuthenticated", + "name": "IsOptional", "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", @@ -6600,34 +6675,31 @@ "regex": null }, { - "name": "Id", - "jsonName": null, - "type": "System.Guid?", - "typeSimple": "string?", - "isRequired": false, - "minLength": null, - "maxLength": null, - "minimum": null, - "maximum": null, - "regex": null - }, - { - "name": "TenantId", + "name": "DefaultValue", "jsonName": null, - "type": "System.Guid?", - "typeSimple": "string?", + "type": "System.Object", + "typeSimple": "object", "isRequired": false, "minLength": null, "maxLength": null, "minimum": null, "maximum": null, "regex": null - }, + } + ] + }, + "Volo.Abp.Http.Modeling.ModuleApiDescriptionModel": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ { - "name": "ImpersonatorUserId", + "name": "RootPath", "jsonName": null, - "type": "System.Guid?", - "typeSimple": "string?", + "type": "System.String", + "typeSimple": "string", "isRequired": false, "minLength": null, "maxLength": null, @@ -6636,10 +6708,10 @@ "regex": null }, { - "name": "ImpersonatorTenantId", + "name": "RemoteServiceName", "jsonName": null, - "type": "System.Guid?", - "typeSimple": "string?", + "type": "System.String", + "typeSimple": "string", "isRequired": false, "minLength": null, "maxLength": null, @@ -6648,19 +6720,28 @@ "regex": null }, { - "name": "ImpersonatorUserName", + "name": "Controllers", "jsonName": null, - "type": "System.String", - "typeSimple": "string", + "type": "{System.String:Volo.Abp.Http.Modeling.ControllerApiDescriptionModel}", + "typeSimple": "{string:Volo.Abp.Http.Modeling.ControllerApiDescriptionModel}", "isRequired": false, "minLength": null, "maxLength": null, "minimum": null, "maximum": null, "regex": null - }, + } + ] + }, + "Volo.Abp.Http.Modeling.ParameterApiDescriptionModel": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ { - "name": "ImpersonatorTenantName", + "name": "NameOnMethod", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -6672,7 +6753,7 @@ "regex": null }, { - "name": "UserName", + "name": "Name", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -6684,7 +6765,7 @@ "regex": null }, { - "name": "Name", + "name": "JsonName", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -6696,7 +6777,7 @@ "regex": null }, { - "name": "SurName", + "name": "Type", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -6708,7 +6789,7 @@ "regex": null }, { - "name": "Email", + "name": "TypeSimple", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -6720,7 +6801,7 @@ "regex": null }, { - "name": "EmailVerified", + "name": "IsOptional", "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", @@ -6732,10 +6813,10 @@ "regex": null }, { - "name": "PhoneNumber", + "name": "DefaultValue", "jsonName": null, - "type": "System.String", - "typeSimple": "string", + "type": "System.Object", + "typeSimple": "object", "isRequired": false, "minLength": null, "maxLength": null, @@ -6744,10 +6825,10 @@ "regex": null }, { - "name": "PhoneNumberVerified", + "name": "ConstraintTypes", "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", + "type": "[System.String]", + "typeSimple": "[string]", "isRequired": false, "minLength": null, "maxLength": null, @@ -6756,31 +6837,22 @@ "regex": null }, { - "name": "Roles", + "name": "BindingSourceId", "jsonName": null, - "type": "[System.String]", - "typeSimple": "[string]", + "type": "System.String", + "typeSimple": "string", "isRequired": false, "minLength": null, "maxLength": null, "minimum": null, "maximum": null, "regex": null - } - ] - }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationFeatureConfigurationDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ + }, { - "name": "Values", + "name": "DescriptorName", "jsonName": null, - "type": "{System.String:System.String}", - "typeSimple": "{string:string}", + "type": "System.String", + "typeSimple": "string", "isRequired": false, "minLength": null, "maxLength": null, @@ -6790,7 +6862,7 @@ } ] }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationGlobalFeatureConfigurationDto": { + "Volo.Abp.Http.Modeling.PropertyApiDescriptionModel": { "baseType": null, "isEnum": false, "enumNames": null, @@ -6798,52 +6870,34 @@ "genericArguments": null, "properties": [ { - "name": "EnabledFeatures", + "name": "Name", "jsonName": null, - "type": "[System.String]", - "typeSimple": "[string]", + "type": "System.String", + "typeSimple": "string", "isRequired": false, "minLength": null, "maxLength": null, "minimum": null, "maximum": null, "regex": null - } - ] - }, - "Volo.Abp.AspNetCore.Mvc.MultiTenancy.MultiTenancyInfoDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ + }, { - "name": "IsEnabled", + "name": "JsonName", "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", + "type": "System.String", + "typeSimple": "string", "isRequired": false, "minLength": null, "maxLength": null, "minimum": null, "maximum": null, "regex": null - } - ] - }, - "Volo.Abp.AspNetCore.Mvc.MultiTenancy.CurrentTenantDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ + }, { - "name": "Id", + "name": "Type", "jsonName": null, - "type": "System.Guid?", - "typeSimple": "string?", + "type": "System.String", + "typeSimple": "string", "isRequired": false, "minLength": null, "maxLength": null, @@ -6852,7 +6906,7 @@ "regex": null }, { - "name": "Name", + "name": "TypeSimple", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -6864,7 +6918,7 @@ "regex": null }, { - "name": "IsAvailable", + "name": "IsRequired", "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", @@ -6874,42 +6928,24 @@ "minimum": null, "maximum": null, "regex": null - } - ] - }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.TimingDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ + }, { - "name": "TimeZone", + "name": "MinLength", "jsonName": null, - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.TimeZone", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.TimeZone", + "type": "System.Int32?", + "typeSimple": "number?", "isRequired": false, "minLength": null, "maxLength": null, "minimum": null, "maximum": null, "regex": null - } - ] - }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.TimeZone": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ + }, { - "name": "Iana", + "name": "MaxLength", "jsonName": null, - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.IanaTimeZone", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.IanaTimeZone", + "type": "System.Int32?", + "typeSimple": "number?", "isRequired": false, "minLength": null, "maxLength": null, @@ -6918,28 +6954,19 @@ "regex": null }, { - "name": "Windows", + "name": "Minimum", "jsonName": null, - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.WindowsTimeZone", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.WindowsTimeZone", + "type": "System.String", + "typeSimple": "string", "isRequired": false, "minLength": null, "maxLength": null, "minimum": null, "maximum": null, "regex": null - } - ] - }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.IanaTimeZone": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ + }, { - "name": "TimeZoneName", + "name": "Maximum", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -6949,18 +6976,9 @@ "minimum": null, "maximum": null, "regex": null - } - ] - }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.WindowsTimeZone": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ + }, { - "name": "TimeZoneId", + "name": "Regex", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -6973,7 +6991,7 @@ } ] }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ClockDto": { + "Volo.Abp.Http.Modeling.ReturnValueApiDescriptionModel": { "baseType": null, "isEnum": false, "enumNames": null, @@ -6981,7 +6999,19 @@ "genericArguments": null, "properties": [ { - "name": "Kind", + "name": "Type", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "TypeSimple", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -6994,7 +7024,7 @@ } ] }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ObjectExtensionsDto": { + "Volo.Abp.Http.Modeling.TypeApiDescriptionModel": { "baseType": null, "isEnum": false, "enumNames": null, @@ -7002,10 +7032,10 @@ "genericArguments": null, "properties": [ { - "name": "Modules", + "name": "BaseType", "jsonName": null, - "type": "{System.String:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ModuleExtensionDto}", - "typeSimple": "{string:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ModuleExtensionDto}", + "type": "System.String", + "typeSimple": "string", "isRequired": false, "minLength": null, "maxLength": null, @@ -7014,31 +7044,46 @@ "regex": null }, { - "name": "Enums", + "name": "IsEnum", "jsonName": null, - "type": "{System.String:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionEnumDto}", - "typeSimple": "{string:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionEnumDto}", + "type": "System.Boolean", + "typeSimple": "boolean", "isRequired": false, "minLength": null, "maxLength": null, "minimum": null, "maximum": null, "regex": null - } - ] - }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ModuleExtensionDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ + }, { - "name": "Entities", + "name": "EnumNames", "jsonName": null, - "type": "{System.String:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.EntityExtensionDto}", - "typeSimple": "{string:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.EntityExtensionDto}", + "type": "[System.String]", + "typeSimple": "[string]", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "EnumValues", + "jsonName": null, + "type": "[System.Object]", + "typeSimple": "[object]", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "GenericArguments", + "jsonName": null, + "type": "[System.String]", + "typeSimple": "[string]", "isRequired": false, "minLength": null, "maxLength": null, @@ -7047,10 +7092,10 @@ "regex": null }, { - "name": "Configuration", + "name": "Properties", "jsonName": null, - "type": "{System.String:System.Object}", - "typeSimple": "{string:object}", + "type": "[Volo.Abp.Http.Modeling.PropertyApiDescriptionModel]", + "typeSimple": "[Volo.Abp.Http.Modeling.PropertyApiDescriptionModel]", "isRequired": false, "minLength": null, "maxLength": null, @@ -7060,30 +7105,39 @@ } ] }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.EntityExtensionDto": { - "baseType": null, + "Volo.Abp.Identity.GetIdentityRolesInput": { + "baseType": "Volo.Abp.Application.Dtos.PagedAndSortedResultRequestDto", "isEnum": false, "enumNames": null, "enumValues": null, "genericArguments": null, "properties": [ { - "name": "Properties", + "name": "Filter", "jsonName": null, - "type": "{System.String:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyDto}", - "typeSimple": "{string:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyDto}", + "type": "System.String", + "typeSimple": "string", "isRequired": false, "minLength": null, "maxLength": null, "minimum": null, "maximum": null, "regex": null - }, + } + ] + }, + "Volo.Abp.Identity.GetIdentityUsersInput": { + "baseType": "Volo.Abp.Application.Dtos.PagedAndSortedResultRequestDto", + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ { - "name": "Configuration", + "name": "Filter", "jsonName": null, - "type": "{System.String:System.Object}", - "typeSimple": "{string:object}", + "type": "System.String", + "typeSimple": "string", "isRequired": false, "minLength": null, "maxLength": null, @@ -7093,30 +7147,38 @@ } ] }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyDto": { - "baseType": null, + "Volo.Abp.Identity.IdentityRoleCreateDto": { + "baseType": "Volo.Abp.Identity.IdentityRoleCreateOrUpdateDtoBase", + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [] + }, + "Volo.Abp.Identity.IdentityRoleCreateOrUpdateDtoBase": { + "baseType": "Volo.Abp.ObjectExtending.ExtensibleObject", "isEnum": false, "enumNames": null, "enumValues": null, "genericArguments": null, "properties": [ { - "name": "Type", + "name": "Name", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false, - "minLength": null, - "maxLength": null, + "isRequired": true, + "minLength": 0, + "maxLength": 256, "minimum": null, "maximum": null, "regex": null }, { - "name": "TypeSimple", + "name": "IsDefault", "jsonName": null, - "type": "System.String", - "typeSimple": "string", + "type": "System.Boolean", + "typeSimple": "boolean", "isRequired": false, "minLength": null, "maxLength": null, @@ -7125,22 +7187,31 @@ "regex": null }, { - "name": "DisplayName", + "name": "IsPublic", "jsonName": null, - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.LocalizableStringDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.LocalizableStringDto", + "type": "System.Boolean", + "typeSimple": "boolean", "isRequired": false, "minLength": null, "maxLength": null, "minimum": null, "maximum": null, "regex": null - }, + } + ] + }, + "Volo.Abp.Identity.IdentityRoleDto": { + "baseType": "Volo.Abp.Application.Dtos.ExtensibleEntityDto", + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ { - "name": "Api", + "name": "Name", "jsonName": null, - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiDto", + "type": "System.String", + "typeSimple": "string", "isRequired": false, "minLength": null, "maxLength": null, @@ -7149,10 +7220,10 @@ "regex": null }, { - "name": "Ui", + "name": "IsDefault", "jsonName": null, - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiDto", + "type": "System.Boolean", + "typeSimple": "boolean", "isRequired": false, "minLength": null, "maxLength": null, @@ -7161,10 +7232,10 @@ "regex": null }, { - "name": "Attributes", + "name": "IsStatic", "jsonName": null, - "type": "[Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyAttributeDto]", - "typeSimple": "[Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyAttributeDto]", + "type": "System.Boolean", + "typeSimple": "boolean", "isRequired": false, "minLength": null, "maxLength": null, @@ -7173,10 +7244,10 @@ "regex": null }, { - "name": "Configuration", + "name": "IsPublic", "jsonName": null, - "type": "{System.String:System.Object}", - "typeSimple": "{string:object}", + "type": "System.Boolean", + "typeSimple": "boolean", "isRequired": false, "minLength": null, "maxLength": null, @@ -7185,10 +7256,10 @@ "regex": null }, { - "name": "DefaultValue", + "name": "ConcurrencyStamp", "jsonName": null, - "type": "System.Object", - "typeSimple": "object", + "type": "System.String", + "typeSimple": "string", "isRequired": false, "minLength": null, "maxLength": null, @@ -7198,15 +7269,15 @@ } ] }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.LocalizableStringDto": { - "baseType": null, + "Volo.Abp.Identity.IdentityRoleUpdateDto": { + "baseType": "Volo.Abp.Identity.IdentityRoleCreateOrUpdateDtoBase", "isEnum": false, "enumNames": null, "enumValues": null, "genericArguments": null, "properties": [ { - "name": "Name", + "name": "ConcurrencyStamp", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -7216,33 +7287,102 @@ "minimum": null, "maximum": null, "regex": null - }, + } + ] + }, + "Volo.Abp.Identity.IdentityUserCreateDto": { + "baseType": "Volo.Abp.Identity.IdentityUserCreateOrUpdateDtoBase", + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ { - "name": "Resource", + "name": "Password", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false, - "minLength": null, - "maxLength": null, + "isRequired": true, + "minLength": 0, + "maxLength": 128, "minimum": null, "maximum": null, "regex": null } ] }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiDto": { - "baseType": null, + "Volo.Abp.Identity.IdentityUserCreateOrUpdateDtoBase": { + "baseType": "Volo.Abp.ObjectExtending.ExtensibleObject", "isEnum": false, "enumNames": null, "enumValues": null, "genericArguments": null, "properties": [ { - "name": "OnGet", + "name": "UserName", "jsonName": null, - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiGetDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiGetDto", + "type": "System.String", + "typeSimple": "string", + "isRequired": true, + "minLength": 0, + "maxLength": 256, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "Name", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": 0, + "maxLength": 64, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "Surname", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": 0, + "maxLength": 64, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "Email", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": true, + "minLength": 0, + "maxLength": 256, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "PhoneNumber", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": 0, + "maxLength": 16, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "IsActive", + "jsonName": null, + "type": "System.Boolean", + "typeSimple": "boolean", "isRequired": false, "minLength": null, "maxLength": null, @@ -7251,10 +7391,10 @@ "regex": null }, { - "name": "OnCreate", + "name": "LockoutEnabled", "jsonName": null, - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiCreateDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiCreateDto", + "type": "System.Boolean", + "typeSimple": "boolean", "isRequired": false, "minLength": null, "maxLength": null, @@ -7263,10 +7403,10 @@ "regex": null }, { - "name": "OnUpdate", + "name": "RoleNames", "jsonName": null, - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiUpdateDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiUpdateDto", + "type": "[System.String]", + "typeSimple": "[string]", "isRequired": false, "minLength": null, "maxLength": null, @@ -7276,81 +7416,66 @@ } ] }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiGetDto": { - "baseType": null, + "Volo.Abp.Identity.IdentityUserDto": { + "baseType": "Volo.Abp.Application.Dtos.ExtensibleFullAuditedEntityDto", "isEnum": false, "enumNames": null, "enumValues": null, "genericArguments": null, "properties": [ { - "name": "IsAvailable", + "name": "TenantId", "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", + "type": "System.Guid?", + "typeSimple": "string?", "isRequired": false, "minLength": null, "maxLength": null, "minimum": null, "maximum": null, "regex": null - } - ] - }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiCreateDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ + }, { - "name": "IsAvailable", + "name": "UserName", "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", + "type": "System.String", + "typeSimple": "string", "isRequired": false, "minLength": null, "maxLength": null, "minimum": null, "maximum": null, "regex": null - } - ] - }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiUpdateDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ + }, + { + "name": "Name", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, { - "name": "IsAvailable", + "name": "Surname", "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", + "type": "System.String", + "typeSimple": "string", "isRequired": false, "minLength": null, "maxLength": null, "minimum": null, "maximum": null, "regex": null - } - ] - }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ + }, { - "name": "OnTable", + "name": "Email", "jsonName": null, - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiTableDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiTableDto", + "type": "System.String", + "typeSimple": "string", "isRequired": false, "minLength": null, "maxLength": null, @@ -7359,10 +7484,10 @@ "regex": null }, { - "name": "OnCreateForm", + "name": "EmailConfirmed", "jsonName": null, - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiFormDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiFormDto", + "type": "System.Boolean", + "typeSimple": "boolean", "isRequired": false, "minLength": null, "maxLength": null, @@ -7371,10 +7496,10 @@ "regex": null }, { - "name": "OnEditForm", + "name": "PhoneNumber", "jsonName": null, - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiFormDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiFormDto", + "type": "System.String", + "typeSimple": "string", "isRequired": false, "minLength": null, "maxLength": null, @@ -7383,28 +7508,19 @@ "regex": null }, { - "name": "Lookup", + "name": "PhoneNumberConfirmed", "jsonName": null, - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiLookupDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiLookupDto", + "type": "System.Boolean", + "typeSimple": "boolean", "isRequired": false, "minLength": null, "maxLength": null, "minimum": null, "maximum": null, "regex": null - } - ] - }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiTableDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ + }, { - "name": "IsVisible", + "name": "IsActive", "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", @@ -7414,18 +7530,9 @@ "minimum": null, "maximum": null, "regex": null - } - ] - }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiFormDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ + }, { - "name": "IsVisible", + "name": "LockoutEnabled", "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", @@ -7435,21 +7542,12 @@ "minimum": null, "maximum": null, "regex": null - } - ] - }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiLookupDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ + }, { - "name": "Url", + "name": "AccessFailedCount", "jsonName": null, - "type": "System.String", - "typeSimple": "string", + "type": "System.Int32", + "typeSimple": "number", "isRequired": false, "minLength": null, "maxLength": null, @@ -7458,10 +7556,10 @@ "regex": null }, { - "name": "ResultListPropertyName", + "name": "LockoutEnd", "jsonName": null, - "type": "System.String", - "typeSimple": "string", + "type": "System.DateTimeOffset?", + "typeSimple": "string?", "isRequired": false, "minLength": null, "maxLength": null, @@ -7470,7 +7568,7 @@ "regex": null }, { - "name": "DisplayPropertyName", + "name": "ConcurrencyStamp", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -7482,10 +7580,10 @@ "regex": null }, { - "name": "ValuePropertyName", + "name": "EntityVersion", "jsonName": null, - "type": "System.String", - "typeSimple": "string", + "type": "System.Int32", + "typeSimple": "number", "isRequired": false, "minLength": null, "maxLength": null, @@ -7494,10 +7592,10 @@ "regex": null }, { - "name": "FilterParamName", + "name": "LastPasswordChangeTime", "jsonName": null, - "type": "System.String", - "typeSimple": "string", + "type": "System.DateTimeOffset?", + "typeSimple": "string?", "isRequired": false, "minLength": null, "maxLength": null, @@ -7507,30 +7605,30 @@ } ] }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyAttributeDto": { - "baseType": null, + "Volo.Abp.Identity.IdentityUserUpdateDto": { + "baseType": "Volo.Abp.Identity.IdentityUserCreateOrUpdateDtoBase", "isEnum": false, "enumNames": null, "enumValues": null, "genericArguments": null, "properties": [ { - "name": "TypeSimple", + "name": "Password", "jsonName": null, "type": "System.String", "typeSimple": "string", "isRequired": false, - "minLength": null, - "maxLength": null, + "minLength": 0, + "maxLength": 128, "minimum": null, "maximum": null, "regex": null }, { - "name": "Config", + "name": "ConcurrencyStamp", "jsonName": null, - "type": "{System.String:System.Object}", - "typeSimple": "{string:object}", + "type": "System.String", + "typeSimple": "string", "isRequired": false, "minLength": null, "maxLength": null, @@ -7540,7 +7638,7 @@ } ] }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionEnumDto": { + "Volo.Abp.Identity.IdentityUserUpdateRolesDto": { "baseType": null, "isEnum": false, "enumNames": null, @@ -7548,19 +7646,49 @@ "genericArguments": null, "properties": [ { - "name": "Fields", + "name": "RoleNames", "jsonName": null, - "type": "[Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionEnumFieldDto]", - "typeSimple": "[Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionEnumFieldDto]", + "type": "[System.String]", + "typeSimple": "[string]", + "isRequired": true, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + } + ] + }, + "Volo.Abp.Identity.UserLookupCountInputDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "Filter", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", "isRequired": false, "minLength": null, "maxLength": null, "minimum": null, "maximum": null, "regex": null - }, + } + ] + }, + "Volo.Abp.Identity.UserLookupSearchInputDto": { + "baseType": "Volo.Abp.Application.Dtos.PagedAndSortedResultRequestDto", + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ { - "name": "LocalizationResource", + "name": "Filter", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -7573,7 +7701,7 @@ } ] }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionEnumFieldDto": { + "Volo.Abp.Localization.LanguageInfo": { "baseType": null, "isEnum": false, "enumNames": null, @@ -7581,7 +7709,7 @@ "genericArguments": null, "properties": [ { - "name": "Name", + "name": "CultureName", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -7593,32 +7721,23 @@ "regex": null }, { - "name": "Value", + "name": "UiCultureName", "jsonName": null, - "type": "System.Object", - "typeSimple": "object", + "type": "System.String", + "typeSimple": "string", "isRequired": false, "minLength": null, "maxLength": null, "minimum": null, "maximum": null, "regex": null - } - ] - }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationRequestDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ + }, { - "name": "CultureName", + "name": "DisplayName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": true, + "isRequired": false, "minLength": null, "maxLength": null, "minimum": null, @@ -7626,10 +7745,22 @@ "regex": null }, { - "name": "OnlyDynamics", + "name": "TwoLetterISOLanguageName", "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "FlagIcon", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", "isRequired": false, "minLength": null, "maxLength": null, @@ -7639,18 +7770,40 @@ } ] }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationDto": { - "baseType": null, + "Volo.Abp.NameValue": { + "baseType": "Volo.Abp.NameValue", "isEnum": false, "enumNames": null, "enumValues": null, "genericArguments": null, + "properties": [] + }, + "Volo.Abp.NameValue": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": [ + "T" + ], "properties": [ { - "name": "Resources", + "name": "Name", "jsonName": null, - "type": "{System.String:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationResourceDto}", - "typeSimple": "{string:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationResourceDto}", + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "Value", + "jsonName": null, + "type": "T", + "typeSimple": "T", "isRequired": false, "minLength": null, "maxLength": null, @@ -7660,7 +7813,7 @@ } ] }, - "Volo.Abp.Http.Modeling.ApplicationApiDescriptionModelRequestDto": { + "Volo.Abp.ObjectExtending.ExtensibleObject": { "baseType": null, "isEnum": false, "enumNames": null, @@ -7668,10 +7821,10 @@ "genericArguments": null, "properties": [ { - "name": "IncludeTypes", + "name": "ExtraProperties", "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", + "type": "{System.String:System.Object}", + "typeSimple": "{string:object}", "isRequired": false, "minLength": null, "maxLength": null, @@ -7681,7 +7834,7 @@ } ] }, - "Volo.Abp.Http.Modeling.ApplicationApiDescriptionModel": { + "Volo.Abp.PermissionManagement.GetPermissionListResultDto": { "baseType": null, "isEnum": false, "enumNames": null, @@ -7689,10 +7842,10 @@ "genericArguments": null, "properties": [ { - "name": "Modules", + "name": "EntityDisplayName", "jsonName": null, - "type": "{System.String:Volo.Abp.Http.Modeling.ModuleApiDescriptionModel}", - "typeSimple": "{string:Volo.Abp.Http.Modeling.ModuleApiDescriptionModel}", + "type": "System.String", + "typeSimple": "string", "isRequired": false, "minLength": null, "maxLength": null, @@ -7701,10 +7854,10 @@ "regex": null }, { - "name": "Types", + "name": "Groups", "jsonName": null, - "type": "{System.String:Volo.Abp.Http.Modeling.TypeApiDescriptionModel}", - "typeSimple": "{string:Volo.Abp.Http.Modeling.TypeApiDescriptionModel}", + "type": "[Volo.Abp.PermissionManagement.PermissionGroupDto]", + "typeSimple": "[Volo.Abp.PermissionManagement.PermissionGroupDto]", "isRequired": false, "minLength": null, "maxLength": null, @@ -7714,7 +7867,7 @@ } ] }, - "Volo.Abp.Http.Modeling.ModuleApiDescriptionModel": { + "Volo.Abp.PermissionManagement.PermissionGrantInfoDto": { "baseType": null, "isEnum": false, "enumNames": null, @@ -7722,7 +7875,7 @@ "genericArguments": null, "properties": [ { - "name": "RootPath", + "name": "Name", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -7734,7 +7887,7 @@ "regex": null }, { - "name": "RemoteServiceName", + "name": "DisplayName", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -7746,31 +7899,22 @@ "regex": null }, { - "name": "Controllers", + "name": "ParentName", "jsonName": null, - "type": "{System.String:Volo.Abp.Http.Modeling.ControllerApiDescriptionModel}", - "typeSimple": "{string:Volo.Abp.Http.Modeling.ControllerApiDescriptionModel}", + "type": "System.String", + "typeSimple": "string", "isRequired": false, "minLength": null, "maxLength": null, "minimum": null, "maximum": null, "regex": null - } - ] - }, - "Volo.Abp.Http.Modeling.ControllerApiDescriptionModel": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ + }, { - "name": "ControllerName", + "name": "IsGranted", "jsonName": null, - "type": "System.String", - "typeSimple": "string", + "type": "System.Boolean", + "typeSimple": "boolean", "isRequired": false, "minLength": null, "maxLength": null, @@ -7779,10 +7923,10 @@ "regex": null }, { - "name": "ControllerGroupName", + "name": "AllowedProviders", "jsonName": null, - "type": "System.String", - "typeSimple": "string", + "type": "[System.String]", + "typeSimple": "[string]", "isRequired": false, "minLength": null, "maxLength": null, @@ -7791,22 +7935,31 @@ "regex": null }, { - "name": "IsRemoteService", + "name": "GrantedProviders", "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", + "type": "[Volo.Abp.PermissionManagement.ProviderInfoDto]", + "typeSimple": "[Volo.Abp.PermissionManagement.ProviderInfoDto]", "isRequired": false, "minLength": null, "maxLength": null, "minimum": null, "maximum": null, "regex": null - }, + } + ] + }, + "Volo.Abp.PermissionManagement.PermissionGroupDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ { - "name": "IsIntegrationService", + "name": "Name", "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", + "type": "System.String", + "typeSimple": "string", "isRequired": false, "minLength": null, "maxLength": null, @@ -7815,7 +7968,7 @@ "regex": null }, { - "name": "ApiVersion", + "name": "DisplayName", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -7827,7 +7980,7 @@ "regex": null }, { - "name": "Type", + "name": "DisplayNameKey", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -7839,10 +7992,10 @@ "regex": null }, { - "name": "Interfaces", + "name": "DisplayNameResource", "jsonName": null, - "type": "[Volo.Abp.Http.Modeling.ControllerInterfaceApiDescriptionModel]", - "typeSimple": "[Volo.Abp.Http.Modeling.ControllerInterfaceApiDescriptionModel]", + "type": "System.String", + "typeSimple": "string", "isRequired": false, "minLength": null, "maxLength": null, @@ -7851,10 +8004,10 @@ "regex": null }, { - "name": "Actions", + "name": "Permissions", "jsonName": null, - "type": "{System.String:Volo.Abp.Http.Modeling.ActionApiDescriptionModel}", - "typeSimple": "{string:Volo.Abp.Http.Modeling.ActionApiDescriptionModel}", + "type": "[Volo.Abp.PermissionManagement.PermissionGrantInfoDto]", + "typeSimple": "[Volo.Abp.PermissionManagement.PermissionGrantInfoDto]", "isRequired": false, "minLength": null, "maxLength": null, @@ -7864,7 +8017,7 @@ } ] }, - "Volo.Abp.Http.Modeling.ControllerInterfaceApiDescriptionModel": { + "Volo.Abp.PermissionManagement.ProviderInfoDto": { "baseType": null, "isEnum": false, "enumNames": null, @@ -7872,7 +8025,7 @@ "genericArguments": null, "properties": [ { - "name": "Type", + "name": "ProviderName", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -7884,7 +8037,7 @@ "regex": null }, { - "name": "Name", + "name": "ProviderKey", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -7894,22 +8047,10 @@ "minimum": null, "maximum": null, "regex": null - }, - { - "name": "Methods", - "jsonName": null, - "type": "[Volo.Abp.Http.Modeling.InterfaceMethodApiDescriptionModel]", - "typeSimple": "[Volo.Abp.Http.Modeling.InterfaceMethodApiDescriptionModel]", - "isRequired": false, - "minLength": null, - "maxLength": null, - "minimum": null, - "maximum": null, - "regex": null } ] }, - "Volo.Abp.Http.Modeling.InterfaceMethodApiDescriptionModel": { + "Volo.Abp.PermissionManagement.UpdatePermissionDto": { "baseType": null, "isEnum": false, "enumNames": null, @@ -7929,22 +8070,31 @@ "regex": null }, { - "name": "ParametersOnMethod", + "name": "IsGranted", "jsonName": null, - "type": "[Volo.Abp.Http.Modeling.MethodParameterApiDescriptionModel]", - "typeSimple": "[Volo.Abp.Http.Modeling.MethodParameterApiDescriptionModel]", + "type": "System.Boolean", + "typeSimple": "boolean", "isRequired": false, "minLength": null, "maxLength": null, "minimum": null, "maximum": null, "regex": null - }, + } + ] + }, + "Volo.Abp.PermissionManagement.UpdatePermissionsDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ { - "name": "ReturnValue", + "name": "Permissions", "jsonName": null, - "type": "Volo.Abp.Http.Modeling.ReturnValueApiDescriptionModel", - "typeSimple": "Volo.Abp.Http.Modeling.ReturnValueApiDescriptionModel", + "type": "[Volo.Abp.PermissionManagement.UpdatePermissionDto]", + "typeSimple": "[Volo.Abp.PermissionManagement.UpdatePermissionDto]", "isRequired": false, "minLength": null, "maxLength": null, @@ -7954,7 +8104,7 @@ } ] }, - "Volo.Abp.Http.Modeling.MethodParameterApiDescriptionModel": { + "Volo.Abp.SettingManagement.EmailSettingsDto": { "baseType": null, "isEnum": false, "enumNames": null, @@ -7962,7 +8112,7 @@ "genericArguments": null, "properties": [ { - "name": "Name", + "name": "SmtpHost", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -7974,7 +8124,19 @@ "regex": null }, { - "name": "TypeAsString", + "name": "SmtpPort", + "jsonName": null, + "type": "System.Int32", + "typeSimple": "number", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "SmtpUserName", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -7986,7 +8148,7 @@ "regex": null }, { - "name": "Type", + "name": "SmtpPassword", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -7998,7 +8160,7 @@ "regex": null }, { - "name": "TypeSimple", + "name": "SmtpDomain", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -8010,7 +8172,7 @@ "regex": null }, { - "name": "IsOptional", + "name": "SmtpEnableSsl", "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", @@ -8022,28 +8184,19 @@ "regex": null }, { - "name": "DefaultValue", + "name": "SmtpUseDefaultCredentials", "jsonName": null, - "type": "System.Object", - "typeSimple": "object", + "type": "System.Boolean", + "typeSimple": "boolean", "isRequired": false, "minLength": null, "maxLength": null, "minimum": null, "maximum": null, "regex": null - } - ] - }, - "Volo.Abp.Http.Modeling.ReturnValueApiDescriptionModel": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ + }, { - "name": "Type", + "name": "DefaultFromAddress", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -8055,7 +8208,7 @@ "regex": null }, { - "name": "TypeSimple", + "name": "DefaultFromDisplayName", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -8068,7 +8221,7 @@ } ] }, - "Volo.Abp.Http.Modeling.ActionApiDescriptionModel": { + "Volo.Abp.SettingManagement.SendTestEmailInput": { "baseType": null, "isEnum": false, "enumNames": null, @@ -8076,11 +8229,11 @@ "genericArguments": null, "properties": [ { - "name": "UniqueName", + "name": "SenderEmailAddress", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false, + "isRequired": true, "minLength": null, "maxLength": null, "minimum": null, @@ -8088,11 +8241,11 @@ "regex": null }, { - "name": "Name", + "name": "TargetEmailAddress", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false, + "isRequired": true, "minLength": null, "maxLength": null, "minimum": null, @@ -8100,11 +8253,11 @@ "regex": null }, { - "name": "HttpMethod", + "name": "Subject", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false, + "isRequired": true, "minLength": null, "maxLength": null, "minimum": null, @@ -8112,7 +8265,7 @@ "regex": null }, { - "name": "Url", + "name": "Body", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -8122,48 +8275,93 @@ "minimum": null, "maximum": null, "regex": null + } + ] + }, + "Volo.Abp.SettingManagement.UpdateEmailSettingsDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "SmtpHost", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": 256, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "SupportedVersions", + "name": "SmtpPort", "jsonName": null, - "type": "[System.String]", - "typeSimple": "[string]", + "type": "System.Int32", + "typeSimple": "number", "isRequired": false, "minLength": null, "maxLength": null, + "minimum": "1", + "maximum": "65535", + "regex": null + }, + { + "name": "SmtpUserName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": 1024, "minimum": null, "maximum": null, "regex": null }, { - "name": "ParametersOnMethod", + "name": "SmtpPassword", "jsonName": null, - "type": "[Volo.Abp.Http.Modeling.MethodParameterApiDescriptionModel]", - "typeSimple": "[Volo.Abp.Http.Modeling.MethodParameterApiDescriptionModel]", + "type": "System.String", + "typeSimple": "string", "isRequired": false, "minLength": null, - "maxLength": null, + "maxLength": 1024, "minimum": null, "maximum": null, "regex": null }, { - "name": "Parameters", + "name": "SmtpDomain", "jsonName": null, - "type": "[Volo.Abp.Http.Modeling.ParameterApiDescriptionModel]", - "typeSimple": "[Volo.Abp.Http.Modeling.ParameterApiDescriptionModel]", + "type": "System.String", + "typeSimple": "string", "isRequired": false, "minLength": null, - "maxLength": null, + "maxLength": 1024, "minimum": null, "maximum": null, "regex": null }, { - "name": "ReturnValue", + "name": "SmtpEnableSsl", "jsonName": null, - "type": "Volo.Abp.Http.Modeling.ReturnValueApiDescriptionModel", - "typeSimple": "Volo.Abp.Http.Modeling.ReturnValueApiDescriptionModel", + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "SmtpUseDefaultCredentials", + "jsonName": null, + "type": "System.Boolean", + "typeSimple": "boolean", "isRequired": false, "minLength": null, "maxLength": null, @@ -8172,40 +8370,40 @@ "regex": null }, { - "name": "AllowAnonymous", + "name": "DefaultFromAddress", "jsonName": null, - "type": "System.Boolean?", - "typeSimple": "boolean?", - "isRequired": false, + "type": "System.String", + "typeSimple": "string", + "isRequired": true, "minLength": null, - "maxLength": null, + "maxLength": 1024, "minimum": null, "maximum": null, "regex": null }, { - "name": "ImplementFrom", + "name": "DefaultFromDisplayName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false, + "isRequired": true, "minLength": null, - "maxLength": null, + "maxLength": 1024, "minimum": null, "maximum": null, "regex": null } ] }, - "Volo.Abp.Http.Modeling.ParameterApiDescriptionModel": { - "baseType": null, + "Volo.Abp.TenantManagement.GetTenantsInput": { + "baseType": "Volo.Abp.Application.Dtos.PagedAndSortedResultRequestDto", "isEnum": false, "enumNames": null, "enumValues": null, "genericArguments": null, "properties": [ { - "name": "NameOnMethod", + "name": "Filter", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -8215,45 +8413,72 @@ "minimum": null, "maximum": null, "regex": null - }, + } + ] + }, + "Volo.Abp.TenantManagement.TenantCreateDto": { + "baseType": "Volo.Abp.TenantManagement.TenantCreateOrUpdateDtoBase", + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ { - "name": "Name", + "name": "AdminEmailAddress", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false, + "isRequired": true, "minLength": null, - "maxLength": null, + "maxLength": 256, "minimum": null, "maximum": null, "regex": null }, { - "name": "JsonName", + "name": "AdminPassword", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false, + "isRequired": true, "minLength": null, - "maxLength": null, + "maxLength": 128, "minimum": null, "maximum": null, "regex": null - }, + } + ] + }, + "Volo.Abp.TenantManagement.TenantCreateOrUpdateDtoBase": { + "baseType": "Volo.Abp.ObjectExtending.ExtensibleObject", + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ { - "name": "Type", + "name": "Name", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false, - "minLength": null, - "maxLength": null, + "isRequired": true, + "minLength": 0, + "maxLength": 64, "minimum": null, "maximum": null, "regex": null - }, + } + ] + }, + "Volo.Abp.TenantManagement.TenantDto": { + "baseType": "Volo.Abp.Application.Dtos.ExtensibleEntityDto", + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ { - "name": "TypeSimple", + "name": "Name", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -8265,34 +8490,52 @@ "regex": null }, { - "name": "IsOptional", + "name": "ConcurrencyStamp", "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", + "type": "System.String", + "typeSimple": "string", "isRequired": false, "minLength": null, "maxLength": null, "minimum": null, "maximum": null, "regex": null - }, + } + ] + }, + "Volo.Abp.TenantManagement.TenantUpdateDto": { + "baseType": "Volo.Abp.TenantManagement.TenantCreateOrUpdateDtoBase", + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ { - "name": "DefaultValue", + "name": "ConcurrencyStamp", "jsonName": null, - "type": "System.Object", - "typeSimple": "object", + "type": "System.String", + "typeSimple": "string", "isRequired": false, "minLength": null, "maxLength": null, "minimum": null, "maximum": null, "regex": null - }, + } + ] + }, + "Volo.Abp.Users.UserData": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ { - "name": "ConstraintTypes", + "name": "Id", "jsonName": null, - "type": "[System.String]", - "typeSimple": "[string]", + "type": "System.Guid", + "typeSimple": "string", "isRequired": false, "minLength": null, "maxLength": null, @@ -8301,10 +8544,10 @@ "regex": null }, { - "name": "BindingSourceId", + "name": "TenantId", "jsonName": null, - "type": "System.String", - "typeSimple": "string", + "type": "System.Guid?", + "typeSimple": "string?", "isRequired": false, "minLength": null, "maxLength": null, @@ -8313,7 +8556,7 @@ "regex": null }, { - "name": "DescriptorName", + "name": "UserName", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -8323,18 +8566,9 @@ "minimum": null, "maximum": null, "regex": null - } - ] - }, - "Volo.Abp.Http.Modeling.TypeApiDescriptionModel": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ + }, { - "name": "BaseType", + "name": "Name", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -8346,10 +8580,10 @@ "regex": null }, { - "name": "IsEnum", + "name": "Surname", "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", + "type": "System.String", + "typeSimple": "string", "isRequired": false, "minLength": null, "maxLength": null, @@ -8358,10 +8592,10 @@ "regex": null }, { - "name": "EnumNames", + "name": "IsActive", "jsonName": null, - "type": "[System.String]", - "typeSimple": "[string]", + "type": "System.Boolean", + "typeSimple": "boolean", "isRequired": false, "minLength": null, "maxLength": null, @@ -8370,10 +8604,10 @@ "regex": null }, { - "name": "EnumValues", + "name": "Email", "jsonName": null, - "type": "[System.Object]", - "typeSimple": "[object]", + "type": "System.String", + "typeSimple": "string", "isRequired": false, "minLength": null, "maxLength": null, @@ -8382,10 +8616,10 @@ "regex": null }, { - "name": "GenericArguments", + "name": "EmailConfirmed", "jsonName": null, - "type": "[System.String]", - "typeSimple": "[string]", + "type": "System.Boolean", + "typeSimple": "boolean", "isRequired": false, "minLength": null, "maxLength": null, @@ -8394,28 +8628,7 @@ "regex": null }, { - "name": "Properties", - "jsonName": null, - "type": "[Volo.Abp.Http.Modeling.PropertyApiDescriptionModel]", - "typeSimple": "[Volo.Abp.Http.Modeling.PropertyApiDescriptionModel]", - "isRequired": false, - "minLength": null, - "maxLength": null, - "minimum": null, - "maximum": null, - "regex": null - } - ] - }, - "Volo.Abp.Http.Modeling.PropertyApiDescriptionModel": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Name", + "name": "PhoneNumber", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -8427,10 +8640,10 @@ "regex": null }, { - "name": "JsonName", + "name": "PhoneNumberConfirmed", "jsonName": null, - "type": "System.String", - "typeSimple": "string", + "type": "System.Boolean", + "typeSimple": "boolean", "isRequired": false, "minLength": null, "maxLength": null, @@ -8439,19 +8652,28 @@ "regex": null }, { - "name": "Type", + "name": "ExtraProperties", "jsonName": null, - "type": "System.String", - "typeSimple": "string", + "type": "{System.String:System.Object}", + "typeSimple": "{string:object}", "isRequired": false, "minLength": null, "maxLength": null, "minimum": null, "maximum": null, "regex": null - }, + } + ] + }, + "Volo.Abp.Validation.StringValues.IStringValueType": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ { - "name": "TypeSimple", + "name": "Name", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -8463,10 +8685,10 @@ "regex": null }, { - "name": "IsRequired", + "name": "Item", "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", + "type": "System.Object", + "typeSimple": "object", "isRequired": false, "minLength": null, "maxLength": null, @@ -8475,10 +8697,10 @@ "regex": null }, { - "name": "MinLength", + "name": "Properties", "jsonName": null, - "type": "System.Int32?", - "typeSimple": "number?", + "type": "{System.String:System.Object}", + "typeSimple": "{string:object}", "isRequired": false, "minLength": null, "maxLength": null, @@ -8487,19 +8709,28 @@ "regex": null }, { - "name": "MaxLength", + "name": "Validator", "jsonName": null, - "type": "System.Int32?", - "typeSimple": "number?", + "type": "Volo.Abp.Validation.StringValues.IValueValidator", + "typeSimple": "Volo.Abp.Validation.StringValues.IValueValidator", "isRequired": false, "minLength": null, "maxLength": null, "minimum": null, "maximum": null, "regex": null - }, + } + ] + }, + "Volo.Abp.Validation.StringValues.IValueValidator": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ { - "name": "Minimum", + "name": "Name", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -8511,10 +8742,10 @@ "regex": null }, { - "name": "Maximum", + "name": "Item", "jsonName": null, - "type": "System.String", - "typeSimple": "string", + "type": "System.Object", + "typeSimple": "object", "isRequired": false, "minLength": null, "maxLength": null, @@ -8523,10 +8754,10 @@ "regex": null }, { - "name": "Regex", + "name": "Properties", "jsonName": null, - "type": "System.String", - "typeSimple": "string", + "type": "{System.String:System.Object}", + "typeSimple": "{string:object}", "isRequired": false, "minLength": null, "maxLength": null, diff --git a/npm/ng-packs/packages/core/src/lib/proxy/pages/abp/multi-tenancy/abp-tenant.service.ts b/npm/ng-packs/packages/core/src/lib/proxy/pages/abp/multi-tenancy/abp-tenant.service.ts index 810f9a0dfe..039ddc707e 100644 --- a/npm/ng-packs/packages/core/src/lib/proxy/pages/abp/multi-tenancy/abp-tenant.service.ts +++ b/npm/ng-packs/packages/core/src/lib/proxy/pages/abp/multi-tenancy/abp-tenant.service.ts @@ -1,30 +1,29 @@ -import { Injectable } from '@angular/core'; -import { RestService } from '../../../../services/rest.service'; -import type { FindTenantResultDto } from '../../../volo/abp/asp-net-core/mvc/multi-tenancy/models'; - -@Injectable({ - providedIn: 'root', -}) -export class AbpTenantService { - apiName = 'abp'; - - findTenantById = (id: string) => - this.restService.request( - { - method: 'GET', - url: `/api/abp/multi-tenancy/tenants/by-id/${id}`, - }, - { apiName: this.apiName }, - ); - - findTenantByName = (name: string) => - this.restService.request( - { - method: 'GET', - url: `/api/abp/multi-tenancy/tenants/by-name/${name}`, - }, - { apiName: this.apiName }, - ); - - constructor(private restService: RestService) {} -} +import { RestService } from '../../../../services'; +import { Rest } from '../../../../models'; +import { Injectable } from '@angular/core'; +import type { FindTenantResultDto } from '../../../volo/abp/asp-net-core/mvc/multi-tenancy/models'; + +@Injectable({ + providedIn: 'root', +}) +export class AbpTenantService { + apiName = 'abp'; + + + findTenantById = (id: string, config?: Partial) => + this.restService.request({ + method: 'GET', + url: `/api/abp/multi-tenancy/tenants/by-id/${id}`, + }, + { apiName: this.apiName,...config }); + + + findTenantByName = (name: string, config?: Partial) => + this.restService.request({ + method: 'GET', + url: `/api/abp/multi-tenancy/tenants/by-name/${name}`, + }, + { apiName: this.apiName,...config }); + + constructor(private restService: RestService) {} +} diff --git a/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/asp-net-core/mvc/api-exploring/abp-api-definition.service.ts b/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/asp-net-core/mvc/api-exploring/abp-api-definition.service.ts index bc0a929903..a331106214 100644 --- a/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/asp-net-core/mvc/api-exploring/abp-api-definition.service.ts +++ b/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/asp-net-core/mvc/api-exploring/abp-api-definition.service.ts @@ -1,25 +1,22 @@ -import { RestService } from '../../../../../../services/rest.service'; -import { Injectable } from '@angular/core'; -import type { - ApplicationApiDescriptionModel, - ApplicationApiDescriptionModelRequestDto, -} from '../../../http/modeling/models'; - -@Injectable({ - providedIn: 'root', -}) -export class AbpApiDefinitionService { - apiName = 'abp'; - - getByModel = (model: ApplicationApiDescriptionModelRequestDto) => - this.restService.request( - { - method: 'GET', - url: '/api/abp/api-definition', - params: { includeTypes: model.includeTypes }, - }, - { apiName: this.apiName }, - ); - - constructor(private restService: RestService) {} -} +import { RestService } from '../../../../../../services'; +import { Rest } from '../../../../../../models'; +import { Injectable } from '@angular/core'; +import type { ApplicationApiDescriptionModel, ApplicationApiDescriptionModelRequestDto } from '../../../http/modeling/models'; + +@Injectable({ + providedIn: 'root', +}) +export class AbpApiDefinitionService { + apiName = 'abp'; + + + getByModel = (model: ApplicationApiDescriptionModelRequestDto, config?: Partial) => + this.restService.request({ + method: 'GET', + url: '/api/abp/api-definition', + params: { includeTypes: model.includeTypes }, + }, + { apiName: this.apiName,...config }); + + constructor(private restService: RestService) {} +} diff --git a/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-configuration.service.ts b/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-configuration.service.ts index 54f16b4056..3c04af51fc 100644 --- a/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-configuration.service.ts +++ b/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-configuration.service.ts @@ -1,22 +1,22 @@ -import type { ApplicationConfigurationDto, ApplicationConfigurationRequestOptions } from './models'; -import { RestService } from '../../../../../../services/rest.service'; -import { Injectable } from '@angular/core'; - -@Injectable({ - providedIn: 'root', -}) -export class AbpApplicationConfigurationService { - apiName = 'abp'; - - get = (options: ApplicationConfigurationRequestOptions) => - this.restService.request( - { - method: 'GET', - url: '/api/abp/application-configuration', - params: { includeLocalizationResources: options.includeLocalizationResources }, - }, - { apiName: this.apiName }, - ); - - constructor(private restService: RestService) {} -} +import type { ApplicationConfigurationDto, ApplicationConfigurationRequestOptions } from './models'; +import { RestService } from '../../../../../../services'; +import { Rest } from '../../../../../../models'; +import { Injectable } from '@angular/core'; + +@Injectable({ + providedIn: 'root', +}) +export class AbpApplicationConfigurationService { + apiName = 'abp'; + + + get = (options: ApplicationConfigurationRequestOptions, config?: Partial) => + this.restService.request({ + method: 'GET', + url: '/api/abp/application-configuration', + params: { includeLocalizationResources: options.includeLocalizationResources }, + }, + { apiName: this.apiName, ...config }); + + constructor(private restService: RestService) { } +} diff --git a/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-localization.service.ts b/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-localization.service.ts index e7332ce739..3b9fd80584 100644 --- a/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-localization.service.ts +++ b/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-localization.service.ts @@ -1,22 +1,22 @@ -import type { ApplicationLocalizationDto, ApplicationLocalizationRequestDto } from './models'; -import { RestService } from '../../../../../../services/rest.service'; -import { Injectable } from '@angular/core'; - -@Injectable({ - providedIn: 'root', -}) -export class AbpApplicationLocalizationService { - apiName = 'abp'; - - get = (input: ApplicationLocalizationRequestDto) => - this.restService.request( - { - method: 'GET', - url: '/api/abp/application-localization', - params: { cultureName: input.cultureName, onlyDynamics: input.onlyDynamics }, - }, - { apiName: this.apiName }, - ); - - constructor(private restService: RestService) {} -} +import type { ApplicationLocalizationDto, ApplicationLocalizationRequestDto } from './models'; +import { RestService } from '../../../../../../services'; +import { Rest } from '../../../../../../models'; +import { Injectable } from '@angular/core'; + +@Injectable({ + providedIn: 'root', +}) +export class AbpApplicationLocalizationService { + apiName = 'abp'; + + + get = (input: ApplicationLocalizationRequestDto, config?: Partial) => + this.restService.request({ + method: 'GET', + url: '/api/abp/application-localization', + params: { cultureName: input.cultureName, onlyDynamics: input.onlyDynamics }, + }, + { apiName: this.apiName,...config }); + + constructor(private restService: RestService) {} +} diff --git a/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/models.ts b/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/models.ts index 0c40853e10..524c9a8c78 100644 --- a/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/models.ts +++ b/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/models.ts @@ -1,124 +1,125 @@ -import type { CurrentTenantDto, MultiTenancyInfoDto } from '../multi-tenancy/models'; -import type { ObjectExtensionsDto } from './object-extending/models'; -import type { LanguageInfo } from '../../../localization/models'; -import type { NameValue } from '../../../models'; - -export interface ApplicationAuthConfigurationDto { - grantedPolicies: Record; -} - -export interface ApplicationConfigurationDto { - localization: ApplicationLocalizationConfigurationDto; - auth: ApplicationAuthConfigurationDto; - setting: ApplicationSettingConfigurationDto; - currentUser: CurrentUserDto; - features: ApplicationFeatureConfigurationDto; - globalFeatures: ApplicationGlobalFeatureConfigurationDto; - multiTenancy: MultiTenancyInfoDto; - currentTenant: CurrentTenantDto; - timing: TimingDto; - clock: ClockDto; - objectExtensions: ObjectExtensionsDto; - extraProperties: Record; -} - -export interface ApplicationConfigurationRequestOptions { - includeLocalizationResources: boolean; -} - -export interface ApplicationFeatureConfigurationDto { - values: Record; -} - -export interface ApplicationGlobalFeatureConfigurationDto { - enabledFeatures: string[]; -} - -export interface ApplicationLocalizationConfigurationDto { - values: Record>; - resources: Record; - languages: LanguageInfo[]; - currentCulture: CurrentCultureDto; - defaultResourceName?: string; - languagesMap: Record; - languageFilesMap: Record; -} - -export interface ApplicationLocalizationDto { - resources: Record; -} - -export interface ApplicationLocalizationRequestDto { - cultureName: string; - onlyDynamics: boolean; -} - -export interface ApplicationLocalizationResourceDto { - texts: Record; - baseResources: string[]; -} - -export interface ApplicationSettingConfigurationDto { - values: Record; -} - -export interface ClockDto { - kind?: string; -} - -export interface CurrentCultureDto { - displayName?: string; - englishName?: string; - threeLetterIsoLanguageName?: string; - twoLetterIsoLanguageName?: string; - isRightToLeft: boolean; - cultureName?: string; - name?: string; - nativeName?: string; - dateTimeFormat: DateTimeFormatDto; -} - -export interface CurrentUserDto { - isAuthenticated: boolean; - id?: string; - tenantId?: string; - impersonatorUserId?: string; - impersonatorTenantId?: string; - impersonatorUserName?: string; - impersonatorTenantName?: string; - userName?: string; - name?: string; - surName?: string; - email?: string; - emailVerified: boolean; - phoneNumber?: string; - phoneNumberVerified: boolean; - roles: string[]; -} - -export interface DateTimeFormatDto { - calendarAlgorithmType?: string; - dateTimeFormatLong?: string; - shortDatePattern?: string; - fullDateTimePattern?: string; - dateSeparator?: string; - shortTimePattern?: string; - longTimePattern?: string; -} - -export interface IanaTimeZone { - timeZoneName?: string; -} - -export interface TimeZone { - iana: IanaTimeZone; - windows: WindowsTimeZone; -} - -export interface TimingDto { - timeZone: TimeZone; -} - -export interface WindowsTimeZone { - timeZoneId?: string; -} +import type { CurrentTenantDto, MultiTenancyInfoDto } from '../multi-tenancy/models'; +import type { ObjectExtensionsDto } from './object-extending/models'; +import type { LanguageInfo } from '../../../localization/models'; +import type { NameValue } from '../../../models'; + +export interface ApplicationAuthConfigurationDto { + grantedPolicies: Record; +} + +export interface ApplicationConfigurationDto { + localization: ApplicationLocalizationConfigurationDto; + auth: ApplicationAuthConfigurationDto; + setting: ApplicationSettingConfigurationDto; + currentUser: CurrentUserDto; + features: ApplicationFeatureConfigurationDto; + globalFeatures: ApplicationGlobalFeatureConfigurationDto; + multiTenancy: MultiTenancyInfoDto; + currentTenant: CurrentTenantDto; + timing: TimingDto; + clock: ClockDto; + objectExtensions: ObjectExtensionsDto; + extraProperties: Record; +} + +export interface ApplicationConfigurationRequestOptions { + includeLocalizationResources: boolean; +} + +export interface ApplicationFeatureConfigurationDto { + values: Record; +} + +export interface ApplicationGlobalFeatureConfigurationDto { + enabledFeatures: string[]; +} + +export interface ApplicationLocalizationConfigurationDto { + values: Record>; + resources: Record; + languages: LanguageInfo[]; + currentCulture: CurrentCultureDto; + defaultResourceName?: string; + languagesMap: Record; + languageFilesMap: Record; +} + +export interface ApplicationLocalizationDto { + resources: Record; + currentCulture: CurrentCultureDto; +} + +export interface ApplicationLocalizationRequestDto { + cultureName: string; + onlyDynamics: boolean; +} + +export interface ApplicationLocalizationResourceDto { + texts: Record; + baseResources: string[]; +} + +export interface ApplicationSettingConfigurationDto { + values: Record; +} + +export interface ClockDto { + kind?: string; +} + +export interface CurrentCultureDto { + displayName?: string; + englishName?: string; + threeLetterIsoLanguageName?: string; + twoLetterIsoLanguageName?: string; + isRightToLeft: boolean; + cultureName?: string; + name?: string; + nativeName?: string; + dateTimeFormat: DateTimeFormatDto; +} + +export interface CurrentUserDto { + isAuthenticated: boolean; + id?: string; + tenantId?: string; + impersonatorUserId?: string; + impersonatorTenantId?: string; + impersonatorUserName?: string; + impersonatorTenantName?: string; + userName?: string; + name?: string; + surName?: string; + email?: string; + emailVerified: boolean; + phoneNumber?: string; + phoneNumberVerified: boolean; + roles: string[]; +} + +export interface DateTimeFormatDto { + calendarAlgorithmType?: string; + dateTimeFormatLong?: string; + shortDatePattern?: string; + fullDateTimePattern?: string; + dateSeparator?: string; + shortTimePattern?: string; + longTimePattern?: string; +} + +export interface IanaTimeZone { + timeZoneName?: string; +} + +export interface TimeZone { + iana: IanaTimeZone; + windows: WindowsTimeZone; +} + +export interface TimingDto { + timeZone: TimeZone; +} + +export interface WindowsTimeZone { + timeZoneId?: string; +} diff --git a/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/object-extending/models.ts b/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/object-extending/models.ts index c72a9abc9b..2ccacb1114 100644 --- a/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/object-extending/models.ts +++ b/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/object-extending/models.ts @@ -1,87 +1,87 @@ - -export interface EntityExtensionDto { - properties: Record; - configuration: Record; -} - -export interface ExtensionEnumDto { - fields: ExtensionEnumFieldDto[]; - localizationResource?: string; -} - -export interface ExtensionEnumFieldDto { - name?: string; - value: object; -} - -export interface ExtensionPropertyApiCreateDto { - isAvailable: boolean; -} - -export interface ExtensionPropertyApiDto { - onGet: ExtensionPropertyApiGetDto; - onCreate: ExtensionPropertyApiCreateDto; - onUpdate: ExtensionPropertyApiUpdateDto; -} - -export interface ExtensionPropertyApiGetDto { - isAvailable: boolean; -} - -export interface ExtensionPropertyApiUpdateDto { - isAvailable: boolean; -} - -export interface ExtensionPropertyAttributeDto { - typeSimple?: string; - config: Record; -} - -export interface ExtensionPropertyDto { - type?: string; - typeSimple?: string; - displayName: LocalizableStringDto; - api: ExtensionPropertyApiDto; - ui: ExtensionPropertyUiDto; - attributes: ExtensionPropertyAttributeDto[]; - configuration: Record; - defaultValue: object; -} - -export interface ExtensionPropertyUiDto { - onTable: ExtensionPropertyUiTableDto; - onCreateForm: ExtensionPropertyUiFormDto; - onEditForm: ExtensionPropertyUiFormDto; - lookup: ExtensionPropertyUiLookupDto; -} - -export interface ExtensionPropertyUiFormDto { - isVisible: boolean; -} - -export interface ExtensionPropertyUiLookupDto { - url?: string; - resultListPropertyName?: string; - displayPropertyName?: string; - valuePropertyName?: string; - filterParamName?: string; -} - -export interface ExtensionPropertyUiTableDto { - isVisible: boolean; -} - -export interface LocalizableStringDto { - name?: string; - resource?: string; -} - -export interface ModuleExtensionDto { - entities: Record; - configuration: Record; -} - -export interface ObjectExtensionsDto { - modules: Record; - enums: Record; -} + +export interface EntityExtensionDto { + properties: Record; + configuration: Record; +} + +export interface ExtensionEnumDto { + fields: ExtensionEnumFieldDto[]; + localizationResource?: string; +} + +export interface ExtensionEnumFieldDto { + name?: string; + value: object; +} + +export interface ExtensionPropertyApiCreateDto { + isAvailable: boolean; +} + +export interface ExtensionPropertyApiDto { + onGet: ExtensionPropertyApiGetDto; + onCreate: ExtensionPropertyApiCreateDto; + onUpdate: ExtensionPropertyApiUpdateDto; +} + +export interface ExtensionPropertyApiGetDto { + isAvailable: boolean; +} + +export interface ExtensionPropertyApiUpdateDto { + isAvailable: boolean; +} + +export interface ExtensionPropertyAttributeDto { + typeSimple?: string; + config: Record; +} + +export interface ExtensionPropertyDto { + type?: string; + typeSimple?: string; + displayName: LocalizableStringDto; + api: ExtensionPropertyApiDto; + ui: ExtensionPropertyUiDto; + attributes: ExtensionPropertyAttributeDto[]; + configuration: Record; + defaultValue: object; +} + +export interface ExtensionPropertyUiDto { + onTable: ExtensionPropertyUiTableDto; + onCreateForm: ExtensionPropertyUiFormDto; + onEditForm: ExtensionPropertyUiFormDto; + lookup: ExtensionPropertyUiLookupDto; +} + +export interface ExtensionPropertyUiFormDto { + isVisible: boolean; +} + +export interface ExtensionPropertyUiLookupDto { + url?: string; + resultListPropertyName?: string; + displayPropertyName?: string; + valuePropertyName?: string; + filterParamName?: string; +} + +export interface ExtensionPropertyUiTableDto { + isVisible: boolean; +} + +export interface LocalizableStringDto { + name?: string; + resource?: string; +} + +export interface ModuleExtensionDto { + entities: Record; + configuration: Record; +} + +export interface ObjectExtensionsDto { + modules: Record; + enums: Record; +} diff --git a/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/asp-net-core/mvc/multi-tenancy/models.ts b/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/asp-net-core/mvc/multi-tenancy/models.ts index 2c948099b4..f8ae6cbac4 100644 --- a/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/asp-net-core/mvc/multi-tenancy/models.ts +++ b/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/asp-net-core/mvc/multi-tenancy/models.ts @@ -1,17 +1,18 @@ - -export interface FindTenantResultDto { - success: boolean; - tenantId?: string; - name?: string; - isActive: boolean; -} - -export interface CurrentTenantDto { - id?: string; - name?: string; - isAvailable: boolean; -} - -export interface MultiTenancyInfoDto { - isEnabled: boolean; -} + +export interface FindTenantResultDto { + success: boolean; + tenantId?: string; + name?: string; + normalizedName?: string; + isActive: boolean; +} + +export interface CurrentTenantDto { + id?: string; + name?: string; + isAvailable: boolean; +} + +export interface MultiTenancyInfoDto { + isEnabled: boolean; +} diff --git a/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/http/modeling/models.ts b/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/http/modeling/models.ts index 56f290ad8c..393581071c 100644 --- a/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/http/modeling/models.ts +++ b/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/http/modeling/models.ts @@ -1,99 +1,100 @@ -export interface ActionApiDescriptionModel { - uniqueName?: string; - name?: string; - httpMethod?: string; - url?: string; - supportedVersions: string[]; - parametersOnMethod: MethodParameterApiDescriptionModel[]; - parameters: ParameterApiDescriptionModel[]; - returnValue: ReturnValueApiDescriptionModel; - allowAnonymous?: boolean; - implementFrom?: string; -} - -export interface ApplicationApiDescriptionModel { - modules: Record; - types: Record; -} - -export interface ApplicationApiDescriptionModelRequestDto { - includeTypes: boolean; -} - -export interface ControllerApiDescriptionModel { - controllerName?: string; - controllerGroupName?: string; - isRemoteService: boolean; - isIntegrationService: boolean; - apiVersion?: string; - type?: string; - interfaces: ControllerInterfaceApiDescriptionModel[]; - actions: Record; -} - -export interface ControllerInterfaceApiDescriptionModel { - type?: string; - name?: string; - methods: InterfaceMethodApiDescriptionModel[]; -} - -export interface InterfaceMethodApiDescriptionModel { - name?: string; - parametersOnMethod: MethodParameterApiDescriptionModel[]; - returnValue: ReturnValueApiDescriptionModel; -} - -export interface MethodParameterApiDescriptionModel { - name?: string; - typeAsString?: string; - type?: string; - typeSimple?: string; - isOptional: boolean; - defaultValue: object; -} - -export interface ModuleApiDescriptionModel { - rootPath?: string; - remoteServiceName?: string; - controllers: Record; -} - -export interface ParameterApiDescriptionModel { - nameOnMethod?: string; - name?: string; - jsonName?: string; - type?: string; - typeSimple?: string; - isOptional: boolean; - defaultValue: object; - constraintTypes: string[]; - bindingSourceId?: string; - descriptorName?: string; -} - -export interface PropertyApiDescriptionModel { - name?: string; - jsonName?: string; - type?: string; - typeSimple?: string; - isRequired: boolean; - minLength?: number; - maxLength?: number; - minimum?: string; - maximum?: string; - regex?: string; -} - -export interface ReturnValueApiDescriptionModel { - type?: string; - typeSimple?: string; -} - -export interface TypeApiDescriptionModel { - baseType?: string; - isEnum: boolean; - enumNames: string[]; - enumValues: object[]; - genericArguments: string[]; - properties: PropertyApiDescriptionModel[]; -} + +export interface ActionApiDescriptionModel { + uniqueName?: string; + name?: string; + httpMethod?: string; + url?: string; + supportedVersions: string[]; + parametersOnMethod: MethodParameterApiDescriptionModel[]; + parameters: ParameterApiDescriptionModel[]; + returnValue: ReturnValueApiDescriptionModel; + allowAnonymous?: boolean; + implementFrom?: string; +} + +export interface ApplicationApiDescriptionModel { + modules: Record; + types: Record; +} + +export interface ApplicationApiDescriptionModelRequestDto { + includeTypes: boolean; +} + +export interface ControllerApiDescriptionModel { + controllerName?: string; + controllerGroupName?: string; + isRemoteService: boolean; + isIntegrationService: boolean; + apiVersion?: string; + type?: string; + interfaces: ControllerInterfaceApiDescriptionModel[]; + actions: Record; +} + +export interface ControllerInterfaceApiDescriptionModel { + type?: string; + name?: string; + methods: InterfaceMethodApiDescriptionModel[]; +} + +export interface InterfaceMethodApiDescriptionModel { + name?: string; + parametersOnMethod: MethodParameterApiDescriptionModel[]; + returnValue: ReturnValueApiDescriptionModel; +} + +export interface MethodParameterApiDescriptionModel { + name?: string; + typeAsString?: string; + type?: string; + typeSimple?: string; + isOptional: boolean; + defaultValue: object; +} + +export interface ModuleApiDescriptionModel { + rootPath?: string; + remoteServiceName?: string; + controllers: Record; +} + +export interface ParameterApiDescriptionModel { + nameOnMethod?: string; + name?: string; + jsonName?: string; + type?: string; + typeSimple?: string; + isOptional: boolean; + defaultValue: object; + constraintTypes: string[]; + bindingSourceId?: string; + descriptorName?: string; +} + +export interface PropertyApiDescriptionModel { + name?: string; + jsonName?: string; + type?: string; + typeSimple?: string; + isRequired: boolean; + minLength?: number; + maxLength?: number; + minimum?: string; + maximum?: string; + regex?: string; +} + +export interface ReturnValueApiDescriptionModel { + type?: string; + typeSimple?: string; +} + +export interface TypeApiDescriptionModel { + baseType?: string; + isEnum: boolean; + enumNames: string[]; + enumValues: object[]; + genericArguments: string[]; + properties: PropertyApiDescriptionModel[]; +} diff --git a/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/localization/models.ts b/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/localization/models.ts index 27591bef35..7dff52d57b 100644 --- a/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/localization/models.ts +++ b/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/localization/models.ts @@ -1,7 +1,8 @@ -export interface LanguageInfo { - cultureName?: string; - uiCultureName?: string; - displayName?: string; - twoLetterISOLanguageName?: string; - flagIcon?: string; -} + +export interface LanguageInfo { + cultureName?: string; + uiCultureName?: string; + displayName?: string; + twoLetterISOLanguageName?: string; + flagIcon?: string; +} diff --git a/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/models.ts b/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/models.ts index 5f16437958..b643b5b13a 100644 --- a/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/models.ts +++ b/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/models.ts @@ -1,5 +1,5 @@ - -export interface NameValue { - name?: string; - value: T; -} + +export interface NameValue { + name?: string; + value: T; +} diff --git a/npm/ng-packs/packages/core/src/lib/services/config-state.service.ts b/npm/ng-packs/packages/core/src/lib/services/config-state.service.ts index 103aad6da2..97fcdbc40b 100644 --- a/npm/ng-packs/packages/core/src/lib/services/config-state.service.ts +++ b/npm/ng-packs/packages/core/src/lib/services/config-state.service.ts @@ -71,17 +71,17 @@ export class ConfigStateService { } refreshLocalization(lang: string): Observable { - if (this.includeLocalizationResources) { + if(this.includeLocalizationResources){ return this.refreshAppState().pipe(map(() => null)); - } else { - return this.getlocalizationResource(lang) - .pipe( - tap(result => - this.store.patch({ localization: { ...this.store.state.localization, ...result } }), - ), - ) - .pipe(map(() => null)); } + + return this.getlocalizationResource(lang) + .pipe( + tap(result => + this.store.patch({ localization: { ...this.store.state.localization, ...result } }), + ), + ) + .pipe(map(() => null)); } getOne$(key: K) { @@ -145,7 +145,7 @@ export class ConfigStateService { return keys.reduce((acc, key) => ({ ...acc, [key]: features.values[key] }), {}); } - getFeatures$(keys: string[]): Observable<{ [key: string]: string } | undefined> { + getFeatures$(keys: string[]): Observable<{ [key: string]: string; } | undefined> { return this.store.sliceState(({ features }) => { if (!features?.values) return; diff --git a/npm/ng-packs/packages/core/src/lib/services/localization.service.ts b/npm/ng-packs/packages/core/src/lib/services/localization.service.ts index 8305c35c9c..6a6fbdbc46 100644 --- a/npm/ng-packs/packages/core/src/lib/services/localization.service.ts +++ b/npm/ng-packs/packages/core/src/lib/services/localization.service.ts @@ -134,7 +134,7 @@ export class LocalizationService { filter( lang => this.configState.getDeep('localization.currentCulture.cultureName') !== lang, ), - switchMap(lang => this.configState.refreshAppState().pipe(map(() => lang))), + switchMap(lang => this.configState.refreshLocalization(lang).pipe(map(() => lang))), filter(Boolean), switchMap(lang => from(this.registerLocale(lang).then(() => lang))), ) diff --git a/npm/ng-packs/packages/feature-management/package.json b/npm/ng-packs/packages/feature-management/package.json index 9fd92316f8..e6ef425146 100644 --- a/npm/ng-packs/packages/feature-management/package.json +++ b/npm/ng-packs/packages/feature-management/package.json @@ -1,13 +1,13 @@ { "name": "@abp/ng.feature-management", - "version": "8.1.0-rc.1", + "version": "8.1.0-rc.2", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.theme.shared": "~8.1.0-rc.1", + "@abp/ng.theme.shared": "~8.1.0-rc.2", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/generators/package.json b/npm/ng-packs/packages/generators/package.json index fbe6cdd05a..37874a2021 100644 --- a/npm/ng-packs/packages/generators/package.json +++ b/npm/ng-packs/packages/generators/package.json @@ -1,6 +1,6 @@ { "name": "@abp/nx.generators", - "version": "8.1.0-rc.1", + "version": "8.1.0-rc.2", "homepage": "https://abp.io", "generators": "./generators.json", "type": "commonjs", diff --git a/npm/ng-packs/packages/identity/package.json b/npm/ng-packs/packages/identity/package.json index f88c5c4d94..109d6ac581 100644 --- a/npm/ng-packs/packages/identity/package.json +++ b/npm/ng-packs/packages/identity/package.json @@ -1,15 +1,15 @@ { "name": "@abp/ng.identity", - "version": "8.1.0-rc.1", + "version": "8.1.0-rc.2", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.components": "~8.1.0-rc.1", - "@abp/ng.permission-management": "~8.1.0-rc.1", - "@abp/ng.theme.shared": "~8.1.0-rc.1", + "@abp/ng.components": "~8.1.0-rc.2", + "@abp/ng.permission-management": "~8.1.0-rc.2", + "@abp/ng.theme.shared": "~8.1.0-rc.2", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/oauth/package.json b/npm/ng-packs/packages/oauth/package.json index 13257ab3fa..22f9891ab0 100644 --- a/npm/ng-packs/packages/oauth/package.json +++ b/npm/ng-packs/packages/oauth/package.json @@ -1,14 +1,14 @@ { "name": "@abp/ng.oauth", - "version": "8.1.0-rc.1", + "version": "8.1.0-rc.2", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.core": "~8.1.0-rc.1", - "@abp/utils": "~8.1.0-rc.1", + "@abp/ng.core": "~8.1.0-rc.2", + "@abp/utils": "~8.1.0-rc.2", "angular-oauth2-oidc": "^15.0.0", "just-clone": "^6.0.0", "just-compare": "^2.0.0", diff --git a/npm/ng-packs/packages/oauth/src/lib/services/remember-me.service.ts b/npm/ng-packs/packages/oauth/src/lib/services/remember-me.service.ts index 84d40d982a..ed938c5107 100644 --- a/npm/ng-packs/packages/oauth/src/lib/services/remember-me.service.ts +++ b/npm/ng-packs/packages/oauth/src/lib/services/remember-me.service.ts @@ -17,7 +17,7 @@ export class RememberMeService { } get() { - return Boolean(JSON.parse(this.localStorageService.getItem(this.#rememberMe))); + return Boolean(JSON.parse(this.localStorageService.getItem(this.#rememberMe) || 'false')); } getFromToken(accessToken: string) { diff --git a/npm/ng-packs/packages/oauth/src/lib/tests/remember-me.service.spec.ts b/npm/ng-packs/packages/oauth/src/lib/tests/remember-me.service.spec.ts new file mode 100644 index 0000000000..0ef7116e92 --- /dev/null +++ b/npm/ng-packs/packages/oauth/src/lib/tests/remember-me.service.spec.ts @@ -0,0 +1,71 @@ +import { SpectatorService, SpyObject, createServiceFactory } from "@ngneat/spectator/jest"; +import { RememberMeService } from "../services/remember-me.service"; +import { AbpLocalStorageService } from "@abp/ng.core"; + + + +describe('RememberMeService', () => { + const key = 'remember_me'; + let spectator: SpectatorService; + let rememberMeService: RememberMeService; + let abpLocalStorageService: SpyObject; + + const createService = createServiceFactory({ + service: RememberMeService, + mocks: [AbpLocalStorageService] + }); + + + beforeEach(() => { + spectator = createService(); + rememberMeService = spectator.inject(RememberMeService); + abpLocalStorageService = spectator.inject(AbpLocalStorageService); + }); + + it('should be created', () => { + expect(1).toBe(1); + expect(rememberMeService).toBeTruthy(); + expect(abpLocalStorageService).toBeTruthy(); + }); + + it('should set remember me', () => { + rememberMeService.set(true); + expect(abpLocalStorageService.setItem).toHaveBeenCalledWith(key, 'true'); + expect(abpLocalStorageService.setItem).toHaveBeenCalledTimes(1); + }); + + it('should remove remember me', () => { + rememberMeService.remove(); + expect(abpLocalStorageService.removeItem).toHaveBeenCalledWith(key); + expect(abpLocalStorageService.removeItem).toBeCalledTimes(1); + }); + + it('if notting has ben setted, it should return false value', () => { + expect(rememberMeService.get()).toBe(false); + }); + + it('should return true value', () => { + abpLocalStorageService.getItem.mockReturnValueOnce('true'); + expect(rememberMeService.get()).toBe(true); + }); + + it('should return false value', () => { + abpLocalStorageService.getItem.mockReturnValueOnce('false'); + expect(rememberMeService.get()).toBe(false); + }); + + it('should return true when parsed token is setted to true', () => { + const data = { "remember_me": "True" }; + const base64_encoded = btoa(JSON.stringify(data)); + const tokenWithValueTrue = "random." + base64_encoded + ".random"; + expect(rememberMeService.getFromToken(tokenWithValueTrue)).toBe(true); + }); + + it('should return false when value is not setted(undefined)', () => { + const data = {}; + const base64_encoded = btoa(JSON.stringify(data)); + const tokenWithValueTrue = "random." + base64_encoded + ".random"; + expect(rememberMeService.getFromToken(tokenWithValueTrue)).toBe(false); + }); + +}); \ No newline at end of file diff --git a/npm/ng-packs/packages/permission-management/package.json b/npm/ng-packs/packages/permission-management/package.json index 576ad50a60..06457c0320 100644 --- a/npm/ng-packs/packages/permission-management/package.json +++ b/npm/ng-packs/packages/permission-management/package.json @@ -1,13 +1,13 @@ { "name": "@abp/ng.permission-management", - "version": "8.1.0-rc.1", + "version": "8.1.0-rc.2", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.theme.shared": "~8.1.0-rc.1", + "@abp/ng.theme.shared": "~8.1.0-rc.2", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/schematics/package.json b/npm/ng-packs/packages/schematics/package.json index 0e9ae16198..49af50d833 100644 --- a/npm/ng-packs/packages/schematics/package.json +++ b/npm/ng-packs/packages/schematics/package.json @@ -1,6 +1,6 @@ { "name": "@abp/ng.schematics", - "version": "8.1.0-rc.1", + "version": "8.1.0-rc.2", "author": "", "schematics": "./collection.json", "dependencies": { diff --git a/npm/ng-packs/packages/setting-management/package.json b/npm/ng-packs/packages/setting-management/package.json index 2c3f1fdf1b..a81929ca1b 100644 --- a/npm/ng-packs/packages/setting-management/package.json +++ b/npm/ng-packs/packages/setting-management/package.json @@ -1,14 +1,14 @@ { "name": "@abp/ng.setting-management", - "version": "8.1.0-rc.1", + "version": "8.1.0-rc.2", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.components": "~8.1.0-rc.1", - "@abp/ng.theme.shared": "~8.1.0-rc.1", + "@abp/ng.components": "~8.1.0-rc.2", + "@abp/ng.theme.shared": "~8.1.0-rc.2", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/tenant-management/package.json b/npm/ng-packs/packages/tenant-management/package.json index 8d7c304034..0bce12ac54 100644 --- a/npm/ng-packs/packages/tenant-management/package.json +++ b/npm/ng-packs/packages/tenant-management/package.json @@ -1,14 +1,14 @@ { "name": "@abp/ng.tenant-management", - "version": "8.1.0-rc.1", + "version": "8.1.0-rc.2", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.feature-management": "~8.1.0-rc.1", - "@abp/ng.theme.shared": "~8.1.0-rc.1", + "@abp/ng.feature-management": "~8.1.0-rc.2", + "@abp/ng.theme.shared": "~8.1.0-rc.2", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/theme-basic/package.json b/npm/ng-packs/packages/theme-basic/package.json index b05c94ba71..754a21f9c9 100644 --- a/npm/ng-packs/packages/theme-basic/package.json +++ b/npm/ng-packs/packages/theme-basic/package.json @@ -1,14 +1,14 @@ { "name": "@abp/ng.theme.basic", - "version": "8.1.0-rc.1", + "version": "8.1.0-rc.2", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.account.core": "~8.1.0-rc.1", - "@abp/ng.theme.shared": "~8.1.0-rc.1", + "@abp/ng.account.core": "~8.1.0-rc.2", + "@abp/ng.theme.shared": "~8.1.0-rc.2", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/theme-shared/package.json b/npm/ng-packs/packages/theme-shared/package.json index 41128d6b8d..4c70e27446 100644 --- a/npm/ng-packs/packages/theme-shared/package.json +++ b/npm/ng-packs/packages/theme-shared/package.json @@ -1,13 +1,13 @@ { "name": "@abp/ng.theme.shared", - "version": "8.1.0-rc.1", + "version": "8.1.0-rc.2", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.core": "~8.1.0-rc.1", + "@abp/ng.core": "~8.1.0-rc.2", "@fortawesome/fontawesome-free": "^5.15.4", "@ng-bootstrap/ng-bootstrap": "~16.0.0", "@ngx-validate/core": "^0.2.0", diff --git a/npm/ng-packs/packages/theme-shared/src/lib/tests/loader-bar.component.spec.ts b/npm/ng-packs/packages/theme-shared/src/lib/tests/loader-bar.component.spec.ts index db468c4a6d..e2904e33f1 100644 --- a/npm/ng-packs/packages/theme-shared/src/lib/tests/loader-bar.component.spec.ts +++ b/npm/ng-packs/packages/theme-shared/src/lib/tests/loader-bar.component.spec.ts @@ -7,6 +7,7 @@ import { LoaderBarComponent } from '../components/loader-bar/loader-bar.componen describe('LoaderBarComponent', () => { let spectator: Spectator; + let router: Router; const events$ = new Subject(); const createComponent = createComponentFactory({ diff --git a/npm/packs/anchor-js/package.json b/npm/packs/anchor-js/package.json index 0a371b83d0..b304d291a9 100644 --- a/npm/packs/anchor-js/package.json +++ b/npm/packs/anchor-js/package.json @@ -1,11 +1,11 @@ { - "version": "8.1.0-rc.1", + "version": "8.1.0-rc.2", "name": "@abp/anchor-js", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~8.1.0-rc.1", + "@abp/core": "~8.1.0-rc.2", "anchor-js": "^4.3.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/aspnetcore.components.server.basictheme/package.json b/npm/packs/aspnetcore.components.server.basictheme/package.json index 76704c44ac..9e8d41dc17 100644 --- a/npm/packs/aspnetcore.components.server.basictheme/package.json +++ b/npm/packs/aspnetcore.components.server.basictheme/package.json @@ -1,11 +1,11 @@ { - "version": "8.1.0-rc.1", + "version": "8.1.0-rc.2", "name": "@abp/aspnetcore.components.server.basictheme", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/aspnetcore.components.server.theming": "~8.1.0-rc.1" + "@abp/aspnetcore.components.server.theming": "~8.1.0-rc.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", "homepage": "https://abp.io", diff --git a/npm/packs/aspnetcore.components.server.theming/package.json b/npm/packs/aspnetcore.components.server.theming/package.json index dfbcc0245b..6a80ac0f0f 100644 --- a/npm/packs/aspnetcore.components.server.theming/package.json +++ b/npm/packs/aspnetcore.components.server.theming/package.json @@ -1,12 +1,12 @@ { - "version": "8.1.0-rc.1", + "version": "8.1.0-rc.2", "name": "@abp/aspnetcore.components.server.theming", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/bootstrap": "~8.1.0-rc.1", - "@abp/font-awesome": "~8.1.0-rc.1" + "@abp/bootstrap": "~8.1.0-rc.2", + "@abp/font-awesome": "~8.1.0-rc.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", "homepage": "https://abp.io", diff --git a/npm/packs/aspnetcore.mvc.ui.theme.basic/package.json b/npm/packs/aspnetcore.mvc.ui.theme.basic/package.json index 24136213b4..1cdd7a25cf 100644 --- a/npm/packs/aspnetcore.mvc.ui.theme.basic/package.json +++ b/npm/packs/aspnetcore.mvc.ui.theme.basic/package.json @@ -1,5 +1,5 @@ { - "version": "8.1.0-rc.1", + "version": "8.1.0-rc.2", "name": "@abp/aspnetcore.mvc.ui.theme.basic", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.shared": "~8.1.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.shared": "~8.1.0-rc.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", "homepage": "https://abp.io", diff --git a/npm/packs/aspnetcore.mvc.ui.theme.shared/package.json b/npm/packs/aspnetcore.mvc.ui.theme.shared/package.json index 6168ebb227..02f3e75d5c 100644 --- a/npm/packs/aspnetcore.mvc.ui.theme.shared/package.json +++ b/npm/packs/aspnetcore.mvc.ui.theme.shared/package.json @@ -1,5 +1,5 @@ { - "version": "8.1.0-rc.1", + "version": "8.1.0-rc.2", "name": "@abp/aspnetcore.mvc.ui.theme.shared", "repository": { "type": "git", @@ -10,22 +10,22 @@ "access": "public" }, "dependencies": { - "@abp/aspnetcore.mvc.ui": "~8.1.0-rc.1", - "@abp/bootstrap": "~8.1.0-rc.1", - "@abp/bootstrap-datepicker": "~8.1.0-rc.1", - "@abp/bootstrap-daterangepicker": "~8.1.0-rc.1", - "@abp/datatables.net-bs5": "~8.1.0-rc.1", - "@abp/font-awesome": "~8.1.0-rc.1", - "@abp/jquery-form": "~8.1.0-rc.1", - "@abp/jquery-validation-unobtrusive": "~8.1.0-rc.1", - "@abp/lodash": "~8.1.0-rc.1", - "@abp/luxon": "~8.1.0-rc.1", - "@abp/malihu-custom-scrollbar-plugin": "~8.1.0-rc.1", - "@abp/moment": "~8.1.0-rc.1", - "@abp/select2": "~8.1.0-rc.1", - "@abp/sweetalert2": "~8.1.0-rc.1", - "@abp/timeago": "~8.1.0-rc.1", - "@abp/toastr": "~8.1.0-rc.1" + "@abp/aspnetcore.mvc.ui": "~8.1.0-rc.2", + "@abp/bootstrap": "~8.1.0-rc.2", + "@abp/bootstrap-datepicker": "~8.1.0-rc.2", + "@abp/bootstrap-daterangepicker": "~8.1.0-rc.2", + "@abp/datatables.net-bs5": "~8.1.0-rc.2", + "@abp/font-awesome": "~8.1.0-rc.2", + "@abp/jquery-form": "~8.1.0-rc.2", + "@abp/jquery-validation-unobtrusive": "~8.1.0-rc.2", + "@abp/lodash": "~8.1.0-rc.2", + "@abp/luxon": "~8.1.0-rc.2", + "@abp/malihu-custom-scrollbar-plugin": "~8.1.0-rc.2", + "@abp/moment": "~8.1.0-rc.2", + "@abp/select2": "~8.1.0-rc.2", + "@abp/sweetalert2": "~8.1.0-rc.2", + "@abp/timeago": "~8.1.0-rc.2", + "@abp/toastr": "~8.1.0-rc.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", "homepage": "https://abp.io", diff --git a/npm/packs/aspnetcore.mvc.ui/package-lock.json b/npm/packs/aspnetcore.mvc.ui/package-lock.json index 64583c55c7..44a8949a2d 100644 --- a/npm/packs/aspnetcore.mvc.ui/package-lock.json +++ b/npm/packs/aspnetcore.mvc.ui/package-lock.json @@ -1,6 +1,6 @@ { "name": "@abp/aspnetcore.mvc.ui", - "version": "8.1.0-rc.1", + "version": "8.1.0-rc.2", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/npm/packs/aspnetcore.mvc.ui/package.json b/npm/packs/aspnetcore.mvc.ui/package.json index d68673cd85..1ae7706bf7 100644 --- a/npm/packs/aspnetcore.mvc.ui/package.json +++ b/npm/packs/aspnetcore.mvc.ui/package.json @@ -1,5 +1,5 @@ { - "version": "8.1.0-rc.1", + "version": "8.1.0-rc.2", "name": "@abp/aspnetcore.mvc.ui", "repository": { "type": "git", diff --git a/npm/packs/blogging/package.json b/npm/packs/blogging/package.json index 72c827a1e8..4633a3e158 100644 --- a/npm/packs/blogging/package.json +++ b/npm/packs/blogging/package.json @@ -1,14 +1,14 @@ { - "version": "8.1.0-rc.1", + "version": "8.1.0-rc.2", "name": "@abp/blogging", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.shared": "~8.1.0-rc.1", - "@abp/owl.carousel": "~8.1.0-rc.1", - "@abp/prismjs": "~8.1.0-rc.1", - "@abp/tui-editor": "~8.1.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.shared": "~8.1.0-rc.2", + "@abp/owl.carousel": "~8.1.0-rc.2", + "@abp/prismjs": "~8.1.0-rc.2", + "@abp/tui-editor": "~8.1.0-rc.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", "homepage": "https://abp.io", diff --git a/npm/packs/bootstrap-datepicker/package.json b/npm/packs/bootstrap-datepicker/package.json index bc59cf3a05..fcfd130097 100644 --- a/npm/packs/bootstrap-datepicker/package.json +++ b/npm/packs/bootstrap-datepicker/package.json @@ -1,5 +1,5 @@ { - "version": "8.1.0-rc.1", + "version": "8.1.0-rc.2", "name": "@abp/bootstrap-datepicker", "repository": { "type": "git", diff --git a/npm/packs/bootstrap-daterangepicker/package.json b/npm/packs/bootstrap-daterangepicker/package.json index 996828afa1..9abbfef9e1 100644 --- a/npm/packs/bootstrap-daterangepicker/package.json +++ b/npm/packs/bootstrap-daterangepicker/package.json @@ -1,5 +1,5 @@ { - "version": "8.1.0-rc.1", + "version": "8.1.0-rc.2", "name": "@abp/bootstrap-daterangepicker", "repository": { "type": "git", diff --git a/npm/packs/bootstrap/package.json b/npm/packs/bootstrap/package.json index ebcaf71aaa..c267837563 100644 --- a/npm/packs/bootstrap/package.json +++ b/npm/packs/bootstrap/package.json @@ -1,5 +1,5 @@ { - "version": "8.1.0-rc.1", + "version": "8.1.0-rc.2", "name": "@abp/bootstrap", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/core": "~8.1.0-rc.1", + "@abp/core": "~8.1.0-rc.2", "bootstrap": "^5.1.3" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/chart.js/package.json b/npm/packs/chart.js/package.json index d9a0f4d361..b803aeb377 100644 --- a/npm/packs/chart.js/package.json +++ b/npm/packs/chart.js/package.json @@ -1,5 +1,5 @@ { - "version": "8.1.0-rc.1", + "version": "8.1.0-rc.2", "name": "@abp/chart.js", "publishConfig": { "access": "public" diff --git a/npm/packs/clipboard/package.json b/npm/packs/clipboard/package.json index a126c4edd5..f22223a0f2 100644 --- a/npm/packs/clipboard/package.json +++ b/npm/packs/clipboard/package.json @@ -1,11 +1,11 @@ { - "version": "8.1.0-rc.1", + "version": "8.1.0-rc.2", "name": "@abp/clipboard", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~8.1.0-rc.1", + "@abp/core": "~8.1.0-rc.2", "clipboard": "^2.0.8" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/cms-kit.admin/package.json b/npm/packs/cms-kit.admin/package.json index 6773e7ae2b..b3d5610f21 100644 --- a/npm/packs/cms-kit.admin/package.json +++ b/npm/packs/cms-kit.admin/package.json @@ -1,15 +1,15 @@ { - "version": "8.1.0-rc.1", + "version": "8.1.0-rc.2", "name": "@abp/cms-kit.admin", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/codemirror": "~8.1.0-rc.1", - "@abp/jstree": "~8.1.0-rc.1", - "@abp/slugify": "~8.1.0-rc.1", - "@abp/tui-editor": "~8.1.0-rc.1", - "@abp/uppy": "~8.1.0-rc.1" + "@abp/codemirror": "~8.1.0-rc.2", + "@abp/jstree": "~8.1.0-rc.2", + "@abp/slugify": "~8.1.0-rc.2", + "@abp/tui-editor": "~8.1.0-rc.2", + "@abp/uppy": "~8.1.0-rc.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", "homepage": "https://abp.io", diff --git a/npm/packs/cms-kit.public/package.json b/npm/packs/cms-kit.public/package.json index 9add7e8fd3..a46cc55372 100644 --- a/npm/packs/cms-kit.public/package.json +++ b/npm/packs/cms-kit.public/package.json @@ -1,12 +1,12 @@ { - "version": "8.1.0-rc.1", + "version": "8.1.0-rc.2", "name": "@abp/cms-kit.public", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/highlight.js": "~8.1.0-rc.1", - "@abp/star-rating-svg": "~8.1.0-rc.1" + "@abp/highlight.js": "~8.1.0-rc.2", + "@abp/star-rating-svg": "~8.1.0-rc.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", "homepage": "https://abp.io", diff --git a/npm/packs/cms-kit/package.json b/npm/packs/cms-kit/package.json index 9fef21e5a0..91c825a1a4 100644 --- a/npm/packs/cms-kit/package.json +++ b/npm/packs/cms-kit/package.json @@ -1,12 +1,12 @@ { - "version": "8.1.0-rc.1", + "version": "8.1.0-rc.2", "name": "@abp/cms-kit", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/cms-kit.admin": "~8.1.0-rc.1", - "@abp/cms-kit.public": "~8.1.0-rc.1" + "@abp/cms-kit.admin": "~8.1.0-rc.2", + "@abp/cms-kit.public": "~8.1.0-rc.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", "homepage": "https://abp.io", diff --git a/npm/packs/codemirror/package.json b/npm/packs/codemirror/package.json index 1855b04590..9b09f299f2 100644 --- a/npm/packs/codemirror/package.json +++ b/npm/packs/codemirror/package.json @@ -1,11 +1,11 @@ { - "version": "8.1.0-rc.1", + "version": "8.1.0-rc.2", "name": "@abp/codemirror", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~8.1.0-rc.1", + "@abp/core": "~8.1.0-rc.2", "codemirror": "^5.65.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/core/package.json b/npm/packs/core/package.json index 63be0d39a2..ae977fcc8c 100644 --- a/npm/packs/core/package.json +++ b/npm/packs/core/package.json @@ -1,5 +1,5 @@ { - "version": "8.1.0-rc.1", + "version": "8.1.0-rc.2", "name": "@abp/core", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/utils": "~8.1.0-rc.1" + "@abp/utils": "~8.1.0-rc.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", "homepage": "https://abp.io", diff --git a/npm/packs/cropperjs/package.json b/npm/packs/cropperjs/package.json index abad68c378..08a50e968d 100644 --- a/npm/packs/cropperjs/package.json +++ b/npm/packs/cropperjs/package.json @@ -1,11 +1,11 @@ { - "version": "8.1.0-rc.1", + "version": "8.1.0-rc.2", "name": "@abp/cropperjs", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~8.1.0-rc.1", + "@abp/core": "~8.1.0-rc.2", "cropperjs": "^1.5.12" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/datatables.net-bs4/package.json b/npm/packs/datatables.net-bs4/package.json index 3a3a9c4f1f..79a05d738e 100644 --- a/npm/packs/datatables.net-bs4/package.json +++ b/npm/packs/datatables.net-bs4/package.json @@ -1,5 +1,5 @@ { - "version": "8.1.0-rc.1", + "version": "8.1.0-rc.2", "name": "@abp/datatables.net-bs4", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/datatables.net": "~8.1.0-rc.1", + "@abp/datatables.net": "~8.1.0-rc.2", "datatables.net-bs4": "^1.11.4" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/datatables.net-bs5/package.json b/npm/packs/datatables.net-bs5/package.json index 257f100f56..9de49bd594 100644 --- a/npm/packs/datatables.net-bs5/package.json +++ b/npm/packs/datatables.net-bs5/package.json @@ -1,11 +1,11 @@ { - "version": "8.1.0-rc.1", + "version": "8.1.0-rc.2", "name": "@abp/datatables.net-bs5", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/datatables.net": "~8.1.0-rc.1", + "@abp/datatables.net": "~8.1.0-rc.2", "datatables.net-bs5": "^1.11.4" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/datatables.net/package.json b/npm/packs/datatables.net/package.json index 055388f322..1bebe6b51d 100644 --- a/npm/packs/datatables.net/package.json +++ b/npm/packs/datatables.net/package.json @@ -1,5 +1,5 @@ { - "version": "8.1.0-rc.1", + "version": "8.1.0-rc.2", "name": "@abp/datatables.net", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/jquery": "~8.1.0-rc.1", + "@abp/jquery": "~8.1.0-rc.2", "datatables.net": "^1.11.4" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/docs/package.json b/npm/packs/docs/package.json index 132b127c87..0dc3ff995f 100644 --- a/npm/packs/docs/package.json +++ b/npm/packs/docs/package.json @@ -1,15 +1,15 @@ { - "version": "8.1.0-rc.1", + "version": "8.1.0-rc.2", "name": "@abp/docs", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/anchor-js": "~8.1.0-rc.1", - "@abp/clipboard": "~8.1.0-rc.1", - "@abp/malihu-custom-scrollbar-plugin": "~8.1.0-rc.1", - "@abp/popper.js": "~8.1.0-rc.1", - "@abp/prismjs": "~8.1.0-rc.1" + "@abp/anchor-js": "~8.1.0-rc.2", + "@abp/clipboard": "~8.1.0-rc.2", + "@abp/malihu-custom-scrollbar-plugin": "~8.1.0-rc.2", + "@abp/popper.js": "~8.1.0-rc.2", + "@abp/prismjs": "~8.1.0-rc.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", "homepage": "https://abp.io", diff --git a/npm/packs/flag-icon-css/package.json b/npm/packs/flag-icon-css/package.json index a1c667749d..becd690fff 100644 --- a/npm/packs/flag-icon-css/package.json +++ b/npm/packs/flag-icon-css/package.json @@ -1,5 +1,5 @@ { - "version": "8.1.0-rc.1", + "version": "8.1.0-rc.2", "name": "@abp/flag-icon-css", "publishConfig": { "access": "public" diff --git a/npm/packs/flag-icons/package.json b/npm/packs/flag-icons/package.json index 4607f07e37..c87a4eaba3 100644 --- a/npm/packs/flag-icons/package.json +++ b/npm/packs/flag-icons/package.json @@ -1,5 +1,5 @@ { - "version": "8.1.0-rc.1", + "version": "8.1.0-rc.2", "name": "@abp/flag-icons", "publishConfig": { "access": "public" diff --git a/npm/packs/font-awesome/package.json b/npm/packs/font-awesome/package.json index 1f36ef320f..607d67c8a3 100644 --- a/npm/packs/font-awesome/package.json +++ b/npm/packs/font-awesome/package.json @@ -1,5 +1,5 @@ { - "version": "8.1.0-rc.1", + "version": "8.1.0-rc.2", "name": "@abp/font-awesome", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/core": "~8.1.0-rc.1", + "@abp/core": "~8.1.0-rc.2", "@fortawesome/fontawesome-free": "^6.5.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/highlight.js/package.json b/npm/packs/highlight.js/package.json index 90db9384f2..02ec055a4c 100644 --- a/npm/packs/highlight.js/package.json +++ b/npm/packs/highlight.js/package.json @@ -1,11 +1,11 @@ { - "version": "8.1.0-rc.1", + "version": "8.1.0-rc.2", "name": "@abp/highlight.js", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~8.1.0-rc.1", + "@abp/core": "~8.1.0-rc.2", "@highlightjs/cdn-assets": "~11.4.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/jquery-form/package.json b/npm/packs/jquery-form/package.json index cfdaf3aeb3..66b68d4b71 100644 --- a/npm/packs/jquery-form/package.json +++ b/npm/packs/jquery-form/package.json @@ -1,5 +1,5 @@ { - "version": "8.1.0-rc.1", + "version": "8.1.0-rc.2", "name": "@abp/jquery-form", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/jquery": "~8.1.0-rc.1", + "@abp/jquery": "~8.1.0-rc.2", "jquery-form": "^4.3.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/jquery-validation-unobtrusive/package.json b/npm/packs/jquery-validation-unobtrusive/package.json index 2c44b4a9c6..a58b4d1e6a 100644 --- a/npm/packs/jquery-validation-unobtrusive/package.json +++ b/npm/packs/jquery-validation-unobtrusive/package.json @@ -1,5 +1,5 @@ { - "version": "8.1.0-rc.1", + "version": "8.1.0-rc.2", "name": "@abp/jquery-validation-unobtrusive", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/jquery-validation": "~8.1.0-rc.1", + "@abp/jquery-validation": "~8.1.0-rc.2", "jquery-validation-unobtrusive": "^3.2.12" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/jquery-validation/package.json b/npm/packs/jquery-validation/package.json index aa6f195ce8..489defd481 100644 --- a/npm/packs/jquery-validation/package.json +++ b/npm/packs/jquery-validation/package.json @@ -1,5 +1,5 @@ { - "version": "8.1.0-rc.1", + "version": "8.1.0-rc.2", "name": "@abp/jquery-validation", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/jquery": "~8.1.0-rc.1", + "@abp/jquery": "~8.1.0-rc.2", "jquery-validation": "^1.19.3" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/jquery/package.json b/npm/packs/jquery/package.json index 8d1e40b5b3..3278a0ede0 100644 --- a/npm/packs/jquery/package.json +++ b/npm/packs/jquery/package.json @@ -1,5 +1,5 @@ { - "version": "8.1.0-rc.1", + "version": "8.1.0-rc.2", "name": "@abp/jquery", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/core": "~8.1.0-rc.1", + "@abp/core": "~8.1.0-rc.2", "jquery": "~3.6.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/jstree/package.json b/npm/packs/jstree/package.json index c6ca9c39cb..dc122bfc61 100644 --- a/npm/packs/jstree/package.json +++ b/npm/packs/jstree/package.json @@ -1,11 +1,11 @@ { - "version": "8.1.0-rc.1", + "version": "8.1.0-rc.2", "name": "@abp/jstree", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery": "~8.1.0-rc.1", + "@abp/jquery": "~8.1.0-rc.2", "jstree": "^3.3.12" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/lodash/package.json b/npm/packs/lodash/package.json index 4f010c6dfd..107df960a6 100644 --- a/npm/packs/lodash/package.json +++ b/npm/packs/lodash/package.json @@ -1,5 +1,5 @@ { - "version": "8.1.0-rc.1", + "version": "8.1.0-rc.2", "name": "@abp/lodash", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/core": "~8.1.0-rc.1", + "@abp/core": "~8.1.0-rc.2", "lodash": "^4.17.21" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/luxon/package.json b/npm/packs/luxon/package.json index 6ae5028853..80860de4a2 100644 --- a/npm/packs/luxon/package.json +++ b/npm/packs/luxon/package.json @@ -1,5 +1,5 @@ { - "version": "8.1.0-rc.1", + "version": "8.1.0-rc.2", "name": "@abp/luxon", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/core": "~8.1.0-rc.1", + "@abp/core": "~8.1.0-rc.2", "luxon": "^2.3.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/malihu-custom-scrollbar-plugin/package.json b/npm/packs/malihu-custom-scrollbar-plugin/package.json index e4287c5f0a..c61782d83a 100644 --- a/npm/packs/malihu-custom-scrollbar-plugin/package.json +++ b/npm/packs/malihu-custom-scrollbar-plugin/package.json @@ -1,5 +1,5 @@ { - "version": "8.1.0-rc.1", + "version": "8.1.0-rc.2", "name": "@abp/malihu-custom-scrollbar-plugin", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/core": "~8.1.0-rc.1", + "@abp/core": "~8.1.0-rc.2", "malihu-custom-scrollbar-plugin": "^3.1.5" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/markdown-it/package.json b/npm/packs/markdown-it/package.json index 5dd507f20e..d482624930 100644 --- a/npm/packs/markdown-it/package.json +++ b/npm/packs/markdown-it/package.json @@ -1,11 +1,11 @@ { - "version": "8.1.0-rc.1", + "version": "8.1.0-rc.2", "name": "@abp/markdown-it", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~8.1.0-rc.1", + "@abp/core": "~8.1.0-rc.2", "markdown-it": "^12.3.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/moment/package.json b/npm/packs/moment/package.json index 4e79ed026d..6081f13d91 100644 --- a/npm/packs/moment/package.json +++ b/npm/packs/moment/package.json @@ -1,5 +1,5 @@ { - "version": "8.1.0-rc.1", + "version": "8.1.0-rc.2", "name": "@abp/moment", "repository": { "type": "git", diff --git a/npm/packs/owl.carousel/package.json b/npm/packs/owl.carousel/package.json index eb7838e2cf..42c3c9c065 100644 --- a/npm/packs/owl.carousel/package.json +++ b/npm/packs/owl.carousel/package.json @@ -1,11 +1,11 @@ { - "version": "8.1.0-rc.1", + "version": "8.1.0-rc.2", "name": "@abp/owl.carousel", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~8.1.0-rc.1", + "@abp/core": "~8.1.0-rc.2", "owl.carousel": "^2.3.4" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/popper.js/package.json b/npm/packs/popper.js/package.json index b018d7a55d..20aa1417c1 100644 --- a/npm/packs/popper.js/package.json +++ b/npm/packs/popper.js/package.json @@ -1,11 +1,11 @@ { - "version": "8.1.0-rc.1", + "version": "8.1.0-rc.2", "name": "@abp/popper.js", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~8.1.0-rc.1", + "@abp/core": "~8.1.0-rc.2", "@popperjs/core": "^2.11.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/prismjs/package.json b/npm/packs/prismjs/package.json index 91d0603628..c2d94c0ece 100644 --- a/npm/packs/prismjs/package.json +++ b/npm/packs/prismjs/package.json @@ -1,12 +1,12 @@ { - "version": "8.1.0-rc.1", + "version": "8.1.0-rc.2", "name": "@abp/prismjs", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/clipboard": "~8.1.0-rc.1", - "@abp/core": "~8.1.0-rc.1", + "@abp/clipboard": "~8.1.0-rc.2", + "@abp/core": "~8.1.0-rc.2", "prismjs": "^1.26.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/qrcode/package.json b/npm/packs/qrcode/package.json index d689aa9975..cdf5d8b00a 100644 --- a/npm/packs/qrcode/package.json +++ b/npm/packs/qrcode/package.json @@ -1,5 +1,5 @@ { - "version": "8.1.0-rc.1", + "version": "8.1.0-rc.2", "name": "@abp/qrcode", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/core": "~8.1.0-rc.1" + "@abp/core": "~8.1.0-rc.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", "homepage": "https://abp.io", diff --git a/npm/packs/select2/package.json b/npm/packs/select2/package.json index 0e925751c9..717511d5de 100644 --- a/npm/packs/select2/package.json +++ b/npm/packs/select2/package.json @@ -1,5 +1,5 @@ { - "version": "8.1.0-rc.1", + "version": "8.1.0-rc.2", "name": "@abp/select2", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/core": "~8.1.0-rc.1", + "@abp/core": "~8.1.0-rc.2", "select2": "^4.0.13" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/signalr/package.json b/npm/packs/signalr/package.json index bda15c4eca..d90ca8cdb3 100644 --- a/npm/packs/signalr/package.json +++ b/npm/packs/signalr/package.json @@ -1,11 +1,11 @@ { - "version": "8.1.0-rc.1", + "version": "8.1.0-rc.2", "name": "@abp/signalr", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~8.1.0-rc.1", + "@abp/core": "~8.1.0-rc.2", "@microsoft/signalr": "~6.0.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/slugify/package.json b/npm/packs/slugify/package.json index 134ee31e9b..d828f72693 100644 --- a/npm/packs/slugify/package.json +++ b/npm/packs/slugify/package.json @@ -1,5 +1,5 @@ { - "version": "8.1.0-rc.1", + "version": "8.1.0-rc.2", "name": "@abp/slugify", "publishConfig": { "access": "public" diff --git a/npm/packs/star-rating-svg/package.json b/npm/packs/star-rating-svg/package.json index ac11eb506b..8fbbc11276 100644 --- a/npm/packs/star-rating-svg/package.json +++ b/npm/packs/star-rating-svg/package.json @@ -1,11 +1,11 @@ { - "version": "8.1.0-rc.1", + "version": "8.1.0-rc.2", "name": "@abp/star-rating-svg", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery": "~8.1.0-rc.1", + "@abp/jquery": "~8.1.0-rc.2", "star-rating-svg": "^3.5.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/sweetalert2/package.json b/npm/packs/sweetalert2/package.json index 12a90ea195..0a6143509f 100644 --- a/npm/packs/sweetalert2/package.json +++ b/npm/packs/sweetalert2/package.json @@ -1,5 +1,5 @@ { - "version": "8.1.0-rc.1", + "version": "8.1.0-rc.2", "name": "@abp/sweetalert2", "publishConfig": { "access": "public" @@ -10,7 +10,7 @@ "directory": "npm/packs/sweetalert2" }, "dependencies": { - "@abp/core": "~8.1.0-rc.1", + "@abp/core": "~8.1.0-rc.2", "sweetalert2": "^11.3.6" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/timeago/package.json b/npm/packs/timeago/package.json index c615b485cf..81c33caf70 100644 --- a/npm/packs/timeago/package.json +++ b/npm/packs/timeago/package.json @@ -1,5 +1,5 @@ { - "version": "8.1.0-rc.1", + "version": "8.1.0-rc.2", "name": "@abp/timeago", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/jquery": "~8.1.0-rc.1", + "@abp/jquery": "~8.1.0-rc.2", "timeago": "^1.6.7" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/toastr/package.json b/npm/packs/toastr/package.json index 5fe3eaca7f..e321c39581 100644 --- a/npm/packs/toastr/package.json +++ b/npm/packs/toastr/package.json @@ -1,5 +1,5 @@ { - "version": "8.1.0-rc.1", + "version": "8.1.0-rc.2", "name": "@abp/toastr", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/jquery": "~8.1.0-rc.1", + "@abp/jquery": "~8.1.0-rc.2", "toastr": "^2.1.4" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/tui-editor/package.json b/npm/packs/tui-editor/package.json index 623697d1a4..90edb48db4 100644 --- a/npm/packs/tui-editor/package.json +++ b/npm/packs/tui-editor/package.json @@ -1,12 +1,12 @@ { - "version": "8.1.0-rc.1", + "version": "8.1.0-rc.2", "name": "@abp/tui-editor", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery": "~8.1.0-rc.1", - "@abp/prismjs": "~8.1.0-rc.1" + "@abp/jquery": "~8.1.0-rc.2", + "@abp/prismjs": "~8.1.0-rc.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", "homepage": "https://abp.io", diff --git a/npm/packs/uppy/package.json b/npm/packs/uppy/package.json index 6bc8ee2e9e..bef80e7b6d 100644 --- a/npm/packs/uppy/package.json +++ b/npm/packs/uppy/package.json @@ -1,11 +1,11 @@ { - "version": "8.1.0-rc.1", + "version": "8.1.0-rc.2", "name": "@abp/uppy", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~8.1.0-rc.1", + "@abp/core": "~8.1.0-rc.2", "uppy": "^3.0.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/utils/package.json b/npm/packs/utils/package.json index c6225556b2..a7d0ac699d 100644 --- a/npm/packs/utils/package.json +++ b/npm/packs/utils/package.json @@ -1,6 +1,6 @@ { "name": "@abp/utils", - "version": "8.1.0-rc.1", + "version": "8.1.0-rc.2", "scripts": { "prepublishOnly": "yarn install --ignore-scripts && node prepublish.js", "ng": "ng", diff --git a/npm/packs/vee-validate/package.json b/npm/packs/vee-validate/package.json index af04049de7..f135b5e488 100644 --- a/npm/packs/vee-validate/package.json +++ b/npm/packs/vee-validate/package.json @@ -1,11 +1,11 @@ { - "version": "8.1.0-rc.1", + "version": "8.1.0-rc.2", "name": "@abp/vee-validate", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/vue": "~8.1.0-rc.1", + "@abp/vue": "~8.1.0-rc.2", "vee-validate": "~3.4.4" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/virtual-file-explorer/package.json b/npm/packs/virtual-file-explorer/package.json index 2c004ae012..54e0ebaf3b 100644 --- a/npm/packs/virtual-file-explorer/package.json +++ b/npm/packs/virtual-file-explorer/package.json @@ -1,12 +1,12 @@ { - "version": "8.1.0-rc.1", + "version": "8.1.0-rc.2", "name": "@abp/virtual-file-explorer", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/clipboard": "~8.1.0-rc.1", - "@abp/prismjs": "~8.1.0-rc.1" + "@abp/clipboard": "~8.1.0-rc.2", + "@abp/prismjs": "~8.1.0-rc.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", "homepage": "https://abp.io", diff --git a/npm/packs/vue/package.json b/npm/packs/vue/package.json index 9585bd5bcd..e87e5ef925 100644 --- a/npm/packs/vue/package.json +++ b/npm/packs/vue/package.json @@ -1,5 +1,5 @@ { - "version": "8.1.0-rc.1", + "version": "8.1.0-rc.2", "name": "@abp/vue", "publishConfig": { "access": "public" diff --git a/npm/packs/zxcvbn/package.json b/npm/packs/zxcvbn/package.json index e0c31073db..e004a461c7 100644 --- a/npm/packs/zxcvbn/package.json +++ b/npm/packs/zxcvbn/package.json @@ -1,11 +1,11 @@ { - "version": "8.1.0-rc.1", + "version": "8.1.0-rc.2", "name": "@abp/zxcvbn", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~8.1.0-rc.1", + "@abp/core": "~8.1.0-rc.2", "zxcvbn": "^4.4.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/source-code/Volo.Abp.Account.SourceCode/Volo.Abp.Account.SourceCode.zip b/source-code/Volo.Abp.Account.SourceCode/Volo.Abp.Account.SourceCode.zip index 9327876adb..7cc9d7a463 100644 Binary files a/source-code/Volo.Abp.Account.SourceCode/Volo.Abp.Account.SourceCode.zip and b/source-code/Volo.Abp.Account.SourceCode/Volo.Abp.Account.SourceCode.zip differ diff --git a/source-code/Volo.Abp.AuditLogging.SourceCode/Volo.Abp.AuditLogging.SourceCode.zip b/source-code/Volo.Abp.AuditLogging.SourceCode/Volo.Abp.AuditLogging.SourceCode.zip index d59e0138df..f3a287b40e 100644 Binary files a/source-code/Volo.Abp.AuditLogging.SourceCode/Volo.Abp.AuditLogging.SourceCode.zip and b/source-code/Volo.Abp.AuditLogging.SourceCode/Volo.Abp.AuditLogging.SourceCode.zip differ diff --git a/source-code/Volo.Abp.BackgroundJobs.SourceCode/Volo.Abp.BackgroundJobs.SourceCode.zip b/source-code/Volo.Abp.BackgroundJobs.SourceCode/Volo.Abp.BackgroundJobs.SourceCode.zip index f48eb518e4..564ba8c20b 100644 Binary files a/source-code/Volo.Abp.BackgroundJobs.SourceCode/Volo.Abp.BackgroundJobs.SourceCode.zip and b/source-code/Volo.Abp.BackgroundJobs.SourceCode/Volo.Abp.BackgroundJobs.SourceCode.zip differ diff --git a/source-code/Volo.Abp.BasicTheme.SourceCode/Volo.Abp.BasicTheme.SourceCode.zip b/source-code/Volo.Abp.BasicTheme.SourceCode/Volo.Abp.BasicTheme.SourceCode.zip index dab8137bd4..dd02bc783f 100644 Binary files a/source-code/Volo.Abp.BasicTheme.SourceCode/Volo.Abp.BasicTheme.SourceCode.zip and b/source-code/Volo.Abp.BasicTheme.SourceCode/Volo.Abp.BasicTheme.SourceCode.zip differ diff --git a/source-code/Volo.Abp.BlobStoring.Database.SourceCode/Volo.Abp.BlobStoring.Database.SourceCode.zip b/source-code/Volo.Abp.BlobStoring.Database.SourceCode/Volo.Abp.BlobStoring.Database.SourceCode.zip index 15286dbc50..a569afcdcc 100644 Binary files a/source-code/Volo.Abp.BlobStoring.Database.SourceCode/Volo.Abp.BlobStoring.Database.SourceCode.zip and b/source-code/Volo.Abp.BlobStoring.Database.SourceCode/Volo.Abp.BlobStoring.Database.SourceCode.zip differ diff --git a/source-code/Volo.Abp.FeatureManagement.SourceCode/Volo.Abp.FeatureManagement.SourceCode.zip b/source-code/Volo.Abp.FeatureManagement.SourceCode/Volo.Abp.FeatureManagement.SourceCode.zip index 573d039e2f..f476432165 100644 Binary files a/source-code/Volo.Abp.FeatureManagement.SourceCode/Volo.Abp.FeatureManagement.SourceCode.zip and b/source-code/Volo.Abp.FeatureManagement.SourceCode/Volo.Abp.FeatureManagement.SourceCode.zip differ diff --git a/source-code/Volo.Abp.Identity.SourceCode/Volo.Abp.Identity.SourceCode.zip b/source-code/Volo.Abp.Identity.SourceCode/Volo.Abp.Identity.SourceCode.zip index 9942330531..d6559f698d 100644 Binary files a/source-code/Volo.Abp.Identity.SourceCode/Volo.Abp.Identity.SourceCode.zip and b/source-code/Volo.Abp.Identity.SourceCode/Volo.Abp.Identity.SourceCode.zip differ diff --git a/source-code/Volo.Abp.IdentityServer.SourceCode/Volo.Abp.IdentityServer.SourceCode.zip b/source-code/Volo.Abp.IdentityServer.SourceCode/Volo.Abp.IdentityServer.SourceCode.zip index 9bb3470501..f453637141 100644 Binary files a/source-code/Volo.Abp.IdentityServer.SourceCode/Volo.Abp.IdentityServer.SourceCode.zip and b/source-code/Volo.Abp.IdentityServer.SourceCode/Volo.Abp.IdentityServer.SourceCode.zip differ diff --git a/source-code/Volo.Abp.OpenIddict.SourceCode/Volo.Abp.OpenIddict.SourceCode.zip b/source-code/Volo.Abp.OpenIddict.SourceCode/Volo.Abp.OpenIddict.SourceCode.zip index c52d8efbae..6f391d4767 100644 Binary files a/source-code/Volo.Abp.OpenIddict.SourceCode/Volo.Abp.OpenIddict.SourceCode.zip and b/source-code/Volo.Abp.OpenIddict.SourceCode/Volo.Abp.OpenIddict.SourceCode.zip differ diff --git a/source-code/Volo.Abp.PermissionManagement.SourceCode/Volo.Abp.PermissionManagement.SourceCode.zip b/source-code/Volo.Abp.PermissionManagement.SourceCode/Volo.Abp.PermissionManagement.SourceCode.zip index 9e611378bc..508801152a 100644 Binary files a/source-code/Volo.Abp.PermissionManagement.SourceCode/Volo.Abp.PermissionManagement.SourceCode.zip and b/source-code/Volo.Abp.PermissionManagement.SourceCode/Volo.Abp.PermissionManagement.SourceCode.zip differ diff --git a/source-code/Volo.Abp.SettingManagement.SourceCode/Volo.Abp.SettingManagement.SourceCode.zip b/source-code/Volo.Abp.SettingManagement.SourceCode/Volo.Abp.SettingManagement.SourceCode.zip index de29b25bb0..d75929ab07 100644 Binary files a/source-code/Volo.Abp.SettingManagement.SourceCode/Volo.Abp.SettingManagement.SourceCode.zip and b/source-code/Volo.Abp.SettingManagement.SourceCode/Volo.Abp.SettingManagement.SourceCode.zip differ diff --git a/source-code/Volo.Abp.TenantManagement.SourceCode/Volo.Abp.TenantManagement.SourceCode.zip b/source-code/Volo.Abp.TenantManagement.SourceCode/Volo.Abp.TenantManagement.SourceCode.zip index e5fcc5cb96..994aae1b3b 100644 Binary files a/source-code/Volo.Abp.TenantManagement.SourceCode/Volo.Abp.TenantManagement.SourceCode.zip and b/source-code/Volo.Abp.TenantManagement.SourceCode/Volo.Abp.TenantManagement.SourceCode.zip differ diff --git a/source-code/Volo.Abp.Users.SourceCode/Volo.Abp.Users.SourceCode.zip b/source-code/Volo.Abp.Users.SourceCode/Volo.Abp.Users.SourceCode.zip index df2d44dacd..125ccee1f5 100644 Binary files a/source-code/Volo.Abp.Users.SourceCode/Volo.Abp.Users.SourceCode.zip and b/source-code/Volo.Abp.Users.SourceCode/Volo.Abp.Users.SourceCode.zip differ diff --git a/source-code/Volo.Abp.VirtualFileExplorer.SourceCode/Volo.Abp.VirtualFileExplorer.SourceCode.zip b/source-code/Volo.Abp.VirtualFileExplorer.SourceCode/Volo.Abp.VirtualFileExplorer.SourceCode.zip index 91112fef8c..0600fcb214 100644 Binary files a/source-code/Volo.Abp.VirtualFileExplorer.SourceCode/Volo.Abp.VirtualFileExplorer.SourceCode.zip and b/source-code/Volo.Abp.VirtualFileExplorer.SourceCode/Volo.Abp.VirtualFileExplorer.SourceCode.zip differ diff --git a/source-code/Volo.Blogging.SourceCode/Volo.Blogging.SourceCode.zip b/source-code/Volo.Blogging.SourceCode/Volo.Blogging.SourceCode.zip index 3367087db5..7ac8693e8e 100644 Binary files a/source-code/Volo.Blogging.SourceCode/Volo.Blogging.SourceCode.zip and b/source-code/Volo.Blogging.SourceCode/Volo.Blogging.SourceCode.zip differ diff --git a/source-code/Volo.ClientSimulation.SourceCode/Volo.ClientSimulation.SourceCode.zip b/source-code/Volo.ClientSimulation.SourceCode/Volo.ClientSimulation.SourceCode.zip index b19b9e4c2b..6b4b7d00fd 100644 Binary files a/source-code/Volo.ClientSimulation.SourceCode/Volo.ClientSimulation.SourceCode.zip and b/source-code/Volo.ClientSimulation.SourceCode/Volo.ClientSimulation.SourceCode.zip differ diff --git a/source-code/Volo.CmsKit.SourceCode/Volo.CmsKit.SourceCode.zip b/source-code/Volo.CmsKit.SourceCode/Volo.CmsKit.SourceCode.zip index 14777e7910..c5292d00c2 100644 Binary files a/source-code/Volo.CmsKit.SourceCode/Volo.CmsKit.SourceCode.zip and b/source-code/Volo.CmsKit.SourceCode/Volo.CmsKit.SourceCode.zip differ diff --git a/source-code/Volo.Docs.SourceCode/Volo.Docs.SourceCode.zip b/source-code/Volo.Docs.SourceCode/Volo.Docs.SourceCode.zip index a247d0a6b4..2b0043e443 100644 Binary files a/source-code/Volo.Docs.SourceCode/Volo.Docs.SourceCode.zip and b/source-code/Volo.Docs.SourceCode/Volo.Docs.SourceCode.zip differ diff --git a/templates/app-nolayers/angular/package.json b/templates/app-nolayers/angular/package.json index a7a23449b9..9e1a000f0c 100644 --- a/templates/app-nolayers/angular/package.json +++ b/templates/app-nolayers/angular/package.json @@ -12,15 +12,15 @@ }, "private": true, "dependencies": { - "@abp/ng.account": "~8.1.0-rc.1", - "@abp/ng.components": "~8.1.0-rc.1", - "@abp/ng.core": "~8.1.0-rc.1", - "@abp/ng.oauth": "~8.1.0-rc.1", - "@abp/ng.identity": "~8.1.0-rc.1", - "@abp/ng.setting-management": "~8.1.0-rc.1", - "@abp/ng.tenant-management": "~8.1.0-rc.1", - "@abp/ng.theme.shared": "~8.1.0-rc.1", - "@abp/ng.theme.lepton-x": "~3.0.3", + "@abp/ng.account": "~8.1.0-rc.2", + "@abp/ng.components": "~8.1.0-rc.2", + "@abp/ng.core": "~8.1.0-rc.2", + "@abp/ng.oauth": "~8.1.0-rc.2", + "@abp/ng.identity": "~8.1.0-rc.2", + "@abp/ng.setting-management": "~8.1.0-rc.2", + "@abp/ng.tenant-management": "~8.1.0-rc.2", + "@abp/ng.theme.shared": "~8.1.0-rc.2", + "@abp/ng.theme.lepton-x": "~3.1.0-rc.2", "@angular/animations": "~17.1.0", "@angular/common": "~17.1.0", "@angular/compiler": "~17.1.0", @@ -36,7 +36,7 @@ "zone.js": "~0.14.0" }, "devDependencies": { - "@abp/ng.schematics": "~8.1.0-rc.1", + "@abp/ng.schematics": "~8.1.0-rc.2", "@angular-devkit/build-angular": "~17.1.0", "@angular-eslint/builder": "~17.2.0", "@angular-eslint/eslint-plugin": "~17.2.0", diff --git a/templates/app-nolayers/angular/src/assets/images/logo/logo-light-thumbnail.png b/templates/app-nolayers/angular/src/assets/images/logo/logo-light-thumbnail.png index 886c960864..ca3918481a 100644 Binary files a/templates/app-nolayers/angular/src/assets/images/logo/logo-light-thumbnail.png and b/templates/app-nolayers/angular/src/assets/images/logo/logo-light-thumbnail.png differ diff --git a/templates/app-nolayers/angular/src/assets/images/logo/logo-light.png b/templates/app-nolayers/angular/src/assets/images/logo/logo-light.png index 6ebd97e2b2..761fb4443d 100644 Binary files a/templates/app-nolayers/angular/src/assets/images/logo/logo-light.png and b/templates/app-nolayers/angular/src/assets/images/logo/logo-light.png differ diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/Components/App.razor b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/Components/App.razor new file mode 100644 index 0000000000..9f9aa51130 --- /dev/null +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/Components/App.razor @@ -0,0 +1,47 @@ +@using Volo.Abp.Localization +@using System.Globalization +@using Microsoft.Extensions.Hosting +@using Volo.Abp.AspNetCore.Components.Server.LeptonXLiteTheme.Bundling +@using Volo.Abp.AspNetCore.Components.Web.Theming.Bundling +@inject IHostEnvironment Env +@{ + var rtl = CultureHelper.IsRtl ? "rtl" : string.Empty; +} + + + + + + + + MyCompanyName.MyProjectName.Blazor.Server + + + + + + + + + + + + + + + + + + + diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/Pages/Index.razor b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/Components/Pages/Index.razor similarity index 100% rename from templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/Pages/Index.razor rename to templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/Components/Pages/Index.razor diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/Pages/Index.razor.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/Components/Pages/Index.razor.cs similarity index 100% rename from templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/Pages/Index.razor.cs rename to templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/Components/Pages/Index.razor.cs diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/Pages/Index.razor.css b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/Components/Pages/Index.razor.css similarity index 100% rename from templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/Pages/Index.razor.css rename to templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/Components/Pages/Index.razor.css diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/Pages/_ViewImports.cshtml b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/Components/Pages/_ViewImports.cshtml similarity index 100% rename from templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/Pages/_ViewImports.cshtml rename to templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/Components/Pages/_ViewImports.cshtml diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/Components/Routes.razor b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/Components/Routes.razor new file mode 100644 index 0000000000..2dd023ed6a --- /dev/null +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/Components/Routes.razor @@ -0,0 +1,14 @@ +@using Volo.Abp.AspNetCore.Components.Web.LeptonXLiteTheme.Themes.LeptonXLite +@using Volo.Abp.AspNetCore.Components.Web.Theming.Routing +@using Microsoft.Extensions.Options +@inject IOptions RouterOptions + + + + + + + + + + diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/MyProjectNameModule.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/MyProjectNameModule.cs index dc30b3568d..050b23af08 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/MyProjectNameModule.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/MyProjectNameModule.cs @@ -2,7 +2,9 @@ using Blazorise.Bootstrap5; using Blazorise.Icons.FontAwesome; using Microsoft.AspNetCore.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; +using Microsoft.Extensions.Options; using Microsoft.OpenApi.Models; +using MyCompanyName.MyProjectName.Blazor.Server.Mongo.Components; using MyCompanyName.MyProjectName.Data; using MyCompanyName.MyProjectName.Localization; using MyCompanyName.MyProjectName.Menus; @@ -10,6 +12,7 @@ using OpenIddict.Validation.AspNetCore; using Volo.Abp; using Volo.Abp.Account; using Volo.Abp.Account.Web; +using Volo.Abp.AspNetCore.Components.Server; using Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite; using Volo.Abp.AspNetCore.Components.Server.LeptonXLiteTheme; using Volo.Abp.AspNetCore.Components.Server.LeptonXLiteTheme.Bundling; @@ -146,6 +149,11 @@ public class MyProjectNameModule : AbpModule serverBuilder.AddProductionEncryptionAndSigningCertificate("openiddict.pfx", "00000000-0000-0000-0000-000000000000"); }); } + + PreConfigure(options => + { + options.IsBlazorWebApp = true; + }); } public override void ConfigureServices(ServiceConfigurationContext context) @@ -158,6 +166,10 @@ public class MyProjectNameModule : AbpModule context.Services.Replace(ServiceDescriptor.Singleton()); } + // Add services to the container. + context.Services.AddRazorComponents() + .AddInteractiveServerComponents(); + ConfigureAuthentication(context); ConfigureUrls(configuration); ConfigureBundles(); @@ -210,7 +222,7 @@ public class MyProjectNameModule : AbpModule { bundle.AddFiles("/blazor-global-styles.css"); //You can remove the following line if you don't use Blazor CSS isolation for components - bundle.AddFiles("/MyCompanyName.MyProjectName.Blazor.Server.styles.css"); + bundle.AddFiles("/MyCompanyName.MyProjectName.Blazor.Server.Mongo.styles.css"); } ); }); @@ -364,6 +376,7 @@ public class MyProjectNameModule : AbpModule app.UseUnitOfWork(); app.UseDynamicClaims(); + app.UseAntiforgery(); app.UseAuthorization(); app.UseSwagger(); @@ -374,6 +387,11 @@ public class MyProjectNameModule : AbpModule app.UseAuditing(); app.UseAbpSerilogEnrichers(); - app.UseConfiguredEndpoints(); + app.UseConfiguredEndpoints(builder => + { + builder.MapRazorComponents() + .AddInteractiveServerRenderMode() + .AddAdditionalAssemblies(builder.ServiceProvider.GetRequiredService>().Value.AdditionalAssemblies.ToArray()); + }); } } diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/Pages/_Host.cshtml b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/Pages/_Host.cshtml deleted file mode 100644 index 88b72298ab..0000000000 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/Pages/_Host.cshtml +++ /dev/null @@ -1,39 +0,0 @@ -@page "/" -@namespace MyCompanyName.MyProjectName.Blazor.Server.Pages -@using System.Globalization -@using Volo.Abp.AspNetCore.Components.Web.LeptonXLiteTheme.Themes.LeptonXLite -@using Volo.Abp.AspNetCore.Components.Server.LeptonXLiteTheme.Bundling -@using Volo.Abp.Localization -@{ - Layout = null; - var rtl = CultureHelper.IsRtl ? "rtl" : string.Empty; -} - - - - - - - MyCompanyName.MyProjectName.Blazor.Server - - - - - - - - -
- - An error has occurred. This application may no longer respond until reloaded. - - - An unhandled exception has occurred. See browser dev tools for details. - - Reload - 🗙 -
- - - - diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/_Imports.razor b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/_Imports.razor index fe27745143..ad711d0c79 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/_Imports.razor +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/_Imports.razor @@ -5,9 +5,10 @@ @using Microsoft.AspNetCore.Components.Routing @using Microsoft.AspNetCore.Components.Web @using Microsoft.AspNetCore.Components.Web.Virtualization +@using static Microsoft.AspNetCore.Components.Web.RenderMode @using Microsoft.JSInterop -@using MyCompanyName.MyProjectName.Blazor.Server +@using MyCompanyName.MyProjectName @using Blazorise @using Blazorise.DataGrid @using Volo.Abp.BlazoriseUI -@using Volo.Abp.BlazoriseUI.Components \ No newline at end of file +@using Volo.Abp.BlazoriseUI.Components diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/package.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/package.json index 04e99890ff..5bdfc41389 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/package.json +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/package.json @@ -3,7 +3,7 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.components.server.leptonxlitetheme": "~3.0.3", - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.0.3" + "@abp/aspnetcore.components.server.leptonxlitetheme": "~3.1.0-rc.2", + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.1.0-rc.2" } } diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Components/App.razor b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Components/App.razor new file mode 100644 index 0000000000..9f9aa51130 --- /dev/null +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Components/App.razor @@ -0,0 +1,47 @@ +@using Volo.Abp.Localization +@using System.Globalization +@using Microsoft.Extensions.Hosting +@using Volo.Abp.AspNetCore.Components.Server.LeptonXLiteTheme.Bundling +@using Volo.Abp.AspNetCore.Components.Web.Theming.Bundling +@inject IHostEnvironment Env +@{ + var rtl = CultureHelper.IsRtl ? "rtl" : string.Empty; +} + + + + + + + + MyCompanyName.MyProjectName.Blazor.Server + + + + + + + + + + + + + + + +
+ @if (Env.IsDevelopment()) + { + An unhandled exception has occurred. See browser dev tools for details. + } + else if (Env.IsStaging() || Env.IsProduction()) + { + An error has occurred. This application may no longer respond until reloaded. + } + Reload + 🗙 +
+ + + diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Pages/Index.razor b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Components/Pages/Index.razor similarity index 100% rename from templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Pages/Index.razor rename to templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Components/Pages/Index.razor diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Pages/Index.razor.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Components/Pages/Index.razor.cs similarity index 100% rename from templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Pages/Index.razor.cs rename to templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Components/Pages/Index.razor.cs diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Pages/Index.razor.css b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Components/Pages/Index.razor.css similarity index 100% rename from templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Pages/Index.razor.css rename to templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Components/Pages/Index.razor.css diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Pages/_ViewImports.cshtml b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Components/Pages/_ViewImports.cshtml similarity index 100% rename from templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Pages/_ViewImports.cshtml rename to templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Components/Pages/_ViewImports.cshtml diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Components/Routes.razor b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Components/Routes.razor new file mode 100644 index 0000000000..2dd023ed6a --- /dev/null +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Components/Routes.razor @@ -0,0 +1,14 @@ +@using Volo.Abp.AspNetCore.Components.Web.LeptonXLiteTheme.Themes.LeptonXLite +@using Volo.Abp.AspNetCore.Components.Web.Theming.Routing +@using Microsoft.Extensions.Options +@inject IOptions RouterOptions + + + + + + + + + + diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/MyProjectNameModule.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/MyProjectNameModule.cs index 742f061fa4..bd4b3a4481 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/MyProjectNameModule.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/MyProjectNameModule.cs @@ -2,7 +2,9 @@ using Blazorise.Bootstrap5; using Blazorise.Icons.FontAwesome; using Microsoft.AspNetCore.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; +using Microsoft.Extensions.Options; using Microsoft.OpenApi.Models; +using MyCompanyName.MyProjectName.Blazor.Server.Components; using MyCompanyName.MyProjectName.Data; using MyCompanyName.MyProjectName.Localization; using MyCompanyName.MyProjectName.Menus; @@ -11,6 +13,7 @@ using Volo.Abp; using Volo.Abp.Uow; using Volo.Abp.Account; using Volo.Abp.Account.Web; +using Volo.Abp.AspNetCore.Components.Server; using Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite; using Volo.Abp.AspNetCore.Components.Server.LeptonXLiteTheme; using Volo.Abp.AspNetCore.Components.Server.LeptonXLiteTheme.Bundling; @@ -148,6 +151,11 @@ public class MyProjectNameModule : AbpModule serverBuilder.AddProductionEncryptionAndSigningCertificate("openiddict.pfx", "00000000-0000-0000-0000-000000000000"); }); } + + PreConfigure(options => + { + options.IsBlazorWebApp = true; + }); } public override void ConfigureServices(ServiceConfigurationContext context) @@ -160,6 +168,10 @@ public class MyProjectNameModule : AbpModule context.Services.Replace(ServiceDescriptor.Singleton()); } + // Add services to the container. + context.Services.AddRazorComponents() + .AddInteractiveServerComponents(); + ConfigureAuthentication(context); ConfigureUrls(configuration); ConfigureBundles(); @@ -380,6 +392,7 @@ public class MyProjectNameModule : AbpModule app.UseUnitOfWork(); app.UseDynamicClaims(); + app.UseAntiforgery(); app.UseAuthorization(); app.UseSwagger(); @@ -390,6 +403,11 @@ public class MyProjectNameModule : AbpModule app.UseAuditing(); app.UseAbpSerilogEnrichers(); - app.UseConfiguredEndpoints(); + app.UseConfiguredEndpoints(builder => + { + builder.MapRazorComponents() + .AddInteractiveServerRenderMode() + .AddAdditionalAssemblies(builder.ServiceProvider.GetRequiredService>().Value.AdditionalAssemblies.ToArray()); + }); } } diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Pages/_Host.cshtml b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Pages/_Host.cshtml deleted file mode 100644 index 88b72298ab..0000000000 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Pages/_Host.cshtml +++ /dev/null @@ -1,39 +0,0 @@ -@page "/" -@namespace MyCompanyName.MyProjectName.Blazor.Server.Pages -@using System.Globalization -@using Volo.Abp.AspNetCore.Components.Web.LeptonXLiteTheme.Themes.LeptonXLite -@using Volo.Abp.AspNetCore.Components.Server.LeptonXLiteTheme.Bundling -@using Volo.Abp.Localization -@{ - Layout = null; - var rtl = CultureHelper.IsRtl ? "rtl" : string.Empty; -} - - - - - - - MyCompanyName.MyProjectName.Blazor.Server - - - - - - - - -
- - An error has occurred. This application may no longer respond until reloaded. - - - An unhandled exception has occurred. See browser dev tools for details. - - Reload - 🗙 -
- - - - diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/_Imports.razor b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/_Imports.razor index fe27745143..ad711d0c79 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/_Imports.razor +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/_Imports.razor @@ -5,9 +5,10 @@ @using Microsoft.AspNetCore.Components.Routing @using Microsoft.AspNetCore.Components.Web @using Microsoft.AspNetCore.Components.Web.Virtualization +@using static Microsoft.AspNetCore.Components.Web.RenderMode @using Microsoft.JSInterop -@using MyCompanyName.MyProjectName.Blazor.Server +@using MyCompanyName.MyProjectName @using Blazorise @using Blazorise.DataGrid @using Volo.Abp.BlazoriseUI -@using Volo.Abp.BlazoriseUI.Components \ No newline at end of file +@using Volo.Abp.BlazoriseUI.Components diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/package.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/package.json index 2713e03dc6..04df52b4ad 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/package.json +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/package.json @@ -3,7 +3,7 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.0.3", - "@abp/aspnetcore.components.server.leptonxlitetheme": "~3.0.3" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.1.0-rc.2", + "@abp/aspnetcore.components.server.leptonxlitetheme": "~3.1.0-rc.2" } } diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/MyProjectNameBlazorModule.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/MyProjectNameBlazorModule.cs index 9589da2db7..af2fd70277 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/MyProjectNameBlazorModule.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/MyProjectNameBlazorModule.cs @@ -66,7 +66,6 @@ public class MyProjectNameBlazorModule : AbpModule ConfigureHttpClient(context, environment); ConfigureBlazorise(context); ConfigureRouter(context); - ConfigureUI(builder); ConfigureMenu(context); ConfigureAutoMapper(context); ConfigureHttpClientProxies(context); @@ -118,12 +117,6 @@ public class MyProjectNameBlazorModule : AbpModule }); } - private static void ConfigureUI(WebAssemblyHostBuilder builder) - { - builder.RootComponents.Add("#ApplicationContainer"); - - } - private static void ConfigureHttpClient(ServiceConfigurationContext context, IWebAssemblyHostEnvironment environment) { context.Services.AddTransient(sp => new HttpClient diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/Routes.razor b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/Routes.razor new file mode 100644 index 0000000000..c0cc7d4c6a --- /dev/null +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/Routes.razor @@ -0,0 +1,12 @@ +@using Volo.Abp.AspNetCore.Components.WebAssembly.WebApp +@using Volo.Abp.AspNetCore.Components.Web.LeptonXLiteTheme.Themes.LeptonXLite + + + + + + + + + + diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/wwwroot/appsettings.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/wwwroot/appsettings.json index dfc96e72ac..1aaf05ba27 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/wwwroot/appsettings.json +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/wwwroot/appsettings.json @@ -16,6 +16,7 @@ "Bundle": { "Mode": "BundleAndMinify", /* Options: None, Bundle, BundleAndMinify */ "Name": "global", + "IsBlazorWebApp": true, "Parameters": { } diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/wwwroot/global.js b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/wwwroot/global.js index 2de22906d9..a25bd0ac39 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/wwwroot/global.js +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/wwwroot/global.js @@ -1,5 +1,3 @@ -(()=>{"use strict";var e,t,n;!function(e){const t=[],n="__jsObjectId",r="__dotNetObject",o="__byte[]",i="__dotNetStream",s="__jsStreamReferenceLength";let a,c;class l{constructor(e){this._jsObject=e,this._cachedFunctions=new Map}findFunction(e){const t=this._cachedFunctions.get(e);if(t)return t;let n,r=this._jsObject;if(e.split(".").forEach((t=>{if(!(t in r))throw new Error(`Could not find '${e}' ('${t}' was undefined).`);n=r,r=r[t]})),r instanceof Function)return r=r.bind(n),this._cachedFunctions.set(e,r),r;throw new Error(`The value '${e}' is not a function.`)}getWrappedObject(){return this._jsObject}}const u={0:new l(window)};u[0]._cachedFunctions.set("import",(e=>("string"==typeof e&&e.startsWith("./")&&(e=new URL(e.substr(2),document.baseURI).toString()),import(e))));let d,f=1;function m(e){t.push(e)}function h(e){if(e&&"object"==typeof e){u[f]=new l(e);const t={[n]:f};return f++,t}throw new Error(`Cannot create a JSObjectReference from the value '${e}'.`)}function p(e){let t=-1;if(e instanceof ArrayBuffer&&(e=new Uint8Array(e)),e instanceof Blob)t=e.size;else{if(!(e.buffer instanceof ArrayBuffer))throw new Error("Supplied value is not a typed array or blob.");if(void 0===e.byteLength)throw new Error(`Cannot create a JSStreamReference from the value '${e}' as it doesn't have a byteLength.`);t=e.byteLength}const r={[s]:t};try{const t=h(e);r[n]=t[n]}catch(t){throw new Error(`Cannot create a JSStreamReference from the value '${e}'.`)}return r}function v(e,n){c=e;const r=n?JSON.parse(n,((e,n)=>t.reduce(((t,n)=>n(e,t)),n))):null;return c=void 0,r}function b(){if(void 0===a)throw new Error("No call dispatcher has been set.");if(null===a)throw new Error("There are multiple .NET runtimes present, so a default dispatcher could not be resolved. Use DotNetObject to invoke .NET instance methods.");return a}e.attachDispatcher=function(e){const t=new g(e);return void 0===a?a=t:a&&(a=null),t},e.attachReviver=m,e.invokeMethod=function(e,t,...n){return b().invokeDotNetStaticMethod(e,t,...n)},e.invokeMethodAsync=function(e,t,...n){return b().invokeDotNetStaticMethodAsync(e,t,...n)},e.createJSObjectReference=h,e.createJSStreamReference=p,e.disposeJSObjectReference=function(e){const t=e&&e[n];"number"==typeof t&&E(t)},function(e){e[e.Default=0]="Default",e[e.JSObjectReference=1]="JSObjectReference",e[e.JSStreamReference=2]="JSStreamReference",e[e.JSVoidResult=3]="JSVoidResult"}(d=e.JSCallResultType||(e.JSCallResultType={}));class g{constructor(e){this._dotNetCallDispatcher=e,this._byteArraysToBeRevived=new Map,this._pendingDotNetToJSStreams=new Map,this._pendingAsyncCalls={},this._nextAsyncCallId=1}getDotNetCallDispatcher(){return this._dotNetCallDispatcher}invokeJSFromDotNet(e,t,n,r){const o=v(this,t),i=I(w(e,r)(...o||[]),n);return null==i?null:_(this,i)}beginInvokeJSFromDotNet(e,t,n,r,o){const i=new Promise((e=>{const r=v(this,n);e(w(t,o)(...r||[]))}));e&&i.then((t=>_(this,[e,!0,I(t,r)]))).then((t=>this._dotNetCallDispatcher.endInvokeJSFromDotNet(e,!0,t)),(t=>this._dotNetCallDispatcher.endInvokeJSFromDotNet(e,!1,JSON.stringify([e,!1,y(t)]))))}endInvokeDotNetFromJS(e,t,n){const r=t?v(this,n):new Error(n);this.completePendingCall(parseInt(e,10),t,r)}invokeDotNetStaticMethod(e,t,...n){return this.invokeDotNetMethod(e,t,null,n)}invokeDotNetStaticMethodAsync(e,t,...n){return this.invokeDotNetMethodAsync(e,t,null,n)}invokeDotNetMethod(e,t,n,r){if(this._dotNetCallDispatcher.invokeDotNetFromJS){const o=_(this,r),i=this._dotNetCallDispatcher.invokeDotNetFromJS(e,t,n,o);return i?v(this,i):null}throw new Error("The current dispatcher does not support synchronous calls from JS to .NET. Use invokeDotNetMethodAsync instead.")}invokeDotNetMethodAsync(e,t,n,r){if(e&&n)throw new Error(`For instance method calls, assemblyName should be null. Received '${e}'.`);const o=this._nextAsyncCallId++,i=new Promise(((e,t)=>{this._pendingAsyncCalls[o]={resolve:e,reject:t}}));try{const i=_(this,r);this._dotNetCallDispatcher.beginInvokeDotNetFromJS(o,e,t,n,i)}catch(e){this.completePendingCall(o,!1,e)}return i}receiveByteArray(e,t){this._byteArraysToBeRevived.set(e,t)}processByteArray(e){const t=this._byteArraysToBeRevived.get(e);return t?(this._byteArraysToBeRevived.delete(e),t):null}supplyDotNetStream(e,t){if(this._pendingDotNetToJSStreams.has(e)){const n=this._pendingDotNetToJSStreams.get(e);this._pendingDotNetToJSStreams.delete(e),n.resolve(t)}else{const n=new C;n.resolve(t),this._pendingDotNetToJSStreams.set(e,n)}}getDotNetStreamPromise(e){let t;if(this._pendingDotNetToJSStreams.has(e))t=this._pendingDotNetToJSStreams.get(e).streamPromise,this._pendingDotNetToJSStreams.delete(e);else{const n=new C;this._pendingDotNetToJSStreams.set(e,n),t=n.streamPromise}return t}completePendingCall(e,t,n){if(!this._pendingAsyncCalls.hasOwnProperty(e))throw new Error(`There is no pending async call with ID ${e}.`);const r=this._pendingAsyncCalls[e];delete this._pendingAsyncCalls[e],t?r.resolve(n):r.reject(n)}}function y(e){return e instanceof Error?`${e.message}\n${e.stack}`:e?e.toString():"null"}function w(e,t){const n=u[t];if(n)return n.findFunction(e);throw new Error(`JS object instance with ID ${t} does not exist (has it been disposed?).`)}function E(e){delete u[e]}e.findJSFunction=w,e.disposeJSObjectReferenceById=E;class S{constructor(e,t){this._id=e,this._callDispatcher=t}invokeMethod(e,...t){return this._callDispatcher.invokeDotNetMethod(null,e,this._id,t)}invokeMethodAsync(e,...t){return this._callDispatcher.invokeDotNetMethodAsync(null,e,this._id,t)}dispose(){this._callDispatcher.invokeDotNetMethodAsync(null,"__Dispose",this._id,null).catch((e=>console.error(e)))}serializeAsArg(){return{[r]:this._id}}}e.DotNetObject=S,m((function(e,t){if(t&&"object"==typeof t){if(t.hasOwnProperty(r))return new S(t[r],c);if(t.hasOwnProperty(n)){const e=t[n],r=u[e];if(r)return r.getWrappedObject();throw new Error(`JS object instance with Id '${e}' does not exist. It may have been disposed.`)}if(t.hasOwnProperty(o)){const e=t[o],n=c.processByteArray(e);if(void 0===n)throw new Error(`Byte array index '${e}' does not exist.`);return n}if(t.hasOwnProperty(i)){const e=t[i],n=c.getDotNetStreamPromise(e);return new A(n)}}return t}));class A{constructor(e){this._streamPromise=e}stream(){return this._streamPromise}async arrayBuffer(){return new Response(await this.stream()).arrayBuffer()}}class C{constructor(){this.streamPromise=new Promise(((e,t)=>{this.resolve=e,this.reject=t}))}}function I(e,t){switch(t){case d.Default:return e;case d.JSObjectReference:return h(e);case d.JSStreamReference:return p(e);case d.JSVoidResult:return null;default:throw new Error(`Invalid JS call result type '${t}'.`)}}let N=0;function _(e,t){N=0,c=e;const n=JSON.stringify(t,R);return c=void 0,n}function R(e,t){if(t instanceof S)return t.serializeAsArg();if(t instanceof Uint8Array){c.getDotNetCallDispatcher().sendByteArray(N,t);const e={[o]:N};return N++,e}return t}}(e||(e={})),function(e){e[e.prependFrame=1]="prependFrame",e[e.removeFrame=2]="removeFrame",e[e.setAttribute=3]="setAttribute",e[e.removeAttribute=4]="removeAttribute",e[e.updateText=5]="updateText",e[e.stepIn=6]="stepIn",e[e.stepOut=7]="stepOut",e[e.updateMarkup=8]="updateMarkup",e[e.permutationListEntry=9]="permutationListEntry",e[e.permutationListEnd=10]="permutationListEnd"}(t||(t={})),function(e){e[e.element=1]="element",e[e.text=2]="text",e[e.attribute=3]="attribute",e[e.component=4]="component",e[e.region=5]="region",e[e.elementReferenceCapture=6]="elementReferenceCapture",e[e.markup=8]="markup",e[e.namedEvent=10]="namedEvent"}(n||(n={}));class r{constructor(e,t){this.componentId=e,this.fieldValue=t}static fromEvent(e,t){const n=t.target;if(n instanceof Element){const t=function(e){return e instanceof HTMLInputElement?e.type&&"checkbox"===e.type.toLowerCase()?{value:e.checked}:{value:e.value}:e instanceof HTMLSelectElement||e instanceof HTMLTextAreaElement?{value:e.value}:null}(n);if(t)return new r(e,t.value)}return null}}const o=new Map,i=new Map,s=[];function a(e){return o.get(e)}function c(e){const t=o.get(e);return(null==t?void 0:t.browserEventName)||e}function l(e,t){e.forEach((e=>o.set(e,t)))}function u(e){const t=[];for(let n=0;ne.selected)).map((e=>e.value))}}{const e=function(e){return!!e&&"INPUT"===e.tagName&&"checkbox"===e.getAttribute("type")}(t);return{value:e?!!t.checked:t.value}}}}),l(["copy","cut","paste"],{createEventArgs:e=>({type:e.type})}),l(["drag","dragend","dragenter","dragleave","dragover","dragstart","drop"],{createEventArgs:e=>{return{...d(t=e),dataTransfer:t.dataTransfer?{dropEffect:t.dataTransfer.dropEffect,effectAllowed:t.dataTransfer.effectAllowed,files:Array.from(t.dataTransfer.files).map((e=>e.name)),items:Array.from(t.dataTransfer.items).map((e=>({kind:e.kind,type:e.type}))),types:t.dataTransfer.types}:null};var t}}),l(["focus","blur","focusin","focusout"],{createEventArgs:e=>({type:e.type})}),l(["keydown","keyup","keypress"],{createEventArgs:e=>{return{key:(t=e).key,code:t.code,location:t.location,repeat:t.repeat,ctrlKey:t.ctrlKey,shiftKey:t.shiftKey,altKey:t.altKey,metaKey:t.metaKey,type:t.type};var t}}),l(["contextmenu","click","mouseover","mouseout","mousemove","mousedown","mouseup","mouseleave","mouseenter","dblclick"],{createEventArgs:e=>d(e)}),l(["error"],{createEventArgs:e=>{return{message:(t=e).message,filename:t.filename,lineno:t.lineno,colno:t.colno,type:t.type};var t}}),l(["loadstart","timeout","abort","load","loadend","progress"],{createEventArgs:e=>{return{lengthComputable:(t=e).lengthComputable,loaded:t.loaded,total:t.total,type:t.type};var t}}),l(["touchcancel","touchend","touchmove","touchenter","touchleave","touchstart"],{createEventArgs:e=>{return{detail:(t=e).detail,touches:u(t.touches),targetTouches:u(t.targetTouches),changedTouches:u(t.changedTouches),ctrlKey:t.ctrlKey,shiftKey:t.shiftKey,altKey:t.altKey,metaKey:t.metaKey,type:t.type};var t}}),l(["gotpointercapture","lostpointercapture","pointercancel","pointerdown","pointerenter","pointerleave","pointermove","pointerout","pointerover","pointerup"],{createEventArgs:e=>{return{...d(t=e),pointerId:t.pointerId,width:t.width,height:t.height,pressure:t.pressure,tiltX:t.tiltX,tiltY:t.tiltY,pointerType:t.pointerType,isPrimary:t.isPrimary};var t}}),l(["wheel","mousewheel"],{createEventArgs:e=>{return{...d(t=e),deltaX:t.deltaX,deltaY:t.deltaY,deltaZ:t.deltaZ,deltaMode:t.deltaMode};var t}}),l(["cancel","close","toggle"],{createEventArgs:()=>({})});const f=["date","datetime-local","month","time","week"],m=new Map;let h,p,v=0;const b={async add(e,t,n){if(!n)throw new Error("initialParameters must be an object, even if empty.");const r="__bl-dynamic-root:"+(++v).toString();m.set(r,e);const o=await w().invokeMethodAsync("AddRootComponent",t,r),i=new y(o,p[t]);return await i.setParameters(n),i}};class g{invoke(e){return this._callback(e)}setCallback(t){this._selfJSObjectReference||(this._selfJSObjectReference=e.createJSObjectReference(this)),this._callback=t}getJSObjectReference(){return this._selfJSObjectReference}dispose(){this._selfJSObjectReference&&e.disposeJSObjectReference(this._selfJSObjectReference)}}class y{constructor(e,t){this._jsEventCallbackWrappers=new Map,this._componentId=e;for(const e of t)"eventcallback"===e.type&&this._jsEventCallbackWrappers.set(e.name.toLowerCase(),new g)}setParameters(e){const t={},n=Object.entries(e||{}),r=n.length;for(const[e,r]of n){const n=this._jsEventCallbackWrappers.get(e.toLowerCase());n&&r?(n.setCallback(r),t[e]=n.getJSObjectReference()):t[e]=r}return w().invokeMethodAsync("SetRootComponentParameters",this._componentId,r,t)}async dispose(){if(null!==this._componentId){await w().invokeMethodAsync("RemoveRootComponent",this._componentId),this._componentId=null;for(const e of this._jsEventCallbackWrappers.values())e.dispose()}}}function w(){if(!h)throw new Error("Dynamic root components have not been enabled in this application.");return h}const E=new Map,S=[],A=new Map;function C(e,t,n){return N(e,t.eventHandlerId,(()=>I(e).invokeMethodAsync("DispatchEventAsync",t,n)))}function I(e){const t=E.get(e);if(!t)throw new Error(`No interop methods are registered for renderer ${e}`);return t}let N=(e,t,n)=>n();const _=O(["abort","blur","cancel","canplay","canplaythrough","change","close","cuechange","durationchange","emptied","ended","error","focus","load","loadeddata","loadedmetadata","loadend","loadstart","mouseenter","mouseleave","pointerenter","pointerleave","pause","play","playing","progress","ratechange","reset","scroll","seeked","seeking","stalled","submit","suspend","timeupdate","toggle","unload","volumechange","waiting","DOMNodeInsertedIntoDocument","DOMNodeRemovedFromDocument"]),R={submit:!0},D=O(["click","dblclick","mousedown","mousemove","mouseup"]);class k{constructor(e){this.browserRendererId=e,this.afterClickCallbacks=[];const t=++k.nextEventDelegatorId;this.eventsCollectionKey=`_blazorEvents_${t}`,this.eventInfoStore=new F(this.onGlobalEvent.bind(this))}setListener(e,t,n,r){const o=this.getEventHandlerInfosForElement(e,!0),i=o.getHandler(t);if(i)this.eventInfoStore.update(i.eventHandlerId,n);else{const i={element:e,eventName:t,eventHandlerId:n,renderingComponentId:r};this.eventInfoStore.add(i),o.setHandler(t,i)}}getHandler(e){return this.eventInfoStore.get(e)}removeListener(e){const t=this.eventInfoStore.remove(e);if(t){const e=t.element,n=this.getEventHandlerInfosForElement(e,!1);n&&n.removeHandler(t.eventName)}}notifyAfterClick(e){this.afterClickCallbacks.push(e),this.eventInfoStore.addGlobalListener("click")}setStopPropagation(e,t,n){this.getEventHandlerInfosForElement(e,!0).stopPropagation(t,n)}setPreventDefault(e,t,n){this.getEventHandlerInfosForElement(e,!0).preventDefault(t,n)}onGlobalEvent(e){if(!(e.target instanceof Element))return;this.dispatchGlobalEventToAllElements(e.type,e);const t=(n=e.type,i.get(n));var n;t&&t.forEach((t=>this.dispatchGlobalEventToAllElements(t,e))),"click"===e.type&&this.afterClickCallbacks.forEach((t=>t(e)))}dispatchGlobalEventToAllElements(e,t){const n=t.composedPath();let o=n.shift(),i=null,s=!1;const c=Object.prototype.hasOwnProperty.call(_,e);let l=!1;for(;o;){const f=o,m=this.getEventHandlerInfosForElement(f,!1);if(m){const n=m.getHandler(e);if(n&&(u=f,d=t.type,!((u instanceof HTMLButtonElement||u instanceof HTMLInputElement||u instanceof HTMLTextAreaElement||u instanceof HTMLSelectElement)&&Object.prototype.hasOwnProperty.call(D,d)&&u.disabled))){if(!s){const n=a(e);i=(null==n?void 0:n.createEventArgs)?n.createEventArgs(t):{},s=!0}Object.prototype.hasOwnProperty.call(R,t.type)&&t.preventDefault(),C(this.browserRendererId,{eventHandlerId:n.eventHandlerId,eventName:e,eventFieldInfo:r.fromEvent(n.renderingComponentId,t)},i)}m.stopPropagation(e)&&(l=!0),m.preventDefault(e)&&t.preventDefault()}o=c||l?void 0:n.shift()}var u,d}getEventHandlerInfosForElement(e,t){return Object.prototype.hasOwnProperty.call(e,this.eventsCollectionKey)?e[this.eventsCollectionKey]:t?e[this.eventsCollectionKey]=new T:null}}k.nextEventDelegatorId=0;class F{constructor(e){this.globalListener=e,this.infosByEventHandlerId={},this.countByEventName={},s.push(this.handleEventNameAliasAdded.bind(this))}add(e){if(this.infosByEventHandlerId[e.eventHandlerId])throw new Error(`Event ${e.eventHandlerId} is already tracked`);this.infosByEventHandlerId[e.eventHandlerId]=e,this.addGlobalListener(e.eventName)}get(e){return this.infosByEventHandlerId[e]}addGlobalListener(e){if(e=c(e),Object.prototype.hasOwnProperty.call(this.countByEventName,e))this.countByEventName[e]++;else{this.countByEventName[e]=1;const t=Object.prototype.hasOwnProperty.call(_,e);document.addEventListener(e,this.globalListener,t)}}update(e,t){if(Object.prototype.hasOwnProperty.call(this.infosByEventHandlerId,t))throw new Error(`Event ${t} is already tracked`);const n=this.infosByEventHandlerId[e];delete this.infosByEventHandlerId[e],n.eventHandlerId=t,this.infosByEventHandlerId[t]=n}remove(e){const t=this.infosByEventHandlerId[e];if(t){delete this.infosByEventHandlerId[e];const n=c(t.eventName);0==--this.countByEventName[n]&&(delete this.countByEventName[n],document.removeEventListener(n,this.globalListener))}return t}handleEventNameAliasAdded(e,t){if(Object.prototype.hasOwnProperty.call(this.countByEventName,e)){const n=this.countByEventName[e];delete this.countByEventName[e],document.removeEventListener(e,this.globalListener),this.addGlobalListener(t),this.countByEventName[t]+=n-1}}}class T{constructor(){this.handlers={},this.preventDefaultFlags=null,this.stopPropagationFlags=null}getHandler(e){return Object.prototype.hasOwnProperty.call(this.handlers,e)?this.handlers[e]:null}setHandler(e,t){this.handlers[e]=t}removeHandler(e){delete this.handlers[e]}preventDefault(e,t){return void 0!==t&&(this.preventDefaultFlags=this.preventDefaultFlags||{},this.preventDefaultFlags[e]=t),!!this.preventDefaultFlags&&this.preventDefaultFlags[e]}stopPropagation(e,t){return void 0!==t&&(this.stopPropagationFlags=this.stopPropagationFlags||{},this.stopPropagationFlags[e]=t),!!this.stopPropagationFlags&&this.stopPropagationFlags[e]}}function O(e){const t={};return e.forEach((e=>{t[e]=!0})),t}const L=Symbol(),M=Symbol(),x=Symbol();function P(e,t){if(L in e)return e;const n=[];if(e.childNodes.length>0){if(!t)throw new Error("New logical elements must start empty, or allowExistingContents must be true");e.childNodes.forEach((t=>{const r=P(t,!0);r[M]=e,n.push(r)}))}return e[L]=n,e}function B(e){const t=U(e);for(;t.length;)H(e,0)}function J(e,t){const n=document.createComment("!");return j(n,e,t),n}function j(e,t,n){const r=e;let o=e;if(L in e){const t=G(r);if(t!==e){const n=new Range;n.setStartBefore(e),n.setEndAfter(t),o=n.extractContents()}}const i=$(r);if(i){const e=U(i),t=Array.prototype.indexOf.call(e,r);e.splice(t,1),delete r[M]}const s=U(t);if(n0;)H(n,0)}const r=n;r.parentNode.removeChild(r)}function $(e){return e[M]||null}function z(e,t){return U(e)[t]}function W(e){const t=X(e);return"http://www.w3.org/2000/svg"===t.namespaceURI&&"foreignObject"!==t.tagName}function U(e){return e[L]}function K(e){const t=U($(e));return t[Array.prototype.indexOf.call(t,e)+1]||null}function V(e,t){const n=U(e);t.forEach((e=>{e.moveRangeStart=n[e.fromSiblingIndex],e.moveRangeEnd=G(e.moveRangeStart)})),t.forEach((t=>{const r=document.createComment("marker");t.moveToBeforeMarker=r;const o=n[t.toSiblingIndex+1];o?o.parentNode.insertBefore(r,o):Y(r,e)})),t.forEach((e=>{const t=e.moveToBeforeMarker,n=t.parentNode,r=e.moveRangeStart,o=e.moveRangeEnd;let i=r;for(;i;){const e=i.nextSibling;if(n.insertBefore(i,t),i===o)break;i=e}n.removeChild(t)})),t.forEach((e=>{n[e.toSiblingIndex]=e.moveRangeStart}))}function X(e){if(e instanceof Element||e instanceof DocumentFragment)return e;if(e instanceof Comment)return e.parentNode;throw new Error("Not a valid logical element")}function Y(e,t){if(t instanceof Element||t instanceof DocumentFragment)t.appendChild(e);else{if(!(t instanceof Comment))throw new Error(`Cannot append node because the parent is not a valid logical element. Parent: ${t}`);{const n=K(t);n?n.parentNode.insertBefore(e,n):Y(e,$(t))}}}function G(e){if(e instanceof Element||e instanceof DocumentFragment)return e;const t=K(e);if(t)return t.previousSibling;{const t=$(e);return t instanceof Element||t instanceof DocumentFragment?t.lastChild:G(t)}}function q(e){return`_bl_${e}`}const Z="__internalId";e.attachReviver(((e,t)=>t&&"object"==typeof t&&Object.prototype.hasOwnProperty.call(t,Z)&&"string"==typeof t[Z]?function(e){const t=`[${q(e)}]`;return document.querySelector(t)}(t[Z]):t));const Q="_blazorDeferredValue";function ee(e){return"select-multiple"===e.type}function te(e,t){e.value=t||""}function ne(e,t){e instanceof HTMLSelectElement?ee(e)?function(e,t){t||(t=[]);for(let n=0;n{Ie()&&function(e,t){if(0!==e.button||function(e){return e.ctrlKey||e.shiftKey||e.altKey||e.metaKey}(e))return;if(e.defaultPrevented)return;const n=function(e){const t=!window._blazorDisableComposedPath&&e.composedPath&&e.composedPath();if(t){for(let e=0;e{const t=document.createElement("script");t.textContent=e.textContent,e.getAttributeNames().forEach((n=>{t.setAttribute(n,e.getAttribute(n))})),e.parentNode.replaceChild(t,e)})),oe.content));var s;let a=0;for(;i.firstChild;)j(i.firstChild,o,a++)}applyAttribute(e,t,n,r){const o=e.frameReader,i=o.attributeName(r),s=o.attributeEventHandlerId(r);if(s){const e=fe(i);return void this.eventDelegator.setListener(n,e,s,t)}const a=o.attributeValue(r);this.setOrRemoveAttributeOrProperty(n,i,a)}insertFrameRange(e,t,n,r,o,i,s){const a=r;for(let a=i;a{He(t,e)})},enableNavigationInterception:function(e){if(void 0!==he&&he!==e)throw new Error("Only one interactive runtime may enable navigation interception at a time.");he=e},setHasLocationChangingListeners:function(e,t){const n=ke.get(e);if(!n)throw new Error(`Renderer with ID '${e}' is not listening for navigation events`);n.hasLocationChangingEventListeners=t},endLocationChanging:function(e,t){Te&&e===De&&(Te(t),Te=null)},navigateTo:function(e,t){Me(e,t,!0)},refresh:function(e){!e&&Ee()?Se(location.href,!0):location.reload()},getBaseURI:()=>document.baseURI,getLocationHref:()=>location.href,scrollToElement:Le};function Le(e){const t=document.getElementById(e);return!!t&&(t.scrollIntoView(),!0)}function Me(e,t,n=!1){const r=Ae(e);!t.forceLoad&&we(r)?We()?xe(r,!1,t.replaceHistoryEntry,t.historyEntryState,n):Se(r,t.replaceHistoryEntry):function(e,t){if(location.href===e){const t=e+"?";history.replaceState(null,"",t),location.replace(e)}else t?location.replace(e):location.href=e}(e,t.replaceHistoryEntry)}async function xe(e,t,n,r=void 0,o=!1){if(Je(),function(e){const t=e.indexOf("#");return t>-1&&location.href.replace(location.hash,"")===e.substring(0,t)}(e))return void function(e,t,n){Pe(e,t,n);const r=e.indexOf("#");r!==e.length-1&&Le(e.substring(r+1))}(e,n,r);const i=ze();(o||!(null==i?void 0:i.hasLocationChangingEventListeners)||await je(e,r,t,i))&&(ge=!0,Pe(e,n,r),await He(t))}function Pe(e,t,n=void 0){t?history.replaceState({userState:n,_index:Re},"",e):(Re++,history.pushState({userState:n,_index:Re},"",e))}function Be(e){return new Promise((t=>{const n=Fe;Fe=()=>{Fe=n,t()},history.go(e)}))}function Je(){Te&&(Te(!1),Te=null)}function je(e,t,n,r){return new Promise((o=>{Je(),De++,Te=o,r.locationChanging(De,e,t,n)}))}async function He(e,t){const n=null!=t?t:location.href;await Promise.all(Array.from(ke,(async([t,r])=>{var o,i;i=t,E.has(i)&&await r.locationChanged(n,null===(o=history.state)||void 0===o?void 0:o.userState,e)})))}async function $e(e){var t,n;Fe&&We()&&await Fe(e),Re=null!==(n=null===(t=history.state)||void 0===t?void 0:t._index)&&void 0!==n?n:0}function ze(){const e=Ne();if(void 0!==e)return ke.get(e)}function We(){return Ie()||!Ee()}const Ue={focus:function(e,t){if(e instanceof HTMLElement)e.focus({preventScroll:t});else{if(!(e instanceof SVGElement))throw new Error("Unable to focus an invalid element.");if(!e.hasAttribute("tabindex"))throw new Error("Unable to focus an SVG element that does not have a tabindex.");e.focus({preventScroll:t})}},focusBySelector:function(e,t){const n=document.querySelector(e);n&&(n.hasAttribute("tabindex")||(n.tabIndex=-1),n.focus({preventScroll:!0}))}},Ke={init:function(e,t,n,r=50){const o=Xe(t);(o||document.documentElement).style.overflowAnchor="none";const i=document.createRange();f(n.parentElement)&&(t.style.display="table-row",n.style.display="table-row");const s=new IntersectionObserver((function(r){r.forEach((r=>{var o;if(!r.isIntersecting)return;i.setStartAfter(t),i.setEndBefore(n);const s=i.getBoundingClientRect().height,a=null===(o=r.rootBounds)||void 0===o?void 0:o.height;r.target===t?e.invokeMethodAsync("OnSpacerBeforeVisible",r.intersectionRect.top-r.boundingClientRect.top,s,a):r.target===n&&n.offsetHeight>0&&e.invokeMethodAsync("OnSpacerAfterVisible",r.boundingClientRect.bottom-r.intersectionRect.bottom,s,a)}))}),{root:o,rootMargin:`${r}px`});s.observe(t),s.observe(n);const a=d(t),c=d(n),{observersByDotNetObjectId:l,id:u}=Ye(e);function d(e){const t={attributes:!0},n=new MutationObserver(((n,r)=>{f(e.parentElement)&&(r.disconnect(),e.style.display="table-row",r.observe(e,t)),s.unobserve(e),s.observe(e)}));return n.observe(e,t),n}function f(e){return null!==e&&(e instanceof HTMLTableElement&&""===e.style.display||"table"===e.style.display||e instanceof HTMLTableSectionElement&&""===e.style.display||"table-row-group"===e.style.display)}l[u]={intersectionObserver:s,mutationObserverBefore:a,mutationObserverAfter:c}},dispose:function(e){const{observersByDotNetObjectId:t,id:n}=Ye(e),r=t[n];r&&(r.intersectionObserver.disconnect(),r.mutationObserverBefore.disconnect(),r.mutationObserverAfter.disconnect(),e.dispose(),delete t[n])}},Ve=Symbol();function Xe(e){return e&&e!==document.body&&e!==document.documentElement?"visible"!==getComputedStyle(e).overflowY?e:Xe(e.parentElement):null}function Ye(e){var t;const n=e._callDispatcher,r=e._id;return null!==(t=n[Ve])&&void 0!==t||(n[Ve]={}),{observersByDotNetObjectId:n[Ve],id:r}}const Ge={getAndRemoveExistingTitle:function(){var e;const t=document.head?document.head.getElementsByTagName("title"):[];if(0===t.length)return null;let n=null;for(let r=t.length-1;r>=0;r--){const o=t[r],i=o.previousSibling;i instanceof Comment&&null!==$(i)||(null===n&&(n=o.textContent),null===(e=o.parentNode)||void 0===e||e.removeChild(o))}return n}},qe={init:function(e,t){t._blazorInputFileNextFileId=0,t.addEventListener("click",(function(){t.value=""})),t.addEventListener("change",(function(){t._blazorFilesById={};const n=Array.prototype.map.call(t.files,(function(e){const n={id:++t._blazorInputFileNextFileId,lastModified:new Date(e.lastModified).toISOString(),name:e.name,size:e.size,contentType:e.type,readPromise:void 0,arrayBuffer:void 0,blob:e};return t._blazorFilesById[n.id]=n,n}));e.invokeMethodAsync("NotifyChange",n)}))},toImageFile:async function(e,t,n,r,o){const i=Ze(e,t),s=await new Promise((function(e){const t=new Image;t.onload=function(){URL.revokeObjectURL(t.src),e(t)},t.onerror=function(){t.onerror=null,URL.revokeObjectURL(t.src)},t.src=URL.createObjectURL(i.blob)})),a=await new Promise((function(e){var t;const i=Math.min(1,r/s.width),a=Math.min(1,o/s.height),c=Math.min(i,a),l=document.createElement("canvas");l.width=Math.round(s.width*c),l.height=Math.round(s.height*c),null===(t=l.getContext("2d"))||void 0===t||t.drawImage(s,0,0,l.width,l.height),l.toBlob(e,n)})),c={id:++e._blazorInputFileNextFileId,lastModified:i.lastModified,name:i.name,size:(null==a?void 0:a.size)||0,contentType:n,blob:a||i.blob};return e._blazorFilesById[c.id]=c,c},readFileData:async function(e,t){return Ze(e,t).blob}};function Ze(e,t){const n=e._blazorFilesById[t];if(!n)throw new Error(`There is no file with ID ${t}. The file list may have changed. See https://aka.ms/aspnet/blazor-input-file-multiple-selections.`);return n}const Qe=new Set,et={enableNavigationPrompt:function(e){0===Qe.size&&window.addEventListener("beforeunload",tt),Qe.add(e)},disableNavigationPrompt:function(e){Qe.delete(e),0===Qe.size&&window.removeEventListener("beforeunload",tt)}};function tt(e){e.preventDefault(),e.returnValue=!0}const nt=new Map,rt={navigateTo:function(e,t,n=!1){Me(e,t instanceof Object?t:{forceLoad:t,replaceHistoryEntry:n})},registerCustomEventType:function(e,t){if(!t)throw new Error("The options parameter is required.");if(o.has(e))throw new Error(`The event '${e}' is already registered.`);if(t.browserEventName){const n=i.get(t.browserEventName);n?n.push(e):i.set(t.browserEventName,[e]),s.forEach((n=>n(e,t.browserEventName)))}o.set(e,t)},rootComponents:b,runtime:{},_internal:{navigationManager:Oe,domWrapper:Ue,Virtualize:Ke,PageTitle:Ge,InputFile:qe,NavigationLock:et,getJSDataStreamChunk:async function(e,t,n){return e instanceof Blob?await async function(e,t,n){const r=e.slice(t,t+n),o=await r.arrayBuffer();return new Uint8Array(o)}(e,t,n):function(e,t,n){return new Uint8Array(e.buffer,e.byteOffset+t,n)}(e,t,n)},attachWebRendererInterop:function(t,n,r,o){var i,s;if(E.has(t))throw new Error(`Interop methods are already registered for renderer ${t}`);E.set(t,n),r&&o&&Object.keys(r).length>0&&function(t,n,r){if(h)throw new Error("Dynamic root components have already been enabled.");h=t,p=n;for(const[t,o]of Object.entries(r)){const r=e.findJSFunction(t,0);for(const e of o)r(e,n[e])}}(I(t),r,o),null===(s=null===(i=A.get(t))||void 0===i?void 0:i[0])||void 0===s||s.call(i),function(e){for(const t of S)t(e)}(t)}}};var ot,it;window.Blazor=rt;const st=navigator,at=st.userAgentData&&st.userAgentData.brands,ct=at&&at.length>0?at.some((e=>"Google Chrome"===e.brand||"Microsoft Edge"===e.brand||"Chromium"===e.brand)):window.chrome,lt=null!==(it=null===(ot=st.userAgentData)||void 0===ot?void 0:ot.platform)&&void 0!==it?it:navigator.platform;function ut(e){return 0!==e.debugLevel&&(ct||navigator.userAgent.includes("Firefox"))}let dt=!1;function ft(){const e=document.querySelector("#blazor-error-ui");e&&(e.style.display="block"),dt||(dt=!0,document.querySelectorAll("#blazor-error-ui .reload").forEach((e=>{e.onclick=function(e){location.reload(),e.preventDefault()}})),document.querySelectorAll("#blazor-error-ui .dismiss").forEach((e=>{e.onclick=function(e){const t=document.querySelector("#blazor-error-ui");t&&(t.style.display="none"),e.preventDefault()}})))}var mt,ht;!function(e){e[e.Default=0]="Default",e[e.Server=1]="Server",e[e.WebAssembly=2]="WebAssembly",e[e.WebView=3]="WebView"}(mt||(mt={})),function(e){e[e.Trace=0]="Trace",e[e.Debug=1]="Debug",e[e.Information=2]="Information",e[e.Warning=3]="Warning",e[e.Error=4]="Error",e[e.Critical=5]="Critical",e[e.None=6]="None"}(ht||(ht={}));class pt{constructor(e=!0,t,n,r=0){this.singleRuntime=e,this.logger=t,this.webRendererId=r,this.afterStartedCallbacks=[],n&&this.afterStartedCallbacks.push(...n)}async importInitializersAsync(e,t){await Promise.all(e.map((e=>async function(e,n){const r=function(e){const t=document.baseURI;return t.endsWith("/")?`${t}${e}`:`${t}/${e}`}(n),o=await import(r);if(void 0!==o){if(e.singleRuntime){const{beforeStart:n,afterStarted:r,beforeWebAssemblyStart:s,afterWebAssemblyStarted:a,beforeServerStart:c,afterServerStarted:l}=o;let u=n;e.webRendererId===mt.Server&&c&&(u=c),e.webRendererId===mt.WebAssembly&&s&&(u=s);let d=r;return e.webRendererId===mt.Server&&l&&(d=l),e.webRendererId===mt.WebAssembly&&a&&(d=a),i(e,u,d,t)}return function(e,t,n){var o;const s=n[0],{beforeStart:a,afterStarted:c,beforeWebStart:l,afterWebStarted:u,beforeWebAssemblyStart:d,afterWebAssemblyStarted:f,beforeServerStart:m,afterServerStarted:h}=t,p=!(l||u||d||f||m||h||!a&&!c),v=p&&s.enableClassicInitializers;if(p&&!s.enableClassicInitializers)null===(o=e.logger)||void 0===o||o.log(ht.Warning,`Initializer '${r}' will be ignored because multiple runtimes are available. use 'before(web|webAssembly|server)Start' and 'after(web|webAssembly|server)Started?' instead.)`);else if(v)return i(e,a,c,n);if(function(e){e.webAssembly?e.webAssembly.initializers||(e.webAssembly.initializers={beforeStart:[],afterStarted:[]}):e.webAssembly={initializers:{beforeStart:[],afterStarted:[]}},e.circuit?e.circuit.initializers||(e.circuit.initializers={beforeStart:[],afterStarted:[]}):e.circuit={initializers:{beforeStart:[],afterStarted:[]}}}(s),d&&s.webAssembly.initializers.beforeStart.push(d),f&&s.webAssembly.initializers.afterStarted.push(f),m&&s.circuit.initializers.beforeStart.push(m),h&&s.circuit.initializers.afterStarted.push(h),u&&e.afterStartedCallbacks.push(u),l)return l(s)}(e,o,t)}function i(e,t,n,r){if(n&&e.afterStartedCallbacks.push(n),t)return t(...r)}}(this,e))))}async invokeAfterStartedCallbacks(e){const t=function(e){var t;return null===(t=A.get(e))||void 0===t?void 0:t[1]}(this.webRendererId);t&&await t,await Promise.all(this.afterStartedCallbacks.map((t=>t(e))))}}let vt,bt,gt,yt,wt,Et,St;const At=Math.pow(2,32),Ct=Math.pow(2,21)-1;let It=null;function Nt(e){return bt.getI32(e)}const _t={load:function(e,t){return async function(e,t){const{dotnet:n}=await async function(e){if("undefined"==typeof WebAssembly||!WebAssembly.validate)throw new Error("This browser does not support WebAssembly.");let t="_framework/dotnet.js";if(e.loadBootResource){const n="dotnetjs",r=e.loadBootResource(n,"dotnet.js",t,"","js-module-dotnet");if("string"==typeof r)t=r;else if(r)throw new Error(`For a ${n} resource, custom loaders must supply a URI string.`)}const n=new URL(t,document.baseURI).toString();return await import(n)}(e),r=function(e,t){const n={maxParallelDownloads:1e6,enableDownloadRetry:!1,applicationEnvironment:e.environment},r={...window.Module||{},onConfigLoaded:async n=>{n.environmentVariables||(n.environmentVariables={}),"sharded"===n.globalizationMode&&(n.environmentVariables.__BLAZOR_SHARDED_ICU="1"),rt._internal.getApplicationEnvironment=()=>n.applicationEnvironment,null==t||t(n),St=await async function(e,t){var n,r,o;if(e.initializers)return await Promise.all(e.initializers.beforeStart.map((t=>t(e)))),new pt(!1,void 0,e.initializers.afterStarted,mt.WebAssembly);{const i=[e,null!==(r=null===(n=t.resources)||void 0===n?void 0:n.extensions)&&void 0!==r?r:{}],s=new pt(!0,void 0,void 0,mt.WebAssembly),a=Object.keys((null===(o=null==t?void 0:t.resources)||void 0===o?void 0:o.libraryInitializers)||{});return await s.importInitializersAsync(a,i),s}}(e,n)},onDownloadResourceProgress:Rt,config:n,disableDotnet6Compatibility:!1,out:kt,err:Ft};return r}(e,t);e.applicationCulture&&n.withApplicationCulture(e.applicationCulture),e.environment&&n.withApplicationEnvironment(e.environment),e.loadBootResource&&n.withResourceLoader(e.loadBootResource),n.withModuleConfig(r),e.configureRuntime&&e.configureRuntime(n),Et=await n.create()}(e,t)},start:function(){return async function(){if(!Et)throw new Error("The runtime must be loaded it gets configured.");const{MONO:t,BINDING:n,Module:r,setModuleImports:o,INTERNAL:i,getConfig:s,invokeLibraryInitializers:a}=Et;gt=r,vt=n,bt=t,wt=i,function(e){const t=lt.match(/^Mac/i)?"Cmd":"Alt";ut(e)&&console.info(`Debugging hotkey: Shift+${t}+D (when application has focus)`),document.addEventListener("keydown",(t=>{t.shiftKey&&(t.metaKey||t.altKey)&&"KeyD"===t.code&&(ut(e)?navigator.userAgent.includes("Firefox")?async function(){const e=await fetch(`_framework/debug?url=${encodeURIComponent(location.href)}&isFirefox=true`);200!==e.status&&console.warn(await e.text())}():ct?function(){const e=document.createElement("a");e.href=`_framework/debug?url=${encodeURIComponent(location.href)}`,e.target="_blank",e.rel="noopener noreferrer",e.click()}():console.error("Currently, only Microsoft Edge (80+), Google Chrome, or Chromium, are supported for debugging."):console.error("Cannot start debugging, because the application was not compiled with debugging enabled."))}))}(s()),rt.runtime=Et,rt._internal.dotNetCriticalError=Ft,o("blazor-internal",{Blazor:{_internal:rt._internal}});const c=await Et.getAssemblyExports("Microsoft.AspNetCore.Components.WebAssembly");return Object.assign(rt._internal,{dotNetExports:{...c.Microsoft.AspNetCore.Components.WebAssembly.Services.DefaultWebAssemblyJSRuntime}}),yt=e.attachDispatcher({beginInvokeDotNetFromJS:(e,t,n,r,o)=>{if(Ot(),!r&&!t)throw new Error("Either assemblyName or dotNetObjectId must have a non null value.");const i=r?r.toString():t;rt._internal.dotNetExports.BeginInvokeDotNet(e?e.toString():null,i,n,o)},endInvokeJSFromDotNet:(e,t,n)=>{rt._internal.dotNetExports.EndInvokeJS(n)},sendByteArray:(e,t)=>{rt._internal.dotNetExports.ReceiveByteArrayFromJS(e,t)},invokeDotNetFromJS:(e,t,n,r)=>(Ot(),rt._internal.dotNetExports.InvokeDotNet(e||null,t,null!=n?n:0,r))}),{invokeLibraryInitializers:a}}()},callEntryPoint:async function(){try{await Et.runMain(Et.getConfig().mainAssemblyName,[])}catch(e){console.error(e),ft()}},toUint8Array:function(e){const t=Tt(e),n=Nt(t),r=new Uint8Array(n);return r.set(gt.HEAPU8.subarray(t+4,t+4+n)),r},getArrayLength:function(e){return Nt(Tt(e))},getArrayEntryPtr:function(e,t,n){return Tt(e)+4+t*n},getObjectFieldsBaseAddress:function(e){return e+8},readInt16Field:function(e,t){return n=e+(t||0),bt.getI16(n);var n},readInt32Field:function(e,t){return Nt(e+(t||0))},readUint64Field:function(e,t){return function(e){const t=e>>2,n=gt.HEAPU32[t+1];if(n>Ct)throw new Error(`Cannot read uint64 with high order part ${n}, because the result would exceed Number.MAX_SAFE_INTEGER.`);return n*At+gt.HEAPU32[t]}(e+(t||0))},readFloatField:function(e,t){return n=e+(t||0),bt.getF32(n);var n},readObjectField:function(e,t){return Nt(e+(t||0))},readStringField:function(e,t,n){const r=Nt(e+(t||0));if(0===r)return null;if(n){const e=vt.unbox_mono_obj(r);return"boolean"==typeof e?e?"":null:e}return vt.conv_string(r)},readStructField:function(e,t){return e+(t||0)},beginHeapLock:function(){return Ot(),It=Lt.create(),It},invokeWhenHeapUnlocked:function(e){It?It.enqueuePostReleaseAction(e):e()}};function Rt(e,t){const n=e/t*100;document.documentElement.style.setProperty("--blazor-load-percentage",`${n}%`),document.documentElement.style.setProperty("--blazor-load-percentage-text",`"${Math.floor(n)}%"`)}const Dt=["DEBUGGING ENABLED"],kt=e=>Dt.indexOf(e)<0&&console.log(e),Ft=e=>{console.error(e||"(null)"),ft()};function Tt(e){return e+12}function Ot(){if(It)throw new Error("Assertion failed - heap is currently locked")}class Lt{enqueuePostReleaseAction(e){this.postReleaseActions||(this.postReleaseActions=[]),this.postReleaseActions.push(e)}release(){var e;if(It!==this)throw new Error("Trying to release a lock which isn't current");for(wt.mono_wasm_gc_unlock(),It=null;null===(e=this.postReleaseActions)||void 0===e?void 0:e.length;)this.postReleaseActions.shift()(),Ot()}static create(){return wt.mono_wasm_gc_lock(),new Lt}}let Mt;class xt{constructor(e){this.batchAddress=e,this.arrayRangeReader=Pt,this.arrayBuilderSegmentReader=Bt,this.diffReader=Jt,this.editReader=jt,this.frameReader=Ht}updatedComponents(){return Mt.readStructField(this.batchAddress,0)}referenceFrames(){return Mt.readStructField(this.batchAddress,Pt.structLength)}disposedComponentIds(){return Mt.readStructField(this.batchAddress,2*Pt.structLength)}disposedEventHandlerIds(){return Mt.readStructField(this.batchAddress,3*Pt.structLength)}updatedComponentsEntry(e,t){return $t(e,t,Jt.structLength)}referenceFramesEntry(e,t){return $t(e,t,Ht.structLength)}disposedComponentIdsEntry(e,t){const n=$t(e,t,4);return Mt.readInt32Field(n)}disposedEventHandlerIdsEntry(e,t){const n=$t(e,t,8);return Mt.readUint64Field(n)}}const Pt={structLength:8,values:e=>Mt.readObjectField(e,0),count:e=>Mt.readInt32Field(e,4)},Bt={structLength:12,values:e=>{const t=Mt.readObjectField(e,0),n=Mt.getObjectFieldsBaseAddress(t);return Mt.readObjectField(n,0)},offset:e=>Mt.readInt32Field(e,4),count:e=>Mt.readInt32Field(e,8)},Jt={structLength:4+Bt.structLength,componentId:e=>Mt.readInt32Field(e,0),edits:e=>Mt.readStructField(e,4),editsEntry:(e,t)=>$t(e,t,jt.structLength)},jt={structLength:20,editType:e=>Mt.readInt32Field(e,0),siblingIndex:e=>Mt.readInt32Field(e,4),newTreeIndex:e=>Mt.readInt32Field(e,8),moveToSiblingIndex:e=>Mt.readInt32Field(e,8),removedAttributeName:e=>Mt.readStringField(e,16)},Ht={structLength:36,frameType:e=>Mt.readInt16Field(e,4),subtreeLength:e=>Mt.readInt32Field(e,8),elementReferenceCaptureId:e=>Mt.readStringField(e,16),componentId:e=>Mt.readInt32Field(e,12),elementName:e=>Mt.readStringField(e,16),textContent:e=>Mt.readStringField(e,16),markupContent:e=>Mt.readStringField(e,16),attributeName:e=>Mt.readStringField(e,16),attributeValue:e=>Mt.readStringField(e,24,!0),attributeEventHandlerId:e=>Mt.readUint64Field(e,8)};function $t(e,t,n){return Mt.getArrayEntryPtr(e,t,n)}const zt=/^\s*Blazor-WebAssembly-Component-State:(?[a-zA-Z0-9+/=]+)$/;function Wt(e,t,n="state"){var r;if(e.nodeType===Node.COMMENT_NODE){const o=e.textContent||"",i=t.exec(o),s=i&&i.groups&&i.groups[n];return s&&(null===(r=e.parentNode)||void 0===r||r.removeChild(e)),s}if(!e.hasChildNodes())return;const o=e.childNodes;for(let e=0;e.*)$/);function Vt(e,t){const n=e.currentElement;var r,o,i;if(n&&n.nodeType===Node.COMMENT_NODE&&n.textContent){const s=Kt.exec(n.textContent),a=s&&s.groups&&s.groups.descriptor;if(!a)return;!function(e){if(e.parentNode instanceof Document)throw new Error("Root components cannot be marked as interactive. The element must be rendered statically so that scripts are not evaluated multiple times.")}(n);try{const s=function(e){const t=JSON.parse(e),{type:n}=t;if("server"!==n&&"webassembly"!==n&&"auto"!==n)throw new Error(`Invalid component type '${n}'.`);return t}(a),c=function(e,t,n){const{prerenderId:r}=e;if(r){for(;n.next()&&n.currentElement;){const e=n.currentElement;if(e.nodeType!==Node.COMMENT_NODE)continue;if(!e.textContent)continue;const t=Kt.exec(e.textContent),o=t&&t[1];if(o)return en(o,r),e}throw new Error(`Could not find an end component comment for '${t}'.`)}}(s,n,e);if(t!==s.type)return;switch(s.type){case"webassembly":return o=n,i=c,Qt(r=s),{...r,uniqueId:qt++,start:o,end:i};case"server":return function(e,t,n){return Zt(e),{...e,uniqueId:qt++,start:t,end:n}}(s,n,c);case"auto":return function(e,t,n){return Zt(e),Qt(e),{...e,uniqueId:qt++,start:t,end:n}}(s,n,c)}}catch(e){throw new Error(`Found malformed component comment at ${n.textContent}`)}}}let Xt,Yt,Gt,qt=0;function Zt(e){const{descriptor:t,sequence:n}=e;if(!t)throw new Error("descriptor must be defined when using a descriptor.");if(void 0===n)throw new Error("sequence must be defined when using a descriptor.");if(!Number.isInteger(n))throw new Error(`Error parsing the sequence '${n}' for component '${JSON.stringify(e)}'`)}function Qt(e){const{assembly:t,typeName:n}=e;if(!t)throw new Error("assembly must be defined when using a descriptor.");if(!n)throw new Error("typeName must be defined when using a descriptor.");e.parameterDefinitions=e.parameterDefinitions&&atob(e.parameterDefinitions),e.parameterValues=e.parameterValues&&atob(e.parameterValues)}function en(e,t){const n=JSON.parse(e);if(1!==Object.keys(n).length)throw new Error(`Invalid end of component comment: '${e}'`);const r=n.prerenderId;if(!r)throw new Error(`End of component comment must have a value for the prerendered property: '${e}'`);if(r!==t)throw new Error(`End of component comment prerendered property must match the start comment prerender id: '${t}', '${r}'`)}class tn{constructor(e){this.childNodes=e,this.currentIndex=-1,this.length=e.length}next(){return this.currentIndex++,this.currentIndex{on=e}));const un=new Promise((e=>{sn=e}));let dn;function fn(e){if(Xt)throw new Error("WebAssembly options have already been configured.");!async function(e){const t=await e;Xt=t,dn()}(e)}function mn(e){if(void 0!==rn)throw new Error("Blazor WebAssembly has already started.");return rn=new Promise(hn.bind(null,e)),rn}async function hn(e,t,n){(function(){if(window.parent!==window&&!window.opener&&window.frameElement){const e=window.sessionStorage&&window.sessionStorage["Microsoft.AspNetCore.Components.WebAssembly.Authentication.CachedAuthSettings"],t=e&&JSON.parse(e);return t&&t.redirect_uri&&location.href.startsWith(t.redirect_uri)}return!1})()&&await new Promise((()=>{}));const r=pn();!function(e){const t=N;N=(e,n,r)=>{((e,t,n)=>{const r=function(e){return me[e]}(e);(null==r?void 0:r.eventDelegator.getHandler(t))&&_t.invokeWhenHeapUnlocked(n)})(e,n,(()=>t(e,n,r)))}}(),rt._internal.applyHotReload=(e,t,n,r)=>{yt.invokeDotNetStaticMethod("Microsoft.AspNetCore.Components.WebAssembly","ApplyHotReloadDelta",e,t,n,r)},rt._internal.getApplyUpdateCapabilities=()=>yt.invokeDotNetStaticMethod("Microsoft.AspNetCore.Components.WebAssembly","GetApplyUpdateCapabilities"),rt._internal.invokeJSFromDotNet=vn,rt._internal.invokeJSJson=bn,rt._internal.endInvokeDotNetFromJS=gn,rt._internal.receiveWebAssemblyDotNetDataStream=yn,rt._internal.receiveByteArray=wn;const o=(Mt=_t,Mt);rt.platform=o,rt._internal.renderBatch=(e,t)=>{const n=_t.beginHeapLock();try{!function(e,t){const n=me[e];if(!n)throw new Error(`There is no browser renderer with ID ${e}.`);const r=t.arrayRangeReader,o=t.updatedComponents(),i=r.values(o),s=r.count(o),a=t.referenceFrames(),c=r.values(a),l=t.diffReader;for(let e=0;e{await yt.invokeDotNetStaticMethodAsync("Microsoft.AspNetCore.Components.WebAssembly","NotifyLocationChanged",e,t,n)}),(async(e,t,n,r)=>{const o=await yt.invokeDotNetStaticMethodAsync("Microsoft.AspNetCore.Components.WebAssembly","NotifyLocationChangingAsync",t,n,r);rt._internal.navigationManager.endLocationChanging(e,o)}));const i=new nn(e);let s;rt._internal.registeredComponents={getRegisteredComponentsCount:()=>i.getCount(),getAssembly:e=>i.getAssembly(e),getTypeName:e=>i.getTypeName(e),getParameterDefinitions:e=>i.getParameterDefinitions(e)||"",getParameterValues:e=>i.getParameterValues(e)||""},rt._internal.getPersistedState=()=>Wt(document,zt)||"",rt._internal.getInitialComponentsUpdate=()=>un,rt._internal.updateRootComponents=e=>{var t;return null===(t=rt._internal.dotNetExports)||void 0===t?void 0:t.UpdateRootComponentsCore(e)},rt._internal.endUpdateRootComponents=t=>{var n;return null===(n=e.onAfterUpdateRootComponents)||void 0===n?void 0:n.call(e,t)},rt._internal.attachRootComponentToElement=(e,t,n)=>{const r=i.resolveRegisteredElement(e);r?ye(n,r,t,!1):function(e,t,n){const r="::before";let o=!1;if(e.endsWith("::after"))e=e.slice(0,-7),o=!0;else if(e.endsWith(r))throw new Error(`The '${r}' selector is not supported.`);const i=function(e){const t=m.get(e);if(t)return m.delete(e),t}(e)||document.querySelector(e);if(!i)throw new Error(`Could not find any element matching selector '${e}'.`);ye(n,P(i,!0),t,o)}(e,t,n)};try{await r,s=await o.start()}catch(e){throw new Error(`Failed to start platform. Reason: ${e}`)}o.callEntryPoint(),St.invokeAfterStartedCallbacks(rt),cn=!0,t()}function pn(){return null!=Gt||(Gt=(async()=>{await Yt;const e=null!=Xt?Xt:{},t=null==Xt?void 0:Xt.configureRuntime;e.configureRuntime=e=>{null==t||t(e),ln&&e.withEnvironmentVariable("__BLAZOR_WEBASSEMBLY_WAIT_FOR_ROOT_COMPONENTS","true")},await _t.load(e,on),an=!0})()),Gt}function vn(t,n,r,o){const i=_t.readStringField(t,0),s=_t.readInt32Field(t,4),a=_t.readStringField(t,8),c=_t.readUint64Field(t,20);if(null!==a){const e=_t.readUint64Field(t,12);if(0!==e)return yt.beginInvokeJSFromDotNet(e,i,a,s,c),0;{const e=yt.invokeJSFromDotNet(i,a,s,c);return null===e?0:vt.js_string_to_mono_string(e)}}{const t=e.findJSFunction(i,c).call(null,n,r,o);switch(s){case e.JSCallResultType.Default:return t;case e.JSCallResultType.JSObjectReference:return e.createJSObjectReference(t).__jsObjectId;case e.JSCallResultType.JSStreamReference:{const n=e.createJSStreamReference(t),r=JSON.stringify(n);return vt.js_string_to_mono_string(r)}case e.JSCallResultType.JSVoidResult:return null;default:throw new Error(`Invalid JS call result type '${s}'.`)}}}function bn(e,t,n,r,o){return 0!==o?(yt.beginInvokeJSFromDotNet(o,e,r,n,t),null):yt.invokeJSFromDotNet(e,r,n,t)}function gn(e,t,n){yt.endInvokeDotNetFromJS(e,t,n)}function yn(e,t,n,r){!function(e,t,n,r,o){let i=nt.get(t);if(!i){const n=new ReadableStream({start(e){nt.set(t,e),i=e}});e.supplyDotNetStream(t,n)}o?(i.error(o),nt.delete(t)):0===r?(i.close(),nt.delete(t)):i.enqueue(n.length===r?n:n.subarray(0,r))}(yt,e,t,n,r)}function wn(e,t){yt.receiveByteArray(e,t)}Yt=new Promise((e=>{dn=e}));class En{constructor(e){this.initialComponents=e}resolveRootComponent(e){return this.initialComponents[e]}}class Sn{constructor(){this._eventListeners=new Map}static create(e){const t=new Sn;return e.addEventListener=t.addEventListener.bind(t),e.removeEventListener=t.removeEventListener.bind(t),t}addEventListener(e,t){let n=this._eventListeners.get(e);n||(n=new Set,this._eventListeners.set(e,n)),n.add(t)}removeEventListener(e,t){var n;null===(n=this._eventListeners.get(e))||void 0===n||n.delete(t)}dispatchEvent(e,t){const n=this._eventListeners.get(e);if(!n)return;const r={...t,type:e};for(const e of n)e(r)}}let An=!1;async function Cn(e){if(An)throw new Error("Blazor has already started.");An=!0,fn(Promise.resolve(e||{})),Sn.create(rt);const t=Ut(document,"webassembly"),n=new En(t);await mn(n)}rt.start=Cn,window.DotNet=e,document&&document.currentScript&&"false"!==document.currentScript.getAttribute("autostart")&&Cn().catch((e=>{void 0!==gt&>.err?gt.err(e):console.error(e)}))})(); - /*! For license information please see AuthenticationService.js.LICENSE.txt */ var t,e;t={671:function(t){var e;e=function(){return function(t){var e={};function r(n){if(e[n])return e[n].exports;var i=e[n]={i:n,l:!1,exports:{}};return t[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=t,r.c=e,r.d=function(t,e,n){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},r.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.t=function(t,e){if(1&e&&(t=r(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)r.d(n,i,function(e){return t[e]}.bind(null,i));return n},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,"a",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p="",r(r.s=22)}([function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(t,e){for(var r=0;r=4){for(var t=arguments.length,e=Array(t),r=0;r=3){for(var t=arguments.length,e=Array(t),r=0;r=2){for(var t=arguments.length,e=Array(t),r=0;r=1){for(var t=arguments.length,e=Array(t),r=0;r1&&void 0!==arguments[1]?arguments[1]:o.JsonService;if(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),!e)throw i.Log.error("MetadataService: No settings passed to MetadataService"),new Error("settings");this._settings=e,this._jsonService=new r(["application/jwk-set+json"])}return t.prototype.resetSigningKeys=function(){this._settings=this._settings||{},this._settings.signingKeys=void 0},t.prototype.getMetadata=function(){var t=this;return this._settings.metadata?(i.Log.debug("MetadataService.getMetadata: Returning metadata from settings"),Promise.resolve(this._settings.metadata)):this.metadataUrl?(i.Log.debug("MetadataService.getMetadata: getting metadata from",this.metadataUrl),this._jsonService.getJson(this.metadataUrl).then((function(e){i.Log.debug("MetadataService.getMetadata: json received");var r=t._settings.metadataSeed||{};return t._settings.metadata=Object.assign({},r,e),t._settings.metadata}))):(i.Log.error("MetadataService.getMetadata: No authority or metadataUrl configured on settings"),Promise.reject(new Error("No authority or metadataUrl configured on settings")))},t.prototype.getIssuer=function(){return this._getMetadataProperty("issuer")},t.prototype.getAuthorizationEndpoint=function(){return this._getMetadataProperty("authorization_endpoint")},t.prototype.getUserInfoEndpoint=function(){return this._getMetadataProperty("userinfo_endpoint")},t.prototype.getTokenEndpoint=function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return this._getMetadataProperty("token_endpoint",t)},t.prototype.getCheckSessionIframe=function(){return this._getMetadataProperty("check_session_iframe",!0)},t.prototype.getEndSessionEndpoint=function(){return this._getMetadataProperty("end_session_endpoint",!0)},t.prototype.getRevocationEndpoint=function(){return this._getMetadataProperty("revocation_endpoint",!0)},t.prototype.getKeysEndpoint=function(){return this._getMetadataProperty("jwks_uri",!0)},t.prototype._getMetadataProperty=function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return i.Log.debug("MetadataService.getMetadataProperty for: "+t),this.getMetadata().then((function(r){if(i.Log.debug("MetadataService.getMetadataProperty: metadata recieved"),void 0===r[t]){if(!0===e)return void i.Log.warn("MetadataService.getMetadataProperty: Metadata does not contain optional property "+t);throw i.Log.error("MetadataService.getMetadataProperty: Metadata does not contain property "+t),new Error("Metadata does not contain property "+t)}return r[t]}))},t.prototype.getSigningKeys=function(){var t=this;return this._settings.signingKeys?(i.Log.debug("MetadataService.getSigningKeys: Returning signingKeys from settings"),Promise.resolve(this._settings.signingKeys)):this._getMetadataProperty("jwks_uri").then((function(e){return i.Log.debug("MetadataService.getSigningKeys: jwks_uri received",e),t._jsonService.getJson(e).then((function(e){if(i.Log.debug("MetadataService.getSigningKeys: key set received",e),!e.keys)throw i.Log.error("MetadataService.getSigningKeys: Missing keys on keyset"),new Error("Missing keys on keyset");return t._settings.signingKeys=e.keys,t._settings.signingKeys}))}))},n(t,[{key:"metadataUrl",get:function(){return this._metadataUrl||(this._settings.metadataUrl?this._metadataUrl=this._settings.metadataUrl:(this._metadataUrl=this._settings.authority,this._metadataUrl&&this._metadataUrl.indexOf(s)<0&&("/"!==this._metadataUrl[this._metadataUrl.length-1]&&(this._metadataUrl+="/"),this._metadataUrl+=s))),this._metadataUrl}}]),t}()},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.UrlUtility=void 0;var n=r(0),i=r(1);e.UrlUtility=function(){function t(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t)}return t.addQueryParam=function(t,e,r){return t.indexOf("?")<0&&(t+="?"),"?"!==t[t.length-1]&&(t+="&"),t+=encodeURIComponent(e),(t+="=")+encodeURIComponent(r)},t.parseUrlFragment=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"#",r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:i.Global;"string"!=typeof t&&(t=r.location.href);var o=t.lastIndexOf(e);o>=0&&(t=t.substr(o+1)),"?"===e&&(o=t.indexOf("#"))>=0&&(t=t.substr(0,o));for(var s,a={},u=/([^&=]+)=([^&]*)/g,c=0;s=u.exec(t);)if(a[decodeURIComponent(s[1])]=decodeURIComponent(s[2].replace(/\+/g," ")),c++>50)return n.Log.error("UrlUtility.parseUrlFragment: response exceeded expected number of parameters",t),{error:"Response exceeded expected number of parameters"};for(var h in a)return a;return{}},t}()},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.JoseUtil=void 0;var n=r(26),i=function(t){return t&&t.__esModule?t:{default:t}}(r(33));e.JoseUtil=(0,i.default)({jws:n.jws,KeyUtil:n.KeyUtil,X509:n.X509,crypto:n.crypto,hextob64u:n.hextob64u,b64tohex:n.b64tohex,AllowedSigningAlgs:n.AllowedSigningAlgs})},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.OidcClientSettings=void 0;var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i=function(){function t(t,e){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{},r=e.authority,i=e.metadataUrl,o=e.metadata,h=e.signingKeys,d=e.metadataSeed,p=e.client_id,v=e.client_secret,y=e.response_type,m=void 0===y?l:y,_=e.scope,S=void 0===_?f:_,w=e.redirect_uri,b=e.post_logout_redirect_uri,F=e.client_authentication,E=void 0===F?g:F,x=e.prompt,A=e.display,k=e.max_age,P=e.ui_locales,C=e.acr_values,T=e.resource,R=e.response_mode,I=e.filterProtocolClaims,D=void 0===I||I,L=e.loadUserInfo,N=void 0===L||L,U=e.staleStateAge,O=void 0===U?900:U,B=e.clockSkew,M=void 0===B?300:B,j=e.clockService,H=void 0===j?new s.ClockService:j,K=e.userInfoJwtIssuer,V=void 0===K?"OP":K,q=e.mergeClaims,J=void 0!==q&&q,W=e.stateStore,z=void 0===W?new a.WebStorageStateStore:W,Y=e.ResponseValidatorCtor,G=void 0===Y?u.ResponseValidator:Y,$=e.MetadataServiceCtor,X=void 0===$?c.MetadataService:$,Q=e.extraQueryParams,Z=void 0===Q?{}:Q,tt=e.extraTokenParams,et=void 0===tt?{}:tt;(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")})(this,t),this._authority=r,this._metadataUrl=i,this._metadata=o,this._metadataSeed=d,this._signingKeys=h,this._client_id=p,this._client_secret=v,this._response_type=m,this._scope=S,this._redirect_uri=w,this._post_logout_redirect_uri=b,this._client_authentication=E,this._prompt=x,this._display=A,this._max_age=k,this._ui_locales=P,this._acr_values=C,this._resource=T,this._response_mode=R,this._filterProtocolClaims=!!D,this._loadUserInfo=!!N,this._staleStateAge=O,this._clockSkew=M,this._clockService=H,this._userInfoJwtIssuer=V,this._mergeClaims=!!J,this._stateStore=z,this._validator=new G(this),this._metadataService=new X(this),this._extraQueryParams="object"===(void 0===Z?"undefined":n(Z))?Z:{},this._extraTokenParams="object"===(void 0===et?"undefined":n(et))?et:{}}return t.prototype.getEpochTime=function(){return this._clockService.getEpochTime()},i(t,[{key:"client_id",get:function(){return this._client_id},set:function(t){if(this._client_id)throw o.Log.error("OidcClientSettings.set_client_id: client_id has already been assigned."),new Error("client_id has already been assigned.");this._client_id=t}},{key:"client_secret",get:function(){return this._client_secret}},{key:"response_type",get:function(){return this._response_type}},{key:"scope",get:function(){return this._scope}},{key:"redirect_uri",get:function(){return this._redirect_uri}},{key:"post_logout_redirect_uri",get:function(){return this._post_logout_redirect_uri}},{key:"client_authentication",get:function(){return this._client_authentication}},{key:"prompt",get:function(){return this._prompt}},{key:"display",get:function(){return this._display}},{key:"max_age",get:function(){return this._max_age}},{key:"ui_locales",get:function(){return this._ui_locales}},{key:"acr_values",get:function(){return this._acr_values}},{key:"resource",get:function(){return this._resource}},{key:"response_mode",get:function(){return this._response_mode}},{key:"authority",get:function(){return this._authority},set:function(t){if(this._authority)throw o.Log.error("OidcClientSettings.set_authority: authority has already been assigned."),new Error("authority has already been assigned.");this._authority=t}},{key:"metadataUrl",get:function(){return this._metadataUrl||(this._metadataUrl=this.authority,this._metadataUrl&&this._metadataUrl.indexOf(h)<0&&("/"!==this._metadataUrl[this._metadataUrl.length-1]&&(this._metadataUrl+="/"),this._metadataUrl+=h)),this._metadataUrl}},{key:"metadata",get:function(){return this._metadata},set:function(t){this._metadata=t}},{key:"metadataSeed",get:function(){return this._metadataSeed},set:function(t){this._metadataSeed=t}},{key:"signingKeys",get:function(){return this._signingKeys},set:function(t){this._signingKeys=t}},{key:"filterProtocolClaims",get:function(){return this._filterProtocolClaims}},{key:"loadUserInfo",get:function(){return this._loadUserInfo}},{key:"staleStateAge",get:function(){return this._staleStateAge}},{key:"clockSkew",get:function(){return this._clockSkew}},{key:"userInfoJwtIssuer",get:function(){return this._userInfoJwtIssuer}},{key:"mergeClaims",get:function(){return this._mergeClaims}},{key:"stateStore",get:function(){return this._stateStore}},{key:"validator",get:function(){return this._validator}},{key:"metadataService",get:function(){return this._metadataService}},{key:"extraQueryParams",get:function(){return this._extraQueryParams},set:function(t){"object"===(void 0===t?"undefined":n(t))?this._extraQueryParams=t:this._extraQueryParams={}}},{key:"extraTokenParams",get:function(){return this._extraTokenParams},set:function(t){"object"===(void 0===t?"undefined":n(t))?this._extraTokenParams=t:this._extraTokenParams={}}}]),t}()},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.WebStorageStateStore=void 0;var n=r(0),i=r(1);e.WebStorageStateStore=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=e.prefix,n=void 0===r?"oidc.":r,o=e.store,s=void 0===o?i.Global.localStorage:o;(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")})(this,t),this._store=s,this._prefix=n}return t.prototype.set=function(t,e){return n.Log.debug("WebStorageStateStore.set",t),t=this._prefix+t,this._store.setItem(t,e),Promise.resolve()},t.prototype.get=function(t){n.Log.debug("WebStorageStateStore.get",t),t=this._prefix+t;var e=this._store.getItem(t);return Promise.resolve(e)},t.prototype.remove=function(t){n.Log.debug("WebStorageStateStore.remove",t),t=this._prefix+t;var e=this._store.getItem(t);return this._store.removeItem(t),Promise.resolve(e)},t.prototype.getAllKeys=function(){n.Log.debug("WebStorageStateStore.getAllKeys");for(var t=[],e=0;e0&&void 0!==arguments[0]?arguments[0]:null,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:i.Global.XMLHttpRequest,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")})(this,t),e&&Array.isArray(e)?this._contentTypes=e.slice():this._contentTypes=[],this._contentTypes.push("application/json"),n&&this._contentTypes.push("application/jwt"),this._XMLHttpRequest=r,this._jwtHandler=n}return t.prototype.getJson=function(t,e){var r=this;if(!t)throw n.Log.error("JsonService.getJson: No url passed"),new Error("url");return n.Log.debug("JsonService.getJson, url: ",t),new Promise((function(i,o){var s=new r._XMLHttpRequest;s.open("GET",t);var a=r._contentTypes,u=r._jwtHandler;s.onload=function(){if(n.Log.debug("JsonService.getJson: HTTP response received, status",s.status),200===s.status){var e=s.getResponseHeader("Content-Type");if(e){var r=a.find((function(t){if(e.startsWith(t))return!0}));if("application/jwt"==r)return void u(s).then(i,o);if(r)try{return void i(JSON.parse(s.responseText))}catch(t){return n.Log.error("JsonService.getJson: Error parsing JSON response",t.message),void o(t)}}o(Error("Invalid response Content-Type: "+e+", from URL: "+t))}else o(Error(s.statusText+" ("+s.status+")"))},s.onerror=function(){n.Log.error("JsonService.getJson: network error"),o(Error("Network Error"))},e&&(n.Log.debug("JsonService.getJson: token passed, setting Authorization header"),s.setRequestHeader("Authorization","Bearer "+e)),s.send()}))},t.prototype.postForm=function(t,e,r){var i=this;if(!t)throw n.Log.error("JsonService.postForm: No url passed"),new Error("url");return n.Log.debug("JsonService.postForm, url: ",t),new Promise((function(o,s){var a=new i._XMLHttpRequest;a.open("POST",t);var u=i._contentTypes;a.onload=function(){if(n.Log.debug("JsonService.postForm: HTTP response received, status",a.status),200!==a.status){if(400===a.status&&(r=a.getResponseHeader("Content-Type"))&&u.find((function(t){if(r.startsWith(t))return!0})))try{var e=JSON.parse(a.responseText);if(e&&e.error)return n.Log.error("JsonService.postForm: Error from server: ",e.error),void s(new Error(e.error))}catch(t){return n.Log.error("JsonService.postForm: Error parsing JSON response",t.message),void s(t)}s(Error(a.statusText+" ("+a.status+")"))}else{var r;if((r=a.getResponseHeader("Content-Type"))&&u.find((function(t){if(r.startsWith(t))return!0})))try{return void o(JSON.parse(a.responseText))}catch(t){return n.Log.error("JsonService.postForm: Error parsing JSON response",t.message),void s(t)}s(Error("Invalid response Content-Type: "+r+", from URL: "+t))}},a.onerror=function(){n.Log.error("JsonService.postForm: network error"),s(Error("Network Error"))};var c="";for(var h in e){var l=e[h];l&&(c.length>0&&(c+="&"),c+=encodeURIComponent(h),c+="=",c+=encodeURIComponent(l))}a.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),void 0!==r&&a.setRequestHeader("Authorization","Basic "+btoa(r)),a.send(c)}))},t}()},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SigninRequest=void 0;var n=r(0),i=r(3),o=r(13);e.SigninRequest=function(){function t(e){var r=e.url,s=e.client_id,a=e.redirect_uri,u=e.response_type,c=e.scope,h=e.authority,l=e.data,f=e.prompt,g=e.display,d=e.max_age,p=e.ui_locales,v=e.id_token_hint,y=e.login_hint,m=e.acr_values,_=e.resource,S=e.response_mode,w=e.request,b=e.request_uri,F=e.extraQueryParams,E=e.request_type,x=e.client_secret,A=e.extraTokenParams,k=e.skipUserInfo;if(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),!r)throw n.Log.error("SigninRequest.ctor: No url passed"),new Error("url");if(!s)throw n.Log.error("SigninRequest.ctor: No client_id passed"),new Error("client_id");if(!a)throw n.Log.error("SigninRequest.ctor: No redirect_uri passed"),new Error("redirect_uri");if(!u)throw n.Log.error("SigninRequest.ctor: No response_type passed"),new Error("response_type");if(!c)throw n.Log.error("SigninRequest.ctor: No scope passed"),new Error("scope");if(!h)throw n.Log.error("SigninRequest.ctor: No authority passed"),new Error("authority");var P=t.isOidc(u),C=t.isCode(u);S||(S=t.isCode(u)?"query":null),this.state=new o.SigninState({nonce:P,data:l,client_id:s,authority:h,redirect_uri:a,code_verifier:C,request_type:E,response_mode:S,client_secret:x,scope:c,extraTokenParams:A,skipUserInfo:k}),r=i.UrlUtility.addQueryParam(r,"client_id",s),r=i.UrlUtility.addQueryParam(r,"redirect_uri",a),r=i.UrlUtility.addQueryParam(r,"response_type",u),r=i.UrlUtility.addQueryParam(r,"scope",c),r=i.UrlUtility.addQueryParam(r,"state",this.state.id),P&&(r=i.UrlUtility.addQueryParam(r,"nonce",this.state.nonce)),C&&(r=i.UrlUtility.addQueryParam(r,"code_challenge",this.state.code_challenge),r=i.UrlUtility.addQueryParam(r,"code_challenge_method","S256"));var T={prompt:f,display:g,max_age:d,ui_locales:p,id_token_hint:v,login_hint:y,acr_values:m,resource:_,request:w,request_uri:b,response_mode:S};for(var R in T)T[R]&&(r=i.UrlUtility.addQueryParam(r,R,T[R]));for(var I in F)r=i.UrlUtility.addQueryParam(r,I,F[I]);this.url=r}return t.isOidc=function(t){return!!t.split(/\s+/g).filter((function(t){return"id_token"===t}))[0]},t.isOAuth=function(t){return!!t.split(/\s+/g).filter((function(t){return"token"===t}))[0]},t.isCode=function(t){return!!t.split(/\s+/g).filter((function(t){return"code"===t}))[0]},t}()},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.State=void 0;var n=function(){function t(t,e){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{},r=e.id,n=e.data,i=e.created,s=e.request_type;(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")})(this,t),this._id=r||(0,o.default)(),this._data=n,this._created="number"==typeof i&&i>0?i:parseInt(Date.now()/1e3),this._request_type=s}return t.prototype.toStorageString=function(){return i.Log.debug("State.toStorageString"),JSON.stringify({id:this.id,data:this.data,created:this.created,request_type:this.request_type})},t.fromStorageString=function(e){return i.Log.debug("State.fromStorageString"),new t(JSON.parse(e))},t.clearStaleState=function(e,r){var n=Date.now()/1e3-r;return e.getAllKeys().then((function(r){i.Log.debug("State.clearStaleState: got keys",r);for(var o=[],s=function(s){var a=r[s];u=e.get(a).then((function(r){var o=!1;if(r)try{var s=t.fromStorageString(r);i.Log.debug("State.clearStaleState: got item from key: ",a,s.created),s.created<=n&&(o=!0)}catch(t){i.Log.error("State.clearStaleState: Error parsing state for key",a,t.message),o=!0}else i.Log.debug("State.clearStaleState: no item in storage for key: ",a),o=!0;if(o)return i.Log.debug("State.clearStaleState: removed item for key: ",a),e.remove(a)})),o.push(u)},a=0;a0&&void 0!==arguments[0]?arguments[0]:{};(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")})(this,t),e instanceof o.OidcClientSettings?this._settings=e:this._settings=new o.OidcClientSettings(e)}return t.prototype.createSigninRequest=function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=e.response_type,n=e.scope,o=e.redirect_uri,s=e.data,u=e.state,c=e.prompt,h=e.display,l=e.max_age,f=e.ui_locales,g=e.id_token_hint,d=e.login_hint,p=e.acr_values,v=e.resource,y=e.request,m=e.request_uri,_=e.response_mode,S=e.extraQueryParams,w=e.extraTokenParams,b=e.request_type,F=e.skipUserInfo,E=arguments[1];i.Log.debug("OidcClient.createSigninRequest");var x=this._settings.client_id;r=r||this._settings.response_type,n=n||this._settings.scope,o=o||this._settings.redirect_uri,c=c||this._settings.prompt,h=h||this._settings.display,l=l||this._settings.max_age,f=f||this._settings.ui_locales,p=p||this._settings.acr_values,v=v||this._settings.resource,_=_||this._settings.response_mode,S=S||this._settings.extraQueryParams,w=w||this._settings.extraTokenParams;var A=this._settings.authority;return a.SigninRequest.isCode(r)&&"code"!==r?Promise.reject(new Error("OpenID Connect hybrid flow is not supported")):this._metadataService.getAuthorizationEndpoint().then((function(e){i.Log.debug("OidcClient.createSigninRequest: Received authorization endpoint",e);var k=new a.SigninRequest({url:e,client_id:x,redirect_uri:o,response_type:r,scope:n,data:s||u,authority:A,prompt:c,display:h,max_age:l,ui_locales:f,id_token_hint:g,login_hint:d,acr_values:p,resource:v,request:y,request_uri:m,extraQueryParams:S,extraTokenParams:w,request_type:b,response_mode:_,client_secret:t._settings.client_secret,skipUserInfo:F}),P=k.state;return(E=E||t._stateStore).set(P.id,P.toStorageString()).then((function(){return k}))}))},t.prototype.readSigninResponseState=function(t,e){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];i.Log.debug("OidcClient.readSigninResponseState");var n="query"===this._settings.response_mode||!this._settings.response_mode&&a.SigninRequest.isCode(this._settings.response_type)?"?":"#",o=new u.SigninResponse(t,n);return o.state?(e=e||this._stateStore,(r?e.remove.bind(e):e.get.bind(e))(o.state).then((function(t){if(!t)throw i.Log.error("OidcClient.readSigninResponseState: No matching state found in storage"),new Error("No matching state found in storage");return{state:l.SigninState.fromStorageString(t),response:o}}))):(i.Log.error("OidcClient.readSigninResponseState: No state in response"),Promise.reject(new Error("No state in response")))},t.prototype.processSigninResponse=function(t,e){var r=this;return i.Log.debug("OidcClient.processSigninResponse"),this.readSigninResponseState(t,e,!0).then((function(t){var e=t.state,n=t.response;return i.Log.debug("OidcClient.processSigninResponse: Received state from storage; validating response"),r._validator.validateSigninResponse(e,n)}))},t.prototype.createSignoutRequest=function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=e.id_token_hint,n=e.data,o=e.state,s=e.post_logout_redirect_uri,a=e.extraQueryParams,u=e.request_type,h=arguments[1];return i.Log.debug("OidcClient.createSignoutRequest"),s=s||this._settings.post_logout_redirect_uri,a=a||this._settings.extraQueryParams,this._metadataService.getEndSessionEndpoint().then((function(e){if(!e)throw i.Log.error("OidcClient.createSignoutRequest: No end session endpoint url returned"),new Error("no end session endpoint");i.Log.debug("OidcClient.createSignoutRequest: Received end session endpoint",e);var l=new c.SignoutRequest({url:e,id_token_hint:r,post_logout_redirect_uri:s,data:n||o,extraQueryParams:a,request_type:u}),f=l.state;return f&&(i.Log.debug("OidcClient.createSignoutRequest: Signout request has state to persist"),(h=h||t._stateStore).set(f.id,f.toStorageString())),l}))},t.prototype.readSignoutResponseState=function(t,e){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];i.Log.debug("OidcClient.readSignoutResponseState");var n=new h.SignoutResponse(t);if(!n.state)return i.Log.debug("OidcClient.readSignoutResponseState: No state in response"),n.error?(i.Log.warn("OidcClient.readSignoutResponseState: Response was error: ",n.error),Promise.reject(new s.ErrorResponse(n))):Promise.resolve({state:void 0,response:n});var o=n.state;return e=e||this._stateStore,(r?e.remove.bind(e):e.get.bind(e))(o).then((function(t){if(!t)throw i.Log.error("OidcClient.readSignoutResponseState: No matching state found in storage"),new Error("No matching state found in storage");return{state:f.State.fromStorageString(t),response:n}}))},t.prototype.processSignoutResponse=function(t,e){var r=this;return i.Log.debug("OidcClient.processSignoutResponse"),this.readSignoutResponseState(t,e,!0).then((function(t){var e=t.state,n=t.response;return e?(i.Log.debug("OidcClient.processSignoutResponse: Received state from storage; validating response"),r._validator.validateSignoutResponse(e,n)):(i.Log.debug("OidcClient.processSignoutResponse: No state from storage; skipping validating response"),n)}))},t.prototype.clearStaleState=function(t){return i.Log.debug("OidcClient.clearStaleState"),t=t||this._stateStore,f.State.clearStaleState(t,this.settings.staleStateAge)},n(t,[{key:"_stateStore",get:function(){return this.settings.stateStore}},{key:"_validator",get:function(){return this.settings.validator}},{key:"_metadataService",get:function(){return this.settings.metadataService}},{key:"settings",get:function(){return this._settings}},{key:"metadataService",get:function(){return this._metadataService}}]),t}()},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.TokenClient=void 0;var n=r(7),i=r(2),o=r(0);e.TokenClient=function(){function t(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:n.JsonService,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:i.MetadataService;if(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),!e)throw o.Log.error("TokenClient.ctor: No settings passed"),new Error("settings");this._settings=e,this._jsonService=new r,this._metadataService=new s(this._settings)}return t.prototype.exchangeCode=function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(e=Object.assign({},e)).grant_type=e.grant_type||"authorization_code",e.client_id=e.client_id||this._settings.client_id,e.client_secret=e.client_secret||this._settings.client_secret,e.redirect_uri=e.redirect_uri||this._settings.redirect_uri;var r=void 0,n=e._client_authentication||this._settings._client_authentication;return delete e._client_authentication,e.code?e.redirect_uri?e.code_verifier?e.client_id?e.client_secret||"client_secret_basic"!=n?("client_secret_basic"==n&&(r=e.client_id+":"+e.client_secret,delete e.client_id,delete e.client_secret),this._metadataService.getTokenEndpoint(!1).then((function(n){return o.Log.debug("TokenClient.exchangeCode: Received token endpoint"),t._jsonService.postForm(n,e,r).then((function(t){return o.Log.debug("TokenClient.exchangeCode: response received"),t}))}))):(o.Log.error("TokenClient.exchangeCode: No client_secret passed"),Promise.reject(new Error("A client_secret is required"))):(o.Log.error("TokenClient.exchangeCode: No client_id passed"),Promise.reject(new Error("A client_id is required"))):(o.Log.error("TokenClient.exchangeCode: No code_verifier passed"),Promise.reject(new Error("A code_verifier is required"))):(o.Log.error("TokenClient.exchangeCode: No redirect_uri passed"),Promise.reject(new Error("A redirect_uri is required"))):(o.Log.error("TokenClient.exchangeCode: No code passed"),Promise.reject(new Error("A code is required")))},t.prototype.exchangeRefreshToken=function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(e=Object.assign({},e)).grant_type=e.grant_type||"refresh_token",e.client_id=e.client_id||this._settings.client_id,e.client_secret=e.client_secret||this._settings.client_secret;var r=void 0,n=e._client_authentication||this._settings._client_authentication;return delete e._client_authentication,e.refresh_token?e.client_id?("client_secret_basic"==n&&(r=e.client_id+":"+e.client_secret,delete e.client_id,delete e.client_secret),this._metadataService.getTokenEndpoint(!1).then((function(n){return o.Log.debug("TokenClient.exchangeRefreshToken: Received token endpoint"),t._jsonService.postForm(n,e,r).then((function(t){return o.Log.debug("TokenClient.exchangeRefreshToken: response received"),t}))}))):(o.Log.error("TokenClient.exchangeRefreshToken: No client_id passed"),Promise.reject(new Error("A client_id is required"))):(o.Log.error("TokenClient.exchangeRefreshToken: No refresh_token passed"),Promise.reject(new Error("A refresh_token is required")))},t}()},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ErrorResponse=void 0;var n=r(0);e.ErrorResponse=function(t){function e(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=r.error,o=r.error_description,s=r.error_uri,a=r.state,u=r.session_state;if(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e),!i)throw n.Log.error("No error passed to ErrorResponse"),new Error("error");var c=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}(this,t.call(this,o||i));return c.name="ErrorResponse",c.error=i,c.error_description=o,c.error_uri=s,c.state=a,c.session_state=u,c}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,t),e}(Error)},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SigninState=void 0;var n=function(){function t(t,e){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{},n=r.nonce,i=r.authority,o=r.client_id,u=r.redirect_uri,c=r.code_verifier,h=r.response_mode,l=r.client_secret,f=r.scope,g=r.extraTokenParams,d=r.skipUserInfo;!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e);var p=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}(this,t.call(this,arguments[0]));if(!0===n?p._nonce=(0,a.default)():n&&(p._nonce=n),!0===c?p._code_verifier=(0,a.default)()+(0,a.default)()+(0,a.default)():c&&(p._code_verifier=c),p.code_verifier){var v=s.JoseUtil.hashString(p.code_verifier,"SHA256");p._code_challenge=s.JoseUtil.hexToBase64Url(v)}return p._redirect_uri=u,p._authority=i,p._client_id=o,p._response_mode=h,p._client_secret=l,p._scope=f,p._extraTokenParams=g,p._skipUserInfo=d,p}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,t),e.prototype.toStorageString=function(){return i.Log.debug("SigninState.toStorageString"),JSON.stringify({id:this.id,data:this.data,created:this.created,request_type:this.request_type,nonce:this.nonce,code_verifier:this.code_verifier,redirect_uri:this.redirect_uri,authority:this.authority,client_id:this.client_id,response_mode:this.response_mode,client_secret:this.client_secret,scope:this.scope,extraTokenParams:this.extraTokenParams,skipUserInfo:this.skipUserInfo})},e.fromStorageString=function(t){return i.Log.debug("SigninState.fromStorageString"),new e(JSON.parse(t))},n(e,[{key:"nonce",get:function(){return this._nonce}},{key:"authority",get:function(){return this._authority}},{key:"client_id",get:function(){return this._client_id}},{key:"redirect_uri",get:function(){return this._redirect_uri}},{key:"code_verifier",get:function(){return this._code_verifier}},{key:"code_challenge",get:function(){return this._code_challenge}},{key:"response_mode",get:function(){return this._response_mode}},{key:"client_secret",get:function(){return this._client_secret}},{key:"scope",get:function(){return this._scope}},{key:"extraTokenParams",get:function(){return this._extraTokenParams}},{key:"skipUserInfo",get:function(){return this._skipUserInfo}}]),e}(o.State)},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(){return("undefined"!=n&&null!==n&&void 0!==n.getRandomValues?i:o)().replace(/-/g,"")};var n="undefined"!=typeof window?window.crypto||window.msCrypto:null;function i(){return([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,(function(t){return(t^n.getRandomValues(new Uint8Array(1))[0]&15>>t/4).toString(16)}))}function o(){return([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,(function(t){return(t^16*Math.random()>>t/4).toString(16)}))}t.exports=e.default},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.User=void 0;var n=function(){function t(t,e){for(var r=0;r0){var r=parseInt(Date.now()/1e3);this.expires_at=r+e}}},{key:"expired",get:function(){var t=this.expires_in;if(void 0!==t)return t<=0}},{key:"scopes",get:function(){return(this.scope||"").split(" ")}}]),t}()},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.AccessTokenEvents=void 0;var n=r(0),i=r(46);e.AccessTokenEvents=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=e.accessTokenExpiringNotificationTime,n=void 0===r?60:r,o=e.accessTokenExpiringTimer,s=void 0===o?new i.Timer("Access token expiring"):o,a=e.accessTokenExpiredTimer,u=void 0===a?new i.Timer("Access token expired"):a;(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")})(this,t),this._accessTokenExpiringNotificationTime=n,this._accessTokenExpiring=s,this._accessTokenExpired=u}return t.prototype.load=function(t){if(t.access_token&&void 0!==t.expires_in){var e=t.expires_in;if(n.Log.debug("AccessTokenEvents.load: access token present, remaining duration:",e),e>0){var r=e-this._accessTokenExpiringNotificationTime;r<=0&&(r=1),n.Log.debug("AccessTokenEvents.load: registering expiring timer in:",r),this._accessTokenExpiring.init(r)}else n.Log.debug("AccessTokenEvents.load: canceling existing expiring timer becase we're past expiration."),this._accessTokenExpiring.cancel();var i=e+1;n.Log.debug("AccessTokenEvents.load: registering expired timer in:",i),this._accessTokenExpired.init(i)}else this._accessTokenExpiring.cancel(),this._accessTokenExpired.cancel()},t.prototype.unload=function(){n.Log.debug("AccessTokenEvents.unload: canceling existing access token timers"),this._accessTokenExpiring.cancel(),this._accessTokenExpired.cancel()},t.prototype.addAccessTokenExpiring=function(t){this._accessTokenExpiring.addHandler(t)},t.prototype.removeAccessTokenExpiring=function(t){this._accessTokenExpiring.removeHandler(t)},t.prototype.addAccessTokenExpired=function(t){this._accessTokenExpired.addHandler(t)},t.prototype.removeAccessTokenExpired=function(t){this._accessTokenExpired.removeHandler(t)},t}()},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Event=void 0;var n=r(0);e.Event=function(){function t(e){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this._name=e,this._callbacks=[]}return t.prototype.addHandler=function(t){this._callbacks.push(t)},t.prototype.removeHandler=function(t){var e=this._callbacks.findIndex((function(e){return e===t}));e>=0&&this._callbacks.splice(e,1)},t.prototype.raise=function(){n.Log.debug("Event: Raising event: "+this._name);for(var t=0;t1&&void 0!==arguments[1]?arguments[1]:o.CheckSessionIFrame,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:s.Global.timer;if(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),!e)throw i.Log.error("SessionMonitor.ctor: No user manager passed to SessionMonitor"),new Error("userManager");this._userManager=e,this._CheckSessionIFrameCtor=n,this._timer=a,this._userManager.events.addUserLoaded(this._start.bind(this)),this._userManager.events.addUserUnloaded(this._stop.bind(this)),Promise.resolve(this._userManager.getUser().then((function(t){t?r._start(t):r._settings.monitorAnonymousSession&&r._userManager.querySessionStatus().then((function(t){var e={session_state:t.session_state};t.sub&&t.sid&&(e.profile={sub:t.sub,sid:t.sid}),r._start(e)})).catch((function(t){i.Log.error("SessionMonitor ctor: error from querySessionStatus:",t.message)}))})).catch((function(t){i.Log.error("SessionMonitor ctor: error from getUser:",t.message)})))}return t.prototype._start=function(t){var e=this,r=t.session_state;r&&(t.profile?(this._sub=t.profile.sub,this._sid=t.profile.sid,i.Log.debug("SessionMonitor._start: session_state:",r,", sub:",this._sub)):(this._sub=void 0,this._sid=void 0,i.Log.debug("SessionMonitor._start: session_state:",r,", anonymous user")),this._checkSessionIFrame?this._checkSessionIFrame.start(r):this._metadataService.getCheckSessionIframe().then((function(t){if(t){i.Log.debug("SessionMonitor._start: Initializing check session iframe");var n=e._client_id,o=e._checkSessionInterval,s=e._stopCheckSessionOnError;e._checkSessionIFrame=new e._CheckSessionIFrameCtor(e._callback.bind(e),n,t,o,s),e._checkSessionIFrame.load().then((function(){e._checkSessionIFrame.start(r)}))}else i.Log.warn("SessionMonitor._start: No check session iframe found in the metadata")})).catch((function(t){i.Log.error("SessionMonitor._start: Error from getCheckSessionIframe:",t.message)})))},t.prototype._stop=function(){var t=this;if(this._sub=void 0,this._sid=void 0,this._checkSessionIFrame&&(i.Log.debug("SessionMonitor._stop"),this._checkSessionIFrame.stop()),this._settings.monitorAnonymousSession)var e=this._timer.setInterval((function(){t._timer.clearInterval(e),t._userManager.querySessionStatus().then((function(e){var r={session_state:e.session_state};e.sub&&e.sid&&(r.profile={sub:e.sub,sid:e.sid}),t._start(r)})).catch((function(t){i.Log.error("SessionMonitor: error from querySessionStatus:",t.message)}))}),1e3)},t.prototype._callback=function(){var t=this;this._userManager.querySessionStatus().then((function(e){var r=!0;e?e.sub===t._sub?(r=!1,t._checkSessionIFrame.start(e.session_state),e.sid===t._sid?i.Log.debug("SessionMonitor._callback: Same sub still logged in at OP, restarting check session iframe; session_state:",e.session_state):(i.Log.debug("SessionMonitor._callback: Same sub still logged in at OP, session state has changed, restarting check session iframe; session_state:",e.session_state),t._userManager.events._raiseUserSessionChanged())):i.Log.debug("SessionMonitor._callback: Different subject signed into OP:",e.sub):i.Log.debug("SessionMonitor._callback: Subject no longer signed into OP"),r&&(t._sub?(i.Log.debug("SessionMonitor._callback: SessionMonitor._callback; raising signed out event"),t._userManager.events._raiseUserSignedOut()):(i.Log.debug("SessionMonitor._callback: SessionMonitor._callback; raising signed in event"),t._userManager.events._raiseUserSignedIn()))})).catch((function(e){t._sub&&(i.Log.debug("SessionMonitor._callback: Error calling queryCurrentSigninSession; raising signed out event",e.message),t._userManager.events._raiseUserSignedOut())}))},n(t,[{key:"_settings",get:function(){return this._userManager.settings}},{key:"_metadataService",get:function(){return this._userManager.metadataService}},{key:"_client_id",get:function(){return this._settings.client_id}},{key:"_checkSessionInterval",get:function(){return this._settings.checkSessionInterval}},{key:"_stopCheckSessionOnError",get:function(){return this._settings.stopCheckSessionOnError}}]),t}()},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CheckSessionIFrame=void 0;var n=r(0);e.CheckSessionIFrame=function(){function t(e,r,n,i){var o=!(arguments.length>4&&void 0!==arguments[4])||arguments[4];(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")})(this,t),this._callback=e,this._client_id=r,this._url=n,this._interval=i||2e3,this._stopOnError=o;var s=n.indexOf("/",n.indexOf("//")+2);this._frame_origin=n.substr(0,s),this._frame=window.document.createElement("iframe"),this._frame.style.visibility="hidden",this._frame.style.position="absolute",this._frame.style.display="none",this._frame.width=0,this._frame.height=0,this._frame.src=n}return t.prototype.load=function(){var t=this;return new Promise((function(e){t._frame.onload=function(){e()},window.document.body.appendChild(t._frame),t._boundMessageEvent=t._message.bind(t),window.addEventListener("message",t._boundMessageEvent,!1)}))},t.prototype._message=function(t){t.origin===this._frame_origin&&t.source===this._frame.contentWindow&&("error"===t.data?(n.Log.error("CheckSessionIFrame: error message from check session op iframe"),this._stopOnError&&this.stop()):"changed"===t.data?(n.Log.debug("CheckSessionIFrame: changed message from check session op iframe"),this.stop(),this._callback()):n.Log.debug("CheckSessionIFrame: "+t.data+" message from check session op iframe"))},t.prototype.start=function(t){var e=this;if(this._session_state!==t){n.Log.debug("CheckSessionIFrame.start"),this.stop(),this._session_state=t;var r=function(){e._frame.contentWindow.postMessage(e._client_id+" "+e._session_state,e._frame_origin)};r(),this._timer=window.setInterval(r,this._interval)}},t.prototype.stop=function(){this._session_state=null,this._timer&&(n.Log.debug("CheckSessionIFrame.stop"),window.clearInterval(this._timer),this._timer=null)},t}()},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.TokenRevocationClient=void 0;var n=r(0),i=r(2),o=r(1),s="access_token",a="refresh_token";e.TokenRevocationClient=function(){function t(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:o.Global.XMLHttpRequest,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:i.MetadataService;if(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),!e)throw n.Log.error("TokenRevocationClient.ctor: No settings provided"),new Error("No settings provided.");this._settings=e,this._XMLHttpRequestCtor=r,this._metadataService=new s(this._settings)}return t.prototype.revoke=function(t,e){var r=this,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"access_token";if(!t)throw n.Log.error("TokenRevocationClient.revoke: No token provided"),new Error("No token provided.");if(i!==s&&i!=a)throw n.Log.error("TokenRevocationClient.revoke: Invalid token type"),new Error("Invalid token type.");return this._metadataService.getRevocationEndpoint().then((function(o){if(o){n.Log.debug("TokenRevocationClient.revoke: Revoking "+i);var s=r._settings.client_id,a=r._settings.client_secret;return r._revoke(o,s,a,t,i)}if(e)throw n.Log.error("TokenRevocationClient.revoke: Revocation not supported"),new Error("Revocation not supported")}))},t.prototype._revoke=function(t,e,r,i,o){var s=this;return new Promise((function(a,u){var c=new s._XMLHttpRequestCtor;c.open("POST",t),c.onload=function(){n.Log.debug("TokenRevocationClient.revoke: HTTP response received, status",c.status),200===c.status?a():u(Error(c.statusText+" ("+c.status+")"))},c.onerror=function(){n.Log.debug("TokenRevocationClient.revoke: Network Error."),u("Network Error")};var h="client_id="+encodeURIComponent(e);r&&(h+="&client_secret="+encodeURIComponent(r)),h+="&token_type_hint="+encodeURIComponent(o),h+="&token="+encodeURIComponent(i),c.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),c.send(h)}))},t}()},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CordovaPopupWindow=void 0;var n=function(){function t(t,e){for(var r=0;r1&&void 0!==arguments[1]?arguments[1]:o.MetadataService,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:s.UserInfoService,u=arguments.length>3&&void 0!==arguments[3]?arguments[3]:c.JoseUtil,h=arguments.length>4&&void 0!==arguments[4]?arguments[4]:a.TokenClient;if(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),!e)throw i.Log.error("ResponseValidator.ctor: No settings passed to ResponseValidator"),new Error("settings");this._settings=e,this._metadataService=new r(this._settings),this._userInfoService=new n(this._settings),this._joseUtil=u,this._tokenClient=new h(this._settings)}return t.prototype.validateSigninResponse=function(t,e){var r=this;return i.Log.debug("ResponseValidator.validateSigninResponse"),this._processSigninParams(t,e).then((function(e){return i.Log.debug("ResponseValidator.validateSigninResponse: state processed"),r._validateTokens(t,e).then((function(e){return i.Log.debug("ResponseValidator.validateSigninResponse: tokens validated"),r._processClaims(t,e).then((function(t){return i.Log.debug("ResponseValidator.validateSigninResponse: claims processed"),t}))}))}))},t.prototype.validateSignoutResponse=function(t,e){return t.id!==e.state?(i.Log.error("ResponseValidator.validateSignoutResponse: State does not match"),Promise.reject(new Error("State does not match"))):(i.Log.debug("ResponseValidator.validateSignoutResponse: state validated"),e.state=t.data,e.error?(i.Log.warn("ResponseValidator.validateSignoutResponse: Response was error",e.error),Promise.reject(new u.ErrorResponse(e))):Promise.resolve(e))},t.prototype._processSigninParams=function(t,e){if(t.id!==e.state)return i.Log.error("ResponseValidator._processSigninParams: State does not match"),Promise.reject(new Error("State does not match"));if(!t.client_id)return i.Log.error("ResponseValidator._processSigninParams: No client_id on state"),Promise.reject(new Error("No client_id on state"));if(!t.authority)return i.Log.error("ResponseValidator._processSigninParams: No authority on state"),Promise.reject(new Error("No authority on state"));if(this._settings.authority){if(this._settings.authority&&this._settings.authority!==t.authority)return i.Log.error("ResponseValidator._processSigninParams: authority mismatch on settings vs. signin state"),Promise.reject(new Error("authority mismatch on settings vs. signin state"))}else this._settings.authority=t.authority;if(this._settings.client_id){if(this._settings.client_id&&this._settings.client_id!==t.client_id)return i.Log.error("ResponseValidator._processSigninParams: client_id mismatch on settings vs. signin state"),Promise.reject(new Error("client_id mismatch on settings vs. signin state"))}else this._settings.client_id=t.client_id;return i.Log.debug("ResponseValidator._processSigninParams: state validated"),e.state=t.data,e.error?(i.Log.warn("ResponseValidator._processSigninParams: Response was error",e.error),Promise.reject(new u.ErrorResponse(e))):t.nonce&&!e.id_token?(i.Log.error("ResponseValidator._processSigninParams: Expecting id_token in response"),Promise.reject(new Error("No id_token in response"))):!t.nonce&&e.id_token?(i.Log.error("ResponseValidator._processSigninParams: Not expecting id_token in response"),Promise.reject(new Error("Unexpected id_token in response"))):t.code_verifier&&!e.code?(i.Log.error("ResponseValidator._processSigninParams: Expecting code in response"),Promise.reject(new Error("No code in response"))):!t.code_verifier&&e.code?(i.Log.error("ResponseValidator._processSigninParams: Not expecting code in response"),Promise.reject(new Error("Unexpected code in response"))):(e.scope||(e.scope=t.scope),Promise.resolve(e))},t.prototype._processClaims=function(t,e){var r=this;if(e.isOpenIdConnect){if(i.Log.debug("ResponseValidator._processClaims: response is OIDC, processing claims"),e.profile=this._filterProtocolClaims(e.profile),!0!==t.skipUserInfo&&this._settings.loadUserInfo&&e.access_token)return i.Log.debug("ResponseValidator._processClaims: loading user info"),this._userInfoService.getClaims(e.access_token).then((function(t){return i.Log.debug("ResponseValidator._processClaims: user info claims received from user info endpoint"),t.sub!==e.profile.sub?(i.Log.error("ResponseValidator._processClaims: sub from user info endpoint does not match sub in id_token"),Promise.reject(new Error("sub from user info endpoint does not match sub in id_token"))):(e.profile=r._mergeClaims(e.profile,t),i.Log.debug("ResponseValidator._processClaims: user info claims received, updated profile:",e.profile),e)}));i.Log.debug("ResponseValidator._processClaims: not loading user info")}else i.Log.debug("ResponseValidator._processClaims: response is not OIDC, not processing claims");return Promise.resolve(e)},t.prototype._mergeClaims=function(t,e){var r=Object.assign({},t);for(var i in e){var o=e[i];Array.isArray(o)||(o=[o]);for(var s=0;s1)return i.Log.error("ResponseValidator._validateIdToken: No kid found in id_token and more than one key found in metadata"),Promise.reject(new Error("No kid found in id_token and more than one key found in metadata"));o=r[0]}return Promise.resolve(o)}))},t.prototype._getSigningKeyForJwtWithSingleRetry=function(t){var e=this;return this._getSigningKeyForJwt(t).then((function(r){return r?Promise.resolve(r):(e._metadataService.resetSigningKeys(),e._getSigningKeyForJwt(t))}))},t.prototype._validateIdToken=function(t,e){var r=this;if(!t.nonce)return i.Log.error("ResponseValidator._validateIdToken: No nonce on state"),Promise.reject(new Error("No nonce on state"));var n=this._joseUtil.parseJwt(e.id_token);return n&&n.header&&n.payload?t.nonce!==n.payload.nonce?(i.Log.error("ResponseValidator._validateIdToken: Invalid nonce in id_token"),Promise.reject(new Error("Invalid nonce in id_token"))):this._metadataService.getIssuer().then((function(o){return i.Log.debug("ResponseValidator._validateIdToken: Received issuer"),r._getSigningKeyForJwtWithSingleRetry(n).then((function(s){if(!s)return i.Log.error("ResponseValidator._validateIdToken: No key matching kid or alg found in signing keys"),Promise.reject(new Error("No key matching kid or alg found in signing keys"));var a=t.client_id,u=r._settings.clockSkew;return i.Log.debug("ResponseValidator._validateIdToken: Validaing JWT; using clock skew (in seconds) of: ",u),r._joseUtil.validateJwt(e.id_token,s,o,a,u).then((function(){return i.Log.debug("ResponseValidator._validateIdToken: JWT validation successful"),n.payload.sub?(e.profile=n.payload,e):(i.Log.error("ResponseValidator._validateIdToken: No sub present in id_token"),Promise.reject(new Error("No sub present in id_token")))}))}))})):(i.Log.error("ResponseValidator._validateIdToken: Failed to parse id_token",n),Promise.reject(new Error("Failed to parse id_token")))},t.prototype._filterByAlg=function(t,e){var r=null;if(e.startsWith("RS"))r="RSA";else if(e.startsWith("PS"))r="PS";else{if(!e.startsWith("ES"))return i.Log.debug("ResponseValidator._filterByAlg: alg not supported: ",e),[];r="EC"}return i.Log.debug("ResponseValidator._filterByAlg: Looking for keys that match kty: ",r),t=t.filter((function(t){return t.kty===r})),i.Log.debug("ResponseValidator._filterByAlg: Number of keys that match kty: ",r,t.length),t},t.prototype._validateAccessToken=function(t){if(!t.profile)return i.Log.error("ResponseValidator._validateAccessToken: No profile loaded from id_token"),Promise.reject(new Error("No profile loaded from id_token"));if(!t.profile.at_hash)return i.Log.error("ResponseValidator._validateAccessToken: No at_hash in id_token"),Promise.reject(new Error("No at_hash in id_token"));if(!t.id_token)return i.Log.error("ResponseValidator._validateAccessToken: No id_token"),Promise.reject(new Error("No id_token"));var e=this._joseUtil.parseJwt(t.id_token);if(!e||!e.header)return i.Log.error("ResponseValidator._validateAccessToken: Failed to parse id_token",e),Promise.reject(new Error("Failed to parse id_token"));var r=e.header.alg;if(!r||5!==r.length)return i.Log.error("ResponseValidator._validateAccessToken: Unsupported alg:",r),Promise.reject(new Error("Unsupported alg: "+r));var n=r.substr(2,3);if(!n)return i.Log.error("ResponseValidator._validateAccessToken: Unsupported alg:",r,n),Promise.reject(new Error("Unsupported alg: "+r));if(256!==(n=parseInt(n))&&384!==n&&512!==n)return i.Log.error("ResponseValidator._validateAccessToken: Unsupported alg:",r,n),Promise.reject(new Error("Unsupported alg: "+r));var o="sha"+n,s=this._joseUtil.hashString(t.access_token,o);if(!s)return i.Log.error("ResponseValidator._validateAccessToken: access_token hash failed:",o),Promise.reject(new Error("Failed to validate at_hash"));var a=s.substr(0,s.length/2),u=this._joseUtil.hexToBase64Url(a);return u!==t.profile.at_hash?(i.Log.error("ResponseValidator._validateAccessToken: Failed to validate at_hash",u,t.profile.at_hash),Promise.reject(new Error("Failed to validate at_hash"))):(i.Log.debug("ResponseValidator._validateAccessToken: success"),Promise.resolve(t))},t}()},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.UserInfoService=void 0;var n=r(7),i=r(2),o=r(0),s=r(4);e.UserInfoService=function(){function t(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:n.JsonService,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:i.MetadataService,u=arguments.length>3&&void 0!==arguments[3]?arguments[3]:s.JoseUtil;if(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),!e)throw o.Log.error("UserInfoService.ctor: No settings passed"),new Error("settings");this._settings=e,this._jsonService=new r(void 0,void 0,this._getClaimsFromJwt.bind(this)),this._metadataService=new a(this._settings),this._joseUtil=u}return t.prototype.getClaims=function(t){var e=this;return t?this._metadataService.getUserInfoEndpoint().then((function(r){return o.Log.debug("UserInfoService.getClaims: received userinfo url",r),e._jsonService.getJson(r,t).then((function(t){return o.Log.debug("UserInfoService.getClaims: claims received",t),t}))})):(o.Log.error("UserInfoService.getClaims: No token passed"),Promise.reject(new Error("A token is required")))},t.prototype._getClaimsFromJwt=function t(e){var r=this;try{var n=this._joseUtil.parseJwt(e.responseText);if(!n||!n.header||!n.payload)return o.Log.error("UserInfoService._getClaimsFromJwt: Failed to parse JWT",n),Promise.reject(new Error("Failed to parse id_token"));var i=n.header.kid,s=void 0;switch(this._settings.userInfoJwtIssuer){case"OP":s=this._metadataService.getIssuer();break;case"ANY":s=Promise.resolve(n.payload.iss);break;default:s=Promise.resolve(this._settings.userInfoJwtIssuer)}return s.then((function(t){return o.Log.debug("UserInfoService._getClaimsFromJwt: Received issuer:"+t),r._metadataService.getSigningKeys().then((function(s){if(!s)return o.Log.error("UserInfoService._getClaimsFromJwt: No signing keys from metadata"),Promise.reject(new Error("No signing keys from metadata"));o.Log.debug("UserInfoService._getClaimsFromJwt: Received signing keys");var a=void 0;if(i)a=s.filter((function(t){return t.kid===i}))[0];else{if((s=r._filterByAlg(s,n.header.alg)).length>1)return o.Log.error("UserInfoService._getClaimsFromJwt: No kid found in id_token and more than one key found in metadata"),Promise.reject(new Error("No kid found in id_token and more than one key found in metadata"));a=s[0]}if(!a)return o.Log.error("UserInfoService._getClaimsFromJwt: No key matching kid or alg found in signing keys"),Promise.reject(new Error("No key matching kid or alg found in signing keys"));var u=r._settings.client_id,c=r._settings.clockSkew;return o.Log.debug("UserInfoService._getClaimsFromJwt: Validaing JWT; using clock skew (in seconds) of: ",c),r._joseUtil.validateJwt(e.responseText,a,t,u,c,void 0,!0).then((function(){return o.Log.debug("UserInfoService._getClaimsFromJwt: JWT validation successful"),n.payload}))}))}))}catch(t){return o.Log.error("UserInfoService._getClaimsFromJwt: Error parsing JWT response",t.message),void reject(t)}},t.prototype._filterByAlg=function(t,e){var r=null;if(e.startsWith("RS"))r="RSA";else if(e.startsWith("PS"))r="PS";else{if(!e.startsWith("ES"))return o.Log.debug("UserInfoService._filterByAlg: alg not supported: ",e),[];r="EC"}return o.Log.debug("UserInfoService._filterByAlg: Looking for keys that match kty: ",r),t=t.filter((function(t){return t.kty===r})),o.Log.debug("UserInfoService._filterByAlg: Number of keys that match kty: ",r,t.length),t},t}()},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.AllowedSigningAlgs=e.b64tohex=e.hextob64u=e.crypto=e.X509=e.KeyUtil=e.jws=void 0;var n=r(27);e.jws=n.jws,e.KeyUtil=n.KEYUTIL,e.X509=n.X509,e.crypto=n.crypto,e.hextob64u=n.hextob64u,e.b64tohex=n.b64tohex,e.AllowedSigningAlgs=["RS256","RS384","RS512","PS256","PS384","PS512","ES256","ES384","ES512"]},function(t,e,r){"use strict";(function(t){Object.defineProperty(e,"__esModule",{value:!0});var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},n={userAgent:!1},i={};if(void 0===o)var o={};o.lang={extend:function(t,e,r){if(!e||!t)throw new Error("YAHOO.lang.extend failed, please check that all dependencies are included.");var i=function(){};if(i.prototype=e.prototype,t.prototype=new i,t.prototype.constructor=t,t.superclass=e.prototype,e.prototype.constructor==Object.prototype.constructor&&(e.prototype.constructor=e),r){var o;for(o in r)t.prototype[o]=r[o];var s=function(){},a=["toString","valueOf"];try{/MSIE/.test(n.userAgent)&&(s=function(t,e){for(o=0;o>>2]>>>24-o%4*8&255;e[n+o>>>2]|=s<<24-(n+o)%4*8}else for(o=0;o>>2]=r[o>>>2];return this.sigBytes+=i,this},clamp:function(){var t=this.words,e=this.sigBytes;t[e>>>2]&=4294967295<<32-e%4*8,t.length=s.ceil(e/4)},clone:function(){var t=c.clone.call(this);return t.words=this.words.slice(0),t},random:function(t){for(var e=[],r=0;r>>2]>>>24-i%4*8&255;n.push((o>>>4).toString(16)),n.push((15&o).toString(16))}return n.join("")},parse:function(t){for(var e=t.length,r=[],n=0;n>>3]|=parseInt(t.substr(n,2),16)<<24-n%8*4;return new h.init(r,e/2)}},g=l.Latin1={stringify:function(t){for(var e=t.words,r=t.sigBytes,n=[],i=0;i>>2]>>>24-i%4*8&255;n.push(String.fromCharCode(o))}return n.join("")},parse:function(t){for(var e=t.length,r=[],n=0;n>>2]|=(255&t.charCodeAt(n))<<24-n%4*8;return new h.init(r,e)}},d=l.Utf8={stringify:function(t){try{return decodeURIComponent(escape(g.stringify(t)))}catch(t){throw new Error("Malformed UTF-8 data")}},parse:function(t){return g.parse(unescape(encodeURIComponent(t)))}},p=u.BufferedBlockAlgorithm=c.extend({reset:function(){this._data=new h.init,this._nDataBytes=0},_append:function(t){"string"==typeof t&&(t=d.parse(t)),this._data.concat(t),this._nDataBytes+=t.sigBytes},_process:function(t){var e=this._data,r=e.words,n=e.sigBytes,i=this.blockSize,o=n/(4*i),a=(o=t?s.ceil(o):s.max((0|o)-this._minBufferSize,0))*i,u=s.min(4*a,n);if(a){for(var c=0;c>>2]>>>24-i%4*8&255)<<16|(e[i+1>>>2]>>>24-(i+1)%4*8&255)<<8|e[i+2>>>2]>>>24-(i+2)%4*8&255,s=0;4>s&&i+.75*s>>6*(3-s)&63));if(e=n.charAt(64))for(;t.length%4;)t.push(e);return t.join("")},parse:function(t){var r=t.length,n=this._map;(i=n.charAt(64))&&-1!=(i=t.indexOf(i))&&(r=i);for(var i=[],o=0,s=0;s>>6-s%4*2;i[o>>>2]|=(a|u)<<24-o%4*8,o++}return e.create(i,o)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="}}(),function(t){for(var e=y,r=(i=e.lib).WordArray,n=i.Hasher,i=e.algo,o=[],s=[],a=function(t){return 4294967296*(t-(0|t))|0},u=2,c=0;64>c;){var h;t:{h=u;for(var l=t.sqrt(h),f=2;f<=l;f++)if(!(h%f)){h=!1;break t}h=!0}h&&(8>c&&(o[c]=a(t.pow(u,.5))),s[c]=a(t.pow(u,1/3)),c++),u++}var g=[];i=i.SHA256=n.extend({_doReset:function(){this._hash=new r.init(o.slice(0))},_doProcessBlock:function(t,e){for(var r=this._hash.words,n=r[0],i=r[1],o=r[2],a=r[3],u=r[4],c=r[5],h=r[6],l=r[7],f=0;64>f;f++){if(16>f)g[f]=0|t[e+f];else{var d=g[f-15],p=g[f-2];g[f]=((d<<25|d>>>7)^(d<<14|d>>>18)^d>>>3)+g[f-7]+((p<<15|p>>>17)^(p<<13|p>>>19)^p>>>10)+g[f-16]}d=l+((u<<26|u>>>6)^(u<<21|u>>>11)^(u<<7|u>>>25))+(u&c^~u&h)+s[f]+g[f],p=((n<<30|n>>>2)^(n<<19|n>>>13)^(n<<10|n>>>22))+(n&i^n&o^i&o),l=h,h=c,c=u,u=a+d|0,a=o,o=i,i=n,n=d+p|0}r[0]=r[0]+n|0,r[1]=r[1]+i|0,r[2]=r[2]+o|0,r[3]=r[3]+a|0,r[4]=r[4]+u|0,r[5]=r[5]+c|0,r[6]=r[6]+h|0,r[7]=r[7]+l|0},_doFinalize:function(){var e=this._data,r=e.words,n=8*this._nDataBytes,i=8*e.sigBytes;return r[i>>>5]|=128<<24-i%32,r[14+(i+64>>>9<<4)]=t.floor(n/4294967296),r[15+(i+64>>>9<<4)]=n,e.sigBytes=4*r.length,this._process(),this._hash},clone:function(){var t=n.clone.call(this);return t._hash=this._hash.clone(),t}}),e.SHA256=n._createHelper(i),e.HmacSHA256=n._createHmacHelper(i)}(Math),function(){function t(){return n.create.apply(n,arguments)}for(var e=y,r=e.lib.Hasher,n=(o=e.x64).Word,i=o.WordArray,o=e.algo,s=[t(1116352408,3609767458),t(1899447441,602891725),t(3049323471,3964484399),t(3921009573,2173295548),t(961987163,4081628472),t(1508970993,3053834265),t(2453635748,2937671579),t(2870763221,3664609560),t(3624381080,2734883394),t(310598401,1164996542),t(607225278,1323610764),t(1426881987,3590304994),t(1925078388,4068182383),t(2162078206,991336113),t(2614888103,633803317),t(3248222580,3479774868),t(3835390401,2666613458),t(4022224774,944711139),t(264347078,2341262773),t(604807628,2007800933),t(770255983,1495990901),t(1249150122,1856431235),t(1555081692,3175218132),t(1996064986,2198950837),t(2554220882,3999719339),t(2821834349,766784016),t(2952996808,2566594879),t(3210313671,3203337956),t(3336571891,1034457026),t(3584528711,2466948901),t(113926993,3758326383),t(338241895,168717936),t(666307205,1188179964),t(773529912,1546045734),t(1294757372,1522805485),t(1396182291,2643833823),t(1695183700,2343527390),t(1986661051,1014477480),t(2177026350,1206759142),t(2456956037,344077627),t(2730485921,1290863460),t(2820302411,3158454273),t(3259730800,3505952657),t(3345764771,106217008),t(3516065817,3606008344),t(3600352804,1432725776),t(4094571909,1467031594),t(275423344,851169720),t(430227734,3100823752),t(506948616,1363258195),t(659060556,3750685593),t(883997877,3785050280),t(958139571,3318307427),t(1322822218,3812723403),t(1537002063,2003034995),t(1747873779,3602036899),t(1955562222,1575990012),t(2024104815,1125592928),t(2227730452,2716904306),t(2361852424,442776044),t(2428436474,593698344),t(2756734187,3733110249),t(3204031479,2999351573),t(3329325298,3815920427),t(3391569614,3928383900),t(3515267271,566280711),t(3940187606,3454069534),t(4118630271,4000239992),t(116418474,1914138554),t(174292421,2731055270),t(289380356,3203993006),t(460393269,320620315),t(685471733,587496836),t(852142971,1086792851),t(1017036298,365543100),t(1126000580,2618297676),t(1288033470,3409855158),t(1501505948,4234509866),t(1607167915,987167468),t(1816402316,1246189591)],a=[],u=0;80>u;u++)a[u]=t();o=o.SHA512=r.extend({_doReset:function(){this._hash=new i.init([new n.init(1779033703,4089235720),new n.init(3144134277,2227873595),new n.init(1013904242,4271175723),new n.init(2773480762,1595750129),new n.init(1359893119,2917565137),new n.init(2600822924,725511199),new n.init(528734635,4215389547),new n.init(1541459225,327033209)])},_doProcessBlock:function(t,e){for(var r=(l=this._hash.words)[0],n=l[1],i=l[2],o=l[3],u=l[4],c=l[5],h=l[6],l=l[7],f=r.high,g=r.low,d=n.high,p=n.low,v=i.high,y=i.low,m=o.high,_=o.low,S=u.high,w=u.low,b=c.high,F=c.low,E=h.high,x=h.low,A=l.high,k=l.low,P=f,C=g,T=d,R=p,I=v,D=y,L=m,N=_,U=S,O=w,B=b,M=F,j=E,H=x,K=A,V=k,q=0;80>q;q++){var J=a[q];if(16>q)var W=J.high=0|t[e+2*q],z=J.low=0|t[e+2*q+1];else{W=((z=(W=a[q-15]).high)>>>1|(Y=W.low)<<31)^(z>>>8|Y<<24)^z>>>7;var Y=(Y>>>1|z<<31)^(Y>>>8|z<<24)^(Y>>>7|z<<25),G=((z=(G=a[q-2]).high)>>>19|($=G.low)<<13)^(z<<3|$>>>29)^z>>>6,$=($>>>19|z<<13)^($<<3|z>>>29)^($>>>6|z<<26),X=(z=a[q-7]).high,Q=(Z=a[q-16]).high,Z=Z.low;W=(W=(W=W+X+((z=Y+z.low)>>>0>>0?1:0))+G+((z+=$)>>>0<$>>>0?1:0))+Q+((z+=Z)>>>0>>0?1:0),J.high=W,J.low=z}X=U&B^~U&j,Z=O&M^~O&H,J=P&T^P&I^T&I;var tt=C&R^C&D^R&D,et=(Y=(P>>>28|C<<4)^(P<<30|C>>>2)^(P<<25|C>>>7),G=(C>>>28|P<<4)^(C<<30|P>>>2)^(C<<25|P>>>7),($=s[q]).high),rt=$.low;Q=K+((U>>>14|O<<18)^(U>>>18|O<<14)^(U<<23|O>>>9))+(($=V+((O>>>14|U<<18)^(O>>>18|U<<14)^(O<<23|U>>>9)))>>>0>>0?1:0),K=j,V=H,j=B,H=M,B=U,M=O,U=L+(Q=(Q=(Q=Q+X+(($+=Z)>>>0>>0?1:0))+et+(($+=rt)>>>0>>0?1:0))+W+(($+=z)>>>0>>0?1:0))+((O=N+$|0)>>>0>>0?1:0)|0,L=I,N=D,I=T,D=R,T=P,R=C,P=Q+(J=Y+J+((z=G+tt)>>>0>>0?1:0))+((C=$+z|0)>>>0<$>>>0?1:0)|0}g=r.low=g+C,r.high=f+P+(g>>>0>>0?1:0),p=n.low=p+R,n.high=d+T+(p>>>0>>0?1:0),y=i.low=y+D,i.high=v+I+(y>>>0>>0?1:0),_=o.low=_+N,o.high=m+L+(_>>>0>>0?1:0),w=u.low=w+O,u.high=S+U+(w>>>0>>0?1:0),F=c.low=F+M,c.high=b+B+(F>>>0>>0?1:0),x=h.low=x+H,h.high=E+j+(x>>>0>>0?1:0),k=l.low=k+V,l.high=A+K+(k>>>0>>0?1:0)},_doFinalize:function(){var t=this._data,e=t.words,r=8*this._nDataBytes,n=8*t.sigBytes;return e[n>>>5]|=128<<24-n%32,e[30+(n+128>>>10<<5)]=Math.floor(r/4294967296),e[31+(n+128>>>10<<5)]=r,t.sigBytes=4*e.length,this._process(),this._hash.toX32()},clone:function(){var t=r.clone.call(this);return t._hash=this._hash.clone(),t},blockSize:32}),e.SHA512=r._createHelper(o),e.HmacSHA512=r._createHmacHelper(o)}(),function(){var t=y,e=(i=t.x64).Word,r=i.WordArray,n=(i=t.algo).SHA512,i=i.SHA384=n.extend({_doReset:function(){this._hash=new r.init([new e.init(3418070365,3238371032),new e.init(1654270250,914150663),new e.init(2438529370,812702999),new e.init(355462360,4144912697),new e.init(1731405415,4290775857),new e.init(2394180231,1750603025),new e.init(3675008525,1694076839),new e.init(1203062813,3204075428)])},_doFinalize:function(){var t=n._doFinalize.call(this);return t.sigBytes-=16,t}});t.SHA384=n._createHelper(i),t.HmacSHA384=n._createHmacHelper(i)}();var m,_="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";function S(t){var e,r,n="";for(e=0;e+3<=t.length;e+=3)r=parseInt(t.substring(e,e+3),16),n+=_.charAt(r>>6)+_.charAt(63&r);for(e+1==t.length?(r=parseInt(t.substring(e,e+1),16),n+=_.charAt(r<<2)):e+2==t.length&&(r=parseInt(t.substring(e,e+2),16),n+=_.charAt(r>>2)+_.charAt((3&r)<<4));(3&n.length)>0;)n+="=";return n}function w(t){var e,r,n,i="",o=0;for(e=0;e>2),r=3&n,o=1):1==o?(i+=P(r<<2|n>>4),r=15&n,o=2):2==o?(i+=P(r),i+=P(n>>2),r=3&n,o=3):(i+=P(r<<2|n>>4),i+=P(15&n),o=0));return 1==o&&(i+=P(r<<2)),i}function b(t){var e,r=w(t),n=new Array;for(e=0;2*e>15;--o>=0;){var u=32767&this[t],c=this[t++]>>15,h=a*u+c*s;i=((u=s*u+((32767&h)<<15)+r[n]+(1073741823&i))>>>30)+(h>>>15)+a*c+(i>>>30),r[n++]=1073741823&u}return i},m=30):"Netscape"!=n.appName?(F.prototype.am=function(t,e,r,n,i,o){for(;--o>=0;){var s=e*this[t++]+r[n]+i;i=Math.floor(s/67108864),r[n++]=67108863&s}return i},m=26):(F.prototype.am=function(t,e,r,n,i,o){for(var s=16383&e,a=e>>14;--o>=0;){var u=16383&this[t],c=this[t++]>>14,h=a*u+c*s;i=((u=s*u+((16383&h)<<14)+r[n]+i)>>28)+(h>>14)+a*c,r[n++]=268435455&u}return i},m=28),F.prototype.DB=m,F.prototype.DM=(1<>>16)&&(t=e,r+=16),0!=(e=t>>8)&&(t=e,r+=8),0!=(e=t>>4)&&(t=e,r+=4),0!=(e=t>>2)&&(t=e,r+=2),0!=(e=t>>1)&&(t=e,r+=1),r}function I(t){this.m=t}function D(t){this.m=t,this.mp=t.invDigit(),this.mpl=32767&this.mp,this.mph=this.mp>>15,this.um=(1<>=16,e+=16),0==(255&t)&&(t>>=8,e+=8),0==(15&t)&&(t>>=4,e+=4),0==(3&t)&&(t>>=2,e+=2),0==(1&t)&&++e,e}function M(t){for(var e=0;0!=t;)t&=t-1,++e;return e}function j(){}function H(t){return t}function K(t){this.r2=E(),this.q3=E(),F.ONE.dlShiftTo(2*t.t,this.r2),this.mu=this.r2.divide(t),this.m=t}I.prototype.convert=function(t){return t.s<0||t.compareTo(this.m)>=0?t.mod(this.m):t},I.prototype.revert=function(t){return t},I.prototype.reduce=function(t){t.divRemTo(this.m,null,t)},I.prototype.mulTo=function(t,e,r){t.multiplyTo(e,r),this.reduce(r)},I.prototype.sqrTo=function(t,e){t.squareTo(e),this.reduce(e)},D.prototype.convert=function(t){var e=E();return t.abs().dlShiftTo(this.m.t,e),e.divRemTo(this.m,null,e),t.s<0&&e.compareTo(F.ZERO)>0&&this.m.subTo(e,e),e},D.prototype.revert=function(t){var e=E();return t.copyTo(e),this.reduce(e),e},D.prototype.reduce=function(t){for(;t.t<=this.mt2;)t[t.t++]=0;for(var e=0;e>15)*this.mpl&this.um)<<15)&t.DM;for(t[r=e+this.m.t]+=this.m.am(0,n,t,e,0,this.m.t);t[r]>=t.DV;)t[r]-=t.DV,t[++r]++}t.clamp(),t.drShiftTo(this.m.t,t),t.compareTo(this.m)>=0&&t.subTo(this.m,t)},D.prototype.mulTo=function(t,e,r){t.multiplyTo(e,r),this.reduce(r)},D.prototype.sqrTo=function(t,e){t.squareTo(e),this.reduce(e)},F.prototype.copyTo=function(t){for(var e=this.t-1;e>=0;--e)t[e]=this[e];t.t=this.t,t.s=this.s},F.prototype.fromInt=function(t){this.t=1,this.s=t<0?-1:0,t>0?this[0]=t:t<-1?this[0]=t+this.DV:this.t=0},F.prototype.fromString=function(t,e){var r;if(16==e)r=4;else if(8==e)r=3;else if(256==e)r=8;else if(2==e)r=1;else if(32==e)r=5;else{if(4!=e)return void this.fromRadix(t,e);r=2}this.t=0,this.s=0;for(var n=t.length,i=!1,o=0;--n>=0;){var s=8==r?255&t[n]:C(t,n);s<0?"-"==t.charAt(n)&&(i=!0):(i=!1,0==o?this[this.t++]=s:o+r>this.DB?(this[this.t-1]|=(s&(1<>this.DB-o):this[this.t-1]|=s<=this.DB&&(o-=this.DB))}8==r&&0!=(128&t[0])&&(this.s=-1,o>0&&(this[this.t-1]|=(1<0&&this[this.t-1]==t;)--this.t},F.prototype.dlShiftTo=function(t,e){var r;for(r=this.t-1;r>=0;--r)e[r+t]=this[r];for(r=t-1;r>=0;--r)e[r]=0;e.t=this.t+t,e.s=this.s},F.prototype.drShiftTo=function(t,e){for(var r=t;r=0;--r)e[r+s+1]=this[r]>>i|a,a=(this[r]&o)<=0;--r)e[r]=0;e[s]=a,e.t=this.t+s+1,e.s=this.s,e.clamp()},F.prototype.rShiftTo=function(t,e){e.s=this.s;var r=Math.floor(t/this.DB);if(r>=this.t)e.t=0;else{var n=t%this.DB,i=this.DB-n,o=(1<>n;for(var s=r+1;s>n;n>0&&(e[this.t-r-1]|=(this.s&o)<>=this.DB;if(t.t>=this.DB;n+=this.s}else{for(n+=this.s;r>=this.DB;n-=t.s}e.s=n<0?-1:0,n<-1?e[r++]=this.DV+n:n>0&&(e[r++]=n),e.t=r,e.clamp()},F.prototype.multiplyTo=function(t,e){var r=this.abs(),n=t.abs(),i=r.t;for(e.t=i+n.t;--i>=0;)e[i]=0;for(i=0;i=0;)t[r]=0;for(r=0;r=e.DV&&(t[r+e.t]-=e.DV,t[r+e.t+1]=1)}t.t>0&&(t[t.t-1]+=e.am(r,e[r],t,2*r,0,1)),t.s=0,t.clamp()},F.prototype.divRemTo=function(t,e,r){var n=t.abs();if(!(n.t<=0)){var i=this.abs();if(i.t0?(n.lShiftTo(u,o),i.lShiftTo(u,r)):(n.copyTo(o),i.copyTo(r));var c=o.t,h=o[c-1];if(0!=h){var l=h*(1<1?o[c-2]>>this.F2:0),f=this.FV/l,g=(1<=0&&(r[r.t++]=1,r.subTo(y,r)),F.ONE.dlShiftTo(c,y),y.subTo(o,o);o.t=0;){var m=r[--p]==h?this.DM:Math.floor(r[p]*f+(r[p-1]+d)*g);if((r[p]+=o.am(0,m,r,v,0,c))0&&r.rShiftTo(u,r),s<0&&F.ZERO.subTo(r,r)}}},F.prototype.invDigit=function(){if(this.t<1)return 0;var t=this[0];if(0==(1&t))return 0;var e=3&t;return(e=(e=(e=(e=e*(2-(15&t)*e)&15)*(2-(255&t)*e)&255)*(2-((65535&t)*e&65535))&65535)*(2-t*e%this.DV)%this.DV)>0?this.DV-e:-e},F.prototype.isEven=function(){return 0==(this.t>0?1&this[0]:this.s)},F.prototype.exp=function(t,e){if(t>4294967295||t<1)return F.ONE;var r=E(),n=E(),i=e.convert(this),o=R(t)-1;for(i.copyTo(r);--o>=0;)if(e.sqrTo(r,n),(t&1<0)e.mulTo(n,i,r);else{var s=r;r=n,n=s}return e.revert(r)},F.prototype.toString=function(t){if(this.s<0)return"-"+this.negate().toString(t);var e;if(16==t)e=4;else if(8==t)e=3;else if(2==t)e=1;else if(32==t)e=5;else{if(4!=t)return this.toRadix(t);e=2}var r,n=(1<0)for(a>a)>0&&(i=!0,o=P(r));s>=0;)a>(a+=this.DB-e)):(r=this[s]>>(a-=e)&n,a<=0&&(a+=this.DB,--s)),r>0&&(i=!0),i&&(o+=P(r));return i?o:"0"},F.prototype.negate=function(){var t=E();return F.ZERO.subTo(this,t),t},F.prototype.abs=function(){return this.s<0?this.negate():this},F.prototype.compareTo=function(t){var e=this.s-t.s;if(0!=e)return e;var r=this.t;if(0!=(e=r-t.t))return this.s<0?-e:e;for(;--r>=0;)if(0!=(e=this[r]-t[r]))return e;return 0},F.prototype.bitLength=function(){return this.t<=0?0:this.DB*(this.t-1)+R(this[this.t-1]^this.s&this.DM)},F.prototype.mod=function(t){var e=E();return this.abs().divRemTo(t,null,e),this.s<0&&e.compareTo(F.ZERO)>0&&t.subTo(e,e),e},F.prototype.modPowInt=function(t,e){var r;return r=t<256||e.isEven()?new I(e):new D(e),this.exp(t,r)},F.ZERO=T(0),F.ONE=T(1),j.prototype.convert=H,j.prototype.revert=H,j.prototype.mulTo=function(t,e,r){t.multiplyTo(e,r)},j.prototype.sqrTo=function(t,e){t.squareTo(e)},K.prototype.convert=function(t){if(t.s<0||t.t>2*this.m.t)return t.mod(this.m);if(t.compareTo(this.m)<0)return t;var e=E();return t.copyTo(e),this.reduce(e),e},K.prototype.revert=function(t){return t},K.prototype.reduce=function(t){for(t.drShiftTo(this.m.t-1,this.r2),t.t>this.m.t+1&&(t.t=this.m.t+1,t.clamp()),this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3),this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);t.compareTo(this.r2)<0;)t.dAddOffset(1,this.m.t+1);for(t.subTo(this.r2,t);t.compareTo(this.m)>=0;)t.subTo(this.m,t)},K.prototype.mulTo=function(t,e,r){t.multiplyTo(e,r),this.reduce(r)},K.prototype.sqrTo=function(t,e){t.squareTo(e),this.reduce(e)};var V,q,J,W=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997],z=(1<<26)/W[W.length-1];function Y(){this.i=0,this.j=0,this.S=new Array}function G(){!function(t){q[J++]^=255&t,q[J++]^=t>>8&255,q[J++]^=t>>16&255,q[J++]^=t>>24&255,J>=256&&(J-=256)}((new Date).getTime())}if(F.prototype.chunkSize=function(t){return Math.floor(Math.LN2*this.DB/Math.log(t))},F.prototype.toRadix=function(t){if(null==t&&(t=10),0==this.signum()||t<2||t>36)return"0";var e=this.chunkSize(t),r=Math.pow(t,e),n=T(r),i=E(),o=E(),s="";for(this.divRemTo(n,i,o);i.signum()>0;)s=(r+o.intValue()).toString(t).substr(1)+s,i.divRemTo(n,i,o);return o.intValue().toString(t)+s},F.prototype.fromRadix=function(t,e){this.fromInt(0),null==e&&(e=10);for(var r=this.chunkSize(e),n=Math.pow(e,r),i=!1,o=0,s=0,a=0;a=r&&(this.dMultiply(n),this.dAddOffset(s,0),o=0,s=0))}o>0&&(this.dMultiply(Math.pow(e,o)),this.dAddOffset(s,0)),i&&F.ZERO.subTo(this,this)},F.prototype.fromNumber=function(t,e,r){if("number"==typeof e)if(t<2)this.fromInt(1);else for(this.fromNumber(t,r),this.testBit(t-1)||this.bitwiseTo(F.ONE.shiftLeft(t-1),N,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(e);)this.dAddOffset(2,0),this.bitLength()>t&&this.subTo(F.ONE.shiftLeft(t-1),this);else{var n=new Array,i=7&t;n.length=1+(t>>3),e.nextBytes(n),i>0?n[0]&=(1<>=this.DB;if(t.t>=this.DB;n+=this.s}else{for(n+=this.s;r>=this.DB;n+=t.s}e.s=n<0?-1:0,n>0?e[r++]=n:n<-1&&(e[r++]=this.DV+n),e.t=r,e.clamp()},F.prototype.dMultiply=function(t){this[this.t]=this.am(0,t-1,this,0,0,this.t),++this.t,this.clamp()},F.prototype.dAddOffset=function(t,e){if(0!=t){for(;this.t<=e;)this[this.t++]=0;for(this[e]+=t;this[e]>=this.DV;)this[e]-=this.DV,++e>=this.t&&(this[this.t++]=0),++this[e]}},F.prototype.multiplyLowerTo=function(t,e,r){var n,i=Math.min(this.t+t.t,e);for(r.s=0,r.t=i;i>0;)r[--i]=0;for(n=r.t-this.t;i=0;)r[n]=0;for(n=Math.max(e-this.t,0);n0)if(0==e)r=this[0]%t;else for(var n=this.t-1;n>=0;--n)r=(e*r+this[n])%t;return r},F.prototype.millerRabin=function(t){var e=this.subtract(F.ONE),r=e.getLowestSetBit();if(r<=0)return!1;var n=e.shiftRight(r);(t=t+1>>1)>W.length&&(t=W.length);for(var i=E(),o=0;o>24},F.prototype.shortValue=function(){return 0==this.t?this.s:this[0]<<16>>16},F.prototype.signum=function(){return this.s<0?-1:this.t<=0||1==this.t&&this[0]<=0?0:1},F.prototype.toByteArray=function(){var t=this.t,e=new Array;e[0]=this.s;var r,n=this.DB-t*this.DB%8,i=0;if(t-- >0)for(n>n)!=(this.s&this.DM)>>n&&(e[i++]=r|this.s<=0;)n<8?(r=(this[t]&(1<>(n+=this.DB-8)):(r=this[t]>>(n-=8)&255,n<=0&&(n+=this.DB,--t)),0!=(128&r)&&(r|=-256),0==i&&(128&this.s)!=(128&r)&&++i,(i>0||r!=this.s)&&(e[i++]=r);return e},F.prototype.equals=function(t){return 0==this.compareTo(t)},F.prototype.min=function(t){return this.compareTo(t)<0?this:t},F.prototype.max=function(t){return this.compareTo(t)>0?this:t},F.prototype.and=function(t){var e=E();return this.bitwiseTo(t,L,e),e},F.prototype.or=function(t){var e=E();return this.bitwiseTo(t,N,e),e},F.prototype.xor=function(t){var e=E();return this.bitwiseTo(t,U,e),e},F.prototype.andNot=function(t){var e=E();return this.bitwiseTo(t,O,e),e},F.prototype.not=function(){for(var t=E(),e=0;e=this.t?0!=this.s:0!=(this[e]&1<1){var h=E();for(n.sqrTo(s[1],h);a<=c;)s[a]=E(),n.mulTo(h,s[a-2],s[a]),a+=2}var l,f,g=t.t-1,d=!0,p=E();for(i=R(t[g])-1;g>=0;){for(i>=u?l=t[g]>>i-u&c:(l=(t[g]&(1<0&&(l|=t[g-1]>>this.DB+i-u)),a=r;0==(1&l);)l>>=1,--a;if((i-=a)<0&&(i+=this.DB,--g),d)s[l].copyTo(o),d=!1;else{for(;a>1;)n.sqrTo(o,p),n.sqrTo(p,o),a-=2;a>0?n.sqrTo(o,p):(f=o,o=p,p=f),n.mulTo(p,s[l],o)}for(;g>=0&&0==(t[g]&1<=0?(r.subTo(n,r),e&&i.subTo(s,i),o.subTo(a,o)):(n.subTo(r,n),e&&s.subTo(i,s),a.subTo(o,a))}return 0!=n.compareTo(F.ONE)?F.ZERO:a.compareTo(t)>=0?a.subtract(t):a.signum()<0?(a.addTo(t,a),a.signum()<0?a.add(t):a):a},F.prototype.pow=function(t){return this.exp(t,new j)},F.prototype.gcd=function(t){var e=this.s<0?this.negate():this.clone(),r=t.s<0?t.negate():t.clone();if(e.compareTo(r)<0){var n=e;e=r,r=n}var i=e.getLowestSetBit(),o=r.getLowestSetBit();if(o<0)return e;for(i0&&(e.rShiftTo(o,e),r.rShiftTo(o,r));e.signum()>0;)(i=e.getLowestSetBit())>0&&e.rShiftTo(i,e),(i=r.getLowestSetBit())>0&&r.rShiftTo(i,r),e.compareTo(r)>=0?(e.subTo(r,e),e.rShiftTo(1,e)):(r.subTo(e,r),r.rShiftTo(1,r));return o>0&&r.lShiftTo(o,r),r},F.prototype.isProbablePrime=function(t){var e,r=this.abs();if(1==r.t&&r[0]<=W[W.length-1]){for(e=0;e>>8,q[J++]=255&$;J=0,G()}function tt(){if(null==V){for(G(),(V=new Y).init(q),J=0;J>24,(16711680&i)>>16,(65280&i)>>8,255&i]))),i+=1;return n}function it(){this.n=null,this.e=0,this.d=null,this.p=null,this.q=null,this.dmp1=null,this.dmq1=null,this.coeff=null}function ot(t,e){this.x=e,this.q=t}function st(t,e,r,n){this.curve=t,this.x=e,this.y=r,this.z=null==n?F.ONE:n,this.zinv=null}function at(t,e,r){this.q=t,this.a=this.fromBigInteger(e),this.b=this.fromBigInteger(r),this.infinity=new st(this,null,null)}et.prototype.nextBytes=function(t){var e;for(e=0;e0&&e.length>0))throw"Invalid RSA public key";this.n=rt(t,16),this.e=parseInt(e,16)}},it.prototype.encrypt=function(t){var e=function(t,e){if(e=0&&e>0;){var i=t.charCodeAt(n--);i<128?r[--e]=i:i>127&&i<2048?(r[--e]=63&i|128,r[--e]=i>>6|192):(r[--e]=63&i|128,r[--e]=i>>6&63|128,r[--e]=i>>12|224)}r[--e]=0;for(var o=new et,s=new Array;e>2;){for(s[0]=0;0==s[0];)o.nextBytes(s);r[--e]=s[0]}return r[--e]=2,r[--e]=0,new F(r)}(t,this.n.bitLength()+7>>3);if(null==e)return null;var r=this.doPublic(e);if(null==r)return null;var n=r.toString(16);return 0==(1&n.length)?n:"0"+n},it.prototype.encryptOAEP=function(t,e,r){var n=function(t,e,r,n){var i=ct.crypto.MessageDigest,o=ct.crypto.Util,s=null;if(r||(r="sha1"),"string"==typeof r&&(s=i.getCanonicalAlgName(r),n=i.getHashLength(s),r=function(t){return Ft(o.hashHex(Et(t),s))}),t.length+2*n+2>e)throw"Message too long for RSA";var a,u="";for(a=0;a>3,e,r);if(null==n)return null;var i=this.doPublic(n);if(null==i)return null;var o=i.toString(16);return 0==(1&o.length)?o:"0"+o},it.prototype.type="RSA",ot.prototype.equals=function(t){return t==this||this.q.equals(t.q)&&this.x.equals(t.x)},ot.prototype.toBigInteger=function(){return this.x},ot.prototype.negate=function(){return new ot(this.q,this.x.negate().mod(this.q))},ot.prototype.add=function(t){return new ot(this.q,this.x.add(t.toBigInteger()).mod(this.q))},ot.prototype.subtract=function(t){return new ot(this.q,this.x.subtract(t.toBigInteger()).mod(this.q))},ot.prototype.multiply=function(t){return new ot(this.q,this.x.multiply(t.toBigInteger()).mod(this.q))},ot.prototype.square=function(){return new ot(this.q,this.x.square().mod(this.q))},ot.prototype.divide=function(t){return new ot(this.q,this.x.multiply(t.toBigInteger().modInverse(this.q)).mod(this.q))},st.prototype.getX=function(){return null==this.zinv&&(this.zinv=this.z.modInverse(this.curve.q)),this.curve.fromBigInteger(this.x.toBigInteger().multiply(this.zinv).mod(this.curve.q))},st.prototype.getY=function(){return null==this.zinv&&(this.zinv=this.z.modInverse(this.curve.q)),this.curve.fromBigInteger(this.y.toBigInteger().multiply(this.zinv).mod(this.curve.q))},st.prototype.equals=function(t){return t==this||(this.isInfinity()?t.isInfinity():t.isInfinity()?this.isInfinity():!!t.y.toBigInteger().multiply(this.z).subtract(this.y.toBigInteger().multiply(t.z)).mod(this.curve.q).equals(F.ZERO)&&t.x.toBigInteger().multiply(this.z).subtract(this.x.toBigInteger().multiply(t.z)).mod(this.curve.q).equals(F.ZERO))},st.prototype.isInfinity=function(){return null==this.x&&null==this.y||this.z.equals(F.ZERO)&&!this.y.toBigInteger().equals(F.ZERO)},st.prototype.negate=function(){return new st(this.curve,this.x,this.y.negate(),this.z)},st.prototype.add=function(t){if(this.isInfinity())return t;if(t.isInfinity())return this;var e=t.y.toBigInteger().multiply(this.z).subtract(this.y.toBigInteger().multiply(t.z)).mod(this.curve.q),r=t.x.toBigInteger().multiply(this.z).subtract(this.x.toBigInteger().multiply(t.z)).mod(this.curve.q);if(F.ZERO.equals(r))return F.ZERO.equals(e)?this.twice():this.curve.getInfinity();var n=new F("3"),i=this.x.toBigInteger(),o=this.y.toBigInteger(),s=(t.x.toBigInteger(),t.y.toBigInteger(),r.square()),a=s.multiply(r),u=i.multiply(s),c=e.square().multiply(this.z),h=c.subtract(u.shiftLeft(1)).multiply(t.z).subtract(a).multiply(r).mod(this.curve.q),l=u.multiply(n).multiply(e).subtract(o.multiply(a)).subtract(c.multiply(e)).multiply(t.z).add(e.multiply(a)).mod(this.curve.q),f=a.multiply(this.z).multiply(t.z).mod(this.curve.q);return new st(this.curve,this.curve.fromBigInteger(h),this.curve.fromBigInteger(l),f)},st.prototype.twice=function(){if(this.isInfinity())return this;if(0==this.y.toBigInteger().signum())return this.curve.getInfinity();var t=new F("3"),e=this.x.toBigInteger(),r=this.y.toBigInteger(),n=r.multiply(this.z),i=n.multiply(r).mod(this.curve.q),o=this.curve.a.toBigInteger(),s=e.square().multiply(t);F.ZERO.equals(o)||(s=s.add(this.z.square().multiply(o)));var a=(s=s.mod(this.curve.q)).square().subtract(e.shiftLeft(3).multiply(i)).shiftLeft(1).multiply(n).mod(this.curve.q),u=s.multiply(t).multiply(e).subtract(i.shiftLeft(1)).shiftLeft(2).multiply(i).subtract(s.square().multiply(s)).mod(this.curve.q),c=n.square().multiply(n).shiftLeft(3).mod(this.curve.q);return new st(this.curve,this.curve.fromBigInteger(a),this.curve.fromBigInteger(u),c)},st.prototype.multiply=function(t){if(this.isInfinity())return this;if(0==t.signum())return this.curve.getInfinity();var e,r=t,n=r.multiply(new F("3")),i=this.negate(),o=this,s=this.curve.q.subtract(t),a=s.multiply(new F("3")),u=new st(this.curve,this.x,this.y),c=u.negate();for(e=n.bitLength()-2;e>0;--e){o=o.twice();var h=n.testBit(e);h!=r.testBit(e)&&(o=o.add(h?this:i))}for(e=a.bitLength()-2;e>0;--e){u=u.twice();var l=a.testBit(e);l!=s.testBit(e)&&(u=u.add(l?u:c))}return o},st.prototype.multiplyTwo=function(t,e,r){var n;n=t.bitLength()>r.bitLength()?t.bitLength()-1:r.bitLength()-1;for(var i=this.curve.getInfinity(),o=this.add(e);n>=0;)i=i.twice(),t.testBit(n)?i=r.testBit(n)?i.add(o):i.add(this):r.testBit(n)&&(i=i.add(e)),--n;return i},at.prototype.getQ=function(){return this.q},at.prototype.getA=function(){return this.a},at.prototype.getB=function(){return this.b},at.prototype.equals=function(t){return t==this||this.q.equals(t.q)&&this.a.equals(t.a)&&this.b.equals(t.b)},at.prototype.getInfinity=function(){return this.infinity},at.prototype.fromBigInteger=function(t){return new ot(this.q,t)},at.prototype.decodePointHex=function(t){switch(parseInt(t.substr(0,2),16)){case 0:return this.infinity;case 2:case 3:default:return null;case 4:case 6:case 7:var e=(t.length-2)/2,r=t.substr(2,e),n=t.substr(e+2,e);return new st(this,this.fromBigInteger(new F(r,16)),this.fromBigInteger(new F(n,16)))}},ot.prototype.getByteLength=function(){return Math.floor((this.toBigInteger().bitLength()+7)/8)},st.prototype.getEncoded=function(t){var e=function(t,e){var r=t.toByteArrayUnsigned();if(er.length;)r.unshift(0);return r},r=this.getX().toBigInteger(),n=this.getY().toBigInteger(),i=e(r,32);return t?n.isEven()?i.unshift(2):i.unshift(3):(i.unshift(4),i=i.concat(e(n,32))),i},st.decodeFrom=function(t,e){e[0];var r=e.length-1,n=e.slice(1,1+r/2),i=e.slice(1+r/2,1+r);n.unshift(0),i.unshift(0);var o=new F(n),s=new F(i);return new st(t,t.fromBigInteger(o),t.fromBigInteger(s))},st.decodeFromHex=function(t,e){e.substr(0,2);var r=e.length-2,n=e.substr(2,r/2),i=e.substr(2+r/2,r/2),o=new F(n,16),s=new F(i,16);return new st(t,t.fromBigInteger(o),t.fromBigInteger(s))},st.prototype.add2D=function(t){if(this.isInfinity())return t;if(t.isInfinity())return this;if(this.x.equals(t.x))return this.y.equals(t.y)?this.twice():this.curve.getInfinity();var e=t.x.subtract(this.x),r=t.y.subtract(this.y).divide(e),n=r.square().subtract(this.x).subtract(t.x),i=r.multiply(this.x.subtract(n)).subtract(this.y);return new st(this.curve,n,i)},st.prototype.twice2D=function(){if(this.isInfinity())return this;if(0==this.y.toBigInteger().signum())return this.curve.getInfinity();var t=this.curve.fromBigInteger(F.valueOf(2)),e=this.curve.fromBigInteger(F.valueOf(3)),r=this.x.square().multiply(e).add(this.curve.a).divide(this.y.multiply(t)),n=r.square().subtract(this.x.multiply(t)),i=r.multiply(this.x.subtract(n)).subtract(this.y);return new st(this.curve,n,i)},st.prototype.multiply2D=function(t){if(this.isInfinity())return this;if(0==t.signum())return this.curve.getInfinity();var e,r=t,n=r.multiply(new F("3")),i=this.negate(),o=this;for(e=n.bitLength()-2;e>0;--e){o=o.twice();var s=n.testBit(e);s!=r.testBit(e)&&(o=o.add2D(s?this:i))}return o},st.prototype.isOnCurve=function(){var t=this.getX().toBigInteger(),e=this.getY().toBigInteger(),r=this.curve.getA().toBigInteger(),n=this.curve.getB().toBigInteger(),i=this.curve.getQ(),o=e.multiply(e).mod(i),s=t.multiply(t).multiply(t).add(r.multiply(t)).add(n).mod(i);return o.equals(s)},st.prototype.toString=function(){return"("+this.getX().toBigInteger().toString()+","+this.getY().toBigInteger().toString()+")"},st.prototype.validate=function(){var t=this.curve.getQ();if(this.isInfinity())throw new Error("Point is at infinity.");var e=this.getX().toBigInteger(),r=this.getY().toBigInteger();if(e.compareTo(F.ONE)<0||e.compareTo(t.subtract(F.ONE))>0)throw new Error("x coordinate out of bounds");if(r.compareTo(F.ONE)<0||r.compareTo(t.subtract(F.ONE))>0)throw new Error("y coordinate out of bounds");if(!this.isOnCurve())throw new Error("Point is not on the curve.");if(this.multiply(t).isInfinity())throw new Error("Point is not a scalar multiple of G.");return!0};var ut=function(){var t=new RegExp('(?:false|true|null|[\\{\\}\\[\\]]|(?:-?\\b(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?\\b)|(?:"(?:[^\\0-\\x08\\x0a-\\x1f"\\\\]|\\\\(?:["/\\\\bfnrt]|u[0-9A-Fa-f]{4}))*"))',"g"),e=new RegExp("\\\\(?:([^u])|u(.{4}))","g"),n={'"':'"',"/":"/","\\":"\\",b:"\b",f:"\f",n:"\n",r:"\r",t:"\t"};function i(t,e,r){return e?n[e]:String.fromCharCode(parseInt(r,16))}var o=new String(""),s=Object.hasOwnProperty;return function(n,a){var u,c,h=n.match(t),l=h[0],f=!1;"{"===l?u={}:"["===l?u=[]:(u=[],f=!0);for(var g=[u],d=1-f,p=h.length;d=0;)delete i[o[h]]}return a.call(e,n,i)}({"":u},"")),u}}();void 0!==ct&&ct||(e.KJUR=ct={}),void 0!==ct.asn1&&ct.asn1||(ct.asn1={}),ct.asn1.ASN1Util=new function(){this.integerToByteHex=function(t){var e=t.toString(16);return e.length%2==1&&(e="0"+e),e},this.bigIntToMinTwosComplementsHex=function(t){var e=t.toString(16);if("-"!=e.substr(0,1))e.length%2==1?e="0"+e:e.match(/^[0-7]/)||(e="00"+e);else{var r=e.substr(1).length;r%2==1?r+=1:e.match(/^[0-7]/)||(r+=2);for(var n="",i=0;i15)throw"ASN.1 length too long to represent by 8x: n = "+t.toString(16);return(128+r).toString(16)+e},this.getEncodedHex=function(){return(null==this.hTLV||this.isModified)&&(this.hV=this.getFreshValueHex(),this.hL=this.getLengthHexFromValue(),this.hTLV=this.hT+this.hL+this.hV,this.isModified=!1),this.hTLV},this.getValueHex=function(){return this.getEncodedHex(),this.hV},this.getFreshValueHex=function(){return""},this.setByParam=function(t){this.params=t},null!=t&&null!=t.tlv&&(this.hTLV=t.tlv,this.isModified=!1)},ct.asn1.DERAbstractString=function(t){ct.asn1.DERAbstractString.superclass.constructor.call(this),this.getString=function(){return this.s},this.setString=function(t){this.hTLV=null,this.isModified=!0,this.s=t,this.hV=wt(this.s).toLowerCase()},this.setStringHex=function(t){this.hTLV=null,this.isModified=!0,this.s=null,this.hV=t},this.getFreshValueHex=function(){return this.hV},void 0!==t&&("string"==typeof t?this.setString(t):void 0!==t.str?this.setString(t.str):void 0!==t.hex&&this.setStringHex(t.hex))},o.lang.extend(ct.asn1.DERAbstractString,ct.asn1.ASN1Object),ct.asn1.DERAbstractTime=function(t){ct.asn1.DERAbstractTime.superclass.constructor.call(this),this.localDateToUTC=function(t){var e=t.getTime()+6e4*t.getTimezoneOffset();return new Date(e)},this.formatDate=function(t,e,r){var n=this.zeroPadding,i=this.localDateToUTC(t),o=String(i.getFullYear());"utc"==e&&(o=o.substr(2,2));var s=o+n(String(i.getMonth()+1),2)+n(String(i.getDate()),2)+n(String(i.getHours()),2)+n(String(i.getMinutes()),2)+n(String(i.getSeconds()),2);if(!0===r){var a=i.getMilliseconds();if(0!=a){var u=n(String(a),3);s=s+"."+(u=u.replace(/[0]+$/,""))}}return s+"Z"},this.zeroPadding=function(t,e){return t.length>=e?t:new Array(e-t.length+1).join("0")+t},this.getString=function(){return this.s},this.setString=function(t){this.hTLV=null,this.isModified=!0,this.s=t,this.hV=vt(t)},this.setByDateValue=function(t,e,r,n,i,o){var s=new Date(Date.UTC(t,e-1,r,n,i,o,0));this.setByDate(s)},this.getFreshValueHex=function(){return this.hV}},o.lang.extend(ct.asn1.DERAbstractTime,ct.asn1.ASN1Object),ct.asn1.DERAbstractStructured=function(t){ct.asn1.DERAbstractString.superclass.constructor.call(this),this.setByASN1ObjectArray=function(t){this.hTLV=null,this.isModified=!0,this.asn1Array=t},this.appendASN1Object=function(t){this.hTLV=null,this.isModified=!0,this.asn1Array.push(t)},this.asn1Array=new Array,void 0!==t&&void 0!==t.array&&(this.asn1Array=t.array)},o.lang.extend(ct.asn1.DERAbstractStructured,ct.asn1.ASN1Object),ct.asn1.DERBoolean=function(t){ct.asn1.DERBoolean.superclass.constructor.call(this),this.hT="01",this.hTLV=0==t?"010100":"0101ff"},o.lang.extend(ct.asn1.DERBoolean,ct.asn1.ASN1Object),ct.asn1.DERInteger=function(t){ct.asn1.DERInteger.superclass.constructor.call(this),this.hT="02",this.setByBigInteger=function(t){this.hTLV=null,this.isModified=!0,this.hV=ct.asn1.ASN1Util.bigIntToMinTwosComplementsHex(t)},this.setByInteger=function(t){var e=new F(String(t),10);this.setByBigInteger(e)},this.setValueHex=function(t){this.hV=t},this.getFreshValueHex=function(){return this.hV},void 0!==t&&(void 0!==t.bigint?this.setByBigInteger(t.bigint):void 0!==t.int?this.setByInteger(t.int):"number"==typeof t?this.setByInteger(t):void 0!==t.hex&&this.setValueHex(t.hex))},o.lang.extend(ct.asn1.DERInteger,ct.asn1.ASN1Object),ct.asn1.DERBitString=function(t){if(void 0!==t&&void 0!==t.obj){var e=ct.asn1.ASN1Util.newObject(t.obj);t.hex="00"+e.getEncodedHex()}ct.asn1.DERBitString.superclass.constructor.call(this),this.hT="03",this.setHexValueIncludingUnusedBits=function(t){this.hTLV=null,this.isModified=!0,this.hV=t},this.setUnusedBitsAndHexValue=function(t,e){if(t<0||7i.length&&(i=n[r]);return(t=t.replace(i,"::")).slice(1,-1)}function Ut(t){var e="malformed hex value";if(!t.match(/^([0-9A-Fa-f][0-9A-Fa-f]){1,}$/))throw e;if(8!=t.length)return 32==t.length?Nt(t):t;try{return parseInt(t.substr(0,2),16)+"."+parseInt(t.substr(2,2),16)+"."+parseInt(t.substr(4,2),16)+"."+parseInt(t.substr(6,2),16)}catch(t){throw e}}function Ot(t){for(var e=encodeURIComponent(t),r="",n=0;n"7"?"00"+t:t}ft.getLblen=function(t,e){if("8"!=t.substr(e+2,1))return 1;var r=parseInt(t.substr(e+3,1));return 0==r?-1:0=n)break}return s},ft.getNthChildIdx=function(t,e,r){return ft.getChildIdx(t,e)[r]},ft.getIdxbyList=function(t,e,r,n){var i,o,s=ft;return 0==r.length?void 0!==n&&t.substr(e,2)!==n?-1:e:(i=r.shift())>=(o=s.getChildIdx(t,e)).length?-1:s.getIdxbyList(t,o[i],r,n)},ft.getIdxbyListEx=function(t,e,r,n){var i,o,s=ft;if(0==r.length)return void 0!==n&&t.substr(e,2)!==n?-1:e;i=r.shift(),o=s.getChildIdx(t,e);for(var a=0,u=0;u=t.length?null:i.getTLV(t,o)},ft.getTLVbyListEx=function(t,e,r,n){var i=ft,o=i.getIdxbyListEx(t,e,r,n);return-1==o?null:i.getTLV(t,o)},ft.getVbyList=function(t,e,r,n,i){var o,s,a=ft;return-1==(o=a.getIdxbyList(t,e,r,n))||o>=t.length?null:(s=a.getV(t,o),!0===i&&(s=s.substr(2)),s)},ft.getVbyListEx=function(t,e,r,n,i){var o,s,a=ft;return-1==(o=a.getIdxbyListEx(t,e,r,n))?null:(s=a.getV(t,o),"03"==t.substr(o,2)&&!1!==i&&(s=s.substr(2)),s)},ft.getInt=function(t,e,r){null==r&&(r=-1);try{var n=t.substr(e,2);if("02"!=n&&"03"!=n)return r;var i=ft.getV(t,e);return"02"==n?parseInt(i,16):function(t){try{var e=t.substr(0,2);if("00"==e)return parseInt(t.substr(2),16);var r=parseInt(e,16),n=t.substr(2),i=parseInt(n,16).toString(2);return"0"==i&&(i="00000000"),i=i.slice(0,0-r),parseInt(i,2)}catch(t){return-1}}(i)}catch(t){return r}},ft.getOID=function(t,e,r){null==r&&(r=null);try{return"06"!=t.substr(e,2)?r:function(t){if(!Bt(t))return null;try{var e=[],r=t.substr(0,2),n=parseInt(r,16);e[0]=new String(Math.floor(n/40)),e[1]=new String(n%40);for(var i=t.substr(2),o=[],s=0;s0&&(c=c+"."+a.join(".")),c}catch(t){return null}}(ft.getV(t,e))}catch(t){return r}},ft.getOIDName=function(t,e,r){null==r&&(r=null);try{var n=ft.getOID(t,e,r);if(n==r)return r;var i=ct.asn1.x509.OID.oid2name(n);return""==i?n:i}catch(t){return r}},ft.getString=function(t,e,r){null==r&&(r=null);try{return Ft(ft.getV(t,e))}catch(t){return r}},ft.hextooidstr=function(t){var e=function(t,e){return t.length>=e?t:new Array(e-t.length+1).join("0")+t},r=[],n=t.substr(0,2),i=parseInt(n,16);r[0]=new String(Math.floor(i/40)),r[1]=new String(i%40);for(var o=t.substr(2),s=[],a=0;a0&&(h=h+"."+u.join(".")),h},ft.dump=function(t,e,r,n){var i=ft,o=i.getV,s=i.dump,a=i.getChildIdx,u=t;t instanceof ct.asn1.ASN1Object&&(u=t.getEncodedHex());var c=function(t,e){return t.length<=2*e?t:t.substr(0,e)+"..(total "+t.length/2+"bytes).."+t.substr(t.length-e,e)};void 0===e&&(e={ommit_long_octet:32}),void 0===r&&(r=0),void 0===n&&(n="");var h,l=e.ommit_long_octet;if("01"==(h=u.substr(r,2)))return"00"==(f=o(u,r))?n+"BOOLEAN FALSE\n":n+"BOOLEAN TRUE\n";if("02"==h)return n+"INTEGER "+c(f=o(u,r),l)+"\n";if("03"==h){var f=o(u,r);return i.isASN1HEX(f.substr(2))?(w=n+"BITSTRING, encapsulates\n")+s(f.substr(2),e,0,n+" "):n+"BITSTRING "+c(f,l)+"\n"}if("04"==h)return f=o(u,r),i.isASN1HEX(f)?(w=n+"OCTETSTRING, encapsulates\n")+s(f,e,0,n+" "):n+"OCTETSTRING "+c(f,l)+"\n";if("05"==h)return n+"NULL\n";if("06"==h){var g=o(u,r),d=ct.asn1.ASN1Util.oidHexToInt(g),p=ct.asn1.x509.OID.oid2name(d),v=d.replace(/\./g," ");return""!=p?n+"ObjectIdentifier "+p+" ("+v+")\n":n+"ObjectIdentifier ("+v+")\n"}if("0a"==h)return n+"ENUMERATED "+parseInt(o(u,r))+"\n";if("0c"==h)return n+"UTF8String '"+bt(o(u,r))+"'\n";if("13"==h)return n+"PrintableString '"+bt(o(u,r))+"'\n";if("14"==h)return n+"TeletexString '"+bt(o(u,r))+"'\n";if("16"==h)return n+"IA5String '"+bt(o(u,r))+"'\n";if("17"==h)return n+"UTCTime "+bt(o(u,r))+"\n";if("18"==h)return n+"GeneralizedTime "+bt(o(u,r))+"\n";if("1a"==h)return n+"VisualString '"+bt(o(u,r))+"'\n";if("1e"==h)return n+"BMPString '"+bt(o(u,r))+"'\n";if("30"==h){if("3000"==u.substr(r,4))return n+"SEQUENCE {}\n";w=n+"SEQUENCE\n";var y=e;if((2==(S=a(u,r)).length||3==S.length)&&"06"==u.substr(S[0],2)&&"04"==u.substr(S[S.length-1],2)){p=i.oidname(o(u,S[0]));var m=JSON.parse(JSON.stringify(e));m.x509ExtName=p,y=m}for(var _=0;_31)&&128==(192&r)&&(31&r)==n}catch(t){return!1}},ft.isASN1HEX=function(t){var e=ft;if(t.length%2==1)return!1;var r=e.getVblen(t,0),n=t.substr(0,2),i=e.getL(t,0);return t.length-n.length-i.length==2*r},ft.checkStrictDER=function(t,e,r,n,i){var o=ft;if(void 0===r){if("string"!=typeof t)throw new Error("not hex string");if(t=t.toLowerCase(),!ct.lang.String.isHex(t))throw new Error("not hex string");r=t.length,i=(n=t.length/2)<128?1:Math.ceil(n.toString(16))+1}if(o.getL(t,e).length>2*i)throw new Error("L of TLV too long: idx="+e);var s=o.getVblen(t,e);if(s>n)throw new Error("value of L too long than hex: idx="+e);var a=o.getTLV(t,e),u=a.length-2-o.getL(t,e).length;if(u!==2*s)throw new Error("V string length and L's value not the same:"+u+"/"+2*s);if(0===e&&t.length!=a.length)throw new Error("total length and TLV length unmatch:"+t.length+"!="+a.length);var c=t.substr(e,2);if("02"===c){var h=o.getVidx(t,e);if("00"==t.substr(h,2)&&t.charCodeAt(h+2)<56)throw new Error("not least zeros for DER INTEGER")}if(32&parseInt(c,16)){for(var l=o.getVblen(t,e),f=0,g=o.getChildIdx(t,e),d=0;d=e?t:new Array(e-t.length+1).join(r)+t};void 0!==ct&&ct||(e.KJUR=ct={}),void 0!==ct.crypto&&ct.crypto||(ct.crypto={}),ct.crypto.Util=new function(){this.DIGESTINFOHEAD={sha1:"3021300906052b0e03021a05000414",sha224:"302d300d06096086480165030402040500041c",sha256:"3031300d060960864801650304020105000420",sha384:"3041300d060960864801650304020205000430",sha512:"3051300d060960864801650304020305000440",md2:"3020300c06082a864886f70d020205000410",md5:"3020300c06082a864886f70d020505000410",ripemd160:"3021300906052b2403020105000414"},this.DEFAULTPROVIDER={md5:"cryptojs",sha1:"cryptojs",sha224:"cryptojs",sha256:"cryptojs",sha384:"cryptojs",sha512:"cryptojs",ripemd160:"cryptojs",hmacmd5:"cryptojs",hmacsha1:"cryptojs",hmacsha224:"cryptojs",hmacsha256:"cryptojs",hmacsha384:"cryptojs",hmacsha512:"cryptojs",hmacripemd160:"cryptojs",MD5withRSA:"cryptojs/jsrsa",SHA1withRSA:"cryptojs/jsrsa",SHA224withRSA:"cryptojs/jsrsa",SHA256withRSA:"cryptojs/jsrsa",SHA384withRSA:"cryptojs/jsrsa",SHA512withRSA:"cryptojs/jsrsa",RIPEMD160withRSA:"cryptojs/jsrsa",MD5withECDSA:"cryptojs/jsrsa",SHA1withECDSA:"cryptojs/jsrsa",SHA224withECDSA:"cryptojs/jsrsa",SHA256withECDSA:"cryptojs/jsrsa",SHA384withECDSA:"cryptojs/jsrsa",SHA512withECDSA:"cryptojs/jsrsa",RIPEMD160withECDSA:"cryptojs/jsrsa",SHA1withDSA:"cryptojs/jsrsa",SHA224withDSA:"cryptojs/jsrsa",SHA256withDSA:"cryptojs/jsrsa",MD5withRSAandMGF1:"cryptojs/jsrsa",SHAwithRSAandMGF1:"cryptojs/jsrsa",SHA1withRSAandMGF1:"cryptojs/jsrsa",SHA224withRSAandMGF1:"cryptojs/jsrsa",SHA256withRSAandMGF1:"cryptojs/jsrsa",SHA384withRSAandMGF1:"cryptojs/jsrsa",SHA512withRSAandMGF1:"cryptojs/jsrsa",RIPEMD160withRSAandMGF1:"cryptojs/jsrsa"},this.CRYPTOJSMESSAGEDIGESTNAME={md5:y.algo.MD5,sha1:y.algo.SHA1,sha224:y.algo.SHA224,sha256:y.algo.SHA256,sha384:y.algo.SHA384,sha512:y.algo.SHA512,ripemd160:y.algo.RIPEMD160},this.getDigestInfoHex=function(t,e){if(void 0===this.DIGESTINFOHEAD[e])throw"alg not supported in Util.DIGESTINFOHEAD: "+e;return this.DIGESTINFOHEAD[e]+t},this.getPaddedDigestInfoHex=function(t,e,r){var n=this.getDigestInfoHex(t,e),i=r/4;if(n.length+22>i)throw"key is too short for SigAlg: keylen="+r+","+e;for(var o="0001",s="00"+n,a="",u=i-o.length-s.length,c=0;c=0)return!1;if(r.compareTo(n.ONE)<0||r.compareTo(o)>=0)return!1;var a=r.modInverse(o),u=t.multiply(a).mod(o),c=e.multiply(a).mod(o);return s.multiply(u).add(i.multiply(c)).getX().toBigInteger().mod(o).equals(e)},this.serializeSig=function(t,e){var r=t.toByteArraySigned(),n=e.toByteArraySigned(),i=[];return i.push(2),i.push(r.length),(i=i.concat(r)).push(2),i.push(n.length),(i=i.concat(n)).unshift(i.length),i.unshift(48),i},this.parseSig=function(t){var e;if(48!=t[0])throw new Error("Signature not a valid DERSequence");if(2!=t[e=2])throw new Error("First element in signature must be a DERInteger");var r=t.slice(e+2,e+2+t[e+1]);if(2!=t[e+=2+t[e+1]])throw new Error("Second element in signature must be a DERInteger");var i=t.slice(e+2,e+2+t[e+1]);return e+=2+t[e+1],{r:n.fromByteArrayUnsigned(r),s:n.fromByteArrayUnsigned(i)}},this.parseSigCompact=function(t){if(65!==t.length)throw"Signature has the wrong length";var e=t[0]-27;if(e<0||e>7)throw"Invalid signature type";var r=this.ecparams.n;return{r:n.fromByteArrayUnsigned(t.slice(1,33)).mod(r),s:n.fromByteArrayUnsigned(t.slice(33,65)).mod(r),i:e}},this.readPKCS5PrvKeyHex=function(t){if(!1===h(t))throw new Error("not ASN.1 hex string");var e,r,n;try{e=c(t,0,["[0]",0],"06"),r=c(t,0,[1],"04");try{n=c(t,0,["[1]",0],"03")}catch(t){}}catch(t){throw new Error("malformed PKCS#1/5 plain ECC private key")}if(this.curveName=a(e),void 0===this.curveName)throw"unsupported curve name";this.setNamedCurve(this.curveName),this.setPublicKeyHex(n),this.setPrivateKeyHex(r),this.isPublic=!1},this.readPKCS8PrvKeyHex=function(t){if(!1===h(t))throw new e("not ASN.1 hex string");var r,n,i;try{c(t,0,[1,0],"06"),r=c(t,0,[1,1],"06"),n=c(t,0,[2,0,1],"04");try{i=c(t,0,[2,0,"[1]",0],"03")}catch(t){}}catch(t){throw new e("malformed PKCS#8 plain ECC private key")}if(this.curveName=a(r),void 0===this.curveName)throw new e("unsupported curve name");this.setNamedCurve(this.curveName),this.setPublicKeyHex(i),this.setPrivateKeyHex(n),this.isPublic=!1},this.readPKCS8PubKeyHex=function(t){if(!1===h(t))throw new e("not ASN.1 hex string");var r,n;try{c(t,0,[0,0],"06"),r=c(t,0,[0,1],"06"),n=c(t,0,[1],"03")}catch(t){throw new e("malformed PKCS#8 ECC public key")}if(this.curveName=a(r),null===this.curveName)throw new e("unsupported curve name");this.setNamedCurve(this.curveName),this.setPublicKeyHex(n)},this.readCertPubKeyHex=function(t,r){if(!1===h(t))throw new e("not ASN.1 hex string");var n,i;try{n=c(t,0,[0,5,0,1],"06"),i=c(t,0,[0,5,1],"03")}catch(t){throw new e("malformed X.509 certificate ECC public key")}if(this.curveName=a(n),null===this.curveName)throw new e("unsupported curve name");this.setNamedCurve(this.curveName),this.setPublicKeyHex(i)},void 0!==t&&void 0!==t.curve&&(this.curveName=t.curve),void 0===this.curveName&&(this.curveName="secp256r1"),this.setNamedCurve(this.curveName),void 0!==t&&(void 0!==t.prv&&this.setPrivateKeyHex(t.prv),void 0!==t.pub&&this.setPublicKeyHex(t.pub))},ct.crypto.ECDSA.parseSigHex=function(t){var e=ct.crypto.ECDSA.parseSigHexInHexRS(t);return{r:new F(e.r,16),s:new F(e.s,16)}},ct.crypto.ECDSA.parseSigHexInHexRS=function(t){var e=ft,r=e.getChildIdx,n=e.getV;if(e.checkStrictDER(t,0),"30"!=t.substr(0,2))throw new Error("signature is not a ASN.1 sequence");var i=r(t,0);if(2!=i.length)throw new Error("signature shall have two elements");var o=i[0],s=i[1];if("02"!=t.substr(o,2))throw new Error("1st item not ASN.1 integer");if("02"!=t.substr(s,2))throw new Error("2nd item not ASN.1 integer");return{r:n(t,o),s:n(t,s)}},ct.crypto.ECDSA.asn1SigToConcatSig=function(t){var e=ct.crypto.ECDSA.parseSigHexInHexRS(t),r=e.r,n=e.s;if("00"==r.substr(0,2)&&r.length%32==2&&(r=r.substr(2)),"00"==n.substr(0,2)&&n.length%32==2&&(n=n.substr(2)),r.length%32==30&&(r="00"+r),n.length%32==30&&(n="00"+n),r.length%32!=0)throw"unknown ECDSA sig r length error";if(n.length%32!=0)throw"unknown ECDSA sig s length error";return r+n},ct.crypto.ECDSA.concatSigToASN1Sig=function(t){if(t.length/2*8%128!=0)throw"unknown ECDSA concatinated r-s sig length error";var e=t.substr(0,t.length/2),r=t.substr(t.length/2);return ct.crypto.ECDSA.hexRSSigToASN1Sig(e,r)},ct.crypto.ECDSA.hexRSSigToASN1Sig=function(t,e){var r=new F(t,16),n=new F(e,16);return ct.crypto.ECDSA.biRSSigToASN1Sig(r,n)},ct.crypto.ECDSA.biRSSigToASN1Sig=function(t,e){var r=ct.asn1,n=new r.DERInteger({bigint:t}),i=new r.DERInteger({bigint:e});return new r.DERSequence({array:[n,i]}).getEncodedHex()},ct.crypto.ECDSA.getName=function(t){return"2b8104001f"===t?"secp192k1":"2a8648ce3d030107"===t?"secp256r1":"2b8104000a"===t?"secp256k1":"2b81040021"===t?"secp224r1":"2b81040022"===t?"secp384r1":-1!=="|secp256r1|NIST P-256|P-256|prime256v1|".indexOf(t)?"secp256r1":-1!=="|secp256k1|".indexOf(t)?"secp256k1":-1!=="|secp224r1|NIST P-224|P-224|".indexOf(t)?"secp224r1":-1!=="|secp384r1|NIST P-384|P-384|".indexOf(t)?"secp384r1":null},void 0!==ct&&ct||(e.KJUR=ct={}),void 0!==ct.crypto&&ct.crypto||(ct.crypto={}),ct.crypto.ECParameterDB=new function(){var t={},e={};function r(t){return new F(t,16)}this.getByName=function(r){var n=r;if(void 0!==e[n]&&(n=e[r]),void 0!==t[n])return t[n];throw"unregistered EC curve name: "+n},this.regist=function(n,i,o,s,a,u,c,h,l,f,g,d){t[n]={};var p=r(o),v=r(s),y=r(a),m=r(u),_=r(c),S=new at(p,v,y),w=S.decodePointHex("04"+h+l);t[n].name=n,t[n].keylen=i,t[n].curve=S,t[n].G=w,t[n].n=m,t[n].h=_,t[n].oid=g,t[n].info=d;for(var b=0;b=2*a)break}var l={};return l.keyhex=u.substr(0,2*i[t].keylen),l.ivhex=u.substr(2*i[t].keylen,2*i[t].ivlen),l},a=function(t,e,r,n){var o=y.enc.Base64.parse(t),s=y.enc.Hex.stringify(o);return(0,i[e].proc)(s,r,n)};return{version:"1.0.0",parsePKCS5PEM:function(t){return o(t)},getKeyAndUnusedIvByPasscodeAndIvsalt:function(t,e,r){return s(t,e,r)},decryptKeyB64:function(t,e,r,n){return a(t,e,r,n)},getDecryptedKeyHex:function(t,e){var r=o(t),n=(r.type,r.cipher),i=r.ivsalt,u=r.data,c=s(n,e,i).keyhex;return a(u,n,c,i)},getEncryptedPKCS5PEMFromPrvKeyHex:function(t,e,r,n,o){var a="";if(void 0!==n&&null!=n||(n="AES-256-CBC"),void 0===i[n])throw"KEYUTIL unsupported algorithm: "+n;void 0!==o&&null!=o||(o=function(t){var e=y.lib.WordArray.random(t);return y.enc.Hex.stringify(e)}(i[n].ivlen).toUpperCase());var u=function(t,e,r,n){return(0,i[e].eproc)(t,r,n)}(e,n,s(n,r,o).keyhex,o);return a="-----BEGIN "+t+" PRIVATE KEY-----\r\n",a+="Proc-Type: 4,ENCRYPTED\r\n",a+="DEK-Info: "+n+","+o+"\r\n",a+="\r\n",(a+=u.replace(/(.{64})/g,"$1\r\n"))+"\r\n-----END "+t+" PRIVATE KEY-----\r\n"},parseHexOfEncryptedPKCS8:function(t){var e=ft,r=e.getChildIdx,n=e.getV,i={},o=r(t,0);if(2!=o.length)throw"malformed format: SEQUENCE(0).items != 2: "+o.length;i.ciphertext=n(t,o[1]);var s=r(t,o[0]);if(2!=s.length)throw"malformed format: SEQUENCE(0.0).items != 2: "+s.length;if("2a864886f70d01050d"!=n(t,s[0]))throw"this only supports pkcs5PBES2";var a=r(t,s[1]);if(2!=s.length)throw"malformed format: SEQUENCE(0.0.1).items != 2: "+a.length;var u=r(t,a[1]);if(2!=u.length)throw"malformed format: SEQUENCE(0.0.1.1).items != 2: "+u.length;if("2a864886f70d0307"!=n(t,u[0]))throw"this only supports TripleDES";i.encryptionSchemeAlg="TripleDES",i.encryptionSchemeIV=n(t,u[1]);var c=r(t,a[0]);if(2!=c.length)throw"malformed format: SEQUENCE(0.0.1.0).items != 2: "+c.length;if("2a864886f70d01050c"!=n(t,c[0]))throw"this only supports pkcs5PBKDF2";var h=r(t,c[1]);if(h.length<2)throw"malformed format: SEQUENCE(0.0.1.0.1).items < 2: "+h.length;i.pbkdf2Salt=n(t,h[0]);var l=n(t,h[1]);try{i.pbkdf2Iter=parseInt(l,16)}catch(t){throw"malformed format pbkdf2Iter: "+l}return i},getPBKDF2KeyHexFromParam:function(t,e){var r=y.enc.Hex.parse(t.pbkdf2Salt),n=t.pbkdf2Iter,i=y.PBKDF2(e,r,{keySize:6,iterations:n});return y.enc.Hex.stringify(i)},_getPlainPKCS8HexFromEncryptedPKCS8PEM:function(t,e){var r=Ct(t,"ENCRYPTED PRIVATE KEY"),n=this.parseHexOfEncryptedPKCS8(r),i=Ht.getPBKDF2KeyHexFromParam(n,e),o={};o.ciphertext=y.enc.Hex.parse(n.ciphertext);var s=y.enc.Hex.parse(i),a=y.enc.Hex.parse(n.encryptionSchemeIV),u=y.TripleDES.decrypt(o,s,{iv:a});return y.enc.Hex.stringify(u)},getKeyFromEncryptedPKCS8PEM:function(t,e){var r=this._getPlainPKCS8HexFromEncryptedPKCS8PEM(t,e);return this.getKeyFromPlainPrivatePKCS8Hex(r)},parsePlainPrivatePKCS8Hex:function(t){var e=ft,r=e.getChildIdx,n=e.getV,i={algparam:null};if("30"!=t.substr(0,2))throw"malformed plain PKCS8 private key(code:001)";var o=r(t,0);if(3!=o.length)throw"malformed plain PKCS8 private key(code:002)";if("30"!=t.substr(o[1],2))throw"malformed PKCS8 private key(code:003)";var s=r(t,o[1]);if(2!=s.length)throw"malformed PKCS8 private key(code:004)";if("06"!=t.substr(s[0],2))throw"malformed PKCS8 private key(code:005)";if(i.algoid=n(t,s[0]),"06"==t.substr(s[1],2)&&(i.algparam=n(t,s[1])),"04"!=t.substr(o[2],2))throw"malformed PKCS8 private key(code:006)";return i.keyidx=e.getVidx(t,o[2]),i},getKeyFromPlainPrivatePKCS8PEM:function(t){var e=Ct(t,"PRIVATE KEY");return this.getKeyFromPlainPrivatePKCS8Hex(e)},getKeyFromPlainPrivatePKCS8Hex:function(t){var e,r=this.parsePlainPrivatePKCS8Hex(t);if("2a864886f70d010101"==r.algoid)e=new it;else if("2a8648ce380401"==r.algoid)e=new ct.crypto.DSA;else{if("2a8648ce3d0201"!=r.algoid)throw"unsupported private key algorithm";e=new ct.crypto.ECDSA}return e.readPKCS8PrvKeyHex(t),e},_getKeyFromPublicPKCS8Hex:function(t){var e,r=ft.getVbyList(t,0,[0,0],"06");if("2a864886f70d010101"===r)e=new it;else if("2a8648ce380401"===r)e=new ct.crypto.DSA;else{if("2a8648ce3d0201"!==r)throw"unsupported PKCS#8 public key hex";e=new ct.crypto.ECDSA}return e.readPKCS8PubKeyHex(t),e},parsePublicRawRSAKeyHex:function(t){var e=ft,r=e.getChildIdx,n=e.getV,i={};if("30"!=t.substr(0,2))throw"malformed RSA key(code:001)";var o=r(t,0);if(2!=o.length)throw"malformed RSA key(code:002)";if("02"!=t.substr(o[0],2))throw"malformed RSA key(code:003)";if(i.n=n(t,o[0]),"02"!=t.substr(o[1],2))throw"malformed RSA key(code:004)";return i.e=n(t,o[1]),i},parsePublicPKCS8Hex:function(t){var e=ft,r=e.getChildIdx,n=e.getV,i={algparam:null},o=r(t,0);if(2!=o.length)throw"outer DERSequence shall have 2 elements: "+o.length;var s=o[0];if("30"!=t.substr(s,2))throw"malformed PKCS8 public key(code:001)";var a=r(t,s);if(2!=a.length)throw"malformed PKCS8 public key(code:002)";if("06"!=t.substr(a[0],2))throw"malformed PKCS8 public key(code:003)";if(i.algoid=n(t,a[0]),"06"==t.substr(a[1],2)?i.algparam=n(t,a[1]):"30"==t.substr(a[1],2)&&(i.algparam={},i.algparam.p=e.getVbyList(t,a[1],[0],"02"),i.algparam.q=e.getVbyList(t,a[1],[1],"02"),i.algparam.g=e.getVbyList(t,a[1],[2],"02")),"03"!=t.substr(o[1],2))throw"malformed PKCS8 public key(code:004)";return i.key=n(t,o[1]).substr(2),i}}}();Ht.getKey=function(t,e,r){var n,i=(y=ft).getChildIdx,o=(y.getV,y.getVbyList),s=ct.crypto,a=s.ECDSA,u=s.DSA,c=it,h=Ct,l=Ht;if(void 0!==c&&t instanceof c)return t;if(void 0!==a&&t instanceof a)return t;if(void 0!==u&&t instanceof u)return t;if(void 0!==t.curve&&void 0!==t.xy&&void 0===t.d)return new a({pub:t.xy,curve:t.curve});if(void 0!==t.curve&&void 0!==t.d)return new a({prv:t.d,curve:t.curve});if(void 0===t.kty&&void 0!==t.n&&void 0!==t.e&&void 0===t.d)return(C=new c).setPublic(t.n,t.e),C;if(void 0===t.kty&&void 0!==t.n&&void 0!==t.e&&void 0!==t.d&&void 0!==t.p&&void 0!==t.q&&void 0!==t.dp&&void 0!==t.dq&&void 0!==t.co&&void 0===t.qi)return(C=new c).setPrivateEx(t.n,t.e,t.d,t.p,t.q,t.dp,t.dq,t.co),C;if(void 0===t.kty&&void 0!==t.n&&void 0!==t.e&&void 0!==t.d&&void 0===t.p)return(C=new c).setPrivate(t.n,t.e,t.d),C;if(void 0!==t.p&&void 0!==t.q&&void 0!==t.g&&void 0!==t.y&&void 0===t.x)return(C=new u).setPublic(t.p,t.q,t.g,t.y),C;if(void 0!==t.p&&void 0!==t.q&&void 0!==t.g&&void 0!==t.y&&void 0!==t.x)return(C=new u).setPrivate(t.p,t.q,t.g,t.y,t.x),C;if("RSA"===t.kty&&void 0!==t.n&&void 0!==t.e&&void 0===t.d)return(C=new c).setPublic(St(t.n),St(t.e)),C;if("RSA"===t.kty&&void 0!==t.n&&void 0!==t.e&&void 0!==t.d&&void 0!==t.p&&void 0!==t.q&&void 0!==t.dp&&void 0!==t.dq&&void 0!==t.qi)return(C=new c).setPrivateEx(St(t.n),St(t.e),St(t.d),St(t.p),St(t.q),St(t.dp),St(t.dq),St(t.qi)),C;if("RSA"===t.kty&&void 0!==t.n&&void 0!==t.e&&void 0!==t.d)return(C=new c).setPrivate(St(t.n),St(t.e),St(t.d)),C;if("EC"===t.kty&&void 0!==t.crv&&void 0!==t.x&&void 0!==t.y&&void 0===t.d){var f=(P=new a({curve:t.crv})).ecparams.keylen/4,g="04"+("0000000000"+St(t.x)).slice(-f)+("0000000000"+St(t.y)).slice(-f);return P.setPublicKeyHex(g),P}if("EC"===t.kty&&void 0!==t.crv&&void 0!==t.x&&void 0!==t.y&&void 0!==t.d){f=(P=new a({curve:t.crv})).ecparams.keylen/4,g="04"+("0000000000"+St(t.x)).slice(-f)+("0000000000"+St(t.y)).slice(-f);var d=("0000000000"+St(t.d)).slice(-f);return P.setPublicKeyHex(g),P.setPrivateKeyHex(d),P}if("pkcs5prv"===r){var p,v=t,y=ft;if(9===(p=i(v,0)).length)(C=new c).readPKCS5PrvKeyHex(v);else if(6===p.length)(C=new u).readPKCS5PrvKeyHex(v);else{if(!(p.length>2&&"04"===v.substr(p[1],2)))throw"unsupported PKCS#1/5 hexadecimal key";(C=new a).readPKCS5PrvKeyHex(v)}return C}if("pkcs8prv"===r)return l.getKeyFromPlainPrivatePKCS8Hex(t);if("pkcs8pub"===r)return l._getKeyFromPublicPKCS8Hex(t);if("x509pub"===r)return Wt.getPublicKeyFromCertHex(t);if(-1!=t.indexOf("-END CERTIFICATE-",0)||-1!=t.indexOf("-END X509 CERTIFICATE-",0)||-1!=t.indexOf("-END TRUSTED CERTIFICATE-",0))return Wt.getPublicKeyFromCertPEM(t);if(-1!=t.indexOf("-END PUBLIC KEY-")){var m=Ct(t,"PUBLIC KEY");return l._getKeyFromPublicPKCS8Hex(m)}if(-1!=t.indexOf("-END RSA PRIVATE KEY-")&&-1==t.indexOf("4,ENCRYPTED")){var _=h(t,"RSA PRIVATE KEY");return l.getKey(_,null,"pkcs5prv")}if(-1!=t.indexOf("-END DSA PRIVATE KEY-")&&-1==t.indexOf("4,ENCRYPTED")){var S=o(n=h(t,"DSA PRIVATE KEY"),0,[1],"02"),w=o(n,0,[2],"02"),b=o(n,0,[3],"02"),E=o(n,0,[4],"02"),x=o(n,0,[5],"02");return(C=new u).setPrivate(new F(S,16),new F(w,16),new F(b,16),new F(E,16),new F(x,16)),C}if(-1!=t.indexOf("-END EC PRIVATE KEY-")&&-1==t.indexOf("4,ENCRYPTED"))return _=h(t,"EC PRIVATE KEY"),l.getKey(_,null,"pkcs5prv");if(-1!=t.indexOf("-END PRIVATE KEY-"))return l.getKeyFromPlainPrivatePKCS8PEM(t);if(-1!=t.indexOf("-END RSA PRIVATE KEY-")&&-1!=t.indexOf("4,ENCRYPTED")){var A=l.getDecryptedKeyHex(t,e),k=new it;return k.readPKCS5PrvKeyHex(A),k}if(-1!=t.indexOf("-END EC PRIVATE KEY-")&&-1!=t.indexOf("4,ENCRYPTED")){var P,C=o(n=l.getDecryptedKeyHex(t,e),0,[1],"04"),T=o(n,0,[2,0],"06"),R=o(n,0,[3,0],"03").substr(2);if(void 0===ct.crypto.OID.oidhex2name[T])throw"undefined OID(hex) in KJUR.crypto.OID: "+T;return(P=new a({curve:ct.crypto.OID.oidhex2name[T]})).setPublicKeyHex(R),P.setPrivateKeyHex(C),P.isPublic=!1,P}if(-1!=t.indexOf("-END DSA PRIVATE KEY-")&&-1!=t.indexOf("4,ENCRYPTED"))return S=o(n=l.getDecryptedKeyHex(t,e),0,[1],"02"),w=o(n,0,[2],"02"),b=o(n,0,[3],"02"),E=o(n,0,[4],"02"),x=o(n,0,[5],"02"),(C=new u).setPrivate(new F(S,16),new F(w,16),new F(b,16),new F(E,16),new F(x,16)),C;if(-1!=t.indexOf("-END ENCRYPTED PRIVATE KEY-"))return l.getKeyFromEncryptedPKCS8PEM(t,e);throw new Error("not supported argument")},Ht.generateKeypair=function(t,e){if("RSA"==t){var r=e;(s=new it).generate(r,"10001"),s.isPrivate=!0,s.isPublic=!0;var n=new it,i=s.n.toString(16),o=s.e.toString(16);return n.setPublic(i,o),n.isPrivate=!1,n.isPublic=!0,(a={}).prvKeyObj=s,a.pubKeyObj=n,a}if("EC"==t){var s,a,u=e,c=new ct.crypto.ECDSA({curve:u}).generateKeyPairHex();return(s=new ct.crypto.ECDSA({curve:u})).setPublicKeyHex(c.ecpubhex),s.setPrivateKeyHex(c.ecprvhex),s.isPrivate=!0,s.isPublic=!1,(n=new ct.crypto.ECDSA({curve:u})).setPublicKeyHex(c.ecpubhex),n.isPrivate=!1,n.isPublic=!0,(a={}).prvKeyObj=s,a.pubKeyObj=n,a}throw"unknown algorithm: "+t},Ht.getPEM=function(t,e,r,n,i,o){var s=ct,a=s.asn1,u=a.DERObjectIdentifier,c=a.DERInteger,h=a.ASN1Util.newObject,l=a.x509.SubjectPublicKeyInfo,f=s.crypto,g=f.DSA,d=f.ECDSA,p=it;function v(t){return h({seq:[{int:0},{int:{bigint:t.n}},{int:t.e},{int:{bigint:t.d}},{int:{bigint:t.p}},{int:{bigint:t.q}},{int:{bigint:t.dmp1}},{int:{bigint:t.dmq1}},{int:{bigint:t.coeff}}]})}function m(t){return h({seq:[{int:1},{octstr:{hex:t.prvKeyHex}},{tag:["a0",!0,{oid:{name:t.curveName}}]},{tag:["a1",!0,{bitstr:{hex:"00"+t.pubKeyHex}}]}]})}function _(t){return h({seq:[{int:0},{int:{bigint:t.p}},{int:{bigint:t.q}},{int:{bigint:t.g}},{int:{bigint:t.y}},{int:{bigint:t.x}}]})}if((void 0!==p&&t instanceof p||void 0!==g&&t instanceof g||void 0!==d&&t instanceof d)&&1==t.isPublic&&(void 0===e||"PKCS8PUB"==e))return Pt(F=new l(t).getEncodedHex(),"PUBLIC KEY");if("PKCS1PRV"==e&&void 0!==p&&t instanceof p&&(void 0===r||null==r)&&1==t.isPrivate)return Pt(F=v(t).getEncodedHex(),"RSA PRIVATE KEY");if("PKCS1PRV"==e&&void 0!==d&&t instanceof d&&(void 0===r||null==r)&&1==t.isPrivate){var S=new u({name:t.curveName}).getEncodedHex(),w=m(t).getEncodedHex(),b="";return(b+=Pt(S,"EC PARAMETERS"))+Pt(w,"EC PRIVATE KEY")}if("PKCS1PRV"==e&&void 0!==g&&t instanceof g&&(void 0===r||null==r)&&1==t.isPrivate)return Pt(F=_(t).getEncodedHex(),"DSA PRIVATE KEY");if("PKCS5PRV"==e&&void 0!==p&&t instanceof p&&void 0!==r&&null!=r&&1==t.isPrivate){var F=v(t).getEncodedHex();return void 0===n&&(n="DES-EDE3-CBC"),this.getEncryptedPKCS5PEMFromPrvKeyHex("RSA",F,r,n,o)}if("PKCS5PRV"==e&&void 0!==d&&t instanceof d&&void 0!==r&&null!=r&&1==t.isPrivate)return F=m(t).getEncodedHex(),void 0===n&&(n="DES-EDE3-CBC"),this.getEncryptedPKCS5PEMFromPrvKeyHex("EC",F,r,n,o);if("PKCS5PRV"==e&&void 0!==g&&t instanceof g&&void 0!==r&&null!=r&&1==t.isPrivate)return F=_(t).getEncodedHex(),void 0===n&&(n="DES-EDE3-CBC"),this.getEncryptedPKCS5PEMFromPrvKeyHex("DSA",F,r,n,o);var E=function(t,e){var r=x(t,e);return new h({seq:[{seq:[{oid:{name:"pkcs5PBES2"}},{seq:[{seq:[{oid:{name:"pkcs5PBKDF2"}},{seq:[{octstr:{hex:r.pbkdf2Salt}},{int:r.pbkdf2Iter}]}]},{seq:[{oid:{name:"des-EDE3-CBC"}},{octstr:{hex:r.encryptionSchemeIV}}]}]}]},{octstr:{hex:r.ciphertext}}]}).getEncodedHex()},x=function(t,e){var r=y.lib.WordArray.random(8),n=y.lib.WordArray.random(8),i=y.PBKDF2(e,r,{keySize:6,iterations:100}),o=y.enc.Hex.parse(t),s=y.TripleDES.encrypt(o,i,{iv:n})+"",a={};return a.ciphertext=s,a.pbkdf2Salt=y.enc.Hex.stringify(r),a.pbkdf2Iter=100,a.encryptionSchemeAlg="DES-EDE3-CBC",a.encryptionSchemeIV=y.enc.Hex.stringify(n),a};if("PKCS8PRV"==e&&null!=p&&t instanceof p&&1==t.isPrivate){var A=v(t).getEncodedHex();return F=h({seq:[{int:0},{seq:[{oid:{name:"rsaEncryption"}},{null:!0}]},{octstr:{hex:A}}]}).getEncodedHex(),void 0===r||null==r?Pt(F,"PRIVATE KEY"):Pt(w=E(F,r),"ENCRYPTED PRIVATE KEY")}if("PKCS8PRV"==e&&void 0!==d&&t instanceof d&&1==t.isPrivate)return A=new h({seq:[{int:1},{octstr:{hex:t.prvKeyHex}},{tag:["a1",!0,{bitstr:{hex:"00"+t.pubKeyHex}}]}]}).getEncodedHex(),F=h({seq:[{int:0},{seq:[{oid:{name:"ecPublicKey"}},{oid:{name:t.curveName}}]},{octstr:{hex:A}}]}).getEncodedHex(),void 0===r||null==r?Pt(F,"PRIVATE KEY"):Pt(w=E(F,r),"ENCRYPTED PRIVATE KEY");if("PKCS8PRV"==e&&void 0!==g&&t instanceof g&&1==t.isPrivate)return A=new c({bigint:t.x}).getEncodedHex(),F=h({seq:[{int:0},{seq:[{oid:{name:"dsa"}},{seq:[{int:{bigint:t.p}},{int:{bigint:t.q}},{int:{bigint:t.g}}]}]},{octstr:{hex:A}}]}).getEncodedHex(),void 0===r||null==r?Pt(F,"PRIVATE KEY"):Pt(w=E(F,r),"ENCRYPTED PRIVATE KEY");throw new Error("unsupported object nor format")},Ht.getKeyFromCSRPEM=function(t){var e=Ct(t,"CERTIFICATE REQUEST");return Ht.getKeyFromCSRHex(e)},Ht.getKeyFromCSRHex=function(t){var e=Ht.parseCSRHex(t);return Ht.getKey(e.p8pubkeyhex,null,"pkcs8pub")},Ht.parseCSRHex=function(t){var e=ft,r=e.getChildIdx,n=e.getTLV,i={},o=t;if("30"!=o.substr(0,2))throw"malformed CSR(code:001)";var s=r(o,0);if(s.length<1)throw"malformed CSR(code:002)";if("30"!=o.substr(s[0],2))throw"malformed CSR(code:003)";var a=r(o,s[0]);if(a.length<3)throw"malformed CSR(code:004)";return i.p8pubkeyhex=n(o,a[2]),i},Ht.getKeyID=function(t){var e=Ht,r=ft;"string"==typeof t&&-1!=t.indexOf("BEGIN ")&&(t=e.getKey(t));var n=Ct(e.getPEM(t)),i=r.getIdxbyList(n,0,[1]),o=r.getV(n,i).substring(2);return ct.crypto.Util.hashHex(o,"sha1")},Ht.getJWKFromKey=function(t){var e={};if(t instanceof it&&t.isPrivate)return e.kty="RSA",e.n=_t(t.n.toString(16)),e.e=_t(t.e.toString(16)),e.d=_t(t.d.toString(16)),e.p=_t(t.p.toString(16)),e.q=_t(t.q.toString(16)),e.dp=_t(t.dmp1.toString(16)),e.dq=_t(t.dmq1.toString(16)),e.qi=_t(t.coeff.toString(16)),e;if(t instanceof it&&t.isPublic)return e.kty="RSA",e.n=_t(t.n.toString(16)),e.e=_t(t.e.toString(16)),e;if(t instanceof ct.crypto.ECDSA&&t.isPrivate){if("P-256"!==(n=t.getShortNISTPCurveName())&&"P-384"!==n)throw"unsupported curve name for JWT: "+n;var r=t.getPublicKeyXYHex();return e.kty="EC",e.crv=n,e.x=_t(r.x),e.y=_t(r.y),e.d=_t(t.prvKeyHex),e}if(t instanceof ct.crypto.ECDSA&&t.isPublic){var n;if("P-256"!==(n=t.getShortNISTPCurveName())&&"P-384"!==n)throw"unsupported curve name for JWT: "+n;return r=t.getPublicKeyXYHex(),e.kty="EC",e.crv=n,e.x=_t(r.x),e.y=_t(r.y),e}throw"not supported key object"},it.getPosArrayOfChildrenFromHex=function(t){return ft.getChildIdx(t,0)},it.getHexValueArrayOfChildrenFromHex=function(t){var e,r=ft.getV,n=r(t,(e=it.getPosArrayOfChildrenFromHex(t))[0]),i=r(t,e[1]),o=r(t,e[2]),s=r(t,e[3]),a=r(t,e[4]),u=r(t,e[5]),c=r(t,e[6]),h=r(t,e[7]),l=r(t,e[8]);return(e=new Array).push(n,i,o,s,a,u,c,h,l),e},it.prototype.readPrivateKeyFromPEMString=function(t){var e=Ct(t),r=it.getHexValueArrayOfChildrenFromHex(e);this.setPrivateEx(r[1],r[2],r[3],r[4],r[5],r[6],r[7],r[8])},it.prototype.readPKCS5PrvKeyHex=function(t){var e=it.getHexValueArrayOfChildrenFromHex(t);this.setPrivateEx(e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8])},it.prototype.readPKCS8PrvKeyHex=function(t){var e,r,n,i,o,s,a,u,c=ft,h=c.getVbyListEx;if(!1===c.isASN1HEX(t))throw new Error("not ASN.1 hex string");try{e=h(t,0,[2,0,1],"02"),r=h(t,0,[2,0,2],"02"),n=h(t,0,[2,0,3],"02"),i=h(t,0,[2,0,4],"02"),o=h(t,0,[2,0,5],"02"),s=h(t,0,[2,0,6],"02"),a=h(t,0,[2,0,7],"02"),u=h(t,0,[2,0,8],"02")}catch(t){throw new Error("malformed PKCS#8 plain RSA private key")}this.setPrivateEx(e,r,n,i,o,s,a,u)},it.prototype.readPKCS5PubKeyHex=function(t){var e=ft,r=e.getV;if(!1===e.isASN1HEX(t))throw new Error("keyHex is not ASN.1 hex string");var n=e.getChildIdx(t,0);if(2!==n.length||"02"!==t.substr(n[0],2)||"02"!==t.substr(n[1],2))throw new Error("wrong hex for PKCS#5 public key");var i=r(t,n[0]),o=r(t,n[1]);this.setPublic(i,o)},it.prototype.readPKCS8PubKeyHex=function(t){var e=ft;if(!1===e.isASN1HEX(t))throw new Error("not ASN.1 hex string");if("06092a864886f70d010101"!==e.getTLVbyListEx(t,0,[0,0]))throw new Error("not PKCS8 RSA public key");var r=e.getTLVbyListEx(t,0,[1,0]);this.readPKCS5PubKeyHex(r)},it.prototype.readCertPubKeyHex=function(t,e){var r,n;(r=new Wt).readCertHex(t),n=r.getPublicKeyHex(),this.readPKCS8PubKeyHex(n)};var Kt=new RegExp("[^0-9a-f]","gi");function Vt(t,e){for(var r="",n=e/4-t.length,i=0;i>24,(16711680&i)>>16,(65280&i)>>8,255&i])))),i+=1;return n}function Jt(t){for(var e in ct.crypto.Util.DIGESTINFOHEAD){var r=ct.crypto.Util.DIGESTINFOHEAD[e],n=r.length;if(t.substring(0,n)==r)return[e,t.substring(n)]}return[]}function Wt(t){var e,r=ft,n=r.getChildIdx,i=r.getV,o=r.getTLV,s=r.getVbyList,a=r.getVbyListEx,u=r.getTLVbyList,c=r.getTLVbyListEx,h=r.getIdxbyList,l=r.getIdxbyListEx,f=r.getVidx,g=r.oidname,d=r.hextooidstr,p=Wt,v=Ct;try{e=ct.asn1.x509.AlgorithmIdentifier.PSSNAME2ASN1TLV}catch(t){}this.HEX2STAG={"0c":"utf8",13:"prn",16:"ia5","1a":"vis","1e":"bmp"},this.hex=null,this.version=0,this.foffset=0,this.aExtInfo=null,this.getVersion=function(){return null===this.hex||0!==this.version?this.version:"a003020102"!==u(this.hex,0,[0,0])?(this.version=1,this.foffset=-1,1):(this.version=3,3)},this.getSerialNumberHex=function(){return a(this.hex,0,[0,0],"02")},this.getSignatureAlgorithmField=function(){var t=c(this.hex,0,[0,1]);return this.getAlgorithmIdentifierName(t)},this.getAlgorithmIdentifierName=function(t){for(var r in e)if(t===e[r])return r;return g(a(t,0,[0],"06"))},this.getIssuer=function(){return this.getX500Name(this.getIssuerHex())},this.getIssuerHex=function(){return u(this.hex,0,[0,3+this.foffset],"30")},this.getIssuerString=function(){return p.hex2dn(this.getIssuerHex())},this.getSubject=function(){return this.getX500Name(this.getSubjectHex())},this.getSubjectHex=function(){return u(this.hex,0,[0,5+this.foffset],"30")},this.getSubjectString=function(){return p.hex2dn(this.getSubjectHex())},this.getNotBefore=function(){var t=s(this.hex,0,[0,4+this.foffset,0]);return t=t.replace(/(..)/g,"%$1"),decodeURIComponent(t)},this.getNotAfter=function(){var t=s(this.hex,0,[0,4+this.foffset,1]);return t=t.replace(/(..)/g,"%$1"),decodeURIComponent(t)},this.getPublicKeyHex=function(){return r.getTLVbyList(this.hex,0,[0,6+this.foffset],"30")},this.getPublicKeyIdx=function(){return h(this.hex,0,[0,6+this.foffset],"30")},this.getPublicKeyContentIdx=function(){var t=this.getPublicKeyIdx();return h(this.hex,t,[1,0],"30")},this.getPublicKey=function(){return Ht.getKey(this.getPublicKeyHex(),null,"pkcs8pub")},this.getSignatureAlgorithmName=function(){var t=u(this.hex,0,[1],"30");return this.getAlgorithmIdentifierName(t)},this.getSignatureValueHex=function(){return s(this.hex,0,[2],"03",!0)},this.verifySignature=function(t){var e=this.getSignatureAlgorithmField(),r=this.getSignatureValueHex(),n=u(this.hex,0,[0],"30"),i=new ct.crypto.Signature({alg:e});return i.init(t),i.updateHex(n),i.verify(r)},this.parseExt=function(t){var e,o,a;if(void 0===t){if(a=this.hex,3!==this.version)return-1;e=h(a,0,[0,7,0],"30"),o=n(a,e)}else{a=Ct(t);var u=h(a,0,[0,3,0,0],"06");if("2a864886f70d01090e"!=i(a,u))return void(this.aExtInfo=new Array);e=h(a,0,[0,3,0,1,0],"30"),o=n(a,e),this.hex=a}this.aExtInfo=new Array;for(var c=0;c1){var a=o(t,s[1]),u=this.getGeneralName(a);null!=u.uri&&(i.uri=u.uri)}if(s.length>2){var c=o(t,s[2]);"0101ff"==c&&(i.reqauth=!0),"010100"==c&&(i.reqauth=!1)}return i},this.getX500NameRule=function(t){for(var e=null,r=[],n=0;n0&&(t.ext=this.getExtParamArray()),t.sighex=this.getSignatureValueHex(),t},this.getExtParamArray=function(t){null==t&&-1!=l(this.hex,0,[0,"[3]"])&&(t=c(this.hex,0,[0,"[3]",0],"30"));for(var e=[],r=n(t,0),i=0;i0&&(c=new Array(r),(new et).nextBytes(c),c=String.fromCharCode.apply(String,c));var h=Ft(u(Et("\0\0\0\0\0\0\0\0"+i+c))),l=[];for(n=0;n>8*a-s&255;for(d[0]&=~p,n=0;nthis.n.bitLength())return 0;var n=Jt(this.doPublic(r).toString(16).replace(/^1f+00/,""));if(0==n.length)return!1;var i=n[0];return n[1]==function(t){return ct.crypto.Util.hashString(t,i)}(t)},it.prototype.verifyWithMessageHash=function(t,e){if(e.length!=Math.ceil(this.n.bitLength()/4))return!1;var r=rt(e,16);if(r.bitLength()>this.n.bitLength())return 0;var n=Jt(this.doPublic(r).toString(16).replace(/^1f+00/,""));return 0!=n.length&&(n[0],n[1]==t)},it.prototype.verifyPSS=function(t,e,r,n){var i=function(t){return ct.crypto.Util.hashHex(t,r)}(Et(t));return void 0===n&&(n=-1),this.verifyWithMessageHashPSS(i,e,r,n)},it.prototype.verifyWithMessageHashPSS=function(t,e,r,n){if(e.length!=Math.ceil(this.n.bitLength()/4))return!1;var i,o=new F(e,16),s=function(t){return ct.crypto.Util.hashHex(t,r)},a=Ft(t),u=a.length,c=this.n.bitLength()-1,h=Math.ceil(c/8);if(-1===n||void 0===n)n=u;else if(-2===n)n=h-u-2;else if(n<-2)throw new Error("invalid salt length");if(h>8*h-c&255;if(0!=(f.charCodeAt(0)&d))throw new Error("bits beyond keysize not zero");var p=qt(g,f.length,s),v=[];for(i=0;i0&&-1==(":"+n.join(":")+":").indexOf(":"+y+":"))throw"algorithm '"+y+"' not accepted in the list";if("none"!=y&&null===e)throw"key shall be specified to verify.";if("string"==typeof e&&-1!=e.indexOf("-----BEGIN ")&&(e=Ht.getKey(e)),!("RS"!=g&&"PS"!=g||e instanceof i))throw"key shall be a RSAKey obj for RS* and PS* algs";if("ES"==g&&!(e instanceof c))throw"key shall be a ECDSA obj for ES* algs";var m=null;if(void 0===s.jwsalg2sigalg[v.alg])throw"unsupported alg name: "+y;if("none"==(m=s.jwsalg2sigalg[y]))throw"not supported";if("Hmac"==m.substr(0,4)){if(void 0===e)throw"hexadecimal key shall be specified for HMAC";var _=new h({alg:m,pass:e});return _.updateString(d),p==_.doFinal()}if(-1!=m.indexOf("withECDSA")){var S,w=null;try{w=c.concatSigToASN1Sig(p)}catch(t){return!1}return(S=new l({alg:m})).init(e),S.updateString(d),S.verify(w)}return(S=new l({alg:m})).init(e),S.updateString(d),S.verify(p)},ct.jws.JWS.parse=function(t){var e,r,n,i=t.split("."),o={};if(2!=i.length&&3!=i.length)throw"malformed sJWS: wrong number of '.' splitted elements";return e=i[0],r=i[1],3==i.length&&(n=i[2]),o.headerObj=ct.jws.JWS.readSafeJSONString(lt(e)),o.payloadObj=ct.jws.JWS.readSafeJSONString(lt(r)),o.headerPP=JSON.stringify(o.headerObj,null," "),null==o.payloadObj?o.payloadPP=lt(r):o.payloadPP=JSON.stringify(o.payloadObj,null," "),void 0!==n&&(o.sigHex=St(n)),o},ct.jws.JWS.verifyJWT=function(t,e,n){var i=ct.jws,o=i.JWS,s=o.readSafeJSONString,a=o.inArray,u=o.includedArray,c=t.split("."),h=c[0],l=c[1],f=(St(c[2]),s(lt(h))),g=s(lt(l));if(void 0===f.alg)return!1;if(void 0===n.alg)throw"acceptField.alg shall be specified";if(!a(f.alg,n.alg))return!1;if(void 0!==g.iss&&"object"===r(n.iss)&&!a(g.iss,n.iss))return!1;if(void 0!==g.sub&&"object"===r(n.sub)&&!a(g.sub,n.sub))return!1;if(void 0!==g.aud&&"object"===r(n.aud))if("string"==typeof g.aud){if(!a(g.aud,n.aud))return!1}else if("object"==r(g.aud)&&!u(g.aud,n.aud))return!1;var d=i.IntDate.getNow();return void 0!==n.verifyAt&&"number"==typeof n.verifyAt&&(d=n.verifyAt),void 0!==n.gracePeriod&&"number"==typeof n.gracePeriod||(n.gracePeriod=0),!(void 0!==g.exp&&"number"==typeof g.exp&&g.exp+n.gracePeriode.length&&(r=e.length);for(var n=0;n=s())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+s().toString(16)+" bytes");return 0|t}function d(t,e){if(u.isBuffer(t))return t.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(t)||t instanceof ArrayBuffer))return t.byteLength;"string"!=typeof t&&(t=""+t);var r=t.length;if(0===r)return 0;for(var n=!1;;)switch(e){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return H(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return K(t).length;default:if(n)return H(t).length;e=(""+e).toLowerCase(),n=!0}}function p(t,e,r){var n=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(e>>>=0))return"";for(t||(t="utf8");;)switch(t){case"hex":return T(this,e,r);case"utf8":case"utf-8":return A(this,e,r);case"ascii":return P(this,e,r);case"latin1":case"binary":return C(this,e,r);case"base64":return x(this,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return R(this,e,r);default:if(n)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),n=!0}}function v(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function y(t,e,r,n,i){if(0===t.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=i?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(i)return-1;r=t.length-1}else if(r<0){if(!i)return-1;r=0}if("string"==typeof e&&(e=u.from(e,n)),u.isBuffer(e))return 0===e.length?-1:m(t,e,r,n,i);if("number"==typeof e)return e&=255,u.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(t,e,r):Uint8Array.prototype.lastIndexOf.call(t,e,r):m(t,[e],r,n,i);throw new TypeError("val must be string, number or Buffer")}function m(t,e,r,n,i){var o,s=1,a=t.length,u=e.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(t.length<2||e.length<2)return-1;s=2,a/=2,u/=2,r/=2}function c(t,e){return 1===s?t[e]:t.readUInt16BE(e*s)}if(i){var h=-1;for(o=r;oa&&(r=a-u),o=r;o>=0;o--){for(var l=!0,f=0;fi&&(n=i):n=i;var o=e.length;if(o%2!=0)throw new TypeError("Invalid hex string");n>o/2&&(n=o/2);for(var s=0;s>8,i=r%256,o.push(i),o.push(n);return o}(e,t.length-r),t,r,n)}function x(t,e,r){return 0===e&&r===t.length?n.fromByteArray(t):n.fromByteArray(t.slice(e,r))}function A(t,e,r){r=Math.min(t.length,r);for(var n=[],i=e;i239?4:c>223?3:c>191?2:1;if(i+l<=r)switch(l){case 1:c<128&&(h=c);break;case 2:128==(192&(o=t[i+1]))&&(u=(31&c)<<6|63&o)>127&&(h=u);break;case 3:o=t[i+1],s=t[i+2],128==(192&o)&&128==(192&s)&&(u=(15&c)<<12|(63&o)<<6|63&s)>2047&&(u<55296||u>57343)&&(h=u);break;case 4:o=t[i+1],s=t[i+2],a=t[i+3],128==(192&o)&&128==(192&s)&&128==(192&a)&&(u=(15&c)<<18|(63&o)<<12|(63&s)<<6|63&a)>65535&&u<1114112&&(h=u)}null===h?(h=65533,l=1):h>65535&&(h-=65536,n.push(h>>>10&1023|55296),h=56320|1023&h),n.push(h),i+=l}return function(t){var e=t.length;if(e<=k)return String.fromCharCode.apply(String,t);for(var r="",n=0;n0&&(t=this.toString("hex",0,r).match(/.{2}/g).join(" "),this.length>r&&(t+=" ... ")),""},u.prototype.compare=function(t,e,r,n,i){if(!u.isBuffer(t))throw new TypeError("Argument must be a Buffer");if(void 0===e&&(e=0),void 0===r&&(r=t?t.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),e<0||r>t.length||n<0||i>this.length)throw new RangeError("out of range index");if(n>=i&&e>=r)return 0;if(n>=i)return-1;if(e>=r)return 1;if(this===t)return 0;for(var o=(i>>>=0)-(n>>>=0),s=(r>>>=0)-(e>>>=0),a=Math.min(o,s),c=this.slice(n,i),h=t.slice(e,r),l=0;li)&&(r=i),t.length>0&&(r<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var o=!1;;)switch(n){case"hex":return _(this,t,e,r);case"utf8":case"utf-8":return S(this,t,e,r);case"ascii":return w(this,t,e,r);case"latin1":case"binary":return b(this,t,e,r);case"base64":return F(this,t,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return E(this,t,e,r);default:if(o)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),o=!0}},u.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var k=4096;function P(t,e,r){var n="";r=Math.min(t.length,r);for(var i=e;in)&&(r=n);for(var i="",o=e;or)throw new RangeError("Trying to access beyond buffer length")}function D(t,e,r,n,i,o){if(!u.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>i||et.length)throw new RangeError("Index out of range")}function L(t,e,r,n){e<0&&(e=65535+e+1);for(var i=0,o=Math.min(t.length-r,2);i>>8*(n?i:1-i)}function N(t,e,r,n){e<0&&(e=4294967295+e+1);for(var i=0,o=Math.min(t.length-r,4);i>>8*(n?i:3-i)&255}function U(t,e,r,n,i,o){if(r+n>t.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function O(t,e,r,n,o){return o||U(t,0,r,4),i.write(t,e,r,n,23,4),r+4}function B(t,e,r,n,o){return o||U(t,0,r,8),i.write(t,e,r,n,52,8),r+8}u.prototype.slice=function(t,e){var r,n=this.length;if((t=~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),(e=void 0===e?n:~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),e0&&(i*=256);)n+=this[t+--e]*i;return n},u.prototype.readUInt8=function(t,e){return e||I(t,1,this.length),this[t]},u.prototype.readUInt16LE=function(t,e){return e||I(t,2,this.length),this[t]|this[t+1]<<8},u.prototype.readUInt16BE=function(t,e){return e||I(t,2,this.length),this[t]<<8|this[t+1]},u.prototype.readUInt32LE=function(t,e){return e||I(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},u.prototype.readUInt32BE=function(t,e){return e||I(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},u.prototype.readIntLE=function(t,e,r){t|=0,e|=0,r||I(t,e,this.length);for(var n=this[t],i=1,o=0;++o=(i*=128)&&(n-=Math.pow(2,8*e)),n},u.prototype.readIntBE=function(t,e,r){t|=0,e|=0,r||I(t,e,this.length);for(var n=e,i=1,o=this[t+--n];n>0&&(i*=256);)o+=this[t+--n]*i;return o>=(i*=128)&&(o-=Math.pow(2,8*e)),o},u.prototype.readInt8=function(t,e){return e||I(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},u.prototype.readInt16LE=function(t,e){e||I(t,2,this.length);var r=this[t]|this[t+1]<<8;return 32768&r?4294901760|r:r},u.prototype.readInt16BE=function(t,e){e||I(t,2,this.length);var r=this[t+1]|this[t]<<8;return 32768&r?4294901760|r:r},u.prototype.readInt32LE=function(t,e){return e||I(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},u.prototype.readInt32BE=function(t,e){return e||I(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},u.prototype.readFloatLE=function(t,e){return e||I(t,4,this.length),i.read(this,t,!0,23,4)},u.prototype.readFloatBE=function(t,e){return e||I(t,4,this.length),i.read(this,t,!1,23,4)},u.prototype.readDoubleLE=function(t,e){return e||I(t,8,this.length),i.read(this,t,!0,52,8)},u.prototype.readDoubleBE=function(t,e){return e||I(t,8,this.length),i.read(this,t,!1,52,8)},u.prototype.writeUIntLE=function(t,e,r,n){t=+t,e|=0,r|=0,n||D(this,t,e,r,Math.pow(2,8*r)-1,0);var i=1,o=0;for(this[e]=255&t;++o=0&&(o*=256);)this[e+i]=t/o&255;return e+r},u.prototype.writeUInt8=function(t,e,r){return t=+t,e|=0,r||D(this,t,e,1,255,0),u.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),this[e]=255&t,e+1},u.prototype.writeUInt16LE=function(t,e,r){return t=+t,e|=0,r||D(this,t,e,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):L(this,t,e,!0),e+2},u.prototype.writeUInt16BE=function(t,e,r){return t=+t,e|=0,r||D(this,t,e,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):L(this,t,e,!1),e+2},u.prototype.writeUInt32LE=function(t,e,r){return t=+t,e|=0,r||D(this,t,e,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t):N(this,t,e,!0),e+4},u.prototype.writeUInt32BE=function(t,e,r){return t=+t,e|=0,r||D(this,t,e,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):N(this,t,e,!1),e+4},u.prototype.writeIntLE=function(t,e,r,n){if(t=+t,e|=0,!n){var i=Math.pow(2,8*r-1);D(this,t,e,r,i-1,-i)}var o=0,s=1,a=0;for(this[e]=255&t;++o>0)-a&255;return e+r},u.prototype.writeIntBE=function(t,e,r,n){if(t=+t,e|=0,!n){var i=Math.pow(2,8*r-1);D(this,t,e,r,i-1,-i)}var o=r-1,s=1,a=0;for(this[e+o]=255&t;--o>=0&&(s*=256);)t<0&&0===a&&0!==this[e+o+1]&&(a=1),this[e+o]=(t/s>>0)-a&255;return e+r},u.prototype.writeInt8=function(t,e,r){return t=+t,e|=0,r||D(this,t,e,1,127,-128),u.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),t<0&&(t=255+t+1),this[e]=255&t,e+1},u.prototype.writeInt16LE=function(t,e,r){return t=+t,e|=0,r||D(this,t,e,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):L(this,t,e,!0),e+2},u.prototype.writeInt16BE=function(t,e,r){return t=+t,e|=0,r||D(this,t,e,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):L(this,t,e,!1),e+2},u.prototype.writeInt32LE=function(t,e,r){return t=+t,e|=0,r||D(this,t,e,4,2147483647,-2147483648),u.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24):N(this,t,e,!0),e+4},u.prototype.writeInt32BE=function(t,e,r){return t=+t,e|=0,r||D(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),u.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):N(this,t,e,!1),e+4},u.prototype.writeFloatLE=function(t,e,r){return O(this,t,e,!0,r)},u.prototype.writeFloatBE=function(t,e,r){return O(this,t,e,!1,r)},u.prototype.writeDoubleLE=function(t,e,r){return B(this,t,e,!0,r)},u.prototype.writeDoubleBE=function(t,e,r){return B(this,t,e,!1,r)},u.prototype.copy=function(t,e,r,n){if(r||(r=0),n||0===n||(n=this.length),e>=t.length&&(e=t.length),e||(e=0),n>0&&n=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),t.length-e=0;--i)t[i+e]=this[i+r];else if(o<1e3||!u.TYPED_ARRAY_SUPPORT)for(i=0;i>>=0,r=void 0===r?this.length:r>>>0,t||(t=0),"number"==typeof t)for(o=e;o55295&&r<57344){if(!i){if(r>56319){(e-=3)>-1&&o.push(239,191,189);continue}if(s+1===n){(e-=3)>-1&&o.push(239,191,189);continue}i=r;continue}if(r<56320){(e-=3)>-1&&o.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(e-=3)>-1&&o.push(239,191,189);if(i=null,r<128){if((e-=1)<0)break;o.push(r)}else if(r<2048){if((e-=2)<0)break;o.push(r>>6|192,63&r|128)}else if(r<65536){if((e-=3)<0)break;o.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return o}function K(t){return n.toByteArray(function(t){if((t=function(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")}(t).replace(M,"")).length<2)return"";for(;t.length%4!=0;)t+="=";return t}(t))}function V(t,e,r,n){for(var i=0;i=e.length||i>=t.length);++i)e[i+r]=t[i];return i}}).call(this,r(29))},function(t,e){var r;r=function(){return this}();try{r=r||new Function("return this")()}catch(t){"object"==typeof window&&(r=window)}t.exports=r},function(t,e,r){"use strict";e.byteLength=function(t){var e=c(t),r=e[0],n=e[1];return 3*(r+n)/4-n},e.toByteArray=function(t){var e,r,n=c(t),s=n[0],a=n[1],u=new o(function(t,e,r){return 3*(e+r)/4-r}(0,s,a)),h=0,l=a>0?s-4:s;for(r=0;r>16&255,u[h++]=e>>8&255,u[h++]=255&e;return 2===a&&(e=i[t.charCodeAt(r)]<<2|i[t.charCodeAt(r+1)]>>4,u[h++]=255&e),1===a&&(e=i[t.charCodeAt(r)]<<10|i[t.charCodeAt(r+1)]<<4|i[t.charCodeAt(r+2)]>>2,u[h++]=e>>8&255,u[h++]=255&e),u},e.fromByteArray=function(t){for(var e,r=t.length,i=r%3,o=[],s=16383,a=0,u=r-i;au?u:a+s));return 1===i?(e=t[r-1],o.push(n[e>>2]+n[e<<4&63]+"==")):2===i&&(e=(t[r-2]<<8)+t[r-1],o.push(n[e>>10]+n[e>>4&63]+n[e<<2&63]+"=")),o.join("")};for(var n=[],i=[],o="undefined"!=typeof Uint8Array?Uint8Array:Array,s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",a=0,u=s.length;a0)throw new Error("Invalid string. Length must be a multiple of 4");var r=t.indexOf("=");return-1===r&&(r=e),[r,r===e?0:4-r%4]}function h(t,e,r){for(var i,o,s=[],a=e;a>18&63]+n[o>>12&63]+n[o>>6&63]+n[63&o]);return s.join("")}i["-".charCodeAt(0)]=62,i["_".charCodeAt(0)]=63},function(t,e){e.read=function(t,e,r,n,i){var o,s,a=8*i-n-1,u=(1<>1,h=-7,l=r?i-1:0,f=r?-1:1,g=t[e+l];for(l+=f,o=g&(1<<-h)-1,g>>=-h,h+=a;h>0;o=256*o+t[e+l],l+=f,h-=8);for(s=o&(1<<-h)-1,o>>=-h,h+=n;h>0;s=256*s+t[e+l],l+=f,h-=8);if(0===o)o=1-c;else{if(o===u)return s?NaN:1/0*(g?-1:1);s+=Math.pow(2,n),o-=c}return(g?-1:1)*s*Math.pow(2,o-n)},e.write=function(t,e,r,n,i,o){var s,a,u,c=8*o-i-1,h=(1<>1,f=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,g=n?0:o-1,d=n?1:-1,p=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,s=h):(s=Math.floor(Math.log(e)/Math.LN2),e*(u=Math.pow(2,-s))<1&&(s--,u*=2),(e+=s+l>=1?f/u:f*Math.pow(2,1-l))*u>=2&&(s++,u/=2),s+l>=h?(a=0,s=h):s+l>=1?(a=(e*u-1)*Math.pow(2,i),s+=l):(a=e*Math.pow(2,l-1)*Math.pow(2,i),s=0));i>=8;t[r+g]=255&a,g+=d,a/=256,i-=8);for(s=s<0;t[r+g]=255&s,g+=d,s/=256,c-=8);t[r+g-d]|=128*p}},function(t,e){var r={}.toString;t.exports=Array.isArray||function(t){return"[object Array]"==r.call(t)}},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){var e=t.jws,r=t.KeyUtil,i=t.X509,o=t.crypto,s=t.hextob64u,a=t.b64tohex,u=t.AllowedSigningAlgs;return function(){function t(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t)}return t.parseJwt=function t(r){n.Log.debug("JoseUtil.parseJwt");try{var i=e.JWS.parse(r);return{header:i.headerObj,payload:i.payloadObj}}catch(t){n.Log.error(t)}},t.validateJwt=function(e,o,s,u,c,h,l){n.Log.debug("JoseUtil.validateJwt");try{if("RSA"===o.kty)if(o.e&&o.n)o=r.getKey(o);else{if(!o.x5c||!o.x5c.length)return n.Log.error("JoseUtil.validateJwt: RSA key missing key material",o),Promise.reject(new Error("RSA key missing key material"));var f=a(o.x5c[0]);o=i.getPublicKeyFromCertHex(f)}else{if("EC"!==o.kty)return n.Log.error("JoseUtil.validateJwt: Unsupported key type",o&&o.kty),Promise.reject(new Error(o.kty));if(!(o.crv&&o.x&&o.y))return n.Log.error("JoseUtil.validateJwt: EC key missing key material",o),Promise.reject(new Error("EC key missing key material"));o=r.getKey(o)}return t._validateJwt(e,o,s,u,c,h,l)}catch(t){return n.Log.error(t&&t.message||t),Promise.reject("JWT validation failed")}},t.validateJwtAttributes=function(e,r,i,o,s,a){o||(o=0),s||(s=parseInt(Date.now()/1e3));var u=t.parseJwt(e).payload;if(!u.iss)return n.Log.error("JoseUtil._validateJwt: issuer was not provided"),Promise.reject(new Error("issuer was not provided"));if(u.iss!==r)return n.Log.error("JoseUtil._validateJwt: Invalid issuer in token",u.iss),Promise.reject(new Error("Invalid issuer in token: "+u.iss));if(!u.aud)return n.Log.error("JoseUtil._validateJwt: aud was not provided"),Promise.reject(new Error("aud was not provided"));if(!(u.aud===i||Array.isArray(u.aud)&&u.aud.indexOf(i)>=0))return n.Log.error("JoseUtil._validateJwt: Invalid audience in token",u.aud),Promise.reject(new Error("Invalid audience in token: "+u.aud));if(u.azp&&u.azp!==i)return n.Log.error("JoseUtil._validateJwt: Invalid azp in token",u.azp),Promise.reject(new Error("Invalid azp in token: "+u.azp));if(!a){var c=s+o,h=s-o;if(!u.iat)return n.Log.error("JoseUtil._validateJwt: iat was not provided"),Promise.reject(new Error("iat was not provided"));if(c1&&void 0!==arguments[1]?arguments[1]:"#";!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t);var n=i.UrlUtility.parseUrlFragment(e,r);this.error=n.error,this.error_description=n.error_description,this.error_uri=n.error_uri,this.code=n.code,this.state=n.state,this.id_token=n.id_token,this.session_state=n.session_state,this.access_token=n.access_token,this.token_type=n.token_type,this.scope=n.scope,this.profile=void 0,this.expires_in=n.expires_in}return n(t,[{key:"expires_in",get:function(){if(this.expires_at){var t=parseInt(Date.now()/1e3);return this.expires_at-t}},set:function(t){var e=parseInt(t);if("number"==typeof e&&e>0){var r=parseInt(Date.now()/1e3);this.expires_at=r+e}}},{key:"expired",get:function(){var t=this.expires_in;if(void 0!==t)return t<=0}},{key:"scopes",get:function(){return(this.scope||"").split(" ")}},{key:"isOpenIdConnect",get:function(){return this.scopes.indexOf("openid")>=0||!!this.id_token}}]),t}()},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SignoutRequest=void 0;var n=r(0),i=r(3),o=r(9);e.SignoutRequest=function t(e){var r=e.url,s=e.id_token_hint,a=e.post_logout_redirect_uri,u=e.data,c=e.extraQueryParams,h=e.request_type;if(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),!r)throw n.Log.error("SignoutRequest.ctor: No url passed"),new Error("url");for(var l in s&&(r=i.UrlUtility.addQueryParam(r,"id_token_hint",s)),a&&(r=i.UrlUtility.addQueryParam(r,"post_logout_redirect_uri",a),u&&(this.state=new o.State({data:u,request_type:h}),r=i.UrlUtility.addQueryParam(r,"state",this.state.id))),c)r=i.UrlUtility.addQueryParam(r,l,c[l]);this.url=r}},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SignoutResponse=void 0;var n=r(3);e.SignoutResponse=function t(e){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t);var r=n.UrlUtility.parseUrlFragment(e,"?");this.error=r.error,this.error_description=r.error_description,this.error_uri=r.error_uri,this.state=r.state}},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.InMemoryWebStorage=void 0;var n=function(){function t(t,e){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:c.SilentRenewService,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:h.SessionMonitor,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:f.TokenRevocationClient,l=arguments.length>4&&void 0!==arguments[4]?arguments[4]:g.TokenClient,p=arguments.length>5&&void 0!==arguments[5]?arguments[5]:d.JoseUtil;(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")})(this,e),r instanceof s.UserManagerSettings||(r=new s.UserManagerSettings(r));var v=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}(this,t.call(this,r));return v._events=new u.UserManagerEvents(r),v._silentRenewService=new n(v),v.settings.automaticSilentRenew&&(i.Log.debug("UserManager.ctor: automaticSilentRenew is configured, setting up silent renew"),v.startSilentRenew()),v.settings.monitorSession&&(i.Log.debug("UserManager.ctor: monitorSession is configured, setting up session monitor"),v._sessionMonitor=new o(v)),v._tokenRevocationClient=new a(v._settings),v._tokenClient=new l(v._settings),v._joseUtil=p,v}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,t),e.prototype.getUser=function(){var t=this;return this._loadUser().then((function(e){return e?(i.Log.info("UserManager.getUser: user loaded"),t._events.load(e,!1),e):(i.Log.info("UserManager.getUser: user not found in storage"),null)}))},e.prototype.removeUser=function(){var t=this;return this.storeUser(null).then((function(){i.Log.info("UserManager.removeUser: user removed from storage"),t._events.unload()}))},e.prototype.signinRedirect=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(t=Object.assign({},t)).request_type="si:r";var e={useReplaceToNavigate:t.useReplaceToNavigate};return this._signinStart(t,this._redirectNavigator,e).then((function(){i.Log.info("UserManager.signinRedirect: successful")}))},e.prototype.signinRedirectCallback=function(t){return this._signinEnd(t||this._redirectNavigator.url).then((function(t){return t.profile&&t.profile.sub?i.Log.info("UserManager.signinRedirectCallback: successful, signed in sub: ",t.profile.sub):i.Log.info("UserManager.signinRedirectCallback: no sub"),t}))},e.prototype.signinPopup=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(t=Object.assign({},t)).request_type="si:p";var e=t.redirect_uri||this.settings.popup_redirect_uri||this.settings.redirect_uri;return e?(t.redirect_uri=e,t.display="popup",this._signin(t,this._popupNavigator,{startUrl:e,popupWindowFeatures:t.popupWindowFeatures||this.settings.popupWindowFeatures,popupWindowTarget:t.popupWindowTarget||this.settings.popupWindowTarget}).then((function(t){return t&&(t.profile&&t.profile.sub?i.Log.info("UserManager.signinPopup: signinPopup successful, signed in sub: ",t.profile.sub):i.Log.info("UserManager.signinPopup: no sub")),t}))):(i.Log.error("UserManager.signinPopup: No popup_redirect_uri or redirect_uri configured"),Promise.reject(new Error("No popup_redirect_uri or redirect_uri configured")))},e.prototype.signinPopupCallback=function(t){return this._signinCallback(t,this._popupNavigator).then((function(t){return t&&(t.profile&&t.profile.sub?i.Log.info("UserManager.signinPopupCallback: successful, signed in sub: ",t.profile.sub):i.Log.info("UserManager.signinPopupCallback: no sub")),t})).catch((function(t){i.Log.error(t.message)}))},e.prototype.signinSilent=function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return e=Object.assign({},e),this._loadUser().then((function(r){return r&&r.refresh_token?(e.refresh_token=r.refresh_token,t._useRefreshToken(e)):(e.request_type="si:s",e.id_token_hint=e.id_token_hint||t.settings.includeIdTokenInSilentRenew&&r&&r.id_token,r&&t._settings.validateSubOnSilentRenew&&(i.Log.debug("UserManager.signinSilent, subject prior to silent renew: ",r.profile.sub),e.current_sub=r.profile.sub),t._signinSilentIframe(e))}))},e.prototype._useRefreshToken=function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this._tokenClient.exchangeRefreshToken(e).then((function(e){return e?e.access_token?t._loadUser().then((function(r){if(r){var n=Promise.resolve();return e.id_token&&(n=t._validateIdTokenFromTokenRefreshToken(r.profile,e.id_token)),n.then((function(){return i.Log.debug("UserManager._useRefreshToken: refresh token response success"),r.id_token=e.id_token||r.id_token,r.access_token=e.access_token,r.refresh_token=e.refresh_token||r.refresh_token,r.expires_in=e.expires_in,t.storeUser(r).then((function(){return t._events.load(r),r}))}))}return null})):(i.Log.error("UserManager._useRefreshToken: No access token returned from token endpoint"),Promise.reject("No access token returned from token endpoint")):(i.Log.error("UserManager._useRefreshToken: No response returned from token endpoint"),Promise.reject("No response returned from token endpoint"))}))},e.prototype._validateIdTokenFromTokenRefreshToken=function(t,e){var r=this;return this._metadataService.getIssuer().then((function(n){return r.settings.getEpochTime().then((function(o){return r._joseUtil.validateJwtAttributes(e,n,r._settings.client_id,r._settings.clockSkew,o).then((function(e){return e?e.sub!==t.sub?(i.Log.error("UserManager._validateIdTokenFromTokenRefreshToken: sub in id_token does not match current sub"),Promise.reject(new Error("sub in id_token does not match current sub"))):e.auth_time&&e.auth_time!==t.auth_time?(i.Log.error("UserManager._validateIdTokenFromTokenRefreshToken: auth_time in id_token does not match original auth_time"),Promise.reject(new Error("auth_time in id_token does not match original auth_time"))):e.azp&&e.azp!==t.azp?(i.Log.error("UserManager._validateIdTokenFromTokenRefreshToken: azp in id_token does not match original azp"),Promise.reject(new Error("azp in id_token does not match original azp"))):!e.azp&&t.azp?(i.Log.error("UserManager._validateIdTokenFromTokenRefreshToken: azp not in id_token, but present in original id_token"),Promise.reject(new Error("azp not in id_token, but present in original id_token"))):void 0:(i.Log.error("UserManager._validateIdTokenFromTokenRefreshToken: Failed to validate id_token"),Promise.reject(new Error("Failed to validate id_token")))}))}))}))},e.prototype._signinSilentIframe=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.redirect_uri||this.settings.silent_redirect_uri||this.settings.redirect_uri;return e?(t.redirect_uri=e,t.prompt=t.prompt||"none",this._signin(t,this._iframeNavigator,{startUrl:e,silentRequestTimeout:t.silentRequestTimeout||this.settings.silentRequestTimeout}).then((function(t){return t&&(t.profile&&t.profile.sub?i.Log.info("UserManager.signinSilent: successful, signed in sub: ",t.profile.sub):i.Log.info("UserManager.signinSilent: no sub")),t}))):(i.Log.error("UserManager.signinSilent: No silent_redirect_uri configured"),Promise.reject(new Error("No silent_redirect_uri configured")))},e.prototype.signinSilentCallback=function(t){return this._signinCallback(t,this._iframeNavigator).then((function(t){return t&&(t.profile&&t.profile.sub?i.Log.info("UserManager.signinSilentCallback: successful, signed in sub: ",t.profile.sub):i.Log.info("UserManager.signinSilentCallback: no sub")),t}))},e.prototype.signinCallback=function(t){var e=this;return this.readSigninResponseState(t).then((function(r){var n=r.state;return r.response,"si:r"===n.request_type?e.signinRedirectCallback(t):"si:p"===n.request_type?e.signinPopupCallback(t):"si:s"===n.request_type?e.signinSilentCallback(t):Promise.reject(new Error("invalid response_type in state"))}))},e.prototype.signoutCallback=function(t,e){var r=this;return this.readSignoutResponseState(t).then((function(n){var i=n.state,o=n.response;return i?"so:r"===i.request_type?r.signoutRedirectCallback(t):"so:p"===i.request_type?r.signoutPopupCallback(t,e):Promise.reject(new Error("invalid response_type in state")):o}))},e.prototype.querySessionStatus=function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(e=Object.assign({},e)).request_type="si:s";var r=e.redirect_uri||this.settings.silent_redirect_uri||this.settings.redirect_uri;return r?(e.redirect_uri=r,e.prompt="none",e.response_type=e.response_type||this.settings.query_status_response_type,e.scope=e.scope||"openid",e.skipUserInfo=!0,this._signinStart(e,this._iframeNavigator,{startUrl:r,silentRequestTimeout:e.silentRequestTimeout||this.settings.silentRequestTimeout}).then((function(e){return t.processSigninResponse(e.url).then((function(t){if(i.Log.debug("UserManager.querySessionStatus: got signin response"),t.session_state&&t.profile.sub)return i.Log.info("UserManager.querySessionStatus: querySessionStatus success for sub: ",t.profile.sub),{session_state:t.session_state,sub:t.profile.sub,sid:t.profile.sid};i.Log.info("querySessionStatus successful, user not authenticated")})).catch((function(e){if(e.session_state&&t.settings.monitorAnonymousSession&&("login_required"==e.message||"consent_required"==e.message||"interaction_required"==e.message||"account_selection_required"==e.message))return i.Log.info("UserManager.querySessionStatus: querySessionStatus success for anonymous user"),{session_state:e.session_state};throw e}))}))):(i.Log.error("UserManager.querySessionStatus: No silent_redirect_uri configured"),Promise.reject(new Error("No silent_redirect_uri configured")))},e.prototype._signin=function(t,e){var r=this,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this._signinStart(t,e,n).then((function(e){return r._signinEnd(e.url,t)}))},e.prototype._signinStart=function(t,e){var r=this,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return e.prepare(n).then((function(e){return i.Log.debug("UserManager._signinStart: got navigator window handle"),r.createSigninRequest(t).then((function(t){return i.Log.debug("UserManager._signinStart: got signin request"),n.url=t.url,n.id=t.state.id,e.navigate(n)})).catch((function(t){throw e.close&&(i.Log.debug("UserManager._signinStart: Error after preparing navigator, closing navigator window"),e.close()),t}))}))},e.prototype._signinEnd=function(t){var e=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.processSigninResponse(t).then((function(t){i.Log.debug("UserManager._signinEnd: got signin response");var n=new a.User(t);if(r.current_sub){if(r.current_sub!==n.profile.sub)return i.Log.debug("UserManager._signinEnd: current user does not match user returned from signin. sub from signin: ",n.profile.sub),Promise.reject(new Error("login_required"));i.Log.debug("UserManager._signinEnd: current user matches user returned from signin")}return e.storeUser(n).then((function(){return i.Log.debug("UserManager._signinEnd: user stored"),e._events.load(n),n}))}))},e.prototype._signinCallback=function(t,e){i.Log.debug("UserManager._signinCallback");var r="query"===this._settings.response_mode||!this._settings.response_mode&&l.SigninRequest.isCode(this._settings.response_type)?"?":"#";return e.callback(t,void 0,r)},e.prototype.signoutRedirect=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(t=Object.assign({},t)).request_type="so:r";var e=t.post_logout_redirect_uri||this.settings.post_logout_redirect_uri;e&&(t.post_logout_redirect_uri=e);var r={useReplaceToNavigate:t.useReplaceToNavigate};return this._signoutStart(t,this._redirectNavigator,r).then((function(){i.Log.info("UserManager.signoutRedirect: successful")}))},e.prototype.signoutRedirectCallback=function(t){return this._signoutEnd(t||this._redirectNavigator.url).then((function(t){return i.Log.info("UserManager.signoutRedirectCallback: successful"),t}))},e.prototype.signoutPopup=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(t=Object.assign({},t)).request_type="so:p";var e=t.post_logout_redirect_uri||this.settings.popup_post_logout_redirect_uri||this.settings.post_logout_redirect_uri;return t.post_logout_redirect_uri=e,t.display="popup",t.post_logout_redirect_uri&&(t.state=t.state||{}),this._signout(t,this._popupNavigator,{startUrl:e,popupWindowFeatures:t.popupWindowFeatures||this.settings.popupWindowFeatures,popupWindowTarget:t.popupWindowTarget||this.settings.popupWindowTarget}).then((function(){i.Log.info("UserManager.signoutPopup: successful")}))},e.prototype.signoutPopupCallback=function(t,e){return void 0===e&&"boolean"==typeof t&&(e=t,t=null),this._popupNavigator.callback(t,e,"?").then((function(){i.Log.info("UserManager.signoutPopupCallback: successful")}))},e.prototype._signout=function(t,e){var r=this,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this._signoutStart(t,e,n).then((function(t){return r._signoutEnd(t.url)}))},e.prototype._signoutStart=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return arguments[1].prepare(r).then((function(n){return i.Log.debug("UserManager._signoutStart: got navigator window handle"),e._loadUser().then((function(o){return i.Log.debug("UserManager._signoutStart: loaded current user from storage"),(e._settings.revokeAccessTokenOnSignout?e._revokeInternal(o):Promise.resolve()).then((function(){var s=t.id_token_hint||o&&o.id_token;return s&&(i.Log.debug("UserManager._signoutStart: Setting id_token into signout request"),t.id_token_hint=s),e.removeUser().then((function(){return i.Log.debug("UserManager._signoutStart: user removed, creating signout request"),e.createSignoutRequest(t).then((function(t){return i.Log.debug("UserManager._signoutStart: got signout request"),r.url=t.url,t.state&&(r.id=t.state.id),n.navigate(r)}))}))}))})).catch((function(t){throw n.close&&(i.Log.debug("UserManager._signoutStart: Error after preparing navigator, closing navigator window"),n.close()),t}))}))},e.prototype._signoutEnd=function(t){return this.processSignoutResponse(t).then((function(t){return i.Log.debug("UserManager._signoutEnd: got signout response"),t}))},e.prototype.revokeAccessToken=function(){var t=this;return this._loadUser().then((function(e){return t._revokeInternal(e,!0).then((function(r){if(r)return i.Log.debug("UserManager.revokeAccessToken: removing token properties from user and re-storing"),e.access_token=null,e.refresh_token=null,e.expires_at=null,e.token_type=null,t.storeUser(e).then((function(){i.Log.debug("UserManager.revokeAccessToken: user stored"),t._events.load(e)}))}))})).then((function(){i.Log.info("UserManager.revokeAccessToken: access token revoked successfully")}))},e.prototype._revokeInternal=function(t,e){var r=this;if(t){var n=t.access_token,o=t.refresh_token;return this._revokeAccessTokenInternal(n,e).then((function(t){return r._revokeRefreshTokenInternal(o,e).then((function(e){return t||e||i.Log.debug("UserManager.revokeAccessToken: no need to revoke due to no token(s), or JWT format"),t||e}))}))}return Promise.resolve(!1)},e.prototype._revokeAccessTokenInternal=function(t,e){return!t||t.indexOf(".")>=0?Promise.resolve(!1):this._tokenRevocationClient.revoke(t,e).then((function(){return!0}))},e.prototype._revokeRefreshTokenInternal=function(t,e){return t?this._tokenRevocationClient.revoke(t,e,"refresh_token").then((function(){return!0})):Promise.resolve(!1)},e.prototype.startSilentRenew=function(){this._silentRenewService.start()},e.prototype.stopSilentRenew=function(){this._silentRenewService.stop()},e.prototype._loadUser=function(){return this._userStore.get(this._userStoreKey).then((function(t){return t?(i.Log.debug("UserManager._loadUser: user storageString loaded"),a.User.fromStorageString(t)):(i.Log.debug("UserManager._loadUser: no user storageString"),null)}))},e.prototype.storeUser=function(t){if(t){i.Log.debug("UserManager.storeUser: storing user");var e=t.toStorageString();return this._userStore.set(this._userStoreKey,e)}return i.Log.debug("storeUser.storeUser: removing user"),this._userStore.remove(this._userStoreKey)},n(e,[{key:"_redirectNavigator",get:function(){return this.settings.redirectNavigator}},{key:"_popupNavigator",get:function(){return this.settings.popupNavigator}},{key:"_iframeNavigator",get:function(){return this.settings.iframeNavigator}},{key:"_userStore",get:function(){return this.settings.userStore}},{key:"events",get:function(){return this._events}},{key:"_userStoreKey",get:function(){return"user:"+this.settings.authority+":"+this.settings.client_id}}]),e}(o.OidcClient)},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.UserManagerSettings=void 0;var n=function(){function t(t,e){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{},n=r.popup_redirect_uri,i=r.popup_post_logout_redirect_uri,l=r.popupWindowFeatures,f=r.popupWindowTarget,g=r.silent_redirect_uri,d=r.silentRequestTimeout,p=r.automaticSilentRenew,v=void 0!==p&&p,y=r.validateSubOnSilentRenew,m=void 0!==y&&y,_=r.includeIdTokenInSilentRenew,S=void 0===_||_,w=r.monitorSession,b=void 0===w||w,F=r.monitorAnonymousSession,E=void 0!==F&&F,x=r.checkSessionInterval,A=void 0===x?2e3:x,k=r.stopCheckSessionOnError,P=void 0===k||k,C=r.query_status_response_type,T=r.revokeAccessTokenOnSignout,R=void 0!==T&&T,I=r.accessTokenExpiringNotificationTime,D=void 0===I?60:I,L=r.redirectNavigator,N=void 0===L?new o.RedirectNavigator:L,U=r.popupNavigator,O=void 0===U?new s.PopupNavigator:U,B=r.iframeNavigator,M=void 0===B?new a.IFrameNavigator:B,j=r.userStore,H=void 0===j?new u.WebStorageStateStore({store:c.Global.sessionStorage}):j;!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e);var K=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}(this,t.call(this,arguments[0]));return K._popup_redirect_uri=n,K._popup_post_logout_redirect_uri=i,K._popupWindowFeatures=l,K._popupWindowTarget=f,K._silent_redirect_uri=g,K._silentRequestTimeout=d,K._automaticSilentRenew=v,K._validateSubOnSilentRenew=m,K._includeIdTokenInSilentRenew=S,K._accessTokenExpiringNotificationTime=D,K._monitorSession=b,K._monitorAnonymousSession=E,K._checkSessionInterval=A,K._stopCheckSessionOnError=P,C?K._query_status_response_type=C:arguments[0]&&arguments[0].response_type?K._query_status_response_type=h.SigninRequest.isOidc(arguments[0].response_type)?"id_token":"code":K._query_status_response_type="id_token",K._revokeAccessTokenOnSignout=R,K._redirectNavigator=N,K._popupNavigator=O,K._iframeNavigator=M,K._userStore=H,K}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,t),n(e,[{key:"popup_redirect_uri",get:function(){return this._popup_redirect_uri}},{key:"popup_post_logout_redirect_uri",get:function(){return this._popup_post_logout_redirect_uri}},{key:"popupWindowFeatures",get:function(){return this._popupWindowFeatures}},{key:"popupWindowTarget",get:function(){return this._popupWindowTarget}},{key:"silent_redirect_uri",get:function(){return this._silent_redirect_uri}},{key:"silentRequestTimeout",get:function(){return this._silentRequestTimeout}},{key:"automaticSilentRenew",get:function(){return this._automaticSilentRenew}},{key:"validateSubOnSilentRenew",get:function(){return this._validateSubOnSilentRenew}},{key:"includeIdTokenInSilentRenew",get:function(){return this._includeIdTokenInSilentRenew}},{key:"accessTokenExpiringNotificationTime",get:function(){return this._accessTokenExpiringNotificationTime}},{key:"monitorSession",get:function(){return this._monitorSession}},{key:"monitorAnonymousSession",get:function(){return this._monitorAnonymousSession}},{key:"checkSessionInterval",get:function(){return this._checkSessionInterval}},{key:"stopCheckSessionOnError",get:function(){return this._stopCheckSessionOnError}},{key:"query_status_response_type",get:function(){return this._query_status_response_type}},{key:"revokeAccessTokenOnSignout",get:function(){return this._revokeAccessTokenOnSignout}},{key:"redirectNavigator",get:function(){return this._redirectNavigator}},{key:"popupNavigator",get:function(){return this._popupNavigator}},{key:"iframeNavigator",get:function(){return this._iframeNavigator}},{key:"userStore",get:function(){return this._userStore}}]),e}(i.OidcClientSettings)},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.RedirectNavigator=void 0;var n=function(){function t(t,e){for(var r=0;r1&&void 0!==arguments[1])||arguments[1];n.Log.debug("UserManagerEvents.load"),t.prototype.load.call(this,e),r&&this._userLoaded.raise(e)},e.prototype.unload=function(){n.Log.debug("UserManagerEvents.unload"),t.prototype.unload.call(this),this._userUnloaded.raise()},e.prototype.addUserLoaded=function(t){this._userLoaded.addHandler(t)},e.prototype.removeUserLoaded=function(t){this._userLoaded.removeHandler(t)},e.prototype.addUserUnloaded=function(t){this._userUnloaded.addHandler(t)},e.prototype.removeUserUnloaded=function(t){this._userUnloaded.removeHandler(t)},e.prototype.addSilentRenewError=function(t){this._silentRenewError.addHandler(t)},e.prototype.removeSilentRenewError=function(t){this._silentRenewError.removeHandler(t)},e.prototype._raiseSilentRenewError=function(t){n.Log.debug("UserManagerEvents._raiseSilentRenewError",t.message),this._silentRenewError.raise(t)},e.prototype.addUserSignedIn=function(t){this._userSignedIn.addHandler(t)},e.prototype.removeUserSignedIn=function(t){this._userSignedIn.removeHandler(t)},e.prototype._raiseUserSignedIn=function(){n.Log.debug("UserManagerEvents._raiseUserSignedIn"),this._userSignedIn.raise()},e.prototype.addUserSignedOut=function(t){this._userSignedOut.addHandler(t)},e.prototype.removeUserSignedOut=function(t){this._userSignedOut.removeHandler(t)},e.prototype._raiseUserSignedOut=function(){n.Log.debug("UserManagerEvents._raiseUserSignedOut"),this._userSignedOut.raise()},e.prototype.addUserSessionChanged=function(t){this._userSessionChanged.addHandler(t)},e.prototype.removeUserSessionChanged=function(t){this._userSessionChanged.removeHandler(t)},e.prototype._raiseUserSessionChanged=function(){n.Log.debug("UserManagerEvents._raiseUserSessionChanged"),this._userSessionChanged.raise()},e}(i.AccessTokenEvents)},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Timer=void 0;var n=function(){function t(t,e){for(var r=0;r1&&void 0!==arguments[1]?arguments[1]:o.Global.timer,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e);var s=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}(this,t.call(this,r));return s._timer=n,s._nowFunc=i||function(){return Date.now()/1e3},s}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,t),e.prototype.init=function(t){t<=0&&(t=1),t=parseInt(t);var e=this.now+t;if(this.expiration===e&&this._timerHandle)i.Log.debug("Timer.init timer "+this._name+" skipping initialization since already initialized for expiration:",this.expiration);else{this.cancel(),i.Log.debug("Timer.init timer "+this._name+" for duration:",t),this._expiration=e;var r=5;t{"use strict";e.in=e.kO=e.Pd=void 0;const n=r(671);var i,o,s;!function(t){t.Success="Success",t.RequiresRedirect="RequiresRedirect"}(i=e.Pd||(e.Pd={})),function(t){t.Redirect="Redirect",t.Success="Success",t.Failure="Failure",t.OperationCompleted="OperationCompleted"}(o=e.kO||(e.kO={}));class a{constructor(t){this.debug=t.debugEnabled,this.trace=t.traceEnabled}log(t,e){if(t==s.Trace&&this.trace||t==s.Debug&&this.debug){const r=t==s.Trace?"trce":"dbug";console.debug(`${r}: Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationService[0]\n ${e}`)}}}!function(t){t[t.Trace=0]="Trace",t[t.Debug=1]="Debug"}(s=e.in||(e.in={}));class u{constructor(t,e){this._userManager=t,this._logger=e}async trySilentSignIn(){return this._intialSilentSignIn||(this._intialSilentSignIn=(async()=>{try{this.debug("Beginning initial silent sign in."),await this._userManager.signinSilent(),this.debug("Initial silent sign in succeeded.")}catch(t){t instanceof Error&&this.debug(`Initial silent sign in failed '${t.message}'`)}})()),this._intialSilentSignIn}async getUser(){window.parent!==window||window.opener||window.frameElement||!this._userManager.settings.redirect_uri||location.href.startsWith(this._userManager.settings.redirect_uri)||await this.trySilentSignIn();const t=await this._userManager.getUser();return t&&t.profile}async getAccessToken(t){this.trace("getAccessToken",t);const e=await this._userManager.getUser();if(function(t){return!(!t||!t.access_token||t.expired||!t.scopes)}(e)&&function(t,e){const r=new Set(e);if(t&&t.scopes)for(const e of t.scopes)if(!r.has(e))return!1;return!0}(t,e.scopes))return this.debug(`Valid access token present expiring at '${r(e.expires_in).toISOString()}'`),{status:i.Success,token:{grantedScopes:e.scopes,expires:r(e.expires_in),value:e.access_token}};try{const e=t&&t.scopes?{scope:t.scopes.join(" ")}:void 0;this.debug(`Provisioning a token silently for scopes '${null==e?void 0:e.scope}'`),this.trace("userManager.signinSilent",e);const n=await this._userManager.signinSilent(e);this.debug(`Provisioned an access token expiring at '${r(n.expires_in).toISOString()}'`);const o={status:i.Success,token:{grantedScopes:n.scopes,expires:r(n.expires_in),value:n.access_token}};return this.trace("getAccessToken-result",o),o}catch(t){return t instanceof Error&&this.debug(`Failed to provision a token silently '${t.message}'`),{status:i.RequiresRedirect}}function r(t){const e=new Date;return e.setTime(e.getTime()+1e3*t),e}}async signIn(t){if(this.trace("signIn",t),t.interactiveRequest)return this.debug("Interactive sign in starting."),this.signInInteractive(t);try{return this.debug("Silent sign in starting"),await this._userManager.clearStaleState(),await this._userManager.signinSilent(this.createArguments(void 0,t.interactiveRequest)),this.debug("Silent sign in succeeded"),this.success(t.state)}catch(e){return e instanceof Error&&this.debug(`Silent sign in failed, redirecting to the identity provider '${e.message}'.`),await this.signInInteractive(t)}}async signInInteractive(t){this.trace("signInInteractive",t);try{return await this._userManager.clearStaleState(),await this._userManager.signinRedirect(this.createArguments(t.state,t.interactiveRequest)),this.debug("Redirect sign in succeeded"),this.redirect()}catch(t){const e=this.getExceptionMessage(t);return this.debug(`Redirect sign in failed '${e}'.`),this.error(e)}}async completeSignIn(t){this.trace("completeSignIn",t);const e=await this.loginRequired(t),r=await this.stateExists(t);try{const e=await this._userManager.signinCallback(t);return window.self!==window.top?this.operationCompleted():(this.trace("completeSignIn-result",e),this.success(e&&e.state))}catch(t){return e||window.self!==window.top||!r?this.operationCompleted():this.error("There was an error signing in.")}}async signOut(t){this.trace("signOut",t);try{return await this._userManager.metadataService.getEndSessionEndpoint()?(await this._userManager.signoutRedirect(this.createArguments(t.state,t.interactiveRequest)),this.redirect()):(await this._userManager.removeUser(),this.success(t.state))}catch(t){const e=this.getExceptionMessage(t);return this.debug(`Sign out error '${e}'.`),this.error(e)}}async completeSignOut(t){this.trace("completeSignOut",t);try{if(await this.stateExists(t)){const e=await this._userManager.signoutCallback(t);return this.success(e&&e.state)}return this.operationCompleted()}catch(t){const e=this.getExceptionMessage(t);return this.debug(`Complete sign out error '${e}'`),this.error(e)}}getExceptionMessage(t){return function(t){return t&&t.error_description}(t)?t.error_description:function(t){return t&&t.message}(t)?t.message:t.toString()}async stateExists(t){const e=new URLSearchParams(new URL(t).search).get("state");return e&&this._userManager.settings.stateStore?await this._userManager.settings.stateStore.get(e):void 0}async loginRequired(t){const e=new URLSearchParams(new URL(t).search).get("error");return!(!e||!this._userManager.settings.stateStore)&&"login_required"===await this._userManager.settings.stateStore.get(e)}createArguments(t,e){return{useReplaceToNavigate:!0,data:t,scope:(null==e?void 0:e.scopes)?e.scopes.join(" "):void 0,...null==e?void 0:e.additionalRequestParameters}}error(t){return{status:o.Failure,errorMessage:t}}success(t){return{status:o.Success,state:t}}redirect(){return{status:o.Redirect}}operationCompleted(){return{status:o.OperationCompleted}}debug(t){var e;null===(e=this._logger)||void 0===e||e.log(s.Debug,t)}trace(t,e){var r;null===(r=this._logger)||void 0===r||r.log(s.Trace,`${t}: ${JSON.stringify(e)}`)}}class c{static init(t,e){return c._initialized||(c._initialized=c.initializeCore(t,new a(e))),c._initialized}static handleCallback(){return c.initializeCore()}static async initializeCore(t,e){const r=t||c.resolveCachedSettings(),n=c.resolveCachedLoggerOptions(),i=e||n&&new a(n);if(!t&&r&&!e&&i){const t=c.createUserManagerCore(r);window.parent!==window&&!window.opener&&window.frameElement&&t.settings.redirect_uri&&location.href.startsWith(t.settings.redirect_uri)&&(c.instance=new u(t,i),c._initialized=(async()=>{await c.instance.completeSignIn(location.href)})())}else if(t&&e){const r=await c.createUserManager(t);c.instance=new u(r,e),window.sessionStorage.setItem(`${c._infrastructureKey}.CachedJSLoggingOptions`,JSON.stringify({debugEnabled:e.debug,traceEnabled:e.trace}))}}static resolveCachedSettings(){const t=window.sessionStorage.getItem(`${c._infrastructureKey}.CachedAuthSettings`);return t?JSON.parse(t):void 0}static resolveCachedLoggerOptions(){const t=window.sessionStorage.getItem(`${c._infrastructureKey}.CachedJSLoggingOptions`);return t?JSON.parse(t):void 0}static getUser(){return c.instance.getUser()}static getAccessToken(t){return c.instance.getAccessToken(t)}static signIn(t){return c.instance.signIn(t)}static async completeSignIn(t){let e=this._pendingOperations[t];return e||(e=c.instance.completeSignIn(t),await e,delete this._pendingOperations[t]),e}static signOut(t){return c.instance.signOut(t)}static async completeSignOut(t){let e=this._pendingOperations[t];return e||(e=c.instance.completeSignOut(t),await e,delete this._pendingOperations[t]),e}static async createUserManager(t){let e;if(function(t){return t.hasOwnProperty("configurationEndpoint")}(t)){const r=await fetch(t.configurationEndpoint);if(!r.ok)throw new Error(`Could not load settings from '${t.configurationEndpoint}'`);e=await r.json()}else t.scope||(t.scope=t.defaultScopes.join(" ")),null===t.response_type&&delete t.response_type,e=t;return window.sessionStorage.setItem(`${c._infrastructureKey}.CachedAuthSettings`,JSON.stringify(e)),c.createUserManagerCore(e)}static createUserManagerCore(t){const e=new n.UserManager(t);return e.events.addUserSignedOut((async()=>{e.removeUser()})),e}}c._infrastructureKey="Microsoft.AspNetCore.Components.WebAssembly.Authentication",c._pendingOperations={},c.handleCallback(),window.AuthenticationService=c}},e={},function r(n){var i=e[n];if(void 0!==i)return i.exports;var o=e[n]={exports:{}};return t[n].call(o.exports,o,o.exports,r),o.exports}(981); diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/wwwroot/images/logo/leptonx/logo-dark-thumbnail.png b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/wwwroot/images/logo/leptonx/logo-dark-thumbnail.png index 621596bb5c..9734a07a4d 100644 Binary files a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/wwwroot/images/logo/leptonx/logo-dark-thumbnail.png and b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/wwwroot/images/logo/leptonx/logo-dark-thumbnail.png differ diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/wwwroot/images/logo/leptonx/logo-dark.png b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/wwwroot/images/logo/leptonx/logo-dark.png index e4bfe818c8..a3bbe82224 100644 Binary files a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/wwwroot/images/logo/leptonx/logo-dark.png and b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/wwwroot/images/logo/leptonx/logo-dark.png differ diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/wwwroot/images/logo/leptonx/logo-light-thumbnail.png b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/wwwroot/images/logo/leptonx/logo-light-thumbnail.png index 886c960864..ca3918481a 100644 Binary files a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/wwwroot/images/logo/leptonx/logo-light-thumbnail.png and b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/wwwroot/images/logo/leptonx/logo-light-thumbnail.png differ diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/wwwroot/images/logo/leptonx/logo-light.png b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/wwwroot/images/logo/leptonx/logo-light.png index 6ebd97e2b2..761fb4443d 100644 Binary files a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/wwwroot/images/logo/leptonx/logo-light.png and b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/wwwroot/images/logo/leptonx/logo-light.png differ diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/wwwroot/index.html b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/Components/App.razor similarity index 70% rename from templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/wwwroot/index.html rename to templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/Components/App.razor index 952fa6ba5e..ebe25c0f24 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/wwwroot/index.html +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/Components/App.razor @@ -1,4 +1,5 @@ - +@using Microsoft.AspNetCore.Components.Web + @@ -8,36 +9,36 @@ - + - + + + + + +
+ +
- + - - - diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/MyProjectNameHostModule.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/MyProjectNameHostModule.cs index f9043aae71..e88bc89e45 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/MyProjectNameHostModule.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/MyProjectNameHostModule.cs @@ -6,11 +6,13 @@ using Microsoft.OpenApi.Models; using MyCompanyName.MyProjectName.Data; using MyCompanyName.MyProjectName.Localization; using MyCompanyName.MyProjectName; +using MyCompanyName.MyProjectName.Components; using MyCompanyName.MyProjectName.MultiTenancy; using OpenIddict.Validation.AspNetCore; using Volo.Abp; using Volo.Abp.Account; using Volo.Abp.Account.Web; +using Volo.Abp.AspNetCore.Components.WebAssembly.WebApp; using Volo.Abp.AspNetCore.MultiTenancy; using Volo.Abp.AspNetCore.Mvc; using Volo.Abp.AspNetCore.Mvc.Localization; @@ -145,6 +147,10 @@ public class MyProjectNameHostModule : AbpModule context.Services.Replace(ServiceDescriptor.Singleton()); } + // Add services to the container. + context.Services.AddRazorComponents() + .AddInteractiveWebAssemblyComponents(); + ConfigureAuthentication(context); ConfigureBundles(); ConfigureMultiTenancy(); @@ -318,6 +324,7 @@ public class MyProjectNameHostModule : AbpModule app.UseUnitOfWork(); app.UseDynamicClaims(); + app.UseAntiforgery(); app.UseAuthorization(); app.UseSwagger(); @@ -333,10 +340,11 @@ public class MyProjectNameHostModule : AbpModule app.UseAuditing(); app.UseAbpSerilogEnrichers(); app.UseConfiguredEndpoints(); - - if (app is WebApplication webApp) + app.UseConfiguredEndpoints(builder => { - webApp.MapFallbackToFile("index.html"); - } + builder.MapRazorComponents() + .AddInteractiveWebAssemblyRenderMode() + .AddAdditionalAssemblies(WebAppAdditionalAssembliesHelper.GetAssemblies()); + }); } } diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/package.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/package.json index 643aafffe9..5c5b836895 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/package.json +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.0.3" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.1.0-rc.2" } } diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/wwwroot/index.html b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/Components/App.razor similarity index 56% rename from templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/wwwroot/index.html rename to templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/Components/App.razor index 9a99fec1b1..ebe25c0f24 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/wwwroot/index.html +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/Components/App.razor @@ -1,4 +1,5 @@ - +@using Microsoft.AspNetCore.Components.Web + @@ -8,7 +9,7 @@ - + @@ -18,18 +19,26 @@ + + -
-
-
-
+ + + +
+
+
+
+
+ +
-
- - + + + diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/MyProjectNameHostModule.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/MyProjectNameHostModule.cs index 65b09d8f09..b8522fb170 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/MyProjectNameHostModule.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/MyProjectNameHostModule.cs @@ -6,11 +6,13 @@ using Microsoft.OpenApi.Models; using MyCompanyName.MyProjectName.Data; using MyCompanyName.MyProjectName.Localization; using MyCompanyName.MyProjectName; +using MyCompanyName.MyProjectName.Components; using MyCompanyName.MyProjectName.MultiTenancy; using OpenIddict.Validation.AspNetCore; using Volo.Abp; using Volo.Abp.Account; using Volo.Abp.Account.Web; +using Volo.Abp.AspNetCore.Components.WebAssembly.WebApp; using Volo.Abp.AspNetCore.MultiTenancy; using Volo.Abp.AspNetCore.Mvc; using Volo.Abp.AspNetCore.Mvc.Localization; @@ -148,6 +150,10 @@ public class MyProjectNameHostModule : AbpModule context.Services.Replace(ServiceDescriptor.Singleton()); } + // Add services to the container. + context.Services.AddRazorComponents() + .AddInteractiveWebAssemblyComponents(); + ConfigureAuthentication(context); ConfigureBundles(); ConfigureMultiTenancy(); @@ -335,6 +341,7 @@ public class MyProjectNameHostModule : AbpModule app.UseUnitOfWork(); app.UseDynamicClaims(); + app.UseAntiforgery(); app.UseAuthorization(); app.UseSwagger(); @@ -349,11 +356,11 @@ public class MyProjectNameHostModule : AbpModule app.UseAuditing(); app.UseAbpSerilogEnrichers(); - app.UseConfiguredEndpoints(); - - if (app is WebApplication webApp) + app.UseConfiguredEndpoints(builder => { - webApp.MapFallbackToFile("index.html"); - } + builder.MapRazorComponents() + .AddInteractiveWebAssemblyRenderMode() + .AddAdditionalAssemblies(WebAppAdditionalAssembliesHelper.GetAssemblies()); + }); } } diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/package.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/package.json index 643aafffe9..5c5b836895 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/package.json +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.0.3" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.1.0-rc.2" } } diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/package.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/package.json index 643aafffe9..5c5b836895 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/package.json +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.0.3" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.1.0-rc.2" } } diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/wwwroot/images/logo/leptonx/logo-dark-thumbnail.png b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/wwwroot/images/logo/leptonx/logo-dark-thumbnail.png index 621596bb5c..9734a07a4d 100644 Binary files a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/wwwroot/images/logo/leptonx/logo-dark-thumbnail.png and b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/wwwroot/images/logo/leptonx/logo-dark-thumbnail.png differ diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/wwwroot/images/logo/leptonx/logo-dark.png b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/wwwroot/images/logo/leptonx/logo-dark.png index e4bfe818c8..a3bbe82224 100644 Binary files a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/wwwroot/images/logo/leptonx/logo-dark.png and b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/wwwroot/images/logo/leptonx/logo-dark.png differ diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/wwwroot/images/logo/leptonx/logo-light-thumbnail.png b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/wwwroot/images/logo/leptonx/logo-light-thumbnail.png index 886c960864..ca3918481a 100644 Binary files a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/wwwroot/images/logo/leptonx/logo-light-thumbnail.png and b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/wwwroot/images/logo/leptonx/logo-light-thumbnail.png differ diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/wwwroot/images/logo/leptonx/logo-light.png b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/wwwroot/images/logo/leptonx/logo-light.png index 6ebd97e2b2..761fb4443d 100644 Binary files a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/wwwroot/images/logo/leptonx/logo-light.png and b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/wwwroot/images/logo/leptonx/logo-light.png differ diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/package.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/package.json index 643aafffe9..5c5b836895 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/package.json +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.0.3" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.1.0-rc.2" } } diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/wwwroot/images/logo/leptonx/logo-dark-thumbnail.png b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/wwwroot/images/logo/leptonx/logo-dark-thumbnail.png index 621596bb5c..9734a07a4d 100644 Binary files a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/wwwroot/images/logo/leptonx/logo-dark-thumbnail.png and b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/wwwroot/images/logo/leptonx/logo-dark-thumbnail.png differ diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/wwwroot/images/logo/leptonx/logo-dark.png b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/wwwroot/images/logo/leptonx/logo-dark.png index e4bfe818c8..a3bbe82224 100644 Binary files a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/wwwroot/images/logo/leptonx/logo-dark.png and b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/wwwroot/images/logo/leptonx/logo-dark.png differ diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/wwwroot/images/logo/leptonx/logo-light-thumbnail.png b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/wwwroot/images/logo/leptonx/logo-light-thumbnail.png index 886c960864..ca3918481a 100644 Binary files a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/wwwroot/images/logo/leptonx/logo-light-thumbnail.png and b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/wwwroot/images/logo/leptonx/logo-light-thumbnail.png differ diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/wwwroot/images/logo/leptonx/logo-light.png b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/wwwroot/images/logo/leptonx/logo-light.png index 6ebd97e2b2..761fb4443d 100644 Binary files a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/wwwroot/images/logo/leptonx/logo-light.png and b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/wwwroot/images/logo/leptonx/logo-light.png differ diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/package.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/package.json index 643aafffe9..5c5b836895 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/package.json +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.0.3" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.1.0-rc.2" } } diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/wwwroot/images/logo/leptonx/logo-dark-thumbnail.png b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/wwwroot/images/logo/leptonx/logo-dark-thumbnail.png index 621596bb5c..9734a07a4d 100644 Binary files a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/wwwroot/images/logo/leptonx/logo-dark-thumbnail.png and b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/wwwroot/images/logo/leptonx/logo-dark-thumbnail.png differ diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/wwwroot/images/logo/leptonx/logo-dark.png b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/wwwroot/images/logo/leptonx/logo-dark.png index e4bfe818c8..a3bbe82224 100644 Binary files a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/wwwroot/images/logo/leptonx/logo-dark.png and b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/wwwroot/images/logo/leptonx/logo-dark.png differ diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/wwwroot/images/logo/leptonx/logo-light-thumbnail.png b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/wwwroot/images/logo/leptonx/logo-light-thumbnail.png index 886c960864..ca3918481a 100644 Binary files a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/wwwroot/images/logo/leptonx/logo-light-thumbnail.png and b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/wwwroot/images/logo/leptonx/logo-light-thumbnail.png differ diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/wwwroot/images/logo/leptonx/logo-light.png b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/wwwroot/images/logo/leptonx/logo-light.png index 6ebd97e2b2..761fb4443d 100644 Binary files a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/wwwroot/images/logo/leptonx/logo-light.png and b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/wwwroot/images/logo/leptonx/logo-light.png differ diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/package.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/package.json index 643aafffe9..5c5b836895 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/package.json +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.0.3" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.1.0-rc.2" } } diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/wwwroot/images/logo/leptonx/logo-dark-thumbnail.png b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/wwwroot/images/logo/leptonx/logo-dark-thumbnail.png index 621596bb5c..9734a07a4d 100644 Binary files a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/wwwroot/images/logo/leptonx/logo-dark-thumbnail.png and b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/wwwroot/images/logo/leptonx/logo-dark-thumbnail.png differ diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/wwwroot/images/logo/leptonx/logo-dark.png b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/wwwroot/images/logo/leptonx/logo-dark.png index e4bfe818c8..a3bbe82224 100644 Binary files a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/wwwroot/images/logo/leptonx/logo-dark.png and b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/wwwroot/images/logo/leptonx/logo-dark.png differ diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/wwwroot/images/logo/leptonx/logo-light-thumbnail.png b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/wwwroot/images/logo/leptonx/logo-light-thumbnail.png index 886c960864..ca3918481a 100644 Binary files a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/wwwroot/images/logo/leptonx/logo-light-thumbnail.png and b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/wwwroot/images/logo/leptonx/logo-light-thumbnail.png differ diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/wwwroot/images/logo/leptonx/logo-light.png b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/wwwroot/images/logo/leptonx/logo-light.png index 6ebd97e2b2..761fb4443d 100644 Binary files a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/wwwroot/images/logo/leptonx/logo-light.png and b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/wwwroot/images/logo/leptonx/logo-light.png differ diff --git a/templates/app/angular/package.json b/templates/app/angular/package.json index b882bf6d96..48180e1654 100644 --- a/templates/app/angular/package.json +++ b/templates/app/angular/package.json @@ -12,15 +12,15 @@ }, "private": true, "dependencies": { - "@abp/ng.account": "~8.1.0-rc.1", - "@abp/ng.components": "~8.1.0-rc.1", - "@abp/ng.core": "~8.1.0-rc.1", - "@abp/ng.identity": "~8.1.0-rc.1", - "@abp/ng.oauth": "~8.1.0-rc.1", - "@abp/ng.setting-management": "~8.1.0-rc.1", - "@abp/ng.tenant-management": "~8.1.0-rc.1", - "@abp/ng.theme.lepton-x": "~3.0.3", - "@abp/ng.theme.shared": "~8.1.0-rc.1", + "@abp/ng.account": "~8.1.0-rc.2", + "@abp/ng.components": "~8.1.0-rc.2", + "@abp/ng.core": "~8.1.0-rc.2", + "@abp/ng.identity": "~8.1.0-rc.2", + "@abp/ng.oauth": "~8.1.0-rc.2", + "@abp/ng.setting-management": "~8.1.0-rc.2", + "@abp/ng.tenant-management": "~8.1.0-rc.2", + "@abp/ng.theme.lepton-x": "~3.1.0-rc.2", + "@abp/ng.theme.shared": "~8.1.0-rc.2", "@angular/animations": "~17.1.0", "@angular/common": "~17.1.0", "@angular/compiler": "~17.1.0", @@ -36,7 +36,7 @@ "zone.js": "~0.14.0" }, "devDependencies": { - "@abp/ng.schematics": "~8.1.0-rc.1", + "@abp/ng.schematics": "~8.1.0-rc.2", "@angular-devkit/build-angular": "~17.1.0", "@angular-eslint/builder": "~17.2.0", "@angular-eslint/eslint-plugin": "~17.2.0", diff --git a/templates/app/angular/src/assets/images/logo/logo-light-thumbnail.png b/templates/app/angular/src/assets/images/logo/logo-light-thumbnail.png index 886c960864..ca3918481a 100644 Binary files a/templates/app/angular/src/assets/images/logo/logo-light-thumbnail.png and b/templates/app/angular/src/assets/images/logo/logo-light-thumbnail.png differ diff --git a/templates/app/angular/src/assets/images/logo/logo-light.png b/templates/app/angular/src/assets/images/logo/logo-light.png index 6ebd97e2b2..761fb4443d 100644 Binary files a/templates/app/angular/src/assets/images/logo/logo-light.png and b/templates/app/angular/src/assets/images/logo/logo-light.png differ diff --git a/templates/app/aspnet-core/MyCompanyName.MyProjectName.sln b/templates/app/aspnet-core/MyCompanyName.MyProjectName.sln index fe15314225..bc9c9cb850 100644 --- a/templates/app/aspnet-core/MyCompanyName.MyProjectName.sln +++ b/templates/app/aspnet-core/MyCompanyName.MyProjectName.sln @@ -55,6 +55,16 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MyCompanyName.MyProjectName EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MyCompanyName.MyProjectName.Blazor.Server.Tiered", "src\MyCompanyName.MyProjectName.Blazor.Server.Tiered\MyCompanyName.MyProjectName.Blazor.Server.Tiered.csproj", "{C9F40C93-3DD0-4D6E-B98E-45A6F50FACDA}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MyCompanyName.MyProjectName.Blazor.Client", "src\MyCompanyName.MyProjectName.Blazor.Client\MyCompanyName.MyProjectName.Blazor.Client.csproj", "{188A64AD-A1A7-4F95-85D1-C935594611B7}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MyCompanyName.MyProjectName.Blazor.WebApp", "src\MyCompanyName.MyProjectName.Blazor.WebApp\MyCompanyName.MyProjectName.Blazor.WebApp.csproj", "{14882ABF-1EEF-430C-8E72-812B3EE810C4}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MyCompanyName.MyProjectName.Blazor.WebApp.Client", "src\MyCompanyName.MyProjectName.Blazor.WebApp.Client\MyCompanyName.MyProjectName.Blazor.WebApp.Client.csproj", "{648460F4-3ECC-4751-9D87-EE25D0B8B2BF}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MyCompanyName.MyProjectName.Blazor.WebApp.Tiered", "src\MyCompanyName.MyProjectName.Blazor.WebApp.Tiered\MyCompanyName.MyProjectName.Blazor.WebApp.Tiered.csproj", "{8A3E5E20-F162-4321-8AD5-23DD7B2B0E74}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MyCompanyName.MyProjectName.Blazor.WebApp.Tiered.Client", "src\MyCompanyName.MyProjectName.Blazor.WebApp.Tiered.Client\MyCompanyName.MyProjectName.Blazor.WebApp.Tiered.Client.csproj", "{834C6A10-7562-427C-8771-B0588C35873D}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -157,6 +167,26 @@ Global {C9F40C93-3DD0-4D6E-B98E-45A6F50FACDA}.Debug|Any CPU.Build.0 = Debug|Any CPU {C9F40C93-3DD0-4D6E-B98E-45A6F50FACDA}.Release|Any CPU.ActiveCfg = Release|Any CPU {C9F40C93-3DD0-4D6E-B98E-45A6F50FACDA}.Release|Any CPU.Build.0 = Release|Any CPU + {188A64AD-A1A7-4F95-85D1-C935594611B7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {188A64AD-A1A7-4F95-85D1-C935594611B7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {188A64AD-A1A7-4F95-85D1-C935594611B7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {188A64AD-A1A7-4F95-85D1-C935594611B7}.Release|Any CPU.Build.0 = Release|Any CPU + {14882ABF-1EEF-430C-8E72-812B3EE810C4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {14882ABF-1EEF-430C-8E72-812B3EE810C4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {14882ABF-1EEF-430C-8E72-812B3EE810C4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {14882ABF-1EEF-430C-8E72-812B3EE810C4}.Release|Any CPU.Build.0 = Release|Any CPU + {648460F4-3ECC-4751-9D87-EE25D0B8B2BF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {648460F4-3ECC-4751-9D87-EE25D0B8B2BF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {648460F4-3ECC-4751-9D87-EE25D0B8B2BF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {648460F4-3ECC-4751-9D87-EE25D0B8B2BF}.Release|Any CPU.Build.0 = Release|Any CPU + {8A3E5E20-F162-4321-8AD5-23DD7B2B0E74}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8A3E5E20-F162-4321-8AD5-23DD7B2B0E74}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8A3E5E20-F162-4321-8AD5-23DD7B2B0E74}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8A3E5E20-F162-4321-8AD5-23DD7B2B0E74}.Release|Any CPU.Build.0 = Release|Any CPU + {834C6A10-7562-427C-8771-B0588C35873D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {834C6A10-7562-427C-8771-B0588C35873D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {834C6A10-7562-427C-8771-B0588C35873D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {834C6A10-7562-427C-8771-B0588C35873D}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -186,6 +216,11 @@ Global {27B2DDC7-8B75-4322-A312-25419C15D9D8} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0} {16F0BF4E-7D73-4278-8D9A-7CDE37105C6B} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0} {C9F40C93-3DD0-4D6E-B98E-45A6F50FACDA} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0} + {188A64AD-A1A7-4F95-85D1-C935594611B7} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0} + {14882ABF-1EEF-430C-8E72-812B3EE810C4} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0} + {648460F4-3ECC-4751-9D87-EE25D0B8B2BF} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0} + {8A3E5E20-F162-4321-8AD5-23DD7B2B0E74} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0} + {834C6A10-7562-427C-8771-B0588C35873D} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {28315BFD-90E7-4E14-A2EA-F3D23AF4126F} diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/package.json index ede551d1a2..74a359e4a5 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/package.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/package.json @@ -3,6 +3,6 @@ "name": "my-app-authserver", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.0.3" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.1.0-rc.2" } } diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/wwwroot/images/logo/leptonx/logo-dark-thumbnail.png b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/wwwroot/images/logo/leptonx/logo-dark-thumbnail.png index 621596bb5c..9734a07a4d 100644 Binary files a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/wwwroot/images/logo/leptonx/logo-dark-thumbnail.png and b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/wwwroot/images/logo/leptonx/logo-dark-thumbnail.png differ diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/wwwroot/images/logo/leptonx/logo-dark.png b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/wwwroot/images/logo/leptonx/logo-dark.png index e4bfe818c8..a3bbe82224 100644 Binary files a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/wwwroot/images/logo/leptonx/logo-dark.png and b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/wwwroot/images/logo/leptonx/logo-dark.png differ diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/wwwroot/images/logo/leptonx/logo-light-thumbnail.png b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/wwwroot/images/logo/leptonx/logo-light-thumbnail.png index 886c960864..ca3918481a 100644 Binary files a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/wwwroot/images/logo/leptonx/logo-light-thumbnail.png and b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/wwwroot/images/logo/leptonx/logo-light-thumbnail.png differ diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/wwwroot/images/logo/leptonx/logo-light.png b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/wwwroot/images/logo/leptonx/logo-light.png index 6ebd97e2b2..761fb4443d 100644 Binary files a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/wwwroot/images/logo/leptonx/logo-light.png and b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/wwwroot/images/logo/leptonx/logo-light.png differ diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Menus/MyProjectNameMenuContributor.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/Menus/MyProjectNameMenuContributor.cs similarity index 88% rename from templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Menus/MyProjectNameMenuContributor.cs rename to templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/Menus/MyProjectNameMenuContributor.cs index de1bab4325..049bb0f679 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Menus/MyProjectNameMenuContributor.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/Menus/MyProjectNameMenuContributor.cs @@ -1,7 +1,6 @@ using System; using System.Threading.Tasks; using Microsoft.Extensions.Configuration; -using Microsoft.Extensions.DependencyInjection; using MyCompanyName.MyProjectName.Localization; using MyCompanyName.MyProjectName.MultiTenancy; using Volo.Abp.Account.Localization; @@ -10,9 +9,8 @@ using Volo.Abp.Identity.Blazor; using Volo.Abp.SettingManagement.Blazor.Menus; using Volo.Abp.TenantManagement.Blazor.Navigation; using Volo.Abp.UI.Navigation; -using Volo.Abp.Users; -namespace MyCompanyName.MyProjectName.Blazor.Menus; +namespace MyCompanyName.MyProjectName.Blazor.Client.Menus; public class MyProjectNameMenuContributor : IMenuContributor { @@ -48,7 +46,7 @@ public class MyProjectNameMenuContributor : IMenuContributor icon: "fas fa-home" ) ); - + var administration = context.Menu.GetAdministration(); if (MultiTenancyConsts.IsEnabled) @@ -70,12 +68,10 @@ public class MyProjectNameMenuContributor : IMenuContributor { var accountStringLocalizer = context.GetLocalizer(); - var authServerUrl = _configuration["AuthServer:Authority"] ?? ""; - context.Menu.AddItem(new ApplicationMenuItem( "Account.Manage", accountStringLocalizer["MyAccount"], - $"{authServerUrl.EnsureEndsWith('/')}Account/Manage?returnUrl={_configuration["App:SelfUrl"]}", + $"Account/Manage", icon: "fa fa-cog", order: 1000, null).RequireAuthenticated()); diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Menus/MyProjectNameMenus.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/Menus/MyProjectNameMenus.cs similarity index 73% rename from templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Menus/MyProjectNameMenus.cs rename to templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/Menus/MyProjectNameMenus.cs index 89cf3424a9..3abb86d76a 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Menus/MyProjectNameMenus.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/Menus/MyProjectNameMenus.cs @@ -1,4 +1,4 @@ -namespace MyCompanyName.MyProjectName.Blazor.Menus; +namespace MyCompanyName.MyProjectName.Blazor.Client.Menus; public class MyProjectNameMenus { diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/MyCompanyName.MyProjectName.Blazor.Client.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/MyCompanyName.MyProjectName.Blazor.Client.csproj new file mode 100644 index 0000000000..561d40337f --- /dev/null +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/MyCompanyName.MyProjectName.Blazor.Client.csproj @@ -0,0 +1,50 @@ + + + + + + net8.0 + enable + true + + service-worker-assets.js + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyProjectNameBlazorAutoMapperProfile.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/MyProjectNameBlazorAutoMapperProfile.cs similarity index 80% rename from templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyProjectNameBlazorAutoMapperProfile.cs rename to templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/MyProjectNameBlazorAutoMapperProfile.cs index 9ca9e14d04..9e5092bfe7 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyProjectNameBlazorAutoMapperProfile.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/MyProjectNameBlazorAutoMapperProfile.cs @@ -1,6 +1,6 @@ using AutoMapper; -namespace MyCompanyName.MyProjectName.Blazor; +namespace MyCompanyName.MyProjectName.Blazor.Client; public class MyProjectNameBlazorAutoMapperProfile : Profile { diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyProjectNameBlazorModule.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/MyProjectNameBlazorClientModule.cs similarity index 85% rename from templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyProjectNameBlazorModule.cs rename to templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/MyProjectNameBlazorClientModule.cs index 5d955fd6c1..035c9ef835 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyProjectNameBlazorModule.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/MyProjectNameBlazorClientModule.cs @@ -5,21 +5,19 @@ using Blazorise.Icons.FontAwesome; using Microsoft.AspNetCore.Components.WebAssembly.Hosting; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; -using MyCompanyName.MyProjectName.Blazor.Menus; +using MyCompanyName.MyProjectName.Blazor.Client.Menus; using OpenIddict.Abstractions; -using Volo.Abp.AspNetCore.Components.WebAssembly.LeptonXLiteTheme; -using Volo.Abp.AspNetCore.Components.Web.LeptonXLiteTheme.Themes.LeptonXLite; using Volo.Abp.AspNetCore.Components.Web.Theming.Routing; +using Volo.Abp.AspNetCore.Components.WebAssembly.LeptonXLiteTheme; using Volo.Abp.Autofac.WebAssembly; using Volo.Abp.AutoMapper; -using Volo.Abp.Modularity; -using Volo.Abp.UI.Navigation; using Volo.Abp.Identity.Blazor.WebAssembly; -using Volo.Abp.Security.Claims; +using Volo.Abp.Modularity; using Volo.Abp.SettingManagement.Blazor.WebAssembly; using Volo.Abp.TenantManagement.Blazor.WebAssembly; +using Volo.Abp.UI.Navigation; -namespace MyCompanyName.MyProjectName.Blazor; +namespace MyCompanyName.MyProjectName.Blazor.Client; [DependsOn( typeof(AbpAutofacWebAssemblyModule), @@ -29,7 +27,7 @@ namespace MyCompanyName.MyProjectName.Blazor; typeof(AbpTenantManagementBlazorWebAssemblyModule), typeof(AbpSettingManagementBlazorWebAssemblyModule) )] -public class MyProjectNameBlazorModule : AbpModule +public class MyProjectNameBlazorClientModule : AbpModule { public override void ConfigureServices(ServiceConfigurationContext context) { @@ -40,7 +38,6 @@ public class MyProjectNameBlazorModule : AbpModule ConfigureHttpClient(context, environment); ConfigureBlazorise(context); ConfigureRouter(context); - ConfigureUI(builder); ConfigureMenu(context); ConfigureAutoMapper(context); } @@ -49,7 +46,7 @@ public class MyProjectNameBlazorModule : AbpModule { Configure(options => { - options.AppAssembly = typeof(MyProjectNameBlazorModule).Assembly; + options.AppAssembly = typeof(MyProjectNameBlazorClientModule).Assembly; }); } @@ -83,12 +80,6 @@ public class MyProjectNameBlazorModule : AbpModule }); } - private static void ConfigureUI(WebAssemblyHostBuilder builder) - { - builder.RootComponents.Add("#ApplicationContainer"); - - } - private static void ConfigureHttpClient(ServiceConfigurationContext context, IWebAssemblyHostEnvironment environment) { context.Services.AddTransient(sp => new HttpClient @@ -101,7 +92,7 @@ public class MyProjectNameBlazorModule : AbpModule { Configure(options => { - options.AddMaps(); + options.AddMaps(); }); } } diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyProjectNameBrandingProvider.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/MyProjectNameBrandingProvider.cs similarity index 81% rename from templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyProjectNameBrandingProvider.cs rename to templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/MyProjectNameBrandingProvider.cs index cb2a796562..3773a9b7e1 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyProjectNameBrandingProvider.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/MyProjectNameBrandingProvider.cs @@ -1,7 +1,7 @@ using Volo.Abp.DependencyInjection; using Volo.Abp.Ui.Branding; -namespace MyCompanyName.MyProjectName.Blazor; +namespace MyCompanyName.MyProjectName.Blazor.Client; [Dependency(ReplaceServices = true)] public class MyProjectNameBrandingProvider : DefaultBrandingProvider diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyProjectNameBundleContributor.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/MyProjectNameBundleContributor.cs similarity index 88% rename from templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyProjectNameBundleContributor.cs rename to templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/MyProjectNameBundleContributor.cs index e1db0aa325..8ed6208237 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyProjectNameBundleContributor.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/MyProjectNameBundleContributor.cs @@ -1,6 +1,6 @@ using Volo.Abp.Bundling; -namespace MyCompanyName.MyProjectName.Blazor; +namespace MyCompanyName.MyProjectName.Blazor.Client; /* Add your global styles/scripts here. * See https://docs.abp.io/en/abp/latest/UI/Blazor/Global-Scripts-Styles to learn how to use it diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyProjectNameComponentBase.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/MyProjectNameComponentBase.cs similarity index 84% rename from templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyProjectNameComponentBase.cs rename to templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/MyProjectNameComponentBase.cs index 918030409d..b17830aeb2 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyProjectNameComponentBase.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/MyProjectNameComponentBase.cs @@ -1,7 +1,7 @@ using MyCompanyName.MyProjectName.Localization; using Volo.Abp.AspNetCore.Components; -namespace MyCompanyName.MyProjectName.Blazor; +namespace MyCompanyName.MyProjectName.Blazor.Client; public abstract class MyProjectNameComponentBase : AbpComponentBase { diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Pages/Index.razor b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/Pages/Index.razor similarity index 99% rename from templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Pages/Index.razor rename to templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/Pages/Index.razor index 3cd56e9cac..fe84321fb7 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Pages/Index.razor +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/Pages/Index.razor @@ -1,7 +1,6 @@ @page "/" @using Volo.Abp.MultiTenancy @inherits MyProjectNameComponentBase -@inject AuthenticationStateProvider AuthenticationStateProvider
diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/Pages/Index.razor.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/Pages/Index.razor.cs new file mode 100644 index 0000000000..22b4a10084 --- /dev/null +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/Pages/Index.razor.cs @@ -0,0 +1,6 @@ +namespace MyCompanyName.MyProjectName.Blazor.Client.Pages; + +public partial class Index +{ + +} diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/Pages/Index.razor.css b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/Pages/Index.razor.css similarity index 100% rename from templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/Pages/Index.razor.css rename to templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/Pages/Index.razor.css diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/Program.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/Program.cs new file mode 100644 index 0000000000..9d13a03d43 --- /dev/null +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/Program.cs @@ -0,0 +1,22 @@ +using System.Threading.Tasks; +using Microsoft.AspNetCore.Components.WebAssembly.Hosting; + +namespace MyCompanyName.MyProjectName.Blazor.Client; + +public class Program +{ + public async static Task Main(string[] args) + { + var builder = WebAssemblyHostBuilder.CreateDefault(args); + var application = await builder.AddApplicationAsync(options => + { + options.UseAutofac(); + }); + + var host = builder.Build(); + + await application.InitializeApplicationAsync(host.Services); + + await host.RunAsync(); + } +} diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/Routes.razor b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/Routes.razor new file mode 100644 index 0000000000..518ab7c055 --- /dev/null +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/Routes.razor @@ -0,0 +1,12 @@ +@using Volo.Abp.AspNetCore.Components.Web.LeptonXLiteTheme.Themes.LeptonXLite +@using Volo.Abp.AspNetCore.Components.WebAssembly.WebApp + + + + + + + + + + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/_Imports.razor b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/_Imports.razor new file mode 100644 index 0000000000..d83d7089ef --- /dev/null +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/_Imports.razor @@ -0,0 +1,15 @@ +@using System.Net.Http +@using Microsoft.AspNetCore.Authorization +@using Microsoft.AspNetCore.Components.Authorization +@using Microsoft.AspNetCore.Components.Forms +@using Microsoft.AspNetCore.Components.Routing +@using Microsoft.AspNetCore.Components.Web +@using Microsoft.AspNetCore.Components.WebAssembly.Http +@using static Microsoft.AspNetCore.Components.Web.RenderMode +@using Microsoft.JSInterop +@using Volo.Abp.AspNetCore.Components.Web +@using MyCompanyName.MyProjectName.Blazor +@using Blazorise +@using Blazorise.DataGrid +@using Volo.Abp.BlazoriseUI +@using Volo.Abp.BlazoriseUI.Components diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/wwwroot/appsettings.Development.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/wwwroot/appsettings.Development.json similarity index 100% rename from templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/wwwroot/appsettings.Development.json rename to templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/wwwroot/appsettings.Development.json diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/wwwroot/appsettings.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/wwwroot/appsettings.json similarity index 87% rename from templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/wwwroot/appsettings.json rename to templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/wwwroot/appsettings.json index 4349de1480..b9158bbaaa 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/wwwroot/appsettings.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/wwwroot/appsettings.json @@ -1,7 +1,4 @@ { - "App": { - "SelfUrl": "https://localhost:44307" - }, "AuthServer": { "Authority": "https://localhost:44305", "ClientId": "MyProjectName_Blazor", @@ -16,6 +13,7 @@ "Bundle": { "Mode": "BundleAndMinify", /* Options: None, Bundle, BundleAndMinify */ "Name": "global", + "IsBlazorWebApp": true, "Parameters": { } diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/wwwroot/favicon.ico b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/wwwroot/favicon.ico similarity index 100% rename from templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/wwwroot/favicon.ico rename to templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/wwwroot/favicon.ico diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/wwwroot/global.css b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/wwwroot/global.css similarity index 99% rename from templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/wwwroot/global.css rename to templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/wwwroot/global.css index 82eb40e2b8..07b224c740 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/wwwroot/global.css +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/wwwroot/global.css @@ -1,28 +1,28 @@ -@charset "UTF-8";/*! - * Bootstrap v5.1.0 (https://getbootstrap.com/) - * Copyright 2011-2021 The Bootstrap Authors - * Copyright 2011-2021 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) - */:root{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#d63384;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-white:#fff;--bs-gray:#6c757d;--bs-gray-dark:#343a40;--bs-gray-100:#f8f9fa;--bs-gray-200:#e9ecef;--bs-gray-300:#dee2e6;--bs-gray-400:#ced4da;--bs-gray-500:#adb5bd;--bs-gray-600:#6c757d;--bs-gray-700:#495057;--bs-gray-800:#343a40;--bs-gray-900:#212529;--bs-primary:#0d6efd;--bs-secondary:#6c757d;--bs-success:#198754;--bs-info:#0dcaf0;--bs-warning:#ffc107;--bs-danger:#dc3545;--bs-light:#f8f9fa;--bs-dark:#212529;--bs-primary-rgb:13,110,253;--bs-secondary-rgb:108,117,125;--bs-success-rgb:25,135,84;--bs-info-rgb:13,202,240;--bs-warning-rgb:255,193,7;--bs-danger-rgb:220,53,69;--bs-light-rgb:248,249,250;--bs-dark-rgb:33,37,41;--bs-white-rgb:255,255,255;--bs-black-rgb:0,0,0;--bs-body-rgb:33,37,41;--bs-font-sans-serif:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--bs-font-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--bs-gradient:linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));--bs-body-font-family:var(--bs-font-sans-serif);--bs-body-font-size:1rem;--bs-body-font-weight:400;--bs-body-line-height:1.5;--bs-body-color:#212529;--bs-body-bg:#fff}*,::after,::before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-body-color);text-align:var(--bs-body-text-align);background-color:var(--bs-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}hr{margin:1rem 0;color:inherit;background-color:currentColor;border:0;opacity:.25}hr:not([size]){height:1px}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width:1200px){.h1,h1{font-size:2.5rem}}.h2,h2{font-size:calc(1.325rem + .9vw)}@media (min-width:1200px){.h2,h2{font-size:2rem}}.h3,h3{font-size:calc(1.3rem + .6vw)}@media (min-width:1200px){.h3,h3{font-size:1.75rem}}.h4,h4{font-size:calc(1.275rem + .3vw)}@media (min-width:1200px){.h4,h4{font-size:1.5rem}}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[data-bs-original-title],abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}.small,small{font-size:.875em}.mark,mark{padding:.2em;background-color:#fcf8e3}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#0d6efd;text-decoration:underline}a:hover{color:#0a58ca}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:var(--bs-font-monospace);font-size:1em;direction:ltr;unicode-bidi:bidi-override}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:#d63384;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:.875em;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:1em;font-weight:700}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:#6c757d;text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]::-webkit-calendar-picker-indicator{display:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:calc(1.625rem + 4.5vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-1{font-size:5rem}}.display-2{font-size:calc(1.575rem + 3.9vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-2{font-size:4.5rem}}.display-3{font-size:calc(1.525rem + 3.3vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-3{font-size:4rem}}.display-4{font-size:calc(1.475rem + 2.7vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-4{font-size:3.5rem}}.display-5{font-size:calc(1.425rem + 2.1vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-5{font-size:3rem}}.display-6{font-size:calc(1.375rem + 1.5vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-6{font-size:2.5rem}}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:.875em;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:.875em;color:#6c757d}.blockquote-footer::before{content:"— "}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:.875em;color:#6c757d}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{width:100%;padding-right:var(--bs-gutter-x,.75rem);padding-left:var(--bs-gutter-x,.75rem);margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}@media (min-width:1400px){.container,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{max-width:1320px}}.row{--bs-gutter-x:1.5rem;--bs-gutter-y:0;display:flex;flex-wrap:wrap;margin-top:calc(var(--bs-gutter-y) * -1);margin-right:calc(var(--bs-gutter-x) * -.5);margin-left:calc(var(--bs-gutter-x) * -.5)}.row>*{flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-top:var(--bs-gutter-y)}.col{flex:1 0 0%}.row-cols-auto>*{flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-4>*{flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;width:16.6666666667%}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.33333333%}.col-2{flex:0 0 auto;width:16.66666667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.33333333%}.col-5{flex:0 0 auto;width:41.66666667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.33333333%}.col-8{flex:0 0 auto;width:66.66666667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.33333333%}.col-11{flex:0 0 auto;width:91.66666667%}.col-12{flex:0 0 auto;width:100%}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}.g-0,.gx-0{--bs-gutter-x:0}.g-0,.gy-0{--bs-gutter-y:0}.g-1,.gx-1{--bs-gutter-x:0.25rem}.g-1,.gy-1{--bs-gutter-y:0.25rem}.g-2,.gx-2{--bs-gutter-x:0.5rem}.g-2,.gy-2{--bs-gutter-y:0.5rem}.g-3,.gx-3{--bs-gutter-x:1rem}.g-3,.gy-3{--bs-gutter-y:1rem}.g-4,.gx-4{--bs-gutter-x:1.5rem}.g-4,.gy-4{--bs-gutter-y:1.5rem}.g-5,.gx-5{--bs-gutter-x:3rem}.g-5,.gy-5{--bs-gutter-y:3rem}@media (min-width:576px){.col-sm{flex:1 0 0%}.row-cols-sm-auto>*{flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-sm-4>*{flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;width:16.6666666667%}.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.33333333%}.col-sm-2{flex:0 0 auto;width:16.66666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.33333333%}.col-sm-5{flex:0 0 auto;width:41.66666667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.33333333%}.col-sm-8{flex:0 0 auto;width:66.66666667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.33333333%}.col-sm-11{flex:0 0 auto;width:91.66666667%}.col-sm-12{flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}.g-sm-0,.gx-sm-0{--bs-gutter-x:0}.g-sm-0,.gy-sm-0{--bs-gutter-y:0}.g-sm-1,.gx-sm-1{--bs-gutter-x:0.25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y:0.25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x:0.5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y:0.5rem}.g-sm-3,.gx-sm-3{--bs-gutter-x:1rem}.g-sm-3,.gy-sm-3{--bs-gutter-y:1rem}.g-sm-4,.gx-sm-4{--bs-gutter-x:1.5rem}.g-sm-4,.gy-sm-4{--bs-gutter-y:1.5rem}.g-sm-5,.gx-sm-5{--bs-gutter-x:3rem}.g-sm-5,.gy-sm-5{--bs-gutter-y:3rem}}@media (min-width:768px){.col-md{flex:1 0 0%}.row-cols-md-auto>*{flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-md-4>*{flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;width:16.6666666667%}.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.33333333%}.col-md-2{flex:0 0 auto;width:16.66666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.33333333%}.col-md-5{flex:0 0 auto;width:41.66666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.33333333%}.col-md-8{flex:0 0 auto;width:66.66666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.33333333%}.col-md-11{flex:0 0 auto;width:91.66666667%}.col-md-12{flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}.g-md-0,.gx-md-0{--bs-gutter-x:0}.g-md-0,.gy-md-0{--bs-gutter-y:0}.g-md-1,.gx-md-1{--bs-gutter-x:0.25rem}.g-md-1,.gy-md-1{--bs-gutter-y:0.25rem}.g-md-2,.gx-md-2{--bs-gutter-x:0.5rem}.g-md-2,.gy-md-2{--bs-gutter-y:0.5rem}.g-md-3,.gx-md-3{--bs-gutter-x:1rem}.g-md-3,.gy-md-3{--bs-gutter-y:1rem}.g-md-4,.gx-md-4{--bs-gutter-x:1.5rem}.g-md-4,.gy-md-4{--bs-gutter-y:1.5rem}.g-md-5,.gx-md-5{--bs-gutter-x:3rem}.g-md-5,.gy-md-5{--bs-gutter-y:3rem}}@media (min-width:992px){.col-lg{flex:1 0 0%}.row-cols-lg-auto>*{flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-lg-4>*{flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;width:16.6666666667%}.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.33333333%}.col-lg-2{flex:0 0 auto;width:16.66666667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.33333333%}.col-lg-5{flex:0 0 auto;width:41.66666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.33333333%}.col-lg-8{flex:0 0 auto;width:66.66666667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.33333333%}.col-lg-11{flex:0 0 auto;width:91.66666667%}.col-lg-12{flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}.g-lg-0,.gx-lg-0{--bs-gutter-x:0}.g-lg-0,.gy-lg-0{--bs-gutter-y:0}.g-lg-1,.gx-lg-1{--bs-gutter-x:0.25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y:0.25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x:0.5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y:0.5rem}.g-lg-3,.gx-lg-3{--bs-gutter-x:1rem}.g-lg-3,.gy-lg-3{--bs-gutter-y:1rem}.g-lg-4,.gx-lg-4{--bs-gutter-x:1.5rem}.g-lg-4,.gy-lg-4{--bs-gutter-y:1.5rem}.g-lg-5,.gx-lg-5{--bs-gutter-x:3rem}.g-lg-5,.gy-lg-5{--bs-gutter-y:3rem}}@media (min-width:1200px){.col-xl{flex:1 0 0%}.row-cols-xl-auto>*{flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-xl-4>*{flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;width:16.6666666667%}.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.33333333%}.col-xl-2{flex:0 0 auto;width:16.66666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.33333333%}.col-xl-5{flex:0 0 auto;width:41.66666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.33333333%}.col-xl-8{flex:0 0 auto;width:66.66666667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.33333333%}.col-xl-11{flex:0 0 auto;width:91.66666667%}.col-xl-12{flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}.g-xl-0,.gx-xl-0{--bs-gutter-x:0}.g-xl-0,.gy-xl-0{--bs-gutter-y:0}.g-xl-1,.gx-xl-1{--bs-gutter-x:0.25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y:0.25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x:0.5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y:0.5rem}.g-xl-3,.gx-xl-3{--bs-gutter-x:1rem}.g-xl-3,.gy-xl-3{--bs-gutter-y:1rem}.g-xl-4,.gx-xl-4{--bs-gutter-x:1.5rem}.g-xl-4,.gy-xl-4{--bs-gutter-y:1.5rem}.g-xl-5,.gx-xl-5{--bs-gutter-x:3rem}.g-xl-5,.gy-xl-5{--bs-gutter-y:3rem}}@media (min-width:1400px){.col-xxl{flex:1 0 0%}.row-cols-xxl-auto>*{flex:0 0 auto;width:auto}.row-cols-xxl-1>*{flex:0 0 auto;width:100%}.row-cols-xxl-2>*{flex:0 0 auto;width:50%}.row-cols-xxl-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-xxl-4>*{flex:0 0 auto;width:25%}.row-cols-xxl-5>*{flex:0 0 auto;width:20%}.row-cols-xxl-6>*{flex:0 0 auto;width:16.6666666667%}.col-xxl-auto{flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;width:8.33333333%}.col-xxl-2{flex:0 0 auto;width:16.66666667%}.col-xxl-3{flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;width:33.33333333%}.col-xxl-5{flex:0 0 auto;width:41.66666667%}.col-xxl-6{flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;width:58.33333333%}.col-xxl-8{flex:0 0 auto;width:66.66666667%}.col-xxl-9{flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;width:83.33333333%}.col-xxl-11{flex:0 0 auto;width:91.66666667%}.col-xxl-12{flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.33333333%}.offset-xxl-2{margin-left:16.66666667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.33333333%}.offset-xxl-5{margin-left:41.66666667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.33333333%}.offset-xxl-8{margin-left:66.66666667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.33333333%}.offset-xxl-11{margin-left:91.66666667%}.g-xxl-0,.gx-xxl-0{--bs-gutter-x:0}.g-xxl-0,.gy-xxl-0{--bs-gutter-y:0}.g-xxl-1,.gx-xxl-1{--bs-gutter-x:0.25rem}.g-xxl-1,.gy-xxl-1{--bs-gutter-y:0.25rem}.g-xxl-2,.gx-xxl-2{--bs-gutter-x:0.5rem}.g-xxl-2,.gy-xxl-2{--bs-gutter-y:0.5rem}.g-xxl-3,.gx-xxl-3{--bs-gutter-x:1rem}.g-xxl-3,.gy-xxl-3{--bs-gutter-y:1rem}.g-xxl-4,.gx-xxl-4{--bs-gutter-x:1.5rem}.g-xxl-4,.gy-xxl-4{--bs-gutter-y:1.5rem}.g-xxl-5,.gx-xxl-5{--bs-gutter-x:3rem}.g-xxl-5,.gy-xxl-5{--bs-gutter-y:3rem}}.table{--bs-table-bg:transparent;--bs-table-accent-bg:transparent;--bs-table-striped-color:#212529;--bs-table-striped-bg:rgba(0, 0, 0, 0.05);--bs-table-active-color:#212529;--bs-table-active-bg:rgba(0, 0, 0, 0.1);--bs-table-hover-color:#212529;--bs-table-hover-bg:rgba(0, 0, 0, 0.075);width:100%;margin-bottom:1rem;color:#212529;vertical-align:top;border-color:#dee2e6}.table>:not(caption)>*>*{padding:.5rem .5rem;background-color:var(--bs-table-bg);border-bottom-width:1px;box-shadow:inset 0 0 0 9999px var(--bs-table-accent-bg)}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table>:not(:last-child)>:last-child>*{border-bottom-color:currentColor}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem .25rem}.table-bordered>:not(caption)>*{border-width:1px 0}.table-bordered>:not(caption)>*>*{border-width:0 1px}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-striped>tbody>tr:nth-of-type(odd){--bs-table-accent-bg:var(--bs-table-striped-bg);color:var(--bs-table-striped-color)}.table-active{--bs-table-accent-bg:var(--bs-table-active-bg);color:var(--bs-table-active-color)}.table-hover>tbody>tr:hover{--bs-table-accent-bg:var(--bs-table-hover-bg);color:var(--bs-table-hover-color)}.table-primary{--bs-table-bg:#cfe2ff;--bs-table-striped-bg:#c5d7f2;--bs-table-striped-color:#000;--bs-table-active-bg:#bacbe6;--bs-table-active-color:#000;--bs-table-hover-bg:#bfd1ec;--bs-table-hover-color:#000;color:#000;border-color:#bacbe6}.table-secondary{--bs-table-bg:#e2e3e5;--bs-table-striped-bg:#d7d8da;--bs-table-striped-color:#000;--bs-table-active-bg:#cbccce;--bs-table-active-color:#000;--bs-table-hover-bg:#d1d2d4;--bs-table-hover-color:#000;color:#000;border-color:#cbccce}.table-success{--bs-table-bg:#d1e7dd;--bs-table-striped-bg:#c7dbd2;--bs-table-striped-color:#000;--bs-table-active-bg:#bcd0c7;--bs-table-active-color:#000;--bs-table-hover-bg:#c1d6cc;--bs-table-hover-color:#000;color:#000;border-color:#bcd0c7}.table-info{--bs-table-bg:#cff4fc;--bs-table-striped-bg:#c5e8ef;--bs-table-striped-color:#000;--bs-table-active-bg:#badce3;--bs-table-active-color:#000;--bs-table-hover-bg:#bfe2e9;--bs-table-hover-color:#000;color:#000;border-color:#badce3}.table-warning{--bs-table-bg:#fff3cd;--bs-table-striped-bg:#f2e7c3;--bs-table-striped-color:#000;--bs-table-active-bg:#e6dbb9;--bs-table-active-color:#000;--bs-table-hover-bg:#ece1be;--bs-table-hover-color:#000;color:#000;border-color:#e6dbb9}.table-danger{--bs-table-bg:#f8d7da;--bs-table-striped-bg:#eccccf;--bs-table-striped-color:#000;--bs-table-active-bg:#dfc2c4;--bs-table-active-color:#000;--bs-table-hover-bg:#e5c7ca;--bs-table-hover-color:#000;color:#000;border-color:#dfc2c4}.table-light{--bs-table-bg:#f8f9fa;--bs-table-striped-bg:#ecedee;--bs-table-striped-color:#000;--bs-table-active-bg:#dfe0e1;--bs-table-active-color:#000;--bs-table-hover-bg:#e5e6e7;--bs-table-hover-color:#000;color:#000;border-color:#dfe0e1}.table-dark{--bs-table-bg:#212529;--bs-table-striped-bg:#2c3034;--bs-table-striped-color:#fff;--bs-table-active-bg:#373b3e;--bs-table-active-color:#fff;--bs-table-hover-bg:#323539;--bs-table-hover-color:#fff;color:#fff;border-color:#373b3e}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width:575.98px){.table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:767.98px){.table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:991.98px){.table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1199.98px){.table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1399.98px){.table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}.form-label{margin-bottom:.5rem}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem}.form-text{margin-top:.25rem;font-size:.875em;color:#6c757d}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{color:#212529;background-color:#fff;border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-control::-webkit-date-and-time-value{height:1.5em}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}.form-control::file-selector-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:#212529;background-color:#e9ecef;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:#dde0e3}.form-control::-webkit-file-upload-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:#212529;background-color:#e9ecef;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control::-webkit-file-upload-button{-webkit-transition:none;transition:none}}.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:#dde0e3}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;border-radius:.2rem}.form-control-sm::file-selector-button{padding:.25rem .5rem;margin:-.25rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-sm::-webkit-file-upload-button{padding:.25rem .5rem;margin:-.25rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}.form-control-lg::-webkit-file-upload-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.5em + .75rem + 2px)}textarea.form-control-sm{min-height:calc(1.5em + .5rem + 2px)}textarea.form-control-lg{min-height:calc(1.5em + 1rem + 2px)}.form-control-color{width:3rem;height:auto;padding:.375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{height:1.5em;border-radius:.25rem}.form-control-color::-webkit-color-swatch{height:1.5em;border-radius:.25rem}.form-select{display:block;width:100%;padding:.375rem 2.25rem .375rem .75rem;-moz-padding-start:calc(0.75rem - 3px);font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fff;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-select{transition:none}}.form-select:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:.75rem;background-image:none}.form-select:disabled{background-color:#e9ecef}.form-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #212529}.form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.form-check{display:block;min-height:1.5rem;padding-left:1.5em;margin-bottom:.125rem}.form-check .form-check-input{float:left;margin-left:-1.5em}.form-check-input{width:1em;height:1em;margin-top:.25em;vertical-align:top;background-color:#fff;background-repeat:no-repeat;background-position:center;background-size:contain;border:1px solid rgba(0,0,0,.25);-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-print-color-adjust:exact;color-adjust:exact}.form-check-input[type=checkbox]{border-radius:.25em}.form-check-input[type=radio]{border-radius:50%}.form-check-input:active{filter:brightness(90%)}.form-check-input:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-check-input:checked{background-color:#0d6efd;border-color:#0d6efd}.form-check-input:checked[type=checkbox]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10l3 3l6-6'/%3e%3c/svg%3e")}.form-check-input:checked[type=radio]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e")}.form-check-input[type=checkbox]:indeterminate{background-color:#0d6efd;border-color:#0d6efd;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled{pointer-events:none;filter:none;opacity:.5}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{opacity:.5}.form-switch{padding-left:2.5em}.form-switch .form-check-input{width:2em;margin-left:-2.5em;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e");background-position:left center;border-radius:2em;transition:background-position .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2386b7fe'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:right center;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.form-check-inline{display:inline-block;margin-right:1rem}.btn-check{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.btn-check:disabled+.btn,.btn-check[disabled]+.btn{pointer-events:none;filter:none;opacity:.65}.form-range{width:100%;height:1.5rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(13,110,253,.25)}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(13,110,253,.25)}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#0d6efd;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#b6d4fe}.form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.form-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#0d6efd;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-range::-moz-range-thumb{-moz-transition:none;transition:none}}.form-range::-moz-range-thumb:active{background-color:#b6d4fe}.form-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.form-range:disabled::-moz-range-thumb{background-color:#adb5bd}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-select{height:calc(3.5rem + 2px);line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;height:100%;padding:1rem .75rem;pointer-events:none;border:1px solid transparent;transform-origin:0 0;transition:opacity .1s ease-in-out,transform .1s ease-in-out}@media (prefers-reduced-motion:reduce){.form-floating>label{transition:none}}.form-floating>.form-control{padding:1rem .75rem}.form-floating>.form-control::-moz-placeholder{color:transparent}.form-floating>.form-control::placeholder{color:transparent}.form-floating>.form-control:not(:-moz-placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:not(:-moz-placeholder-shown)~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-select~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control:-webkit-autofill~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-select{position:relative;flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-select:focus{z-index:3}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:3}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-lg>.btn,.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.input-group-sm>.btn,.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text{padding:.25rem .5rem;font-size:.875rem;border-radius:.2rem}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:3rem}.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu){border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4),.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:#198754}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:rgba(25,135,84,.9);border-radius:.25rem}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#198754;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#198754;box-shadow:0 0 0 .25rem rgba(25,135,84,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.form-select.is-valid,.was-validated .form-select:valid{border-color:#198754}.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"],.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size="1"]{padding-right:4.125rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.form-select.is-valid:focus,.was-validated .form-select:valid:focus{border-color:#198754;box-shadow:0 0 0 .25rem rgba(25,135,84,.25)}.form-check-input.is-valid,.was-validated .form-check-input:valid{border-color:#198754}.form-check-input.is-valid:checked,.was-validated .form-check-input:valid:checked{background-color:#198754}.form-check-input.is-valid:focus,.was-validated .form-check-input:valid:focus{box-shadow:0 0 0 .25rem rgba(25,135,84,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#198754}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.input-group .form-control.is-valid,.input-group .form-select.is-valid,.was-validated .input-group .form-control:valid,.was-validated .input-group .form-select:valid{z-index:1}.input-group .form-control.is-valid:focus,.input-group .form-select.is-valid:focus,.was-validated .input-group .form-control:valid:focus,.was-validated .input-group .form-select:valid:focus{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .25rem rgba(220,53,69,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.form-select.is-invalid,.was-validated .form-select:invalid{border-color:#dc3545}.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size="1"],.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size="1"]{padding-right:4.125rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.form-select.is-invalid:focus,.was-validated .form-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .25rem rgba(220,53,69,.25)}.form-check-input.is-invalid,.was-validated .form-check-input:invalid{border-color:#dc3545}.form-check-input.is-invalid:checked,.was-validated .form-check-input:invalid:checked{background-color:#dc3545}.form-check-input.is-invalid:focus,.was-validated .form-check-input:invalid:focus{box-shadow:0 0 0 .25rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.input-group .form-control.is-invalid,.input-group .form-select.is-invalid,.was-validated .input-group .form-control:invalid,.was-validated .input-group .form-select:invalid{z-index:2}.input-group .form-control.is-invalid:focus,.input-group .form-select.is-invalid:focus,.was-validated .input-group .form-control:invalid:focus,.was-validated .input-group .form-select:invalid:focus{z-index:3}.btn{display:inline-block;font-weight:400;line-height:1.5;color:#212529;text-align:center;text-decoration:none;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#212529}.btn-check:focus+.btn,.btn:focus{outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.btn.disabled,.btn:disabled,fieldset:disabled .btn{pointer-events:none;opacity:.65}.btn-primary{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-primary:hover{color:#fff;background-color:#0b5ed7;border-color:#0a58ca}.btn-check:focus+.btn-primary,.btn-primary:focus{color:#fff;background-color:#0b5ed7;border-color:#0a58ca;box-shadow:0 0 0 .25rem rgba(49,132,253,.5)}.btn-check:active+.btn-primary,.btn-check:checked+.btn-primary,.btn-primary.active,.btn-primary:active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0a58ca;border-color:#0a53be}.btn-check:active+.btn-primary:focus,.btn-check:checked+.btn-primary:focus,.btn-primary.active:focus,.btn-primary:active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(49,132,253,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:hover{color:#fff;background-color:#5c636a;border-color:#565e64}.btn-check:focus+.btn-secondary,.btn-secondary:focus{color:#fff;background-color:#5c636a;border-color:#565e64;box-shadow:0 0 0 .25rem rgba(130,138,145,.5)}.btn-check:active+.btn-secondary,.btn-check:checked+.btn-secondary,.btn-secondary.active,.btn-secondary:active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#565e64;border-color:#51585e}.btn-check:active+.btn-secondary:focus,.btn-check:checked+.btn-secondary:focus,.btn-secondary.active:focus,.btn-secondary:active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-success{color:#fff;background-color:#198754;border-color:#198754}.btn-success:hover{color:#fff;background-color:#157347;border-color:#146c43}.btn-check:focus+.btn-success,.btn-success:focus{color:#fff;background-color:#157347;border-color:#146c43;box-shadow:0 0 0 .25rem rgba(60,153,110,.5)}.btn-check:active+.btn-success,.btn-check:checked+.btn-success,.btn-success.active,.btn-success:active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#146c43;border-color:#13653f}.btn-check:active+.btn-success:focus,.btn-check:checked+.btn-success:focus,.btn-success.active:focus,.btn-success:active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(60,153,110,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#198754;border-color:#198754}.btn-info{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-info:hover{color:#000;background-color:#31d2f2;border-color:#25cff2}.btn-check:focus+.btn-info,.btn-info:focus{color:#000;background-color:#31d2f2;border-color:#25cff2;box-shadow:0 0 0 .25rem rgba(11,172,204,.5)}.btn-check:active+.btn-info,.btn-check:checked+.btn-info,.btn-info.active,.btn-info:active,.show>.btn-info.dropdown-toggle{color:#000;background-color:#3dd5f3;border-color:#25cff2}.btn-check:active+.btn-info:focus,.btn-check:checked+.btn-info:focus,.btn-info.active:focus,.btn-info:active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(11,172,204,.5)}.btn-info.disabled,.btn-info:disabled{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-warning{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#000;background-color:#ffca2c;border-color:#ffc720}.btn-check:focus+.btn-warning,.btn-warning:focus{color:#000;background-color:#ffca2c;border-color:#ffc720;box-shadow:0 0 0 .25rem rgba(217,164,6,.5)}.btn-check:active+.btn-warning,.btn-check:checked+.btn-warning,.btn-warning.active,.btn-warning:active,.show>.btn-warning.dropdown-toggle{color:#000;background-color:#ffcd39;border-color:#ffc720}.btn-check:active+.btn-warning:focus,.btn-check:checked+.btn-warning:focus,.btn-warning.active:focus,.btn-warning:active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(217,164,6,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:hover{color:#fff;background-color:#bb2d3b;border-color:#b02a37}.btn-check:focus+.btn-danger,.btn-danger:focus{color:#fff;background-color:#bb2d3b;border-color:#b02a37;box-shadow:0 0 0 .25rem rgba(225,83,97,.5)}.btn-check:active+.btn-danger,.btn-check:checked+.btn-danger,.btn-danger.active,.btn-danger:active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#b02a37;border-color:#a52834}.btn-check:active+.btn-danger:focus,.btn-check:checked+.btn-danger:focus,.btn-danger.active:focus,.btn-danger:active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-light{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#000;background-color:#f9fafb;border-color:#f9fafb}.btn-check:focus+.btn-light,.btn-light:focus{color:#000;background-color:#f9fafb;border-color:#f9fafb;box-shadow:0 0 0 .25rem rgba(211,212,213,.5)}.btn-check:active+.btn-light,.btn-check:checked+.btn-light,.btn-light.active,.btn-light:active,.show>.btn-light.dropdown-toggle{color:#000;background-color:#f9fafb;border-color:#f9fafb}.btn-check:active+.btn-light:focus,.btn-check:checked+.btn-light:focus,.btn-light.active:focus,.btn-light:active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(211,212,213,.5)}.btn-light.disabled,.btn-light:disabled{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-dark{color:#fff;background-color:#212529;border-color:#212529}.btn-dark:hover{color:#fff;background-color:#1c1f23;border-color:#1a1e21}.btn-check:focus+.btn-dark,.btn-dark:focus{color:#fff;background-color:#1c1f23;border-color:#1a1e21;box-shadow:0 0 0 .25rem rgba(66,70,73,.5)}.btn-check:active+.btn-dark,.btn-check:checked+.btn-dark,.btn-dark.active,.btn-dark:active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1a1e21;border-color:#191c1f}.btn-check:active+.btn-dark:focus,.btn-check:checked+.btn-dark:focus,.btn-dark.active:focus,.btn-dark:active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(66,70,73,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#212529;border-color:#212529}.btn-outline-primary{color:#0d6efd;border-color:#0d6efd}.btn-outline-primary:hover{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-check:focus+.btn-outline-primary,.btn-outline-primary:focus{box-shadow:0 0 0 .25rem rgba(13,110,253,.5)}.btn-check:active+.btn-outline-primary,.btn-check:checked+.btn-outline-primary,.btn-outline-primary.active,.btn-outline-primary.dropdown-toggle.show,.btn-outline-primary:active{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-check:active+.btn-outline-primary:focus,.btn-check:checked+.btn-outline-primary:focus,.btn-outline-primary.active:focus,.btn-outline-primary.dropdown-toggle.show:focus,.btn-outline-primary:active:focus{box-shadow:0 0 0 .25rem rgba(13,110,253,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#0d6efd;background-color:transparent}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-check:focus+.btn-outline-secondary,.btn-outline-secondary:focus{box-shadow:0 0 0 .25rem rgba(108,117,125,.5)}.btn-check:active+.btn-outline-secondary,.btn-check:checked+.btn-outline-secondary,.btn-outline-secondary.active,.btn-outline-secondary.dropdown-toggle.show,.btn-outline-secondary:active{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-check:active+.btn-outline-secondary:focus,.btn-check:checked+.btn-outline-secondary:focus,.btn-outline-secondary.active:focus,.btn-outline-secondary.dropdown-toggle.show:focus,.btn-outline-secondary:active:focus{box-shadow:0 0 0 .25rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-success{color:#198754;border-color:#198754}.btn-outline-success:hover{color:#fff;background-color:#198754;border-color:#198754}.btn-check:focus+.btn-outline-success,.btn-outline-success:focus{box-shadow:0 0 0 .25rem rgba(25,135,84,.5)}.btn-check:active+.btn-outline-success,.btn-check:checked+.btn-outline-success,.btn-outline-success.active,.btn-outline-success.dropdown-toggle.show,.btn-outline-success:active{color:#fff;background-color:#198754;border-color:#198754}.btn-check:active+.btn-outline-success:focus,.btn-check:checked+.btn-outline-success:focus,.btn-outline-success.active:focus,.btn-outline-success.dropdown-toggle.show:focus,.btn-outline-success:active:focus{box-shadow:0 0 0 .25rem rgba(25,135,84,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#198754;background-color:transparent}.btn-outline-info{color:#0dcaf0;border-color:#0dcaf0}.btn-outline-info:hover{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-check:focus+.btn-outline-info,.btn-outline-info:focus{box-shadow:0 0 0 .25rem rgba(13,202,240,.5)}.btn-check:active+.btn-outline-info,.btn-check:checked+.btn-outline-info,.btn-outline-info.active,.btn-outline-info.dropdown-toggle.show,.btn-outline-info:active{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-check:active+.btn-outline-info:focus,.btn-check:checked+.btn-outline-info:focus,.btn-outline-info.active:focus,.btn-outline-info.dropdown-toggle.show:focus,.btn-outline-info:active:focus{box-shadow:0 0 0 .25rem rgba(13,202,240,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#0dcaf0;background-color:transparent}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-check:focus+.btn-outline-warning,.btn-outline-warning:focus{box-shadow:0 0 0 .25rem rgba(255,193,7,.5)}.btn-check:active+.btn-outline-warning,.btn-check:checked+.btn-outline-warning,.btn-outline-warning.active,.btn-outline-warning.dropdown-toggle.show,.btn-outline-warning:active{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-check:active+.btn-outline-warning:focus,.btn-check:checked+.btn-outline-warning:focus,.btn-outline-warning.active:focus,.btn-outline-warning.dropdown-toggle.show:focus,.btn-outline-warning:active:focus{box-shadow:0 0 0 .25rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-check:focus+.btn-outline-danger,.btn-outline-danger:focus{box-shadow:0 0 0 .25rem rgba(220,53,69,.5)}.btn-check:active+.btn-outline-danger,.btn-check:checked+.btn-outline-danger,.btn-outline-danger.active,.btn-outline-danger.dropdown-toggle.show,.btn-outline-danger:active{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-check:active+.btn-outline-danger:focus,.btn-check:checked+.btn-outline-danger:focus,.btn-outline-danger.active:focus,.btn-outline-danger.dropdown-toggle.show:focus,.btn-outline-danger:active:focus{box-shadow:0 0 0 .25rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-check:focus+.btn-outline-light,.btn-outline-light:focus{box-shadow:0 0 0 .25rem rgba(248,249,250,.5)}.btn-check:active+.btn-outline-light,.btn-check:checked+.btn-outline-light,.btn-outline-light.active,.btn-outline-light.dropdown-toggle.show,.btn-outline-light:active{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-check:active+.btn-outline-light:focus,.btn-check:checked+.btn-outline-light:focus,.btn-outline-light.active:focus,.btn-outline-light.dropdown-toggle.show:focus,.btn-outline-light:active:focus{box-shadow:0 0 0 .25rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-dark{color:#212529;border-color:#212529}.btn-outline-dark:hover{color:#fff;background-color:#212529;border-color:#212529}.btn-check:focus+.btn-outline-dark,.btn-outline-dark:focus{box-shadow:0 0 0 .25rem rgba(33,37,41,.5)}.btn-check:active+.btn-outline-dark,.btn-check:checked+.btn-outline-dark,.btn-outline-dark.active,.btn-outline-dark.dropdown-toggle.show,.btn-outline-dark:active{color:#fff;background-color:#212529;border-color:#212529}.btn-check:active+.btn-outline-dark:focus,.btn-check:checked+.btn-outline-dark:focus,.btn-outline-dark.active:focus,.btn-outline-dark.dropdown-toggle.show:focus,.btn-outline-dark:active:focus{box-shadow:0 0 0 .25rem rgba(33,37,41,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#212529;background-color:transparent}.btn-link{font-weight:400;color:#0d6efd;text-decoration:underline}.btn-link:hover{color:#0a58ca}.btn-link.disabled,.btn-link:disabled{color:#6c757d}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;border-radius:.2rem}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{width:0;height:auto;transition:width .35s ease}@media (prefers-reduced-motion:reduce){.collapsing.collapse-horizontal{transition:none}}.dropdown,.dropend,.dropstart,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;z-index:1000;display:none;min-width:10rem;padding:.5rem 0;margin:0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu[data-bs-popper]{top:100%;left:0;margin-top:.125rem}.dropdown-menu-start{--bs-position:start}.dropdown-menu-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-end{--bs-position:end}.dropdown-menu-end[data-bs-popper]{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-start{--bs-position:start}.dropdown-menu-sm-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-sm-end{--bs-position:end}.dropdown-menu-sm-end[data-bs-popper]{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-start{--bs-position:start}.dropdown-menu-md-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-md-end{--bs-position:end}.dropdown-menu-md-end[data-bs-popper]{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-start{--bs-position:start}.dropdown-menu-lg-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-lg-end{--bs-position:end}.dropdown-menu-lg-end[data-bs-popper]{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-start{--bs-position:start}.dropdown-menu-xl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xl-end{--bs-position:end}.dropdown-menu-xl-end[data-bs-popper]{right:0;left:auto}}@media (min-width:1400px){.dropdown-menu-xxl-start{--bs-position:start}.dropdown-menu-xxl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xxl-end{--bs-position:end}.dropdown-menu-xxl-end[data-bs-popper]{right:0;left:auto}}.dropup .dropdown-menu[data-bs-popper]{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-menu[data-bs-popper]{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropend .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropend .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-toggle::after{vertical-align:0}.dropstart .dropdown-menu[data-bs-popper]{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropstart .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropstart .dropdown-toggle::after{display:none}.dropstart .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropstart .dropdown-toggle:empty::after{margin-left:0}.dropstart .dropdown-toggle::before{vertical-align:0}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid rgba(0,0,0,.15)}.dropdown-item{display:block;width:100%;padding:.25rem 1rem;clear:both;font-weight:400;color:#212529;text-align:inherit;text-decoration:none;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#1e2125;background-color:#e9ecef}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#0d6efd}.dropdown-item.disabled,.dropdown-item:disabled{color:#adb5bd;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1rem;color:#212529}.dropdown-menu-dark{color:#dee2e6;background-color:#343a40;border-color:rgba(0,0,0,.15)}.dropdown-menu-dark .dropdown-item{color:#dee2e6}.dropdown-menu-dark .dropdown-item:focus,.dropdown-menu-dark .dropdown-item:hover{color:#fff;background-color:rgba(255,255,255,.15)}.dropdown-menu-dark .dropdown-item.active,.dropdown-menu-dark .dropdown-item:active{color:#fff;background-color:#0d6efd}.dropdown-menu-dark .dropdown-item.disabled,.dropdown-menu-dark .dropdown-item:disabled{color:#adb5bd}.dropdown-menu-dark .dropdown-divider{border-color:rgba(0,0,0,.15)}.dropdown-menu-dark .dropdown-item-text{color:#dee2e6}.dropdown-menu-dark .dropdown-header{color:#adb5bd}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;flex:1 1 auto}.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:nth-child(n+3),.btn-group>:not(.btn-check)+.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropend .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.dropstart .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn~.btn{border-top-left-radius:0;border-top-right-radius:0}.nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem;color:#0d6efd;text-decoration:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media (prefers-reduced-motion:reduce){.nav-link{transition:none}}.nav-link:focus,.nav-link:hover{color:#0a58ca}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-link{margin-bottom:-1px;background:0 0;border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6;isolation:isolate}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{background:0 0;border:0;border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#0d6efd}.nav-fill .nav-item,.nav-fill>.nav-link{flex:1 1 auto;text-align:center}.nav-justified .nav-item,.nav-justified>.nav-link{flex-basis:0;flex-grow:1;text-align:center}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding-top:.5rem;padding-bottom:.5rem}.navbar>.container,.navbar>.container-fluid,.navbar>.container-lg,.navbar>.container-md,.navbar>.container-sm,.navbar>.container-xl,.navbar>.container-xxl{display:flex;flex-wrap:inherit;align-items:center;justify-content:space-between}.navbar-brand{padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;text-decoration:none;white-space:nowrap}.navbar-nav{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem;transition:box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 .25rem}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-repeat:no-repeat;background-position:center;background-size:100%}.navbar-nav-scroll{max-height:var(--bs-scroll-height,75vh);overflow-y:auto}@media (min-width:576px){.navbar-expand-sm{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .offcanvas-header{display:none}.navbar-expand-sm .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-sm .offcanvas-bottom,.navbar-expand-sm .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-sm .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:768px){.navbar-expand-md{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .offcanvas-header{display:none}.navbar-expand-md .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-md .offcanvas-bottom,.navbar-expand-md .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-md .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:992px){.navbar-expand-lg{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .offcanvas-header{display:none}.navbar-expand-lg .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-lg .offcanvas-bottom,.navbar-expand-lg .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-lg .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:1200px){.navbar-expand-xl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .offcanvas-header{display:none}.navbar-expand-xl .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-xl .offcanvas-bottom,.navbar-expand-xl .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-xl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:1400px){.navbar-expand-xxl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row}.navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xxl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}.navbar-expand-xxl .offcanvas-header{display:none}.navbar-expand-xxl .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-xxl .offcanvas-bottom,.navbar-expand-xxl .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-xxl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}.navbar-expand{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .offcanvas-header{display:none}.navbar-expand .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand .offcanvas-bottom,.navbar-expand .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}.navbar-light .navbar-brand{color:rgba(0,0,0,.9)}.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.55)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.55);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-light .navbar-text{color:rgba(0,0,0,.55)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.55)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.55);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-dark .navbar-text{color:rgba(255,255,255,.55)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;padding:1rem 1rem}.card-title{margin-bottom:.5rem}.card-subtitle{margin-top:-.25rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link+.card-link{margin-left:1rem}.card-header{padding:.5rem 1rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-footer{padding:.5rem 1rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-right:-.5rem;margin-bottom:-.5rem;margin-left:-.5rem;border-bottom:0}.card-header-pills{margin-right:-.5rem;margin-left:-.5rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1rem;border-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom,.card-img-top{width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-group>.card{margin-bottom:.75rem}@media (min-width:576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.accordion-button{position:relative;display:flex;align-items:center;width:100%;padding:1rem 1.25rem;font-size:1rem;color:#212529;text-align:left;background-color:#fff;border:0;border-radius:0;overflow-anchor:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,border-radius .15s ease}@media (prefers-reduced-motion:reduce){.accordion-button{transition:none}}.accordion-button:not(.collapsed){color:#0c63e4;background-color:#e7f1ff;box-shadow:inset 0 -1px 0 rgba(0,0,0,.125)}.accordion-button:not(.collapsed)::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%230c63e4'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");transform:rotate(-180deg)}.accordion-button::after{flex-shrink:0;width:1.25rem;height:1.25rem;margin-left:auto;content:"";background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-size:1.25rem;transition:transform .2s ease-in-out}@media (prefers-reduced-motion:reduce){.accordion-button::after{transition:none}}.accordion-button:hover{z-index:2}.accordion-button:focus{z-index:3;border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.accordion-header{margin-bottom:0}.accordion-item{background-color:#fff;border:1px solid rgba(0,0,0,.125)}.accordion-item:first-of-type{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.accordion-item:first-of-type .accordion-button{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.accordion-item:not(:first-of-type){border-top:0}.accordion-item:last-of-type{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.accordion-item:last-of-type .accordion-button.collapsed{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.accordion-item:last-of-type .accordion-collapse{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.accordion-body{padding:1rem 1.25rem}.accordion-flush .accordion-collapse{border-width:0}.accordion-flush .accordion-item{border-right:0;border-left:0;border-radius:0}.accordion-flush .accordion-item:first-child{border-top:0}.accordion-flush .accordion-item:last-child{border-bottom:0}.accordion-flush .accordion-item .accordion-button{border-radius:0}.breadcrumb{display:flex;flex-wrap:wrap;padding:0 0;margin-bottom:1rem;list-style:none}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{float:left;padding-right:.5rem;color:#6c757d;content:var(--bs-breadcrumb-divider, "/")}.breadcrumb-item.active{color:#6c757d}.pagination{display:flex;padding-left:0;list-style:none}.page-link{position:relative;display:block;color:#0d6efd;text-decoration:none;background-color:#fff;border:1px solid #dee2e6;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.page-link{transition:none}}.page-link:hover{z-index:2;color:#0a58ca;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;color:#0a58ca;background-color:#e9ecef;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.page-item:not(:first-child) .page-link{margin-left:-1px}.page-item.active .page-link{z-index:3;color:#fff;background-color:#0d6efd;border-color:#0d6efd}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;background-color:#fff;border-color:#dee2e6}.page-link{padding:.375rem .75rem}.page-item:first-child .page-link{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.35em .65em;font-size:.75em;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{position:relative;padding:1rem 1rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1rem}.alert-primary{color:#084298;background-color:#cfe2ff;border-color:#b6d4fe}.alert-primary .alert-link{color:#06357a}.alert-secondary{color:#41464b;background-color:#e2e3e5;border-color:#d3d6d8}.alert-secondary .alert-link{color:#34383c}.alert-success{color:#0f5132;background-color:#d1e7dd;border-color:#badbcc}.alert-success .alert-link{color:#0c4128}.alert-info{color:#055160;background-color:#cff4fc;border-color:#b6effb}.alert-info .alert-link{color:#04414d}.alert-warning{color:#664d03;background-color:#fff3cd;border-color:#ffecb5}.alert-warning .alert-link{color:#523e02}.alert-danger{color:#842029;background-color:#f8d7da;border-color:#f5c2c7}.alert-danger .alert-link{color:#6a1a21}.alert-light{color:#636464;background-color:#fefefe;border-color:#fdfdfe}.alert-light .alert-link{color:#4f5050}.alert-dark{color:#141619;background-color:#d3d3d4;border-color:#bcbebf}.alert-dark .alert-link{color:#101214}@-webkit-keyframes progress-bar-stripes{0%{background-position-x:1rem}}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.progress{display:flex;height:1rem;overflow:hidden;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:flex;flex-direction:column;justify-content:center;overflow:hidden;color:#fff;text-align:center;white-space:nowrap;background-color:#0d6efd;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:1s linear infinite progress-bar-stripes;animation:1s linear infinite progress-bar-stripes}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.list-group{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:.25rem}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>li::before{content:counters(section, ".") ". ";counter-increment:section}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.5rem 1rem;color:#212529;text-decoration:none;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#0d6efd;border-color:#0d6efd}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1400px){.list-group-horizontal-xxl{flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 1px}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#084298;background-color:#cfe2ff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#084298;background-color:#bacbe6}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#084298;border-color:#084298}.list-group-item-secondary{color:#41464b;background-color:#e2e3e5}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#41464b;background-color:#cbccce}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#41464b;border-color:#41464b}.list-group-item-success{color:#0f5132;background-color:#d1e7dd}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#0f5132;background-color:#bcd0c7}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#0f5132;border-color:#0f5132}.list-group-item-info{color:#055160;background-color:#cff4fc}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#055160;background-color:#badce3}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#055160;border-color:#055160}.list-group-item-warning{color:#664d03;background-color:#fff3cd}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#664d03;background-color:#e6dbb9}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#664d03;border-color:#664d03}.list-group-item-danger{color:#842029;background-color:#f8d7da}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#842029;background-color:#dfc2c4}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#842029;border-color:#842029}.list-group-item-light{color:#636464;background-color:#fefefe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#636464;background-color:#e5e5e5}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#636464;border-color:#636464}.list-group-item-dark{color:#141619;background-color:#d3d3d4}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#141619;background-color:#bebebf}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#141619;border-color:#141619}.btn-close{box-sizing:content-box;width:1em;height:1em;padding:.25em .25em;color:#000;background:transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e") center/1em auto no-repeat;border:0;border-radius:.25rem;opacity:.5}.btn-close:hover{color:#000;text-decoration:none;opacity:.75}.btn-close:focus{outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25);opacity:1}.btn-close.disabled,.btn-close:disabled{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;opacity:.25}.btn-close-white{filter:invert(1) grayscale(100%) brightness(200%)}.toast{width:350px;max-width:100%;font-size:.875rem;pointer-events:auto;background-color:rgba(255,255,255,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .5rem 1rem rgba(0,0,0,.15);border-radius:.25rem}.toast.showing{opacity:0}.toast:not(.show){display:none}.toast-container{width:-webkit-max-content;width:-moz-max-content;width:max-content;max-width:100%;pointer-events:none}.toast-container>:not(:last-child){margin-bottom:.75rem}.toast-header{display:flex;align-items:center;padding:.5rem .75rem;color:#6c757d;background-color:rgba(255,255,255,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05);border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.toast-header .btn-close{margin-right:-.375rem;margin-left:.75rem}.toast-body{padding:.75rem;word-wrap:break-word}.modal{position:fixed;top:0;left:0;z-index:1055;display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translate(0,-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - 1rem)}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1050;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:flex;flex-shrink:0;align-items:center;justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .btn-close{padding:.5rem .5rem;margin:-.5rem -.5rem -.5rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;flex:1 1 auto;padding:1rem}.modal-footer{display:flex;flex-wrap:wrap;flex-shrink:0;align-items:center;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{height:calc(100% - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen .modal-header{border-radius:0}.modal-fullscreen .modal-body{overflow-y:auto}.modal-fullscreen .modal-footer{border-radius:0}@media (max-width:575.98px){.modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-sm-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-sm-down .modal-header{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}.modal-fullscreen-sm-down .modal-footer{border-radius:0}}@media (max-width:767.98px){.modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-md-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-md-down .modal-header{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}.modal-fullscreen-md-down .modal-footer{border-radius:0}}@media (max-width:991.98px){.modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-lg-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-lg-down .modal-header{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}.modal-fullscreen-lg-down .modal-footer{border-radius:0}}@media (max-width:1199.98px){.modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xl-down .modal-header{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}.modal-fullscreen-xl-down .modal-footer{border-radius:0}}@media (max-width:1399.98px){.modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xxl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xxl-down .modal-header{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}.modal-fullscreen-xxl-down .modal-footer{border-radius:0}}.tooltip{position:absolute;z-index:1080;display:block;margin:0;font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .tooltip-arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .tooltip-arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[data-popper-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow,.bs-tooltip-top .tooltip-arrow{bottom:0}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before,.bs-tooltip-top .tooltip-arrow::before{top:-1px;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[data-popper-placement^=right],.bs-tooltip-end{padding:0 .4rem}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow,.bs-tooltip-end .tooltip-arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before,.bs-tooltip-end .tooltip-arrow::before{right:-1px;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[data-popper-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow,.bs-tooltip-bottom .tooltip-arrow{top:0}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before,.bs-tooltip-bottom .tooltip-arrow::before{bottom:-1px;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[data-popper-placement^=left],.bs-tooltip-start{padding:0 .4rem}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow,.bs-tooltip-start .tooltip-arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before,.bs-tooltip-start .tooltip-arrow::before{left:-1px;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0;z-index:1070;display:block;max-width:276px;font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover .popover-arrow{position:absolute;display:block;width:1rem;height:.5rem}.popover .popover-arrow::after,.popover .popover-arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow,.bs-popover-top>.popover-arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before,.bs-popover-top>.popover-arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after,.bs-popover-top>.popover-arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow,.bs-popover-end>.popover-arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before,.bs-popover-end>.popover-arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after,.bs-popover-end>.popover-arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow,.bs-popover-bottom>.popover-arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before,.bs-popover-bottom>.popover-arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after,.bs-popover-bottom>.popover-arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[data-popper-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f0f0f0}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow,.bs-popover-start>.popover-arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before,.bs-popover-start>.popover-arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after,.bs-popover-start>.popover-arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem 1rem;margin-bottom:0;font-size:1rem;background-color:#f0f0f0;border-bottom:1px solid rgba(0,0,0,.2);border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:1rem 1rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-end,.carousel-item-next:not(.carousel-item-start){transform:translateX(100%)}.active.carousel-item-start,.carousel-item-prev:not(.carousel-item-end){transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:0 0;border:0;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%;list-style:none}.carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border:0;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators [data-bs-target]{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}.carousel-dark .carousel-control-next-icon,.carousel-dark .carousel-control-prev-icon{filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}.carousel-dark .carousel-caption{color:#000}@-webkit-keyframes spinner-border{to{transform:rotate(360deg)}}@keyframes spinner-border{to{transform:rotate(360deg)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:-.125em;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;-webkit-animation:.75s linear infinite spinner-border;animation:.75s linear infinite spinner-border}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:-.125em;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:.75s linear infinite spinner-grow;animation:.75s linear infinite spinner-grow}.spinner-grow-sm{width:1rem;height:1rem}@media (prefers-reduced-motion:reduce){.spinner-border,.spinner-grow{-webkit-animation-duration:1.5s;animation-duration:1.5s}}.offcanvas{position:fixed;bottom:0;z-index:1045;display:flex;flex-direction:column;max-width:100%;visibility:hidden;background-color:#fff;background-clip:padding-box;outline:0;transition:transform .3s ease-in-out}@media (prefers-reduced-motion:reduce){.offcanvas{transition:none}}.offcanvas-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.offcanvas-backdrop.fade{opacity:0}.offcanvas-backdrop.show{opacity:.5}.offcanvas-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1rem}.offcanvas-header .btn-close{padding:.5rem .5rem;margin-top:-.5rem;margin-right:-.5rem;margin-bottom:-.5rem}.offcanvas-title{margin-bottom:0;line-height:1.5}.offcanvas-body{flex-grow:1;padding:1rem 1rem;overflow-y:auto}.offcanvas-start{top:0;left:0;width:400px;border-right:1px solid rgba(0,0,0,.2);transform:translateX(-100%)}.offcanvas-end{top:0;right:0;width:400px;border-left:1px solid rgba(0,0,0,.2);transform:translateX(100%)}.offcanvas-top{top:0;right:0;left:0;height:30vh;max-height:100%;border-bottom:1px solid rgba(0,0,0,.2);transform:translateY(-100%)}.offcanvas-bottom{right:0;left:0;height:30vh;max-height:100%;border-top:1px solid rgba(0,0,0,.2);transform:translateY(100%)}.offcanvas.show{transform:none}.placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentColor;opacity:.5}.placeholder.btn::before{display:inline-block;content:""}.placeholder-xs{min-height:.6em}.placeholder-sm{min-height:.8em}.placeholder-lg{min-height:1.2em}.placeholder-glow .placeholder{-webkit-animation:placeholder-glow 2s ease-in-out infinite;animation:placeholder-glow 2s ease-in-out infinite}@-webkit-keyframes placeholder-glow{50%{opacity:.2}}@keyframes placeholder-glow{50%{opacity:.2}}.placeholder-wave{-webkit-mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,0.8) 75%,#000 95%);mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,0.8) 75%,#000 95%);-webkit-mask-size:200% 100%;mask-size:200% 100%;-webkit-animation:placeholder-wave 2s linear infinite;animation:placeholder-wave 2s linear infinite}@-webkit-keyframes placeholder-wave{100%{-webkit-mask-position:-200% 0%;mask-position:-200% 0%}}@keyframes placeholder-wave{100%{-webkit-mask-position:-200% 0%;mask-position:-200% 0%}}.clearfix::after{display:block;clear:both;content:""}.link-primary{color:#0d6efd}.link-primary:focus,.link-primary:hover{color:#0a58ca}.link-secondary{color:#6c757d}.link-secondary:focus,.link-secondary:hover{color:#565e64}.link-success{color:#198754}.link-success:focus,.link-success:hover{color:#146c43}.link-info{color:#0dcaf0}.link-info:focus,.link-info:hover{color:#3dd5f3}.link-warning{color:#ffc107}.link-warning:focus,.link-warning:hover{color:#ffcd39}.link-danger{color:#dc3545}.link-danger:focus,.link-danger:hover{color:#b02a37}.link-light{color:#f8f9fa}.link-light:focus,.link-light:hover{color:#f9fafb}.link-dark{color:#212529}.link-dark:focus,.link-dark:hover{color:#1a1e21}.ratio{position:relative;width:100%}.ratio::before{display:block;padding-top:var(--bs-aspect-ratio);content:""}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--bs-aspect-ratio:100%}.ratio-4x3{--bs-aspect-ratio:calc(3 / 4 * 100%)}.ratio-16x9{--bs-aspect-ratio:calc(9 / 16 * 100%)}.ratio-21x9{--bs-aspect-ratio:calc(9 / 21 * 100%)}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}@media (min-width:576px){.sticky-sm-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:768px){.sticky-md-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:992px){.sticky-lg-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:1200px){.sticky-xl-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:1400px){.sticky-xxl-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.hstack{display:flex;flex-direction:row;align-items:center;align-self:stretch}.vstack{display:flex;flex:1 1 auto;flex-direction:column;align-self:stretch}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{display:inline-block;align-self:stretch;width:1px;min-height:1em;background-color:currentColor;opacity:.25}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.float-start{float:left!important}.float-end{float:right!important}.float-none{float:none!important}.opacity-0{opacity:0!important}.opacity-25{opacity:.25!important}.opacity-50{opacity:.5!important}.opacity-75{opacity:.75!important}.opacity-100{opacity:1!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.overflow-visible{overflow:visible!important}.overflow-scroll{overflow:scroll!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-grid{display:grid!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.d-none{display:none!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.top-0{top:0!important}.top-50{top:50%!important}.top-100{top:100%!important}.bottom-0{bottom:0!important}.bottom-50{bottom:50%!important}.bottom-100{bottom:100%!important}.start-0{left:0!important}.start-50{left:50%!important}.start-100{left:100%!important}.end-0{right:0!important}.end-50{right:50%!important}.end-100{right:100%!important}.translate-middle{transform:translate(-50%,-50%)!important}.translate-middle-x{transform:translateX(-50%)!important}.translate-middle-y{transform:translateY(-50%)!important}.border{border:1px solid #dee2e6!important}.border-0{border:0!important}.border-top{border-top:1px solid #dee2e6!important}.border-top-0{border-top:0!important}.border-end{border-right:1px solid #dee2e6!important}.border-end-0{border-right:0!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-bottom-0{border-bottom:0!important}.border-start{border-left:1px solid #dee2e6!important}.border-start-0{border-left:0!important}.border-primary{border-color:#0d6efd!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#198754!important}.border-info{border-color:#0dcaf0!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#212529!important}.border-white{border-color:#fff!important}.border-1{border-width:1px!important}.border-2{border-width:2px!important}.border-3{border-width:3px!important}.border-4{border-width:4px!important}.border-5{border-width:5px!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.mw-100{max-width:100%!important}.vw-100{width:100vw!important}.min-vw-100{min-width:100vw!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mh-100{max-height:100%!important}.vh-100{height:100vh!important}.min-vh-100{min-height:100vh!important}.flex-fill{flex:1 1 auto!important}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-0{gap:0!important}.gap-1{gap:.25rem!important}.gap-2{gap:.5rem!important}.gap-3{gap:1rem!important}.gap-4{gap:1.5rem!important}.gap-5{gap:3rem!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.justify-content-evenly{justify-content:space-evenly!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.order-first{order:-1!important}.order-0{order:0!important}.order-1{order:1!important}.order-2{order:2!important}.order-3{order:3!important}.order-4{order:4!important}.order-5{order:5!important}.order-last{order:6!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-3{margin:1rem!important}.m-4{margin:1.5rem!important}.m-5{margin:3rem!important}.m-auto{margin:auto!important}.mx-0{margin-right:0!important;margin-left:0!important}.mx-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-3{margin-right:1rem!important;margin-left:1rem!important}.mx-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-5{margin-right:3rem!important;margin-left:3rem!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}.my-0{margin-top:0!important;margin-bottom:0!important}.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.mt-5{margin-top:3rem!important}.mt-auto{margin-top:auto!important}.me-0{margin-right:0!important}.me-1{margin-right:.25rem!important}.me-2{margin-right:.5rem!important}.me-3{margin-right:1rem!important}.me-4{margin-right:1.5rem!important}.me-5{margin-right:3rem!important}.me-auto{margin-right:auto!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mb-5{margin-bottom:3rem!important}.mb-auto{margin-bottom:auto!important}.ms-0{margin-left:0!important}.ms-1{margin-left:.25rem!important}.ms-2{margin-left:.5rem!important}.ms-3{margin-left:1rem!important}.ms-4{margin-left:1.5rem!important}.ms-5{margin-left:3rem!important}.ms-auto{margin-left:auto!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}.p-4{padding:1.5rem!important}.p-5{padding:3rem!important}.px-0{padding-right:0!important;padding-left:0!important}.px-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-3{padding-right:1rem!important;padding-left:1rem!important}.px-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-5{padding-right:3rem!important;padding-left:3rem!important}.py-0{padding-top:0!important;padding-bottom:0!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:1.5rem!important}.pt-5{padding-top:3rem!important}.pe-0{padding-right:0!important}.pe-1{padding-right:.25rem!important}.pe-2{padding-right:.5rem!important}.pe-3{padding-right:1rem!important}.pe-4{padding-right:1.5rem!important}.pe-5{padding-right:3rem!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:1.5rem!important}.pb-5{padding-bottom:3rem!important}.ps-0{padding-left:0!important}.ps-1{padding-left:.25rem!important}.ps-2{padding-left:.5rem!important}.ps-3{padding-left:1rem!important}.ps-4{padding-left:1.5rem!important}.ps-5{padding-left:3rem!important}.font-monospace{font-family:var(--bs-font-monospace)!important}.fs-1{font-size:calc(1.375rem + 1.5vw)!important}.fs-2{font-size:calc(1.325rem + .9vw)!important}.fs-3{font-size:calc(1.3rem + .6vw)!important}.fs-4{font-size:calc(1.275rem + .3vw)!important}.fs-5{font-size:1.25rem!important}.fs-6{font-size:1rem!important}.fst-italic{font-style:italic!important}.fst-normal{font-style:normal!important}.fw-light{font-weight:300!important}.fw-lighter{font-weight:lighter!important}.fw-normal{font-weight:400!important}.fw-bold{font-weight:700!important}.fw-bolder{font-weight:bolder!important}.lh-1{line-height:1!important}.lh-sm{line-height:1.25!important}.lh-base{line-height:1.5!important}.lh-lg{line-height:2!important}.text-start{text-align:left!important}.text-end{text-align:right!important}.text-center{text-align:center!important}.text-decoration-none{text-decoration:none!important}.text-decoration-underline{text-decoration:underline!important}.text-decoration-line-through{text-decoration:line-through!important}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-break{word-wrap:break-word!important;word-break:break-word!important}.text-primary{--bs-text-opacity:1;color:rgba(var(--bs-primary-rgb),var(--bs-text-opacity))!important}.text-secondary{--bs-text-opacity:1;color:rgba(var(--bs-secondary-rgb),var(--bs-text-opacity))!important}.text-success{--bs-text-opacity:1;color:rgba(var(--bs-success-rgb),var(--bs-text-opacity))!important}.text-info{--bs-text-opacity:1;color:rgba(var(--bs-info-rgb),var(--bs-text-opacity))!important}.text-warning{--bs-text-opacity:1;color:rgba(var(--bs-warning-rgb),var(--bs-text-opacity))!important}.text-danger{--bs-text-opacity:1;color:rgba(var(--bs-danger-rgb),var(--bs-text-opacity))!important}.text-light{--bs-text-opacity:1;color:rgba(var(--bs-light-rgb),var(--bs-text-opacity))!important}.text-dark{--bs-text-opacity:1;color:rgba(var(--bs-dark-rgb),var(--bs-text-opacity))!important}.text-black{--bs-text-opacity:1;color:rgba(var(--bs-black-rgb),var(--bs-text-opacity))!important}.text-white{--bs-text-opacity:1;color:rgba(var(--bs-white-rgb),var(--bs-text-opacity))!important}.text-body{--bs-text-opacity:1;color:rgba(var(--bs-body-rgb),var(--bs-text-opacity))!important}.text-muted{--bs-text-opacity:1;color:#6c757d!important}.text-black-50{--bs-text-opacity:1;color:rgba(0,0,0,.5)!important}.text-white-50{--bs-text-opacity:1;color:rgba(255,255,255,.5)!important}.text-reset{--bs-text-opacity:1;color:inherit!important}.text-opacity-25{--bs-text-opacity:0.25}.text-opacity-50{--bs-text-opacity:0.5}.text-opacity-75{--bs-text-opacity:0.75}.text-opacity-100{--bs-text-opacity:1}.bg-primary{--bs-bg-opacity:1;background-color:rgba(var(--bs-primary-rgb),var(--bs-bg-opacity))!important}.bg-secondary{--bs-bg-opacity:1;background-color:rgba(var(--bs-secondary-rgb),var(--bs-bg-opacity))!important}.bg-success{--bs-bg-opacity:1;background-color:rgba(var(--bs-success-rgb),var(--bs-bg-opacity))!important}.bg-info{--bs-bg-opacity:1;background-color:rgba(var(--bs-info-rgb),var(--bs-bg-opacity))!important}.bg-warning{--bs-bg-opacity:1;background-color:rgba(var(--bs-warning-rgb),var(--bs-bg-opacity))!important}.bg-danger{--bs-bg-opacity:1;background-color:rgba(var(--bs-danger-rgb),var(--bs-bg-opacity))!important}.bg-light{--bs-bg-opacity:1;background-color:rgba(var(--bs-light-rgb),var(--bs-bg-opacity))!important}.bg-dark{--bs-bg-opacity:1;background-color:rgba(var(--bs-dark-rgb),var(--bs-bg-opacity))!important}.bg-black{--bs-bg-opacity:1;background-color:rgba(var(--bs-black-rgb),var(--bs-bg-opacity))!important}.bg-white{--bs-bg-opacity:1;background-color:rgba(var(--bs-white-rgb),var(--bs-bg-opacity))!important}.bg-body{--bs-bg-opacity:1;background-color:rgba(var(--bs-body-rgb),var(--bs-bg-opacity))!important}.bg-transparent{--bs-bg-opacity:1;background-color:transparent!important}.bg-opacity-10{--bs-bg-opacity:0.1}.bg-opacity-25{--bs-bg-opacity:0.25}.bg-opacity-50{--bs-bg-opacity:0.5}.bg-opacity-75{--bs-bg-opacity:0.75}.bg-opacity-100{--bs-bg-opacity:1}.bg-gradient{background-image:var(--bs-gradient)!important}.user-select-all{-webkit-user-select:all!important;-moz-user-select:all!important;user-select:all!important}.user-select-auto{-webkit-user-select:auto!important;-moz-user-select:auto!important;user-select:auto!important}.user-select-none{-webkit-user-select:none!important;-moz-user-select:none!important;user-select:none!important}.pe-none{pointer-events:none!important}.pe-auto{pointer-events:auto!important}.rounded{border-radius:.25rem!important}.rounded-0{border-radius:0!important}.rounded-1{border-radius:.2rem!important}.rounded-2{border-radius:.25rem!important}.rounded-3{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-top{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.rounded-end{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-start{border-bottom-left-radius:.25rem!important;border-top-left-radius:.25rem!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media (min-width:576px){.float-sm-start{float:left!important}.float-sm-end{float:right!important}.float-sm-none{float:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-grid{display:grid!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}.d-sm-none{display:none!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-sm-0{gap:0!important}.gap-sm-1{gap:.25rem!important}.gap-sm-2{gap:.5rem!important}.gap-sm-3{gap:1rem!important}.gap-sm-4{gap:1.5rem!important}.gap-sm-5{gap:3rem!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.justify-content-sm-evenly{justify-content:space-evenly!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}.order-sm-first{order:-1!important}.order-sm-0{order:0!important}.order-sm-1{order:1!important}.order-sm-2{order:2!important}.order-sm-3{order:3!important}.order-sm-4{order:4!important}.order-sm-5{order:5!important}.order-sm-last{order:6!important}.m-sm-0{margin:0!important}.m-sm-1{margin:.25rem!important}.m-sm-2{margin:.5rem!important}.m-sm-3{margin:1rem!important}.m-sm-4{margin:1.5rem!important}.m-sm-5{margin:3rem!important}.m-sm-auto{margin:auto!important}.mx-sm-0{margin-right:0!important;margin-left:0!important}.mx-sm-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-sm-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-sm-3{margin-right:1rem!important;margin-left:1rem!important}.mx-sm-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-sm-5{margin-right:3rem!important;margin-left:3rem!important}.mx-sm-auto{margin-right:auto!important;margin-left:auto!important}.my-sm-0{margin-top:0!important;margin-bottom:0!important}.my-sm-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-sm-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-sm-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-sm-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-sm-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-sm-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-sm-0{margin-top:0!important}.mt-sm-1{margin-top:.25rem!important}.mt-sm-2{margin-top:.5rem!important}.mt-sm-3{margin-top:1rem!important}.mt-sm-4{margin-top:1.5rem!important}.mt-sm-5{margin-top:3rem!important}.mt-sm-auto{margin-top:auto!important}.me-sm-0{margin-right:0!important}.me-sm-1{margin-right:.25rem!important}.me-sm-2{margin-right:.5rem!important}.me-sm-3{margin-right:1rem!important}.me-sm-4{margin-right:1.5rem!important}.me-sm-5{margin-right:3rem!important}.me-sm-auto{margin-right:auto!important}.mb-sm-0{margin-bottom:0!important}.mb-sm-1{margin-bottom:.25rem!important}.mb-sm-2{margin-bottom:.5rem!important}.mb-sm-3{margin-bottom:1rem!important}.mb-sm-4{margin-bottom:1.5rem!important}.mb-sm-5{margin-bottom:3rem!important}.mb-sm-auto{margin-bottom:auto!important}.ms-sm-0{margin-left:0!important}.ms-sm-1{margin-left:.25rem!important}.ms-sm-2{margin-left:.5rem!important}.ms-sm-3{margin-left:1rem!important}.ms-sm-4{margin-left:1.5rem!important}.ms-sm-5{margin-left:3rem!important}.ms-sm-auto{margin-left:auto!important}.p-sm-0{padding:0!important}.p-sm-1{padding:.25rem!important}.p-sm-2{padding:.5rem!important}.p-sm-3{padding:1rem!important}.p-sm-4{padding:1.5rem!important}.p-sm-5{padding:3rem!important}.px-sm-0{padding-right:0!important;padding-left:0!important}.px-sm-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-sm-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-sm-3{padding-right:1rem!important;padding-left:1rem!important}.px-sm-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-sm-5{padding-right:3rem!important;padding-left:3rem!important}.py-sm-0{padding-top:0!important;padding-bottom:0!important}.py-sm-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-sm-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-sm-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-sm-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-sm-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-sm-0{padding-top:0!important}.pt-sm-1{padding-top:.25rem!important}.pt-sm-2{padding-top:.5rem!important}.pt-sm-3{padding-top:1rem!important}.pt-sm-4{padding-top:1.5rem!important}.pt-sm-5{padding-top:3rem!important}.pe-sm-0{padding-right:0!important}.pe-sm-1{padding-right:.25rem!important}.pe-sm-2{padding-right:.5rem!important}.pe-sm-3{padding-right:1rem!important}.pe-sm-4{padding-right:1.5rem!important}.pe-sm-5{padding-right:3rem!important}.pb-sm-0{padding-bottom:0!important}.pb-sm-1{padding-bottom:.25rem!important}.pb-sm-2{padding-bottom:.5rem!important}.pb-sm-3{padding-bottom:1rem!important}.pb-sm-4{padding-bottom:1.5rem!important}.pb-sm-5{padding-bottom:3rem!important}.ps-sm-0{padding-left:0!important}.ps-sm-1{padding-left:.25rem!important}.ps-sm-2{padding-left:.5rem!important}.ps-sm-3{padding-left:1rem!important}.ps-sm-4{padding-left:1.5rem!important}.ps-sm-5{padding-left:3rem!important}.text-sm-start{text-align:left!important}.text-sm-end{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.float-md-start{float:left!important}.float-md-end{float:right!important}.float-md-none{float:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-grid{display:grid!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}.d-md-none{display:none!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-md-0{gap:0!important}.gap-md-1{gap:.25rem!important}.gap-md-2{gap:.5rem!important}.gap-md-3{gap:1rem!important}.gap-md-4{gap:1.5rem!important}.gap-md-5{gap:3rem!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.justify-content-md-evenly{justify-content:space-evenly!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}.order-md-first{order:-1!important}.order-md-0{order:0!important}.order-md-1{order:1!important}.order-md-2{order:2!important}.order-md-3{order:3!important}.order-md-4{order:4!important}.order-md-5{order:5!important}.order-md-last{order:6!important}.m-md-0{margin:0!important}.m-md-1{margin:.25rem!important}.m-md-2{margin:.5rem!important}.m-md-3{margin:1rem!important}.m-md-4{margin:1.5rem!important}.m-md-5{margin:3rem!important}.m-md-auto{margin:auto!important}.mx-md-0{margin-right:0!important;margin-left:0!important}.mx-md-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-md-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-md-3{margin-right:1rem!important;margin-left:1rem!important}.mx-md-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-md-5{margin-right:3rem!important;margin-left:3rem!important}.mx-md-auto{margin-right:auto!important;margin-left:auto!important}.my-md-0{margin-top:0!important;margin-bottom:0!important}.my-md-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-md-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-md-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-md-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-md-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-md-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-md-0{margin-top:0!important}.mt-md-1{margin-top:.25rem!important}.mt-md-2{margin-top:.5rem!important}.mt-md-3{margin-top:1rem!important}.mt-md-4{margin-top:1.5rem!important}.mt-md-5{margin-top:3rem!important}.mt-md-auto{margin-top:auto!important}.me-md-0{margin-right:0!important}.me-md-1{margin-right:.25rem!important}.me-md-2{margin-right:.5rem!important}.me-md-3{margin-right:1rem!important}.me-md-4{margin-right:1.5rem!important}.me-md-5{margin-right:3rem!important}.me-md-auto{margin-right:auto!important}.mb-md-0{margin-bottom:0!important}.mb-md-1{margin-bottom:.25rem!important}.mb-md-2{margin-bottom:.5rem!important}.mb-md-3{margin-bottom:1rem!important}.mb-md-4{margin-bottom:1.5rem!important}.mb-md-5{margin-bottom:3rem!important}.mb-md-auto{margin-bottom:auto!important}.ms-md-0{margin-left:0!important}.ms-md-1{margin-left:.25rem!important}.ms-md-2{margin-left:.5rem!important}.ms-md-3{margin-left:1rem!important}.ms-md-4{margin-left:1.5rem!important}.ms-md-5{margin-left:3rem!important}.ms-md-auto{margin-left:auto!important}.p-md-0{padding:0!important}.p-md-1{padding:.25rem!important}.p-md-2{padding:.5rem!important}.p-md-3{padding:1rem!important}.p-md-4{padding:1.5rem!important}.p-md-5{padding:3rem!important}.px-md-0{padding-right:0!important;padding-left:0!important}.px-md-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-md-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-md-3{padding-right:1rem!important;padding-left:1rem!important}.px-md-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-md-5{padding-right:3rem!important;padding-left:3rem!important}.py-md-0{padding-top:0!important;padding-bottom:0!important}.py-md-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-md-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-md-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-md-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-md-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-md-0{padding-top:0!important}.pt-md-1{padding-top:.25rem!important}.pt-md-2{padding-top:.5rem!important}.pt-md-3{padding-top:1rem!important}.pt-md-4{padding-top:1.5rem!important}.pt-md-5{padding-top:3rem!important}.pe-md-0{padding-right:0!important}.pe-md-1{padding-right:.25rem!important}.pe-md-2{padding-right:.5rem!important}.pe-md-3{padding-right:1rem!important}.pe-md-4{padding-right:1.5rem!important}.pe-md-5{padding-right:3rem!important}.pb-md-0{padding-bottom:0!important}.pb-md-1{padding-bottom:.25rem!important}.pb-md-2{padding-bottom:.5rem!important}.pb-md-3{padding-bottom:1rem!important}.pb-md-4{padding-bottom:1.5rem!important}.pb-md-5{padding-bottom:3rem!important}.ps-md-0{padding-left:0!important}.ps-md-1{padding-left:.25rem!important}.ps-md-2{padding-left:.5rem!important}.ps-md-3{padding-left:1rem!important}.ps-md-4{padding-left:1.5rem!important}.ps-md-5{padding-left:3rem!important}.text-md-start{text-align:left!important}.text-md-end{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.float-lg-start{float:left!important}.float-lg-end{float:right!important}.float-lg-none{float:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-grid{display:grid!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}.d-lg-none{display:none!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-lg-0{gap:0!important}.gap-lg-1{gap:.25rem!important}.gap-lg-2{gap:.5rem!important}.gap-lg-3{gap:1rem!important}.gap-lg-4{gap:1.5rem!important}.gap-lg-5{gap:3rem!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.justify-content-lg-evenly{justify-content:space-evenly!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}.order-lg-first{order:-1!important}.order-lg-0{order:0!important}.order-lg-1{order:1!important}.order-lg-2{order:2!important}.order-lg-3{order:3!important}.order-lg-4{order:4!important}.order-lg-5{order:5!important}.order-lg-last{order:6!important}.m-lg-0{margin:0!important}.m-lg-1{margin:.25rem!important}.m-lg-2{margin:.5rem!important}.m-lg-3{margin:1rem!important}.m-lg-4{margin:1.5rem!important}.m-lg-5{margin:3rem!important}.m-lg-auto{margin:auto!important}.mx-lg-0{margin-right:0!important;margin-left:0!important}.mx-lg-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-lg-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-lg-3{margin-right:1rem!important;margin-left:1rem!important}.mx-lg-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-lg-5{margin-right:3rem!important;margin-left:3rem!important}.mx-lg-auto{margin-right:auto!important;margin-left:auto!important}.my-lg-0{margin-top:0!important;margin-bottom:0!important}.my-lg-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-lg-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-lg-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-lg-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-lg-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-lg-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-lg-0{margin-top:0!important}.mt-lg-1{margin-top:.25rem!important}.mt-lg-2{margin-top:.5rem!important}.mt-lg-3{margin-top:1rem!important}.mt-lg-4{margin-top:1.5rem!important}.mt-lg-5{margin-top:3rem!important}.mt-lg-auto{margin-top:auto!important}.me-lg-0{margin-right:0!important}.me-lg-1{margin-right:.25rem!important}.me-lg-2{margin-right:.5rem!important}.me-lg-3{margin-right:1rem!important}.me-lg-4{margin-right:1.5rem!important}.me-lg-5{margin-right:3rem!important}.me-lg-auto{margin-right:auto!important}.mb-lg-0{margin-bottom:0!important}.mb-lg-1{margin-bottom:.25rem!important}.mb-lg-2{margin-bottom:.5rem!important}.mb-lg-3{margin-bottom:1rem!important}.mb-lg-4{margin-bottom:1.5rem!important}.mb-lg-5{margin-bottom:3rem!important}.mb-lg-auto{margin-bottom:auto!important}.ms-lg-0{margin-left:0!important}.ms-lg-1{margin-left:.25rem!important}.ms-lg-2{margin-left:.5rem!important}.ms-lg-3{margin-left:1rem!important}.ms-lg-4{margin-left:1.5rem!important}.ms-lg-5{margin-left:3rem!important}.ms-lg-auto{margin-left:auto!important}.p-lg-0{padding:0!important}.p-lg-1{padding:.25rem!important}.p-lg-2{padding:.5rem!important}.p-lg-3{padding:1rem!important}.p-lg-4{padding:1.5rem!important}.p-lg-5{padding:3rem!important}.px-lg-0{padding-right:0!important;padding-left:0!important}.px-lg-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-lg-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-lg-3{padding-right:1rem!important;padding-left:1rem!important}.px-lg-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-lg-5{padding-right:3rem!important;padding-left:3rem!important}.py-lg-0{padding-top:0!important;padding-bottom:0!important}.py-lg-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-lg-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-lg-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-lg-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-lg-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-lg-0{padding-top:0!important}.pt-lg-1{padding-top:.25rem!important}.pt-lg-2{padding-top:.5rem!important}.pt-lg-3{padding-top:1rem!important}.pt-lg-4{padding-top:1.5rem!important}.pt-lg-5{padding-top:3rem!important}.pe-lg-0{padding-right:0!important}.pe-lg-1{padding-right:.25rem!important}.pe-lg-2{padding-right:.5rem!important}.pe-lg-3{padding-right:1rem!important}.pe-lg-4{padding-right:1.5rem!important}.pe-lg-5{padding-right:3rem!important}.pb-lg-0{padding-bottom:0!important}.pb-lg-1{padding-bottom:.25rem!important}.pb-lg-2{padding-bottom:.5rem!important}.pb-lg-3{padding-bottom:1rem!important}.pb-lg-4{padding-bottom:1.5rem!important}.pb-lg-5{padding-bottom:3rem!important}.ps-lg-0{padding-left:0!important}.ps-lg-1{padding-left:.25rem!important}.ps-lg-2{padding-left:.5rem!important}.ps-lg-3{padding-left:1rem!important}.ps-lg-4{padding-left:1.5rem!important}.ps-lg-5{padding-left:3rem!important}.text-lg-start{text-align:left!important}.text-lg-end{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.float-xl-start{float:left!important}.float-xl-end{float:right!important}.float-xl-none{float:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-grid{display:grid!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}.d-xl-none{display:none!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-xl-0{gap:0!important}.gap-xl-1{gap:.25rem!important}.gap-xl-2{gap:.5rem!important}.gap-xl-3{gap:1rem!important}.gap-xl-4{gap:1.5rem!important}.gap-xl-5{gap:3rem!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.justify-content-xl-evenly{justify-content:space-evenly!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.order-xl-first{order:-1!important}.order-xl-0{order:0!important}.order-xl-1{order:1!important}.order-xl-2{order:2!important}.order-xl-3{order:3!important}.order-xl-4{order:4!important}.order-xl-5{order:5!important}.order-xl-last{order:6!important}.m-xl-0{margin:0!important}.m-xl-1{margin:.25rem!important}.m-xl-2{margin:.5rem!important}.m-xl-3{margin:1rem!important}.m-xl-4{margin:1.5rem!important}.m-xl-5{margin:3rem!important}.m-xl-auto{margin:auto!important}.mx-xl-0{margin-right:0!important;margin-left:0!important}.mx-xl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xl-auto{margin-right:auto!important;margin-left:auto!important}.my-xl-0{margin-top:0!important;margin-bottom:0!important}.my-xl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xl-0{margin-top:0!important}.mt-xl-1{margin-top:.25rem!important}.mt-xl-2{margin-top:.5rem!important}.mt-xl-3{margin-top:1rem!important}.mt-xl-4{margin-top:1.5rem!important}.mt-xl-5{margin-top:3rem!important}.mt-xl-auto{margin-top:auto!important}.me-xl-0{margin-right:0!important}.me-xl-1{margin-right:.25rem!important}.me-xl-2{margin-right:.5rem!important}.me-xl-3{margin-right:1rem!important}.me-xl-4{margin-right:1.5rem!important}.me-xl-5{margin-right:3rem!important}.me-xl-auto{margin-right:auto!important}.mb-xl-0{margin-bottom:0!important}.mb-xl-1{margin-bottom:.25rem!important}.mb-xl-2{margin-bottom:.5rem!important}.mb-xl-3{margin-bottom:1rem!important}.mb-xl-4{margin-bottom:1.5rem!important}.mb-xl-5{margin-bottom:3rem!important}.mb-xl-auto{margin-bottom:auto!important}.ms-xl-0{margin-left:0!important}.ms-xl-1{margin-left:.25rem!important}.ms-xl-2{margin-left:.5rem!important}.ms-xl-3{margin-left:1rem!important}.ms-xl-4{margin-left:1.5rem!important}.ms-xl-5{margin-left:3rem!important}.ms-xl-auto{margin-left:auto!important}.p-xl-0{padding:0!important}.p-xl-1{padding:.25rem!important}.p-xl-2{padding:.5rem!important}.p-xl-3{padding:1rem!important}.p-xl-4{padding:1.5rem!important}.p-xl-5{padding:3rem!important}.px-xl-0{padding-right:0!important;padding-left:0!important}.px-xl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xl-0{padding-top:0!important;padding-bottom:0!important}.py-xl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xl-0{padding-top:0!important}.pt-xl-1{padding-top:.25rem!important}.pt-xl-2{padding-top:.5rem!important}.pt-xl-3{padding-top:1rem!important}.pt-xl-4{padding-top:1.5rem!important}.pt-xl-5{padding-top:3rem!important}.pe-xl-0{padding-right:0!important}.pe-xl-1{padding-right:.25rem!important}.pe-xl-2{padding-right:.5rem!important}.pe-xl-3{padding-right:1rem!important}.pe-xl-4{padding-right:1.5rem!important}.pe-xl-5{padding-right:3rem!important}.pb-xl-0{padding-bottom:0!important}.pb-xl-1{padding-bottom:.25rem!important}.pb-xl-2{padding-bottom:.5rem!important}.pb-xl-3{padding-bottom:1rem!important}.pb-xl-4{padding-bottom:1.5rem!important}.pb-xl-5{padding-bottom:3rem!important}.ps-xl-0{padding-left:0!important}.ps-xl-1{padding-left:.25rem!important}.ps-xl-2{padding-left:.5rem!important}.ps-xl-3{padding-left:1rem!important}.ps-xl-4{padding-left:1.5rem!important}.ps-xl-5{padding-left:3rem!important}.text-xl-start{text-align:left!important}.text-xl-end{text-align:right!important}.text-xl-center{text-align:center!important}}@media (min-width:1400px){.float-xxl-start{float:left!important}.float-xxl-end{float:right!important}.float-xxl-none{float:none!important}.d-xxl-inline{display:inline!important}.d-xxl-inline-block{display:inline-block!important}.d-xxl-block{display:block!important}.d-xxl-grid{display:grid!important}.d-xxl-table{display:table!important}.d-xxl-table-row{display:table-row!important}.d-xxl-table-cell{display:table-cell!important}.d-xxl-flex{display:flex!important}.d-xxl-inline-flex{display:inline-flex!important}.d-xxl-none{display:none!important}.flex-xxl-fill{flex:1 1 auto!important}.flex-xxl-row{flex-direction:row!important}.flex-xxl-column{flex-direction:column!important}.flex-xxl-row-reverse{flex-direction:row-reverse!important}.flex-xxl-column-reverse{flex-direction:column-reverse!important}.flex-xxl-grow-0{flex-grow:0!important}.flex-xxl-grow-1{flex-grow:1!important}.flex-xxl-shrink-0{flex-shrink:0!important}.flex-xxl-shrink-1{flex-shrink:1!important}.flex-xxl-wrap{flex-wrap:wrap!important}.flex-xxl-nowrap{flex-wrap:nowrap!important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-xxl-0{gap:0!important}.gap-xxl-1{gap:.25rem!important}.gap-xxl-2{gap:.5rem!important}.gap-xxl-3{gap:1rem!important}.gap-xxl-4{gap:1.5rem!important}.gap-xxl-5{gap:3rem!important}.justify-content-xxl-start{justify-content:flex-start!important}.justify-content-xxl-end{justify-content:flex-end!important}.justify-content-xxl-center{justify-content:center!important}.justify-content-xxl-between{justify-content:space-between!important}.justify-content-xxl-around{justify-content:space-around!important}.justify-content-xxl-evenly{justify-content:space-evenly!important}.align-items-xxl-start{align-items:flex-start!important}.align-items-xxl-end{align-items:flex-end!important}.align-items-xxl-center{align-items:center!important}.align-items-xxl-baseline{align-items:baseline!important}.align-items-xxl-stretch{align-items:stretch!important}.align-content-xxl-start{align-content:flex-start!important}.align-content-xxl-end{align-content:flex-end!important}.align-content-xxl-center{align-content:center!important}.align-content-xxl-between{align-content:space-between!important}.align-content-xxl-around{align-content:space-around!important}.align-content-xxl-stretch{align-content:stretch!important}.align-self-xxl-auto{align-self:auto!important}.align-self-xxl-start{align-self:flex-start!important}.align-self-xxl-end{align-self:flex-end!important}.align-self-xxl-center{align-self:center!important}.align-self-xxl-baseline{align-self:baseline!important}.align-self-xxl-stretch{align-self:stretch!important}.order-xxl-first{order:-1!important}.order-xxl-0{order:0!important}.order-xxl-1{order:1!important}.order-xxl-2{order:2!important}.order-xxl-3{order:3!important}.order-xxl-4{order:4!important}.order-xxl-5{order:5!important}.order-xxl-last{order:6!important}.m-xxl-0{margin:0!important}.m-xxl-1{margin:.25rem!important}.m-xxl-2{margin:.5rem!important}.m-xxl-3{margin:1rem!important}.m-xxl-4{margin:1.5rem!important}.m-xxl-5{margin:3rem!important}.m-xxl-auto{margin:auto!important}.mx-xxl-0{margin-right:0!important;margin-left:0!important}.mx-xxl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xxl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xxl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xxl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xxl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xxl-auto{margin-right:auto!important;margin-left:auto!important}.my-xxl-0{margin-top:0!important;margin-bottom:0!important}.my-xxl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xxl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xxl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xxl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xxl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xxl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xxl-0{margin-top:0!important}.mt-xxl-1{margin-top:.25rem!important}.mt-xxl-2{margin-top:.5rem!important}.mt-xxl-3{margin-top:1rem!important}.mt-xxl-4{margin-top:1.5rem!important}.mt-xxl-5{margin-top:3rem!important}.mt-xxl-auto{margin-top:auto!important}.me-xxl-0{margin-right:0!important}.me-xxl-1{margin-right:.25rem!important}.me-xxl-2{margin-right:.5rem!important}.me-xxl-3{margin-right:1rem!important}.me-xxl-4{margin-right:1.5rem!important}.me-xxl-5{margin-right:3rem!important}.me-xxl-auto{margin-right:auto!important}.mb-xxl-0{margin-bottom:0!important}.mb-xxl-1{margin-bottom:.25rem!important}.mb-xxl-2{margin-bottom:.5rem!important}.mb-xxl-3{margin-bottom:1rem!important}.mb-xxl-4{margin-bottom:1.5rem!important}.mb-xxl-5{margin-bottom:3rem!important}.mb-xxl-auto{margin-bottom:auto!important}.ms-xxl-0{margin-left:0!important}.ms-xxl-1{margin-left:.25rem!important}.ms-xxl-2{margin-left:.5rem!important}.ms-xxl-3{margin-left:1rem!important}.ms-xxl-4{margin-left:1.5rem!important}.ms-xxl-5{margin-left:3rem!important}.ms-xxl-auto{margin-left:auto!important}.p-xxl-0{padding:0!important}.p-xxl-1{padding:.25rem!important}.p-xxl-2{padding:.5rem!important}.p-xxl-3{padding:1rem!important}.p-xxl-4{padding:1.5rem!important}.p-xxl-5{padding:3rem!important}.px-xxl-0{padding-right:0!important;padding-left:0!important}.px-xxl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xxl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xxl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xxl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xxl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xxl-0{padding-top:0!important;padding-bottom:0!important}.py-xxl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xxl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xxl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xxl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xxl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xxl-0{padding-top:0!important}.pt-xxl-1{padding-top:.25rem!important}.pt-xxl-2{padding-top:.5rem!important}.pt-xxl-3{padding-top:1rem!important}.pt-xxl-4{padding-top:1.5rem!important}.pt-xxl-5{padding-top:3rem!important}.pe-xxl-0{padding-right:0!important}.pe-xxl-1{padding-right:.25rem!important}.pe-xxl-2{padding-right:.5rem!important}.pe-xxl-3{padding-right:1rem!important}.pe-xxl-4{padding-right:1.5rem!important}.pe-xxl-5{padding-right:3rem!important}.pb-xxl-0{padding-bottom:0!important}.pb-xxl-1{padding-bottom:.25rem!important}.pb-xxl-2{padding-bottom:.5rem!important}.pb-xxl-3{padding-bottom:1rem!important}.pb-xxl-4{padding-bottom:1.5rem!important}.pb-xxl-5{padding-bottom:3rem!important}.ps-xxl-0{padding-left:0!important}.ps-xxl-1{padding-left:.25rem!important}.ps-xxl-2{padding-left:.5rem!important}.ps-xxl-3{padding-left:1rem!important}.ps-xxl-4{padding-left:1.5rem!important}.ps-xxl-5{padding-left:3rem!important}.text-xxl-start{text-align:left!important}.text-xxl-end{text-align:right!important}.text-xxl-center{text-align:center!important}}@media (min-width:1200px){.fs-1{font-size:2.5rem!important}.fs-2{font-size:2rem!important}.fs-3{font-size:1.75rem!important}.fs-4{font-size:1.5rem!important}}@media print{.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-grid{display:grid!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}.d-print-none{display:none!important}} -/*# sourceMappingURL=bootstrap.min.css.map */ -/*! - * Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com - * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) - */ - .fa,.fab,.fad,.fal,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s linear infinite;animation:fa-spin 2s linear infinite}.fa-pulse{-webkit-animation:fa-spin 1s steps(8) infinite;animation:fa-spin 1s steps(8) infinite}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-webkit-transform:scaleY(-1);transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical,.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1);transform:scale(-1)}:root .fa-flip-both,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{-webkit-filter:none;filter:none}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-500px:before{content:"\f26e"}.fa-accessible-icon:before{content:"\f368"}.fa-accusoft:before{content:"\f369"}.fa-acquisitions-incorporated:before{content:"\f6af"}.fa-ad:before{content:"\f641"}.fa-address-book:before{content:"\f2b9"}.fa-address-card:before{content:"\f2bb"}.fa-adjust:before{content:"\f042"}.fa-adn:before{content:"\f170"}.fa-adversal:before{content:"\f36a"}.fa-affiliatetheme:before{content:"\f36b"}.fa-air-freshener:before{content:"\f5d0"}.fa-airbnb:before{content:"\f834"}.fa-algolia:before{content:"\f36c"}.fa-align-center:before{content:"\f037"}.fa-align-justify:before{content:"\f039"}.fa-align-left:before{content:"\f036"}.fa-align-right:before{content:"\f038"}.fa-alipay:before{content:"\f642"}.fa-allergies:before{content:"\f461"}.fa-amazon:before{content:"\f270"}.fa-amazon-pay:before{content:"\f42c"}.fa-ambulance:before{content:"\f0f9"}.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-amilia:before{content:"\f36d"}.fa-anchor:before{content:"\f13d"}.fa-android:before{content:"\f17b"}.fa-angellist:before{content:"\f209"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-down:before{content:"\f107"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angry:before{content:"\f556"}.fa-angrycreative:before{content:"\f36e"}.fa-angular:before{content:"\f420"}.fa-ankh:before{content:"\f644"}.fa-app-store:before{content:"\f36f"}.fa-app-store-ios:before{content:"\f370"}.fa-apper:before{content:"\f371"}.fa-apple:before{content:"\f179"}.fa-apple-alt:before{content:"\f5d1"}.fa-apple-pay:before{content:"\f415"}.fa-archive:before{content:"\f187"}.fa-archway:before{content:"\f557"}.fa-arrow-alt-circle-down:before{content:"\f358"}.fa-arrow-alt-circle-left:before{content:"\f359"}.fa-arrow-alt-circle-right:before{content:"\f35a"}.fa-arrow-alt-circle-up:before{content:"\f35b"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-down:before{content:"\f063"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrows-alt:before{content:"\f0b2"}.fa-arrows-alt-h:before{content:"\f337"}.fa-arrows-alt-v:before{content:"\f338"}.fa-artstation:before{content:"\f77a"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asterisk:before{content:"\f069"}.fa-asymmetrik:before{content:"\f372"}.fa-at:before{content:"\f1fa"}.fa-atlas:before{content:"\f558"}.fa-atlassian:before{content:"\f77b"}.fa-atom:before{content:"\f5d2"}.fa-audible:before{content:"\f373"}.fa-audio-description:before{content:"\f29e"}.fa-autoprefixer:before{content:"\f41c"}.fa-avianex:before{content:"\f374"}.fa-aviato:before{content:"\f421"}.fa-award:before{content:"\f559"}.fa-aws:before{content:"\f375"}.fa-baby:before{content:"\f77c"}.fa-baby-carriage:before{content:"\f77d"}.fa-backspace:before{content:"\f55a"}.fa-backward:before{content:"\f04a"}.fa-bacon:before{content:"\f7e5"}.fa-bacteria:before{content:"\e059"}.fa-bacterium:before{content:"\e05a"}.fa-bahai:before{content:"\f666"}.fa-balance-scale:before{content:"\f24e"}.fa-balance-scale-left:before{content:"\f515"}.fa-balance-scale-right:before{content:"\f516"}.fa-ban:before{content:"\f05e"}.fa-band-aid:before{content:"\f462"}.fa-bandcamp:before{content:"\f2d5"}.fa-barcode:before{content:"\f02a"}.fa-bars:before{content:"\f0c9"}.fa-baseball-ball:before{content:"\f433"}.fa-basketball-ball:before{content:"\f434"}.fa-bath:before{content:"\f2cd"}.fa-battery-empty:before{content:"\f244"}.fa-battery-full:before{content:"\f240"}.fa-battery-half:before{content:"\f242"}.fa-battery-quarter:before{content:"\f243"}.fa-battery-three-quarters:before{content:"\f241"}.fa-battle-net:before{content:"\f835"}.fa-bed:before{content:"\f236"}.fa-beer:before{content:"\f0fc"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-bell:before{content:"\f0f3"}.fa-bell-slash:before{content:"\f1f6"}.fa-bezier-curve:before{content:"\f55b"}.fa-bible:before{content:"\f647"}.fa-bicycle:before{content:"\f206"}.fa-biking:before{content:"\f84a"}.fa-bimobject:before{content:"\f378"}.fa-binoculars:before{content:"\f1e5"}.fa-biohazard:before{content:"\f780"}.fa-birthday-cake:before{content:"\f1fd"}.fa-bitbucket:before{content:"\f171"}.fa-bitcoin:before{content:"\f379"}.fa-bity:before{content:"\f37a"}.fa-black-tie:before{content:"\f27e"}.fa-blackberry:before{content:"\f37b"}.fa-blender:before{content:"\f517"}.fa-blender-phone:before{content:"\f6b6"}.fa-blind:before{content:"\f29d"}.fa-blog:before{content:"\f781"}.fa-blogger:before{content:"\f37c"}.fa-blogger-b:before{content:"\f37d"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-bold:before{content:"\f032"}.fa-bolt:before{content:"\f0e7"}.fa-bomb:before{content:"\f1e2"}.fa-bone:before{content:"\f5d7"}.fa-bong:before{content:"\f55c"}.fa-book:before{content:"\f02d"}.fa-book-dead:before{content:"\f6b7"}.fa-book-medical:before{content:"\f7e6"}.fa-book-open:before{content:"\f518"}.fa-book-reader:before{content:"\f5da"}.fa-bookmark:before{content:"\f02e"}.fa-bootstrap:before{content:"\f836"}.fa-border-all:before{content:"\f84c"}.fa-border-none:before{content:"\f850"}.fa-border-style:before{content:"\f853"}.fa-bowling-ball:before{content:"\f436"}.fa-box:before{content:"\f466"}.fa-box-open:before{content:"\f49e"}.fa-box-tissue:before{content:"\e05b"}.fa-boxes:before{content:"\f468"}.fa-braille:before{content:"\f2a1"}.fa-brain:before{content:"\f5dc"}.fa-bread-slice:before{content:"\f7ec"}.fa-briefcase:before{content:"\f0b1"}.fa-briefcase-medical:before{content:"\f469"}.fa-broadcast-tower:before{content:"\f519"}.fa-broom:before{content:"\f51a"}.fa-brush:before{content:"\f55d"}.fa-btc:before{content:"\f15a"}.fa-buffer:before{content:"\f837"}.fa-bug:before{content:"\f188"}.fa-building:before{content:"\f1ad"}.fa-bullhorn:before{content:"\f0a1"}.fa-bullseye:before{content:"\f140"}.fa-burn:before{content:"\f46a"}.fa-buromobelexperte:before{content:"\f37f"}.fa-bus:before{content:"\f207"}.fa-bus-alt:before{content:"\f55e"}.fa-business-time:before{content:"\f64a"}.fa-buy-n-large:before{content:"\f8a6"}.fa-buysellads:before{content:"\f20d"}.fa-calculator:before{content:"\f1ec"}.fa-calendar:before{content:"\f133"}.fa-calendar-alt:before{content:"\f073"}.fa-calendar-check:before{content:"\f274"}.fa-calendar-day:before{content:"\f783"}.fa-calendar-minus:before{content:"\f272"}.fa-calendar-plus:before{content:"\f271"}.fa-calendar-times:before{content:"\f273"}.fa-calendar-week:before{content:"\f784"}.fa-camera:before{content:"\f030"}.fa-camera-retro:before{content:"\f083"}.fa-campground:before{content:"\f6bb"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-candy-cane:before{content:"\f786"}.fa-cannabis:before{content:"\f55f"}.fa-capsules:before{content:"\f46b"}.fa-car:before{content:"\f1b9"}.fa-car-alt:before{content:"\f5de"}.fa-car-battery:before{content:"\f5df"}.fa-car-crash:before{content:"\f5e1"}.fa-car-side:before{content:"\f5e4"}.fa-caravan:before{content:"\f8ff"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-caret-square-down:before{content:"\f150"}.fa-caret-square-left:before{content:"\f191"}.fa-caret-square-right:before{content:"\f152"}.fa-caret-square-up:before{content:"\f151"}.fa-caret-up:before{content:"\f0d8"}.fa-carrot:before{content:"\f787"}.fa-cart-arrow-down:before{content:"\f218"}.fa-cart-plus:before{content:"\f217"}.fa-cash-register:before{content:"\f788"}.fa-cat:before{content:"\f6be"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-apple-pay:before{content:"\f416"}.fa-cc-diners-club:before{content:"\f24c"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-cc-visa:before{content:"\f1f0"}.fa-centercode:before{content:"\f380"}.fa-centos:before{content:"\f789"}.fa-certificate:before{content:"\f0a3"}.fa-chair:before{content:"\f6c0"}.fa-chalkboard:before{content:"\f51b"}.fa-chalkboard-teacher:before{content:"\f51c"}.fa-charging-station:before{content:"\f5e7"}.fa-chart-area:before{content:"\f1fe"}.fa-chart-bar:before{content:"\f080"}.fa-chart-line:before{content:"\f201"}.fa-chart-pie:before{content:"\f200"}.fa-check:before{content:"\f00c"}.fa-check-circle:before{content:"\f058"}.fa-check-double:before{content:"\f560"}.fa-check-square:before{content:"\f14a"}.fa-cheese:before{content:"\f7ef"}.fa-chess:before{content:"\f439"}.fa-chess-bishop:before{content:"\f43a"}.fa-chess-board:before{content:"\f43c"}.fa-chess-king:before{content:"\f43f"}.fa-chess-knight:before{content:"\f441"}.fa-chess-pawn:before{content:"\f443"}.fa-chess-queen:before{content:"\f445"}.fa-chess-rook:before{content:"\f447"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-down:before{content:"\f078"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-chevron-up:before{content:"\f077"}.fa-child:before{content:"\f1ae"}.fa-chrome:before{content:"\f268"}.fa-chromecast:before{content:"\f838"}.fa-church:before{content:"\f51d"}.fa-circle:before{content:"\f111"}.fa-circle-notch:before{content:"\f1ce"}.fa-city:before{content:"\f64f"}.fa-clinic-medical:before{content:"\f7f2"}.fa-clipboard:before{content:"\f328"}.fa-clipboard-check:before{content:"\f46c"}.fa-clipboard-list:before{content:"\f46d"}.fa-clock:before{content:"\f017"}.fa-clone:before{content:"\f24d"}.fa-closed-captioning:before{content:"\f20a"}.fa-cloud:before{content:"\f0c2"}.fa-cloud-download-alt:before{content:"\f381"}.fa-cloud-meatball:before{content:"\f73b"}.fa-cloud-moon:before{content:"\f6c3"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-cloud-rain:before{content:"\f73d"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-cloud-sun:before{content:"\f6c4"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-cloud-upload-alt:before{content:"\f382"}.fa-cloudflare:before{content:"\e07d"}.fa-cloudscale:before{content:"\f383"}.fa-cloudsmith:before{content:"\f384"}.fa-cloudversify:before{content:"\f385"}.fa-cocktail:before{content:"\f561"}.fa-code:before{content:"\f121"}.fa-code-branch:before{content:"\f126"}.fa-codepen:before{content:"\f1cb"}.fa-codiepie:before{content:"\f284"}.fa-coffee:before{content:"\f0f4"}.fa-cog:before{content:"\f013"}.fa-cogs:before{content:"\f085"}.fa-coins:before{content:"\f51e"}.fa-columns:before{content:"\f0db"}.fa-comment:before{content:"\f075"}.fa-comment-alt:before{content:"\f27a"}.fa-comment-dollar:before{content:"\f651"}.fa-comment-dots:before{content:"\f4ad"}.fa-comment-medical:before{content:"\f7f5"}.fa-comment-slash:before{content:"\f4b3"}.fa-comments:before{content:"\f086"}.fa-comments-dollar:before{content:"\f653"}.fa-compact-disc:before{content:"\f51f"}.fa-compass:before{content:"\f14e"}.fa-compress:before{content:"\f066"}.fa-compress-alt:before{content:"\f422"}.fa-compress-arrows-alt:before{content:"\f78c"}.fa-concierge-bell:before{content:"\f562"}.fa-confluence:before{content:"\f78d"}.fa-connectdevelop:before{content:"\f20e"}.fa-contao:before{content:"\f26d"}.fa-cookie:before{content:"\f563"}.fa-cookie-bite:before{content:"\f564"}.fa-copy:before{content:"\f0c5"}.fa-copyright:before{content:"\f1f9"}.fa-cotton-bureau:before{content:"\f89e"}.fa-couch:before{content:"\f4b8"}.fa-cpanel:before{content:"\f388"}.fa-creative-commons:before{content:"\f25e"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-credit-card:before{content:"\f09d"}.fa-critical-role:before{content:"\f6c9"}.fa-crop:before{content:"\f125"}.fa-crop-alt:before{content:"\f565"}.fa-cross:before{content:"\f654"}.fa-crosshairs:before{content:"\f05b"}.fa-crow:before{content:"\f520"}.fa-crown:before{content:"\f521"}.fa-crutch:before{content:"\f7f7"}.fa-css3:before{content:"\f13c"}.fa-css3-alt:before{content:"\f38b"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-cut:before{content:"\f0c4"}.fa-cuttlefish:before{content:"\f38c"}.fa-d-and-d:before{content:"\f38d"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-dailymotion:before{content:"\e052"}.fa-dashcube:before{content:"\f210"}.fa-database:before{content:"\f1c0"}.fa-deaf:before{content:"\f2a4"}.fa-deezer:before{content:"\e077"}.fa-delicious:before{content:"\f1a5"}.fa-democrat:before{content:"\f747"}.fa-deploydog:before{content:"\f38e"}.fa-deskpro:before{content:"\f38f"}.fa-desktop:before{content:"\f108"}.fa-dev:before{content:"\f6cc"}.fa-deviantart:before{content:"\f1bd"}.fa-dharmachakra:before{content:"\f655"}.fa-dhl:before{content:"\f790"}.fa-diagnoses:before{content:"\f470"}.fa-diaspora:before{content:"\f791"}.fa-dice:before{content:"\f522"}.fa-dice-d20:before{content:"\f6cf"}.fa-dice-d6:before{content:"\f6d1"}.fa-dice-five:before{content:"\f523"}.fa-dice-four:before{content:"\f524"}.fa-dice-one:before{content:"\f525"}.fa-dice-six:before{content:"\f526"}.fa-dice-three:before{content:"\f527"}.fa-dice-two:before{content:"\f528"}.fa-digg:before{content:"\f1a6"}.fa-digital-ocean:before{content:"\f391"}.fa-digital-tachograph:before{content:"\f566"}.fa-directions:before{content:"\f5eb"}.fa-discord:before{content:"\f392"}.fa-discourse:before{content:"\f393"}.fa-disease:before{content:"\f7fa"}.fa-divide:before{content:"\f529"}.fa-dizzy:before{content:"\f567"}.fa-dna:before{content:"\f471"}.fa-dochub:before{content:"\f394"}.fa-docker:before{content:"\f395"}.fa-dog:before{content:"\f6d3"}.fa-dollar-sign:before{content:"\f155"}.fa-dolly:before{content:"\f472"}.fa-dolly-flatbed:before{content:"\f474"}.fa-donate:before{content:"\f4b9"}.fa-door-closed:before{content:"\f52a"}.fa-door-open:before{content:"\f52b"}.fa-dot-circle:before{content:"\f192"}.fa-dove:before{content:"\f4ba"}.fa-download:before{content:"\f019"}.fa-draft2digital:before{content:"\f396"}.fa-drafting-compass:before{content:"\f568"}.fa-dragon:before{content:"\f6d5"}.fa-draw-polygon:before{content:"\f5ee"}.fa-dribbble:before{content:"\f17d"}.fa-dribbble-square:before{content:"\f397"}.fa-dropbox:before{content:"\f16b"}.fa-drum:before{content:"\f569"}.fa-drum-steelpan:before{content:"\f56a"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-drupal:before{content:"\f1a9"}.fa-dumbbell:before{content:"\f44b"}.fa-dumpster:before{content:"\f793"}.fa-dumpster-fire:before{content:"\f794"}.fa-dungeon:before{content:"\f6d9"}.fa-dyalog:before{content:"\f399"}.fa-earlybirds:before{content:"\f39a"}.fa-ebay:before{content:"\f4f4"}.fa-edge:before{content:"\f282"}.fa-edge-legacy:before{content:"\e078"}.fa-edit:before{content:"\f044"}.fa-egg:before{content:"\f7fb"}.fa-eject:before{content:"\f052"}.fa-elementor:before{content:"\f430"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-ello:before{content:"\f5f1"}.fa-ember:before{content:"\f423"}.fa-empire:before{content:"\f1d1"}.fa-envelope:before{content:"\f0e0"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-text:before{content:"\f658"}.fa-envelope-square:before{content:"\f199"}.fa-envira:before{content:"\f299"}.fa-equals:before{content:"\f52c"}.fa-eraser:before{content:"\f12d"}.fa-erlang:before{content:"\f39d"}.fa-ethereum:before{content:"\f42e"}.fa-ethernet:before{content:"\f796"}.fa-etsy:before{content:"\f2d7"}.fa-euro-sign:before{content:"\f153"}.fa-evernote:before{content:"\f839"}.fa-exchange-alt:before{content:"\f362"}.fa-exclamation:before{content:"\f12a"}.fa-exclamation-circle:before{content:"\f06a"}.fa-exclamation-triangle:before{content:"\f071"}.fa-expand:before{content:"\f065"}.fa-expand-alt:before{content:"\f424"}.fa-expand-arrows-alt:before{content:"\f31e"}.fa-expeditedssl:before{content:"\f23e"}.fa-external-link-alt:before{content:"\f35d"}.fa-external-link-square-alt:before{content:"\f360"}.fa-eye:before{content:"\f06e"}.fa-eye-dropper:before{content:"\f1fb"}.fa-eye-slash:before{content:"\f070"}.fa-facebook:before{content:"\f09a"}.fa-facebook-f:before{content:"\f39e"}.fa-facebook-messenger:before{content:"\f39f"}.fa-facebook-square:before{content:"\f082"}.fa-fan:before{content:"\f863"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-fast-backward:before{content:"\f049"}.fa-fast-forward:before{content:"\f050"}.fa-faucet:before{content:"\e005"}.fa-fax:before{content:"\f1ac"}.fa-feather:before{content:"\f52d"}.fa-feather-alt:before{content:"\f56b"}.fa-fedex:before{content:"\f797"}.fa-fedora:before{content:"\f798"}.fa-female:before{content:"\f182"}.fa-fighter-jet:before{content:"\f0fb"}.fa-figma:before{content:"\f799"}.fa-file:before{content:"\f15b"}.fa-file-alt:before{content:"\f15c"}.fa-file-archive:before{content:"\f1c6"}.fa-file-audio:before{content:"\f1c7"}.fa-file-code:before{content:"\f1c9"}.fa-file-contract:before{content:"\f56c"}.fa-file-csv:before{content:"\f6dd"}.fa-file-download:before{content:"\f56d"}.fa-file-excel:before{content:"\f1c3"}.fa-file-export:before{content:"\f56e"}.fa-file-image:before{content:"\f1c5"}.fa-file-import:before{content:"\f56f"}.fa-file-invoice:before{content:"\f570"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-file-medical:before{content:"\f477"}.fa-file-medical-alt:before{content:"\f478"}.fa-file-pdf:before{content:"\f1c1"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-file-prescription:before{content:"\f572"}.fa-file-signature:before{content:"\f573"}.fa-file-upload:before{content:"\f574"}.fa-file-video:before{content:"\f1c8"}.fa-file-word:before{content:"\f1c2"}.fa-fill:before{content:"\f575"}.fa-fill-drip:before{content:"\f576"}.fa-film:before{content:"\f008"}.fa-filter:before{content:"\f0b0"}.fa-fingerprint:before{content:"\f577"}.fa-fire:before{content:"\f06d"}.fa-fire-alt:before{content:"\f7e4"}.fa-fire-extinguisher:before{content:"\f134"}.fa-firefox:before{content:"\f269"}.fa-firefox-browser:before{content:"\e007"}.fa-first-aid:before{content:"\f479"}.fa-first-order:before{content:"\f2b0"}.fa-first-order-alt:before{content:"\f50a"}.fa-firstdraft:before{content:"\f3a1"}.fa-fish:before{content:"\f578"}.fa-fist-raised:before{content:"\f6de"}.fa-flag:before{content:"\f024"}.fa-flag-checkered:before{content:"\f11e"}.fa-flag-usa:before{content:"\f74d"}.fa-flask:before{content:"\f0c3"}.fa-flickr:before{content:"\f16e"}.fa-flipboard:before{content:"\f44d"}.fa-flushed:before{content:"\f579"}.fa-fly:before{content:"\f417"}.fa-folder:before{content:"\f07b"}.fa-folder-minus:before{content:"\f65d"}.fa-folder-open:before{content:"\f07c"}.fa-folder-plus:before{content:"\f65e"}.fa-font:before{content:"\f031"}.fa-font-awesome:before{content:"\f2b4"}.fa-font-awesome-alt:before{content:"\f35c"}.fa-font-awesome-flag:before{content:"\f425"}.fa-font-awesome-logo-full:before{content:"\f4e6"}.fa-fonticons:before{content:"\f280"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-football-ball:before{content:"\f44e"}.fa-fort-awesome:before{content:"\f286"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-forumbee:before{content:"\f211"}.fa-forward:before{content:"\f04e"}.fa-foursquare:before{content:"\f180"}.fa-free-code-camp:before{content:"\f2c5"}.fa-freebsd:before{content:"\f3a4"}.fa-frog:before{content:"\f52e"}.fa-frown:before{content:"\f119"}.fa-frown-open:before{content:"\f57a"}.fa-fulcrum:before{content:"\f50b"}.fa-funnel-dollar:before{content:"\f662"}.fa-futbol:before{content:"\f1e3"}.fa-galactic-republic:before{content:"\f50c"}.fa-galactic-senate:before{content:"\f50d"}.fa-gamepad:before{content:"\f11b"}.fa-gas-pump:before{content:"\f52f"}.fa-gavel:before{content:"\f0e3"}.fa-gem:before{content:"\f3a5"}.fa-genderless:before{content:"\f22d"}.fa-get-pocket:before{content:"\f265"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-ghost:before{content:"\f6e2"}.fa-gift:before{content:"\f06b"}.fa-gifts:before{content:"\f79c"}.fa-git:before{content:"\f1d3"}.fa-git-alt:before{content:"\f841"}.fa-git-square:before{content:"\f1d2"}.fa-github:before{content:"\f09b"}.fa-github-alt:before{content:"\f113"}.fa-github-square:before{content:"\f092"}.fa-gitkraken:before{content:"\f3a6"}.fa-gitlab:before{content:"\f296"}.fa-gitter:before{content:"\f426"}.fa-glass-cheers:before{content:"\f79f"}.fa-glass-martini:before{content:"\f000"}.fa-glass-martini-alt:before{content:"\f57b"}.fa-glass-whiskey:before{content:"\f7a0"}.fa-glasses:before{content:"\f530"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-globe:before{content:"\f0ac"}.fa-globe-africa:before{content:"\f57c"}.fa-globe-americas:before{content:"\f57d"}.fa-globe-asia:before{content:"\f57e"}.fa-globe-europe:before{content:"\f7a2"}.fa-gofore:before{content:"\f3a7"}.fa-golf-ball:before{content:"\f450"}.fa-goodreads:before{content:"\f3a8"}.fa-goodreads-g:before{content:"\f3a9"}.fa-google:before{content:"\f1a0"}.fa-google-drive:before{content:"\f3aa"}.fa-google-pay:before{content:"\e079"}.fa-google-play:before{content:"\f3ab"}.fa-google-plus:before{content:"\f2b3"}.fa-google-plus-g:before{content:"\f0d5"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-wallet:before{content:"\f1ee"}.fa-gopuram:before{content:"\f664"}.fa-graduation-cap:before{content:"\f19d"}.fa-gratipay:before{content:"\f184"}.fa-grav:before{content:"\f2d6"}.fa-greater-than:before{content:"\f531"}.fa-greater-than-equal:before{content:"\f532"}.fa-grimace:before{content:"\f57f"}.fa-grin:before{content:"\f580"}.fa-grin-alt:before{content:"\f581"}.fa-grin-beam:before{content:"\f582"}.fa-grin-beam-sweat:before{content:"\f583"}.fa-grin-hearts:before{content:"\f584"}.fa-grin-squint:before{content:"\f585"}.fa-grin-squint-tears:before{content:"\f586"}.fa-grin-stars:before{content:"\f587"}.fa-grin-tears:before{content:"\f588"}.fa-grin-tongue:before{content:"\f589"}.fa-grin-tongue-squint:before{content:"\f58a"}.fa-grin-tongue-wink:before{content:"\f58b"}.fa-grin-wink:before{content:"\f58c"}.fa-grip-horizontal:before{content:"\f58d"}.fa-grip-lines:before{content:"\f7a4"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-grip-vertical:before{content:"\f58e"}.fa-gripfire:before{content:"\f3ac"}.fa-grunt:before{content:"\f3ad"}.fa-guilded:before{content:"\e07e"}.fa-guitar:before{content:"\f7a6"}.fa-gulp:before{content:"\f3ae"}.fa-h-square:before{content:"\f0fd"}.fa-hacker-news:before{content:"\f1d4"}.fa-hacker-news-square:before{content:"\f3af"}.fa-hackerrank:before{content:"\f5f7"}.fa-hamburger:before{content:"\f805"}.fa-hammer:before{content:"\f6e3"}.fa-hamsa:before{content:"\f665"}.fa-hand-holding:before{content:"\f4bd"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-hand-holding-medical:before{content:"\e05c"}.fa-hand-holding-usd:before{content:"\f4c0"}.fa-hand-holding-water:before{content:"\f4c1"}.fa-hand-lizard:before{content:"\f258"}.fa-hand-middle-finger:before{content:"\f806"}.fa-hand-paper:before{content:"\f256"}.fa-hand-peace:before{content:"\f25b"}.fa-hand-point-down:before{content:"\f0a7"}.fa-hand-point-left:before{content:"\f0a5"}.fa-hand-point-right:before{content:"\f0a4"}.fa-hand-point-up:before{content:"\f0a6"}.fa-hand-pointer:before{content:"\f25a"}.fa-hand-rock:before{content:"\f255"}.fa-hand-scissors:before{content:"\f257"}.fa-hand-sparkles:before{content:"\e05d"}.fa-hand-spock:before{content:"\f259"}.fa-hands:before{content:"\f4c2"}.fa-hands-helping:before{content:"\f4c4"}.fa-hands-wash:before{content:"\e05e"}.fa-handshake:before{content:"\f2b5"}.fa-handshake-alt-slash:before{content:"\e05f"}.fa-handshake-slash:before{content:"\e060"}.fa-hanukiah:before{content:"\f6e6"}.fa-hard-hat:before{content:"\f807"}.fa-hashtag:before{content:"\f292"}.fa-hat-cowboy:before{content:"\f8c0"}.fa-hat-cowboy-side:before{content:"\f8c1"}.fa-hat-wizard:before{content:"\f6e8"}.fa-hdd:before{content:"\f0a0"}.fa-head-side-cough:before{content:"\e061"}.fa-head-side-cough-slash:before{content:"\e062"}.fa-head-side-mask:before{content:"\e063"}.fa-head-side-virus:before{content:"\e064"}.fa-heading:before{content:"\f1dc"}.fa-headphones:before{content:"\f025"}.fa-headphones-alt:before{content:"\f58f"}.fa-headset:before{content:"\f590"}.fa-heart:before{content:"\f004"}.fa-heart-broken:before{content:"\f7a9"}.fa-heartbeat:before{content:"\f21e"}.fa-helicopter:before{content:"\f533"}.fa-highlighter:before{content:"\f591"}.fa-hiking:before{content:"\f6ec"}.fa-hippo:before{content:"\f6ed"}.fa-hips:before{content:"\f452"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-history:before{content:"\f1da"}.fa-hive:before{content:"\e07f"}.fa-hockey-puck:before{content:"\f453"}.fa-holly-berry:before{content:"\f7aa"}.fa-home:before{content:"\f015"}.fa-hooli:before{content:"\f427"}.fa-hornbill:before{content:"\f592"}.fa-horse:before{content:"\f6f0"}.fa-horse-head:before{content:"\f7ab"}.fa-hospital:before{content:"\f0f8"}.fa-hospital-alt:before{content:"\f47d"}.fa-hospital-symbol:before{content:"\f47e"}.fa-hospital-user:before{content:"\f80d"}.fa-hot-tub:before{content:"\f593"}.fa-hotdog:before{content:"\f80f"}.fa-hotel:before{content:"\f594"}.fa-hotjar:before{content:"\f3b1"}.fa-hourglass:before{content:"\f254"}.fa-hourglass-end:before{content:"\f253"}.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-start:before{content:"\f251"}.fa-house-damage:before{content:"\f6f1"}.fa-house-user:before{content:"\e065"}.fa-houzz:before{content:"\f27c"}.fa-hryvnia:before{content:"\f6f2"}.fa-html5:before{content:"\f13b"}.fa-hubspot:before{content:"\f3b2"}.fa-i-cursor:before{content:"\f246"}.fa-ice-cream:before{content:"\f810"}.fa-icicles:before{content:"\f7ad"}.fa-icons:before{content:"\f86d"}.fa-id-badge:before{content:"\f2c1"}.fa-id-card:before{content:"\f2c2"}.fa-id-card-alt:before{content:"\f47f"}.fa-ideal:before{content:"\e013"}.fa-igloo:before{content:"\f7ae"}.fa-image:before{content:"\f03e"}.fa-images:before{content:"\f302"}.fa-imdb:before{content:"\f2d8"}.fa-inbox:before{content:"\f01c"}.fa-indent:before{content:"\f03c"}.fa-industry:before{content:"\f275"}.fa-infinity:before{content:"\f534"}.fa-info:before{content:"\f129"}.fa-info-circle:before{content:"\f05a"}.fa-innosoft:before{content:"\e080"}.fa-instagram:before{content:"\f16d"}.fa-instagram-square:before{content:"\e055"}.fa-instalod:before{content:"\e081"}.fa-intercom:before{content:"\f7af"}.fa-internet-explorer:before{content:"\f26b"}.fa-invision:before{content:"\f7b0"}.fa-ioxhost:before{content:"\f208"}.fa-italic:before{content:"\f033"}.fa-itch-io:before{content:"\f83a"}.fa-itunes:before{content:"\f3b4"}.fa-itunes-note:before{content:"\f3b5"}.fa-java:before{content:"\f4e4"}.fa-jedi:before{content:"\f669"}.fa-jedi-order:before{content:"\f50e"}.fa-jenkins:before{content:"\f3b6"}.fa-jira:before{content:"\f7b1"}.fa-joget:before{content:"\f3b7"}.fa-joint:before{content:"\f595"}.fa-joomla:before{content:"\f1aa"}.fa-journal-whills:before{content:"\f66a"}.fa-js:before{content:"\f3b8"}.fa-js-square:before{content:"\f3b9"}.fa-jsfiddle:before{content:"\f1cc"}.fa-kaaba:before{content:"\f66b"}.fa-kaggle:before{content:"\f5fa"}.fa-key:before{content:"\f084"}.fa-keybase:before{content:"\f4f5"}.fa-keyboard:before{content:"\f11c"}.fa-keycdn:before{content:"\f3ba"}.fa-khanda:before{content:"\f66d"}.fa-kickstarter:before{content:"\f3bb"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-kiss:before{content:"\f596"}.fa-kiss-beam:before{content:"\f597"}.fa-kiss-wink-heart:before{content:"\f598"}.fa-kiwi-bird:before{content:"\f535"}.fa-korvue:before{content:"\f42f"}.fa-landmark:before{content:"\f66f"}.fa-language:before{content:"\f1ab"}.fa-laptop:before{content:"\f109"}.fa-laptop-code:before{content:"\f5fc"}.fa-laptop-house:before{content:"\e066"}.fa-laptop-medical:before{content:"\f812"}.fa-laravel:before{content:"\f3bd"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-laugh:before{content:"\f599"}.fa-laugh-beam:before{content:"\f59a"}.fa-laugh-squint:before{content:"\f59b"}.fa-laugh-wink:before{content:"\f59c"}.fa-layer-group:before{content:"\f5fd"}.fa-leaf:before{content:"\f06c"}.fa-leanpub:before{content:"\f212"}.fa-lemon:before{content:"\f094"}.fa-less:before{content:"\f41d"}.fa-less-than:before{content:"\f536"}.fa-less-than-equal:before{content:"\f537"}.fa-level-down-alt:before{content:"\f3be"}.fa-level-up-alt:before{content:"\f3bf"}.fa-life-ring:before{content:"\f1cd"}.fa-lightbulb:before{content:"\f0eb"}.fa-line:before{content:"\f3c0"}.fa-link:before{content:"\f0c1"}.fa-linkedin:before{content:"\f08c"}.fa-linkedin-in:before{content:"\f0e1"}.fa-linode:before{content:"\f2b8"}.fa-linux:before{content:"\f17c"}.fa-lira-sign:before{content:"\f195"}.fa-list:before{content:"\f03a"}.fa-list-alt:before{content:"\f022"}.fa-list-ol:before{content:"\f0cb"}.fa-list-ul:before{content:"\f0ca"}.fa-location-arrow:before{content:"\f124"}.fa-lock:before{content:"\f023"}.fa-lock-open:before{content:"\f3c1"}.fa-long-arrow-alt-down:before{content:"\f309"}.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-long-arrow-alt-right:before{content:"\f30b"}.fa-long-arrow-alt-up:before{content:"\f30c"}.fa-low-vision:before{content:"\f2a8"}.fa-luggage-cart:before{content:"\f59d"}.fa-lungs:before{content:"\f604"}.fa-lungs-virus:before{content:"\e067"}.fa-lyft:before{content:"\f3c3"}.fa-magento:before{content:"\f3c4"}.fa-magic:before{content:"\f0d0"}.fa-magnet:before{content:"\f076"}.fa-mail-bulk:before{content:"\f674"}.fa-mailchimp:before{content:"\f59e"}.fa-male:before{content:"\f183"}.fa-mandalorian:before{content:"\f50f"}.fa-map:before{content:"\f279"}.fa-map-marked:before{content:"\f59f"}.fa-map-marked-alt:before{content:"\f5a0"}.fa-map-marker:before{content:"\f041"}.fa-map-marker-alt:before{content:"\f3c5"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-markdown:before{content:"\f60f"}.fa-marker:before{content:"\f5a1"}.fa-mars:before{content:"\f222"}.fa-mars-double:before{content:"\f227"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mask:before{content:"\f6fa"}.fa-mastodon:before{content:"\f4f6"}.fa-maxcdn:before{content:"\f136"}.fa-mdb:before{content:"\f8ca"}.fa-medal:before{content:"\f5a2"}.fa-medapps:before{content:"\f3c6"}.fa-medium:before{content:"\f23a"}.fa-medium-m:before{content:"\f3c7"}.fa-medkit:before{content:"\f0fa"}.fa-medrt:before{content:"\f3c8"}.fa-meetup:before{content:"\f2e0"}.fa-megaport:before{content:"\f5a3"}.fa-meh:before{content:"\f11a"}.fa-meh-blank:before{content:"\f5a4"}.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-memory:before{content:"\f538"}.fa-mendeley:before{content:"\f7b3"}.fa-menorah:before{content:"\f676"}.fa-mercury:before{content:"\f223"}.fa-meteor:before{content:"\f753"}.fa-microblog:before{content:"\e01a"}.fa-microchip:before{content:"\f2db"}.fa-microphone:before{content:"\f130"}.fa-microphone-alt:before{content:"\f3c9"}.fa-microphone-alt-slash:before{content:"\f539"}.fa-microphone-slash:before{content:"\f131"}.fa-microscope:before{content:"\f610"}.fa-microsoft:before{content:"\f3ca"}.fa-minus:before{content:"\f068"}.fa-minus-circle:before{content:"\f056"}.fa-minus-square:before{content:"\f146"}.fa-mitten:before{content:"\f7b5"}.fa-mix:before{content:"\f3cb"}.fa-mixcloud:before{content:"\f289"}.fa-mixer:before{content:"\e056"}.fa-mizuni:before{content:"\f3cc"}.fa-mobile:before{content:"\f10b"}.fa-mobile-alt:before{content:"\f3cd"}.fa-modx:before{content:"\f285"}.fa-monero:before{content:"\f3d0"}.fa-money-bill:before{content:"\f0d6"}.fa-money-bill-alt:before{content:"\f3d1"}.fa-money-bill-wave:before{content:"\f53a"}.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-money-check:before{content:"\f53c"}.fa-money-check-alt:before{content:"\f53d"}.fa-monument:before{content:"\f5a6"}.fa-moon:before{content:"\f186"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-mosque:before{content:"\f678"}.fa-motorcycle:before{content:"\f21c"}.fa-mountain:before{content:"\f6fc"}.fa-mouse:before{content:"\f8cc"}.fa-mouse-pointer:before{content:"\f245"}.fa-mug-hot:before{content:"\f7b6"}.fa-music:before{content:"\f001"}.fa-napster:before{content:"\f3d2"}.fa-neos:before{content:"\f612"}.fa-network-wired:before{content:"\f6ff"}.fa-neuter:before{content:"\f22c"}.fa-newspaper:before{content:"\f1ea"}.fa-nimblr:before{content:"\f5a8"}.fa-node:before{content:"\f419"}.fa-node-js:before{content:"\f3d3"}.fa-not-equal:before{content:"\f53e"}.fa-notes-medical:before{content:"\f481"}.fa-npm:before{content:"\f3d4"}.fa-ns8:before{content:"\f3d5"}.fa-nutritionix:before{content:"\f3d6"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-octopus-deploy:before{content:"\e082"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-oil-can:before{content:"\f613"}.fa-old-republic:before{content:"\f510"}.fa-om:before{content:"\f679"}.fa-opencart:before{content:"\f23d"}.fa-openid:before{content:"\f19b"}.fa-opera:before{content:"\f26a"}.fa-optin-monster:before{content:"\f23c"}.fa-orcid:before{content:"\f8d2"}.fa-osi:before{content:"\f41a"}.fa-otter:before{content:"\f700"}.fa-outdent:before{content:"\f03b"}.fa-page4:before{content:"\f3d7"}.fa-pagelines:before{content:"\f18c"}.fa-pager:before{content:"\f815"}.fa-paint-brush:before{content:"\f1fc"}.fa-paint-roller:before{content:"\f5aa"}.fa-palette:before{content:"\f53f"}.fa-palfed:before{content:"\f3d8"}.fa-pallet:before{content:"\f482"}.fa-paper-plane:before{content:"\f1d8"}.fa-paperclip:before{content:"\f0c6"}.fa-parachute-box:before{content:"\f4cd"}.fa-paragraph:before{content:"\f1dd"}.fa-parking:before{content:"\f540"}.fa-passport:before{content:"\f5ab"}.fa-pastafarianism:before{content:"\f67b"}.fa-paste:before{content:"\f0ea"}.fa-patreon:before{content:"\f3d9"}.fa-pause:before{content:"\f04c"}.fa-pause-circle:before{content:"\f28b"}.fa-paw:before{content:"\f1b0"}.fa-paypal:before{content:"\f1ed"}.fa-peace:before{content:"\f67c"}.fa-pen:before{content:"\f304"}.fa-pen-alt:before{content:"\f305"}.fa-pen-fancy:before{content:"\f5ac"}.fa-pen-nib:before{content:"\f5ad"}.fa-pen-square:before{content:"\f14b"}.fa-pencil-alt:before{content:"\f303"}.fa-pencil-ruler:before{content:"\f5ae"}.fa-penny-arcade:before{content:"\f704"}.fa-people-arrows:before{content:"\e068"}.fa-people-carry:before{content:"\f4ce"}.fa-pepper-hot:before{content:"\f816"}.fa-perbyte:before{content:"\e083"}.fa-percent:before{content:"\f295"}.fa-percentage:before{content:"\f541"}.fa-periscope:before{content:"\f3da"}.fa-person-booth:before{content:"\f756"}.fa-phabricator:before{content:"\f3db"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-phoenix-squadron:before{content:"\f511"}.fa-phone:before{content:"\f095"}.fa-phone-alt:before{content:"\f879"}.fa-phone-slash:before{content:"\f3dd"}.fa-phone-square:before{content:"\f098"}.fa-phone-square-alt:before{content:"\f87b"}.fa-phone-volume:before{content:"\f2a0"}.fa-photo-video:before{content:"\f87c"}.fa-php:before{content:"\f457"}.fa-pied-piper:before{content:"\f2ae"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-square:before{content:"\e01e"}.fa-piggy-bank:before{content:"\f4d3"}.fa-pills:before{content:"\f484"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-p:before{content:"\f231"}.fa-pinterest-square:before{content:"\f0d3"}.fa-pizza-slice:before{content:"\f818"}.fa-place-of-worship:before{content:"\f67f"}.fa-plane:before{content:"\f072"}.fa-plane-arrival:before{content:"\f5af"}.fa-plane-departure:before{content:"\f5b0"}.fa-plane-slash:before{content:"\e069"}.fa-play:before{content:"\f04b"}.fa-play-circle:before{content:"\f144"}.fa-playstation:before{content:"\f3df"}.fa-plug:before{content:"\f1e6"}.fa-plus:before{content:"\f067"}.fa-plus-circle:before{content:"\f055"}.fa-plus-square:before{content:"\f0fe"}.fa-podcast:before{content:"\f2ce"}.fa-poll:before{content:"\f681"}.fa-poll-h:before{content:"\f682"}.fa-poo:before{content:"\f2fe"}.fa-poo-storm:before{content:"\f75a"}.fa-poop:before{content:"\f619"}.fa-portrait:before{content:"\f3e0"}.fa-pound-sign:before{content:"\f154"}.fa-power-off:before{content:"\f011"}.fa-pray:before{content:"\f683"}.fa-praying-hands:before{content:"\f684"}.fa-prescription:before{content:"\f5b1"}.fa-prescription-bottle:before{content:"\f485"}.fa-prescription-bottle-alt:before{content:"\f486"}.fa-print:before{content:"\f02f"}.fa-procedures:before{content:"\f487"}.fa-product-hunt:before{content:"\f288"}.fa-project-diagram:before{content:"\f542"}.fa-pump-medical:before{content:"\e06a"}.fa-pump-soap:before{content:"\e06b"}.fa-pushed:before{content:"\f3e1"}.fa-puzzle-piece:before{content:"\f12e"}.fa-python:before{content:"\f3e2"}.fa-qq:before{content:"\f1d6"}.fa-qrcode:before{content:"\f029"}.fa-question:before{content:"\f128"}.fa-question-circle:before{content:"\f059"}.fa-quidditch:before{content:"\f458"}.fa-quinscape:before{content:"\f459"}.fa-quora:before{content:"\f2c4"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-quran:before{content:"\f687"}.fa-r-project:before{content:"\f4f7"}.fa-radiation:before{content:"\f7b9"}.fa-radiation-alt:before{content:"\f7ba"}.fa-rainbow:before{content:"\f75b"}.fa-random:before{content:"\f074"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-ravelry:before{content:"\f2d9"}.fa-react:before{content:"\f41b"}.fa-reacteurope:before{content:"\f75d"}.fa-readme:before{content:"\f4d5"}.fa-rebel:before{content:"\f1d0"}.fa-receipt:before{content:"\f543"}.fa-record-vinyl:before{content:"\f8d9"}.fa-recycle:before{content:"\f1b8"}.fa-red-river:before{content:"\f3e3"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-alien:before{content:"\f281"}.fa-reddit-square:before{content:"\f1a2"}.fa-redhat:before{content:"\f7bc"}.fa-redo:before{content:"\f01e"}.fa-redo-alt:before{content:"\f2f9"}.fa-registered:before{content:"\f25d"}.fa-remove-format:before{content:"\f87d"}.fa-renren:before{content:"\f18b"}.fa-reply:before{content:"\f3e5"}.fa-reply-all:before{content:"\f122"}.fa-replyd:before{content:"\f3e6"}.fa-republican:before{content:"\f75e"}.fa-researchgate:before{content:"\f4f8"}.fa-resolving:before{content:"\f3e7"}.fa-restroom:before{content:"\f7bd"}.fa-retweet:before{content:"\f079"}.fa-rev:before{content:"\f5b2"}.fa-ribbon:before{content:"\f4d6"}.fa-ring:before{content:"\f70b"}.fa-road:before{content:"\f018"}.fa-robot:before{content:"\f544"}.fa-rocket:before{content:"\f135"}.fa-rocketchat:before{content:"\f3e8"}.fa-rockrms:before{content:"\f3e9"}.fa-route:before{content:"\f4d7"}.fa-rss:before{content:"\f09e"}.fa-rss-square:before{content:"\f143"}.fa-ruble-sign:before{content:"\f158"}.fa-ruler:before{content:"\f545"}.fa-ruler-combined:before{content:"\f546"}.fa-ruler-horizontal:before{content:"\f547"}.fa-ruler-vertical:before{content:"\f548"}.fa-running:before{content:"\f70c"}.fa-rupee-sign:before{content:"\f156"}.fa-rust:before{content:"\e07a"}.fa-sad-cry:before{content:"\f5b3"}.fa-sad-tear:before{content:"\f5b4"}.fa-safari:before{content:"\f267"}.fa-salesforce:before{content:"\f83b"}.fa-sass:before{content:"\f41e"}.fa-satellite:before{content:"\f7bf"}.fa-satellite-dish:before{content:"\f7c0"}.fa-save:before{content:"\f0c7"}.fa-schlix:before{content:"\f3ea"}.fa-school:before{content:"\f549"}.fa-screwdriver:before{content:"\f54a"}.fa-scribd:before{content:"\f28a"}.fa-scroll:before{content:"\f70e"}.fa-sd-card:before{content:"\f7c2"}.fa-search:before{content:"\f002"}.fa-search-dollar:before{content:"\f688"}.fa-search-location:before{content:"\f689"}.fa-search-minus:before{content:"\f010"}.fa-search-plus:before{content:"\f00e"}.fa-searchengin:before{content:"\f3eb"}.fa-seedling:before{content:"\f4d8"}.fa-sellcast:before{content:"\f2da"}.fa-sellsy:before{content:"\f213"}.fa-server:before{content:"\f233"}.fa-servicestack:before{content:"\f3ec"}.fa-shapes:before{content:"\f61f"}.fa-share:before{content:"\f064"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-share-square:before{content:"\f14d"}.fa-shekel-sign:before{content:"\f20b"}.fa-shield-alt:before{content:"\f3ed"}.fa-shield-virus:before{content:"\e06c"}.fa-ship:before{content:"\f21a"}.fa-shipping-fast:before{content:"\f48b"}.fa-shirtsinbulk:before{content:"\f214"}.fa-shoe-prints:before{content:"\f54b"}.fa-shopify:before{content:"\e057"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-shopping-cart:before{content:"\f07a"}.fa-shopware:before{content:"\f5b5"}.fa-shower:before{content:"\f2cc"}.fa-shuttle-van:before{content:"\f5b6"}.fa-sign:before{content:"\f4d9"}.fa-sign-in-alt:before{content:"\f2f6"}.fa-sign-language:before{content:"\f2a7"}.fa-sign-out-alt:before{content:"\f2f5"}.fa-signal:before{content:"\f012"}.fa-signature:before{content:"\f5b7"}.fa-sim-card:before{content:"\f7c4"}.fa-simplybuilt:before{content:"\f215"}.fa-sink:before{content:"\e06d"}.fa-sistrix:before{content:"\f3ee"}.fa-sitemap:before{content:"\f0e8"}.fa-sith:before{content:"\f512"}.fa-skating:before{content:"\f7c5"}.fa-sketch:before{content:"\f7c6"}.fa-skiing:before{content:"\f7c9"}.fa-skiing-nordic:before{content:"\f7ca"}.fa-skull:before{content:"\f54c"}.fa-skull-crossbones:before{content:"\f714"}.fa-skyatlas:before{content:"\f216"}.fa-skype:before{content:"\f17e"}.fa-slack:before{content:"\f198"}.fa-slack-hash:before{content:"\f3ef"}.fa-slash:before{content:"\f715"}.fa-sleigh:before{content:"\f7cc"}.fa-sliders-h:before{content:"\f1de"}.fa-slideshare:before{content:"\f1e7"}.fa-smile:before{content:"\f118"}.fa-smile-beam:before{content:"\f5b8"}.fa-smile-wink:before{content:"\f4da"}.fa-smog:before{content:"\f75f"}.fa-smoking:before{content:"\f48d"}.fa-smoking-ban:before{content:"\f54d"}.fa-sms:before{content:"\f7cd"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-snowboarding:before{content:"\f7ce"}.fa-snowflake:before{content:"\f2dc"}.fa-snowman:before{content:"\f7d0"}.fa-snowplow:before{content:"\f7d2"}.fa-soap:before{content:"\e06e"}.fa-socks:before{content:"\f696"}.fa-solar-panel:before{content:"\f5ba"}.fa-sort:before{content:"\f0dc"}.fa-sort-alpha-down:before{content:"\f15d"}.fa-sort-alpha-down-alt:before{content:"\f881"}.fa-sort-alpha-up:before{content:"\f15e"}.fa-sort-alpha-up-alt:before{content:"\f882"}.fa-sort-amount-down:before{content:"\f160"}.fa-sort-amount-down-alt:before{content:"\f884"}.fa-sort-amount-up:before{content:"\f161"}.fa-sort-amount-up-alt:before{content:"\f885"}.fa-sort-down:before{content:"\f0dd"}.fa-sort-numeric-down:before{content:"\f162"}.fa-sort-numeric-down-alt:before{content:"\f886"}.fa-sort-numeric-up:before{content:"\f163"}.fa-sort-numeric-up-alt:before{content:"\f887"}.fa-sort-up:before{content:"\f0de"}.fa-soundcloud:before{content:"\f1be"}.fa-sourcetree:before{content:"\f7d3"}.fa-spa:before{content:"\f5bb"}.fa-space-shuttle:before{content:"\f197"}.fa-speakap:before{content:"\f3f3"}.fa-speaker-deck:before{content:"\f83c"}.fa-spell-check:before{content:"\f891"}.fa-spider:before{content:"\f717"}.fa-spinner:before{content:"\f110"}.fa-splotch:before{content:"\f5bc"}.fa-spotify:before{content:"\f1bc"}.fa-spray-can:before{content:"\f5bd"}.fa-square:before{content:"\f0c8"}.fa-square-full:before{content:"\f45c"}.fa-square-root-alt:before{content:"\f698"}.fa-squarespace:before{content:"\f5be"}.fa-stack-exchange:before{content:"\f18d"}.fa-stack-overflow:before{content:"\f16c"}.fa-stackpath:before{content:"\f842"}.fa-stamp:before{content:"\f5bf"}.fa-star:before{content:"\f005"}.fa-star-and-crescent:before{content:"\f699"}.fa-star-half:before{content:"\f089"}.fa-star-half-alt:before{content:"\f5c0"}.fa-star-of-david:before{content:"\f69a"}.fa-star-of-life:before{content:"\f621"}.fa-staylinked:before{content:"\f3f5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-steam-symbol:before{content:"\f3f6"}.fa-step-backward:before{content:"\f048"}.fa-step-forward:before{content:"\f051"}.fa-stethoscope:before{content:"\f0f1"}.fa-sticker-mule:before{content:"\f3f7"}.fa-sticky-note:before{content:"\f249"}.fa-stop:before{content:"\f04d"}.fa-stop-circle:before{content:"\f28d"}.fa-stopwatch:before{content:"\f2f2"}.fa-stopwatch-20:before{content:"\e06f"}.fa-store:before{content:"\f54e"}.fa-store-alt:before{content:"\f54f"}.fa-store-alt-slash:before{content:"\e070"}.fa-store-slash:before{content:"\e071"}.fa-strava:before{content:"\f428"}.fa-stream:before{content:"\f550"}.fa-street-view:before{content:"\f21d"}.fa-strikethrough:before{content:"\f0cc"}.fa-stripe:before{content:"\f429"}.fa-stripe-s:before{content:"\f42a"}.fa-stroopwafel:before{content:"\f551"}.fa-studiovinari:before{content:"\f3f8"}.fa-stumbleupon:before{content:"\f1a4"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-subscript:before{content:"\f12c"}.fa-subway:before{content:"\f239"}.fa-suitcase:before{content:"\f0f2"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-sun:before{content:"\f185"}.fa-superpowers:before{content:"\f2dd"}.fa-superscript:before{content:"\f12b"}.fa-supple:before{content:"\f3f9"}.fa-surprise:before{content:"\f5c2"}.fa-suse:before{content:"\f7d6"}.fa-swatchbook:before{content:"\f5c3"}.fa-swift:before{content:"\f8e1"}.fa-swimmer:before{content:"\f5c4"}.fa-swimming-pool:before{content:"\f5c5"}.fa-symfony:before{content:"\f83d"}.fa-synagogue:before{content:"\f69b"}.fa-sync:before{content:"\f021"}.fa-sync-alt:before{content:"\f2f1"}.fa-syringe:before{content:"\f48e"}.fa-table:before{content:"\f0ce"}.fa-table-tennis:before{content:"\f45d"}.fa-tablet:before{content:"\f10a"}.fa-tablet-alt:before{content:"\f3fa"}.fa-tablets:before{content:"\f490"}.fa-tachometer-alt:before{content:"\f3fd"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-tape:before{content:"\f4db"}.fa-tasks:before{content:"\f0ae"}.fa-taxi:before{content:"\f1ba"}.fa-teamspeak:before{content:"\f4f9"}.fa-teeth:before{content:"\f62e"}.fa-teeth-open:before{content:"\f62f"}.fa-telegram:before{content:"\f2c6"}.fa-telegram-plane:before{content:"\f3fe"}.fa-temperature-high:before{content:"\f769"}.fa-temperature-low:before{content:"\f76b"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-tenge:before{content:"\f7d7"}.fa-terminal:before{content:"\f120"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-th:before{content:"\f00a"}.fa-th-large:before{content:"\f009"}.fa-th-list:before{content:"\f00b"}.fa-the-red-yeti:before{content:"\f69d"}.fa-theater-masks:before{content:"\f630"}.fa-themeco:before{content:"\f5c6"}.fa-themeisle:before{content:"\f2b2"}.fa-thermometer:before{content:"\f491"}.fa-thermometer-empty:before{content:"\f2cb"}.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-think-peaks:before{content:"\f731"}.fa-thumbs-down:before{content:"\f165"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbtack:before{content:"\f08d"}.fa-ticket-alt:before{content:"\f3ff"}.fa-tiktok:before{content:"\e07b"}.fa-times:before{content:"\f00d"}.fa-times-circle:before{content:"\f057"}.fa-tint:before{content:"\f043"}.fa-tint-slash:before{content:"\f5c7"}.fa-tired:before{content:"\f5c8"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-toilet:before{content:"\f7d8"}.fa-toilet-paper:before{content:"\f71e"}.fa-toilet-paper-slash:before{content:"\e072"}.fa-toolbox:before{content:"\f552"}.fa-tools:before{content:"\f7d9"}.fa-tooth:before{content:"\f5c9"}.fa-torah:before{content:"\f6a0"}.fa-torii-gate:before{content:"\f6a1"}.fa-tractor:before{content:"\f722"}.fa-trade-federation:before{content:"\f513"}.fa-trademark:before{content:"\f25c"}.fa-traffic-light:before{content:"\f637"}.fa-trailer:before{content:"\e041"}.fa-train:before{content:"\f238"}.fa-tram:before{content:"\f7da"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-trash:before{content:"\f1f8"}.fa-trash-alt:before{content:"\f2ed"}.fa-trash-restore:before{content:"\f829"}.fa-trash-restore-alt:before{content:"\f82a"}.fa-tree:before{content:"\f1bb"}.fa-trello:before{content:"\f181"}.fa-trophy:before{content:"\f091"}.fa-truck:before{content:"\f0d1"}.fa-truck-loading:before{content:"\f4de"}.fa-truck-monster:before{content:"\f63b"}.fa-truck-moving:before{content:"\f4df"}.fa-truck-pickup:before{content:"\f63c"}.fa-tshirt:before{content:"\f553"}.fa-tty:before{content:"\f1e4"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-tv:before{content:"\f26c"}.fa-twitch:before{content:"\f1e8"}.fa-twitter:before{content:"\f099"}.fa-twitter-square:before{content:"\f081"}.fa-typo3:before{content:"\f42b"}.fa-uber:before{content:"\f402"}.fa-ubuntu:before{content:"\f7df"}.fa-uikit:before{content:"\f403"}.fa-umbraco:before{content:"\f8e8"}.fa-umbrella:before{content:"\f0e9"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-uncharted:before{content:"\e084"}.fa-underline:before{content:"\f0cd"}.fa-undo:before{content:"\f0e2"}.fa-undo-alt:before{content:"\f2ea"}.fa-uniregistry:before{content:"\f404"}.fa-unity:before{content:"\e049"}.fa-universal-access:before{content:"\f29a"}.fa-university:before{content:"\f19c"}.fa-unlink:before{content:"\f127"}.fa-unlock:before{content:"\f09c"}.fa-unlock-alt:before{content:"\f13e"}.fa-unsplash:before{content:"\e07c"}.fa-untappd:before{content:"\f405"}.fa-upload:before{content:"\f093"}.fa-ups:before{content:"\f7e0"}.fa-usb:before{content:"\f287"}.fa-user:before{content:"\f007"}.fa-user-alt:before{content:"\f406"}.fa-user-alt-slash:before{content:"\f4fa"}.fa-user-astronaut:before{content:"\f4fb"}.fa-user-check:before{content:"\f4fc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-clock:before{content:"\f4fd"}.fa-user-cog:before{content:"\f4fe"}.fa-user-edit:before{content:"\f4ff"}.fa-user-friends:before{content:"\f500"}.fa-user-graduate:before{content:"\f501"}.fa-user-injured:before{content:"\f728"}.fa-user-lock:before{content:"\f502"}.fa-user-md:before{content:"\f0f0"}.fa-user-minus:before{content:"\f503"}.fa-user-ninja:before{content:"\f504"}.fa-user-nurse:before{content:"\f82f"}.fa-user-plus:before{content:"\f234"}.fa-user-secret:before{content:"\f21b"}.fa-user-shield:before{content:"\f505"}.fa-user-slash:before{content:"\f506"}.fa-user-tag:before{content:"\f507"}.fa-user-tie:before{content:"\f508"}.fa-user-times:before{content:"\f235"}.fa-users:before{content:"\f0c0"}.fa-users-cog:before{content:"\f509"}.fa-users-slash:before{content:"\e073"}.fa-usps:before{content:"\f7e1"}.fa-ussunnah:before{content:"\f407"}.fa-utensil-spoon:before{content:"\f2e5"}.fa-utensils:before{content:"\f2e7"}.fa-vaadin:before{content:"\f408"}.fa-vector-square:before{content:"\f5cb"}.fa-venus:before{content:"\f221"}.fa-venus-double:before{content:"\f226"}.fa-venus-mars:before{content:"\f228"}.fa-vest:before{content:"\e085"}.fa-vest-patches:before{content:"\e086"}.fa-viacoin:before{content:"\f237"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-vial:before{content:"\f492"}.fa-vials:before{content:"\f493"}.fa-viber:before{content:"\f409"}.fa-video:before{content:"\f03d"}.fa-video-slash:before{content:"\f4e2"}.fa-vihara:before{content:"\f6a7"}.fa-vimeo:before{content:"\f40a"}.fa-vimeo-square:before{content:"\f194"}.fa-vimeo-v:before{content:"\f27d"}.fa-vine:before{content:"\f1ca"}.fa-virus:before{content:"\e074"}.fa-virus-slash:before{content:"\e075"}.fa-viruses:before{content:"\e076"}.fa-vk:before{content:"\f189"}.fa-vnv:before{content:"\f40b"}.fa-voicemail:before{content:"\f897"}.fa-volleyball-ball:before{content:"\f45f"}.fa-volume-down:before{content:"\f027"}.fa-volume-mute:before{content:"\f6a9"}.fa-volume-off:before{content:"\f026"}.fa-volume-up:before{content:"\f028"}.fa-vote-yea:before{content:"\f772"}.fa-vr-cardboard:before{content:"\f729"}.fa-vuejs:before{content:"\f41f"}.fa-walking:before{content:"\f554"}.fa-wallet:before{content:"\f555"}.fa-warehouse:before{content:"\f494"}.fa-watchman-monitoring:before{content:"\e087"}.fa-water:before{content:"\f773"}.fa-wave-square:before{content:"\f83e"}.fa-waze:before{content:"\f83f"}.fa-weebly:before{content:"\f5cc"}.fa-weibo:before{content:"\f18a"}.fa-weight:before{content:"\f496"}.fa-weight-hanging:before{content:"\f5cd"}.fa-weixin:before{content:"\f1d7"}.fa-whatsapp:before{content:"\f232"}.fa-whatsapp-square:before{content:"\f40c"}.fa-wheelchair:before{content:"\f193"}.fa-whmcs:before{content:"\f40d"}.fa-wifi:before{content:"\f1eb"}.fa-wikipedia-w:before{content:"\f266"}.fa-wind:before{content:"\f72e"}.fa-window-close:before{content:"\f410"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-windows:before{content:"\f17a"}.fa-wine-bottle:before{content:"\f72f"}.fa-wine-glass:before{content:"\f4e3"}.fa-wine-glass-alt:before{content:"\f5ce"}.fa-wix:before{content:"\f5cf"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-wodu:before{content:"\e088"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-won-sign:before{content:"\f159"}.fa-wordpress:before{content:"\f19a"}.fa-wordpress-simple:before{content:"\f411"}.fa-wpbeginner:before{content:"\f297"}.fa-wpexplorer:before{content:"\f2de"}.fa-wpforms:before{content:"\f298"}.fa-wpressr:before{content:"\f3e4"}.fa-wrench:before{content:"\f0ad"}.fa-x-ray:before{content:"\f497"}.fa-xbox:before{content:"\f412"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-y-combinator:before{content:"\f23b"}.fa-yahoo:before{content:"\f19e"}.fa-yammer:before{content:"\f840"}.fa-yandex:before{content:"\f413"}.fa-yandex-international:before{content:"\f414"}.fa-yarn:before{content:"\f7e3"}.fa-yelp:before{content:"\f1e9"}.fa-yen-sign:before{content:"\f157"}.fa-yin-yang:before{content:"\f6ad"}.fa-yoast:before{content:"\f2b1"}.fa-youtube:before{content:"\f167"}.fa-youtube-square:before{content:"\f431"}.fa-zhihu:before{content:"\f63f"}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}@font-face{font-family:"Font Awesome 5 Brands";font-style:normal;font-weight:400;font-display:block;src:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/fontawesome/webfonts/fa-brands-400.eot);src:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/fontawesome/webfonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/fontawesome/webfonts/fa-brands-400.woff2) format("woff2"),url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/fontawesome/webfonts/fa-brands-400.woff) format("woff"),url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/fontawesome/webfonts/fa-brands-400.ttf) format("truetype"),url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/fontawesome/webfonts/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:"Font Awesome 5 Brands"}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:400;font-display:block;src:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/fontawesome/webfonts/fa-regular-400.eot);src:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/fontawesome/webfonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/fontawesome/webfonts/fa-regular-400.woff2) format("woff2"),url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/fontawesome/webfonts/fa-regular-400.woff) format("woff"),url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/fontawesome/webfonts/fa-regular-400.ttf) format("truetype"),url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/fontawesome/webfonts/fa-regular-400.svg#fontawesome) format("svg")}.fab,.far{font-weight:400}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:900;font-display:block;src:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/fontawesome/webfonts/fa-solid-900.eot);src:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/fontawesome/webfonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/fontawesome/webfonts/fa-solid-900.woff2) format("woff2"),url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/fontawesome/webfonts/fa-solid-900.woff) format("woff"),url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/fontawesome/webfonts/fa-solid-900.ttf) format("truetype"),url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/fontawesome/webfonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.far,.fas{font-family:"Font Awesome 5 Free"}.fa,.fas{font-weight:900} -.flag-icon-background{background-size:contain;background-position:50%;background-repeat:no-repeat}.flag-icon{background-size:contain;background-position:50%;background-repeat:no-repeat;position:relative;display:inline-block;width:1.33333333em;line-height:1em}.flag-icon:before{content:" "}.flag-icon.flag-icon-squared{width:1em}.flag-icon-ad{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ad.svg)}.flag-icon-ad.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ad.svg)}.flag-icon-ae{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ae.svg)}.flag-icon-ae.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ae.svg)}.flag-icon-af{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/af.svg)}.flag-icon-af.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/af.svg)}.flag-icon-ag{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ag.svg)}.flag-icon-ag.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ag.svg)}.flag-icon-ai{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ai.svg)}.flag-icon-ai.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ai.svg)}.flag-icon-al{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/al.svg)}.flag-icon-al.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/al.svg)}.flag-icon-am{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/am.svg)}.flag-icon-am.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/am.svg)}.flag-icon-ao{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ao.svg)}.flag-icon-ao.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ao.svg)}.flag-icon-aq{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/aq.svg)}.flag-icon-aq.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/aq.svg)}.flag-icon-ar{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ar.svg)}.flag-icon-ar.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ar.svg)}.flag-icon-as{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/as.svg)}.flag-icon-as.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/as.svg)}.flag-icon-at{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/at.svg)}.flag-icon-at.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/at.svg)}.flag-icon-au{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/au.svg)}.flag-icon-au.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/au.svg)}.flag-icon-aw{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/aw.svg)}.flag-icon-aw.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/aw.svg)}.flag-icon-ax{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ax.svg)}.flag-icon-ax.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ax.svg)}.flag-icon-az{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/az.svg)}.flag-icon-az.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/az.svg)}.flag-icon-ba{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ba.svg)}.flag-icon-ba.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ba.svg)}.flag-icon-bb{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/bb.svg)}.flag-icon-bb.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/bb.svg)}.flag-icon-bd{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/bd.svg)}.flag-icon-bd.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/bd.svg)}.flag-icon-be{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/be.svg)}.flag-icon-be.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/be.svg)}.flag-icon-bf{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/bf.svg)}.flag-icon-bf.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/bf.svg)}.flag-icon-bg{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/bg.svg)}.flag-icon-bg.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/bg.svg)}.flag-icon-bh{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/bh.svg)}.flag-icon-bh.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/bh.svg)}.flag-icon-bi{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/bi.svg)}.flag-icon-bi.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/bi.svg)}.flag-icon-bj{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/bj.svg)}.flag-icon-bj.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/bj.svg)}.flag-icon-bl{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/bl.svg)}.flag-icon-bl.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/bl.svg)}.flag-icon-bm{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/bm.svg)}.flag-icon-bm.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/bm.svg)}.flag-icon-bn{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/bn.svg)}.flag-icon-bn.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/bn.svg)}.flag-icon-bo{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/bo.svg)}.flag-icon-bo.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/bo.svg)}.flag-icon-bq{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/bq.svg)}.flag-icon-bq.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/bq.svg)}.flag-icon-br{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/br.svg)}.flag-icon-br.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/br.svg)}.flag-icon-bs{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/bs.svg)}.flag-icon-bs.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/bs.svg)}.flag-icon-bt{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/bt.svg)}.flag-icon-bt.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/bt.svg)}.flag-icon-bv{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/bv.svg)}.flag-icon-bv.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/bv.svg)}.flag-icon-bw{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/bw.svg)}.flag-icon-bw.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/bw.svg)}.flag-icon-by{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/by.svg)}.flag-icon-by.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/by.svg)}.flag-icon-bz{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/bz.svg)}.flag-icon-bz.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/bz.svg)}.flag-icon-ca{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ca.svg)}.flag-icon-ca.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ca.svg)}.flag-icon-cc{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/cc.svg)}.flag-icon-cc.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/cc.svg)}.flag-icon-cd{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/cd.svg)}.flag-icon-cd.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/cd.svg)}.flag-icon-cf{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/cf.svg)}.flag-icon-cf.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/cf.svg)}.flag-icon-cg{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/cg.svg)}.flag-icon-cg.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/cg.svg)}.flag-icon-ch{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ch.svg)}.flag-icon-ch.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ch.svg)}.flag-icon-ci{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ci.svg)}.flag-icon-ci.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ci.svg)}.flag-icon-ck{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ck.svg)}.flag-icon-ck.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ck.svg)}.flag-icon-cl{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/cl.svg)}.flag-icon-cl.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/cl.svg)}.flag-icon-cm{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/cm.svg)}.flag-icon-cm.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/cm.svg)}.flag-icon-cn{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/cn.svg)}.flag-icon-cn.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/cn.svg)}.flag-icon-co{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/co.svg)}.flag-icon-co.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/co.svg)}.flag-icon-cr{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/cr.svg)}.flag-icon-cr.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/cr.svg)}.flag-icon-cu{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/cu.svg)}.flag-icon-cu.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/cu.svg)}.flag-icon-cv{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/cv.svg)}.flag-icon-cv.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/cv.svg)}.flag-icon-cw{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/cw.svg)}.flag-icon-cw.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/cw.svg)}.flag-icon-cx{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/cx.svg)}.flag-icon-cx.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/cx.svg)}.flag-icon-cy{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/cy.svg)}.flag-icon-cy.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/cy.svg)}.flag-icon-cz{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/cz.svg)}.flag-icon-cz.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/cz.svg)}.flag-icon-de{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/de.svg)}.flag-icon-de.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/de.svg)}.flag-icon-dj{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/dj.svg)}.flag-icon-dj.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/dj.svg)}.flag-icon-dk{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/dk.svg)}.flag-icon-dk.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/dk.svg)}.flag-icon-dm{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/dm.svg)}.flag-icon-dm.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/dm.svg)}.flag-icon-do{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/do.svg)}.flag-icon-do.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/do.svg)}.flag-icon-dz{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/dz.svg)}.flag-icon-dz.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/dz.svg)}.flag-icon-ec{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ec.svg)}.flag-icon-ec.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ec.svg)}.flag-icon-ee{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ee.svg)}.flag-icon-ee.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ee.svg)}.flag-icon-eg{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/eg.svg)}.flag-icon-eg.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/eg.svg)}.flag-icon-eh{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/eh.svg)}.flag-icon-eh.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/eh.svg)}.flag-icon-er{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/er.svg)}.flag-icon-er.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/er.svg)}.flag-icon-es{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/es.svg)}.flag-icon-es.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/es.svg)}.flag-icon-et{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/et.svg)}.flag-icon-et.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/et.svg)}.flag-icon-fi{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/fi.svg)}.flag-icon-fi.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/fi.svg)}.flag-icon-fj{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/fj.svg)}.flag-icon-fj.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/fj.svg)}.flag-icon-fk{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/fk.svg)}.flag-icon-fk.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/fk.svg)}.flag-icon-fm{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/fm.svg)}.flag-icon-fm.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/fm.svg)}.flag-icon-fo{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/fo.svg)}.flag-icon-fo.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/fo.svg)}.flag-icon-fr{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/fr.svg)}.flag-icon-fr.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/fr.svg)}.flag-icon-ga{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ga.svg)}.flag-icon-ga.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ga.svg)}.flag-icon-gb{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/gb.svg)}.flag-icon-gb.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/gb.svg)}.flag-icon-gd{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/gd.svg)}.flag-icon-gd.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/gd.svg)}.flag-icon-ge{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ge.svg)}.flag-icon-ge.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ge.svg)}.flag-icon-gf{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/gf.svg)}.flag-icon-gf.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/gf.svg)}.flag-icon-gg{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/gg.svg)}.flag-icon-gg.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/gg.svg)}.flag-icon-gh{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/gh.svg)}.flag-icon-gh.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/gh.svg)}.flag-icon-gi{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/gi.svg)}.flag-icon-gi.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/gi.svg)}.flag-icon-gl{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/gl.svg)}.flag-icon-gl.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/gl.svg)}.flag-icon-gm{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/gm.svg)}.flag-icon-gm.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/gm.svg)}.flag-icon-gn{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/gn.svg)}.flag-icon-gn.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/gn.svg)}.flag-icon-gp{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/gp.svg)}.flag-icon-gp.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/gp.svg)}.flag-icon-gq{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/gq.svg)}.flag-icon-gq.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/gq.svg)}.flag-icon-gr{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/gr.svg)}.flag-icon-gr.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/gr.svg)}.flag-icon-gs{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/gs.svg)}.flag-icon-gs.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/gs.svg)}.flag-icon-gt{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/gt.svg)}.flag-icon-gt.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/gt.svg)}.flag-icon-gu{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/gu.svg)}.flag-icon-gu.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/gu.svg)}.flag-icon-gw{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/gw.svg)}.flag-icon-gw.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/gw.svg)}.flag-icon-gy{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/gy.svg)}.flag-icon-gy.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/gy.svg)}.flag-icon-hk{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/hk.svg)}.flag-icon-hk.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/hk.svg)}.flag-icon-hm{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/hm.svg)}.flag-icon-hm.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/hm.svg)}.flag-icon-hn{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/hn.svg)}.flag-icon-hn.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/hn.svg)}.flag-icon-hr{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/hr.svg)}.flag-icon-hr.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/hr.svg)}.flag-icon-ht{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ht.svg)}.flag-icon-ht.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ht.svg)}.flag-icon-hu{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/hu.svg)}.flag-icon-hu.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/hu.svg)}.flag-icon-id{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/id.svg)}.flag-icon-id.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/id.svg)}.flag-icon-ie{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ie.svg)}.flag-icon-ie.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ie.svg)}.flag-icon-il{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/il.svg)}.flag-icon-il.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/il.svg)}.flag-icon-im{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/im.svg)}.flag-icon-im.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/im.svg)}.flag-icon-in{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/in.svg)}.flag-icon-in.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/in.svg)}.flag-icon-io{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/io.svg)}.flag-icon-io.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/io.svg)}.flag-icon-iq{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/iq.svg)}.flag-icon-iq.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/iq.svg)}.flag-icon-ir{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ir.svg)}.flag-icon-ir.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ir.svg)}.flag-icon-is{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/is.svg)}.flag-icon-is.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/is.svg)}.flag-icon-it{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/it.svg)}.flag-icon-it.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/it.svg)}.flag-icon-je{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/je.svg)}.flag-icon-je.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/je.svg)}.flag-icon-jm{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/jm.svg)}.flag-icon-jm.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/jm.svg)}.flag-icon-jo{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/jo.svg)}.flag-icon-jo.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/jo.svg)}.flag-icon-jp{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/jp.svg)}.flag-icon-jp.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/jp.svg)}.flag-icon-ke{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ke.svg)}.flag-icon-ke.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ke.svg)}.flag-icon-kg{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/kg.svg)}.flag-icon-kg.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/kg.svg)}.flag-icon-kh{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/kh.svg)}.flag-icon-kh.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/kh.svg)}.flag-icon-ki{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ki.svg)}.flag-icon-ki.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ki.svg)}.flag-icon-km{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/km.svg)}.flag-icon-km.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/km.svg)}.flag-icon-kn{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/kn.svg)}.flag-icon-kn.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/kn.svg)}.flag-icon-kp{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/kp.svg)}.flag-icon-kp.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/kp.svg)}.flag-icon-kr{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/kr.svg)}.flag-icon-kr.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/kr.svg)}.flag-icon-kw{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/kw.svg)}.flag-icon-kw.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/kw.svg)}.flag-icon-ky{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ky.svg)}.flag-icon-ky.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ky.svg)}.flag-icon-kz{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/kz.svg)}.flag-icon-kz.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/kz.svg)}.flag-icon-la{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/la.svg)}.flag-icon-la.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/la.svg)}.flag-icon-lb{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/lb.svg)}.flag-icon-lb.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/lb.svg)}.flag-icon-lc{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/lc.svg)}.flag-icon-lc.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/lc.svg)}.flag-icon-li{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/li.svg)}.flag-icon-li.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/li.svg)}.flag-icon-lk{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/lk.svg)}.flag-icon-lk.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/lk.svg)}.flag-icon-lr{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/lr.svg)}.flag-icon-lr.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/lr.svg)}.flag-icon-ls{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ls.svg)}.flag-icon-ls.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ls.svg)}.flag-icon-lt{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/lt.svg)}.flag-icon-lt.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/lt.svg)}.flag-icon-lu{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/lu.svg)}.flag-icon-lu.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/lu.svg)}.flag-icon-lv{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/lv.svg)}.flag-icon-lv.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/lv.svg)}.flag-icon-ly{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ly.svg)}.flag-icon-ly.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ly.svg)}.flag-icon-ma{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ma.svg)}.flag-icon-ma.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ma.svg)}.flag-icon-mc{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/mc.svg)}.flag-icon-mc.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/mc.svg)}.flag-icon-md{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/md.svg)}.flag-icon-md.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/md.svg)}.flag-icon-me{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/me.svg)}.flag-icon-me.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/me.svg)}.flag-icon-mf{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/mf.svg)}.flag-icon-mf.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/mf.svg)}.flag-icon-mg{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/mg.svg)}.flag-icon-mg.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/mg.svg)}.flag-icon-mh{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/mh.svg)}.flag-icon-mh.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/mh.svg)}.flag-icon-mk{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/mk.svg)}.flag-icon-mk.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/mk.svg)}.flag-icon-ml{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ml.svg)}.flag-icon-ml.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ml.svg)}.flag-icon-mm{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/mm.svg)}.flag-icon-mm.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/mm.svg)}.flag-icon-mn{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/mn.svg)}.flag-icon-mn.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/mn.svg)}.flag-icon-mo{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/mo.svg)}.flag-icon-mo.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/mo.svg)}.flag-icon-mp{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/mp.svg)}.flag-icon-mp.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/mp.svg)}.flag-icon-mq{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/mq.svg)}.flag-icon-mq.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/mq.svg)}.flag-icon-mr{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/mr.svg)}.flag-icon-mr.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/mr.svg)}.flag-icon-ms{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ms.svg)}.flag-icon-ms.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ms.svg)}.flag-icon-mt{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/mt.svg)}.flag-icon-mt.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/mt.svg)}.flag-icon-mu{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/mu.svg)}.flag-icon-mu.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/mu.svg)}.flag-icon-mv{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/mv.svg)}.flag-icon-mv.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/mv.svg)}.flag-icon-mw{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/mw.svg)}.flag-icon-mw.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/mw.svg)}.flag-icon-mx{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/mx.svg)}.flag-icon-mx.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/mx.svg)}.flag-icon-my{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/my.svg)}.flag-icon-my.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/my.svg)}.flag-icon-mz{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/mz.svg)}.flag-icon-mz.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/mz.svg)}.flag-icon-na{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/na.svg)}.flag-icon-na.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/na.svg)}.flag-icon-nc{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/nc.svg)}.flag-icon-nc.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/nc.svg)}.flag-icon-ne{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ne.svg)}.flag-icon-ne.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ne.svg)}.flag-icon-nf{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/nf.svg)}.flag-icon-nf.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/nf.svg)}.flag-icon-ng{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ng.svg)}.flag-icon-ng.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ng.svg)}.flag-icon-ni{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ni.svg)}.flag-icon-ni.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ni.svg)}.flag-icon-nl{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/nl.svg)}.flag-icon-nl.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/nl.svg)}.flag-icon-no{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/no.svg)}.flag-icon-no.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/no.svg)}.flag-icon-np{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/np.svg)}.flag-icon-np.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/np.svg)}.flag-icon-nr{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/nr.svg)}.flag-icon-nr.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/nr.svg)}.flag-icon-nu{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/nu.svg)}.flag-icon-nu.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/nu.svg)}.flag-icon-nz{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/nz.svg)}.flag-icon-nz.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/nz.svg)}.flag-icon-om{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/om.svg)}.flag-icon-om.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/om.svg)}.flag-icon-pa{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/pa.svg)}.flag-icon-pa.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/pa.svg)}.flag-icon-pe{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/pe.svg)}.flag-icon-pe.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/pe.svg)}.flag-icon-pf{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/pf.svg)}.flag-icon-pf.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/pf.svg)}.flag-icon-pg{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/pg.svg)}.flag-icon-pg.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/pg.svg)}.flag-icon-ph{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ph.svg)}.flag-icon-ph.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ph.svg)}.flag-icon-pk{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/pk.svg)}.flag-icon-pk.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/pk.svg)}.flag-icon-pl{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/pl.svg)}.flag-icon-pl.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/pl.svg)}.flag-icon-pm{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/pm.svg)}.flag-icon-pm.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/pm.svg)}.flag-icon-pn{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/pn.svg)}.flag-icon-pn.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/pn.svg)}.flag-icon-pr{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/pr.svg)}.flag-icon-pr.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/pr.svg)}.flag-icon-ps{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ps.svg)}.flag-icon-ps.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ps.svg)}.flag-icon-pt{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/pt.svg)}.flag-icon-pt.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/pt.svg)}.flag-icon-pw{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/pw.svg)}.flag-icon-pw.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/pw.svg)}.flag-icon-py{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/py.svg)}.flag-icon-py.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/py.svg)}.flag-icon-qa{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/qa.svg)}.flag-icon-qa.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/qa.svg)}.flag-icon-re{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/re.svg)}.flag-icon-re.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/re.svg)}.flag-icon-ro{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ro.svg)}.flag-icon-ro.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ro.svg)}.flag-icon-rs{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/rs.svg)}.flag-icon-rs.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/rs.svg)}.flag-icon-ru{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ru.svg)}.flag-icon-ru.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ru.svg)}.flag-icon-rw{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/rw.svg)}.flag-icon-rw.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/rw.svg)}.flag-icon-sa{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/sa.svg)}.flag-icon-sa.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/sa.svg)}.flag-icon-sb{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/sb.svg)}.flag-icon-sb.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/sb.svg)}.flag-icon-sc{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/sc.svg)}.flag-icon-sc.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/sc.svg)}.flag-icon-sd{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/sd.svg)}.flag-icon-sd.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/sd.svg)}.flag-icon-se{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/se.svg)}.flag-icon-se.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/se.svg)}.flag-icon-sg{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/sg.svg)}.flag-icon-sg.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/sg.svg)}.flag-icon-sh{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/sh.svg)}.flag-icon-sh.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/sh.svg)}.flag-icon-si{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/si.svg)}.flag-icon-si.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/si.svg)}.flag-icon-sj{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/sj.svg)}.flag-icon-sj.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/sj.svg)}.flag-icon-sk{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/sk.svg)}.flag-icon-sk.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/sk.svg)}.flag-icon-sl{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/sl.svg)}.flag-icon-sl.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/sl.svg)}.flag-icon-sm{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/sm.svg)}.flag-icon-sm.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/sm.svg)}.flag-icon-sn{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/sn.svg)}.flag-icon-sn.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/sn.svg)}.flag-icon-so{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/so.svg)}.flag-icon-so.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/so.svg)}.flag-icon-sr{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/sr.svg)}.flag-icon-sr.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/sr.svg)}.flag-icon-ss{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ss.svg)}.flag-icon-ss.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ss.svg)}.flag-icon-st{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/st.svg)}.flag-icon-st.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/st.svg)}.flag-icon-sv{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/sv.svg)}.flag-icon-sv.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/sv.svg)}.flag-icon-sx{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/sx.svg)}.flag-icon-sx.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/sx.svg)}.flag-icon-sy{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/sy.svg)}.flag-icon-sy.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/sy.svg)}.flag-icon-sz{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/sz.svg)}.flag-icon-sz.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/sz.svg)}.flag-icon-tc{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/tc.svg)}.flag-icon-tc.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/tc.svg)}.flag-icon-td{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/td.svg)}.flag-icon-td.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/td.svg)}.flag-icon-tf{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/tf.svg)}.flag-icon-tf.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/tf.svg)}.flag-icon-tg{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/tg.svg)}.flag-icon-tg.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/tg.svg)}.flag-icon-th{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/th.svg)}.flag-icon-th.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/th.svg)}.flag-icon-tj{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/tj.svg)}.flag-icon-tj.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/tj.svg)}.flag-icon-tk{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/tk.svg)}.flag-icon-tk.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/tk.svg)}.flag-icon-tl{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/tl.svg)}.flag-icon-tl.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/tl.svg)}.flag-icon-tm{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/tm.svg)}.flag-icon-tm.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/tm.svg)}.flag-icon-tn{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/tn.svg)}.flag-icon-tn.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/tn.svg)}.flag-icon-to{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/to.svg)}.flag-icon-to.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/to.svg)}.flag-icon-tr{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/tr.svg)}.flag-icon-tr.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/tr.svg)}.flag-icon-tt{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/tt.svg)}.flag-icon-tt.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/tt.svg)}.flag-icon-tv{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/tv.svg)}.flag-icon-tv.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/tv.svg)}.flag-icon-tw{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/tw.svg)}.flag-icon-tw.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/tw.svg)}.flag-icon-tz{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/tz.svg)}.flag-icon-tz.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/tz.svg)}.flag-icon-ua{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ua.svg)}.flag-icon-ua.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ua.svg)}.flag-icon-ug{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ug.svg)}.flag-icon-ug.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ug.svg)}.flag-icon-um{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/um.svg)}.flag-icon-um.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/um.svg)}.flag-icon-us{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/us.svg)}.flag-icon-us.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/us.svg)}.flag-icon-uy{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/uy.svg)}.flag-icon-uy.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/uy.svg)}.flag-icon-uz{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/uz.svg)}.flag-icon-uz.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/uz.svg)}.flag-icon-va{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/va.svg)}.flag-icon-va.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/va.svg)}.flag-icon-vc{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/vc.svg)}.flag-icon-vc.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/vc.svg)}.flag-icon-ve{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ve.svg)}.flag-icon-ve.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ve.svg)}.flag-icon-vg{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/vg.svg)}.flag-icon-vg.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/vg.svg)}.flag-icon-vi{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/vi.svg)}.flag-icon-vi.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/vi.svg)}.flag-icon-vn{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/vn.svg)}.flag-icon-vn.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/vn.svg)}.flag-icon-vu{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/vu.svg)}.flag-icon-vu.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/vu.svg)}.flag-icon-wf{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/wf.svg)}.flag-icon-wf.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/wf.svg)}.flag-icon-ws{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ws.svg)}.flag-icon-ws.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ws.svg)}.flag-icon-ye{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ye.svg)}.flag-icon-ye.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ye.svg)}.flag-icon-yt{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/yt.svg)}.flag-icon-yt.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/yt.svg)}.flag-icon-za{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/za.svg)}.flag-icon-za.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/za.svg)}.flag-icon-zm{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/zm.svg)}.flag-icon-zm.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/zm.svg)}.flag-icon-zw{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/zw.svg)}.flag-icon-zw.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/zw.svg)}.flag-icon-es-ca{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/es-ca.svg)}.flag-icon-es-ca.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/es-ca.svg)}.flag-icon-es-ga{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/es-ga.svg)}.flag-icon-es-ga.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/es-ga.svg)}.flag-icon-eu{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/eu.svg)}.flag-icon-eu.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/eu.svg)}.flag-icon-gb-eng{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/gb-eng.svg)}.flag-icon-gb-eng.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/gb-eng.svg)}.flag-icon-gb-nir{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/gb-nir.svg)}.flag-icon-gb-nir.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/gb-nir.svg)}.flag-icon-gb-sct{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/gb-sct.svg)}.flag-icon-gb-sct.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/gb-sct.svg)}.flag-icon-gb-wls{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/gb-wls.svg)}.flag-icon-gb-wls.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/gb-wls.svg)}.flag-icon-un{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/un.svg)}.flag-icon-un.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/un.svg)}.flag-icon-xk{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/xk.svg)}.flag-icon-xk.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/xk.svg)} +@charset "UTF-8";/*! + * Bootstrap v5.1.0 (https://getbootstrap.com/) + * Copyright 2011-2021 The Bootstrap Authors + * Copyright 2011-2021 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */:root{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#d63384;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-white:#fff;--bs-gray:#6c757d;--bs-gray-dark:#343a40;--bs-gray-100:#f8f9fa;--bs-gray-200:#e9ecef;--bs-gray-300:#dee2e6;--bs-gray-400:#ced4da;--bs-gray-500:#adb5bd;--bs-gray-600:#6c757d;--bs-gray-700:#495057;--bs-gray-800:#343a40;--bs-gray-900:#212529;--bs-primary:#0d6efd;--bs-secondary:#6c757d;--bs-success:#198754;--bs-info:#0dcaf0;--bs-warning:#ffc107;--bs-danger:#dc3545;--bs-light:#f8f9fa;--bs-dark:#212529;--bs-primary-rgb:13,110,253;--bs-secondary-rgb:108,117,125;--bs-success-rgb:25,135,84;--bs-info-rgb:13,202,240;--bs-warning-rgb:255,193,7;--bs-danger-rgb:220,53,69;--bs-light-rgb:248,249,250;--bs-dark-rgb:33,37,41;--bs-white-rgb:255,255,255;--bs-black-rgb:0,0,0;--bs-body-rgb:33,37,41;--bs-font-sans-serif:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--bs-font-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--bs-gradient:linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));--bs-body-font-family:var(--bs-font-sans-serif);--bs-body-font-size:1rem;--bs-body-font-weight:400;--bs-body-line-height:1.5;--bs-body-color:#212529;--bs-body-bg:#fff}*,::after,::before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-body-color);text-align:var(--bs-body-text-align);background-color:var(--bs-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}hr{margin:1rem 0;color:inherit;background-color:currentColor;border:0;opacity:.25}hr:not([size]){height:1px}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width:1200px){.h1,h1{font-size:2.5rem}}.h2,h2{font-size:calc(1.325rem + .9vw)}@media (min-width:1200px){.h2,h2{font-size:2rem}}.h3,h3{font-size:calc(1.3rem + .6vw)}@media (min-width:1200px){.h3,h3{font-size:1.75rem}}.h4,h4{font-size:calc(1.275rem + .3vw)}@media (min-width:1200px){.h4,h4{font-size:1.5rem}}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[data-bs-original-title],abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}.small,small{font-size:.875em}.mark,mark{padding:.2em;background-color:#fcf8e3}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#0d6efd;text-decoration:underline}a:hover{color:#0a58ca}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:var(--bs-font-monospace);font-size:1em;direction:ltr;unicode-bidi:bidi-override}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:#d63384;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:.875em;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:1em;font-weight:700}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:#6c757d;text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]::-webkit-calendar-picker-indicator{display:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:calc(1.625rem + 4.5vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-1{font-size:5rem}}.display-2{font-size:calc(1.575rem + 3.9vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-2{font-size:4.5rem}}.display-3{font-size:calc(1.525rem + 3.3vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-3{font-size:4rem}}.display-4{font-size:calc(1.475rem + 2.7vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-4{font-size:3.5rem}}.display-5{font-size:calc(1.425rem + 2.1vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-5{font-size:3rem}}.display-6{font-size:calc(1.375rem + 1.5vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-6{font-size:2.5rem}}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:.875em;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:.875em;color:#6c757d}.blockquote-footer::before{content:"— "}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:.875em;color:#6c757d}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{width:100%;padding-right:var(--bs-gutter-x,.75rem);padding-left:var(--bs-gutter-x,.75rem);margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}@media (min-width:1400px){.container,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{max-width:1320px}}.row{--bs-gutter-x:1.5rem;--bs-gutter-y:0;display:flex;flex-wrap:wrap;margin-top:calc(var(--bs-gutter-y) * -1);margin-right:calc(var(--bs-gutter-x) * -.5);margin-left:calc(var(--bs-gutter-x) * -.5)}.row>*{flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-top:var(--bs-gutter-y)}.col{flex:1 0 0%}.row-cols-auto>*{flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-4>*{flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;width:16.6666666667%}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.33333333%}.col-2{flex:0 0 auto;width:16.66666667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.33333333%}.col-5{flex:0 0 auto;width:41.66666667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.33333333%}.col-8{flex:0 0 auto;width:66.66666667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.33333333%}.col-11{flex:0 0 auto;width:91.66666667%}.col-12{flex:0 0 auto;width:100%}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}.g-0,.gx-0{--bs-gutter-x:0}.g-0,.gy-0{--bs-gutter-y:0}.g-1,.gx-1{--bs-gutter-x:0.25rem}.g-1,.gy-1{--bs-gutter-y:0.25rem}.g-2,.gx-2{--bs-gutter-x:0.5rem}.g-2,.gy-2{--bs-gutter-y:0.5rem}.g-3,.gx-3{--bs-gutter-x:1rem}.g-3,.gy-3{--bs-gutter-y:1rem}.g-4,.gx-4{--bs-gutter-x:1.5rem}.g-4,.gy-4{--bs-gutter-y:1.5rem}.g-5,.gx-5{--bs-gutter-x:3rem}.g-5,.gy-5{--bs-gutter-y:3rem}@media (min-width:576px){.col-sm{flex:1 0 0%}.row-cols-sm-auto>*{flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-sm-4>*{flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;width:16.6666666667%}.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.33333333%}.col-sm-2{flex:0 0 auto;width:16.66666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.33333333%}.col-sm-5{flex:0 0 auto;width:41.66666667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.33333333%}.col-sm-8{flex:0 0 auto;width:66.66666667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.33333333%}.col-sm-11{flex:0 0 auto;width:91.66666667%}.col-sm-12{flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}.g-sm-0,.gx-sm-0{--bs-gutter-x:0}.g-sm-0,.gy-sm-0{--bs-gutter-y:0}.g-sm-1,.gx-sm-1{--bs-gutter-x:0.25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y:0.25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x:0.5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y:0.5rem}.g-sm-3,.gx-sm-3{--bs-gutter-x:1rem}.g-sm-3,.gy-sm-3{--bs-gutter-y:1rem}.g-sm-4,.gx-sm-4{--bs-gutter-x:1.5rem}.g-sm-4,.gy-sm-4{--bs-gutter-y:1.5rem}.g-sm-5,.gx-sm-5{--bs-gutter-x:3rem}.g-sm-5,.gy-sm-5{--bs-gutter-y:3rem}}@media (min-width:768px){.col-md{flex:1 0 0%}.row-cols-md-auto>*{flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-md-4>*{flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;width:16.6666666667%}.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.33333333%}.col-md-2{flex:0 0 auto;width:16.66666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.33333333%}.col-md-5{flex:0 0 auto;width:41.66666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.33333333%}.col-md-8{flex:0 0 auto;width:66.66666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.33333333%}.col-md-11{flex:0 0 auto;width:91.66666667%}.col-md-12{flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}.g-md-0,.gx-md-0{--bs-gutter-x:0}.g-md-0,.gy-md-0{--bs-gutter-y:0}.g-md-1,.gx-md-1{--bs-gutter-x:0.25rem}.g-md-1,.gy-md-1{--bs-gutter-y:0.25rem}.g-md-2,.gx-md-2{--bs-gutter-x:0.5rem}.g-md-2,.gy-md-2{--bs-gutter-y:0.5rem}.g-md-3,.gx-md-3{--bs-gutter-x:1rem}.g-md-3,.gy-md-3{--bs-gutter-y:1rem}.g-md-4,.gx-md-4{--bs-gutter-x:1.5rem}.g-md-4,.gy-md-4{--bs-gutter-y:1.5rem}.g-md-5,.gx-md-5{--bs-gutter-x:3rem}.g-md-5,.gy-md-5{--bs-gutter-y:3rem}}@media (min-width:992px){.col-lg{flex:1 0 0%}.row-cols-lg-auto>*{flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-lg-4>*{flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;width:16.6666666667%}.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.33333333%}.col-lg-2{flex:0 0 auto;width:16.66666667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.33333333%}.col-lg-5{flex:0 0 auto;width:41.66666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.33333333%}.col-lg-8{flex:0 0 auto;width:66.66666667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.33333333%}.col-lg-11{flex:0 0 auto;width:91.66666667%}.col-lg-12{flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}.g-lg-0,.gx-lg-0{--bs-gutter-x:0}.g-lg-0,.gy-lg-0{--bs-gutter-y:0}.g-lg-1,.gx-lg-1{--bs-gutter-x:0.25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y:0.25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x:0.5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y:0.5rem}.g-lg-3,.gx-lg-3{--bs-gutter-x:1rem}.g-lg-3,.gy-lg-3{--bs-gutter-y:1rem}.g-lg-4,.gx-lg-4{--bs-gutter-x:1.5rem}.g-lg-4,.gy-lg-4{--bs-gutter-y:1.5rem}.g-lg-5,.gx-lg-5{--bs-gutter-x:3rem}.g-lg-5,.gy-lg-5{--bs-gutter-y:3rem}}@media (min-width:1200px){.col-xl{flex:1 0 0%}.row-cols-xl-auto>*{flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-xl-4>*{flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;width:16.6666666667%}.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.33333333%}.col-xl-2{flex:0 0 auto;width:16.66666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.33333333%}.col-xl-5{flex:0 0 auto;width:41.66666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.33333333%}.col-xl-8{flex:0 0 auto;width:66.66666667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.33333333%}.col-xl-11{flex:0 0 auto;width:91.66666667%}.col-xl-12{flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}.g-xl-0,.gx-xl-0{--bs-gutter-x:0}.g-xl-0,.gy-xl-0{--bs-gutter-y:0}.g-xl-1,.gx-xl-1{--bs-gutter-x:0.25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y:0.25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x:0.5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y:0.5rem}.g-xl-3,.gx-xl-3{--bs-gutter-x:1rem}.g-xl-3,.gy-xl-3{--bs-gutter-y:1rem}.g-xl-4,.gx-xl-4{--bs-gutter-x:1.5rem}.g-xl-4,.gy-xl-4{--bs-gutter-y:1.5rem}.g-xl-5,.gx-xl-5{--bs-gutter-x:3rem}.g-xl-5,.gy-xl-5{--bs-gutter-y:3rem}}@media (min-width:1400px){.col-xxl{flex:1 0 0%}.row-cols-xxl-auto>*{flex:0 0 auto;width:auto}.row-cols-xxl-1>*{flex:0 0 auto;width:100%}.row-cols-xxl-2>*{flex:0 0 auto;width:50%}.row-cols-xxl-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-xxl-4>*{flex:0 0 auto;width:25%}.row-cols-xxl-5>*{flex:0 0 auto;width:20%}.row-cols-xxl-6>*{flex:0 0 auto;width:16.6666666667%}.col-xxl-auto{flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;width:8.33333333%}.col-xxl-2{flex:0 0 auto;width:16.66666667%}.col-xxl-3{flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;width:33.33333333%}.col-xxl-5{flex:0 0 auto;width:41.66666667%}.col-xxl-6{flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;width:58.33333333%}.col-xxl-8{flex:0 0 auto;width:66.66666667%}.col-xxl-9{flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;width:83.33333333%}.col-xxl-11{flex:0 0 auto;width:91.66666667%}.col-xxl-12{flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.33333333%}.offset-xxl-2{margin-left:16.66666667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.33333333%}.offset-xxl-5{margin-left:41.66666667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.33333333%}.offset-xxl-8{margin-left:66.66666667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.33333333%}.offset-xxl-11{margin-left:91.66666667%}.g-xxl-0,.gx-xxl-0{--bs-gutter-x:0}.g-xxl-0,.gy-xxl-0{--bs-gutter-y:0}.g-xxl-1,.gx-xxl-1{--bs-gutter-x:0.25rem}.g-xxl-1,.gy-xxl-1{--bs-gutter-y:0.25rem}.g-xxl-2,.gx-xxl-2{--bs-gutter-x:0.5rem}.g-xxl-2,.gy-xxl-2{--bs-gutter-y:0.5rem}.g-xxl-3,.gx-xxl-3{--bs-gutter-x:1rem}.g-xxl-3,.gy-xxl-3{--bs-gutter-y:1rem}.g-xxl-4,.gx-xxl-4{--bs-gutter-x:1.5rem}.g-xxl-4,.gy-xxl-4{--bs-gutter-y:1.5rem}.g-xxl-5,.gx-xxl-5{--bs-gutter-x:3rem}.g-xxl-5,.gy-xxl-5{--bs-gutter-y:3rem}}.table{--bs-table-bg:transparent;--bs-table-accent-bg:transparent;--bs-table-striped-color:#212529;--bs-table-striped-bg:rgba(0, 0, 0, 0.05);--bs-table-active-color:#212529;--bs-table-active-bg:rgba(0, 0, 0, 0.1);--bs-table-hover-color:#212529;--bs-table-hover-bg:rgba(0, 0, 0, 0.075);width:100%;margin-bottom:1rem;color:#212529;vertical-align:top;border-color:#dee2e6}.table>:not(caption)>*>*{padding:.5rem .5rem;background-color:var(--bs-table-bg);border-bottom-width:1px;box-shadow:inset 0 0 0 9999px var(--bs-table-accent-bg)}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table>:not(:last-child)>:last-child>*{border-bottom-color:currentColor}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem .25rem}.table-bordered>:not(caption)>*{border-width:1px 0}.table-bordered>:not(caption)>*>*{border-width:0 1px}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-striped>tbody>tr:nth-of-type(odd){--bs-table-accent-bg:var(--bs-table-striped-bg);color:var(--bs-table-striped-color)}.table-active{--bs-table-accent-bg:var(--bs-table-active-bg);color:var(--bs-table-active-color)}.table-hover>tbody>tr:hover{--bs-table-accent-bg:var(--bs-table-hover-bg);color:var(--bs-table-hover-color)}.table-primary{--bs-table-bg:#cfe2ff;--bs-table-striped-bg:#c5d7f2;--bs-table-striped-color:#000;--bs-table-active-bg:#bacbe6;--bs-table-active-color:#000;--bs-table-hover-bg:#bfd1ec;--bs-table-hover-color:#000;color:#000;border-color:#bacbe6}.table-secondary{--bs-table-bg:#e2e3e5;--bs-table-striped-bg:#d7d8da;--bs-table-striped-color:#000;--bs-table-active-bg:#cbccce;--bs-table-active-color:#000;--bs-table-hover-bg:#d1d2d4;--bs-table-hover-color:#000;color:#000;border-color:#cbccce}.table-success{--bs-table-bg:#d1e7dd;--bs-table-striped-bg:#c7dbd2;--bs-table-striped-color:#000;--bs-table-active-bg:#bcd0c7;--bs-table-active-color:#000;--bs-table-hover-bg:#c1d6cc;--bs-table-hover-color:#000;color:#000;border-color:#bcd0c7}.table-info{--bs-table-bg:#cff4fc;--bs-table-striped-bg:#c5e8ef;--bs-table-striped-color:#000;--bs-table-active-bg:#badce3;--bs-table-active-color:#000;--bs-table-hover-bg:#bfe2e9;--bs-table-hover-color:#000;color:#000;border-color:#badce3}.table-warning{--bs-table-bg:#fff3cd;--bs-table-striped-bg:#f2e7c3;--bs-table-striped-color:#000;--bs-table-active-bg:#e6dbb9;--bs-table-active-color:#000;--bs-table-hover-bg:#ece1be;--bs-table-hover-color:#000;color:#000;border-color:#e6dbb9}.table-danger{--bs-table-bg:#f8d7da;--bs-table-striped-bg:#eccccf;--bs-table-striped-color:#000;--bs-table-active-bg:#dfc2c4;--bs-table-active-color:#000;--bs-table-hover-bg:#e5c7ca;--bs-table-hover-color:#000;color:#000;border-color:#dfc2c4}.table-light{--bs-table-bg:#f8f9fa;--bs-table-striped-bg:#ecedee;--bs-table-striped-color:#000;--bs-table-active-bg:#dfe0e1;--bs-table-active-color:#000;--bs-table-hover-bg:#e5e6e7;--bs-table-hover-color:#000;color:#000;border-color:#dfe0e1}.table-dark{--bs-table-bg:#212529;--bs-table-striped-bg:#2c3034;--bs-table-striped-color:#fff;--bs-table-active-bg:#373b3e;--bs-table-active-color:#fff;--bs-table-hover-bg:#323539;--bs-table-hover-color:#fff;color:#fff;border-color:#373b3e}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width:575.98px){.table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:767.98px){.table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:991.98px){.table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1199.98px){.table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1399.98px){.table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}.form-label{margin-bottom:.5rem}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem}.form-text{margin-top:.25rem;font-size:.875em;color:#6c757d}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{color:#212529;background-color:#fff;border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-control::-webkit-date-and-time-value{height:1.5em}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}.form-control::file-selector-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:#212529;background-color:#e9ecef;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:#dde0e3}.form-control::-webkit-file-upload-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:#212529;background-color:#e9ecef;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control::-webkit-file-upload-button{-webkit-transition:none;transition:none}}.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:#dde0e3}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;border-radius:.2rem}.form-control-sm::file-selector-button{padding:.25rem .5rem;margin:-.25rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-sm::-webkit-file-upload-button{padding:.25rem .5rem;margin:-.25rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}.form-control-lg::-webkit-file-upload-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.5em + .75rem + 2px)}textarea.form-control-sm{min-height:calc(1.5em + .5rem + 2px)}textarea.form-control-lg{min-height:calc(1.5em + 1rem + 2px)}.form-control-color{width:3rem;height:auto;padding:.375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{height:1.5em;border-radius:.25rem}.form-control-color::-webkit-color-swatch{height:1.5em;border-radius:.25rem}.form-select{display:block;width:100%;padding:.375rem 2.25rem .375rem .75rem;-moz-padding-start:calc(0.75rem - 3px);font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fff;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-select{transition:none}}.form-select:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:.75rem;background-image:none}.form-select:disabled{background-color:#e9ecef}.form-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #212529}.form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.form-check{display:block;min-height:1.5rem;padding-left:1.5em;margin-bottom:.125rem}.form-check .form-check-input{float:left;margin-left:-1.5em}.form-check-input{width:1em;height:1em;margin-top:.25em;vertical-align:top;background-color:#fff;background-repeat:no-repeat;background-position:center;background-size:contain;border:1px solid rgba(0,0,0,.25);-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-print-color-adjust:exact;color-adjust:exact}.form-check-input[type=checkbox]{border-radius:.25em}.form-check-input[type=radio]{border-radius:50%}.form-check-input:active{filter:brightness(90%)}.form-check-input:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-check-input:checked{background-color:#0d6efd;border-color:#0d6efd}.form-check-input:checked[type=checkbox]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10l3 3l6-6'/%3e%3c/svg%3e")}.form-check-input:checked[type=radio]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e")}.form-check-input[type=checkbox]:indeterminate{background-color:#0d6efd;border-color:#0d6efd;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled{pointer-events:none;filter:none;opacity:.5}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{opacity:.5}.form-switch{padding-left:2.5em}.form-switch .form-check-input{width:2em;margin-left:-2.5em;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e");background-position:left center;border-radius:2em;transition:background-position .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2386b7fe'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:right center;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.form-check-inline{display:inline-block;margin-right:1rem}.btn-check{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.btn-check:disabled+.btn,.btn-check[disabled]+.btn{pointer-events:none;filter:none;opacity:.65}.form-range{width:100%;height:1.5rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(13,110,253,.25)}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(13,110,253,.25)}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#0d6efd;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#b6d4fe}.form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.form-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#0d6efd;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-range::-moz-range-thumb{-moz-transition:none;transition:none}}.form-range::-moz-range-thumb:active{background-color:#b6d4fe}.form-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.form-range:disabled::-moz-range-thumb{background-color:#adb5bd}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-select{height:calc(3.5rem + 2px);line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;height:100%;padding:1rem .75rem;pointer-events:none;border:1px solid transparent;transform-origin:0 0;transition:opacity .1s ease-in-out,transform .1s ease-in-out}@media (prefers-reduced-motion:reduce){.form-floating>label{transition:none}}.form-floating>.form-control{padding:1rem .75rem}.form-floating>.form-control::-moz-placeholder{color:transparent}.form-floating>.form-control::placeholder{color:transparent}.form-floating>.form-control:not(:-moz-placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:not(:-moz-placeholder-shown)~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-select~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control:-webkit-autofill~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-select{position:relative;flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-select:focus{z-index:3}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:3}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-lg>.btn,.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.input-group-sm>.btn,.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text{padding:.25rem .5rem;font-size:.875rem;border-radius:.2rem}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:3rem}.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu){border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4),.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:#198754}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:rgba(25,135,84,.9);border-radius:.25rem}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#198754;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#198754;box-shadow:0 0 0 .25rem rgba(25,135,84,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.form-select.is-valid,.was-validated .form-select:valid{border-color:#198754}.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"],.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size="1"]{padding-right:4.125rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.form-select.is-valid:focus,.was-validated .form-select:valid:focus{border-color:#198754;box-shadow:0 0 0 .25rem rgba(25,135,84,.25)}.form-check-input.is-valid,.was-validated .form-check-input:valid{border-color:#198754}.form-check-input.is-valid:checked,.was-validated .form-check-input:valid:checked{background-color:#198754}.form-check-input.is-valid:focus,.was-validated .form-check-input:valid:focus{box-shadow:0 0 0 .25rem rgba(25,135,84,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#198754}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.input-group .form-control.is-valid,.input-group .form-select.is-valid,.was-validated .input-group .form-control:valid,.was-validated .input-group .form-select:valid{z-index:1}.input-group .form-control.is-valid:focus,.input-group .form-select.is-valid:focus,.was-validated .input-group .form-control:valid:focus,.was-validated .input-group .form-select:valid:focus{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .25rem rgba(220,53,69,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.form-select.is-invalid,.was-validated .form-select:invalid{border-color:#dc3545}.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size="1"],.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size="1"]{padding-right:4.125rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.form-select.is-invalid:focus,.was-validated .form-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .25rem rgba(220,53,69,.25)}.form-check-input.is-invalid,.was-validated .form-check-input:invalid{border-color:#dc3545}.form-check-input.is-invalid:checked,.was-validated .form-check-input:invalid:checked{background-color:#dc3545}.form-check-input.is-invalid:focus,.was-validated .form-check-input:invalid:focus{box-shadow:0 0 0 .25rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.input-group .form-control.is-invalid,.input-group .form-select.is-invalid,.was-validated .input-group .form-control:invalid,.was-validated .input-group .form-select:invalid{z-index:2}.input-group .form-control.is-invalid:focus,.input-group .form-select.is-invalid:focus,.was-validated .input-group .form-control:invalid:focus,.was-validated .input-group .form-select:invalid:focus{z-index:3}.btn{display:inline-block;font-weight:400;line-height:1.5;color:#212529;text-align:center;text-decoration:none;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#212529}.btn-check:focus+.btn,.btn:focus{outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.btn.disabled,.btn:disabled,fieldset:disabled .btn{pointer-events:none;opacity:.65}.btn-primary{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-primary:hover{color:#fff;background-color:#0b5ed7;border-color:#0a58ca}.btn-check:focus+.btn-primary,.btn-primary:focus{color:#fff;background-color:#0b5ed7;border-color:#0a58ca;box-shadow:0 0 0 .25rem rgba(49,132,253,.5)}.btn-check:active+.btn-primary,.btn-check:checked+.btn-primary,.btn-primary.active,.btn-primary:active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0a58ca;border-color:#0a53be}.btn-check:active+.btn-primary:focus,.btn-check:checked+.btn-primary:focus,.btn-primary.active:focus,.btn-primary:active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(49,132,253,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:hover{color:#fff;background-color:#5c636a;border-color:#565e64}.btn-check:focus+.btn-secondary,.btn-secondary:focus{color:#fff;background-color:#5c636a;border-color:#565e64;box-shadow:0 0 0 .25rem rgba(130,138,145,.5)}.btn-check:active+.btn-secondary,.btn-check:checked+.btn-secondary,.btn-secondary.active,.btn-secondary:active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#565e64;border-color:#51585e}.btn-check:active+.btn-secondary:focus,.btn-check:checked+.btn-secondary:focus,.btn-secondary.active:focus,.btn-secondary:active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-success{color:#fff;background-color:#198754;border-color:#198754}.btn-success:hover{color:#fff;background-color:#157347;border-color:#146c43}.btn-check:focus+.btn-success,.btn-success:focus{color:#fff;background-color:#157347;border-color:#146c43;box-shadow:0 0 0 .25rem rgba(60,153,110,.5)}.btn-check:active+.btn-success,.btn-check:checked+.btn-success,.btn-success.active,.btn-success:active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#146c43;border-color:#13653f}.btn-check:active+.btn-success:focus,.btn-check:checked+.btn-success:focus,.btn-success.active:focus,.btn-success:active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(60,153,110,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#198754;border-color:#198754}.btn-info{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-info:hover{color:#000;background-color:#31d2f2;border-color:#25cff2}.btn-check:focus+.btn-info,.btn-info:focus{color:#000;background-color:#31d2f2;border-color:#25cff2;box-shadow:0 0 0 .25rem rgba(11,172,204,.5)}.btn-check:active+.btn-info,.btn-check:checked+.btn-info,.btn-info.active,.btn-info:active,.show>.btn-info.dropdown-toggle{color:#000;background-color:#3dd5f3;border-color:#25cff2}.btn-check:active+.btn-info:focus,.btn-check:checked+.btn-info:focus,.btn-info.active:focus,.btn-info:active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(11,172,204,.5)}.btn-info.disabled,.btn-info:disabled{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-warning{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#000;background-color:#ffca2c;border-color:#ffc720}.btn-check:focus+.btn-warning,.btn-warning:focus{color:#000;background-color:#ffca2c;border-color:#ffc720;box-shadow:0 0 0 .25rem rgba(217,164,6,.5)}.btn-check:active+.btn-warning,.btn-check:checked+.btn-warning,.btn-warning.active,.btn-warning:active,.show>.btn-warning.dropdown-toggle{color:#000;background-color:#ffcd39;border-color:#ffc720}.btn-check:active+.btn-warning:focus,.btn-check:checked+.btn-warning:focus,.btn-warning.active:focus,.btn-warning:active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(217,164,6,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:hover{color:#fff;background-color:#bb2d3b;border-color:#b02a37}.btn-check:focus+.btn-danger,.btn-danger:focus{color:#fff;background-color:#bb2d3b;border-color:#b02a37;box-shadow:0 0 0 .25rem rgba(225,83,97,.5)}.btn-check:active+.btn-danger,.btn-check:checked+.btn-danger,.btn-danger.active,.btn-danger:active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#b02a37;border-color:#a52834}.btn-check:active+.btn-danger:focus,.btn-check:checked+.btn-danger:focus,.btn-danger.active:focus,.btn-danger:active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-light{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#000;background-color:#f9fafb;border-color:#f9fafb}.btn-check:focus+.btn-light,.btn-light:focus{color:#000;background-color:#f9fafb;border-color:#f9fafb;box-shadow:0 0 0 .25rem rgba(211,212,213,.5)}.btn-check:active+.btn-light,.btn-check:checked+.btn-light,.btn-light.active,.btn-light:active,.show>.btn-light.dropdown-toggle{color:#000;background-color:#f9fafb;border-color:#f9fafb}.btn-check:active+.btn-light:focus,.btn-check:checked+.btn-light:focus,.btn-light.active:focus,.btn-light:active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(211,212,213,.5)}.btn-light.disabled,.btn-light:disabled{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-dark{color:#fff;background-color:#212529;border-color:#212529}.btn-dark:hover{color:#fff;background-color:#1c1f23;border-color:#1a1e21}.btn-check:focus+.btn-dark,.btn-dark:focus{color:#fff;background-color:#1c1f23;border-color:#1a1e21;box-shadow:0 0 0 .25rem rgba(66,70,73,.5)}.btn-check:active+.btn-dark,.btn-check:checked+.btn-dark,.btn-dark.active,.btn-dark:active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1a1e21;border-color:#191c1f}.btn-check:active+.btn-dark:focus,.btn-check:checked+.btn-dark:focus,.btn-dark.active:focus,.btn-dark:active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(66,70,73,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#212529;border-color:#212529}.btn-outline-primary{color:#0d6efd;border-color:#0d6efd}.btn-outline-primary:hover{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-check:focus+.btn-outline-primary,.btn-outline-primary:focus{box-shadow:0 0 0 .25rem rgba(13,110,253,.5)}.btn-check:active+.btn-outline-primary,.btn-check:checked+.btn-outline-primary,.btn-outline-primary.active,.btn-outline-primary.dropdown-toggle.show,.btn-outline-primary:active{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-check:active+.btn-outline-primary:focus,.btn-check:checked+.btn-outline-primary:focus,.btn-outline-primary.active:focus,.btn-outline-primary.dropdown-toggle.show:focus,.btn-outline-primary:active:focus{box-shadow:0 0 0 .25rem rgba(13,110,253,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#0d6efd;background-color:transparent}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-check:focus+.btn-outline-secondary,.btn-outline-secondary:focus{box-shadow:0 0 0 .25rem rgba(108,117,125,.5)}.btn-check:active+.btn-outline-secondary,.btn-check:checked+.btn-outline-secondary,.btn-outline-secondary.active,.btn-outline-secondary.dropdown-toggle.show,.btn-outline-secondary:active{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-check:active+.btn-outline-secondary:focus,.btn-check:checked+.btn-outline-secondary:focus,.btn-outline-secondary.active:focus,.btn-outline-secondary.dropdown-toggle.show:focus,.btn-outline-secondary:active:focus{box-shadow:0 0 0 .25rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-success{color:#198754;border-color:#198754}.btn-outline-success:hover{color:#fff;background-color:#198754;border-color:#198754}.btn-check:focus+.btn-outline-success,.btn-outline-success:focus{box-shadow:0 0 0 .25rem rgba(25,135,84,.5)}.btn-check:active+.btn-outline-success,.btn-check:checked+.btn-outline-success,.btn-outline-success.active,.btn-outline-success.dropdown-toggle.show,.btn-outline-success:active{color:#fff;background-color:#198754;border-color:#198754}.btn-check:active+.btn-outline-success:focus,.btn-check:checked+.btn-outline-success:focus,.btn-outline-success.active:focus,.btn-outline-success.dropdown-toggle.show:focus,.btn-outline-success:active:focus{box-shadow:0 0 0 .25rem rgba(25,135,84,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#198754;background-color:transparent}.btn-outline-info{color:#0dcaf0;border-color:#0dcaf0}.btn-outline-info:hover{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-check:focus+.btn-outline-info,.btn-outline-info:focus{box-shadow:0 0 0 .25rem rgba(13,202,240,.5)}.btn-check:active+.btn-outline-info,.btn-check:checked+.btn-outline-info,.btn-outline-info.active,.btn-outline-info.dropdown-toggle.show,.btn-outline-info:active{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-check:active+.btn-outline-info:focus,.btn-check:checked+.btn-outline-info:focus,.btn-outline-info.active:focus,.btn-outline-info.dropdown-toggle.show:focus,.btn-outline-info:active:focus{box-shadow:0 0 0 .25rem rgba(13,202,240,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#0dcaf0;background-color:transparent}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-check:focus+.btn-outline-warning,.btn-outline-warning:focus{box-shadow:0 0 0 .25rem rgba(255,193,7,.5)}.btn-check:active+.btn-outline-warning,.btn-check:checked+.btn-outline-warning,.btn-outline-warning.active,.btn-outline-warning.dropdown-toggle.show,.btn-outline-warning:active{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-check:active+.btn-outline-warning:focus,.btn-check:checked+.btn-outline-warning:focus,.btn-outline-warning.active:focus,.btn-outline-warning.dropdown-toggle.show:focus,.btn-outline-warning:active:focus{box-shadow:0 0 0 .25rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-check:focus+.btn-outline-danger,.btn-outline-danger:focus{box-shadow:0 0 0 .25rem rgba(220,53,69,.5)}.btn-check:active+.btn-outline-danger,.btn-check:checked+.btn-outline-danger,.btn-outline-danger.active,.btn-outline-danger.dropdown-toggle.show,.btn-outline-danger:active{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-check:active+.btn-outline-danger:focus,.btn-check:checked+.btn-outline-danger:focus,.btn-outline-danger.active:focus,.btn-outline-danger.dropdown-toggle.show:focus,.btn-outline-danger:active:focus{box-shadow:0 0 0 .25rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-check:focus+.btn-outline-light,.btn-outline-light:focus{box-shadow:0 0 0 .25rem rgba(248,249,250,.5)}.btn-check:active+.btn-outline-light,.btn-check:checked+.btn-outline-light,.btn-outline-light.active,.btn-outline-light.dropdown-toggle.show,.btn-outline-light:active{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-check:active+.btn-outline-light:focus,.btn-check:checked+.btn-outline-light:focus,.btn-outline-light.active:focus,.btn-outline-light.dropdown-toggle.show:focus,.btn-outline-light:active:focus{box-shadow:0 0 0 .25rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-dark{color:#212529;border-color:#212529}.btn-outline-dark:hover{color:#fff;background-color:#212529;border-color:#212529}.btn-check:focus+.btn-outline-dark,.btn-outline-dark:focus{box-shadow:0 0 0 .25rem rgba(33,37,41,.5)}.btn-check:active+.btn-outline-dark,.btn-check:checked+.btn-outline-dark,.btn-outline-dark.active,.btn-outline-dark.dropdown-toggle.show,.btn-outline-dark:active{color:#fff;background-color:#212529;border-color:#212529}.btn-check:active+.btn-outline-dark:focus,.btn-check:checked+.btn-outline-dark:focus,.btn-outline-dark.active:focus,.btn-outline-dark.dropdown-toggle.show:focus,.btn-outline-dark:active:focus{box-shadow:0 0 0 .25rem rgba(33,37,41,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#212529;background-color:transparent}.btn-link{font-weight:400;color:#0d6efd;text-decoration:underline}.btn-link:hover{color:#0a58ca}.btn-link.disabled,.btn-link:disabled{color:#6c757d}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;border-radius:.2rem}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{width:0;height:auto;transition:width .35s ease}@media (prefers-reduced-motion:reduce){.collapsing.collapse-horizontal{transition:none}}.dropdown,.dropend,.dropstart,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;z-index:1000;display:none;min-width:10rem;padding:.5rem 0;margin:0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu[data-bs-popper]{top:100%;left:0;margin-top:.125rem}.dropdown-menu-start{--bs-position:start}.dropdown-menu-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-end{--bs-position:end}.dropdown-menu-end[data-bs-popper]{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-start{--bs-position:start}.dropdown-menu-sm-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-sm-end{--bs-position:end}.dropdown-menu-sm-end[data-bs-popper]{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-start{--bs-position:start}.dropdown-menu-md-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-md-end{--bs-position:end}.dropdown-menu-md-end[data-bs-popper]{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-start{--bs-position:start}.dropdown-menu-lg-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-lg-end{--bs-position:end}.dropdown-menu-lg-end[data-bs-popper]{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-start{--bs-position:start}.dropdown-menu-xl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xl-end{--bs-position:end}.dropdown-menu-xl-end[data-bs-popper]{right:0;left:auto}}@media (min-width:1400px){.dropdown-menu-xxl-start{--bs-position:start}.dropdown-menu-xxl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xxl-end{--bs-position:end}.dropdown-menu-xxl-end[data-bs-popper]{right:0;left:auto}}.dropup .dropdown-menu[data-bs-popper]{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-menu[data-bs-popper]{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropend .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropend .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-toggle::after{vertical-align:0}.dropstart .dropdown-menu[data-bs-popper]{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropstart .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropstart .dropdown-toggle::after{display:none}.dropstart .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropstart .dropdown-toggle:empty::after{margin-left:0}.dropstart .dropdown-toggle::before{vertical-align:0}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid rgba(0,0,0,.15)}.dropdown-item{display:block;width:100%;padding:.25rem 1rem;clear:both;font-weight:400;color:#212529;text-align:inherit;text-decoration:none;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#1e2125;background-color:#e9ecef}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#0d6efd}.dropdown-item.disabled,.dropdown-item:disabled{color:#adb5bd;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1rem;color:#212529}.dropdown-menu-dark{color:#dee2e6;background-color:#343a40;border-color:rgba(0,0,0,.15)}.dropdown-menu-dark .dropdown-item{color:#dee2e6}.dropdown-menu-dark .dropdown-item:focus,.dropdown-menu-dark .dropdown-item:hover{color:#fff;background-color:rgba(255,255,255,.15)}.dropdown-menu-dark .dropdown-item.active,.dropdown-menu-dark .dropdown-item:active{color:#fff;background-color:#0d6efd}.dropdown-menu-dark .dropdown-item.disabled,.dropdown-menu-dark .dropdown-item:disabled{color:#adb5bd}.dropdown-menu-dark .dropdown-divider{border-color:rgba(0,0,0,.15)}.dropdown-menu-dark .dropdown-item-text{color:#dee2e6}.dropdown-menu-dark .dropdown-header{color:#adb5bd}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;flex:1 1 auto}.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:nth-child(n+3),.btn-group>:not(.btn-check)+.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropend .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.dropstart .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn~.btn{border-top-left-radius:0;border-top-right-radius:0}.nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem;color:#0d6efd;text-decoration:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media (prefers-reduced-motion:reduce){.nav-link{transition:none}}.nav-link:focus,.nav-link:hover{color:#0a58ca}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-link{margin-bottom:-1px;background:0 0;border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6;isolation:isolate}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{background:0 0;border:0;border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#0d6efd}.nav-fill .nav-item,.nav-fill>.nav-link{flex:1 1 auto;text-align:center}.nav-justified .nav-item,.nav-justified>.nav-link{flex-basis:0;flex-grow:1;text-align:center}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding-top:.5rem;padding-bottom:.5rem}.navbar>.container,.navbar>.container-fluid,.navbar>.container-lg,.navbar>.container-md,.navbar>.container-sm,.navbar>.container-xl,.navbar>.container-xxl{display:flex;flex-wrap:inherit;align-items:center;justify-content:space-between}.navbar-brand{padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;text-decoration:none;white-space:nowrap}.navbar-nav{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem;transition:box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 .25rem}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-repeat:no-repeat;background-position:center;background-size:100%}.navbar-nav-scroll{max-height:var(--bs-scroll-height,75vh);overflow-y:auto}@media (min-width:576px){.navbar-expand-sm{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .offcanvas-header{display:none}.navbar-expand-sm .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-sm .offcanvas-bottom,.navbar-expand-sm .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-sm .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:768px){.navbar-expand-md{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .offcanvas-header{display:none}.navbar-expand-md .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-md .offcanvas-bottom,.navbar-expand-md .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-md .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:992px){.navbar-expand-lg{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .offcanvas-header{display:none}.navbar-expand-lg .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-lg .offcanvas-bottom,.navbar-expand-lg .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-lg .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:1200px){.navbar-expand-xl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .offcanvas-header{display:none}.navbar-expand-xl .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-xl .offcanvas-bottom,.navbar-expand-xl .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-xl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:1400px){.navbar-expand-xxl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row}.navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xxl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}.navbar-expand-xxl .offcanvas-header{display:none}.navbar-expand-xxl .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-xxl .offcanvas-bottom,.navbar-expand-xxl .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-xxl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}.navbar-expand{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .offcanvas-header{display:none}.navbar-expand .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand .offcanvas-bottom,.navbar-expand .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}.navbar-light .navbar-brand{color:rgba(0,0,0,.9)}.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.55)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.55);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-light .navbar-text{color:rgba(0,0,0,.55)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.55)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.55);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-dark .navbar-text{color:rgba(255,255,255,.55)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;padding:1rem 1rem}.card-title{margin-bottom:.5rem}.card-subtitle{margin-top:-.25rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link+.card-link{margin-left:1rem}.card-header{padding:.5rem 1rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-footer{padding:.5rem 1rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-right:-.5rem;margin-bottom:-.5rem;margin-left:-.5rem;border-bottom:0}.card-header-pills{margin-right:-.5rem;margin-left:-.5rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1rem;border-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom,.card-img-top{width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-group>.card{margin-bottom:.75rem}@media (min-width:576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.accordion-button{position:relative;display:flex;align-items:center;width:100%;padding:1rem 1.25rem;font-size:1rem;color:#212529;text-align:left;background-color:#fff;border:0;border-radius:0;overflow-anchor:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,border-radius .15s ease}@media (prefers-reduced-motion:reduce){.accordion-button{transition:none}}.accordion-button:not(.collapsed){color:#0c63e4;background-color:#e7f1ff;box-shadow:inset 0 -1px 0 rgba(0,0,0,.125)}.accordion-button:not(.collapsed)::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%230c63e4'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");transform:rotate(-180deg)}.accordion-button::after{flex-shrink:0;width:1.25rem;height:1.25rem;margin-left:auto;content:"";background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-size:1.25rem;transition:transform .2s ease-in-out}@media (prefers-reduced-motion:reduce){.accordion-button::after{transition:none}}.accordion-button:hover{z-index:2}.accordion-button:focus{z-index:3;border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.accordion-header{margin-bottom:0}.accordion-item{background-color:#fff;border:1px solid rgba(0,0,0,.125)}.accordion-item:first-of-type{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.accordion-item:first-of-type .accordion-button{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.accordion-item:not(:first-of-type){border-top:0}.accordion-item:last-of-type{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.accordion-item:last-of-type .accordion-button.collapsed{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.accordion-item:last-of-type .accordion-collapse{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.accordion-body{padding:1rem 1.25rem}.accordion-flush .accordion-collapse{border-width:0}.accordion-flush .accordion-item{border-right:0;border-left:0;border-radius:0}.accordion-flush .accordion-item:first-child{border-top:0}.accordion-flush .accordion-item:last-child{border-bottom:0}.accordion-flush .accordion-item .accordion-button{border-radius:0}.breadcrumb{display:flex;flex-wrap:wrap;padding:0 0;margin-bottom:1rem;list-style:none}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{float:left;padding-right:.5rem;color:#6c757d;content:var(--bs-breadcrumb-divider, "/")}.breadcrumb-item.active{color:#6c757d}.pagination{display:flex;padding-left:0;list-style:none}.page-link{position:relative;display:block;color:#0d6efd;text-decoration:none;background-color:#fff;border:1px solid #dee2e6;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.page-link{transition:none}}.page-link:hover{z-index:2;color:#0a58ca;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;color:#0a58ca;background-color:#e9ecef;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.page-item:not(:first-child) .page-link{margin-left:-1px}.page-item.active .page-link{z-index:3;color:#fff;background-color:#0d6efd;border-color:#0d6efd}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;background-color:#fff;border-color:#dee2e6}.page-link{padding:.375rem .75rem}.page-item:first-child .page-link{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.35em .65em;font-size:.75em;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{position:relative;padding:1rem 1rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1rem}.alert-primary{color:#084298;background-color:#cfe2ff;border-color:#b6d4fe}.alert-primary .alert-link{color:#06357a}.alert-secondary{color:#41464b;background-color:#e2e3e5;border-color:#d3d6d8}.alert-secondary .alert-link{color:#34383c}.alert-success{color:#0f5132;background-color:#d1e7dd;border-color:#badbcc}.alert-success .alert-link{color:#0c4128}.alert-info{color:#055160;background-color:#cff4fc;border-color:#b6effb}.alert-info .alert-link{color:#04414d}.alert-warning{color:#664d03;background-color:#fff3cd;border-color:#ffecb5}.alert-warning .alert-link{color:#523e02}.alert-danger{color:#842029;background-color:#f8d7da;border-color:#f5c2c7}.alert-danger .alert-link{color:#6a1a21}.alert-light{color:#636464;background-color:#fefefe;border-color:#fdfdfe}.alert-light .alert-link{color:#4f5050}.alert-dark{color:#141619;background-color:#d3d3d4;border-color:#bcbebf}.alert-dark .alert-link{color:#101214}@-webkit-keyframes progress-bar-stripes{0%{background-position-x:1rem}}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.progress{display:flex;height:1rem;overflow:hidden;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:flex;flex-direction:column;justify-content:center;overflow:hidden;color:#fff;text-align:center;white-space:nowrap;background-color:#0d6efd;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:1s linear infinite progress-bar-stripes;animation:1s linear infinite progress-bar-stripes}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.list-group{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:.25rem}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>li::before{content:counters(section, ".") ". ";counter-increment:section}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.5rem 1rem;color:#212529;text-decoration:none;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#0d6efd;border-color:#0d6efd}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1400px){.list-group-horizontal-xxl{flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 1px}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#084298;background-color:#cfe2ff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#084298;background-color:#bacbe6}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#084298;border-color:#084298}.list-group-item-secondary{color:#41464b;background-color:#e2e3e5}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#41464b;background-color:#cbccce}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#41464b;border-color:#41464b}.list-group-item-success{color:#0f5132;background-color:#d1e7dd}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#0f5132;background-color:#bcd0c7}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#0f5132;border-color:#0f5132}.list-group-item-info{color:#055160;background-color:#cff4fc}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#055160;background-color:#badce3}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#055160;border-color:#055160}.list-group-item-warning{color:#664d03;background-color:#fff3cd}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#664d03;background-color:#e6dbb9}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#664d03;border-color:#664d03}.list-group-item-danger{color:#842029;background-color:#f8d7da}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#842029;background-color:#dfc2c4}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#842029;border-color:#842029}.list-group-item-light{color:#636464;background-color:#fefefe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#636464;background-color:#e5e5e5}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#636464;border-color:#636464}.list-group-item-dark{color:#141619;background-color:#d3d3d4}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#141619;background-color:#bebebf}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#141619;border-color:#141619}.btn-close{box-sizing:content-box;width:1em;height:1em;padding:.25em .25em;color:#000;background:transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e") center/1em auto no-repeat;border:0;border-radius:.25rem;opacity:.5}.btn-close:hover{color:#000;text-decoration:none;opacity:.75}.btn-close:focus{outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25);opacity:1}.btn-close.disabled,.btn-close:disabled{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;opacity:.25}.btn-close-white{filter:invert(1) grayscale(100%) brightness(200%)}.toast{width:350px;max-width:100%;font-size:.875rem;pointer-events:auto;background-color:rgba(255,255,255,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .5rem 1rem rgba(0,0,0,.15);border-radius:.25rem}.toast.showing{opacity:0}.toast:not(.show){display:none}.toast-container{width:-webkit-max-content;width:-moz-max-content;width:max-content;max-width:100%;pointer-events:none}.toast-container>:not(:last-child){margin-bottom:.75rem}.toast-header{display:flex;align-items:center;padding:.5rem .75rem;color:#6c757d;background-color:rgba(255,255,255,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05);border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.toast-header .btn-close{margin-right:-.375rem;margin-left:.75rem}.toast-body{padding:.75rem;word-wrap:break-word}.modal{position:fixed;top:0;left:0;z-index:1055;display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translate(0,-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - 1rem)}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1050;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:flex;flex-shrink:0;align-items:center;justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .btn-close{padding:.5rem .5rem;margin:-.5rem -.5rem -.5rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;flex:1 1 auto;padding:1rem}.modal-footer{display:flex;flex-wrap:wrap;flex-shrink:0;align-items:center;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{height:calc(100% - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen .modal-header{border-radius:0}.modal-fullscreen .modal-body{overflow-y:auto}.modal-fullscreen .modal-footer{border-radius:0}@media (max-width:575.98px){.modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-sm-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-sm-down .modal-header{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}.modal-fullscreen-sm-down .modal-footer{border-radius:0}}@media (max-width:767.98px){.modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-md-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-md-down .modal-header{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}.modal-fullscreen-md-down .modal-footer{border-radius:0}}@media (max-width:991.98px){.modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-lg-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-lg-down .modal-header{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}.modal-fullscreen-lg-down .modal-footer{border-radius:0}}@media (max-width:1199.98px){.modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xl-down .modal-header{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}.modal-fullscreen-xl-down .modal-footer{border-radius:0}}@media (max-width:1399.98px){.modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xxl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xxl-down .modal-header{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}.modal-fullscreen-xxl-down .modal-footer{border-radius:0}}.tooltip{position:absolute;z-index:1080;display:block;margin:0;font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .tooltip-arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .tooltip-arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[data-popper-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow,.bs-tooltip-top .tooltip-arrow{bottom:0}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before,.bs-tooltip-top .tooltip-arrow::before{top:-1px;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[data-popper-placement^=right],.bs-tooltip-end{padding:0 .4rem}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow,.bs-tooltip-end .tooltip-arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before,.bs-tooltip-end .tooltip-arrow::before{right:-1px;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[data-popper-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow,.bs-tooltip-bottom .tooltip-arrow{top:0}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before,.bs-tooltip-bottom .tooltip-arrow::before{bottom:-1px;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[data-popper-placement^=left],.bs-tooltip-start{padding:0 .4rem}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow,.bs-tooltip-start .tooltip-arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before,.bs-tooltip-start .tooltip-arrow::before{left:-1px;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0;z-index:1070;display:block;max-width:276px;font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover .popover-arrow{position:absolute;display:block;width:1rem;height:.5rem}.popover .popover-arrow::after,.popover .popover-arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow,.bs-popover-top>.popover-arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before,.bs-popover-top>.popover-arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after,.bs-popover-top>.popover-arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow,.bs-popover-end>.popover-arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before,.bs-popover-end>.popover-arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after,.bs-popover-end>.popover-arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow,.bs-popover-bottom>.popover-arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before,.bs-popover-bottom>.popover-arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after,.bs-popover-bottom>.popover-arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[data-popper-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f0f0f0}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow,.bs-popover-start>.popover-arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before,.bs-popover-start>.popover-arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after,.bs-popover-start>.popover-arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem 1rem;margin-bottom:0;font-size:1rem;background-color:#f0f0f0;border-bottom:1px solid rgba(0,0,0,.2);border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:1rem 1rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-end,.carousel-item-next:not(.carousel-item-start){transform:translateX(100%)}.active.carousel-item-start,.carousel-item-prev:not(.carousel-item-end){transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:0 0;border:0;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%;list-style:none}.carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border:0;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators [data-bs-target]{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}.carousel-dark .carousel-control-next-icon,.carousel-dark .carousel-control-prev-icon{filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}.carousel-dark .carousel-caption{color:#000}@-webkit-keyframes spinner-border{to{transform:rotate(360deg)}}@keyframes spinner-border{to{transform:rotate(360deg)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:-.125em;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;-webkit-animation:.75s linear infinite spinner-border;animation:.75s linear infinite spinner-border}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:-.125em;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:.75s linear infinite spinner-grow;animation:.75s linear infinite spinner-grow}.spinner-grow-sm{width:1rem;height:1rem}@media (prefers-reduced-motion:reduce){.spinner-border,.spinner-grow{-webkit-animation-duration:1.5s;animation-duration:1.5s}}.offcanvas{position:fixed;bottom:0;z-index:1045;display:flex;flex-direction:column;max-width:100%;visibility:hidden;background-color:#fff;background-clip:padding-box;outline:0;transition:transform .3s ease-in-out}@media (prefers-reduced-motion:reduce){.offcanvas{transition:none}}.offcanvas-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.offcanvas-backdrop.fade{opacity:0}.offcanvas-backdrop.show{opacity:.5}.offcanvas-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1rem}.offcanvas-header .btn-close{padding:.5rem .5rem;margin-top:-.5rem;margin-right:-.5rem;margin-bottom:-.5rem}.offcanvas-title{margin-bottom:0;line-height:1.5}.offcanvas-body{flex-grow:1;padding:1rem 1rem;overflow-y:auto}.offcanvas-start{top:0;left:0;width:400px;border-right:1px solid rgba(0,0,0,.2);transform:translateX(-100%)}.offcanvas-end{top:0;right:0;width:400px;border-left:1px solid rgba(0,0,0,.2);transform:translateX(100%)}.offcanvas-top{top:0;right:0;left:0;height:30vh;max-height:100%;border-bottom:1px solid rgba(0,0,0,.2);transform:translateY(-100%)}.offcanvas-bottom{right:0;left:0;height:30vh;max-height:100%;border-top:1px solid rgba(0,0,0,.2);transform:translateY(100%)}.offcanvas.show{transform:none}.placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentColor;opacity:.5}.placeholder.btn::before{display:inline-block;content:""}.placeholder-xs{min-height:.6em}.placeholder-sm{min-height:.8em}.placeholder-lg{min-height:1.2em}.placeholder-glow .placeholder{-webkit-animation:placeholder-glow 2s ease-in-out infinite;animation:placeholder-glow 2s ease-in-out infinite}@-webkit-keyframes placeholder-glow{50%{opacity:.2}}@keyframes placeholder-glow{50%{opacity:.2}}.placeholder-wave{-webkit-mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,0.8) 75%,#000 95%);mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,0.8) 75%,#000 95%);-webkit-mask-size:200% 100%;mask-size:200% 100%;-webkit-animation:placeholder-wave 2s linear infinite;animation:placeholder-wave 2s linear infinite}@-webkit-keyframes placeholder-wave{100%{-webkit-mask-position:-200% 0%;mask-position:-200% 0%}}@keyframes placeholder-wave{100%{-webkit-mask-position:-200% 0%;mask-position:-200% 0%}}.clearfix::after{display:block;clear:both;content:""}.link-primary{color:#0d6efd}.link-primary:focus,.link-primary:hover{color:#0a58ca}.link-secondary{color:#6c757d}.link-secondary:focus,.link-secondary:hover{color:#565e64}.link-success{color:#198754}.link-success:focus,.link-success:hover{color:#146c43}.link-info{color:#0dcaf0}.link-info:focus,.link-info:hover{color:#3dd5f3}.link-warning{color:#ffc107}.link-warning:focus,.link-warning:hover{color:#ffcd39}.link-danger{color:#dc3545}.link-danger:focus,.link-danger:hover{color:#b02a37}.link-light{color:#f8f9fa}.link-light:focus,.link-light:hover{color:#f9fafb}.link-dark{color:#212529}.link-dark:focus,.link-dark:hover{color:#1a1e21}.ratio{position:relative;width:100%}.ratio::before{display:block;padding-top:var(--bs-aspect-ratio);content:""}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--bs-aspect-ratio:100%}.ratio-4x3{--bs-aspect-ratio:calc(3 / 4 * 100%)}.ratio-16x9{--bs-aspect-ratio:calc(9 / 16 * 100%)}.ratio-21x9{--bs-aspect-ratio:calc(9 / 21 * 100%)}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}@media (min-width:576px){.sticky-sm-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:768px){.sticky-md-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:992px){.sticky-lg-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:1200px){.sticky-xl-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:1400px){.sticky-xxl-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.hstack{display:flex;flex-direction:row;align-items:center;align-self:stretch}.vstack{display:flex;flex:1 1 auto;flex-direction:column;align-self:stretch}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{display:inline-block;align-self:stretch;width:1px;min-height:1em;background-color:currentColor;opacity:.25}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.float-start{float:left!important}.float-end{float:right!important}.float-none{float:none!important}.opacity-0{opacity:0!important}.opacity-25{opacity:.25!important}.opacity-50{opacity:.5!important}.opacity-75{opacity:.75!important}.opacity-100{opacity:1!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.overflow-visible{overflow:visible!important}.overflow-scroll{overflow:scroll!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-grid{display:grid!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.d-none{display:none!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.top-0{top:0!important}.top-50{top:50%!important}.top-100{top:100%!important}.bottom-0{bottom:0!important}.bottom-50{bottom:50%!important}.bottom-100{bottom:100%!important}.start-0{left:0!important}.start-50{left:50%!important}.start-100{left:100%!important}.end-0{right:0!important}.end-50{right:50%!important}.end-100{right:100%!important}.translate-middle{transform:translate(-50%,-50%)!important}.translate-middle-x{transform:translateX(-50%)!important}.translate-middle-y{transform:translateY(-50%)!important}.border{border:1px solid #dee2e6!important}.border-0{border:0!important}.border-top{border-top:1px solid #dee2e6!important}.border-top-0{border-top:0!important}.border-end{border-right:1px solid #dee2e6!important}.border-end-0{border-right:0!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-bottom-0{border-bottom:0!important}.border-start{border-left:1px solid #dee2e6!important}.border-start-0{border-left:0!important}.border-primary{border-color:#0d6efd!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#198754!important}.border-info{border-color:#0dcaf0!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#212529!important}.border-white{border-color:#fff!important}.border-1{border-width:1px!important}.border-2{border-width:2px!important}.border-3{border-width:3px!important}.border-4{border-width:4px!important}.border-5{border-width:5px!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.mw-100{max-width:100%!important}.vw-100{width:100vw!important}.min-vw-100{min-width:100vw!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mh-100{max-height:100%!important}.vh-100{height:100vh!important}.min-vh-100{min-height:100vh!important}.flex-fill{flex:1 1 auto!important}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-0{gap:0!important}.gap-1{gap:.25rem!important}.gap-2{gap:.5rem!important}.gap-3{gap:1rem!important}.gap-4{gap:1.5rem!important}.gap-5{gap:3rem!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.justify-content-evenly{justify-content:space-evenly!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.order-first{order:-1!important}.order-0{order:0!important}.order-1{order:1!important}.order-2{order:2!important}.order-3{order:3!important}.order-4{order:4!important}.order-5{order:5!important}.order-last{order:6!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-3{margin:1rem!important}.m-4{margin:1.5rem!important}.m-5{margin:3rem!important}.m-auto{margin:auto!important}.mx-0{margin-right:0!important;margin-left:0!important}.mx-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-3{margin-right:1rem!important;margin-left:1rem!important}.mx-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-5{margin-right:3rem!important;margin-left:3rem!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}.my-0{margin-top:0!important;margin-bottom:0!important}.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.mt-5{margin-top:3rem!important}.mt-auto{margin-top:auto!important}.me-0{margin-right:0!important}.me-1{margin-right:.25rem!important}.me-2{margin-right:.5rem!important}.me-3{margin-right:1rem!important}.me-4{margin-right:1.5rem!important}.me-5{margin-right:3rem!important}.me-auto{margin-right:auto!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mb-5{margin-bottom:3rem!important}.mb-auto{margin-bottom:auto!important}.ms-0{margin-left:0!important}.ms-1{margin-left:.25rem!important}.ms-2{margin-left:.5rem!important}.ms-3{margin-left:1rem!important}.ms-4{margin-left:1.5rem!important}.ms-5{margin-left:3rem!important}.ms-auto{margin-left:auto!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}.p-4{padding:1.5rem!important}.p-5{padding:3rem!important}.px-0{padding-right:0!important;padding-left:0!important}.px-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-3{padding-right:1rem!important;padding-left:1rem!important}.px-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-5{padding-right:3rem!important;padding-left:3rem!important}.py-0{padding-top:0!important;padding-bottom:0!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:1.5rem!important}.pt-5{padding-top:3rem!important}.pe-0{padding-right:0!important}.pe-1{padding-right:.25rem!important}.pe-2{padding-right:.5rem!important}.pe-3{padding-right:1rem!important}.pe-4{padding-right:1.5rem!important}.pe-5{padding-right:3rem!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:1.5rem!important}.pb-5{padding-bottom:3rem!important}.ps-0{padding-left:0!important}.ps-1{padding-left:.25rem!important}.ps-2{padding-left:.5rem!important}.ps-3{padding-left:1rem!important}.ps-4{padding-left:1.5rem!important}.ps-5{padding-left:3rem!important}.font-monospace{font-family:var(--bs-font-monospace)!important}.fs-1{font-size:calc(1.375rem + 1.5vw)!important}.fs-2{font-size:calc(1.325rem + .9vw)!important}.fs-3{font-size:calc(1.3rem + .6vw)!important}.fs-4{font-size:calc(1.275rem + .3vw)!important}.fs-5{font-size:1.25rem!important}.fs-6{font-size:1rem!important}.fst-italic{font-style:italic!important}.fst-normal{font-style:normal!important}.fw-light{font-weight:300!important}.fw-lighter{font-weight:lighter!important}.fw-normal{font-weight:400!important}.fw-bold{font-weight:700!important}.fw-bolder{font-weight:bolder!important}.lh-1{line-height:1!important}.lh-sm{line-height:1.25!important}.lh-base{line-height:1.5!important}.lh-lg{line-height:2!important}.text-start{text-align:left!important}.text-end{text-align:right!important}.text-center{text-align:center!important}.text-decoration-none{text-decoration:none!important}.text-decoration-underline{text-decoration:underline!important}.text-decoration-line-through{text-decoration:line-through!important}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-break{word-wrap:break-word!important;word-break:break-word!important}.text-primary{--bs-text-opacity:1;color:rgba(var(--bs-primary-rgb),var(--bs-text-opacity))!important}.text-secondary{--bs-text-opacity:1;color:rgba(var(--bs-secondary-rgb),var(--bs-text-opacity))!important}.text-success{--bs-text-opacity:1;color:rgba(var(--bs-success-rgb),var(--bs-text-opacity))!important}.text-info{--bs-text-opacity:1;color:rgba(var(--bs-info-rgb),var(--bs-text-opacity))!important}.text-warning{--bs-text-opacity:1;color:rgba(var(--bs-warning-rgb),var(--bs-text-opacity))!important}.text-danger{--bs-text-opacity:1;color:rgba(var(--bs-danger-rgb),var(--bs-text-opacity))!important}.text-light{--bs-text-opacity:1;color:rgba(var(--bs-light-rgb),var(--bs-text-opacity))!important}.text-dark{--bs-text-opacity:1;color:rgba(var(--bs-dark-rgb),var(--bs-text-opacity))!important}.text-black{--bs-text-opacity:1;color:rgba(var(--bs-black-rgb),var(--bs-text-opacity))!important}.text-white{--bs-text-opacity:1;color:rgba(var(--bs-white-rgb),var(--bs-text-opacity))!important}.text-body{--bs-text-opacity:1;color:rgba(var(--bs-body-rgb),var(--bs-text-opacity))!important}.text-muted{--bs-text-opacity:1;color:#6c757d!important}.text-black-50{--bs-text-opacity:1;color:rgba(0,0,0,.5)!important}.text-white-50{--bs-text-opacity:1;color:rgba(255,255,255,.5)!important}.text-reset{--bs-text-opacity:1;color:inherit!important}.text-opacity-25{--bs-text-opacity:0.25}.text-opacity-50{--bs-text-opacity:0.5}.text-opacity-75{--bs-text-opacity:0.75}.text-opacity-100{--bs-text-opacity:1}.bg-primary{--bs-bg-opacity:1;background-color:rgba(var(--bs-primary-rgb),var(--bs-bg-opacity))!important}.bg-secondary{--bs-bg-opacity:1;background-color:rgba(var(--bs-secondary-rgb),var(--bs-bg-opacity))!important}.bg-success{--bs-bg-opacity:1;background-color:rgba(var(--bs-success-rgb),var(--bs-bg-opacity))!important}.bg-info{--bs-bg-opacity:1;background-color:rgba(var(--bs-info-rgb),var(--bs-bg-opacity))!important}.bg-warning{--bs-bg-opacity:1;background-color:rgba(var(--bs-warning-rgb),var(--bs-bg-opacity))!important}.bg-danger{--bs-bg-opacity:1;background-color:rgba(var(--bs-danger-rgb),var(--bs-bg-opacity))!important}.bg-light{--bs-bg-opacity:1;background-color:rgba(var(--bs-light-rgb),var(--bs-bg-opacity))!important}.bg-dark{--bs-bg-opacity:1;background-color:rgba(var(--bs-dark-rgb),var(--bs-bg-opacity))!important}.bg-black{--bs-bg-opacity:1;background-color:rgba(var(--bs-black-rgb),var(--bs-bg-opacity))!important}.bg-white{--bs-bg-opacity:1;background-color:rgba(var(--bs-white-rgb),var(--bs-bg-opacity))!important}.bg-body{--bs-bg-opacity:1;background-color:rgba(var(--bs-body-rgb),var(--bs-bg-opacity))!important}.bg-transparent{--bs-bg-opacity:1;background-color:transparent!important}.bg-opacity-10{--bs-bg-opacity:0.1}.bg-opacity-25{--bs-bg-opacity:0.25}.bg-opacity-50{--bs-bg-opacity:0.5}.bg-opacity-75{--bs-bg-opacity:0.75}.bg-opacity-100{--bs-bg-opacity:1}.bg-gradient{background-image:var(--bs-gradient)!important}.user-select-all{-webkit-user-select:all!important;-moz-user-select:all!important;user-select:all!important}.user-select-auto{-webkit-user-select:auto!important;-moz-user-select:auto!important;user-select:auto!important}.user-select-none{-webkit-user-select:none!important;-moz-user-select:none!important;user-select:none!important}.pe-none{pointer-events:none!important}.pe-auto{pointer-events:auto!important}.rounded{border-radius:.25rem!important}.rounded-0{border-radius:0!important}.rounded-1{border-radius:.2rem!important}.rounded-2{border-radius:.25rem!important}.rounded-3{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-top{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.rounded-end{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-start{border-bottom-left-radius:.25rem!important;border-top-left-radius:.25rem!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media (min-width:576px){.float-sm-start{float:left!important}.float-sm-end{float:right!important}.float-sm-none{float:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-grid{display:grid!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}.d-sm-none{display:none!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-sm-0{gap:0!important}.gap-sm-1{gap:.25rem!important}.gap-sm-2{gap:.5rem!important}.gap-sm-3{gap:1rem!important}.gap-sm-4{gap:1.5rem!important}.gap-sm-5{gap:3rem!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.justify-content-sm-evenly{justify-content:space-evenly!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}.order-sm-first{order:-1!important}.order-sm-0{order:0!important}.order-sm-1{order:1!important}.order-sm-2{order:2!important}.order-sm-3{order:3!important}.order-sm-4{order:4!important}.order-sm-5{order:5!important}.order-sm-last{order:6!important}.m-sm-0{margin:0!important}.m-sm-1{margin:.25rem!important}.m-sm-2{margin:.5rem!important}.m-sm-3{margin:1rem!important}.m-sm-4{margin:1.5rem!important}.m-sm-5{margin:3rem!important}.m-sm-auto{margin:auto!important}.mx-sm-0{margin-right:0!important;margin-left:0!important}.mx-sm-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-sm-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-sm-3{margin-right:1rem!important;margin-left:1rem!important}.mx-sm-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-sm-5{margin-right:3rem!important;margin-left:3rem!important}.mx-sm-auto{margin-right:auto!important;margin-left:auto!important}.my-sm-0{margin-top:0!important;margin-bottom:0!important}.my-sm-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-sm-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-sm-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-sm-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-sm-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-sm-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-sm-0{margin-top:0!important}.mt-sm-1{margin-top:.25rem!important}.mt-sm-2{margin-top:.5rem!important}.mt-sm-3{margin-top:1rem!important}.mt-sm-4{margin-top:1.5rem!important}.mt-sm-5{margin-top:3rem!important}.mt-sm-auto{margin-top:auto!important}.me-sm-0{margin-right:0!important}.me-sm-1{margin-right:.25rem!important}.me-sm-2{margin-right:.5rem!important}.me-sm-3{margin-right:1rem!important}.me-sm-4{margin-right:1.5rem!important}.me-sm-5{margin-right:3rem!important}.me-sm-auto{margin-right:auto!important}.mb-sm-0{margin-bottom:0!important}.mb-sm-1{margin-bottom:.25rem!important}.mb-sm-2{margin-bottom:.5rem!important}.mb-sm-3{margin-bottom:1rem!important}.mb-sm-4{margin-bottom:1.5rem!important}.mb-sm-5{margin-bottom:3rem!important}.mb-sm-auto{margin-bottom:auto!important}.ms-sm-0{margin-left:0!important}.ms-sm-1{margin-left:.25rem!important}.ms-sm-2{margin-left:.5rem!important}.ms-sm-3{margin-left:1rem!important}.ms-sm-4{margin-left:1.5rem!important}.ms-sm-5{margin-left:3rem!important}.ms-sm-auto{margin-left:auto!important}.p-sm-0{padding:0!important}.p-sm-1{padding:.25rem!important}.p-sm-2{padding:.5rem!important}.p-sm-3{padding:1rem!important}.p-sm-4{padding:1.5rem!important}.p-sm-5{padding:3rem!important}.px-sm-0{padding-right:0!important;padding-left:0!important}.px-sm-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-sm-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-sm-3{padding-right:1rem!important;padding-left:1rem!important}.px-sm-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-sm-5{padding-right:3rem!important;padding-left:3rem!important}.py-sm-0{padding-top:0!important;padding-bottom:0!important}.py-sm-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-sm-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-sm-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-sm-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-sm-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-sm-0{padding-top:0!important}.pt-sm-1{padding-top:.25rem!important}.pt-sm-2{padding-top:.5rem!important}.pt-sm-3{padding-top:1rem!important}.pt-sm-4{padding-top:1.5rem!important}.pt-sm-5{padding-top:3rem!important}.pe-sm-0{padding-right:0!important}.pe-sm-1{padding-right:.25rem!important}.pe-sm-2{padding-right:.5rem!important}.pe-sm-3{padding-right:1rem!important}.pe-sm-4{padding-right:1.5rem!important}.pe-sm-5{padding-right:3rem!important}.pb-sm-0{padding-bottom:0!important}.pb-sm-1{padding-bottom:.25rem!important}.pb-sm-2{padding-bottom:.5rem!important}.pb-sm-3{padding-bottom:1rem!important}.pb-sm-4{padding-bottom:1.5rem!important}.pb-sm-5{padding-bottom:3rem!important}.ps-sm-0{padding-left:0!important}.ps-sm-1{padding-left:.25rem!important}.ps-sm-2{padding-left:.5rem!important}.ps-sm-3{padding-left:1rem!important}.ps-sm-4{padding-left:1.5rem!important}.ps-sm-5{padding-left:3rem!important}.text-sm-start{text-align:left!important}.text-sm-end{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.float-md-start{float:left!important}.float-md-end{float:right!important}.float-md-none{float:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-grid{display:grid!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}.d-md-none{display:none!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-md-0{gap:0!important}.gap-md-1{gap:.25rem!important}.gap-md-2{gap:.5rem!important}.gap-md-3{gap:1rem!important}.gap-md-4{gap:1.5rem!important}.gap-md-5{gap:3rem!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.justify-content-md-evenly{justify-content:space-evenly!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}.order-md-first{order:-1!important}.order-md-0{order:0!important}.order-md-1{order:1!important}.order-md-2{order:2!important}.order-md-3{order:3!important}.order-md-4{order:4!important}.order-md-5{order:5!important}.order-md-last{order:6!important}.m-md-0{margin:0!important}.m-md-1{margin:.25rem!important}.m-md-2{margin:.5rem!important}.m-md-3{margin:1rem!important}.m-md-4{margin:1.5rem!important}.m-md-5{margin:3rem!important}.m-md-auto{margin:auto!important}.mx-md-0{margin-right:0!important;margin-left:0!important}.mx-md-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-md-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-md-3{margin-right:1rem!important;margin-left:1rem!important}.mx-md-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-md-5{margin-right:3rem!important;margin-left:3rem!important}.mx-md-auto{margin-right:auto!important;margin-left:auto!important}.my-md-0{margin-top:0!important;margin-bottom:0!important}.my-md-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-md-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-md-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-md-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-md-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-md-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-md-0{margin-top:0!important}.mt-md-1{margin-top:.25rem!important}.mt-md-2{margin-top:.5rem!important}.mt-md-3{margin-top:1rem!important}.mt-md-4{margin-top:1.5rem!important}.mt-md-5{margin-top:3rem!important}.mt-md-auto{margin-top:auto!important}.me-md-0{margin-right:0!important}.me-md-1{margin-right:.25rem!important}.me-md-2{margin-right:.5rem!important}.me-md-3{margin-right:1rem!important}.me-md-4{margin-right:1.5rem!important}.me-md-5{margin-right:3rem!important}.me-md-auto{margin-right:auto!important}.mb-md-0{margin-bottom:0!important}.mb-md-1{margin-bottom:.25rem!important}.mb-md-2{margin-bottom:.5rem!important}.mb-md-3{margin-bottom:1rem!important}.mb-md-4{margin-bottom:1.5rem!important}.mb-md-5{margin-bottom:3rem!important}.mb-md-auto{margin-bottom:auto!important}.ms-md-0{margin-left:0!important}.ms-md-1{margin-left:.25rem!important}.ms-md-2{margin-left:.5rem!important}.ms-md-3{margin-left:1rem!important}.ms-md-4{margin-left:1.5rem!important}.ms-md-5{margin-left:3rem!important}.ms-md-auto{margin-left:auto!important}.p-md-0{padding:0!important}.p-md-1{padding:.25rem!important}.p-md-2{padding:.5rem!important}.p-md-3{padding:1rem!important}.p-md-4{padding:1.5rem!important}.p-md-5{padding:3rem!important}.px-md-0{padding-right:0!important;padding-left:0!important}.px-md-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-md-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-md-3{padding-right:1rem!important;padding-left:1rem!important}.px-md-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-md-5{padding-right:3rem!important;padding-left:3rem!important}.py-md-0{padding-top:0!important;padding-bottom:0!important}.py-md-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-md-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-md-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-md-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-md-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-md-0{padding-top:0!important}.pt-md-1{padding-top:.25rem!important}.pt-md-2{padding-top:.5rem!important}.pt-md-3{padding-top:1rem!important}.pt-md-4{padding-top:1.5rem!important}.pt-md-5{padding-top:3rem!important}.pe-md-0{padding-right:0!important}.pe-md-1{padding-right:.25rem!important}.pe-md-2{padding-right:.5rem!important}.pe-md-3{padding-right:1rem!important}.pe-md-4{padding-right:1.5rem!important}.pe-md-5{padding-right:3rem!important}.pb-md-0{padding-bottom:0!important}.pb-md-1{padding-bottom:.25rem!important}.pb-md-2{padding-bottom:.5rem!important}.pb-md-3{padding-bottom:1rem!important}.pb-md-4{padding-bottom:1.5rem!important}.pb-md-5{padding-bottom:3rem!important}.ps-md-0{padding-left:0!important}.ps-md-1{padding-left:.25rem!important}.ps-md-2{padding-left:.5rem!important}.ps-md-3{padding-left:1rem!important}.ps-md-4{padding-left:1.5rem!important}.ps-md-5{padding-left:3rem!important}.text-md-start{text-align:left!important}.text-md-end{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.float-lg-start{float:left!important}.float-lg-end{float:right!important}.float-lg-none{float:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-grid{display:grid!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}.d-lg-none{display:none!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-lg-0{gap:0!important}.gap-lg-1{gap:.25rem!important}.gap-lg-2{gap:.5rem!important}.gap-lg-3{gap:1rem!important}.gap-lg-4{gap:1.5rem!important}.gap-lg-5{gap:3rem!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.justify-content-lg-evenly{justify-content:space-evenly!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}.order-lg-first{order:-1!important}.order-lg-0{order:0!important}.order-lg-1{order:1!important}.order-lg-2{order:2!important}.order-lg-3{order:3!important}.order-lg-4{order:4!important}.order-lg-5{order:5!important}.order-lg-last{order:6!important}.m-lg-0{margin:0!important}.m-lg-1{margin:.25rem!important}.m-lg-2{margin:.5rem!important}.m-lg-3{margin:1rem!important}.m-lg-4{margin:1.5rem!important}.m-lg-5{margin:3rem!important}.m-lg-auto{margin:auto!important}.mx-lg-0{margin-right:0!important;margin-left:0!important}.mx-lg-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-lg-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-lg-3{margin-right:1rem!important;margin-left:1rem!important}.mx-lg-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-lg-5{margin-right:3rem!important;margin-left:3rem!important}.mx-lg-auto{margin-right:auto!important;margin-left:auto!important}.my-lg-0{margin-top:0!important;margin-bottom:0!important}.my-lg-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-lg-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-lg-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-lg-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-lg-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-lg-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-lg-0{margin-top:0!important}.mt-lg-1{margin-top:.25rem!important}.mt-lg-2{margin-top:.5rem!important}.mt-lg-3{margin-top:1rem!important}.mt-lg-4{margin-top:1.5rem!important}.mt-lg-5{margin-top:3rem!important}.mt-lg-auto{margin-top:auto!important}.me-lg-0{margin-right:0!important}.me-lg-1{margin-right:.25rem!important}.me-lg-2{margin-right:.5rem!important}.me-lg-3{margin-right:1rem!important}.me-lg-4{margin-right:1.5rem!important}.me-lg-5{margin-right:3rem!important}.me-lg-auto{margin-right:auto!important}.mb-lg-0{margin-bottom:0!important}.mb-lg-1{margin-bottom:.25rem!important}.mb-lg-2{margin-bottom:.5rem!important}.mb-lg-3{margin-bottom:1rem!important}.mb-lg-4{margin-bottom:1.5rem!important}.mb-lg-5{margin-bottom:3rem!important}.mb-lg-auto{margin-bottom:auto!important}.ms-lg-0{margin-left:0!important}.ms-lg-1{margin-left:.25rem!important}.ms-lg-2{margin-left:.5rem!important}.ms-lg-3{margin-left:1rem!important}.ms-lg-4{margin-left:1.5rem!important}.ms-lg-5{margin-left:3rem!important}.ms-lg-auto{margin-left:auto!important}.p-lg-0{padding:0!important}.p-lg-1{padding:.25rem!important}.p-lg-2{padding:.5rem!important}.p-lg-3{padding:1rem!important}.p-lg-4{padding:1.5rem!important}.p-lg-5{padding:3rem!important}.px-lg-0{padding-right:0!important;padding-left:0!important}.px-lg-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-lg-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-lg-3{padding-right:1rem!important;padding-left:1rem!important}.px-lg-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-lg-5{padding-right:3rem!important;padding-left:3rem!important}.py-lg-0{padding-top:0!important;padding-bottom:0!important}.py-lg-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-lg-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-lg-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-lg-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-lg-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-lg-0{padding-top:0!important}.pt-lg-1{padding-top:.25rem!important}.pt-lg-2{padding-top:.5rem!important}.pt-lg-3{padding-top:1rem!important}.pt-lg-4{padding-top:1.5rem!important}.pt-lg-5{padding-top:3rem!important}.pe-lg-0{padding-right:0!important}.pe-lg-1{padding-right:.25rem!important}.pe-lg-2{padding-right:.5rem!important}.pe-lg-3{padding-right:1rem!important}.pe-lg-4{padding-right:1.5rem!important}.pe-lg-5{padding-right:3rem!important}.pb-lg-0{padding-bottom:0!important}.pb-lg-1{padding-bottom:.25rem!important}.pb-lg-2{padding-bottom:.5rem!important}.pb-lg-3{padding-bottom:1rem!important}.pb-lg-4{padding-bottom:1.5rem!important}.pb-lg-5{padding-bottom:3rem!important}.ps-lg-0{padding-left:0!important}.ps-lg-1{padding-left:.25rem!important}.ps-lg-2{padding-left:.5rem!important}.ps-lg-3{padding-left:1rem!important}.ps-lg-4{padding-left:1.5rem!important}.ps-lg-5{padding-left:3rem!important}.text-lg-start{text-align:left!important}.text-lg-end{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.float-xl-start{float:left!important}.float-xl-end{float:right!important}.float-xl-none{float:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-grid{display:grid!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}.d-xl-none{display:none!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-xl-0{gap:0!important}.gap-xl-1{gap:.25rem!important}.gap-xl-2{gap:.5rem!important}.gap-xl-3{gap:1rem!important}.gap-xl-4{gap:1.5rem!important}.gap-xl-5{gap:3rem!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.justify-content-xl-evenly{justify-content:space-evenly!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.order-xl-first{order:-1!important}.order-xl-0{order:0!important}.order-xl-1{order:1!important}.order-xl-2{order:2!important}.order-xl-3{order:3!important}.order-xl-4{order:4!important}.order-xl-5{order:5!important}.order-xl-last{order:6!important}.m-xl-0{margin:0!important}.m-xl-1{margin:.25rem!important}.m-xl-2{margin:.5rem!important}.m-xl-3{margin:1rem!important}.m-xl-4{margin:1.5rem!important}.m-xl-5{margin:3rem!important}.m-xl-auto{margin:auto!important}.mx-xl-0{margin-right:0!important;margin-left:0!important}.mx-xl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xl-auto{margin-right:auto!important;margin-left:auto!important}.my-xl-0{margin-top:0!important;margin-bottom:0!important}.my-xl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xl-0{margin-top:0!important}.mt-xl-1{margin-top:.25rem!important}.mt-xl-2{margin-top:.5rem!important}.mt-xl-3{margin-top:1rem!important}.mt-xl-4{margin-top:1.5rem!important}.mt-xl-5{margin-top:3rem!important}.mt-xl-auto{margin-top:auto!important}.me-xl-0{margin-right:0!important}.me-xl-1{margin-right:.25rem!important}.me-xl-2{margin-right:.5rem!important}.me-xl-3{margin-right:1rem!important}.me-xl-4{margin-right:1.5rem!important}.me-xl-5{margin-right:3rem!important}.me-xl-auto{margin-right:auto!important}.mb-xl-0{margin-bottom:0!important}.mb-xl-1{margin-bottom:.25rem!important}.mb-xl-2{margin-bottom:.5rem!important}.mb-xl-3{margin-bottom:1rem!important}.mb-xl-4{margin-bottom:1.5rem!important}.mb-xl-5{margin-bottom:3rem!important}.mb-xl-auto{margin-bottom:auto!important}.ms-xl-0{margin-left:0!important}.ms-xl-1{margin-left:.25rem!important}.ms-xl-2{margin-left:.5rem!important}.ms-xl-3{margin-left:1rem!important}.ms-xl-4{margin-left:1.5rem!important}.ms-xl-5{margin-left:3rem!important}.ms-xl-auto{margin-left:auto!important}.p-xl-0{padding:0!important}.p-xl-1{padding:.25rem!important}.p-xl-2{padding:.5rem!important}.p-xl-3{padding:1rem!important}.p-xl-4{padding:1.5rem!important}.p-xl-5{padding:3rem!important}.px-xl-0{padding-right:0!important;padding-left:0!important}.px-xl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xl-0{padding-top:0!important;padding-bottom:0!important}.py-xl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xl-0{padding-top:0!important}.pt-xl-1{padding-top:.25rem!important}.pt-xl-2{padding-top:.5rem!important}.pt-xl-3{padding-top:1rem!important}.pt-xl-4{padding-top:1.5rem!important}.pt-xl-5{padding-top:3rem!important}.pe-xl-0{padding-right:0!important}.pe-xl-1{padding-right:.25rem!important}.pe-xl-2{padding-right:.5rem!important}.pe-xl-3{padding-right:1rem!important}.pe-xl-4{padding-right:1.5rem!important}.pe-xl-5{padding-right:3rem!important}.pb-xl-0{padding-bottom:0!important}.pb-xl-1{padding-bottom:.25rem!important}.pb-xl-2{padding-bottom:.5rem!important}.pb-xl-3{padding-bottom:1rem!important}.pb-xl-4{padding-bottom:1.5rem!important}.pb-xl-5{padding-bottom:3rem!important}.ps-xl-0{padding-left:0!important}.ps-xl-1{padding-left:.25rem!important}.ps-xl-2{padding-left:.5rem!important}.ps-xl-3{padding-left:1rem!important}.ps-xl-4{padding-left:1.5rem!important}.ps-xl-5{padding-left:3rem!important}.text-xl-start{text-align:left!important}.text-xl-end{text-align:right!important}.text-xl-center{text-align:center!important}}@media (min-width:1400px){.float-xxl-start{float:left!important}.float-xxl-end{float:right!important}.float-xxl-none{float:none!important}.d-xxl-inline{display:inline!important}.d-xxl-inline-block{display:inline-block!important}.d-xxl-block{display:block!important}.d-xxl-grid{display:grid!important}.d-xxl-table{display:table!important}.d-xxl-table-row{display:table-row!important}.d-xxl-table-cell{display:table-cell!important}.d-xxl-flex{display:flex!important}.d-xxl-inline-flex{display:inline-flex!important}.d-xxl-none{display:none!important}.flex-xxl-fill{flex:1 1 auto!important}.flex-xxl-row{flex-direction:row!important}.flex-xxl-column{flex-direction:column!important}.flex-xxl-row-reverse{flex-direction:row-reverse!important}.flex-xxl-column-reverse{flex-direction:column-reverse!important}.flex-xxl-grow-0{flex-grow:0!important}.flex-xxl-grow-1{flex-grow:1!important}.flex-xxl-shrink-0{flex-shrink:0!important}.flex-xxl-shrink-1{flex-shrink:1!important}.flex-xxl-wrap{flex-wrap:wrap!important}.flex-xxl-nowrap{flex-wrap:nowrap!important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-xxl-0{gap:0!important}.gap-xxl-1{gap:.25rem!important}.gap-xxl-2{gap:.5rem!important}.gap-xxl-3{gap:1rem!important}.gap-xxl-4{gap:1.5rem!important}.gap-xxl-5{gap:3rem!important}.justify-content-xxl-start{justify-content:flex-start!important}.justify-content-xxl-end{justify-content:flex-end!important}.justify-content-xxl-center{justify-content:center!important}.justify-content-xxl-between{justify-content:space-between!important}.justify-content-xxl-around{justify-content:space-around!important}.justify-content-xxl-evenly{justify-content:space-evenly!important}.align-items-xxl-start{align-items:flex-start!important}.align-items-xxl-end{align-items:flex-end!important}.align-items-xxl-center{align-items:center!important}.align-items-xxl-baseline{align-items:baseline!important}.align-items-xxl-stretch{align-items:stretch!important}.align-content-xxl-start{align-content:flex-start!important}.align-content-xxl-end{align-content:flex-end!important}.align-content-xxl-center{align-content:center!important}.align-content-xxl-between{align-content:space-between!important}.align-content-xxl-around{align-content:space-around!important}.align-content-xxl-stretch{align-content:stretch!important}.align-self-xxl-auto{align-self:auto!important}.align-self-xxl-start{align-self:flex-start!important}.align-self-xxl-end{align-self:flex-end!important}.align-self-xxl-center{align-self:center!important}.align-self-xxl-baseline{align-self:baseline!important}.align-self-xxl-stretch{align-self:stretch!important}.order-xxl-first{order:-1!important}.order-xxl-0{order:0!important}.order-xxl-1{order:1!important}.order-xxl-2{order:2!important}.order-xxl-3{order:3!important}.order-xxl-4{order:4!important}.order-xxl-5{order:5!important}.order-xxl-last{order:6!important}.m-xxl-0{margin:0!important}.m-xxl-1{margin:.25rem!important}.m-xxl-2{margin:.5rem!important}.m-xxl-3{margin:1rem!important}.m-xxl-4{margin:1.5rem!important}.m-xxl-5{margin:3rem!important}.m-xxl-auto{margin:auto!important}.mx-xxl-0{margin-right:0!important;margin-left:0!important}.mx-xxl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xxl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xxl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xxl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xxl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xxl-auto{margin-right:auto!important;margin-left:auto!important}.my-xxl-0{margin-top:0!important;margin-bottom:0!important}.my-xxl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xxl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xxl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xxl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xxl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xxl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xxl-0{margin-top:0!important}.mt-xxl-1{margin-top:.25rem!important}.mt-xxl-2{margin-top:.5rem!important}.mt-xxl-3{margin-top:1rem!important}.mt-xxl-4{margin-top:1.5rem!important}.mt-xxl-5{margin-top:3rem!important}.mt-xxl-auto{margin-top:auto!important}.me-xxl-0{margin-right:0!important}.me-xxl-1{margin-right:.25rem!important}.me-xxl-2{margin-right:.5rem!important}.me-xxl-3{margin-right:1rem!important}.me-xxl-4{margin-right:1.5rem!important}.me-xxl-5{margin-right:3rem!important}.me-xxl-auto{margin-right:auto!important}.mb-xxl-0{margin-bottom:0!important}.mb-xxl-1{margin-bottom:.25rem!important}.mb-xxl-2{margin-bottom:.5rem!important}.mb-xxl-3{margin-bottom:1rem!important}.mb-xxl-4{margin-bottom:1.5rem!important}.mb-xxl-5{margin-bottom:3rem!important}.mb-xxl-auto{margin-bottom:auto!important}.ms-xxl-0{margin-left:0!important}.ms-xxl-1{margin-left:.25rem!important}.ms-xxl-2{margin-left:.5rem!important}.ms-xxl-3{margin-left:1rem!important}.ms-xxl-4{margin-left:1.5rem!important}.ms-xxl-5{margin-left:3rem!important}.ms-xxl-auto{margin-left:auto!important}.p-xxl-0{padding:0!important}.p-xxl-1{padding:.25rem!important}.p-xxl-2{padding:.5rem!important}.p-xxl-3{padding:1rem!important}.p-xxl-4{padding:1.5rem!important}.p-xxl-5{padding:3rem!important}.px-xxl-0{padding-right:0!important;padding-left:0!important}.px-xxl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xxl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xxl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xxl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xxl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xxl-0{padding-top:0!important;padding-bottom:0!important}.py-xxl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xxl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xxl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xxl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xxl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xxl-0{padding-top:0!important}.pt-xxl-1{padding-top:.25rem!important}.pt-xxl-2{padding-top:.5rem!important}.pt-xxl-3{padding-top:1rem!important}.pt-xxl-4{padding-top:1.5rem!important}.pt-xxl-5{padding-top:3rem!important}.pe-xxl-0{padding-right:0!important}.pe-xxl-1{padding-right:.25rem!important}.pe-xxl-2{padding-right:.5rem!important}.pe-xxl-3{padding-right:1rem!important}.pe-xxl-4{padding-right:1.5rem!important}.pe-xxl-5{padding-right:3rem!important}.pb-xxl-0{padding-bottom:0!important}.pb-xxl-1{padding-bottom:.25rem!important}.pb-xxl-2{padding-bottom:.5rem!important}.pb-xxl-3{padding-bottom:1rem!important}.pb-xxl-4{padding-bottom:1.5rem!important}.pb-xxl-5{padding-bottom:3rem!important}.ps-xxl-0{padding-left:0!important}.ps-xxl-1{padding-left:.25rem!important}.ps-xxl-2{padding-left:.5rem!important}.ps-xxl-3{padding-left:1rem!important}.ps-xxl-4{padding-left:1.5rem!important}.ps-xxl-5{padding-left:3rem!important}.text-xxl-start{text-align:left!important}.text-xxl-end{text-align:right!important}.text-xxl-center{text-align:center!important}}@media (min-width:1200px){.fs-1{font-size:2.5rem!important}.fs-2{font-size:2rem!important}.fs-3{font-size:1.75rem!important}.fs-4{font-size:1.5rem!important}}@media print{.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-grid{display:grid!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}.d-print-none{display:none!important}} +/*# sourceMappingURL=bootstrap.min.css.map */ +/*! + * Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + */ + .fa,.fab,.fad,.fal,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s linear infinite;animation:fa-spin 2s linear infinite}.fa-pulse{-webkit-animation:fa-spin 1s steps(8) infinite;animation:fa-spin 1s steps(8) infinite}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-webkit-transform:scaleY(-1);transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical,.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1);transform:scale(-1)}:root .fa-flip-both,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{-webkit-filter:none;filter:none}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-500px:before{content:"\f26e"}.fa-accessible-icon:before{content:"\f368"}.fa-accusoft:before{content:"\f369"}.fa-acquisitions-incorporated:before{content:"\f6af"}.fa-ad:before{content:"\f641"}.fa-address-book:before{content:"\f2b9"}.fa-address-card:before{content:"\f2bb"}.fa-adjust:before{content:"\f042"}.fa-adn:before{content:"\f170"}.fa-adversal:before{content:"\f36a"}.fa-affiliatetheme:before{content:"\f36b"}.fa-air-freshener:before{content:"\f5d0"}.fa-airbnb:before{content:"\f834"}.fa-algolia:before{content:"\f36c"}.fa-align-center:before{content:"\f037"}.fa-align-justify:before{content:"\f039"}.fa-align-left:before{content:"\f036"}.fa-align-right:before{content:"\f038"}.fa-alipay:before{content:"\f642"}.fa-allergies:before{content:"\f461"}.fa-amazon:before{content:"\f270"}.fa-amazon-pay:before{content:"\f42c"}.fa-ambulance:before{content:"\f0f9"}.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-amilia:before{content:"\f36d"}.fa-anchor:before{content:"\f13d"}.fa-android:before{content:"\f17b"}.fa-angellist:before{content:"\f209"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-down:before{content:"\f107"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angry:before{content:"\f556"}.fa-angrycreative:before{content:"\f36e"}.fa-angular:before{content:"\f420"}.fa-ankh:before{content:"\f644"}.fa-app-store:before{content:"\f36f"}.fa-app-store-ios:before{content:"\f370"}.fa-apper:before{content:"\f371"}.fa-apple:before{content:"\f179"}.fa-apple-alt:before{content:"\f5d1"}.fa-apple-pay:before{content:"\f415"}.fa-archive:before{content:"\f187"}.fa-archway:before{content:"\f557"}.fa-arrow-alt-circle-down:before{content:"\f358"}.fa-arrow-alt-circle-left:before{content:"\f359"}.fa-arrow-alt-circle-right:before{content:"\f35a"}.fa-arrow-alt-circle-up:before{content:"\f35b"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-down:before{content:"\f063"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrows-alt:before{content:"\f0b2"}.fa-arrows-alt-h:before{content:"\f337"}.fa-arrows-alt-v:before{content:"\f338"}.fa-artstation:before{content:"\f77a"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asterisk:before{content:"\f069"}.fa-asymmetrik:before{content:"\f372"}.fa-at:before{content:"\f1fa"}.fa-atlas:before{content:"\f558"}.fa-atlassian:before{content:"\f77b"}.fa-atom:before{content:"\f5d2"}.fa-audible:before{content:"\f373"}.fa-audio-description:before{content:"\f29e"}.fa-autoprefixer:before{content:"\f41c"}.fa-avianex:before{content:"\f374"}.fa-aviato:before{content:"\f421"}.fa-award:before{content:"\f559"}.fa-aws:before{content:"\f375"}.fa-baby:before{content:"\f77c"}.fa-baby-carriage:before{content:"\f77d"}.fa-backspace:before{content:"\f55a"}.fa-backward:before{content:"\f04a"}.fa-bacon:before{content:"\f7e5"}.fa-bacteria:before{content:"\e059"}.fa-bacterium:before{content:"\e05a"}.fa-bahai:before{content:"\f666"}.fa-balance-scale:before{content:"\f24e"}.fa-balance-scale-left:before{content:"\f515"}.fa-balance-scale-right:before{content:"\f516"}.fa-ban:before{content:"\f05e"}.fa-band-aid:before{content:"\f462"}.fa-bandcamp:before{content:"\f2d5"}.fa-barcode:before{content:"\f02a"}.fa-bars:before{content:"\f0c9"}.fa-baseball-ball:before{content:"\f433"}.fa-basketball-ball:before{content:"\f434"}.fa-bath:before{content:"\f2cd"}.fa-battery-empty:before{content:"\f244"}.fa-battery-full:before{content:"\f240"}.fa-battery-half:before{content:"\f242"}.fa-battery-quarter:before{content:"\f243"}.fa-battery-three-quarters:before{content:"\f241"}.fa-battle-net:before{content:"\f835"}.fa-bed:before{content:"\f236"}.fa-beer:before{content:"\f0fc"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-bell:before{content:"\f0f3"}.fa-bell-slash:before{content:"\f1f6"}.fa-bezier-curve:before{content:"\f55b"}.fa-bible:before{content:"\f647"}.fa-bicycle:before{content:"\f206"}.fa-biking:before{content:"\f84a"}.fa-bimobject:before{content:"\f378"}.fa-binoculars:before{content:"\f1e5"}.fa-biohazard:before{content:"\f780"}.fa-birthday-cake:before{content:"\f1fd"}.fa-bitbucket:before{content:"\f171"}.fa-bitcoin:before{content:"\f379"}.fa-bity:before{content:"\f37a"}.fa-black-tie:before{content:"\f27e"}.fa-blackberry:before{content:"\f37b"}.fa-blender:before{content:"\f517"}.fa-blender-phone:before{content:"\f6b6"}.fa-blind:before{content:"\f29d"}.fa-blog:before{content:"\f781"}.fa-blogger:before{content:"\f37c"}.fa-blogger-b:before{content:"\f37d"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-bold:before{content:"\f032"}.fa-bolt:before{content:"\f0e7"}.fa-bomb:before{content:"\f1e2"}.fa-bone:before{content:"\f5d7"}.fa-bong:before{content:"\f55c"}.fa-book:before{content:"\f02d"}.fa-book-dead:before{content:"\f6b7"}.fa-book-medical:before{content:"\f7e6"}.fa-book-open:before{content:"\f518"}.fa-book-reader:before{content:"\f5da"}.fa-bookmark:before{content:"\f02e"}.fa-bootstrap:before{content:"\f836"}.fa-border-all:before{content:"\f84c"}.fa-border-none:before{content:"\f850"}.fa-border-style:before{content:"\f853"}.fa-bowling-ball:before{content:"\f436"}.fa-box:before{content:"\f466"}.fa-box-open:before{content:"\f49e"}.fa-box-tissue:before{content:"\e05b"}.fa-boxes:before{content:"\f468"}.fa-braille:before{content:"\f2a1"}.fa-brain:before{content:"\f5dc"}.fa-bread-slice:before{content:"\f7ec"}.fa-briefcase:before{content:"\f0b1"}.fa-briefcase-medical:before{content:"\f469"}.fa-broadcast-tower:before{content:"\f519"}.fa-broom:before{content:"\f51a"}.fa-brush:before{content:"\f55d"}.fa-btc:before{content:"\f15a"}.fa-buffer:before{content:"\f837"}.fa-bug:before{content:"\f188"}.fa-building:before{content:"\f1ad"}.fa-bullhorn:before{content:"\f0a1"}.fa-bullseye:before{content:"\f140"}.fa-burn:before{content:"\f46a"}.fa-buromobelexperte:before{content:"\f37f"}.fa-bus:before{content:"\f207"}.fa-bus-alt:before{content:"\f55e"}.fa-business-time:before{content:"\f64a"}.fa-buy-n-large:before{content:"\f8a6"}.fa-buysellads:before{content:"\f20d"}.fa-calculator:before{content:"\f1ec"}.fa-calendar:before{content:"\f133"}.fa-calendar-alt:before{content:"\f073"}.fa-calendar-check:before{content:"\f274"}.fa-calendar-day:before{content:"\f783"}.fa-calendar-minus:before{content:"\f272"}.fa-calendar-plus:before{content:"\f271"}.fa-calendar-times:before{content:"\f273"}.fa-calendar-week:before{content:"\f784"}.fa-camera:before{content:"\f030"}.fa-camera-retro:before{content:"\f083"}.fa-campground:before{content:"\f6bb"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-candy-cane:before{content:"\f786"}.fa-cannabis:before{content:"\f55f"}.fa-capsules:before{content:"\f46b"}.fa-car:before{content:"\f1b9"}.fa-car-alt:before{content:"\f5de"}.fa-car-battery:before{content:"\f5df"}.fa-car-crash:before{content:"\f5e1"}.fa-car-side:before{content:"\f5e4"}.fa-caravan:before{content:"\f8ff"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-caret-square-down:before{content:"\f150"}.fa-caret-square-left:before{content:"\f191"}.fa-caret-square-right:before{content:"\f152"}.fa-caret-square-up:before{content:"\f151"}.fa-caret-up:before{content:"\f0d8"}.fa-carrot:before{content:"\f787"}.fa-cart-arrow-down:before{content:"\f218"}.fa-cart-plus:before{content:"\f217"}.fa-cash-register:before{content:"\f788"}.fa-cat:before{content:"\f6be"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-apple-pay:before{content:"\f416"}.fa-cc-diners-club:before{content:"\f24c"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-cc-visa:before{content:"\f1f0"}.fa-centercode:before{content:"\f380"}.fa-centos:before{content:"\f789"}.fa-certificate:before{content:"\f0a3"}.fa-chair:before{content:"\f6c0"}.fa-chalkboard:before{content:"\f51b"}.fa-chalkboard-teacher:before{content:"\f51c"}.fa-charging-station:before{content:"\f5e7"}.fa-chart-area:before{content:"\f1fe"}.fa-chart-bar:before{content:"\f080"}.fa-chart-line:before{content:"\f201"}.fa-chart-pie:before{content:"\f200"}.fa-check:before{content:"\f00c"}.fa-check-circle:before{content:"\f058"}.fa-check-double:before{content:"\f560"}.fa-check-square:before{content:"\f14a"}.fa-cheese:before{content:"\f7ef"}.fa-chess:before{content:"\f439"}.fa-chess-bishop:before{content:"\f43a"}.fa-chess-board:before{content:"\f43c"}.fa-chess-king:before{content:"\f43f"}.fa-chess-knight:before{content:"\f441"}.fa-chess-pawn:before{content:"\f443"}.fa-chess-queen:before{content:"\f445"}.fa-chess-rook:before{content:"\f447"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-down:before{content:"\f078"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-chevron-up:before{content:"\f077"}.fa-child:before{content:"\f1ae"}.fa-chrome:before{content:"\f268"}.fa-chromecast:before{content:"\f838"}.fa-church:before{content:"\f51d"}.fa-circle:before{content:"\f111"}.fa-circle-notch:before{content:"\f1ce"}.fa-city:before{content:"\f64f"}.fa-clinic-medical:before{content:"\f7f2"}.fa-clipboard:before{content:"\f328"}.fa-clipboard-check:before{content:"\f46c"}.fa-clipboard-list:before{content:"\f46d"}.fa-clock:before{content:"\f017"}.fa-clone:before{content:"\f24d"}.fa-closed-captioning:before{content:"\f20a"}.fa-cloud:before{content:"\f0c2"}.fa-cloud-download-alt:before{content:"\f381"}.fa-cloud-meatball:before{content:"\f73b"}.fa-cloud-moon:before{content:"\f6c3"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-cloud-rain:before{content:"\f73d"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-cloud-sun:before{content:"\f6c4"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-cloud-upload-alt:before{content:"\f382"}.fa-cloudflare:before{content:"\e07d"}.fa-cloudscale:before{content:"\f383"}.fa-cloudsmith:before{content:"\f384"}.fa-cloudversify:before{content:"\f385"}.fa-cocktail:before{content:"\f561"}.fa-code:before{content:"\f121"}.fa-code-branch:before{content:"\f126"}.fa-codepen:before{content:"\f1cb"}.fa-codiepie:before{content:"\f284"}.fa-coffee:before{content:"\f0f4"}.fa-cog:before{content:"\f013"}.fa-cogs:before{content:"\f085"}.fa-coins:before{content:"\f51e"}.fa-columns:before{content:"\f0db"}.fa-comment:before{content:"\f075"}.fa-comment-alt:before{content:"\f27a"}.fa-comment-dollar:before{content:"\f651"}.fa-comment-dots:before{content:"\f4ad"}.fa-comment-medical:before{content:"\f7f5"}.fa-comment-slash:before{content:"\f4b3"}.fa-comments:before{content:"\f086"}.fa-comments-dollar:before{content:"\f653"}.fa-compact-disc:before{content:"\f51f"}.fa-compass:before{content:"\f14e"}.fa-compress:before{content:"\f066"}.fa-compress-alt:before{content:"\f422"}.fa-compress-arrows-alt:before{content:"\f78c"}.fa-concierge-bell:before{content:"\f562"}.fa-confluence:before{content:"\f78d"}.fa-connectdevelop:before{content:"\f20e"}.fa-contao:before{content:"\f26d"}.fa-cookie:before{content:"\f563"}.fa-cookie-bite:before{content:"\f564"}.fa-copy:before{content:"\f0c5"}.fa-copyright:before{content:"\f1f9"}.fa-cotton-bureau:before{content:"\f89e"}.fa-couch:before{content:"\f4b8"}.fa-cpanel:before{content:"\f388"}.fa-creative-commons:before{content:"\f25e"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-credit-card:before{content:"\f09d"}.fa-critical-role:before{content:"\f6c9"}.fa-crop:before{content:"\f125"}.fa-crop-alt:before{content:"\f565"}.fa-cross:before{content:"\f654"}.fa-crosshairs:before{content:"\f05b"}.fa-crow:before{content:"\f520"}.fa-crown:before{content:"\f521"}.fa-crutch:before{content:"\f7f7"}.fa-css3:before{content:"\f13c"}.fa-css3-alt:before{content:"\f38b"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-cut:before{content:"\f0c4"}.fa-cuttlefish:before{content:"\f38c"}.fa-d-and-d:before{content:"\f38d"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-dailymotion:before{content:"\e052"}.fa-dashcube:before{content:"\f210"}.fa-database:before{content:"\f1c0"}.fa-deaf:before{content:"\f2a4"}.fa-deezer:before{content:"\e077"}.fa-delicious:before{content:"\f1a5"}.fa-democrat:before{content:"\f747"}.fa-deploydog:before{content:"\f38e"}.fa-deskpro:before{content:"\f38f"}.fa-desktop:before{content:"\f108"}.fa-dev:before{content:"\f6cc"}.fa-deviantart:before{content:"\f1bd"}.fa-dharmachakra:before{content:"\f655"}.fa-dhl:before{content:"\f790"}.fa-diagnoses:before{content:"\f470"}.fa-diaspora:before{content:"\f791"}.fa-dice:before{content:"\f522"}.fa-dice-d20:before{content:"\f6cf"}.fa-dice-d6:before{content:"\f6d1"}.fa-dice-five:before{content:"\f523"}.fa-dice-four:before{content:"\f524"}.fa-dice-one:before{content:"\f525"}.fa-dice-six:before{content:"\f526"}.fa-dice-three:before{content:"\f527"}.fa-dice-two:before{content:"\f528"}.fa-digg:before{content:"\f1a6"}.fa-digital-ocean:before{content:"\f391"}.fa-digital-tachograph:before{content:"\f566"}.fa-directions:before{content:"\f5eb"}.fa-discord:before{content:"\f392"}.fa-discourse:before{content:"\f393"}.fa-disease:before{content:"\f7fa"}.fa-divide:before{content:"\f529"}.fa-dizzy:before{content:"\f567"}.fa-dna:before{content:"\f471"}.fa-dochub:before{content:"\f394"}.fa-docker:before{content:"\f395"}.fa-dog:before{content:"\f6d3"}.fa-dollar-sign:before{content:"\f155"}.fa-dolly:before{content:"\f472"}.fa-dolly-flatbed:before{content:"\f474"}.fa-donate:before{content:"\f4b9"}.fa-door-closed:before{content:"\f52a"}.fa-door-open:before{content:"\f52b"}.fa-dot-circle:before{content:"\f192"}.fa-dove:before{content:"\f4ba"}.fa-download:before{content:"\f019"}.fa-draft2digital:before{content:"\f396"}.fa-drafting-compass:before{content:"\f568"}.fa-dragon:before{content:"\f6d5"}.fa-draw-polygon:before{content:"\f5ee"}.fa-dribbble:before{content:"\f17d"}.fa-dribbble-square:before{content:"\f397"}.fa-dropbox:before{content:"\f16b"}.fa-drum:before{content:"\f569"}.fa-drum-steelpan:before{content:"\f56a"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-drupal:before{content:"\f1a9"}.fa-dumbbell:before{content:"\f44b"}.fa-dumpster:before{content:"\f793"}.fa-dumpster-fire:before{content:"\f794"}.fa-dungeon:before{content:"\f6d9"}.fa-dyalog:before{content:"\f399"}.fa-earlybirds:before{content:"\f39a"}.fa-ebay:before{content:"\f4f4"}.fa-edge:before{content:"\f282"}.fa-edge-legacy:before{content:"\e078"}.fa-edit:before{content:"\f044"}.fa-egg:before{content:"\f7fb"}.fa-eject:before{content:"\f052"}.fa-elementor:before{content:"\f430"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-ello:before{content:"\f5f1"}.fa-ember:before{content:"\f423"}.fa-empire:before{content:"\f1d1"}.fa-envelope:before{content:"\f0e0"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-text:before{content:"\f658"}.fa-envelope-square:before{content:"\f199"}.fa-envira:before{content:"\f299"}.fa-equals:before{content:"\f52c"}.fa-eraser:before{content:"\f12d"}.fa-erlang:before{content:"\f39d"}.fa-ethereum:before{content:"\f42e"}.fa-ethernet:before{content:"\f796"}.fa-etsy:before{content:"\f2d7"}.fa-euro-sign:before{content:"\f153"}.fa-evernote:before{content:"\f839"}.fa-exchange-alt:before{content:"\f362"}.fa-exclamation:before{content:"\f12a"}.fa-exclamation-circle:before{content:"\f06a"}.fa-exclamation-triangle:before{content:"\f071"}.fa-expand:before{content:"\f065"}.fa-expand-alt:before{content:"\f424"}.fa-expand-arrows-alt:before{content:"\f31e"}.fa-expeditedssl:before{content:"\f23e"}.fa-external-link-alt:before{content:"\f35d"}.fa-external-link-square-alt:before{content:"\f360"}.fa-eye:before{content:"\f06e"}.fa-eye-dropper:before{content:"\f1fb"}.fa-eye-slash:before{content:"\f070"}.fa-facebook:before{content:"\f09a"}.fa-facebook-f:before{content:"\f39e"}.fa-facebook-messenger:before{content:"\f39f"}.fa-facebook-square:before{content:"\f082"}.fa-fan:before{content:"\f863"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-fast-backward:before{content:"\f049"}.fa-fast-forward:before{content:"\f050"}.fa-faucet:before{content:"\e005"}.fa-fax:before{content:"\f1ac"}.fa-feather:before{content:"\f52d"}.fa-feather-alt:before{content:"\f56b"}.fa-fedex:before{content:"\f797"}.fa-fedora:before{content:"\f798"}.fa-female:before{content:"\f182"}.fa-fighter-jet:before{content:"\f0fb"}.fa-figma:before{content:"\f799"}.fa-file:before{content:"\f15b"}.fa-file-alt:before{content:"\f15c"}.fa-file-archive:before{content:"\f1c6"}.fa-file-audio:before{content:"\f1c7"}.fa-file-code:before{content:"\f1c9"}.fa-file-contract:before{content:"\f56c"}.fa-file-csv:before{content:"\f6dd"}.fa-file-download:before{content:"\f56d"}.fa-file-excel:before{content:"\f1c3"}.fa-file-export:before{content:"\f56e"}.fa-file-image:before{content:"\f1c5"}.fa-file-import:before{content:"\f56f"}.fa-file-invoice:before{content:"\f570"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-file-medical:before{content:"\f477"}.fa-file-medical-alt:before{content:"\f478"}.fa-file-pdf:before{content:"\f1c1"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-file-prescription:before{content:"\f572"}.fa-file-signature:before{content:"\f573"}.fa-file-upload:before{content:"\f574"}.fa-file-video:before{content:"\f1c8"}.fa-file-word:before{content:"\f1c2"}.fa-fill:before{content:"\f575"}.fa-fill-drip:before{content:"\f576"}.fa-film:before{content:"\f008"}.fa-filter:before{content:"\f0b0"}.fa-fingerprint:before{content:"\f577"}.fa-fire:before{content:"\f06d"}.fa-fire-alt:before{content:"\f7e4"}.fa-fire-extinguisher:before{content:"\f134"}.fa-firefox:before{content:"\f269"}.fa-firefox-browser:before{content:"\e007"}.fa-first-aid:before{content:"\f479"}.fa-first-order:before{content:"\f2b0"}.fa-first-order-alt:before{content:"\f50a"}.fa-firstdraft:before{content:"\f3a1"}.fa-fish:before{content:"\f578"}.fa-fist-raised:before{content:"\f6de"}.fa-flag:before{content:"\f024"}.fa-flag-checkered:before{content:"\f11e"}.fa-flag-usa:before{content:"\f74d"}.fa-flask:before{content:"\f0c3"}.fa-flickr:before{content:"\f16e"}.fa-flipboard:before{content:"\f44d"}.fa-flushed:before{content:"\f579"}.fa-fly:before{content:"\f417"}.fa-folder:before{content:"\f07b"}.fa-folder-minus:before{content:"\f65d"}.fa-folder-open:before{content:"\f07c"}.fa-folder-plus:before{content:"\f65e"}.fa-font:before{content:"\f031"}.fa-font-awesome:before{content:"\f2b4"}.fa-font-awesome-alt:before{content:"\f35c"}.fa-font-awesome-flag:before{content:"\f425"}.fa-font-awesome-logo-full:before{content:"\f4e6"}.fa-fonticons:before{content:"\f280"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-football-ball:before{content:"\f44e"}.fa-fort-awesome:before{content:"\f286"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-forumbee:before{content:"\f211"}.fa-forward:before{content:"\f04e"}.fa-foursquare:before{content:"\f180"}.fa-free-code-camp:before{content:"\f2c5"}.fa-freebsd:before{content:"\f3a4"}.fa-frog:before{content:"\f52e"}.fa-frown:before{content:"\f119"}.fa-frown-open:before{content:"\f57a"}.fa-fulcrum:before{content:"\f50b"}.fa-funnel-dollar:before{content:"\f662"}.fa-futbol:before{content:"\f1e3"}.fa-galactic-republic:before{content:"\f50c"}.fa-galactic-senate:before{content:"\f50d"}.fa-gamepad:before{content:"\f11b"}.fa-gas-pump:before{content:"\f52f"}.fa-gavel:before{content:"\f0e3"}.fa-gem:before{content:"\f3a5"}.fa-genderless:before{content:"\f22d"}.fa-get-pocket:before{content:"\f265"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-ghost:before{content:"\f6e2"}.fa-gift:before{content:"\f06b"}.fa-gifts:before{content:"\f79c"}.fa-git:before{content:"\f1d3"}.fa-git-alt:before{content:"\f841"}.fa-git-square:before{content:"\f1d2"}.fa-github:before{content:"\f09b"}.fa-github-alt:before{content:"\f113"}.fa-github-square:before{content:"\f092"}.fa-gitkraken:before{content:"\f3a6"}.fa-gitlab:before{content:"\f296"}.fa-gitter:before{content:"\f426"}.fa-glass-cheers:before{content:"\f79f"}.fa-glass-martini:before{content:"\f000"}.fa-glass-martini-alt:before{content:"\f57b"}.fa-glass-whiskey:before{content:"\f7a0"}.fa-glasses:before{content:"\f530"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-globe:before{content:"\f0ac"}.fa-globe-africa:before{content:"\f57c"}.fa-globe-americas:before{content:"\f57d"}.fa-globe-asia:before{content:"\f57e"}.fa-globe-europe:before{content:"\f7a2"}.fa-gofore:before{content:"\f3a7"}.fa-golf-ball:before{content:"\f450"}.fa-goodreads:before{content:"\f3a8"}.fa-goodreads-g:before{content:"\f3a9"}.fa-google:before{content:"\f1a0"}.fa-google-drive:before{content:"\f3aa"}.fa-google-pay:before{content:"\e079"}.fa-google-play:before{content:"\f3ab"}.fa-google-plus:before{content:"\f2b3"}.fa-google-plus-g:before{content:"\f0d5"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-wallet:before{content:"\f1ee"}.fa-gopuram:before{content:"\f664"}.fa-graduation-cap:before{content:"\f19d"}.fa-gratipay:before{content:"\f184"}.fa-grav:before{content:"\f2d6"}.fa-greater-than:before{content:"\f531"}.fa-greater-than-equal:before{content:"\f532"}.fa-grimace:before{content:"\f57f"}.fa-grin:before{content:"\f580"}.fa-grin-alt:before{content:"\f581"}.fa-grin-beam:before{content:"\f582"}.fa-grin-beam-sweat:before{content:"\f583"}.fa-grin-hearts:before{content:"\f584"}.fa-grin-squint:before{content:"\f585"}.fa-grin-squint-tears:before{content:"\f586"}.fa-grin-stars:before{content:"\f587"}.fa-grin-tears:before{content:"\f588"}.fa-grin-tongue:before{content:"\f589"}.fa-grin-tongue-squint:before{content:"\f58a"}.fa-grin-tongue-wink:before{content:"\f58b"}.fa-grin-wink:before{content:"\f58c"}.fa-grip-horizontal:before{content:"\f58d"}.fa-grip-lines:before{content:"\f7a4"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-grip-vertical:before{content:"\f58e"}.fa-gripfire:before{content:"\f3ac"}.fa-grunt:before{content:"\f3ad"}.fa-guilded:before{content:"\e07e"}.fa-guitar:before{content:"\f7a6"}.fa-gulp:before{content:"\f3ae"}.fa-h-square:before{content:"\f0fd"}.fa-hacker-news:before{content:"\f1d4"}.fa-hacker-news-square:before{content:"\f3af"}.fa-hackerrank:before{content:"\f5f7"}.fa-hamburger:before{content:"\f805"}.fa-hammer:before{content:"\f6e3"}.fa-hamsa:before{content:"\f665"}.fa-hand-holding:before{content:"\f4bd"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-hand-holding-medical:before{content:"\e05c"}.fa-hand-holding-usd:before{content:"\f4c0"}.fa-hand-holding-water:before{content:"\f4c1"}.fa-hand-lizard:before{content:"\f258"}.fa-hand-middle-finger:before{content:"\f806"}.fa-hand-paper:before{content:"\f256"}.fa-hand-peace:before{content:"\f25b"}.fa-hand-point-down:before{content:"\f0a7"}.fa-hand-point-left:before{content:"\f0a5"}.fa-hand-point-right:before{content:"\f0a4"}.fa-hand-point-up:before{content:"\f0a6"}.fa-hand-pointer:before{content:"\f25a"}.fa-hand-rock:before{content:"\f255"}.fa-hand-scissors:before{content:"\f257"}.fa-hand-sparkles:before{content:"\e05d"}.fa-hand-spock:before{content:"\f259"}.fa-hands:before{content:"\f4c2"}.fa-hands-helping:before{content:"\f4c4"}.fa-hands-wash:before{content:"\e05e"}.fa-handshake:before{content:"\f2b5"}.fa-handshake-alt-slash:before{content:"\e05f"}.fa-handshake-slash:before{content:"\e060"}.fa-hanukiah:before{content:"\f6e6"}.fa-hard-hat:before{content:"\f807"}.fa-hashtag:before{content:"\f292"}.fa-hat-cowboy:before{content:"\f8c0"}.fa-hat-cowboy-side:before{content:"\f8c1"}.fa-hat-wizard:before{content:"\f6e8"}.fa-hdd:before{content:"\f0a0"}.fa-head-side-cough:before{content:"\e061"}.fa-head-side-cough-slash:before{content:"\e062"}.fa-head-side-mask:before{content:"\e063"}.fa-head-side-virus:before{content:"\e064"}.fa-heading:before{content:"\f1dc"}.fa-headphones:before{content:"\f025"}.fa-headphones-alt:before{content:"\f58f"}.fa-headset:before{content:"\f590"}.fa-heart:before{content:"\f004"}.fa-heart-broken:before{content:"\f7a9"}.fa-heartbeat:before{content:"\f21e"}.fa-helicopter:before{content:"\f533"}.fa-highlighter:before{content:"\f591"}.fa-hiking:before{content:"\f6ec"}.fa-hippo:before{content:"\f6ed"}.fa-hips:before{content:"\f452"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-history:before{content:"\f1da"}.fa-hive:before{content:"\e07f"}.fa-hockey-puck:before{content:"\f453"}.fa-holly-berry:before{content:"\f7aa"}.fa-home:before{content:"\f015"}.fa-hooli:before{content:"\f427"}.fa-hornbill:before{content:"\f592"}.fa-horse:before{content:"\f6f0"}.fa-horse-head:before{content:"\f7ab"}.fa-hospital:before{content:"\f0f8"}.fa-hospital-alt:before{content:"\f47d"}.fa-hospital-symbol:before{content:"\f47e"}.fa-hospital-user:before{content:"\f80d"}.fa-hot-tub:before{content:"\f593"}.fa-hotdog:before{content:"\f80f"}.fa-hotel:before{content:"\f594"}.fa-hotjar:before{content:"\f3b1"}.fa-hourglass:before{content:"\f254"}.fa-hourglass-end:before{content:"\f253"}.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-start:before{content:"\f251"}.fa-house-damage:before{content:"\f6f1"}.fa-house-user:before{content:"\e065"}.fa-houzz:before{content:"\f27c"}.fa-hryvnia:before{content:"\f6f2"}.fa-html5:before{content:"\f13b"}.fa-hubspot:before{content:"\f3b2"}.fa-i-cursor:before{content:"\f246"}.fa-ice-cream:before{content:"\f810"}.fa-icicles:before{content:"\f7ad"}.fa-icons:before{content:"\f86d"}.fa-id-badge:before{content:"\f2c1"}.fa-id-card:before{content:"\f2c2"}.fa-id-card-alt:before{content:"\f47f"}.fa-ideal:before{content:"\e013"}.fa-igloo:before{content:"\f7ae"}.fa-image:before{content:"\f03e"}.fa-images:before{content:"\f302"}.fa-imdb:before{content:"\f2d8"}.fa-inbox:before{content:"\f01c"}.fa-indent:before{content:"\f03c"}.fa-industry:before{content:"\f275"}.fa-infinity:before{content:"\f534"}.fa-info:before{content:"\f129"}.fa-info-circle:before{content:"\f05a"}.fa-innosoft:before{content:"\e080"}.fa-instagram:before{content:"\f16d"}.fa-instagram-square:before{content:"\e055"}.fa-instalod:before{content:"\e081"}.fa-intercom:before{content:"\f7af"}.fa-internet-explorer:before{content:"\f26b"}.fa-invision:before{content:"\f7b0"}.fa-ioxhost:before{content:"\f208"}.fa-italic:before{content:"\f033"}.fa-itch-io:before{content:"\f83a"}.fa-itunes:before{content:"\f3b4"}.fa-itunes-note:before{content:"\f3b5"}.fa-java:before{content:"\f4e4"}.fa-jedi:before{content:"\f669"}.fa-jedi-order:before{content:"\f50e"}.fa-jenkins:before{content:"\f3b6"}.fa-jira:before{content:"\f7b1"}.fa-joget:before{content:"\f3b7"}.fa-joint:before{content:"\f595"}.fa-joomla:before{content:"\f1aa"}.fa-journal-whills:before{content:"\f66a"}.fa-js:before{content:"\f3b8"}.fa-js-square:before{content:"\f3b9"}.fa-jsfiddle:before{content:"\f1cc"}.fa-kaaba:before{content:"\f66b"}.fa-kaggle:before{content:"\f5fa"}.fa-key:before{content:"\f084"}.fa-keybase:before{content:"\f4f5"}.fa-keyboard:before{content:"\f11c"}.fa-keycdn:before{content:"\f3ba"}.fa-khanda:before{content:"\f66d"}.fa-kickstarter:before{content:"\f3bb"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-kiss:before{content:"\f596"}.fa-kiss-beam:before{content:"\f597"}.fa-kiss-wink-heart:before{content:"\f598"}.fa-kiwi-bird:before{content:"\f535"}.fa-korvue:before{content:"\f42f"}.fa-landmark:before{content:"\f66f"}.fa-language:before{content:"\f1ab"}.fa-laptop:before{content:"\f109"}.fa-laptop-code:before{content:"\f5fc"}.fa-laptop-house:before{content:"\e066"}.fa-laptop-medical:before{content:"\f812"}.fa-laravel:before{content:"\f3bd"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-laugh:before{content:"\f599"}.fa-laugh-beam:before{content:"\f59a"}.fa-laugh-squint:before{content:"\f59b"}.fa-laugh-wink:before{content:"\f59c"}.fa-layer-group:before{content:"\f5fd"}.fa-leaf:before{content:"\f06c"}.fa-leanpub:before{content:"\f212"}.fa-lemon:before{content:"\f094"}.fa-less:before{content:"\f41d"}.fa-less-than:before{content:"\f536"}.fa-less-than-equal:before{content:"\f537"}.fa-level-down-alt:before{content:"\f3be"}.fa-level-up-alt:before{content:"\f3bf"}.fa-life-ring:before{content:"\f1cd"}.fa-lightbulb:before{content:"\f0eb"}.fa-line:before{content:"\f3c0"}.fa-link:before{content:"\f0c1"}.fa-linkedin:before{content:"\f08c"}.fa-linkedin-in:before{content:"\f0e1"}.fa-linode:before{content:"\f2b8"}.fa-linux:before{content:"\f17c"}.fa-lira-sign:before{content:"\f195"}.fa-list:before{content:"\f03a"}.fa-list-alt:before{content:"\f022"}.fa-list-ol:before{content:"\f0cb"}.fa-list-ul:before{content:"\f0ca"}.fa-location-arrow:before{content:"\f124"}.fa-lock:before{content:"\f023"}.fa-lock-open:before{content:"\f3c1"}.fa-long-arrow-alt-down:before{content:"\f309"}.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-long-arrow-alt-right:before{content:"\f30b"}.fa-long-arrow-alt-up:before{content:"\f30c"}.fa-low-vision:before{content:"\f2a8"}.fa-luggage-cart:before{content:"\f59d"}.fa-lungs:before{content:"\f604"}.fa-lungs-virus:before{content:"\e067"}.fa-lyft:before{content:"\f3c3"}.fa-magento:before{content:"\f3c4"}.fa-magic:before{content:"\f0d0"}.fa-magnet:before{content:"\f076"}.fa-mail-bulk:before{content:"\f674"}.fa-mailchimp:before{content:"\f59e"}.fa-male:before{content:"\f183"}.fa-mandalorian:before{content:"\f50f"}.fa-map:before{content:"\f279"}.fa-map-marked:before{content:"\f59f"}.fa-map-marked-alt:before{content:"\f5a0"}.fa-map-marker:before{content:"\f041"}.fa-map-marker-alt:before{content:"\f3c5"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-markdown:before{content:"\f60f"}.fa-marker:before{content:"\f5a1"}.fa-mars:before{content:"\f222"}.fa-mars-double:before{content:"\f227"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mask:before{content:"\f6fa"}.fa-mastodon:before{content:"\f4f6"}.fa-maxcdn:before{content:"\f136"}.fa-mdb:before{content:"\f8ca"}.fa-medal:before{content:"\f5a2"}.fa-medapps:before{content:"\f3c6"}.fa-medium:before{content:"\f23a"}.fa-medium-m:before{content:"\f3c7"}.fa-medkit:before{content:"\f0fa"}.fa-medrt:before{content:"\f3c8"}.fa-meetup:before{content:"\f2e0"}.fa-megaport:before{content:"\f5a3"}.fa-meh:before{content:"\f11a"}.fa-meh-blank:before{content:"\f5a4"}.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-memory:before{content:"\f538"}.fa-mendeley:before{content:"\f7b3"}.fa-menorah:before{content:"\f676"}.fa-mercury:before{content:"\f223"}.fa-meteor:before{content:"\f753"}.fa-microblog:before{content:"\e01a"}.fa-microchip:before{content:"\f2db"}.fa-microphone:before{content:"\f130"}.fa-microphone-alt:before{content:"\f3c9"}.fa-microphone-alt-slash:before{content:"\f539"}.fa-microphone-slash:before{content:"\f131"}.fa-microscope:before{content:"\f610"}.fa-microsoft:before{content:"\f3ca"}.fa-minus:before{content:"\f068"}.fa-minus-circle:before{content:"\f056"}.fa-minus-square:before{content:"\f146"}.fa-mitten:before{content:"\f7b5"}.fa-mix:before{content:"\f3cb"}.fa-mixcloud:before{content:"\f289"}.fa-mixer:before{content:"\e056"}.fa-mizuni:before{content:"\f3cc"}.fa-mobile:before{content:"\f10b"}.fa-mobile-alt:before{content:"\f3cd"}.fa-modx:before{content:"\f285"}.fa-monero:before{content:"\f3d0"}.fa-money-bill:before{content:"\f0d6"}.fa-money-bill-alt:before{content:"\f3d1"}.fa-money-bill-wave:before{content:"\f53a"}.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-money-check:before{content:"\f53c"}.fa-money-check-alt:before{content:"\f53d"}.fa-monument:before{content:"\f5a6"}.fa-moon:before{content:"\f186"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-mosque:before{content:"\f678"}.fa-motorcycle:before{content:"\f21c"}.fa-mountain:before{content:"\f6fc"}.fa-mouse:before{content:"\f8cc"}.fa-mouse-pointer:before{content:"\f245"}.fa-mug-hot:before{content:"\f7b6"}.fa-music:before{content:"\f001"}.fa-napster:before{content:"\f3d2"}.fa-neos:before{content:"\f612"}.fa-network-wired:before{content:"\f6ff"}.fa-neuter:before{content:"\f22c"}.fa-newspaper:before{content:"\f1ea"}.fa-nimblr:before{content:"\f5a8"}.fa-node:before{content:"\f419"}.fa-node-js:before{content:"\f3d3"}.fa-not-equal:before{content:"\f53e"}.fa-notes-medical:before{content:"\f481"}.fa-npm:before{content:"\f3d4"}.fa-ns8:before{content:"\f3d5"}.fa-nutritionix:before{content:"\f3d6"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-octopus-deploy:before{content:"\e082"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-oil-can:before{content:"\f613"}.fa-old-republic:before{content:"\f510"}.fa-om:before{content:"\f679"}.fa-opencart:before{content:"\f23d"}.fa-openid:before{content:"\f19b"}.fa-opera:before{content:"\f26a"}.fa-optin-monster:before{content:"\f23c"}.fa-orcid:before{content:"\f8d2"}.fa-osi:before{content:"\f41a"}.fa-otter:before{content:"\f700"}.fa-outdent:before{content:"\f03b"}.fa-page4:before{content:"\f3d7"}.fa-pagelines:before{content:"\f18c"}.fa-pager:before{content:"\f815"}.fa-paint-brush:before{content:"\f1fc"}.fa-paint-roller:before{content:"\f5aa"}.fa-palette:before{content:"\f53f"}.fa-palfed:before{content:"\f3d8"}.fa-pallet:before{content:"\f482"}.fa-paper-plane:before{content:"\f1d8"}.fa-paperclip:before{content:"\f0c6"}.fa-parachute-box:before{content:"\f4cd"}.fa-paragraph:before{content:"\f1dd"}.fa-parking:before{content:"\f540"}.fa-passport:before{content:"\f5ab"}.fa-pastafarianism:before{content:"\f67b"}.fa-paste:before{content:"\f0ea"}.fa-patreon:before{content:"\f3d9"}.fa-pause:before{content:"\f04c"}.fa-pause-circle:before{content:"\f28b"}.fa-paw:before{content:"\f1b0"}.fa-paypal:before{content:"\f1ed"}.fa-peace:before{content:"\f67c"}.fa-pen:before{content:"\f304"}.fa-pen-alt:before{content:"\f305"}.fa-pen-fancy:before{content:"\f5ac"}.fa-pen-nib:before{content:"\f5ad"}.fa-pen-square:before{content:"\f14b"}.fa-pencil-alt:before{content:"\f303"}.fa-pencil-ruler:before{content:"\f5ae"}.fa-penny-arcade:before{content:"\f704"}.fa-people-arrows:before{content:"\e068"}.fa-people-carry:before{content:"\f4ce"}.fa-pepper-hot:before{content:"\f816"}.fa-perbyte:before{content:"\e083"}.fa-percent:before{content:"\f295"}.fa-percentage:before{content:"\f541"}.fa-periscope:before{content:"\f3da"}.fa-person-booth:before{content:"\f756"}.fa-phabricator:before{content:"\f3db"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-phoenix-squadron:before{content:"\f511"}.fa-phone:before{content:"\f095"}.fa-phone-alt:before{content:"\f879"}.fa-phone-slash:before{content:"\f3dd"}.fa-phone-square:before{content:"\f098"}.fa-phone-square-alt:before{content:"\f87b"}.fa-phone-volume:before{content:"\f2a0"}.fa-photo-video:before{content:"\f87c"}.fa-php:before{content:"\f457"}.fa-pied-piper:before{content:"\f2ae"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-square:before{content:"\e01e"}.fa-piggy-bank:before{content:"\f4d3"}.fa-pills:before{content:"\f484"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-p:before{content:"\f231"}.fa-pinterest-square:before{content:"\f0d3"}.fa-pizza-slice:before{content:"\f818"}.fa-place-of-worship:before{content:"\f67f"}.fa-plane:before{content:"\f072"}.fa-plane-arrival:before{content:"\f5af"}.fa-plane-departure:before{content:"\f5b0"}.fa-plane-slash:before{content:"\e069"}.fa-play:before{content:"\f04b"}.fa-play-circle:before{content:"\f144"}.fa-playstation:before{content:"\f3df"}.fa-plug:before{content:"\f1e6"}.fa-plus:before{content:"\f067"}.fa-plus-circle:before{content:"\f055"}.fa-plus-square:before{content:"\f0fe"}.fa-podcast:before{content:"\f2ce"}.fa-poll:before{content:"\f681"}.fa-poll-h:before{content:"\f682"}.fa-poo:before{content:"\f2fe"}.fa-poo-storm:before{content:"\f75a"}.fa-poop:before{content:"\f619"}.fa-portrait:before{content:"\f3e0"}.fa-pound-sign:before{content:"\f154"}.fa-power-off:before{content:"\f011"}.fa-pray:before{content:"\f683"}.fa-praying-hands:before{content:"\f684"}.fa-prescription:before{content:"\f5b1"}.fa-prescription-bottle:before{content:"\f485"}.fa-prescription-bottle-alt:before{content:"\f486"}.fa-print:before{content:"\f02f"}.fa-procedures:before{content:"\f487"}.fa-product-hunt:before{content:"\f288"}.fa-project-diagram:before{content:"\f542"}.fa-pump-medical:before{content:"\e06a"}.fa-pump-soap:before{content:"\e06b"}.fa-pushed:before{content:"\f3e1"}.fa-puzzle-piece:before{content:"\f12e"}.fa-python:before{content:"\f3e2"}.fa-qq:before{content:"\f1d6"}.fa-qrcode:before{content:"\f029"}.fa-question:before{content:"\f128"}.fa-question-circle:before{content:"\f059"}.fa-quidditch:before{content:"\f458"}.fa-quinscape:before{content:"\f459"}.fa-quora:before{content:"\f2c4"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-quran:before{content:"\f687"}.fa-r-project:before{content:"\f4f7"}.fa-radiation:before{content:"\f7b9"}.fa-radiation-alt:before{content:"\f7ba"}.fa-rainbow:before{content:"\f75b"}.fa-random:before{content:"\f074"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-ravelry:before{content:"\f2d9"}.fa-react:before{content:"\f41b"}.fa-reacteurope:before{content:"\f75d"}.fa-readme:before{content:"\f4d5"}.fa-rebel:before{content:"\f1d0"}.fa-receipt:before{content:"\f543"}.fa-record-vinyl:before{content:"\f8d9"}.fa-recycle:before{content:"\f1b8"}.fa-red-river:before{content:"\f3e3"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-alien:before{content:"\f281"}.fa-reddit-square:before{content:"\f1a2"}.fa-redhat:before{content:"\f7bc"}.fa-redo:before{content:"\f01e"}.fa-redo-alt:before{content:"\f2f9"}.fa-registered:before{content:"\f25d"}.fa-remove-format:before{content:"\f87d"}.fa-renren:before{content:"\f18b"}.fa-reply:before{content:"\f3e5"}.fa-reply-all:before{content:"\f122"}.fa-replyd:before{content:"\f3e6"}.fa-republican:before{content:"\f75e"}.fa-researchgate:before{content:"\f4f8"}.fa-resolving:before{content:"\f3e7"}.fa-restroom:before{content:"\f7bd"}.fa-retweet:before{content:"\f079"}.fa-rev:before{content:"\f5b2"}.fa-ribbon:before{content:"\f4d6"}.fa-ring:before{content:"\f70b"}.fa-road:before{content:"\f018"}.fa-robot:before{content:"\f544"}.fa-rocket:before{content:"\f135"}.fa-rocketchat:before{content:"\f3e8"}.fa-rockrms:before{content:"\f3e9"}.fa-route:before{content:"\f4d7"}.fa-rss:before{content:"\f09e"}.fa-rss-square:before{content:"\f143"}.fa-ruble-sign:before{content:"\f158"}.fa-ruler:before{content:"\f545"}.fa-ruler-combined:before{content:"\f546"}.fa-ruler-horizontal:before{content:"\f547"}.fa-ruler-vertical:before{content:"\f548"}.fa-running:before{content:"\f70c"}.fa-rupee-sign:before{content:"\f156"}.fa-rust:before{content:"\e07a"}.fa-sad-cry:before{content:"\f5b3"}.fa-sad-tear:before{content:"\f5b4"}.fa-safari:before{content:"\f267"}.fa-salesforce:before{content:"\f83b"}.fa-sass:before{content:"\f41e"}.fa-satellite:before{content:"\f7bf"}.fa-satellite-dish:before{content:"\f7c0"}.fa-save:before{content:"\f0c7"}.fa-schlix:before{content:"\f3ea"}.fa-school:before{content:"\f549"}.fa-screwdriver:before{content:"\f54a"}.fa-scribd:before{content:"\f28a"}.fa-scroll:before{content:"\f70e"}.fa-sd-card:before{content:"\f7c2"}.fa-search:before{content:"\f002"}.fa-search-dollar:before{content:"\f688"}.fa-search-location:before{content:"\f689"}.fa-search-minus:before{content:"\f010"}.fa-search-plus:before{content:"\f00e"}.fa-searchengin:before{content:"\f3eb"}.fa-seedling:before{content:"\f4d8"}.fa-sellcast:before{content:"\f2da"}.fa-sellsy:before{content:"\f213"}.fa-server:before{content:"\f233"}.fa-servicestack:before{content:"\f3ec"}.fa-shapes:before{content:"\f61f"}.fa-share:before{content:"\f064"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-share-square:before{content:"\f14d"}.fa-shekel-sign:before{content:"\f20b"}.fa-shield-alt:before{content:"\f3ed"}.fa-shield-virus:before{content:"\e06c"}.fa-ship:before{content:"\f21a"}.fa-shipping-fast:before{content:"\f48b"}.fa-shirtsinbulk:before{content:"\f214"}.fa-shoe-prints:before{content:"\f54b"}.fa-shopify:before{content:"\e057"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-shopping-cart:before{content:"\f07a"}.fa-shopware:before{content:"\f5b5"}.fa-shower:before{content:"\f2cc"}.fa-shuttle-van:before{content:"\f5b6"}.fa-sign:before{content:"\f4d9"}.fa-sign-in-alt:before{content:"\f2f6"}.fa-sign-language:before{content:"\f2a7"}.fa-sign-out-alt:before{content:"\f2f5"}.fa-signal:before{content:"\f012"}.fa-signature:before{content:"\f5b7"}.fa-sim-card:before{content:"\f7c4"}.fa-simplybuilt:before{content:"\f215"}.fa-sink:before{content:"\e06d"}.fa-sistrix:before{content:"\f3ee"}.fa-sitemap:before{content:"\f0e8"}.fa-sith:before{content:"\f512"}.fa-skating:before{content:"\f7c5"}.fa-sketch:before{content:"\f7c6"}.fa-skiing:before{content:"\f7c9"}.fa-skiing-nordic:before{content:"\f7ca"}.fa-skull:before{content:"\f54c"}.fa-skull-crossbones:before{content:"\f714"}.fa-skyatlas:before{content:"\f216"}.fa-skype:before{content:"\f17e"}.fa-slack:before{content:"\f198"}.fa-slack-hash:before{content:"\f3ef"}.fa-slash:before{content:"\f715"}.fa-sleigh:before{content:"\f7cc"}.fa-sliders-h:before{content:"\f1de"}.fa-slideshare:before{content:"\f1e7"}.fa-smile:before{content:"\f118"}.fa-smile-beam:before{content:"\f5b8"}.fa-smile-wink:before{content:"\f4da"}.fa-smog:before{content:"\f75f"}.fa-smoking:before{content:"\f48d"}.fa-smoking-ban:before{content:"\f54d"}.fa-sms:before{content:"\f7cd"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-snowboarding:before{content:"\f7ce"}.fa-snowflake:before{content:"\f2dc"}.fa-snowman:before{content:"\f7d0"}.fa-snowplow:before{content:"\f7d2"}.fa-soap:before{content:"\e06e"}.fa-socks:before{content:"\f696"}.fa-solar-panel:before{content:"\f5ba"}.fa-sort:before{content:"\f0dc"}.fa-sort-alpha-down:before{content:"\f15d"}.fa-sort-alpha-down-alt:before{content:"\f881"}.fa-sort-alpha-up:before{content:"\f15e"}.fa-sort-alpha-up-alt:before{content:"\f882"}.fa-sort-amount-down:before{content:"\f160"}.fa-sort-amount-down-alt:before{content:"\f884"}.fa-sort-amount-up:before{content:"\f161"}.fa-sort-amount-up-alt:before{content:"\f885"}.fa-sort-down:before{content:"\f0dd"}.fa-sort-numeric-down:before{content:"\f162"}.fa-sort-numeric-down-alt:before{content:"\f886"}.fa-sort-numeric-up:before{content:"\f163"}.fa-sort-numeric-up-alt:before{content:"\f887"}.fa-sort-up:before{content:"\f0de"}.fa-soundcloud:before{content:"\f1be"}.fa-sourcetree:before{content:"\f7d3"}.fa-spa:before{content:"\f5bb"}.fa-space-shuttle:before{content:"\f197"}.fa-speakap:before{content:"\f3f3"}.fa-speaker-deck:before{content:"\f83c"}.fa-spell-check:before{content:"\f891"}.fa-spider:before{content:"\f717"}.fa-spinner:before{content:"\f110"}.fa-splotch:before{content:"\f5bc"}.fa-spotify:before{content:"\f1bc"}.fa-spray-can:before{content:"\f5bd"}.fa-square:before{content:"\f0c8"}.fa-square-full:before{content:"\f45c"}.fa-square-root-alt:before{content:"\f698"}.fa-squarespace:before{content:"\f5be"}.fa-stack-exchange:before{content:"\f18d"}.fa-stack-overflow:before{content:"\f16c"}.fa-stackpath:before{content:"\f842"}.fa-stamp:before{content:"\f5bf"}.fa-star:before{content:"\f005"}.fa-star-and-crescent:before{content:"\f699"}.fa-star-half:before{content:"\f089"}.fa-star-half-alt:before{content:"\f5c0"}.fa-star-of-david:before{content:"\f69a"}.fa-star-of-life:before{content:"\f621"}.fa-staylinked:before{content:"\f3f5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-steam-symbol:before{content:"\f3f6"}.fa-step-backward:before{content:"\f048"}.fa-step-forward:before{content:"\f051"}.fa-stethoscope:before{content:"\f0f1"}.fa-sticker-mule:before{content:"\f3f7"}.fa-sticky-note:before{content:"\f249"}.fa-stop:before{content:"\f04d"}.fa-stop-circle:before{content:"\f28d"}.fa-stopwatch:before{content:"\f2f2"}.fa-stopwatch-20:before{content:"\e06f"}.fa-store:before{content:"\f54e"}.fa-store-alt:before{content:"\f54f"}.fa-store-alt-slash:before{content:"\e070"}.fa-store-slash:before{content:"\e071"}.fa-strava:before{content:"\f428"}.fa-stream:before{content:"\f550"}.fa-street-view:before{content:"\f21d"}.fa-strikethrough:before{content:"\f0cc"}.fa-stripe:before{content:"\f429"}.fa-stripe-s:before{content:"\f42a"}.fa-stroopwafel:before{content:"\f551"}.fa-studiovinari:before{content:"\f3f8"}.fa-stumbleupon:before{content:"\f1a4"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-subscript:before{content:"\f12c"}.fa-subway:before{content:"\f239"}.fa-suitcase:before{content:"\f0f2"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-sun:before{content:"\f185"}.fa-superpowers:before{content:"\f2dd"}.fa-superscript:before{content:"\f12b"}.fa-supple:before{content:"\f3f9"}.fa-surprise:before{content:"\f5c2"}.fa-suse:before{content:"\f7d6"}.fa-swatchbook:before{content:"\f5c3"}.fa-swift:before{content:"\f8e1"}.fa-swimmer:before{content:"\f5c4"}.fa-swimming-pool:before{content:"\f5c5"}.fa-symfony:before{content:"\f83d"}.fa-synagogue:before{content:"\f69b"}.fa-sync:before{content:"\f021"}.fa-sync-alt:before{content:"\f2f1"}.fa-syringe:before{content:"\f48e"}.fa-table:before{content:"\f0ce"}.fa-table-tennis:before{content:"\f45d"}.fa-tablet:before{content:"\f10a"}.fa-tablet-alt:before{content:"\f3fa"}.fa-tablets:before{content:"\f490"}.fa-tachometer-alt:before{content:"\f3fd"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-tape:before{content:"\f4db"}.fa-tasks:before{content:"\f0ae"}.fa-taxi:before{content:"\f1ba"}.fa-teamspeak:before{content:"\f4f9"}.fa-teeth:before{content:"\f62e"}.fa-teeth-open:before{content:"\f62f"}.fa-telegram:before{content:"\f2c6"}.fa-telegram-plane:before{content:"\f3fe"}.fa-temperature-high:before{content:"\f769"}.fa-temperature-low:before{content:"\f76b"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-tenge:before{content:"\f7d7"}.fa-terminal:before{content:"\f120"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-th:before{content:"\f00a"}.fa-th-large:before{content:"\f009"}.fa-th-list:before{content:"\f00b"}.fa-the-red-yeti:before{content:"\f69d"}.fa-theater-masks:before{content:"\f630"}.fa-themeco:before{content:"\f5c6"}.fa-themeisle:before{content:"\f2b2"}.fa-thermometer:before{content:"\f491"}.fa-thermometer-empty:before{content:"\f2cb"}.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-think-peaks:before{content:"\f731"}.fa-thumbs-down:before{content:"\f165"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbtack:before{content:"\f08d"}.fa-ticket-alt:before{content:"\f3ff"}.fa-tiktok:before{content:"\e07b"}.fa-times:before{content:"\f00d"}.fa-times-circle:before{content:"\f057"}.fa-tint:before{content:"\f043"}.fa-tint-slash:before{content:"\f5c7"}.fa-tired:before{content:"\f5c8"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-toilet:before{content:"\f7d8"}.fa-toilet-paper:before{content:"\f71e"}.fa-toilet-paper-slash:before{content:"\e072"}.fa-toolbox:before{content:"\f552"}.fa-tools:before{content:"\f7d9"}.fa-tooth:before{content:"\f5c9"}.fa-torah:before{content:"\f6a0"}.fa-torii-gate:before{content:"\f6a1"}.fa-tractor:before{content:"\f722"}.fa-trade-federation:before{content:"\f513"}.fa-trademark:before{content:"\f25c"}.fa-traffic-light:before{content:"\f637"}.fa-trailer:before{content:"\e041"}.fa-train:before{content:"\f238"}.fa-tram:before{content:"\f7da"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-trash:before{content:"\f1f8"}.fa-trash-alt:before{content:"\f2ed"}.fa-trash-restore:before{content:"\f829"}.fa-trash-restore-alt:before{content:"\f82a"}.fa-tree:before{content:"\f1bb"}.fa-trello:before{content:"\f181"}.fa-trophy:before{content:"\f091"}.fa-truck:before{content:"\f0d1"}.fa-truck-loading:before{content:"\f4de"}.fa-truck-monster:before{content:"\f63b"}.fa-truck-moving:before{content:"\f4df"}.fa-truck-pickup:before{content:"\f63c"}.fa-tshirt:before{content:"\f553"}.fa-tty:before{content:"\f1e4"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-tv:before{content:"\f26c"}.fa-twitch:before{content:"\f1e8"}.fa-twitter:before{content:"\f099"}.fa-twitter-square:before{content:"\f081"}.fa-typo3:before{content:"\f42b"}.fa-uber:before{content:"\f402"}.fa-ubuntu:before{content:"\f7df"}.fa-uikit:before{content:"\f403"}.fa-umbraco:before{content:"\f8e8"}.fa-umbrella:before{content:"\f0e9"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-uncharted:before{content:"\e084"}.fa-underline:before{content:"\f0cd"}.fa-undo:before{content:"\f0e2"}.fa-undo-alt:before{content:"\f2ea"}.fa-uniregistry:before{content:"\f404"}.fa-unity:before{content:"\e049"}.fa-universal-access:before{content:"\f29a"}.fa-university:before{content:"\f19c"}.fa-unlink:before{content:"\f127"}.fa-unlock:before{content:"\f09c"}.fa-unlock-alt:before{content:"\f13e"}.fa-unsplash:before{content:"\e07c"}.fa-untappd:before{content:"\f405"}.fa-upload:before{content:"\f093"}.fa-ups:before{content:"\f7e0"}.fa-usb:before{content:"\f287"}.fa-user:before{content:"\f007"}.fa-user-alt:before{content:"\f406"}.fa-user-alt-slash:before{content:"\f4fa"}.fa-user-astronaut:before{content:"\f4fb"}.fa-user-check:before{content:"\f4fc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-clock:before{content:"\f4fd"}.fa-user-cog:before{content:"\f4fe"}.fa-user-edit:before{content:"\f4ff"}.fa-user-friends:before{content:"\f500"}.fa-user-graduate:before{content:"\f501"}.fa-user-injured:before{content:"\f728"}.fa-user-lock:before{content:"\f502"}.fa-user-md:before{content:"\f0f0"}.fa-user-minus:before{content:"\f503"}.fa-user-ninja:before{content:"\f504"}.fa-user-nurse:before{content:"\f82f"}.fa-user-plus:before{content:"\f234"}.fa-user-secret:before{content:"\f21b"}.fa-user-shield:before{content:"\f505"}.fa-user-slash:before{content:"\f506"}.fa-user-tag:before{content:"\f507"}.fa-user-tie:before{content:"\f508"}.fa-user-times:before{content:"\f235"}.fa-users:before{content:"\f0c0"}.fa-users-cog:before{content:"\f509"}.fa-users-slash:before{content:"\e073"}.fa-usps:before{content:"\f7e1"}.fa-ussunnah:before{content:"\f407"}.fa-utensil-spoon:before{content:"\f2e5"}.fa-utensils:before{content:"\f2e7"}.fa-vaadin:before{content:"\f408"}.fa-vector-square:before{content:"\f5cb"}.fa-venus:before{content:"\f221"}.fa-venus-double:before{content:"\f226"}.fa-venus-mars:before{content:"\f228"}.fa-vest:before{content:"\e085"}.fa-vest-patches:before{content:"\e086"}.fa-viacoin:before{content:"\f237"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-vial:before{content:"\f492"}.fa-vials:before{content:"\f493"}.fa-viber:before{content:"\f409"}.fa-video:before{content:"\f03d"}.fa-video-slash:before{content:"\f4e2"}.fa-vihara:before{content:"\f6a7"}.fa-vimeo:before{content:"\f40a"}.fa-vimeo-square:before{content:"\f194"}.fa-vimeo-v:before{content:"\f27d"}.fa-vine:before{content:"\f1ca"}.fa-virus:before{content:"\e074"}.fa-virus-slash:before{content:"\e075"}.fa-viruses:before{content:"\e076"}.fa-vk:before{content:"\f189"}.fa-vnv:before{content:"\f40b"}.fa-voicemail:before{content:"\f897"}.fa-volleyball-ball:before{content:"\f45f"}.fa-volume-down:before{content:"\f027"}.fa-volume-mute:before{content:"\f6a9"}.fa-volume-off:before{content:"\f026"}.fa-volume-up:before{content:"\f028"}.fa-vote-yea:before{content:"\f772"}.fa-vr-cardboard:before{content:"\f729"}.fa-vuejs:before{content:"\f41f"}.fa-walking:before{content:"\f554"}.fa-wallet:before{content:"\f555"}.fa-warehouse:before{content:"\f494"}.fa-watchman-monitoring:before{content:"\e087"}.fa-water:before{content:"\f773"}.fa-wave-square:before{content:"\f83e"}.fa-waze:before{content:"\f83f"}.fa-weebly:before{content:"\f5cc"}.fa-weibo:before{content:"\f18a"}.fa-weight:before{content:"\f496"}.fa-weight-hanging:before{content:"\f5cd"}.fa-weixin:before{content:"\f1d7"}.fa-whatsapp:before{content:"\f232"}.fa-whatsapp-square:before{content:"\f40c"}.fa-wheelchair:before{content:"\f193"}.fa-whmcs:before{content:"\f40d"}.fa-wifi:before{content:"\f1eb"}.fa-wikipedia-w:before{content:"\f266"}.fa-wind:before{content:"\f72e"}.fa-window-close:before{content:"\f410"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-windows:before{content:"\f17a"}.fa-wine-bottle:before{content:"\f72f"}.fa-wine-glass:before{content:"\f4e3"}.fa-wine-glass-alt:before{content:"\f5ce"}.fa-wix:before{content:"\f5cf"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-wodu:before{content:"\e088"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-won-sign:before{content:"\f159"}.fa-wordpress:before{content:"\f19a"}.fa-wordpress-simple:before{content:"\f411"}.fa-wpbeginner:before{content:"\f297"}.fa-wpexplorer:before{content:"\f2de"}.fa-wpforms:before{content:"\f298"}.fa-wpressr:before{content:"\f3e4"}.fa-wrench:before{content:"\f0ad"}.fa-x-ray:before{content:"\f497"}.fa-xbox:before{content:"\f412"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-y-combinator:before{content:"\f23b"}.fa-yahoo:before{content:"\f19e"}.fa-yammer:before{content:"\f840"}.fa-yandex:before{content:"\f413"}.fa-yandex-international:before{content:"\f414"}.fa-yarn:before{content:"\f7e3"}.fa-yelp:before{content:"\f1e9"}.fa-yen-sign:before{content:"\f157"}.fa-yin-yang:before{content:"\f6ad"}.fa-yoast:before{content:"\f2b1"}.fa-youtube:before{content:"\f167"}.fa-youtube-square:before{content:"\f431"}.fa-zhihu:before{content:"\f63f"}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}@font-face{font-family:"Font Awesome 5 Brands";font-style:normal;font-weight:400;font-display:block;src:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/fontawesome/webfonts/fa-brands-400.eot);src:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/fontawesome/webfonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/fontawesome/webfonts/fa-brands-400.woff2) format("woff2"),url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/fontawesome/webfonts/fa-brands-400.woff) format("woff"),url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/fontawesome/webfonts/fa-brands-400.ttf) format("truetype"),url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/fontawesome/webfonts/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:"Font Awesome 5 Brands"}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:400;font-display:block;src:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/fontawesome/webfonts/fa-regular-400.eot);src:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/fontawesome/webfonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/fontawesome/webfonts/fa-regular-400.woff2) format("woff2"),url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/fontawesome/webfonts/fa-regular-400.woff) format("woff"),url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/fontawesome/webfonts/fa-regular-400.ttf) format("truetype"),url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/fontawesome/webfonts/fa-regular-400.svg#fontawesome) format("svg")}.fab,.far{font-weight:400}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:900;font-display:block;src:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/fontawesome/webfonts/fa-solid-900.eot);src:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/fontawesome/webfonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/fontawesome/webfonts/fa-solid-900.woff2) format("woff2"),url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/fontawesome/webfonts/fa-solid-900.woff) format("woff"),url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/fontawesome/webfonts/fa-solid-900.ttf) format("truetype"),url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/fontawesome/webfonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.far,.fas{font-family:"Font Awesome 5 Free"}.fa,.fas{font-weight:900} +.flag-icon-background{background-size:contain;background-position:50%;background-repeat:no-repeat}.flag-icon{background-size:contain;background-position:50%;background-repeat:no-repeat;position:relative;display:inline-block;width:1.33333333em;line-height:1em}.flag-icon:before{content:" "}.flag-icon.flag-icon-squared{width:1em}.flag-icon-ad{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ad.svg)}.flag-icon-ad.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ad.svg)}.flag-icon-ae{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ae.svg)}.flag-icon-ae.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ae.svg)}.flag-icon-af{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/af.svg)}.flag-icon-af.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/af.svg)}.flag-icon-ag{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ag.svg)}.flag-icon-ag.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ag.svg)}.flag-icon-ai{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ai.svg)}.flag-icon-ai.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ai.svg)}.flag-icon-al{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/al.svg)}.flag-icon-al.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/al.svg)}.flag-icon-am{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/am.svg)}.flag-icon-am.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/am.svg)}.flag-icon-ao{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ao.svg)}.flag-icon-ao.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ao.svg)}.flag-icon-aq{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/aq.svg)}.flag-icon-aq.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/aq.svg)}.flag-icon-ar{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ar.svg)}.flag-icon-ar.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ar.svg)}.flag-icon-as{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/as.svg)}.flag-icon-as.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/as.svg)}.flag-icon-at{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/at.svg)}.flag-icon-at.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/at.svg)}.flag-icon-au{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/au.svg)}.flag-icon-au.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/au.svg)}.flag-icon-aw{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/aw.svg)}.flag-icon-aw.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/aw.svg)}.flag-icon-ax{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ax.svg)}.flag-icon-ax.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ax.svg)}.flag-icon-az{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/az.svg)}.flag-icon-az.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/az.svg)}.flag-icon-ba{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ba.svg)}.flag-icon-ba.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ba.svg)}.flag-icon-bb{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/bb.svg)}.flag-icon-bb.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/bb.svg)}.flag-icon-bd{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/bd.svg)}.flag-icon-bd.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/bd.svg)}.flag-icon-be{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/be.svg)}.flag-icon-be.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/be.svg)}.flag-icon-bf{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/bf.svg)}.flag-icon-bf.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/bf.svg)}.flag-icon-bg{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/bg.svg)}.flag-icon-bg.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/bg.svg)}.flag-icon-bh{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/bh.svg)}.flag-icon-bh.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/bh.svg)}.flag-icon-bi{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/bi.svg)}.flag-icon-bi.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/bi.svg)}.flag-icon-bj{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/bj.svg)}.flag-icon-bj.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/bj.svg)}.flag-icon-bl{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/bl.svg)}.flag-icon-bl.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/bl.svg)}.flag-icon-bm{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/bm.svg)}.flag-icon-bm.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/bm.svg)}.flag-icon-bn{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/bn.svg)}.flag-icon-bn.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/bn.svg)}.flag-icon-bo{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/bo.svg)}.flag-icon-bo.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/bo.svg)}.flag-icon-bq{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/bq.svg)}.flag-icon-bq.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/bq.svg)}.flag-icon-br{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/br.svg)}.flag-icon-br.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/br.svg)}.flag-icon-bs{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/bs.svg)}.flag-icon-bs.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/bs.svg)}.flag-icon-bt{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/bt.svg)}.flag-icon-bt.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/bt.svg)}.flag-icon-bv{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/bv.svg)}.flag-icon-bv.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/bv.svg)}.flag-icon-bw{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/bw.svg)}.flag-icon-bw.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/bw.svg)}.flag-icon-by{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/by.svg)}.flag-icon-by.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/by.svg)}.flag-icon-bz{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/bz.svg)}.flag-icon-bz.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/bz.svg)}.flag-icon-ca{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ca.svg)}.flag-icon-ca.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ca.svg)}.flag-icon-cc{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/cc.svg)}.flag-icon-cc.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/cc.svg)}.flag-icon-cd{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/cd.svg)}.flag-icon-cd.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/cd.svg)}.flag-icon-cf{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/cf.svg)}.flag-icon-cf.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/cf.svg)}.flag-icon-cg{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/cg.svg)}.flag-icon-cg.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/cg.svg)}.flag-icon-ch{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ch.svg)}.flag-icon-ch.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ch.svg)}.flag-icon-ci{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ci.svg)}.flag-icon-ci.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ci.svg)}.flag-icon-ck{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ck.svg)}.flag-icon-ck.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ck.svg)}.flag-icon-cl{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/cl.svg)}.flag-icon-cl.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/cl.svg)}.flag-icon-cm{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/cm.svg)}.flag-icon-cm.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/cm.svg)}.flag-icon-cn{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/cn.svg)}.flag-icon-cn.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/cn.svg)}.flag-icon-co{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/co.svg)}.flag-icon-co.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/co.svg)}.flag-icon-cr{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/cr.svg)}.flag-icon-cr.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/cr.svg)}.flag-icon-cu{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/cu.svg)}.flag-icon-cu.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/cu.svg)}.flag-icon-cv{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/cv.svg)}.flag-icon-cv.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/cv.svg)}.flag-icon-cw{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/cw.svg)}.flag-icon-cw.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/cw.svg)}.flag-icon-cx{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/cx.svg)}.flag-icon-cx.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/cx.svg)}.flag-icon-cy{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/cy.svg)}.flag-icon-cy.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/cy.svg)}.flag-icon-cz{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/cz.svg)}.flag-icon-cz.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/cz.svg)}.flag-icon-de{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/de.svg)}.flag-icon-de.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/de.svg)}.flag-icon-dj{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/dj.svg)}.flag-icon-dj.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/dj.svg)}.flag-icon-dk{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/dk.svg)}.flag-icon-dk.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/dk.svg)}.flag-icon-dm{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/dm.svg)}.flag-icon-dm.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/dm.svg)}.flag-icon-do{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/do.svg)}.flag-icon-do.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/do.svg)}.flag-icon-dz{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/dz.svg)}.flag-icon-dz.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/dz.svg)}.flag-icon-ec{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ec.svg)}.flag-icon-ec.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ec.svg)}.flag-icon-ee{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ee.svg)}.flag-icon-ee.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ee.svg)}.flag-icon-eg{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/eg.svg)}.flag-icon-eg.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/eg.svg)}.flag-icon-eh{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/eh.svg)}.flag-icon-eh.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/eh.svg)}.flag-icon-er{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/er.svg)}.flag-icon-er.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/er.svg)}.flag-icon-es{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/es.svg)}.flag-icon-es.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/es.svg)}.flag-icon-et{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/et.svg)}.flag-icon-et.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/et.svg)}.flag-icon-fi{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/fi.svg)}.flag-icon-fi.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/fi.svg)}.flag-icon-fj{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/fj.svg)}.flag-icon-fj.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/fj.svg)}.flag-icon-fk{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/fk.svg)}.flag-icon-fk.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/fk.svg)}.flag-icon-fm{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/fm.svg)}.flag-icon-fm.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/fm.svg)}.flag-icon-fo{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/fo.svg)}.flag-icon-fo.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/fo.svg)}.flag-icon-fr{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/fr.svg)}.flag-icon-fr.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/fr.svg)}.flag-icon-ga{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ga.svg)}.flag-icon-ga.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ga.svg)}.flag-icon-gb{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/gb.svg)}.flag-icon-gb.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/gb.svg)}.flag-icon-gd{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/gd.svg)}.flag-icon-gd.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/gd.svg)}.flag-icon-ge{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ge.svg)}.flag-icon-ge.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ge.svg)}.flag-icon-gf{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/gf.svg)}.flag-icon-gf.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/gf.svg)}.flag-icon-gg{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/gg.svg)}.flag-icon-gg.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/gg.svg)}.flag-icon-gh{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/gh.svg)}.flag-icon-gh.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/gh.svg)}.flag-icon-gi{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/gi.svg)}.flag-icon-gi.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/gi.svg)}.flag-icon-gl{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/gl.svg)}.flag-icon-gl.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/gl.svg)}.flag-icon-gm{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/gm.svg)}.flag-icon-gm.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/gm.svg)}.flag-icon-gn{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/gn.svg)}.flag-icon-gn.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/gn.svg)}.flag-icon-gp{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/gp.svg)}.flag-icon-gp.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/gp.svg)}.flag-icon-gq{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/gq.svg)}.flag-icon-gq.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/gq.svg)}.flag-icon-gr{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/gr.svg)}.flag-icon-gr.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/gr.svg)}.flag-icon-gs{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/gs.svg)}.flag-icon-gs.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/gs.svg)}.flag-icon-gt{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/gt.svg)}.flag-icon-gt.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/gt.svg)}.flag-icon-gu{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/gu.svg)}.flag-icon-gu.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/gu.svg)}.flag-icon-gw{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/gw.svg)}.flag-icon-gw.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/gw.svg)}.flag-icon-gy{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/gy.svg)}.flag-icon-gy.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/gy.svg)}.flag-icon-hk{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/hk.svg)}.flag-icon-hk.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/hk.svg)}.flag-icon-hm{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/hm.svg)}.flag-icon-hm.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/hm.svg)}.flag-icon-hn{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/hn.svg)}.flag-icon-hn.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/hn.svg)}.flag-icon-hr{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/hr.svg)}.flag-icon-hr.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/hr.svg)}.flag-icon-ht{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ht.svg)}.flag-icon-ht.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ht.svg)}.flag-icon-hu{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/hu.svg)}.flag-icon-hu.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/hu.svg)}.flag-icon-id{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/id.svg)}.flag-icon-id.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/id.svg)}.flag-icon-ie{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ie.svg)}.flag-icon-ie.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ie.svg)}.flag-icon-il{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/il.svg)}.flag-icon-il.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/il.svg)}.flag-icon-im{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/im.svg)}.flag-icon-im.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/im.svg)}.flag-icon-in{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/in.svg)}.flag-icon-in.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/in.svg)}.flag-icon-io{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/io.svg)}.flag-icon-io.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/io.svg)}.flag-icon-iq{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/iq.svg)}.flag-icon-iq.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/iq.svg)}.flag-icon-ir{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ir.svg)}.flag-icon-ir.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ir.svg)}.flag-icon-is{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/is.svg)}.flag-icon-is.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/is.svg)}.flag-icon-it{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/it.svg)}.flag-icon-it.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/it.svg)}.flag-icon-je{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/je.svg)}.flag-icon-je.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/je.svg)}.flag-icon-jm{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/jm.svg)}.flag-icon-jm.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/jm.svg)}.flag-icon-jo{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/jo.svg)}.flag-icon-jo.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/jo.svg)}.flag-icon-jp{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/jp.svg)}.flag-icon-jp.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/jp.svg)}.flag-icon-ke{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ke.svg)}.flag-icon-ke.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ke.svg)}.flag-icon-kg{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/kg.svg)}.flag-icon-kg.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/kg.svg)}.flag-icon-kh{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/kh.svg)}.flag-icon-kh.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/kh.svg)}.flag-icon-ki{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ki.svg)}.flag-icon-ki.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ki.svg)}.flag-icon-km{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/km.svg)}.flag-icon-km.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/km.svg)}.flag-icon-kn{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/kn.svg)}.flag-icon-kn.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/kn.svg)}.flag-icon-kp{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/kp.svg)}.flag-icon-kp.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/kp.svg)}.flag-icon-kr{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/kr.svg)}.flag-icon-kr.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/kr.svg)}.flag-icon-kw{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/kw.svg)}.flag-icon-kw.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/kw.svg)}.flag-icon-ky{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ky.svg)}.flag-icon-ky.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ky.svg)}.flag-icon-kz{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/kz.svg)}.flag-icon-kz.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/kz.svg)}.flag-icon-la{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/la.svg)}.flag-icon-la.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/la.svg)}.flag-icon-lb{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/lb.svg)}.flag-icon-lb.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/lb.svg)}.flag-icon-lc{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/lc.svg)}.flag-icon-lc.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/lc.svg)}.flag-icon-li{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/li.svg)}.flag-icon-li.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/li.svg)}.flag-icon-lk{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/lk.svg)}.flag-icon-lk.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/lk.svg)}.flag-icon-lr{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/lr.svg)}.flag-icon-lr.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/lr.svg)}.flag-icon-ls{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ls.svg)}.flag-icon-ls.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ls.svg)}.flag-icon-lt{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/lt.svg)}.flag-icon-lt.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/lt.svg)}.flag-icon-lu{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/lu.svg)}.flag-icon-lu.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/lu.svg)}.flag-icon-lv{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/lv.svg)}.flag-icon-lv.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/lv.svg)}.flag-icon-ly{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ly.svg)}.flag-icon-ly.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ly.svg)}.flag-icon-ma{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ma.svg)}.flag-icon-ma.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ma.svg)}.flag-icon-mc{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/mc.svg)}.flag-icon-mc.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/mc.svg)}.flag-icon-md{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/md.svg)}.flag-icon-md.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/md.svg)}.flag-icon-me{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/me.svg)}.flag-icon-me.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/me.svg)}.flag-icon-mf{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/mf.svg)}.flag-icon-mf.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/mf.svg)}.flag-icon-mg{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/mg.svg)}.flag-icon-mg.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/mg.svg)}.flag-icon-mh{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/mh.svg)}.flag-icon-mh.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/mh.svg)}.flag-icon-mk{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/mk.svg)}.flag-icon-mk.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/mk.svg)}.flag-icon-ml{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ml.svg)}.flag-icon-ml.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ml.svg)}.flag-icon-mm{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/mm.svg)}.flag-icon-mm.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/mm.svg)}.flag-icon-mn{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/mn.svg)}.flag-icon-mn.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/mn.svg)}.flag-icon-mo{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/mo.svg)}.flag-icon-mo.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/mo.svg)}.flag-icon-mp{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/mp.svg)}.flag-icon-mp.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/mp.svg)}.flag-icon-mq{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/mq.svg)}.flag-icon-mq.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/mq.svg)}.flag-icon-mr{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/mr.svg)}.flag-icon-mr.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/mr.svg)}.flag-icon-ms{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ms.svg)}.flag-icon-ms.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ms.svg)}.flag-icon-mt{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/mt.svg)}.flag-icon-mt.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/mt.svg)}.flag-icon-mu{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/mu.svg)}.flag-icon-mu.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/mu.svg)}.flag-icon-mv{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/mv.svg)}.flag-icon-mv.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/mv.svg)}.flag-icon-mw{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/mw.svg)}.flag-icon-mw.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/mw.svg)}.flag-icon-mx{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/mx.svg)}.flag-icon-mx.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/mx.svg)}.flag-icon-my{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/my.svg)}.flag-icon-my.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/my.svg)}.flag-icon-mz{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/mz.svg)}.flag-icon-mz.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/mz.svg)}.flag-icon-na{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/na.svg)}.flag-icon-na.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/na.svg)}.flag-icon-nc{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/nc.svg)}.flag-icon-nc.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/nc.svg)}.flag-icon-ne{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ne.svg)}.flag-icon-ne.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ne.svg)}.flag-icon-nf{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/nf.svg)}.flag-icon-nf.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/nf.svg)}.flag-icon-ng{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ng.svg)}.flag-icon-ng.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ng.svg)}.flag-icon-ni{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ni.svg)}.flag-icon-ni.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ni.svg)}.flag-icon-nl{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/nl.svg)}.flag-icon-nl.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/nl.svg)}.flag-icon-no{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/no.svg)}.flag-icon-no.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/no.svg)}.flag-icon-np{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/np.svg)}.flag-icon-np.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/np.svg)}.flag-icon-nr{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/nr.svg)}.flag-icon-nr.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/nr.svg)}.flag-icon-nu{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/nu.svg)}.flag-icon-nu.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/nu.svg)}.flag-icon-nz{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/nz.svg)}.flag-icon-nz.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/nz.svg)}.flag-icon-om{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/om.svg)}.flag-icon-om.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/om.svg)}.flag-icon-pa{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/pa.svg)}.flag-icon-pa.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/pa.svg)}.flag-icon-pe{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/pe.svg)}.flag-icon-pe.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/pe.svg)}.flag-icon-pf{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/pf.svg)}.flag-icon-pf.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/pf.svg)}.flag-icon-pg{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/pg.svg)}.flag-icon-pg.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/pg.svg)}.flag-icon-ph{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ph.svg)}.flag-icon-ph.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ph.svg)}.flag-icon-pk{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/pk.svg)}.flag-icon-pk.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/pk.svg)}.flag-icon-pl{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/pl.svg)}.flag-icon-pl.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/pl.svg)}.flag-icon-pm{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/pm.svg)}.flag-icon-pm.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/pm.svg)}.flag-icon-pn{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/pn.svg)}.flag-icon-pn.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/pn.svg)}.flag-icon-pr{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/pr.svg)}.flag-icon-pr.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/pr.svg)}.flag-icon-ps{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ps.svg)}.flag-icon-ps.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ps.svg)}.flag-icon-pt{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/pt.svg)}.flag-icon-pt.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/pt.svg)}.flag-icon-pw{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/pw.svg)}.flag-icon-pw.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/pw.svg)}.flag-icon-py{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/py.svg)}.flag-icon-py.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/py.svg)}.flag-icon-qa{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/qa.svg)}.flag-icon-qa.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/qa.svg)}.flag-icon-re{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/re.svg)}.flag-icon-re.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/re.svg)}.flag-icon-ro{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ro.svg)}.flag-icon-ro.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ro.svg)}.flag-icon-rs{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/rs.svg)}.flag-icon-rs.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/rs.svg)}.flag-icon-ru{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ru.svg)}.flag-icon-ru.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ru.svg)}.flag-icon-rw{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/rw.svg)}.flag-icon-rw.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/rw.svg)}.flag-icon-sa{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/sa.svg)}.flag-icon-sa.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/sa.svg)}.flag-icon-sb{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/sb.svg)}.flag-icon-sb.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/sb.svg)}.flag-icon-sc{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/sc.svg)}.flag-icon-sc.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/sc.svg)}.flag-icon-sd{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/sd.svg)}.flag-icon-sd.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/sd.svg)}.flag-icon-se{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/se.svg)}.flag-icon-se.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/se.svg)}.flag-icon-sg{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/sg.svg)}.flag-icon-sg.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/sg.svg)}.flag-icon-sh{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/sh.svg)}.flag-icon-sh.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/sh.svg)}.flag-icon-si{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/si.svg)}.flag-icon-si.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/si.svg)}.flag-icon-sj{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/sj.svg)}.flag-icon-sj.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/sj.svg)}.flag-icon-sk{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/sk.svg)}.flag-icon-sk.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/sk.svg)}.flag-icon-sl{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/sl.svg)}.flag-icon-sl.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/sl.svg)}.flag-icon-sm{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/sm.svg)}.flag-icon-sm.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/sm.svg)}.flag-icon-sn{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/sn.svg)}.flag-icon-sn.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/sn.svg)}.flag-icon-so{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/so.svg)}.flag-icon-so.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/so.svg)}.flag-icon-sr{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/sr.svg)}.flag-icon-sr.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/sr.svg)}.flag-icon-ss{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ss.svg)}.flag-icon-ss.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ss.svg)}.flag-icon-st{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/st.svg)}.flag-icon-st.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/st.svg)}.flag-icon-sv{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/sv.svg)}.flag-icon-sv.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/sv.svg)}.flag-icon-sx{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/sx.svg)}.flag-icon-sx.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/sx.svg)}.flag-icon-sy{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/sy.svg)}.flag-icon-sy.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/sy.svg)}.flag-icon-sz{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/sz.svg)}.flag-icon-sz.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/sz.svg)}.flag-icon-tc{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/tc.svg)}.flag-icon-tc.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/tc.svg)}.flag-icon-td{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/td.svg)}.flag-icon-td.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/td.svg)}.flag-icon-tf{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/tf.svg)}.flag-icon-tf.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/tf.svg)}.flag-icon-tg{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/tg.svg)}.flag-icon-tg.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/tg.svg)}.flag-icon-th{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/th.svg)}.flag-icon-th.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/th.svg)}.flag-icon-tj{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/tj.svg)}.flag-icon-tj.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/tj.svg)}.flag-icon-tk{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/tk.svg)}.flag-icon-tk.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/tk.svg)}.flag-icon-tl{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/tl.svg)}.flag-icon-tl.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/tl.svg)}.flag-icon-tm{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/tm.svg)}.flag-icon-tm.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/tm.svg)}.flag-icon-tn{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/tn.svg)}.flag-icon-tn.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/tn.svg)}.flag-icon-to{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/to.svg)}.flag-icon-to.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/to.svg)}.flag-icon-tr{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/tr.svg)}.flag-icon-tr.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/tr.svg)}.flag-icon-tt{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/tt.svg)}.flag-icon-tt.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/tt.svg)}.flag-icon-tv{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/tv.svg)}.flag-icon-tv.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/tv.svg)}.flag-icon-tw{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/tw.svg)}.flag-icon-tw.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/tw.svg)}.flag-icon-tz{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/tz.svg)}.flag-icon-tz.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/tz.svg)}.flag-icon-ua{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ua.svg)}.flag-icon-ua.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ua.svg)}.flag-icon-ug{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ug.svg)}.flag-icon-ug.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ug.svg)}.flag-icon-um{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/um.svg)}.flag-icon-um.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/um.svg)}.flag-icon-us{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/us.svg)}.flag-icon-us.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/us.svg)}.flag-icon-uy{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/uy.svg)}.flag-icon-uy.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/uy.svg)}.flag-icon-uz{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/uz.svg)}.flag-icon-uz.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/uz.svg)}.flag-icon-va{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/va.svg)}.flag-icon-va.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/va.svg)}.flag-icon-vc{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/vc.svg)}.flag-icon-vc.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/vc.svg)}.flag-icon-ve{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ve.svg)}.flag-icon-ve.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ve.svg)}.flag-icon-vg{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/vg.svg)}.flag-icon-vg.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/vg.svg)}.flag-icon-vi{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/vi.svg)}.flag-icon-vi.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/vi.svg)}.flag-icon-vn{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/vn.svg)}.flag-icon-vn.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/vn.svg)}.flag-icon-vu{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/vu.svg)}.flag-icon-vu.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/vu.svg)}.flag-icon-wf{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/wf.svg)}.flag-icon-wf.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/wf.svg)}.flag-icon-ws{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ws.svg)}.flag-icon-ws.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ws.svg)}.flag-icon-ye{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ye.svg)}.flag-icon-ye.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ye.svg)}.flag-icon-yt{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/yt.svg)}.flag-icon-yt.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/yt.svg)}.flag-icon-za{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/za.svg)}.flag-icon-za.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/za.svg)}.flag-icon-zm{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/zm.svg)}.flag-icon-zm.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/zm.svg)}.flag-icon-zw{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/zw.svg)}.flag-icon-zw.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/zw.svg)}.flag-icon-es-ca{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/es-ca.svg)}.flag-icon-es-ca.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/es-ca.svg)}.flag-icon-es-ga{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/es-ga.svg)}.flag-icon-es-ga.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/es-ga.svg)}.flag-icon-eu{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/eu.svg)}.flag-icon-eu.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/eu.svg)}.flag-icon-gb-eng{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/gb-eng.svg)}.flag-icon-gb-eng.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/gb-eng.svg)}.flag-icon-gb-nir{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/gb-nir.svg)}.flag-icon-gb-nir.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/gb-nir.svg)}.flag-icon-gb-sct{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/gb-sct.svg)}.flag-icon-gb-sct.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/gb-sct.svg)}.flag-icon-gb-wls{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/gb-wls.svg)}.flag-icon-gb-wls.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/gb-wls.svg)}.flag-icon-un{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/un.svg)}.flag-icon-un.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/un.svg)}.flag-icon-xk{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/xk.svg)}.flag-icon-xk.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/xk.svg)} body:before{content:"mobile";display:none;visibility:hidden}@media(min-width:768px){body:before{content:"tablet"}}@media(min-width:992px){body:before{content:"desktop"}}@media(min-width:1200px){body:before{content:"widescreen"}}@media(min-width:1400px){body:before{content:"fullhd"}}hr.divider.divider-solid{border-top:var(--b-divider-thickness,1px) solid var(--b-divider-color,#999)}hr.divider.divider-dashed{border-top:var(--b-divider-thickness,1px) dashed var(--b-divider-color,#999)}hr.divider.divider-dotted{border-top:var(--b-divider-thickness,1px) dotted var(--b-divider-color,#999)}hr.divider.divider-text{position:relative;border:0;height:var(--b-divider-thickness,1px);background:var(--b-divider-color,#999)}hr.divider.divider-text::before{content:attr(data-content);display:inline-block;background:#fff;font-weight:bold;font-size:var(--b-divider-font-size,.85rem);color:var(--b-divider-color,#999);border-radius:30rem;padding:.2rem 2rem;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.b-drop-zone{position:relative;transition:all 300ms cubic-bezier(.4,0,.2,1) 0ms}.b-drop-zone.b-drop-zone-drag-block>*{pointer-events:none}.b-drop-zone.b-drop-zone-drop-allowed{outline:1px solid var(--b-theme-success,"#00FF00")!important}.b-drop-zone.b-drop-zone-drop-not-allowed{outline:1px solid var(--b-theme-danger,"#FF0000")!important}.b-drop-zone-draggable:not(.draggable-preview-start){cursor:grab;user-select:none}.b-drop-zone-draggable:not(.draggable-preview-start):active{cursor:grabbing}.b-drop-zone .draggable-placeholder{outline:2px dashed var(--b-theme-primary,"#0000FF")!important;padding:1rem}.b-drop-zone .draggable-preview-start{height:20px;width:100%;position:absolute;top:0;left:0;z-index:1}.b-file-picker{display:inline-block;width:100%}.b-file-picker .b-text-drop{border:1px solid rgba(0,0,0,.15);margin-top:.5rem;display:block;text-align:center;font-size:.75rem;padding-top:.25rem;padding-bottom:.25rem}.b-file-picker .b-file-picker-file{min-width:25rem}.b-file-picker .b-file-picker-file span{display:block}.b-file-picker .b-file-picker-file .b-file-picker-file-size,.b-file-picker .b-file-picker-file .b-file-picker-file-status,.b-file-picker .b-file-picker-file .b-file-picker-file-relativepath{font-size:.75rem}.b-input-color-picker{padding:.6rem}.b-input-color-picker>.b-input-color-picker-preview{position:relative;z-index:1;width:100%;height:100%;display:flex;flex-direction:row;justify-content:space-between}.b-input-color-picker>.b-input-color-picker-preview::before{position:absolute;content:"";top:0;left:0;width:100%;height:100%;background:url('data:image/svg+xml;utf8, ');background-size:.5em;border-radius:.15em;z-index:-1}.b-input-color-picker>.b-input-color-picker-preview>.b-input-color-picker-curent-color{display:inline-block;width:100%;height:100%}.b-input-color-picker[aria-disabled=true]{opacity:.65}.progress.progress-xs{height:.25rem}.progress.progress-sm{height:.5rem}.progress.progress-md{height:1rem}.progress.progress-lg{height:1.5rem}.progress.progress-xl{height:2rem}.b-page-progress{width:100%;height:4px;z-index:9999;top:0;left:0;position:fixed;display:none}.b-page-progress .b-page-progress-indicator{width:0;height:100%;transition:height .3s;background-color:#000;transition:width 1s}.b-page-progress .b-page-progress-indicator.b-page-progress-indicator-indeterminate{width:30%;animation:running-page-progress 2s cubic-bezier(.4,0,.2,1) infinite}.b-page-progress.b-page-progress-active{display:block}@keyframes running-page-progress{0%{margin-left:0;margin-right:100%}50%{margin-left:25%;margin-right:0%}100%{margin-left:100%;margin-right:0}}.tippy-box[data-animation=scale][data-placement^=top]{transform-origin:bottom}.tippy-box[data-animation=scale][data-placement^=bottom]{transform-origin:top}.tippy-box[data-animation=scale][data-placement^=left]{transform-origin:right}.tippy-box[data-animation=scale][data-placement^=right]{transform-origin:left}.tippy-box[data-animation=scale][data-state=hidden]{transform:scale(.5);opacity:0}.tippy-box[data-theme~=blazorise]{background-color:RGBA(var(--b-tooltip-background-color-r,128),var(--b-tooltip-background-color-g,128),var(--b-tooltip-background-color-b,128),var(--b-tooltip-background-opacity,.9));color:var(--b-tooltip-color,#fff)}.tippy-box[data-theme~=blazorise][data-placement^=top]>.tippy-arrow::before{border-top-color:RGBA(var(--b-tooltip-background-color-r,128),var(--b-tooltip-background-color-g,128),var(--b-tooltip-background-color-b,128),var(--b-tooltip-background-opacity,.9))}.tippy-box[data-theme~=blazorise][data-placement^=bottom]>.tippy-arrow::before{border-bottom-color:RGBA(var(--b-tooltip-background-color-r,128),var(--b-tooltip-background-color-g,128),var(--b-tooltip-background-color-b,128),var(--b-tooltip-background-opacity,.9))}.tippy-box[data-theme~=blazorise][data-placement^=left]>.tippy-arrow::before{border-left-color:RGBA(var(--b-tooltip-background-color-r,128),var(--b-tooltip-background-color-g,128),var(--b-tooltip-background-color-b,128),var(--b-tooltip-background-opacity,.9))}.tippy-box[data-theme~=blazorise][data-placement^=right]>.tippy-arrow::before{border-right-color:RGBA(var(--b-tooltip-background-color-r,128),var(--b-tooltip-background-color-g,128),var(--b-tooltip-background-color-b,128),var(--b-tooltip-background-opacity,.9))}.tippy-box[data-theme~=blazorise]>.tippy-svg-arrow{fill:RGBA(var(--b-tooltip-background-color-r,128),var(--b-tooltip-background-color-g,128),var(--b-tooltip-background-color-b,128),var(--b-tooltip-background-opacity,.9))}.b-tooltip-inline{display:inline-block}.b-layout{display:flex;flex:auto;flex-direction:column}.b-layout.b-layout-root{height:100vh}.b-layout,.b-layout *{box-sizing:border-box}@keyframes spinner{0%{transform:translate3d(-50%,-50%,0) rotate(0deg)}100%{transform:translate3d(-50%,-50%,0) rotate(360deg)}}.b-layout>.b-layout-loading{z-index:9999;position:fixed;width:100%;height:100%;background:rgba(0,0,0,.3)}.b-layout>.b-layout-loading:before{animation:1s linear infinite spinner;border:solid 3px #eee;border-bottom-color:var(--b-theme-primary);border-radius:50%;height:40px;left:50%;position:absolute;top:50%;transform:translate3d(-50%,-50%,0);width:40px;content:" "}.b-layout.b-layout-has-sider{flex-direction:row;min-height:0}.b-layout.b-layout-has-sider .b-layout{overflow-x:hidden}.b-layout-header,.b-layout-footer{flex:0 0 auto}.b-layout-header{color:rgba(0,0,0,.65)}.b-layout.b-layout-root.b-layout-has-sider>.b-layout-header-fixed,.b-layout.b-layout-root.b-layout-has-sider>.b-layout>.b-layout-header-fixed{position:sticky;top:0;width:100%;flex:0}.b-layout.b-layout-root:not(.b-layout-has-sider) .b-layout-header-fixed,.b-layout.b-layout-root:not(.b-layout-has-sider)>.b-layout .b-layout-header-fixed{position:fixed;top:0;left:0;right:0;flex:0}.b-layout.b-layout-root:not(.b-layout-has-sider) .b-layout-header-fixed+.b-layout-content,.b-layout.b-layout-root:not(.b-layout-has-sider)>.b-layout .b-layout-header-fixed+.b-layout-content{margin-top:var(--b-bar-horizontal-height,auto)}.b-layout.b-layout-root>.b-layout-header.b-layout-header-fixed+.b-layout.b-layout-has-sider{margin-top:var(--b-bar-horizontal-height,auto)}.b-layout-footer{color:rgba(0,0,0,.65)}.b-layout-footer-fixed{position:sticky;z-index:1;bottom:0;flex:0}.b-layout-content{flex:1}.b-layout-sider{display:flex;position:relative;background:#001529}.b-layout-sider-content{position:sticky;top:0;z-index:2}.b-layout-header .navbar{line-height:inherit}.b-bar-horizontal[data-collapse=hide]{flex-wrap:nowrap}.b-bar-horizontal[data-collapse=hide][data-broken=true]{height:auto}.b-bar-horizontal[data-broken=false]{height:auto}.b-layout>.b-layout-header .b-bar-horizontal[data-collapse=hide][data-broken=true]{height:var(--b-bar-horizontal-height,auto)}.b-layout>.b-layout-header .b-bar-horizontal[data-broken=false]{height:var(--b-bar-horizontal-height,auto)}.b-bar-initial{display:none!important}.b-bar-vertical-inline,.b-bar-vertical-popout,.b-bar-vertical-small{display:flex;flex-direction:column;flex-wrap:nowrap;position:sticky;top:0;padding:0;min-width:var(--b-vertical-bar-width,230px);max-width:var(--b-vertical-bar-width,230px);width:var(--b-vertical-bar-width,230px);box-shadow:2px 0 6px rgba(0,21,41,.35);height:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.b-bar-vertical-inline:not(.b-bar-initial),.b-bar-vertical-popout:not(.b-bar-initial),.b-bar-vertical-small:not(.b-bar-initial){transition:width 200ms ease-in-out,min-width 200ms ease-in-out}.b-bar-vertical-inline .b-bar-menu,.b-bar-vertical-popout .b-bar-menu,.b-bar-vertical-small .b-bar-menu{width:100%;display:flex;flex:1;justify-content:space-between;flex-direction:column;align-self:stretch}.b-bar-vertical-inline .b-bar-brand,.b-bar-vertical-popout .b-bar-brand,.b-bar-vertical-small .b-bar-brand{width:100%;display:flex;height:var(--b-vertical-bar-brand-height,64px);min-height:var(--b-vertical-bar-brand-height,64px)}.b-bar-vertical-inline .b-bar-toggler-inline,.b-bar-vertical-popout .b-bar-toggler-inline,.b-bar-vertical-small .b-bar-toggler-inline{height:var(--b-vertical-bar-brand-height,64px);padding:12px;display:inline-flex;cursor:pointer;position:absolute;right:0}.b-bar-vertical-inline .b-bar-toggler-inline>*,.b-bar-vertical-popout .b-bar-toggler-inline>*,.b-bar-vertical-small .b-bar-toggler-inline>*{margin:auto}.b-bar-vertical-inline .b-bar-toggler-popout:not(.b-bar-mobile-toggle),.b-bar-vertical-popout .b-bar-toggler-popout:not(.b-bar-mobile-toggle),.b-bar-vertical-small .b-bar-toggler-popout:not(.b-bar-mobile-toggle){display:flex;position:fixed;left:var(--b-vertical-bar-width,230px);border-radius:0 10px 10px 0;border:0;width:10px;height:40px;padding:5px;align-items:center;box-shadow:2px 0 6px rgba(0,21,41,.35);cursor:pointer}.b-bar-vertical-inline .b-bar-toggler-popout:not(.b-bar-mobile-toggle):not(.b-bar-initial),.b-bar-vertical-popout .b-bar-toggler-popout:not(.b-bar-mobile-toggle):not(.b-bar-initial),.b-bar-vertical-small .b-bar-toggler-popout:not(.b-bar-mobile-toggle):not(.b-bar-initial){transition:width 200ms ease-in-out,left 200ms ease-in-out}.b-bar-vertical-inline .b-bar-toggler-popout:not(.b-bar-mobile-toggle)>*,.b-bar-vertical-popout .b-bar-toggler-popout:not(.b-bar-mobile-toggle)>*,.b-bar-vertical-small .b-bar-toggler-popout:not(.b-bar-mobile-toggle)>*{margin:auto;display:none}.b-bar-vertical-inline .b-bar-toggler-popout:not(.b-bar-mobile-toggle):hover,.b-bar-vertical-popout .b-bar-toggler-popout:not(.b-bar-mobile-toggle):hover,.b-bar-vertical-small .b-bar-toggler-popout:not(.b-bar-mobile-toggle):hover{width:45px}.b-bar-vertical-inline .b-bar-toggler-popout:not(.b-bar-mobile-toggle):hover>*,.b-bar-vertical-popout .b-bar-toggler-popout:not(.b-bar-mobile-toggle):hover>*,.b-bar-vertical-small .b-bar-toggler-popout:not(.b-bar-mobile-toggle):hover>*{display:block}.b-bar-vertical-inline .b-bar-item,.b-bar-vertical-popout .b-bar-item,.b-bar-vertical-small .b-bar-item{margin:auto;flex-grow:1;min-height:40px}.b-bar-vertical-inline .b-bar-item .b-bar-icon,.b-bar-vertical-popout .b-bar-item .b-bar-icon,.b-bar-vertical-small .b-bar-item .b-bar-icon{font-size:1.25rem;vertical-align:middle;margin:3px;display:inline-block}.b-bar-vertical-inline .b-bar-start,.b-bar-vertical-popout .b-bar-start,.b-bar-vertical-small .b-bar-start{width:100%;display:block}.b-bar-vertical-inline .b-bar-end,.b-bar-vertical-popout .b-bar-end,.b-bar-vertical-small .b-bar-end{padding-bottom:1rem;width:100%;padding-top:1rem;display:block}.b-bar-vertical-inline .b-bar-end .b-bar-dropdown,.b-bar-vertical-popout .b-bar-end .b-bar-dropdown,.b-bar-vertical-small .b-bar-end .b-bar-dropdown{position:relative}.b-bar-vertical-inline .b-bar-end .b-bar-dropdown-menu-container,.b-bar-vertical-popout .b-bar-end .b-bar-dropdown-menu-container,.b-bar-vertical-small .b-bar-end .b-bar-dropdown-menu-container{bottom:0}.b-bar-vertical-inline .b-bar-link,.b-bar-vertical-popout .b-bar-link,.b-bar-vertical-small .b-bar-link{display:block;width:100%;text-decoration:none;padding:.5rem .5rem .5rem 1.5rem;cursor:pointer;overflow-x:hidden;line-height:1.5rem;vertical-align:middle;transition:font-size 150ms ease-in}.b-bar-vertical-inline .b-bar-label,.b-bar-vertical-popout .b-bar-label,.b-bar-vertical-small .b-bar-label{background:transparent;color:#adb5bd;padding:.375rem 1.25rem;font-size:.75rem;text-overflow:ellipsis;overflow-x:hidden}.b-bar-vertical-inline .b-bar-dropdown .b-bar-dropdown-toggle:before,.b-bar-vertical-popout .b-bar-dropdown .b-bar-dropdown-toggle:before,.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-toggle:before{content:" ";border:solid;border-width:0 2px 2px 0;display:inline-block;padding:2px;right:1rem;transition:transform 200ms ease-out;float:right;position:relative;-webkit-transform:rotate(225deg);transform:rotate(225deg);top:.7rem}.b-bar-vertical-inline .b-bar-dropdown:not([data-visible=true]) .b-bar-dropdown-toggle:before,.b-bar-vertical-popout .b-bar-dropdown:not([data-visible=true]) .b-bar-dropdown-toggle:before,.b-bar-vertical-small .b-bar-dropdown:not([data-visible=true]) .b-bar-dropdown-toggle:before{-webkit-transform:rotate(45deg);transform:rotate(45deg);top:.5rem}.b-bar-vertical-inline .b-bar-dropdown .b-bar-dropdown-menu,.b-bar-vertical-popout .b-bar-dropdown .b-bar-dropdown-menu,.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-menu{display:none;background:inherit;color:inherit;float:none;padding:5px 0}.b-bar-vertical-inline .b-bar-dropdown .b-bar-dropdown-menu[data-visible=true],.b-bar-vertical-popout .b-bar-dropdown .b-bar-dropdown-menu[data-visible=true],.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-menu[data-visible=true]{display:block}.b-bar-vertical-inline .b-bar-dropdown .b-bar-dropdown-menu .b-bar-dropdown-item,.b-bar-vertical-popout .b-bar-dropdown .b-bar-dropdown-menu .b-bar-dropdown-item,.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-menu .b-bar-dropdown-item{position:relative;color:inherit;transition:background 100ms ease-in-out,color 100ms ease-in-out;text-decoration:none;display:block;width:100%;overflow-x:hidden}.b-bar-vertical-inline .b-bar-dropdown .b-bar-dropdown-menu .b-bar-dropdown-item i,.b-bar-vertical-popout .b-bar-dropdown .b-bar-dropdown-menu .b-bar-dropdown-item i,.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-menu .b-bar-dropdown-item i{margin-right:.3rem}.b-bar-vertical-inline .b-bar-dropdown .b-bar-dropdown-menu:before,.b-bar-vertical-popout .b-bar-dropdown .b-bar-dropdown-menu:before,.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-menu:before{background:inherit;box-shadow:none}.b-bar-vertical-inline .b-bar-mobile-toggle,.b-bar-vertical-popout .b-bar-mobile-toggle,.b-bar-vertical-small .b-bar-mobile-toggle{right:20px;margin:auto;display:none}.b-bar-vertical-inline .b-bar-item-multi-line,.b-bar-vertical-popout .b-bar-item-multi-line,.b-bar-vertical-small .b-bar-item-multi-line{display:-webkit-box!important;-webkit-box-orient:vertical;-webkit-line-clamp:var(--b-bar-item-lines,2);white-space:normal!important;overflow:hidden;text-overflow:ellipsis}.b-bar-vertical-inline.b-bar-dark,.b-bar-vertical-popout.b-bar-dark,.b-bar-vertical-small.b-bar-dark{background:var(--b-bar-dark-background,#001529);color:var(--b-bar-dark-color,rgba(255,255,255,.5))}.b-bar-vertical-inline.b-bar-dark .b-bar-brand,.b-bar-vertical-popout.b-bar-dark .b-bar-brand,.b-bar-vertical-small.b-bar-dark .b-bar-brand{background:var(--b-bar-brand-dark-background,rgba(255,255,255,.025))}.b-bar-vertical-inline.b-bar-dark .b-bar-brand .b-bar-link,.b-bar-vertical-popout.b-bar-dark .b-bar-brand .b-bar-link,.b-bar-vertical-small.b-bar-dark .b-bar-brand .b-bar-link{color:#fff}.b-bar-vertical-inline.b-bar-dark .b-bar-brand .b-bar-link.active,.b-bar-vertical-popout.b-bar-dark .b-bar-brand .b-bar-link.active,.b-bar-vertical-small.b-bar-dark .b-bar-brand .b-bar-link.active{color:#fff;background:inherit}.b-bar-vertical-inline.b-bar-dark .b-bar-brand .b-bar-link:hover,.b-bar-vertical-popout.b-bar-dark .b-bar-brand .b-bar-link:hover,.b-bar-vertical-small.b-bar-dark .b-bar-brand .b-bar-link:hover{color:#fff;background:inherit}.b-bar-vertical-inline.b-bar-dark .b-bar-toggler-popout:not(.b-bar-mobile-toggle),.b-bar-vertical-popout.b-bar-dark .b-bar-toggler-popout:not(.b-bar-mobile-toggle),.b-bar-vertical-small.b-bar-dark .b-bar-toggler-popout:not(.b-bar-mobile-toggle){background:var(--b-bar-dark-background,#001529);color:var(--b-bar-dark-color,rgba(255,255,255,.5))}.b-bar-vertical-inline.b-bar-dark .b-bar-dropdown-menu,.b-bar-vertical-popout.b-bar-dark .b-bar-dropdown-menu,.b-bar-vertical-small.b-bar-dark .b-bar-dropdown-menu{background:var(--b-bar-dropdown-dark-background,#000c17)}.b-bar-vertical-inline.b-bar-dark .b-bar-dropdown-menu .b-bar-dropdown-item.active,.b-bar-vertical-popout.b-bar-dark .b-bar-dropdown-menu .b-bar-dropdown-item.active,.b-bar-vertical-small.b-bar-dark .b-bar-dropdown-menu .b-bar-dropdown-item.active{color:var(--b-bar-item-dark-active-color,#fff);background:var(--b-bar-item-dark-active-background,#0288d1)}.b-bar-vertical-inline.b-bar-dark .b-bar-dropdown-menu .b-bar-dropdown-item:hover,.b-bar-vertical-popout.b-bar-dark .b-bar-dropdown-menu .b-bar-dropdown-item:hover,.b-bar-vertical-small.b-bar-dark .b-bar-dropdown-menu .b-bar-dropdown-item:hover{color:var(--b-bar-item-dark-hover-color,#fff);background:var(--b-bar-item-dark-hover-background,rgba(255,255,255,.3))}.b-bar-vertical-inline.b-bar-dark .b-bar-link,.b-bar-vertical-popout.b-bar-dark .b-bar-link,.b-bar-vertical-small.b-bar-dark .b-bar-link{color:inherit}.b-bar-vertical-inline.b-bar-dark .b-bar-link.active,.b-bar-vertical-popout.b-bar-dark .b-bar-link.active,.b-bar-vertical-small.b-bar-dark .b-bar-link.active{color:var(--b-bar-item-dark-active-color,#fff);background:var(--b-bar-item-dark-active-background,#0288d1)}.b-bar-vertical-inline.b-bar-dark .b-bar-link:hover,.b-bar-vertical-popout.b-bar-dark .b-bar-link:hover,.b-bar-vertical-small.b-bar-dark .b-bar-link:hover{color:var(--b-bar-item-dark-hover-color,#fff);background:var(--b-bar-item-dark-hover-background,rgba(255,255,255,.3))}.b-bar-vertical-inline.b-bar-light,.b-bar-vertical-popout.b-bar-light,.b-bar-vertical-small.b-bar-light{background:var(--b-bar-light-background,#fff);color:var(--b-bar-light-color,rgba(0,0,0,.7))}.b-bar-vertical-inline.b-bar-light .b-bar-brand,.b-bar-vertical-popout.b-bar-light .b-bar-brand,.b-bar-vertical-small.b-bar-light .b-bar-brand{background:var(--b-bar-brand-light-background,rgba(0,0,0,.025))}.b-bar-vertical-inline.b-bar-light .b-bar-brand .b-bar-link,.b-bar-vertical-popout.b-bar-light .b-bar-brand .b-bar-link,.b-bar-vertical-small.b-bar-light .b-bar-brand .b-bar-link{color:#000}.b-bar-vertical-inline.b-bar-light .b-bar-brand .b-bar-link.active,.b-bar-vertical-popout.b-bar-light .b-bar-brand .b-bar-link.active,.b-bar-vertical-small.b-bar-light .b-bar-brand .b-bar-link.active{background:inherit}.b-bar-vertical-inline.b-bar-light .b-bar-brand .b-bar-link:hover,.b-bar-vertical-popout.b-bar-light .b-bar-brand .b-bar-link:hover,.b-bar-vertical-small.b-bar-light .b-bar-brand .b-bar-link:hover{background:inherit}.b-bar-vertical-inline.b-bar-light .b-bar-toggler-popout:not(.b-bar-mobile-toggle),.b-bar-vertical-popout.b-bar-light .b-bar-toggler-popout:not(.b-bar-mobile-toggle),.b-bar-vertical-small.b-bar-light .b-bar-toggler-popout:not(.b-bar-mobile-toggle){background:var(--b-bar-brand-light-background,#fff);color:var(--b-bar-light-color,rgba(0,0,0,.7))}.b-bar-vertical-inline.b-bar-light .b-bar-dropdown-menu,.b-bar-vertical-popout.b-bar-light .b-bar-dropdown-menu,.b-bar-vertical-small.b-bar-light .b-bar-dropdown-menu{background:var(--b-bar-dropdown-light-background,#f2f2f2)}.b-bar-vertical-inline.b-bar-light .b-bar-dropdown-menu .b-bar-dropdown-item.active,.b-bar-vertical-popout.b-bar-light .b-bar-dropdown-menu .b-bar-dropdown-item.active,.b-bar-vertical-small.b-bar-light .b-bar-dropdown-menu .b-bar-dropdown-item.active{color:var(--b-bar-item-light-active-color,#000);background:var(--b-bar-item-light-active-background,#0288d1)}.b-bar-vertical-inline.b-bar-light .b-bar-dropdown-menu .b-bar-dropdown-item:hover,.b-bar-vertical-popout.b-bar-light .b-bar-dropdown-menu .b-bar-dropdown-item:hover,.b-bar-vertical-small.b-bar-light .b-bar-dropdown-menu .b-bar-dropdown-item:hover{color:var(--b-bar-item-light-hover-color,#000);background:var(--b-bar-item-light-hover-background,rgba(0,0,0,.3))}.b-bar-vertical-inline.b-bar-light .b-bar-link,.b-bar-vertical-popout.b-bar-light .b-bar-link,.b-bar-vertical-small.b-bar-light .b-bar-link{color:inherit}.b-bar-vertical-inline.b-bar-light .b-bar-link.active,.b-bar-vertical-popout.b-bar-light .b-bar-link.active,.b-bar-vertical-small.b-bar-light .b-bar-link.active{color:var(--b-bar-item-light-active-color,#000);background:var(--b-bar-item-light-active-background,#0288d1)}.b-bar-vertical-inline.b-bar-light .b-bar-link:hover,.b-bar-vertical-popout.b-bar-light .b-bar-link:hover,.b-bar-vertical-small.b-bar-light .b-bar-link:hover{color:var(--b-bar-item-light-hover-color,#000);background:var(--b-bar-item-light-hover-background,rgba(0,0,0,.3))}.b-bar-vertical-small,.b-bar-vertical-inline[data-collapse=small],.b-bar-vertical-popout[data-collapse=small]{width:var(--b-vertical-bar-small-width,64px);min-width:var(--b-vertical-bar-small-width,64px)}.b-bar-vertical-small:not(.b-bar-initial),.b-bar-vertical-inline[data-collapse=small]:not(.b-bar-initial),.b-bar-vertical-popout[data-collapse=small]:not(.b-bar-initial){transition:width 200ms ease-in-out,min-width 200ms ease-in-out}.b-bar-vertical-small .b-bar-toggler-inline,.b-bar-vertical-inline[data-collapse=small] .b-bar-toggler-inline,.b-bar-vertical-popout[data-collapse=small] .b-bar-toggler-inline{position:relative;width:100%}.b-bar-vertical-small .b-bar-toggler-popout:not(.b-bar-mobile-toggle),.b-bar-vertical-inline[data-collapse=small] .b-bar-toggler-popout:not(.b-bar-mobile-toggle),.b-bar-vertical-popout[data-collapse=small] .b-bar-toggler-popout:not(.b-bar-mobile-toggle){left:var(--b-vertical-bar-small-width,64px)}.b-bar-vertical-small .b-bar-item>.b-bar-dropdown>.b-bar-dropdown-toggle:before,.b-bar-vertical-inline[data-collapse=small] .b-bar-item>.b-bar-dropdown>.b-bar-dropdown-toggle:before,.b-bar-vertical-popout[data-collapse=small] .b-bar-item>.b-bar-dropdown>.b-bar-dropdown-toggle:before{display:none}.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-menu-container,.b-bar-vertical-inline[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container,.b-bar-vertical-popout[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container{z-index:100;max-height:50vh;position:absolute!important;margin:-42px 5px 0 5px;display:flex;width:var(--b-vertical-bar-popout-menu-width,180px);left:var(--b-vertical-bar-small-width,64px)}.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-menu-container.b-bar-right,.b-bar-vertical-inline[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container.b-bar-right,.b-bar-vertical-popout[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container.b-bar-right{right:var(--b-vertical-bar-small-width,64px);left:unset}.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu,.b-bar-vertical-inline[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu,.b-bar-vertical-popout[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu{box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05);border-radius:3px;overflow-y:auto;overflow-x:hidden;flex:1 100%}.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu .b-bar-dropdown-item,.b-bar-vertical-inline[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu .b-bar-dropdown-item,.b-bar-vertical-popout[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu .b-bar-dropdown-item{padding:.5rem .5rem .5rem 1.5rem}.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu:before,.b-bar-vertical-inline[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu:before,.b-bar-vertical-popout[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu:before{position:absolute;top:0;left:-7px;right:0;bottom:0;width:100%;height:100%;opacity:.0001;content:" ";z-index:-1}.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu.b-bar-right:before,.b-bar-vertical-inline[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu.b-bar-right:before,.b-bar-vertical-popout[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu.b-bar-right:before{left:unset;right:-7px}.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu>.b-bar-dropdown .b-bar-dropdown-menu-container,.b-bar-vertical-inline[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu>.b-bar-dropdown .b-bar-dropdown-menu-container,.b-bar-vertical-popout[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu>.b-bar-dropdown .b-bar-dropdown-menu-container{left:var(--b-vertical-bar-popout-menu-width,180px)}.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu>.b-bar-dropdown .b-bar-dropdown-menu-container.b-bar-right,.b-bar-vertical-inline[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu>.b-bar-dropdown .b-bar-dropdown-menu-container.b-bar-right,.b-bar-vertical-popout[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu>.b-bar-dropdown .b-bar-dropdown-menu-container.b-bar-right{right:var(--b-vertical-bar-popout-menu-width,180px)}.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu>.b-bar-dropdown .b-bar-dropdown-toggle:before,.b-bar-vertical-inline[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu>.b-bar-dropdown .b-bar-dropdown-toggle:before,.b-bar-vertical-popout[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu>.b-bar-dropdown .b-bar-dropdown-toggle:before{content:" ";border:solid;border-width:0 2px 2px 0;display:inline-block;padding:2px;right:1rem;transition:transform 200ms ease-out;float:right;position:relative;-webkit-transform:rotate(135deg);transform:rotate(135deg);right:.8rem}.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu>.b-bar-dropdown:not([data-visible=true]) .b-bar-dropdown-toggle:before,.b-bar-vertical-inline[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu>.b-bar-dropdown:not([data-visible=true]) .b-bar-dropdown-toggle:before,.b-bar-vertical-popout[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu>.b-bar-dropdown:not([data-visible=true]) .b-bar-dropdown-toggle:before{-webkit-transform:rotate(315deg);transform:rotate(315deg)}@keyframes b-bar-link-small{to{text-align:center;padding-left:0;padding-right:0}}.b-bar-vertical-small .b-bar-item>.b-bar-link,.b-bar-vertical-small .b-bar-item>.b-bar-dropdown>.b-bar-link,.b-bar-vertical-inline[data-collapse=small] .b-bar-item>.b-bar-link,.b-bar-vertical-inline[data-collapse=small] .b-bar-item>.b-bar-dropdown>.b-bar-link,.b-bar-vertical-popout[data-collapse=small] .b-bar-item>.b-bar-link,.b-bar-vertical-popout[data-collapse=small] .b-bar-item>.b-bar-dropdown>.b-bar-link{animation:b-bar-link-small forwards;animation-delay:170ms;font-size:0;transition:font-size 100ms ease-out}.b-bar-vertical-small .b-bar-item>.b-bar-link:after,.b-bar-vertical-small .b-bar-item>.b-bar-dropdown>.b-bar-link:after,.b-bar-vertical-inline[data-collapse=small] .b-bar-item>.b-bar-link:after,.b-bar-vertical-inline[data-collapse=small] .b-bar-item>.b-bar-dropdown>.b-bar-link:after,.b-bar-vertical-popout[data-collapse=small] .b-bar-item>.b-bar-link:after,.b-bar-vertical-popout[data-collapse=small] .b-bar-item>.b-bar-dropdown>.b-bar-link:after{display:none}.b-bar-vertical-small .b-bar-label,.b-bar-vertical-inline[data-collapse=small] .b-bar-label,.b-bar-vertical-popout[data-collapse=small] .b-bar-label{text-align:center}.b-bar-vertical-inline:not([data-collapse]){overflow-y:auto;overflow-x:hidden}.b-bar-vertical-inline:not([data-collapse]) .b-bar-dropdown .b-bar-dropdown-menu-container{position:relative}.b-bar-vertical-inline:not([data-collapse]) .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu{position:relative!important;border:0;border-radius:0;box-shadow:none}.b-bar-vertical-inline:not([data-collapse]) .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu .b-bar-dropdown-item{padding:.5rem .5rem .5rem 3rem}.b-bar-vertical-inline:not([data-collapse]) .b-bar-brand .b-bar-link{display:flex;align-items:center}.b-bar-vertical-popout:not([data-collapse]) .b-bar-dropdown .b-bar-dropdown-toggle:before{content:" ";border:solid;border-width:0 2px 2px 0;display:inline-block;padding:2px;right:1rem;transition:transform 200ms ease-out;float:right;position:relative;-webkit-transform:rotate(135deg);transform:rotate(135deg);right:.8rem}.b-bar-vertical-popout:not([data-collapse]) .b-bar-dropdown:not([data-visible=true]) .b-bar-dropdown-toggle:before{-webkit-transform:rotate(315deg);transform:rotate(315deg)}.b-bar-vertical-popout:not([data-collapse]) .b-bar-dropdown .b-bar-dropdown-menu-container{z-index:100;max-height:50vh;position:absolute!important;margin:-42px 5px 0 5px;display:flex;width:var(--b-vertical-bar-popout-menu-width,180px);left:var(--b-vertical-bar-width,230px)}.b-bar-vertical-popout:not([data-collapse]) .b-bar-dropdown .b-bar-dropdown-menu-container.b-bar-right{right:var(--b-vertical-bar-width,230px);left:unset}.b-bar-vertical-popout:not([data-collapse]) .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu{box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05);border-radius:3px;overflow-y:auto;overflow-x:hidden;flex:1 100%}.b-bar-vertical-popout:not([data-collapse]) .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu .b-bar-dropdown-item{padding:.5rem .5rem .5rem 1.5rem}.b-bar-vertical-popout:not([data-collapse]) .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu:before{position:absolute;top:0;left:-7px;right:0;bottom:0;width:100%;height:100%;opacity:.0001;content:" ";z-index:-1}.b-bar-vertical-popout:not([data-collapse]) .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu.b-bar-right:before{left:unset;right:-7px}.b-bar-vertical-popout:not([data-collapse]) .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu>.b-bar-dropdown .b-bar-dropdown-menu-container{left:var(--b-vertical-bar-popout-menu-width,180px)}.b-bar-vertical-popout:not([data-collapse]) .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu>.b-bar-dropdown .b-bar-dropdown-menu-container.b-bar-right{right:var(--b-vertical-bar-popout-menu-width,180px)}.b-bar-vertical-inline[data-collapse=hide],.b-bar-vertical-popout[data-collapse=hide],.b-bar-vertical-small[data-collapse=hide]{width:0;min-width:0;overflow-y:hidden;visibility:hidden}.b-bar-vertical-inline[data-collapse=hide]:not(.b-bar-initial),.b-bar-vertical-popout[data-collapse=hide]:not(.b-bar-initial),.b-bar-vertical-small[data-collapse=hide]:not(.b-bar-initial){transition:width 200ms ease-in-out,min-width 200ms ease-in-out,visibility 100ms}.b-bar-vertical-inline[data-collapse=hide] .b-bar-toggler-inline,.b-bar-vertical-popout[data-collapse=hide] .b-bar-toggler-inline,.b-bar-vertical-small[data-collapse=hide] .b-bar-toggler-inline{display:none}.b-bar-vertical-inline[data-collapse=hide] .b-bar-toggler-popout:not(.b-bar-mobile-toggle),.b-bar-vertical-popout[data-collapse=hide] .b-bar-toggler-popout:not(.b-bar-mobile-toggle),.b-bar-vertical-small[data-collapse=hide] .b-bar-toggler-popout:not(.b-bar-mobile-toggle){visibility:visible;left:0}@media only screen and (max-width:576px){.b-bar-vertical-inline:not([data-collapse]){min-width:100vw}.b-bar-vertical-inline:not([data-collapse]) .b-bar-toggler-inline:not(.b-bar-mobile-toggle){display:none}.b-bar-vertical-inline:not([data-collapse]) .b-bar-toggler-popout:not(.b-bar-mobile-toggle){left:100vw}.b-bar-vertical-inline:not([data-collapse]) .b-bar-mobile-toggle{display:flex}}.b-table.table{position:relative}.b-table.table .b-table-resizer{position:absolute;top:0;right:0;width:5px;cursor:col-resize;user-select:none;z-index:1}.b-table.table .b-table-resizer:hover,.b-table.table .b-table-resizing{cursor:col-resize!important;border-right:2px solid var(--b-theme-primary,#00f)}.b-table.table .b-table-resizing{cursor:col-resize!important}thead tr th{position:relative}.b-character-casing-lower{text-transform:lowercase}.b-character-casing-upper{text-transform:uppercase}.b-character-casing-title{text-transform:lowercase}.b-character-casing-title::first-letter {text-transform:uppercase}.flatpickr-calendar{background:transparent;opacity:0;display:none;text-align:center;visibility:hidden;padding:0;-webkit-animation:none;animation:none;direction:ltr;border:0;font-size:14px;line-height:24px;border-radius:5px;position:absolute;width:307.875px;-webkit-box-sizing:border-box;box-sizing:border-box;-ms-touch-action:manipulation;touch-action:manipulation;background:#fff;-webkit-box-shadow:1px 0 0 #e6e6e6,-1px 0 0 #e6e6e6,0 1px 0 #e6e6e6,0 -1px 0 #e6e6e6,0 3px 13px rgba(0,0,0,.08);box-shadow:1px 0 0 #e6e6e6,-1px 0 0 #e6e6e6,0 1px 0 #e6e6e6,0 -1px 0 #e6e6e6,0 3px 13px rgba(0,0,0,.08)}.flatpickr-calendar.open,.flatpickr-calendar.inline{opacity:1;max-height:640px;visibility:visible}.flatpickr-calendar.open{display:inline-block;z-index:99999}.flatpickr-calendar.animate.open{-webkit-animation:fpFadeInDown 300ms cubic-bezier(.23,1,.32,1);animation:fpFadeInDown 300ms cubic-bezier(.23,1,.32,1)}.flatpickr-calendar.inline{display:block;position:relative;top:2px}.flatpickr-calendar.static{position:absolute;top:calc(100% + 2px)}.flatpickr-calendar.static.open{z-index:999;display:block}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7){-webkit-box-shadow:none!important;box-shadow:none!important}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1){-webkit-box-shadow:-2px 0 0 #e6e6e6,5px 0 0 #e6e6e6;box-shadow:-2px 0 0 #e6e6e6,5px 0 0 #e6e6e6}.flatpickr-calendar .hasWeeks .dayContainer,.flatpickr-calendar .hasTime .dayContainer{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.flatpickr-calendar .hasWeeks .dayContainer{border-left:0}.flatpickr-calendar.hasTime .flatpickr-time{height:40px;border-top:1px solid #e6e6e6}.flatpickr-calendar.noCalendar.hasTime .flatpickr-time{height:auto}.flatpickr-calendar:before,.flatpickr-calendar:after{position:absolute;display:block;pointer-events:none;border:solid transparent;content:"";height:0;width:0;left:22px}.flatpickr-calendar.rightMost:before,.flatpickr-calendar.arrowRight:before,.flatpickr-calendar.rightMost:after,.flatpickr-calendar.arrowRight:after{left:auto;right:22px}.flatpickr-calendar.arrowCenter:before,.flatpickr-calendar.arrowCenter:after{left:50%;right:50%}.flatpickr-calendar:before{border-width:5px;margin:0 -5px}.flatpickr-calendar:after{border-width:4px;margin:0 -4px}.flatpickr-calendar.arrowTop:before,.flatpickr-calendar.arrowTop:after{bottom:100%}.flatpickr-calendar.arrowTop:before{border-bottom-color:#e6e6e6}.flatpickr-calendar.arrowTop:after{border-bottom-color:#fff}.flatpickr-calendar.arrowBottom:before,.flatpickr-calendar.arrowBottom:after{top:100%}.flatpickr-calendar.arrowBottom:before{border-top-color:#e6e6e6}.flatpickr-calendar.arrowBottom:after{border-top-color:#fff}.flatpickr-calendar:focus{outline:0}.flatpickr-wrapper{position:relative;display:contents}.flatpickr-months{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.flatpickr-months .flatpickr-month{background:transparent;color:rgba(0,0,0,.9);fill:rgba(0,0,0,.9);height:34px;line-height:1;text-align:center;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:hidden;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}.flatpickr-months .flatpickr-prev-month,.flatpickr-months .flatpickr-next-month{text-decoration:none;cursor:pointer;position:absolute;top:0;height:34px;padding:10px;z-index:3;color:rgba(0,0,0,.9);fill:rgba(0,0,0,.9)}.flatpickr-months .flatpickr-prev-month.flatpickr-disabled,.flatpickr-months .flatpickr-next-month.flatpickr-disabled{display:none}.flatpickr-months .flatpickr-prev-month i,.flatpickr-months .flatpickr-next-month i{position:relative}.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month,.flatpickr-months .flatpickr-next-month.flatpickr-prev-month{left:0}.flatpickr-months .flatpickr-prev-month.flatpickr-next-month,.flatpickr-months .flatpickr-next-month.flatpickr-next-month{right:0}.flatpickr-months .flatpickr-prev-month:hover,.flatpickr-months .flatpickr-next-month:hover{color:#959ea9}.flatpickr-months .flatpickr-prev-month:hover svg,.flatpickr-months .flatpickr-next-month:hover svg{fill:#f64747}.flatpickr-months .flatpickr-prev-month svg,.flatpickr-months .flatpickr-next-month svg{width:14px;height:14px}.flatpickr-months .flatpickr-prev-month svg path,.flatpickr-months .flatpickr-next-month svg path{-webkit-transition:fill .1s;transition:fill .1s;fill:inherit}.numInputWrapper{position:relative;height:auto}.numInputWrapper input,.numInputWrapper span{display:inline-block}.numInputWrapper input{width:100%}.numInputWrapper input::-ms-clear{display:none}.numInputWrapper input::-webkit-outer-spin-button,.numInputWrapper input::-webkit-inner-spin-button{margin:0;-webkit-appearance:none}.numInputWrapper span{position:absolute;right:0;width:14px;padding:0 4px 0 2px;height:50%;line-height:50%;opacity:0;cursor:pointer;border:1px solid rgba(57,57,57,.15);-webkit-box-sizing:border-box;box-sizing:border-box}.numInputWrapper span:hover{background:rgba(0,0,0,.1)}.numInputWrapper span:active{background:rgba(0,0,0,.2)}.numInputWrapper span:after{display:block;content:"";position:absolute}.numInputWrapper span.arrowUp{top:0;border-bottom:0}.numInputWrapper span.arrowUp:after{border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:4px solid rgba(57,57,57,.6);top:26%}.numInputWrapper span.arrowDown{top:50%}.numInputWrapper span.arrowDown:after{border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid rgba(57,57,57,.6);top:40%}.numInputWrapper span svg{width:inherit;height:auto}.numInputWrapper span svg path{fill:rgba(0,0,0,.5)}.numInputWrapper:hover{background:rgba(0,0,0,.05)}.numInputWrapper:hover span{opacity:1}.flatpickr-current-month{font-size:135%;line-height:inherit;font-weight:300;color:inherit;position:absolute;width:75%;left:12.5%;padding:7.48px 0 0 0;line-height:1;height:34px;display:inline-block;text-align:center;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.flatpickr-current-month span.cur-month{font-family:inherit;font-weight:700;color:inherit;display:inline-block;margin-left:.5ch;padding:0}.flatpickr-current-month span.cur-month:hover{background:rgba(0,0,0,.05)}.flatpickr-current-month .numInputWrapper{width:6ch;width:7ch\0;display:inline-block}.flatpickr-current-month .numInputWrapper span.arrowUp:after{border-bottom-color:rgba(0,0,0,.9)}.flatpickr-current-month .numInputWrapper span.arrowDown:after{border-top-color:rgba(0,0,0,.9)}.flatpickr-current-month input.cur-year{background:transparent;-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;cursor:text;padding:0 0 0 .5ch;margin:0;display:inline-block;font-size:inherit;font-family:inherit;font-weight:300;line-height:inherit;height:auto;border:0;border-radius:0;vertical-align:initial;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.flatpickr-current-month input.cur-year:focus{outline:0}.flatpickr-current-month input.cur-year[disabled],.flatpickr-current-month input.cur-year[disabled]:hover{font-size:100%;color:rgba(0,0,0,.5);background:transparent;pointer-events:none}.flatpickr-current-month .flatpickr-monthDropdown-months{appearance:menulist;background:transparent;border:0;border-radius:0;box-sizing:border-box;color:inherit;cursor:pointer;font-size:inherit;font-family:inherit;font-weight:300;height:auto;line-height:inherit;margin:-1px 0 0 0;outline:0;padding:0 0 0 .5ch;position:relative;vertical-align:initial;-webkit-box-sizing:border-box;-webkit-appearance:menulist;-moz-appearance:menulist;width:auto}.flatpickr-current-month .flatpickr-monthDropdown-months:focus,.flatpickr-current-month .flatpickr-monthDropdown-months:active{outline:0}.flatpickr-current-month .flatpickr-monthDropdown-months:hover{background:rgba(0,0,0,.05)}.flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month{background-color:transparent;outline:0;padding:0}.flatpickr-weekdays{background:transparent;text-align:center;overflow:hidden;width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;height:28px}.flatpickr-weekdays .flatpickr-weekdaycontainer{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}span.flatpickr-weekday{cursor:default;font-size:90%;background:transparent;color:rgba(0,0,0,.54);line-height:1;margin:0;text-align:center;display:block;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;font-weight:bolder}.dayContainer,.flatpickr-weeks{padding:1px 0 0 0}.flatpickr-days{position:relative;overflow:hidden;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;width:307.875px}.flatpickr-days:focus{outline:0}.dayContainer{padding:0;outline:0;text-align:left;width:307.875px;min-width:307.875px;max-width:307.875px;-webkit-box-sizing:border-box;box-sizing:border-box;display:inline-block;display:-ms-flexbox;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-wrap:wrap;-ms-flex-pack:justify;-webkit-justify-content:space-around;justify-content:space-around;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}.dayContainer+.dayContainer{-webkit-box-shadow:-1px 0 0 #e6e6e6;box-shadow:-1px 0 0 #e6e6e6}.flatpickr-day{background:none;border:1px solid transparent;border-radius:150px;-webkit-box-sizing:border-box;box-sizing:border-box;color:#393939;cursor:pointer;font-weight:400;width:14.2857143%;-webkit-flex-basis:14.2857143%;-ms-flex-preferred-size:14.2857143%;flex-basis:14.2857143%;max-width:39px;height:39px;line-height:39px;margin:0;display:inline-block;position:relative;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;text-align:center}.flatpickr-day.inRange,.flatpickr-day.prevMonthDay.inRange,.flatpickr-day.nextMonthDay.inRange,.flatpickr-day.today.inRange,.flatpickr-day.prevMonthDay.today.inRange,.flatpickr-day.nextMonthDay.today.inRange,.flatpickr-day:hover,.flatpickr-day.prevMonthDay:hover,.flatpickr-day.nextMonthDay:hover,.flatpickr-day:focus,.flatpickr-day.prevMonthDay:focus,.flatpickr-day.nextMonthDay:focus{cursor:pointer;outline:0;background:#e6e6e6;border-color:#e6e6e6}.flatpickr-day.today{border-color:#959ea9}.flatpickr-day.today:hover,.flatpickr-day.today:focus{border-color:#959ea9;background:#959ea9;color:#fff}.flatpickr-day.selected,.flatpickr-day.startRange,.flatpickr-day.endRange,.flatpickr-day.selected.inRange,.flatpickr-day.startRange.inRange,.flatpickr-day.endRange.inRange,.flatpickr-day.selected:focus,.flatpickr-day.startRange:focus,.flatpickr-day.endRange:focus,.flatpickr-day.selected:hover,.flatpickr-day.startRange:hover,.flatpickr-day.endRange:hover,.flatpickr-day.selected.prevMonthDay,.flatpickr-day.startRange.prevMonthDay,.flatpickr-day.endRange.prevMonthDay,.flatpickr-day.selected.nextMonthDay,.flatpickr-day.startRange.nextMonthDay,.flatpickr-day.endRange.nextMonthDay{background:#569ff7;-webkit-box-shadow:none;box-shadow:none;color:#fff;border-color:#569ff7}.flatpickr-day.selected.startRange,.flatpickr-day.startRange.startRange,.flatpickr-day.endRange.startRange{border-radius:50px 0 0 50px}.flatpickr-day.selected.endRange,.flatpickr-day.startRange.endRange,.flatpickr-day.endRange.endRange{border-radius:0 50px 50px 0}.flatpickr-day.selected.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.startRange.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.endRange.startRange+.endRange:not(:nth-child(7n+1)){-webkit-box-shadow:-10px 0 0 #569ff7;box-shadow:-10px 0 0 #569ff7}.flatpickr-day.selected.startRange.endRange,.flatpickr-day.startRange.startRange.endRange,.flatpickr-day.endRange.startRange.endRange{border-radius:50px}.flatpickr-day.inRange{border-radius:0;-webkit-box-shadow:-5px 0 0 #e6e6e6,5px 0 0 #e6e6e6;box-shadow:-5px 0 0 #e6e6e6,5px 0 0 #e6e6e6}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover,.flatpickr-day.prevMonthDay,.flatpickr-day.nextMonthDay,.flatpickr-day.notAllowed,.flatpickr-day.notAllowed.prevMonthDay,.flatpickr-day.notAllowed.nextMonthDay{color:rgba(57,57,57,.3);background:transparent;border-color:transparent;cursor:default}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover{cursor:not-allowed;color:rgba(57,57,57,.1)}.flatpickr-day.week.selected{border-radius:0;-webkit-box-shadow:-5px 0 0 #569ff7,5px 0 0 #569ff7;box-shadow:-5px 0 0 #569ff7,5px 0 0 #569ff7}.flatpickr-day.hidden{visibility:hidden}.rangeMode .flatpickr-day{margin-top:1px}.flatpickr-weekwrapper{float:left}.flatpickr-weekwrapper .flatpickr-weeks{padding:0 12px;-webkit-box-shadow:1px 0 0 #e6e6e6;box-shadow:1px 0 0 #e6e6e6}.flatpickr-weekwrapper .flatpickr-weekday{float:none;width:100%;line-height:28px}.flatpickr-weekwrapper span.flatpickr-day,.flatpickr-weekwrapper span.flatpickr-day:hover{display:block;width:100%;max-width:none;color:rgba(57,57,57,.3);background:transparent;cursor:default;border:0}.flatpickr-innerContainer{display:block;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden}.flatpickr-rContainer{display:inline-block;padding:0;-webkit-box-sizing:border-box;box-sizing:border-box}.flatpickr-time{text-align:center;outline:0;display:block;height:0;line-height:40px;max-height:40px;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.flatpickr-time:after{content:"";display:table;clear:both}.flatpickr-time .numInputWrapper{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;width:40%;height:40px;float:left}.flatpickr-time .numInputWrapper span.arrowUp:after{border-bottom-color:#393939}.flatpickr-time .numInputWrapper span.arrowDown:after{border-top-color:#393939}.flatpickr-time.hasSeconds .numInputWrapper{width:26%}.flatpickr-time.time24hr .numInputWrapper{width:49%}.flatpickr-time input{background:transparent;-webkit-box-shadow:none;box-shadow:none;border:0;border-radius:0;text-align:center;margin:0;padding:0;height:inherit;line-height:inherit;color:#393939;font-size:14px;position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.flatpickr-time input.flatpickr-hour{font-weight:bold}.flatpickr-time input.flatpickr-minute,.flatpickr-time input.flatpickr-second{font-weight:400}.flatpickr-time input:focus{outline:0;border:0}.flatpickr-time .flatpickr-time-separator,.flatpickr-time .flatpickr-am-pm{height:inherit;float:left;line-height:inherit;color:#393939;font-weight:bold;width:2%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-align-self:center;-ms-flex-item-align:center;align-self:center}.flatpickr-time .flatpickr-am-pm{outline:0;width:18%;cursor:pointer;text-align:center;font-weight:400}.flatpickr-time input:hover,.flatpickr-time .flatpickr-am-pm:hover,.flatpickr-time input:focus,.flatpickr-time .flatpickr-am-pm:focus{background:#eee}.flatpickr-input[readonly]{cursor:pointer}@-webkit-keyframes fpFadeInDown{from{opacity:0;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes fpFadeInDown{from{opacity:0;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.flatpickr-monthSelect-months{margin:10px 1px 3px 1px;flex-wrap:wrap}.flatpickr-monthSelect-month{background:none;border:0;border-radius:2px;-webkit-box-sizing:border-box;box-sizing:border-box;color:#393939;cursor:pointer;display:inline-block;font-weight:400;margin:.5px;justify-content:center;padding:10px;position:relative;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;text-align:center;width:33%}.flatpickr-monthSelect-month.disabled{color:#eee}.flatpickr-monthSelect-month.disabled:hover,.flatpickr-monthSelect-month.disabled:focus{cursor:not-allowed;background:none!important}.flatpickr-monthSelect-theme-dark{background:#3f4458}.flatpickr-monthSelect-theme-dark .flatpickr-current-month input.cur-year{color:#fff}.flatpickr-monthSelect-theme-dark .flatpickr-months .flatpickr-prev-month,.flatpickr-monthSelect-theme-dark .flatpickr-months .flatpickr-next-month{color:#fff;fill:#fff}.flatpickr-monthSelect-theme-dark .flatpickr-monthSelect-month{color:rgba(255,255,255,.95)}.flatpickr-monthSelect-month:hover,.flatpickr-monthSelect-month:focus{background:#e6e6e6;cursor:pointer;outline:0}.flatpickr-monthSelect-theme-dark .flatpickr-monthSelect-month:hover,.flatpickr-monthSelect-theme-dark .flatpickr-monthSelect-month:focus{background:#646c8c;border-color:#646c8c}.flatpickr-monthSelect-month.selected{background-color:#569ff7;color:#fff}.flatpickr-monthSelect-theme-dark .flatpickr-monthSelect-month.selected{background:#80cbc4;-webkit-box-shadow:none;box-shadow:none;color:#fff;border-color:#80cbc4} /*! Pickr 1.8.2 MIT | https://github.com/Simonwep/pickr */ -.pickr{position:relative;overflow:visible;transform:translateY(0)}.pickr *{box-sizing:border-box;outline:0;border:0;-webkit-appearance:none}.pickr .pcr-button{position:relative;height:2em;width:2em;padding:.5em;cursor:pointer;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Helvetica Neue",Arial,sans-serif;border-radius:.15em;background:url('data:image/svg+xml;utf8, ') no-repeat center;background-size:0;transition:all .3s}.pickr .pcr-button::before{position:absolute;content:"";top:0;left:0;width:100%;height:100%;background:url('data:image/svg+xml;utf8, ');background-size:.5em;border-radius:.15em;z-index:-1}.pickr .pcr-button::before{z-index:initial}.pickr .pcr-button::after{position:absolute;content:"";top:0;left:0;height:100%;width:100%;transition:background .3s;background:var(--pcr-color);border-radius:.15em}.pickr .pcr-button.clear{background-size:70%}.pickr .pcr-button.clear::before{opacity:0}.pickr .pcr-button.clear:focus{box-shadow:0 0 0 1px rgba(255,255,255,.85),0 0 0 3px var(--pcr-color)}.pickr .pcr-button.disabled{cursor:not-allowed}.pickr *,.pcr-app *{box-sizing:border-box;outline:0;border:0;-webkit-appearance:none}.pickr input:focus,.pickr input.pcr-active,.pickr button:focus,.pickr button.pcr-active,.pcr-app input:focus,.pcr-app input.pcr-active,.pcr-app button:focus,.pcr-app button.pcr-active{box-shadow:0 0 0 1px rgba(255,255,255,.85),0 0 0 3px var(--pcr-color)}.pickr .pcr-palette,.pickr .pcr-slider,.pcr-app .pcr-palette,.pcr-app .pcr-slider{transition:box-shadow .3s}.pickr .pcr-palette:focus,.pickr .pcr-slider:focus,.pcr-app .pcr-palette:focus,.pcr-app .pcr-slider:focus{box-shadow:0 0 0 1px rgba(255,255,255,.85),0 0 0 3px rgba(0,0,0,.25)}.pcr-app{position:fixed;display:flex;flex-direction:column;z-index:10000;border-radius:.1em;background:#fff;opacity:0;visibility:hidden;transition:opacity .3s,visibility 0s .3s;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Helvetica Neue",Arial,sans-serif;box-shadow:0 .15em 1.5em 0 rgba(0,0,0,.1),0 0 1em 0 rgba(0,0,0,.03);left:0;top:0}.pcr-app.visible{transition:opacity .3s;visibility:visible;opacity:1}.pcr-app .pcr-swatches{display:flex;flex-wrap:wrap;margin-top:.75em}.pcr-app .pcr-swatches.pcr-last{margin:0}@supports(display:grid){.pcr-app .pcr-swatches{display:grid;align-items:center;grid-template-columns:repeat(auto-fit,1.75em)}}.pcr-app .pcr-swatches>button{font-size:1em;position:relative;width:calc(1.75em - 5px);height:calc(1.75em - 5px);border-radius:.15em;cursor:pointer;margin:2.5px;flex-shrink:0;justify-self:center;transition:all .15s;overflow:hidden;background:transparent;z-index:1}.pcr-app .pcr-swatches>button::before{position:absolute;content:"";top:0;left:0;width:100%;height:100%;background:url('data:image/svg+xml;utf8, ');background-size:6px;border-radius:.15em;z-index:-1}.pcr-app .pcr-swatches>button::after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:var(--pcr-color);border:1px solid rgba(0,0,0,.05);border-radius:.15em;box-sizing:border-box}.pcr-app .pcr-swatches>button:hover{filter:brightness(1.05)}.pcr-app .pcr-swatches>button:not(.pcr-active){box-shadow:none}.pcr-app .pcr-interaction{display:flex;flex-wrap:wrap;align-items:center;margin:0 -.2em 0 -.2em}.pcr-app .pcr-interaction>*{margin:0 .2em}.pcr-app .pcr-interaction input{letter-spacing:.07em;font-size:.75em;text-align:center;cursor:pointer;color:#75797e;background:#f1f3f4;border-radius:.15em;transition:all .15s;padding:.45em .5em;margin-top:.75em}.pcr-app .pcr-interaction input:hover{filter:brightness(.975)}.pcr-app .pcr-interaction input:focus{box-shadow:0 0 0 1px rgba(255,255,255,.85),0 0 0 3px rgba(66,133,244,.75)}.pcr-app .pcr-interaction .pcr-result{color:#75797e;text-align:left;flex:1 1 8em;min-width:8em;transition:all .2s;border-radius:.15em;background:#f1f3f4;cursor:text}.pcr-app .pcr-interaction .pcr-result::-moz-selection{background:#4285f4;color:#fff}.pcr-app .pcr-interaction .pcr-result::selection{background:#4285f4;color:#fff}.pcr-app .pcr-interaction .pcr-type.active{color:#fff;background:#4285f4}.pcr-app .pcr-interaction .pcr-save,.pcr-app .pcr-interaction .pcr-cancel,.pcr-app .pcr-interaction .pcr-clear{color:#fff;width:auto}.pcr-app .pcr-interaction .pcr-save,.pcr-app .pcr-interaction .pcr-cancel,.pcr-app .pcr-interaction .pcr-clear{color:#fff}.pcr-app .pcr-interaction .pcr-save:hover,.pcr-app .pcr-interaction .pcr-cancel:hover,.pcr-app .pcr-interaction .pcr-clear:hover{filter:brightness(.925)}.pcr-app .pcr-interaction .pcr-save{background:#4285f4}.pcr-app .pcr-interaction .pcr-clear,.pcr-app .pcr-interaction .pcr-cancel{background:#f44250}.pcr-app .pcr-interaction .pcr-clear:focus,.pcr-app .pcr-interaction .pcr-cancel:focus{box-shadow:0 0 0 1px rgba(255,255,255,.85),0 0 0 3px rgba(244,66,80,.75)}.pcr-app .pcr-selection .pcr-picker{position:absolute;height:18px;width:18px;border:2px solid #fff;border-radius:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.pcr-app .pcr-selection .pcr-color-palette,.pcr-app .pcr-selection .pcr-color-chooser,.pcr-app .pcr-selection .pcr-color-opacity{position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:flex;flex-direction:column;cursor:grab;cursor:-webkit-grab}.pcr-app .pcr-selection .pcr-color-palette:active,.pcr-app .pcr-selection .pcr-color-chooser:active,.pcr-app .pcr-selection .pcr-color-opacity:active{cursor:grabbing;cursor:-webkit-grabbing}.pcr-app[data-theme=monolith]{width:14.25em;max-width:95vw;padding:.8em}.pcr-app[data-theme=monolith] .pcr-selection{display:flex;flex-direction:column;justify-content:space-between;flex-grow:1}.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-preview{position:relative;z-index:1;width:100%;height:1em;display:flex;flex-direction:row;justify-content:space-between;margin-bottom:.5em}.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-preview::before{position:absolute;content:"";top:0;left:0;width:100%;height:100%;background:url('data:image/svg+xml;utf8, ');background-size:.5em;border-radius:.15em;z-index:-1}.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-preview .pcr-last-color{cursor:pointer;transition:background-color .3s,box-shadow .3s;border-radius:.15em 0 0 .15em;z-index:2}.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-preview .pcr-current-color{border-radius:0 .15em .15em 0}.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-preview .pcr-last-color,.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-preview .pcr-current-color{background:var(--pcr-color);width:50%;height:100%}.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-palette{width:100%;height:8em;z-index:1}.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-palette .pcr-palette{border-radius:.15em;width:100%;height:100%}.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-palette .pcr-palette::before{position:absolute;content:"";top:0;left:0;width:100%;height:100%;background:url('data:image/svg+xml;utf8, ');background-size:.5em;border-radius:.15em;z-index:-1}.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-chooser,.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-opacity{height:.5em;margin-top:.75em}.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-chooser .pcr-picker,.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-opacity .pcr-picker{top:50%;transform:translateY(-50%)}.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-chooser .pcr-slider,.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-opacity .pcr-slider{flex-grow:1;border-radius:50em}.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-chooser .pcr-slider{background:linear-gradient(to right,#f00,#ff0,#0f0,#0ff,#00f,#f0f,#f00)}.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-opacity .pcr-slider{background:linear-gradient(to right,transparent,#000),url('data:image/svg+xml;utf8, ');background-size:100%,.25em} -.badge-close{cursor:pointer}.badge-close::before{height:2px;width:50%}.badge-close::after{height:50%;width:2px}.badge-close:hover,.badge-close:focus{background-color:rgba(10,10,10,.3)}.badge-close:active{background-color:rgba(10,10,10,.4)}.navbar-nav .nav-item:hover{cursor:pointer}.navbar-nav .nav-link:hover{cursor:pointer}.nav .nav-link:hover{cursor:pointer}.nav-item{position:relative}.b-bar-horizontal .nav-item.dropdown .dropdown-menu>.dropdown>.dropdown-item{width:100%}.b-bar-horizontal .nav-item.dropdown .dropdown-menu>.dropdown>.dropdown-item::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.b-bar-horizontal .nav-item.dropdown .dropdown-menu>.dropdown>.dropdown-item:empty::after{margin-left:0}.b-bar-horizontal .nav-item.dropdown .dropdown-menu>.dropdown>.dropdown-item::after{transform:rotate(-90deg);position:absolute;right:10%;top:45%}.b-bar-horizontal .nav-item.dropdown .dropdown-menu>.dropdown>.dropdown-menu{top:0;left:100%;margin-left:0;margin-right:.1rem}.btn-group>.b-tooltip:not(:last-child)>.btn{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.b-tooltip:not(:first-child)>.btn{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group.btn-group-toggle .btn.active.disabled{opacity:1}.btn-group-vertical>.b-tooltip:not(:last-child)>.btn{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.b-tooltip:not(:first-child)>.btn{border-top-left-radius:0;border-top-right-radius:0}.btn-xs,.btn-group-xs>.btn{padding:.15rem .5rem;font-size:.75rem;line-height:1.5;border-radius:.15rem}.btn-md,.btn-group-md>.btn{padding:.47rem 1rem;font-size:1.125rem;line-height:1.5;border-radius:.25rem}.btn-xl,.btn-group-xl>.btn{padding:.5rem 1rem;font-size:1.5rem;line-height:1.5;border-radius:1rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=submit].btn-block,input[type=reset].btn-block,input[type=button].btn-block{width:100%}.card-deck .card{height:100%;margin-bottom:.75rem}@media(min-width:576px){.card-deck{display:flex;flex-flow:row wrap;margin-right:-.75rem;margin-left:-.75rem}.card-deck .card{flex:1 0 0%;margin-right:.75rem;margin-bottom:0;margin-left:.75rem}}hr.divider.divider-text{position:unset}hr.divider.divider-text::before{top:unset}.table-fixed-header .table thead tr th.dropdown-table-fixed-header-visible{z-index:11}.dropdown-menu-position-strategy{width:max-content;top:0;left:0}.dropdown-menu-position-strategy-absolute{position:absolute}.dropdown-menu-position-strategy-fixed{position:fixed}.dropdown-toggle.dropdown-toggle-hidden::after{content:none!important}.dropdown-toggle.dropdown-toggle-hidden::before{content:none!important}.dropdown-menu.show{animation-duration:.3s;animation-fill-mode:both;animation-name:fadeIn}.dropdown-menu a:not([href]).dropdown-item:not(.disabled){cursor:pointer}.dropdown-menu.dropdown-menu-scrollable{max-height:var(--dropdown-list-menu-max-height,200px);overflow-y:scroll}.b-is-autocomplete .dropdown-menu{width:100%;max-height:var(--autocomplete-menu-max-height,200px);overflow-y:scroll}.b-is-autocomplete .dropdown-menu .dropdown-item.focus{color:#1e2125!important;background-color:#e9ecef}.b-is-autocomplete.b-is-autocomplete-multipleselection{display:flex;align-items:center;flex-wrap:wrap;max-width:100%;width:100%;cursor:text;min-height:calc(1.5em + .75rem + 2px);height:auto;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius)}.b-is-autocomplete.b-is-autocomplete-multipleselection>input.form-control{display:inline-block;border:0;box-shadow:none;outline:0;background-color:transparent;max-width:inherit;width:auto;flex-grow:1}.b-is-autocomplete.b-is-autocomplete-multipleselection>.badge{margin-top:.25rem;margin-bottom:.25rem;line-height:1.5;flex-grow:initial}.b-is-autocomplete.b-is-autocomplete-multipleselection .dropdown-menu{top:100%}.b-is-autocomplete.b-is-autocomplete-multipleselection.focus{color:var(--bs-body-color);background-color:var(--bs-body-bg);border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.dropdown.btn-group>.btn.dropdown-toggle-split+.dropdown-menu.show{top:100%}.dropdown{position:relative}.dropdown .btn.dropdown-toggle:not(.btn-outline){box-shadow:none;border:0}.dropdown.dropdown-disabled.b-is-autocomplete{background-color:var(--b-theme-light,#e9ecef)}.dropdown>.dropdown-menu>.dropdown:not(.dropup,.dropstart,.dropend){position:relative}.dropdown>.dropdown-menu>.dropdown:not(.dropup,.dropstart,.dropend)>.dropdown-toggle{width:100%}.dropdown>.dropdown-menu>.dropdown:not(.dropup,.dropstart,.dropend)>.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown>.dropdown-menu>.dropdown:not(.dropup,.dropstart,.dropend)>.dropdown-toggle:empty::after{margin-left:0}.dropdown>.dropdown-menu>.dropdown:not(.dropup,.dropstart,.dropend)>.dropdown-toggle::after{position:absolute;right:10%;top:45%}.dropdown>.dropdown-menu>.dropdown:not(.dropup,.dropstart,.dropend)>.dropdown-menu{top:auto;left:auto;bottom:auto;right:auto}.dropdown>.dropdown-menu>.dropdown.dropup .dropdown-toggle::after,.dropdown>.dropdown-menu>.dropdown.dropend .dropdown-toggle::after{vertical-align:0;position:absolute;right:10%;top:45%}.dropdown>.dropdown-menu>.dropdown.dropstart .dropdown-toggle::after{vertical-align:0}.dropdown.dropup>.dropdown-menu{top:auto;bottom:auto;margin-top:0;margin-bottom:.125rem}.dropdown.dropup>.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropdown.dropup>.dropdown-toggle:empty::after{margin-left:0}.dropdown.dropend>.dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropdown.dropend>.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropdown.dropend>.dropdown-toggle:empty::after{margin-left:0}.dropdown.dropend>.dropdown-toggle::after{vertical-align:0}.dropdown.dropstart>.dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropdown.dropstart>.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropdown.dropstart>.dropdown-toggle::after{display:none}.dropdown.dropstart>.dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropdown.dropstart>.dropdown-toggle:empty::after{margin-left:0}.dropdown.dropstart>.dropdown-toggle::before{vertical-align:0}.dropdown-menu-start{right:auto;left:0}.dropdown-menu-end{right:0;left:auto}@media(min-width:576px){.dropdown-menu-sm-start{right:auto;left:0}.dropdown-menu-sm-end{right:0;left:auto}}@media(min-width:768px){.dropdown-menu-md-start{right:auto;left:0}.dropdown-menu-md-end{right:0;left:auto}}@media(min-width:992px){.dropdown-menu-lg-start{right:auto;left:0}.dropdown-menu-lg-end{right:0;left:auto}}@media(min-width:1200px){.dropdown-menu-xl-start{right:auto;left:0}.dropdown-menu-xl-end{right:0;left:auto}}@media(min-width:1400px){.dropdown-menu-xxl-start{right:auto;left:0}.dropdown-menu-xxl-end{right:0;left:auto}}.figure.figure-is-16x16{height:16px;width:16px}.figure.figure-is-24x24{height:24px;width:24px}.figure.figure-is-32x32{height:32px;width:32px}.figure.figure-is-48x48{height:48px;width:48px}.figure.figure-is-64x64{height:64px;width:64px}.figure.figure-is-96x96{height:96px;width:96px}.figure.figure-is-128x128{height:128px;width:128px}.figure.figure-is-256x256{height:256px;width:256px}.figure.figure-is-512x512{height:512px;width:512px}.form-check>.form-check-input.form-check-input-pointer,.form-check>.form-check-label.form-check-label-pointer,.form-switch>.form-check-input.form-check-input-pointer,.form-switch>.form-check-label.form-check-label-pointer{cursor:pointer}.form-control-plaintext.form-control-xs,.form-control-plaintext.form-control-md,.form-control-plaintext.form-control-xl{padding-right:0;padding-left:0}.form-control-xs{height:calc(1.5em + .3rem + calc(var(--bs-border-width)*2));padding:.15rem .5rem;font-size:.75rem;line-height:1.5;border-radius:.15rem}.form-control-md{height:calc(1.5em + .94rem + calc(var(--bs-border-width)*2));padding:.47rem 1rem;font-size:1.125rem;line-height:1.5;border-radius:.25rem}.form-control-xl{height:calc(1.5em + 1rem + calc(var(--bs-border-width)*2));padding:.5rem 1rem;font-size:1.5rem;line-height:1.5;border-radius:1rem}.form-select-xs{height:calc(1.5em + .3rem + calc(var(--bs-border-width)*2));padding-top:.15rem;padding-bottom:.15rem;padding-left:.5rem;font-size:.75rem}.form-select-md{height:calc(1.5em + .94rem + calc(var(--bs-border-width)*2));padding-top:.47rem;padding-bottom:.47rem;padding-left:1rem;font-size:1.125rem}.form-select-xl{height:calc(1.5em + 1rem + calc(var(--bs-border-width)*2));padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.5rem}.input-group>.b-numeric:not(:last-child)>input,.input-group>div.flatpickr-wrapper:not(:last-child)>input{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.b-numeric:not(:first-child)>input,.input-group>div.flatpickr-wrapper:not(:first-child)>input{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-xs>.form-control:not(textarea),.input-group-xs>.form-select,.input-group-xs>.b-numeric>input{height:calc(1.5em + .3rem + calc(var(--bs-border-width)*2))}.input-group-xs>.form-control,.input-group-xs>.form-select,.input-group-xs>.input-group-text,.input-group-xs>.btn,.input-group-xs>.b-numeric>input{padding:.15rem .5rem;font-size:.75rem;line-height:1.5;border-radius:.15rem}.input-group-sm>.b-numeric>input{height:calc(1.5em + .5rem + calc(var(--bs-border-width)*2))}.input-group-sm>.b-numeric>input{padding:.25rem .5rem;font-size:.875rem;line-height:1.25;border-radius:var(--bs-border-radius-sm)}.input-group-md>.form-control:not(textarea),.input-group-md>.form-select,.input-group-md>.b-numeric>input{height:calc(1.5em + .94rem + calc(var(--bs-border-width)*2))}.input-group-md>.form-control,.input-group-md>.form-select,.input-group-md>.input-group-text,.input-group-md>.btn,.input-group-md>.b-numeric>input{padding:.47rem 1rem;font-size:1.125rem;line-height:1.5;border-radius:.25rem}.input-group-lg>.b-numeric>input{height:calc(1.5em + 1rem + calc(var(--bs-border-width)*2))}.input-group-lg>.b-numeric>input{padding:.5rem 1rem;font-size:1.25rem;line-height:2;border-radius:var(--bs-border-radius-lg)}.input-group-xl>.form-control:not(textarea),.input-group-xl>.form-select,.input-group-xl>.b-numeric>input{height:calc(1.5em + 1rem + calc(var(--bs-border-width)*2))}.input-group-xl>.form-control,.input-group-xl>.form-select,.input-group-xl>.input-group-text,.input-group-xl>.btn,.input-group-xl>.b-numeric>input{padding:.5rem 1rem;font-size:1.5rem;line-height:1.5;border-radius:1rem}.input-group-xs>.form-select,.input-group-md>.form-select,.input-group-xl>.form-select{padding-right:1.75rem}.input-group:not(.has-validation)>.dropdown:first-child>.btn:not(:last-child).dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>.dropdown>.btn:not(:last-child).dropdown-toggle,.input-group.has-validation>.dropdown>.btn:not(:last-child):not(.dropdown-toggle){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>div.flatpickr-wrapper>.form-control{position:relative;flex:1 1 auto;width:1%;min-width:0}.form-check>.form-check-input.form-check-input-xs{width:.7rem;height:.7rem}.form-check>.form-check-input.form-check-input-xs+.form-check-label{line-height:"normal";padding-left:0}.form-check>.form-check-input.form-check-input-sm{width:.8rem;height:.8rem}.form-check>.form-check-input.form-check-input-sm+.form-check-label{line-height:"normal";padding-left:0}.form-check>.form-check-input.form-check-input-md{width:1.25rem;height:1.25rem}.form-check>.form-check-input.form-check-input-md+.form-check-label{line-height:1.7rem;padding-left:3px}.form-check>.form-check-input.form-check-input-lg{width:1.55rem;height:1.55rem}.form-check>.form-check-input.form-check-input-lg+.form-check-label{line-height:2rem;padding-left:6px}.form-check>.form-check-input.form-check-input-xl{width:1.85rem;height:1.85rem}.form-check>.form-check-input.form-check-input-xl+.form-check-label{line-height:2.5rem;padding-left:10px}select[readonly]{pointer-events:none}select[readonly] option,select[readonly] optgroup{display:none}.b-numeric{position:relative;width:100%}.b-numeric:hover>.b-numeric-handler-wrap{opacity:1}.b-numeric input:disabled+.b-numeric-handler-wrap,.b-numeric input:read-only+.b-numeric-handler-wrap{display:none}.b-numeric-handler-wrap{position:absolute;top:0;right:0;width:22px;height:100%;background:#fff;border:1px solid #d9d9d9;opacity:0}.input-group .b-numeric{-ms-flex:1 1 auto;flex:1 1 auto;width:1%}.b-numeric-handler-wrap .b-numeric-handler.b-numeric-handler-down{border-top:1px solid #d9d9d9}.b-numeric-handler{position:relative;display:flex;width:100%;height:50%;overflow:hidden;color:rgba(0,0,0,.45);font-weight:700;line-height:0;align-items:center;justify-content:center}.b-numeric-handler.btn{padding:0}.form-control+.b-numeric-handler-wrap{font-size:1rem;border-top-right-radius:var(--bs-border-radius);border-bottom-right-radius:var(--bs-border-radius)}.form-control-xs+.b-numeric-handler-wrap{font-size:.75rem;border-top-right-radius:.15rem;border-bottom-right-radius:.15rem}.form-control-xs+.b-numeric-handler-wrap>.b-numeric-handler.btn{font-size:.75rem}.form-control-sm+.b-numeric-handler-wrap{font-size:.875rem;border-top-right-radius:var(--bs-border-radius-sm);border-bottom-right-radius:var(--bs-border-radius-sm)}.form-control-sm+.b-numeric-handler-wrap>.b-numeric-handler.btn{font-size:.875rem}.form-control-md+.b-numeric-handler-wrap{font-size:1.125rem;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.form-control-md+.b-numeric-handler-wrap>.b-numeric-handler.btn{font-size:1.125rem}.form-control-lg+.b-numeric-handler-wrap{font-size:1.25rem;border-top-right-radius:var(--bs-border-radius-lg);border-bottom-right-radius:var(--bs-border-radius-lg)}.form-control-lg+.b-numeric-handler-wrap>.b-numeric-handler.btn{font-size:1.25rem}.form-control-xl+.b-numeric-handler-wrap{font-size:1.5rem;border-top-right-radius:1rem;border-bottom-right-radius:1rem}.form-control-xl+.b-numeric-handler-wrap>.b-numeric-handler.btn{font-size:1.5rem}.custom-file-label{overflow:hidden}input[readonly][type=range],input[readonly=readonly][type=range]{pointer-events:none}input[readonly][type=range]::-webkit-slider-thumb,input[readonly=readonly][type=range]::-webkit-slider-thumb{pointer-events:none}input[readonly][type=range]::-moz-range-thumb,input[readonly=readonly][type=range]::-moz-range-thumb{pointer-events:none}input[readonly][type=range]::-ms-thumb,input[readonly=readonly][type=range]::-ms-thumb{pointer-events:none}.form-group{margin-bottom:1rem}.form-inline{display:flex;flex-flow:row wrap;align-items:center}.form-inline .form-check{width:100%}@media(min-width:576px){.form-inline label{display:flex;align-items:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:flex;flex:0 0 auto;flex-flow:row wrap;align-items:center;margin-bottom:0}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .input-group,.form-inline .custom-select{width:auto}.form-inline .form-check{display:flex;align-items:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .form-select{align-items:center;justify-content:center}.form-inline .form-check-label{margin-bottom:0}}.b-input-color-picker{padding:.5rem .6rem}.b-input-color-picker>.b-input-color-picker-preview{height:.55rem}.focus-trap{display:contents}.form-file input[type=file]{margin-left:-2px!important}.form-file input[type=file]::-webkit-file-upload-button{display:none}.form-file input[type=file]::file-selector-button{display:none}.form-label-required:after{content:" *";color:var(--b-theme-danger,#dc3545)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.5rem}@media(min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.jumbotron.jumbotron-primary{background-color:#0d6efd;color:#fff}.jumbotron.jumbotron-secondary{background-color:#6c757d;color:#fff}.jumbotron.jumbotron-success{background-color:#198754;color:#fff}.jumbotron.jumbotron-info{background-color:#0dcaf0;color:#000}.jumbotron.jumbotron-warning{background-color:#ffc107;color:#000}.jumbotron.jumbotron-danger{background-color:#dc3545;color:#fff}.jumbotron.jumbotron-light{background-color:#f8f9fa;color:#000}.jumbotron.jumbotron-dark{background-color:#212529;color:#fff}.jumbotron.jumbotron-link{background-color:#3273dc;color:#fff}.b-layout-header-fixed{z-index:1030}.b-layout-footer-fixed{z-index:1030}.b-layout-sider-content{z-index:1031}a.link-unstyled{text-decoration:none;color:inherit}li.list-group-item-action{cursor:pointer}.list-group-scrollable{overflow-y:scroll}.media{display:flex;align-items:flex-start}.media-body{flex:1}.modal.fade{transition:opacity var(--modal-animation-duration,300ms) linear}.modal.fade .modal-dialog{transition:-webkit-transform var(--modal-animation-duration,300ms) ease-out;transition:transform var(--modal-animation-duration,300ms) ease-out}.offcanvas-footer{position:sticky;bottom:0;top:auto;display:flex;align-items:center;justify-content:space-between;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x)}.page-item:not(.disabled) .page-link{cursor:pointer}.pagination-xs .page-link{padding:.125rem .25rem;font-size:.75rem;line-height:1.5}.pagination-xs .page-item:first-child .page-link{border-top-left-radius:.15rem;border-bottom-left-radius:.15rem}.pagination-xs .page-item:last-child .page-link{border-top-right-radius:.15rem;border-bottom-right-radius:.15rem}.pagination-md .page-link{padding:.625rem 1.25rem;font-size:1.125rem;line-height:1.5}.pagination-md .page-item:first-child .page-link{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.pagination-md .page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.pagination-xl .page-link{padding:1rem 2rem;font-size:1.5rem;line-height:1.5}.pagination-xl .page-item:first-child .page-link{border-top-left-radius:1rem;border-bottom-left-radius:1rem}.pagination-xl .page-item:last-child .page-link{border-top-right-radius:1rem;border-bottom-right-radius:1rem}.b-page-progress .b-page-progress-indicator.b-page-progress-indicator-primary{background-color:#0d6efd}.b-page-progress .b-page-progress-indicator.b-page-progress-indicator-secondary{background-color:#6c757d}.b-page-progress .b-page-progress-indicator.b-page-progress-indicator-success{background-color:#198754}.b-page-progress .b-page-progress-indicator.b-page-progress-indicator-info{background-color:#0dcaf0}.b-page-progress .b-page-progress-indicator.b-page-progress-indicator-warning{background-color:#ffc107}.b-page-progress .b-page-progress-indicator.b-page-progress-indicator-danger{background-color:#dc3545}.b-page-progress .b-page-progress-indicator.b-page-progress-indicator-light{background-color:#f8f9fa}.b-page-progress .b-page-progress-indicator.b-page-progress-indicator-dark{background-color:#212529}.b-page-progress .b-page-progress-indicator.b-page-progress-indicator-link{background-color:#3273dc}.rating:not(.rating-disabled):not(.rating-readonly):hover .rating-item{cursor:pointer}.rating.rating-disabled{opacity:.65}.rating .rating-item.rating-item-primary{color:#0d6efd}.rating .rating-item.rating-item-secondary{color:#6c757d}.rating .rating-item.rating-item-success{color:#198754}.rating .rating-item.rating-item-info{color:#0dcaf0}.rating .rating-item.rating-item-warning{color:#ffc107}.rating .rating-item.rating-item-danger{color:#dc3545}.rating .rating-item.rating-item-light{color:#f8f9fa}.rating .rating-item.rating-item-dark{color:#212529}.rating .rating-item.rating-item-link{color:#3273dc}.rating .rating-item.rating-item-hover{opacity:.7}.steps{padding:0;margin:0;list-style:none;display:flex;overflow-x:auto}.steps .step:first-child{margin-left:auto}.steps .step:last-child{margin-right:auto}.step:first-of-type .step-circle::before{display:none}.step:last-of-type .step-container{padding-right:0}.step-container{box-sizing:content-box;display:flex;align-items:center;flex-direction:column;width:5rem;min-width:5rem;max-width:5rem;padding-top:.5rem;padding-right:1rem}.step-circle{position:relative;display:flex;justify-content:center;align-items:center;width:1.5rem;height:1.5rem;color:#adb5bd;border:2px solid #adb5bd;border-radius:100%;background-color:#fff}.step-circle::before{content:"";display:block;position:absolute;top:50%;left:-2px;width:calc(5rem + 1rem - 1.5rem);height:2px;transform:translate(-100%,-50%);color:#adb5bd;background-color:currentColor}.step-text{color:#adb5bd;word-break:keep-all;text-align:center;margin-top:.25em}.step-completed .step-circle{color:#fff;background-color:#198754;border-color:#198754}.step-completed .step-circle::before{color:#198754}.step-completed .step-text{color:#198754}.step-active .step-circle{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.step-active .step-circle::before{color:#0d6efd}.step-active .step-text{color:#0d6efd}.step-primary .step-circle{color:#0d6efd;border-color:#0d6efd}.step-primary.step-completed .step-circle{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.step-primary.step-completed .step-circle::before{color:#0d6efd}.step-primary.step-completed .step-text{color:#0d6efd}.step-primary.step-active .step-circle{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.step-primary.step-active::before{color:#0d6efd}.step-primary.step-active .step-text{color:#0d6efd}.step-secondary .step-circle{color:#6c757d;border-color:#6c757d}.step-secondary.step-completed .step-circle{color:#fff;background-color:#6c757d;border-color:#6c757d}.step-secondary.step-completed .step-circle::before{color:#6c757d}.step-secondary.step-completed .step-text{color:#6c757d}.step-secondary.step-active .step-circle{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.step-secondary.step-active::before{color:#0d6efd}.step-secondary.step-active .step-text{color:#0d6efd}.step-success .step-circle{color:#198754;border-color:#198754}.step-success.step-completed .step-circle{color:#fff;background-color:#198754;border-color:#198754}.step-success.step-completed .step-circle::before{color:#198754}.step-success.step-completed .step-text{color:#198754}.step-success.step-active .step-circle{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.step-success.step-active::before{color:#0d6efd}.step-success.step-active .step-text{color:#0d6efd}.step-info .step-circle{color:#0dcaf0;border-color:#0dcaf0}.step-info.step-completed .step-circle{color:#fff;background-color:#0dcaf0;border-color:#0dcaf0}.step-info.step-completed .step-circle::before{color:#0dcaf0}.step-info.step-completed .step-text{color:#0dcaf0}.step-info.step-active .step-circle{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.step-info.step-active::before{color:#0d6efd}.step-info.step-active .step-text{color:#0d6efd}.step-warning .step-circle{color:#ffc107;border-color:#ffc107}.step-warning.step-completed .step-circle{color:#fff;background-color:#ffc107;border-color:#ffc107}.step-warning.step-completed .step-circle::before{color:#ffc107}.step-warning.step-completed .step-text{color:#ffc107}.step-warning.step-active .step-circle{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.step-warning.step-active::before{color:#0d6efd}.step-warning.step-active .step-text{color:#0d6efd}.step-danger .step-circle{color:#dc3545;border-color:#dc3545}.step-danger.step-completed .step-circle{color:#fff;background-color:#dc3545;border-color:#dc3545}.step-danger.step-completed .step-circle::before{color:#dc3545}.step-danger.step-completed .step-text{color:#dc3545}.step-danger.step-active .step-circle{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.step-danger.step-active::before{color:#0d6efd}.step-danger.step-active .step-text{color:#0d6efd}.step-light .step-circle{color:#f8f9fa;border-color:#f8f9fa}.step-light.step-completed .step-circle{color:#fff;background-color:#f8f9fa;border-color:#f8f9fa}.step-light.step-completed .step-circle::before{color:#f8f9fa}.step-light.step-completed .step-text{color:#f8f9fa}.step-light.step-active .step-circle{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.step-light.step-active::before{color:#0d6efd}.step-light.step-active .step-text{color:#0d6efd}.step-dark .step-circle{color:#212529;border-color:#212529}.step-dark.step-completed .step-circle{color:#fff;background-color:#212529;border-color:#212529}.step-dark.step-completed .step-circle::before{color:#212529}.step-dark.step-completed .step-text{color:#212529}.step-dark.step-active .step-circle{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.step-dark.step-active::before{color:#0d6efd}.step-dark.step-active .step-text{color:#0d6efd}.step-link .step-circle{color:#3273dc;border-color:#3273dc}.step-link.step-completed .step-circle{color:#fff;background-color:#3273dc;border-color:#3273dc}.step-link.step-completed .step-circle::before{color:#3273dc}.step-link.step-completed .step-text{color:#3273dc}.step-link.step-active .step-circle{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.step-link.step-active::before{color:#0d6efd}.step-link.step-active .step-text{color:#0d6efd}.steps-content{margin:1rem 0}.steps-content>.step-panel{display:none}.steps-content>.active{display:block}.form-check.form-switch .form-check-input.form-check-input-primary:checked{background-color:#0d6efd;border-color:#0d6efd}.form-check.form-switch .form-check-input.form-check-input-secondary:checked{background-color:#6c757d;border-color:#6c757d}.form-check.form-switch .form-check-input.form-check-input-success:checked{background-color:#198754;border-color:#198754}.form-check.form-switch .form-check-input.form-check-input-info:checked{background-color:#0dcaf0;border-color:#0dcaf0}.form-check.form-switch .form-check-input.form-check-input-warning:checked{background-color:#ffc107;border-color:#ffc107}.form-check.form-switch .form-check-input.form-check-input-danger:checked{background-color:#dc3545;border-color:#dc3545}.form-check.form-switch .form-check-input.form-check-input-light:checked{background-color:#f8f9fa;border-color:#f8f9fa}.form-check.form-switch .form-check-input.form-check-input-dark:checked{background-color:#212529;border-color:#212529}.form-check.form-switch .form-check-input.form-check-input-link:checked{background-color:#3273dc;border-color:#3273dc}.form-check.form-switch .form-check-input.form-check-input-xs{width:calc(.75rem + (.5rem/2));height:.5rem;margin-left:-2.5em}.form-check.form-switch .form-check-input.form-check-input-xs+.form-check-label{line-height:1rem;vertical-align:middle;padding-left:0}.form-check.form-switch .form-check-input.form-check-input-xs:checked~.form-check-label::after{transform:translateX(calc(.75rem - (.5rem/2)))}.form-check.form-switch .form-check-input.form-check-input-sm{width:calc(1rem + (.75rem/2));height:.75rem;margin-left:-2.5em}.form-check.form-switch .form-check-input.form-check-input-sm+.form-check-label{line-height:1.25rem;vertical-align:middle;padding-left:.75rem}.form-check.form-switch .form-check-input.form-check-input-sm:checked~.form-check-label::after{transform:translateX(calc(1rem - (.75rem/2)))}.form-check.form-switch .form-check-input.form-check-input-md{width:calc(2rem + (1.5rem/2));height:1.5rem;margin-left:-2.5em}.form-check.form-switch .form-check-input.form-check-input-md+.form-check-label{line-height:2rem;vertical-align:middle;padding-left:.75rem}.form-check.form-switch .form-check-input.form-check-input-md:checked~.form-check-label::after{transform:translateX(calc(2rem - (1.5rem/2)))}.form-check.form-switch .form-check-input.form-check-input-lg{width:calc(3rem + (2rem/2));height:2rem;margin-left:-2.5em}.form-check.form-switch .form-check-input.form-check-input-lg+.form-check-label{line-height:2.5rem;vertical-align:middle;padding-left:.75rem}.form-check.form-switch .form-check-input.form-check-input-lg:checked~.form-check-label::after{transform:translateX(calc(3rem - (2rem/2)))}.form-check.form-switch .form-check-input.form-check-input-xl{width:calc(4rem + (2.5rem/2));height:2.5rem;margin-left:-2.5em}.form-check.form-switch .form-check-input.form-check-input-xl+.form-check-label{line-height:3rem;vertical-align:middle;padding-left:.75rem}.form-check.form-switch .form-check-input.form-check-input-xl:checked~.form-check-label::after{transform:translateX(calc(4rem - (2.5rem/2)))}table.table tbody tr:not(.table-group).selected{background-color:var(--bs-primary)}table.table tbody tr.table-group{cursor:pointer;background-color:var(--b-theme-light,var(--bs-light,#f5f5f5));font-weight:700}tr.table-row-selectable:hover{cursor:pointer}tr.table-row-selectable:focus[tabindex="0"]{outline:0}.table-fixed-header{overflow-y:auto}.table-fixed-header>.table{border-collapse:separate;border-spacing:0}.table-fixed-header>.table>thead:not(.table-thead-theme)>tr>th{background:#fff}.table-fixed-header>.table>thead>tr>th{border-top:0;position:sticky;z-index:10}.table-fixed-header>.table>thead>tr:nth-child(1)>th{top:0}.table-fixed-header>.table-bordered>:not(caption)>*>*{border-width:1px 1px}.table-fixed-columns{width:100%;overflow-x:auto;white-space:nowrap;position:relative}.table-fixed-columns .table{table-layout:fixed;overflow-x:auto;white-space:nowrap;border-collapse:separate;border-spacing:0}.table-fixed-columns .table .table-header-cell-fixed-start,.table-fixed-columns .table .table-row-header-fixed-start,.table-fixed-columns .table .table-row-cell-fixed-start{position:sticky;border-left:0;z-index:11;background-color:#fff;border-inline-start-width:0;left:0}.table-fixed-columns .table .table-header-cell-fixed-end,.table-fixed-columns .table .table-row-header-fixed-end,.table-fixed-columns .table .table-row-cell-fixed-end{position:sticky;border-left:0;z-index:11;background-color:#fff;border-inline-start-width:0;right:0}.table-fixed-columns .table.table-bordered td:not(.table-header-cell-fixed-start):not(.table-row-header-fixed-start):not(.table-row-cell-fixed-start),.table-fixed-columns .table.table-bordered th:not(.table-header-cell-fixed-start):not(.table-row-header-fixed-start):not(.table-row-cell-fixed-start){border-left:1px;border-inline-start-width:1px}.snackbar-stack{z-index:1069!important}.snackbar{z-index:1070!important}@keyframes fadeIn{0%{opacity:0}100%{opacity:1}0%{opacity:0}}@keyframes slideIn{0%{transform:translateY(1rem);opacity:0}100%{transform:translateY(0);opacity:1}0%{transform:translateY(1rem);opacity:0}}.border-1{border:1px solid #dee2e6!important}.border-1.border-primary{border-color:#0d6efd!important}.border-1.border-secondary{border-color:#6c757d!important}.border-1.border-success{border-color:#198754!important}.border-1.border-info{border-color:#0dcaf0!important}.border-1.border-warning{border-color:#ffc107!important}.border-1.border-danger{border-color:#dc3545!important}.border-1.border-light{border-color:#f8f9fa!important}.border-1.border-dark{border-color:#212529!important}.border-1.border-link{border-color:#3273dc!important}.border-primary-1{border:1px solid #0d6efd!important}.border-secondary-1{border:1px solid #6c757d!important}.border-success-1{border:1px solid #198754!important}.border-info-1{border:1px solid #0dcaf0!important}.border-warning-1{border:1px solid #ffc107!important}.border-danger-1{border:1px solid #dc3545!important}.border-light-1{border:1px solid #f8f9fa!important}.border-dark-1{border:1px solid #212529!important}.border-link-1{border:1px solid #3273dc!important}.border-top-1{border-top:1px solid #dee2e6!important}.border-primary-top-1{border-top:1px solid #0d6efd!important}.border-secondary-top-1{border-top:1px solid #6c757d!important}.border-success-top-1{border-top:1px solid #198754!important}.border-info-top-1{border-top:1px solid #0dcaf0!important}.border-warning-top-1{border-top:1px solid #ffc107!important}.border-danger-top-1{border-top:1px solid #dc3545!important}.border-light-top-1{border-top:1px solid #f8f9fa!important}.border-dark-top-1{border-top:1px solid #212529!important}.border-link-top-1{border-top:1px solid #3273dc!important}.border-end-1{border-right:1px solid #dee2e6!important}.border-primary-end-1{border-right:1px solid #0d6efd!important}.border-secondary-end-1{border-right:1px solid #6c757d!important}.border-success-end-1{border-right:1px solid #198754!important}.border-info-end-1{border-right:1px solid #0dcaf0!important}.border-warning-end-1{border-right:1px solid #ffc107!important}.border-danger-end-1{border-right:1px solid #dc3545!important}.border-light-end-1{border-right:1px solid #f8f9fa!important}.border-dark-end-1{border-right:1px solid #212529!important}.border-link-end-1{border-right:1px solid #3273dc!important}.border-bottom-1{border-bottom:1px solid #dee2e6!important}.border-primary-bottom-1{border-bottom:1px solid #0d6efd!important}.border-secondary-bottom-1{border-bottom:1px solid #6c757d!important}.border-success-bottom-1{border-bottom:1px solid #198754!important}.border-info-bottom-1{border-bottom:1px solid #0dcaf0!important}.border-warning-bottom-1{border-bottom:1px solid #ffc107!important}.border-danger-bottom-1{border-bottom:1px solid #dc3545!important}.border-light-bottom-1{border-bottom:1px solid #f8f9fa!important}.border-dark-bottom-1{border-bottom:1px solid #212529!important}.border-link-bottom-1{border-bottom:1px solid #3273dc!important}.border-start-1{border-left:1px solid #dee2e6!important}.border-primary-start-1{border-left:1px solid #0d6efd!important}.border-secondary-start-1{border-left:1px solid #6c757d!important}.border-success-start-1{border-left:1px solid #198754!important}.border-info-start-1{border-left:1px solid #0dcaf0!important}.border-warning-start-1{border-left:1px solid #ffc107!important}.border-danger-start-1{border-left:1px solid #dc3545!important}.border-light-start-1{border-left:1px solid #f8f9fa!important}.border-dark-start-1{border-left:1px solid #212529!important}.border-link-start-1{border-left:1px solid #3273dc!important}.border-2{border:2px solid #dee2e6!important}.border-2.border-primary{border-color:#0d6efd!important}.border-2.border-secondary{border-color:#6c757d!important}.border-2.border-success{border-color:#198754!important}.border-2.border-info{border-color:#0dcaf0!important}.border-2.border-warning{border-color:#ffc107!important}.border-2.border-danger{border-color:#dc3545!important}.border-2.border-light{border-color:#f8f9fa!important}.border-2.border-dark{border-color:#212529!important}.border-2.border-link{border-color:#3273dc!important}.border-primary-2{border:2px solid #0d6efd!important}.border-secondary-2{border:2px solid #6c757d!important}.border-success-2{border:2px solid #198754!important}.border-info-2{border:2px solid #0dcaf0!important}.border-warning-2{border:2px solid #ffc107!important}.border-danger-2{border:2px solid #dc3545!important}.border-light-2{border:2px solid #f8f9fa!important}.border-dark-2{border:2px solid #212529!important}.border-link-2{border:2px solid #3273dc!important}.border-top-2{border-top:2px solid #dee2e6!important}.border-primary-top-2{border-top:2px solid #0d6efd!important}.border-secondary-top-2{border-top:2px solid #6c757d!important}.border-success-top-2{border-top:2px solid #198754!important}.border-info-top-2{border-top:2px solid #0dcaf0!important}.border-warning-top-2{border-top:2px solid #ffc107!important}.border-danger-top-2{border-top:2px solid #dc3545!important}.border-light-top-2{border-top:2px solid #f8f9fa!important}.border-dark-top-2{border-top:2px solid #212529!important}.border-link-top-2{border-top:2px solid #3273dc!important}.border-end-2{border-right:2px solid #dee2e6!important}.border-primary-end-2{border-right:2px solid #0d6efd!important}.border-secondary-end-2{border-right:2px solid #6c757d!important}.border-success-end-2{border-right:2px solid #198754!important}.border-info-end-2{border-right:2px solid #0dcaf0!important}.border-warning-end-2{border-right:2px solid #ffc107!important}.border-danger-end-2{border-right:2px solid #dc3545!important}.border-light-end-2{border-right:2px solid #f8f9fa!important}.border-dark-end-2{border-right:2px solid #212529!important}.border-link-end-2{border-right:2px solid #3273dc!important}.border-bottom-2{border-bottom:2px solid #dee2e6!important}.border-primary-bottom-2{border-bottom:2px solid #0d6efd!important}.border-secondary-bottom-2{border-bottom:2px solid #6c757d!important}.border-success-bottom-2{border-bottom:2px solid #198754!important}.border-info-bottom-2{border-bottom:2px solid #0dcaf0!important}.border-warning-bottom-2{border-bottom:2px solid #ffc107!important}.border-danger-bottom-2{border-bottom:2px solid #dc3545!important}.border-light-bottom-2{border-bottom:2px solid #f8f9fa!important}.border-dark-bottom-2{border-bottom:2px solid #212529!important}.border-link-bottom-2{border-bottom:2px solid #3273dc!important}.border-start-2{border-left:2px solid #dee2e6!important}.border-primary-start-2{border-left:2px solid #0d6efd!important}.border-secondary-start-2{border-left:2px solid #6c757d!important}.border-success-start-2{border-left:2px solid #198754!important}.border-info-start-2{border-left:2px solid #0dcaf0!important}.border-warning-start-2{border-left:2px solid #ffc107!important}.border-danger-start-2{border-left:2px solid #dc3545!important}.border-light-start-2{border-left:2px solid #f8f9fa!important}.border-dark-start-2{border-left:2px solid #212529!important}.border-link-start-2{border-left:2px solid #3273dc!important}.border-3{border:3px solid #dee2e6!important}.border-3.border-primary{border-color:#0d6efd!important}.border-3.border-secondary{border-color:#6c757d!important}.border-3.border-success{border-color:#198754!important}.border-3.border-info{border-color:#0dcaf0!important}.border-3.border-warning{border-color:#ffc107!important}.border-3.border-danger{border-color:#dc3545!important}.border-3.border-light{border-color:#f8f9fa!important}.border-3.border-dark{border-color:#212529!important}.border-3.border-link{border-color:#3273dc!important}.border-primary-3{border:3px solid #0d6efd!important}.border-secondary-3{border:3px solid #6c757d!important}.border-success-3{border:3px solid #198754!important}.border-info-3{border:3px solid #0dcaf0!important}.border-warning-3{border:3px solid #ffc107!important}.border-danger-3{border:3px solid #dc3545!important}.border-light-3{border:3px solid #f8f9fa!important}.border-dark-3{border:3px solid #212529!important}.border-link-3{border:3px solid #3273dc!important}.border-top-3{border-top:3px solid #dee2e6!important}.border-primary-top-3{border-top:3px solid #0d6efd!important}.border-secondary-top-3{border-top:3px solid #6c757d!important}.border-success-top-3{border-top:3px solid #198754!important}.border-info-top-3{border-top:3px solid #0dcaf0!important}.border-warning-top-3{border-top:3px solid #ffc107!important}.border-danger-top-3{border-top:3px solid #dc3545!important}.border-light-top-3{border-top:3px solid #f8f9fa!important}.border-dark-top-3{border-top:3px solid #212529!important}.border-link-top-3{border-top:3px solid #3273dc!important}.border-end-3{border-right:3px solid #dee2e6!important}.border-primary-end-3{border-right:3px solid #0d6efd!important}.border-secondary-end-3{border-right:3px solid #6c757d!important}.border-success-end-3{border-right:3px solid #198754!important}.border-info-end-3{border-right:3px solid #0dcaf0!important}.border-warning-end-3{border-right:3px solid #ffc107!important}.border-danger-end-3{border-right:3px solid #dc3545!important}.border-light-end-3{border-right:3px solid #f8f9fa!important}.border-dark-end-3{border-right:3px solid #212529!important}.border-link-end-3{border-right:3px solid #3273dc!important}.border-bottom-3{border-bottom:3px solid #dee2e6!important}.border-primary-bottom-3{border-bottom:3px solid #0d6efd!important}.border-secondary-bottom-3{border-bottom:3px solid #6c757d!important}.border-success-bottom-3{border-bottom:3px solid #198754!important}.border-info-bottom-3{border-bottom:3px solid #0dcaf0!important}.border-warning-bottom-3{border-bottom:3px solid #ffc107!important}.border-danger-bottom-3{border-bottom:3px solid #dc3545!important}.border-light-bottom-3{border-bottom:3px solid #f8f9fa!important}.border-dark-bottom-3{border-bottom:3px solid #212529!important}.border-link-bottom-3{border-bottom:3px solid #3273dc!important}.border-start-3{border-left:3px solid #dee2e6!important}.border-primary-start-3{border-left:3px solid #0d6efd!important}.border-secondary-start-3{border-left:3px solid #6c757d!important}.border-success-start-3{border-left:3px solid #198754!important}.border-info-start-3{border-left:3px solid #0dcaf0!important}.border-warning-start-3{border-left:3px solid #ffc107!important}.border-danger-start-3{border-left:3px solid #dc3545!important}.border-light-start-3{border-left:3px solid #f8f9fa!important}.border-dark-start-3{border-left:3px solid #212529!important}.border-link-start-3{border-left:3px solid #3273dc!important}.border-4{border:4px solid #dee2e6!important}.border-4.border-primary{border-color:#0d6efd!important}.border-4.border-secondary{border-color:#6c757d!important}.border-4.border-success{border-color:#198754!important}.border-4.border-info{border-color:#0dcaf0!important}.border-4.border-warning{border-color:#ffc107!important}.border-4.border-danger{border-color:#dc3545!important}.border-4.border-light{border-color:#f8f9fa!important}.border-4.border-dark{border-color:#212529!important}.border-4.border-link{border-color:#3273dc!important}.border-primary-4{border:4px solid #0d6efd!important}.border-secondary-4{border:4px solid #6c757d!important}.border-success-4{border:4px solid #198754!important}.border-info-4{border:4px solid #0dcaf0!important}.border-warning-4{border:4px solid #ffc107!important}.border-danger-4{border:4px solid #dc3545!important}.border-light-4{border:4px solid #f8f9fa!important}.border-dark-4{border:4px solid #212529!important}.border-link-4{border:4px solid #3273dc!important}.border-top-4{border-top:4px solid #dee2e6!important}.border-primary-top-4{border-top:4px solid #0d6efd!important}.border-secondary-top-4{border-top:4px solid #6c757d!important}.border-success-top-4{border-top:4px solid #198754!important}.border-info-top-4{border-top:4px solid #0dcaf0!important}.border-warning-top-4{border-top:4px solid #ffc107!important}.border-danger-top-4{border-top:4px solid #dc3545!important}.border-light-top-4{border-top:4px solid #f8f9fa!important}.border-dark-top-4{border-top:4px solid #212529!important}.border-link-top-4{border-top:4px solid #3273dc!important}.border-end-4{border-right:4px solid #dee2e6!important}.border-primary-end-4{border-right:4px solid #0d6efd!important}.border-secondary-end-4{border-right:4px solid #6c757d!important}.border-success-end-4{border-right:4px solid #198754!important}.border-info-end-4{border-right:4px solid #0dcaf0!important}.border-warning-end-4{border-right:4px solid #ffc107!important}.border-danger-end-4{border-right:4px solid #dc3545!important}.border-light-end-4{border-right:4px solid #f8f9fa!important}.border-dark-end-4{border-right:4px solid #212529!important}.border-link-end-4{border-right:4px solid #3273dc!important}.border-bottom-4{border-bottom:4px solid #dee2e6!important}.border-primary-bottom-4{border-bottom:4px solid #0d6efd!important}.border-secondary-bottom-4{border-bottom:4px solid #6c757d!important}.border-success-bottom-4{border-bottom:4px solid #198754!important}.border-info-bottom-4{border-bottom:4px solid #0dcaf0!important}.border-warning-bottom-4{border-bottom:4px solid #ffc107!important}.border-danger-bottom-4{border-bottom:4px solid #dc3545!important}.border-light-bottom-4{border-bottom:4px solid #f8f9fa!important}.border-dark-bottom-4{border-bottom:4px solid #212529!important}.border-link-bottom-4{border-bottom:4px solid #3273dc!important}.border-start-4{border-left:4px solid #dee2e6!important}.border-primary-start-4{border-left:4px solid #0d6efd!important}.border-secondary-start-4{border-left:4px solid #6c757d!important}.border-success-start-4{border-left:4px solid #198754!important}.border-info-start-4{border-left:4px solid #0dcaf0!important}.border-warning-start-4{border-left:4px solid #ffc107!important}.border-danger-start-4{border-left:4px solid #dc3545!important}.border-light-start-4{border-left:4px solid #f8f9fa!important}.border-dark-start-4{border-left:4px solid #212529!important}.border-link-start-4{border-left:4px solid #3273dc!important}.border-5{border:5px solid #dee2e6!important}.border-5.border-primary{border-color:#0d6efd!important}.border-5.border-secondary{border-color:#6c757d!important}.border-5.border-success{border-color:#198754!important}.border-5.border-info{border-color:#0dcaf0!important}.border-5.border-warning{border-color:#ffc107!important}.border-5.border-danger{border-color:#dc3545!important}.border-5.border-light{border-color:#f8f9fa!important}.border-5.border-dark{border-color:#212529!important}.border-5.border-link{border-color:#3273dc!important}.border-primary-5{border:5px solid #0d6efd!important}.border-secondary-5{border:5px solid #6c757d!important}.border-success-5{border:5px solid #198754!important}.border-info-5{border:5px solid #0dcaf0!important}.border-warning-5{border:5px solid #ffc107!important}.border-danger-5{border:5px solid #dc3545!important}.border-light-5{border:5px solid #f8f9fa!important}.border-dark-5{border:5px solid #212529!important}.border-link-5{border:5px solid #3273dc!important}.border-top-5{border-top:5px solid #dee2e6!important}.border-primary-top-5{border-top:5px solid #0d6efd!important}.border-secondary-top-5{border-top:5px solid #6c757d!important}.border-success-top-5{border-top:5px solid #198754!important}.border-info-top-5{border-top:5px solid #0dcaf0!important}.border-warning-top-5{border-top:5px solid #ffc107!important}.border-danger-top-5{border-top:5px solid #dc3545!important}.border-light-top-5{border-top:5px solid #f8f9fa!important}.border-dark-top-5{border-top:5px solid #212529!important}.border-link-top-5{border-top:5px solid #3273dc!important}.border-end-5{border-right:5px solid #dee2e6!important}.border-primary-end-5{border-right:5px solid #0d6efd!important}.border-secondary-end-5{border-right:5px solid #6c757d!important}.border-success-end-5{border-right:5px solid #198754!important}.border-info-end-5{border-right:5px solid #0dcaf0!important}.border-warning-end-5{border-right:5px solid #ffc107!important}.border-danger-end-5{border-right:5px solid #dc3545!important}.border-light-end-5{border-right:5px solid #f8f9fa!important}.border-dark-end-5{border-right:5px solid #212529!important}.border-link-end-5{border-right:5px solid #3273dc!important}.border-bottom-5{border-bottom:5px solid #dee2e6!important}.border-primary-bottom-5{border-bottom:5px solid #0d6efd!important}.border-secondary-bottom-5{border-bottom:5px solid #6c757d!important}.border-success-bottom-5{border-bottom:5px solid #198754!important}.border-info-bottom-5{border-bottom:5px solid #0dcaf0!important}.border-warning-bottom-5{border-bottom:5px solid #ffc107!important}.border-danger-bottom-5{border-bottom:5px solid #dc3545!important}.border-light-bottom-5{border-bottom:5px solid #f8f9fa!important}.border-dark-bottom-5{border-bottom:5px solid #212529!important}.border-link-bottom-5{border-bottom:5px solid #3273dc!important}.border-start-5{border-left:5px solid #dee2e6!important}.border-primary-start-5{border-left:5px solid #0d6efd!important}.border-secondary-start-5{border-left:5px solid #6c757d!important}.border-success-start-5{border-left:5px solid #198754!important}.border-info-start-5{border-left:5px solid #0dcaf0!important}.border-warning-start-5{border-left:5px solid #ffc107!important}.border-danger-start-5{border-left:5px solid #dc3545!important}.border-light-start-5{border-left:5px solid #f8f9fa!important}.border-dark-start-5{border-left:5px solid #212529!important}.border-link-start-5{border-left:5px solid #3273dc!important}.cursor-pointer{cursor:pointer}.grid{display:grid;grid-template-rows:repeat(var(--bs-rows,1),1fr);grid-template-columns:repeat(var(--bs-columns,12),1fr);gap:var(--bs-gap,1.5rem)}.grid.g-rows-1{grid-template-rows:repeat(1,minmax(0,1fr))}.grid.g-rows-2{grid-template-rows:repeat(2,minmax(0,1fr))}.grid.g-rows-3{grid-template-rows:repeat(3,minmax(0,1fr))}.grid.g-rows-4{grid-template-rows:repeat(4,minmax(0,1fr))}.grid.g-rows-5{grid-template-rows:repeat(5,minmax(0,1fr))}.grid.g-rows-6{grid-template-rows:repeat(6,minmax(0,1fr))}.grid.g-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid.g-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.g-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.g-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid.g-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid.g-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.grid.g-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.grid.g-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.grid.g-cols-9{grid-template-columns:repeat(9,minmax(0,1fr))}.grid.g-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.grid.g-cols-11{grid-template-columns:repeat(11,minmax(0,1fr))}.grid.g-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}@media(min-width:576px){.grid.g-rows-sm-1{grid-template-rows:repeat(1,minmax(0,1fr))}.grid.g-rows-sm-2{grid-template-rows:repeat(2,minmax(0,1fr))}.grid.g-rows-sm-3{grid-template-rows:repeat(3,minmax(0,1fr))}.grid.g-rows-sm-4{grid-template-rows:repeat(4,minmax(0,1fr))}.grid.g-rows-sm-5{grid-template-rows:repeat(5,minmax(0,1fr))}.grid.g-rows-sm-6{grid-template-rows:repeat(6,minmax(0,1fr))}.grid.g-cols-sm-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid.g-cols-sm-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.g-cols-sm-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.g-cols-sm-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid.g-cols-sm-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid.g-cols-sm-6{grid-template-columns:repeat(6,minmax(0,1fr))}.grid.g-cols-sm-7{grid-template-columns:repeat(7,minmax(0,1fr))}.grid.g-cols-sm-8{grid-template-columns:repeat(8,minmax(0,1fr))}.grid.g-cols-sm-9{grid-template-columns:repeat(9,minmax(0,1fr))}.grid.g-cols-sm-10{grid-template-columns:repeat(10,minmax(0,1fr))}.grid.g-cols-sm-11{grid-template-columns:repeat(11,minmax(0,1fr))}.grid.g-cols-sm-12{grid-template-columns:repeat(12,minmax(0,1fr))}}@media(min-width:768px){.grid.g-rows-md-1{grid-template-rows:repeat(1,minmax(0,1fr))}.grid.g-rows-md-2{grid-template-rows:repeat(2,minmax(0,1fr))}.grid.g-rows-md-3{grid-template-rows:repeat(3,minmax(0,1fr))}.grid.g-rows-md-4{grid-template-rows:repeat(4,minmax(0,1fr))}.grid.g-rows-md-5{grid-template-rows:repeat(5,minmax(0,1fr))}.grid.g-rows-md-6{grid-template-rows:repeat(6,minmax(0,1fr))}.grid.g-cols-md-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid.g-cols-md-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.g-cols-md-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.g-cols-md-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid.g-cols-md-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid.g-cols-md-6{grid-template-columns:repeat(6,minmax(0,1fr))}.grid.g-cols-md-7{grid-template-columns:repeat(7,minmax(0,1fr))}.grid.g-cols-md-8{grid-template-columns:repeat(8,minmax(0,1fr))}.grid.g-cols-md-9{grid-template-columns:repeat(9,minmax(0,1fr))}.grid.g-cols-md-10{grid-template-columns:repeat(10,minmax(0,1fr))}.grid.g-cols-md-11{grid-template-columns:repeat(11,minmax(0,1fr))}.grid.g-cols-md-12{grid-template-columns:repeat(12,minmax(0,1fr))}}@media(min-width:992px){.grid.g-rows-lg-1{grid-template-rows:repeat(1,minmax(0,1fr))}.grid.g-rows-lg-2{grid-template-rows:repeat(2,minmax(0,1fr))}.grid.g-rows-lg-3{grid-template-rows:repeat(3,minmax(0,1fr))}.grid.g-rows-lg-4{grid-template-rows:repeat(4,minmax(0,1fr))}.grid.g-rows-lg-5{grid-template-rows:repeat(5,minmax(0,1fr))}.grid.g-rows-lg-6{grid-template-rows:repeat(6,minmax(0,1fr))}.grid.g-cols-lg-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid.g-cols-lg-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.g-cols-lg-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.g-cols-lg-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid.g-cols-lg-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid.g-cols-lg-6{grid-template-columns:repeat(6,minmax(0,1fr))}.grid.g-cols-lg-7{grid-template-columns:repeat(7,minmax(0,1fr))}.grid.g-cols-lg-8{grid-template-columns:repeat(8,minmax(0,1fr))}.grid.g-cols-lg-9{grid-template-columns:repeat(9,minmax(0,1fr))}.grid.g-cols-lg-10{grid-template-columns:repeat(10,minmax(0,1fr))}.grid.g-cols-lg-11{grid-template-columns:repeat(11,minmax(0,1fr))}.grid.g-cols-lg-12{grid-template-columns:repeat(12,minmax(0,1fr))}}@media(min-width:1200px){.grid.g-rows-xl-1{grid-template-rows:repeat(1,minmax(0,1fr))}.grid.g-rows-xl-2{grid-template-rows:repeat(2,minmax(0,1fr))}.grid.g-rows-xl-3{grid-template-rows:repeat(3,minmax(0,1fr))}.grid.g-rows-xl-4{grid-template-rows:repeat(4,minmax(0,1fr))}.grid.g-rows-xl-5{grid-template-rows:repeat(5,minmax(0,1fr))}.grid.g-rows-xl-6{grid-template-rows:repeat(6,minmax(0,1fr))}.grid.g-cols-xl-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid.g-cols-xl-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.g-cols-xl-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.g-cols-xl-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid.g-cols-xl-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid.g-cols-xl-6{grid-template-columns:repeat(6,minmax(0,1fr))}.grid.g-cols-xl-7{grid-template-columns:repeat(7,minmax(0,1fr))}.grid.g-cols-xl-8{grid-template-columns:repeat(8,minmax(0,1fr))}.grid.g-cols-xl-9{grid-template-columns:repeat(9,minmax(0,1fr))}.grid.g-cols-xl-10{grid-template-columns:repeat(10,minmax(0,1fr))}.grid.g-cols-xl-11{grid-template-columns:repeat(11,minmax(0,1fr))}.grid.g-cols-xl-12{grid-template-columns:repeat(12,minmax(0,1fr))}}@media(min-width:1400px){.grid.g-rows-xxl-1{grid-template-rows:repeat(1,minmax(0,1fr))}.grid.g-rows-xxl-2{grid-template-rows:repeat(2,minmax(0,1fr))}.grid.g-rows-xxl-3{grid-template-rows:repeat(3,minmax(0,1fr))}.grid.g-rows-xxl-4{grid-template-rows:repeat(4,minmax(0,1fr))}.grid.g-rows-xxl-5{grid-template-rows:repeat(5,minmax(0,1fr))}.grid.g-rows-xxl-6{grid-template-rows:repeat(6,minmax(0,1fr))}.grid.g-cols-xxl-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid.g-cols-xxl-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.g-cols-xxl-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.g-cols-xxl-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid.g-cols-xxl-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid.g-cols-xxl-6{grid-template-columns:repeat(6,minmax(0,1fr))}.grid.g-cols-xxl-7{grid-template-columns:repeat(7,minmax(0,1fr))}.grid.g-cols-xxl-8{grid-template-columns:repeat(8,minmax(0,1fr))}.grid.g-cols-xxl-9{grid-template-columns:repeat(9,minmax(0,1fr))}.grid.g-cols-xxl-10{grid-template-columns:repeat(10,minmax(0,1fr))}.grid.g-cols-xxl-11{grid-template-columns:repeat(11,minmax(0,1fr))}.grid.g-cols-xxl-12{grid-template-columns:repeat(12,minmax(0,1fr))}}.grid .g-col-1{grid-column:auto/span 1}.grid .g-col-2{grid-column:auto/span 2}.grid .g-col-3{grid-column:auto/span 3}.grid .g-col-4{grid-column:auto/span 4}.grid .g-col-5{grid-column:auto/span 5}.grid .g-col-6{grid-column:auto/span 6}.grid .g-col-7{grid-column:auto/span 7}.grid .g-col-8{grid-column:auto/span 8}.grid .g-col-9{grid-column:auto/span 9}.grid .g-col-10{grid-column:auto/span 10}.grid .g-col-11{grid-column:auto/span 11}.grid .g-col-12{grid-column:auto/span 12}.grid .g-start-1{grid-column-start:1}.grid .g-start-2{grid-column-start:2}.grid .g-start-3{grid-column-start:3}.grid .g-start-4{grid-column-start:4}.grid .g-start-5{grid-column-start:5}.grid .g-start-6{grid-column-start:6}.grid .g-start-7{grid-column-start:7}.grid .g-start-8{grid-column-start:8}.grid .g-start-9{grid-column-start:9}.grid .g-start-10{grid-column-start:10}.grid .g-start-11{grid-column-start:11}@media(min-width:576px){.grid .g-col-sm-1{grid-column:auto/span 1}.grid .g-col-sm-2{grid-column:auto/span 2}.grid .g-col-sm-3{grid-column:auto/span 3}.grid .g-col-sm-4{grid-column:auto/span 4}.grid .g-col-sm-5{grid-column:auto/span 5}.grid .g-col-sm-6{grid-column:auto/span 6}.grid .g-col-sm-7{grid-column:auto/span 7}.grid .g-col-sm-8{grid-column:auto/span 8}.grid .g-col-sm-9{grid-column:auto/span 9}.grid .g-col-sm-10{grid-column:auto/span 10}.grid .g-col-sm-11{grid-column:auto/span 11}.grid .g-col-sm-12{grid-column:auto/span 12}.grid .g-start-sm-1{grid-column-start:1}.grid .g-start-sm-2{grid-column-start:2}.grid .g-start-sm-3{grid-column-start:3}.grid .g-start-sm-4{grid-column-start:4}.grid .g-start-sm-5{grid-column-start:5}.grid .g-start-sm-6{grid-column-start:6}.grid .g-start-sm-7{grid-column-start:7}.grid .g-start-sm-8{grid-column-start:8}.grid .g-start-sm-9{grid-column-start:9}.grid .g-start-sm-10{grid-column-start:10}.grid .g-start-sm-11{grid-column-start:11}}@media(min-width:768px){.grid .g-col-md-1{grid-column:auto/span 1}.grid .g-col-md-2{grid-column:auto/span 2}.grid .g-col-md-3{grid-column:auto/span 3}.grid .g-col-md-4{grid-column:auto/span 4}.grid .g-col-md-5{grid-column:auto/span 5}.grid .g-col-md-6{grid-column:auto/span 6}.grid .g-col-md-7{grid-column:auto/span 7}.grid .g-col-md-8{grid-column:auto/span 8}.grid .g-col-md-9{grid-column:auto/span 9}.grid .g-col-md-10{grid-column:auto/span 10}.grid .g-col-md-11{grid-column:auto/span 11}.grid .g-col-md-12{grid-column:auto/span 12}.grid .g-start-md-1{grid-column-start:1}.grid .g-start-md-2{grid-column-start:2}.grid .g-start-md-3{grid-column-start:3}.grid .g-start-md-4{grid-column-start:4}.grid .g-start-md-5{grid-column-start:5}.grid .g-start-md-6{grid-column-start:6}.grid .g-start-md-7{grid-column-start:7}.grid .g-start-md-8{grid-column-start:8}.grid .g-start-md-9{grid-column-start:9}.grid .g-start-md-10{grid-column-start:10}.grid .g-start-md-11{grid-column-start:11}}@media(min-width:992px){.grid .g-col-lg-1{grid-column:auto/span 1}.grid .g-col-lg-2{grid-column:auto/span 2}.grid .g-col-lg-3{grid-column:auto/span 3}.grid .g-col-lg-4{grid-column:auto/span 4}.grid .g-col-lg-5{grid-column:auto/span 5}.grid .g-col-lg-6{grid-column:auto/span 6}.grid .g-col-lg-7{grid-column:auto/span 7}.grid .g-col-lg-8{grid-column:auto/span 8}.grid .g-col-lg-9{grid-column:auto/span 9}.grid .g-col-lg-10{grid-column:auto/span 10}.grid .g-col-lg-11{grid-column:auto/span 11}.grid .g-col-lg-12{grid-column:auto/span 12}.grid .g-start-lg-1{grid-column-start:1}.grid .g-start-lg-2{grid-column-start:2}.grid .g-start-lg-3{grid-column-start:3}.grid .g-start-lg-4{grid-column-start:4}.grid .g-start-lg-5{grid-column-start:5}.grid .g-start-lg-6{grid-column-start:6}.grid .g-start-lg-7{grid-column-start:7}.grid .g-start-lg-8{grid-column-start:8}.grid .g-start-lg-9{grid-column-start:9}.grid .g-start-lg-10{grid-column-start:10}.grid .g-start-lg-11{grid-column-start:11}}@media(min-width:1200px){.grid .g-col-xl-1{grid-column:auto/span 1}.grid .g-col-xl-2{grid-column:auto/span 2}.grid .g-col-xl-3{grid-column:auto/span 3}.grid .g-col-xl-4{grid-column:auto/span 4}.grid .g-col-xl-5{grid-column:auto/span 5}.grid .g-col-xl-6{grid-column:auto/span 6}.grid .g-col-xl-7{grid-column:auto/span 7}.grid .g-col-xl-8{grid-column:auto/span 8}.grid .g-col-xl-9{grid-column:auto/span 9}.grid .g-col-xl-10{grid-column:auto/span 10}.grid .g-col-xl-11{grid-column:auto/span 11}.grid .g-col-xl-12{grid-column:auto/span 12}.grid .g-start-xl-1{grid-column-start:1}.grid .g-start-xl-2{grid-column-start:2}.grid .g-start-xl-3{grid-column-start:3}.grid .g-start-xl-4{grid-column-start:4}.grid .g-start-xl-5{grid-column-start:5}.grid .g-start-xl-6{grid-column-start:6}.grid .g-start-xl-7{grid-column-start:7}.grid .g-start-xl-8{grid-column-start:8}.grid .g-start-xl-9{grid-column-start:9}.grid .g-start-xl-10{grid-column-start:10}.grid .g-start-xl-11{grid-column-start:11}}@media(min-width:1400px){.grid .g-col-xxl-1{grid-column:auto/span 1}.grid .g-col-xxl-2{grid-column:auto/span 2}.grid .g-col-xxl-3{grid-column:auto/span 3}.grid .g-col-xxl-4{grid-column:auto/span 4}.grid .g-col-xxl-5{grid-column:auto/span 5}.grid .g-col-xxl-6{grid-column:auto/span 6}.grid .g-col-xxl-7{grid-column:auto/span 7}.grid .g-col-xxl-8{grid-column:auto/span 8}.grid .g-col-xxl-9{grid-column:auto/span 9}.grid .g-col-xxl-10{grid-column:auto/span 10}.grid .g-col-xxl-11{grid-column:auto/span 11}.grid .g-col-xxl-12{grid-column:auto/span 12}.grid .g-start-xxl-1{grid-column-start:1}.grid .g-start-xxl-2{grid-column-start:2}.grid .g-start-xxl-3{grid-column-start:3}.grid .g-start-xxl-4{grid-column-start:4}.grid .g-start-xxl-5{grid-column-start:5}.grid .g-start-xxl-6{grid-column-start:6}.grid .g-start-xxl-7{grid-column-start:7}.grid .g-start-xxl-8{grid-column-start:8}.grid .g-start-xxl-9{grid-column-start:9}.grid .g-start-xxl-10{grid-column-start:10}.grid .g-start-xxl-11{grid-column-start:11}}ol.ordered-list-lower-alpha{list-style-type:lower-alpha}ol.ordered-list-lower-roman{list-style-type:lower-roman}ol.ordered-list-upper-alpha{list-style-type:upper-alpha}ol.ordered-list-upper-roman{list-style-type:upper-roman}.overflow-auto-auto{overflow:auto auto!important}.overflow-auto-hidden{overflow:auto hidden!important}.overflow-auto-visible{overflow:auto visible!important}.overflow-auto-scroll{overflow:auto scroll!important}.overflow-hidden-auto{overflow:hidden auto!important}.overflow-hidden-hidden{overflow:hidden hidden!important}.overflow-hidden-visible{overflow:hidden visible!important}.overflow-hidden-scroll{overflow:hidden scroll!important}.overflow-visible-auto{overflow:visible auto!important}.overflow-visible-hidden{overflow:visible hidden!important}.overflow-visible-visible{overflow:visible visible!important}.overflow-visible-scroll{overflow:visible scroll!important}.overflow-scroll-auto{overflow:scroll auto!important}.overflow-scroll-hidden{overflow:scroll hidden!important}.overflow-scroll-visible{overflow:scroll visible!important}.overflow-scroll-scroll{overflow:scroll scroll!important}@media(min-width:576px){.w-sm-25{width:25%!important}.w-sm-50{width:50%!important}.w-sm-75{width:75%!important}.w-sm-100{width:100%!important}.w-sm-auto{width:auto!important}.w-sm-33{width:33.333333%!important}.w-sm-66{width:66.666667%!important}.mw-sm-100{max-width:100%!important}.vw-sm-100{width:100vw!important}.min-vw-sm-100{min-width:100vw!important}.h-sm-25{height:25%!important}.h-sm-50{height:50%!important}.h-sm-75{height:75%!important}.h-sm-100{height:100%!important}.h-sm-auto{height:auto!important}.h-sm-33{height:33.333333%!important}.h-sm-66{height:66.666667%!important}.mh-sm-100{max-height:100%!important}.vh-sm-100{height:100vh!important}.min-vh-sm-100{min-height:100vh!important}}@media(min-width:768px){.w-md-25{width:25%!important}.w-md-50{width:50%!important}.w-md-75{width:75%!important}.w-md-100{width:100%!important}.w-md-auto{width:auto!important}.w-md-33{width:33.333333%!important}.w-md-66{width:66.666667%!important}.mw-md-100{max-width:100%!important}.vw-md-100{width:100vw!important}.min-vw-md-100{min-width:100vw!important}.h-md-25{height:25%!important}.h-md-50{height:50%!important}.h-md-75{height:75%!important}.h-md-100{height:100%!important}.h-md-auto{height:auto!important}.h-md-33{height:33.333333%!important}.h-md-66{height:66.666667%!important}.mh-md-100{max-height:100%!important}.vh-md-100{height:100vh!important}.min-vh-md-100{min-height:100vh!important}}@media(min-width:992px){.w-lg-25{width:25%!important}.w-lg-50{width:50%!important}.w-lg-75{width:75%!important}.w-lg-100{width:100%!important}.w-lg-auto{width:auto!important}.w-lg-33{width:33.333333%!important}.w-lg-66{width:66.666667%!important}.mw-lg-100{max-width:100%!important}.vw-lg-100{width:100vw!important}.min-vw-lg-100{min-width:100vw!important}.h-lg-25{height:25%!important}.h-lg-50{height:50%!important}.h-lg-75{height:75%!important}.h-lg-100{height:100%!important}.h-lg-auto{height:auto!important}.h-lg-33{height:33.333333%!important}.h-lg-66{height:66.666667%!important}.mh-lg-100{max-height:100%!important}.vh-lg-100{height:100vh!important}.min-vh-lg-100{min-height:100vh!important}}@media(min-width:1200px){.w-xl-25{width:25%!important}.w-xl-50{width:50%!important}.w-xl-75{width:75%!important}.w-xl-100{width:100%!important}.w-xl-auto{width:auto!important}.w-xl-33{width:33.333333%!important}.w-xl-66{width:66.666667%!important}.mw-xl-100{max-width:100%!important}.vw-xl-100{width:100vw!important}.min-vw-xl-100{min-width:100vw!important}.h-xl-25{height:25%!important}.h-xl-50{height:50%!important}.h-xl-75{height:75%!important}.h-xl-100{height:100%!important}.h-xl-auto{height:auto!important}.h-xl-33{height:33.333333%!important}.h-xl-66{height:66.666667%!important}.mh-xl-100{max-height:100%!important}.vh-xl-100{height:100vh!important}.min-vh-xl-100{min-height:100vh!important}}@media(min-width:1400px){.w-xxl-25{width:25%!important}.w-xxl-50{width:50%!important}.w-xxl-75{width:75%!important}.w-xxl-100{width:100%!important}.w-xxl-auto{width:auto!important}.w-xxl-33{width:33.333333%!important}.w-xxl-66{width:66.666667%!important}.mw-xxl-100{max-width:100%!important}.vw-xxl-100{width:100vw!important}.min-vw-xxl-100{min-width:100vw!important}.h-xxl-25{height:25%!important}.h-xxl-50{height:50%!important}.h-xxl-75{height:75%!important}.h-xxl-100{height:100%!important}.h-xxl-auto{height:auto!important}.h-xxl-33{height:33.333333%!important}.h-xxl-66{height:66.666667%!important}.mh-xxl-100{max-height:100%!important}.vh-xxl-100{height:100vh!important}.min-vh-xxl-100{min-height:100vh!important}}.gap-y-0{row-gap:0!important}.gap-x-0{column-gap:0!important}.gap-y-1{row-gap:.25rem!important}.gap-x-1{column-gap:.25rem!important}.gap-y-2{row-gap:.5rem!important}.gap-x-2{column-gap:.5rem!important}.gap-y-3{row-gap:1rem!important}.gap-x-3{column-gap:1rem!important}.gap-y-4{row-gap:1.5rem!important}.gap-x-4{column-gap:1.5rem!important}.gap-y-5{row-gap:3rem!important}.gap-x-5{column-gap:3rem!important}.fs-xs{font-size:.75rem!important}.fs-sm{font-size:.925rem!important}.fs-md{font-size:1.125rem!important}.fs-lg{font-size:1.25rem!important}.fs-xl{font-size:1.5rem!important}.flatpickr-months{margin:.5rem 0}.flatpickr-months .flatpickr-month,.flatpickr-months .flatpickr-next-month,.flatpickr-months .flatpickr-prev-month{height:auto;position:relative}.flatpickr-months .flatpickr-month:hover svg,.flatpickr-months .flatpickr-next-month:hover svg,.flatpickr-months .flatpickr-prev-month:hover svg{fill:#0d6efd}.flatpickr-months .flatpickr-month{color:#212529}.flatpickr-current-month{padding:13px 0 0 0;font-size:115%}.flatpickr-current-month span.cur-month{font-weight:700}.flatpickr-current-month span.cur-month:hover{background:rgba(13,110,253,.15)}.numInputWrapper:hover{background:rgba(13,110,253,.15)}.flatpickr-day{border-radius:.375rem;font-weight:500;color:#212529}.flatpickr-day.today{border-color:#0d6efd}.flatpickr-day.today:hover{background:#0d6efd;border-color:#0d6efd}.flatpickr-day:hover{background:rgba(13,110,253,.1);border-color:rgba(0,0,0,0)}span.flatpickr-weekday{color:#212529}.flatpickr-day.selected,.flatpickr-day.startRange,.flatpickr-day.endRange,.flatpickr-day.selected.inRange,.flatpickr-day.startRange.inRange,.flatpickr-day.endRange.inRange,.flatpickr-day.selected:focus,.flatpickr-day.startRange:focus,.flatpickr-day.endRange:focus,.flatpickr-day.selected:hover,.flatpickr-day.startRange:hover,.flatpickr-day.endRange:hover,.flatpickr-day.selected.prevMonthDay,.flatpickr-day.startRange.prevMonthDay,.flatpickr-day.endRange.prevMonthDay,.flatpickr-day.selected.nextMonthDay,.flatpickr-day.startRange.nextMonthDay,.flatpickr-day.endRange.nextMonthDay{background:#0d6efd;border-color:#0d6efd}.flatpickr-day.selected.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.startRange.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.endRange.startRange+.endRange:not(:nth-child(7n+1)){box-shadow:-10px 0 0 #0d6efd}.flatpickr-day.selected.startRange,.flatpickr-day.startRange.startRange,.flatpickr-day.endRange.startRange{border-radius:.375rem 0 0 .375rem}.flatpickr-day.selected.endRange,.flatpickr-day.startRange.endRange,.flatpickr-day.endRange.endRange{border-radius:0 .375rem .375rem 0}.flatpickr-monthSelect-month:hover,.flatpickr-monthSelect-month:focus{background:rgba(13,110,253,.1)}.flatpickr-monthSelect-month.selected{background-color:#0d6efd} -.snackbar{align-items:center;background-color:var(--b-snackbar-background,#323232);color:var(--b-snackbar-text-color,#fff);font-size:.875rem;line-height:1.428572;opacity:0;padding:.875rem 1.5rem;position:fixed;bottom:0;left:0;transform:translateY(100%);transition:opacity 0s var(--transition-duration-mobile-leaving,.195s),transform var(--transition-duration-mobile-leaving,.195s) cubic-bezier(.4,0,1,1);width:100%;z-index:60}@media(min-width:768px){.snackbar{border-radius:2px;max-width:35.5rem;min-width:18rem;left:50%;transform:translate(-50%,100%);width:auto}}@media(min-width:768px){.snackbar{transition:opacity 0s var(--transition-duration-tablet-leaving,.2535s),transform var(--transition-duration-tablet-leaving,.2535s) cubic-bezier(.4,0,1,1)}}@media(min-width:1200px){.snackbar{transition:opacity 0s var(--transition-duration-desktop-leaving,.13s),transform var(--transition-duration-desktop-leaving,.13s) cubic-bezier(.4,0,1,1)}}@media screen and (prefers-reduced-motion:reduce){.snackbar{transition:none}}.snackbar.snackbar-show{transition-duration:var(--transition-duration-mobile-entering,.225s);transition-property:transform;transition-timing-function:cubic-bezier(0,0,.2,1);opacity:1;transform:translateY(0)}@media(min-width:768px){.snackbar.snackbar-show{transition-duration:var(--transition-duration-tablet-entering,.2925s)}}@media(min-width:1200px){.snackbar.snackbar-show{transition-duration:var(--transition-duration-desktop-entering,.15s)}}@media screen and (prefers-reduced-motion:reduce){.snackbar.snackbar-show{transition:none}}@media(min-width:768px){.snackbar.snackbar-show{transform:translate(-50%,-1.5rem)}}.snackbar-header{display:flex;-ms-flex-pack:justify;justify-content:space-between;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background-color:DARKEN(var(--b-snackbar-background,#323232),30%);margin-right:auto;min-width:0;font-weight:bold;padding-bottom:.875rem}.snackbar-footer{display:flex;-ms-flex-pack:justify;justify-content:space-between;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background-color:DARKEN(var(--b-snackbar-background,#323232),30%);margin-right:auto;min-width:0;padding-top:.875rem}.snackbar-body{display:flex;-ms-flex-pack:justify;justify-content:space-between;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-right:auto;max-height:100%;min-width:0}.snackbar-action-button{transition-duration:var(--transition-duration-mobile,.3s);transition-property:background-color,background-image;transition-timing-function:cubic-bezier(.4,0,.2,1);background-color:transparent;background-image:none;border:0;color:var(--b-snackbar-button-color,var(--b-snackbar-button-color,#ff4081));cursor:pointer;display:block;flex-shrink:0;font-size:inherit;font-weight:500;line-height:inherit;padding:0;text-transform:uppercase;white-space:nowrap}@media(min-width:768px){.snackbar-action-button{transition-duration:var(--transition-duration-tablet,.39s)}}@media(min-width:1200px){.snackbar-action-button{transition-duration:var(--transition-duration-desktop,.2s)}}@media screen and (prefers-reduced-motion:reduce){.snackbar-action-button{transition:none}}.snackbar-action-button:focus,.snackbar-action-button:hover{color:var(--b-snackbar-button-hover-color,var(--b-snackbar-button-hover-color,#ff80ab));text-decoration:none}@media(min-width:768px){.snackbar-action-button{margin-left:3rem}}.snackbar-action-button:focus{outline:0}@media(min-width:768px){.snackbar-bottom-start,.snackbar-bottom-end{transform:translateY(100%)}.snackbar-bottom-start.snackbar-show,.snackbar-bottom-end.snackbar-show{transform:translateY(-1.5rem)}}@media(min-width:768px){.snackbar-bottom-start{left:1.5rem}}@media(min-width:768px){.snackbar-bottom-end{right:1.5rem;left:auto}}.snackbar-top{top:0;bottom:auto;transform:translateY(-100%)}@media(min-width:768px){.snackbar-top{transform:translateX(-50%) translateY(-100%)}.snackbar-top.snackbar-show{transform:translate(-50%,1.5rem)}}.snackbar-top-start{top:0;bottom:auto;transform:translateY(-100%);left:0}@media(min-width:768px){.snackbar-top-start{transform:translateY(-100%);left:1.5rem}.snackbar-top-start.snackbar-show{transform:translateY(1.5rem)}}.snackbar-top-end{top:0;bottom:auto;transform:translateY(-100%)}@media(min-width:768px){.snackbar-top-end{transform:translateY(-100%);right:1.5rem;left:auto}.snackbar-top-end.snackbar-show{transform:translateY(1.5rem)}}.snackbar-multi-line{padding-top:1.25rem;padding-bottom:1.25rem}.snackbar-multi-line .snackbar-body{white-space:normal}.snackbar-primary{background-color:var(--b-snackbar-background-primary,#cce5ff);color:var(--b-snackbar-text-primary,#004085)}.snackbar-action-button-primary{color:var(--b-snackbar-button-primary,#ff4081)}.snackbar-action-button-primary:focus,.snackbar-action-button-primary:hover{color:var(--b-snackbar-button-hover-primary,#ff80ab)}.snackbar-secondary{background-color:var(--b-snackbar-background-secondary,#e2e3e5);color:var(--b-snackbar-text-secondary,#383d41)}.snackbar-action-button-secondary{color:var(--b-snackbar-button-secondary,#ff4081)}.snackbar-action-button-secondary:focus,.snackbar-action-button-secondary:hover{color:var(--b-snackbar-button-hover-secondary,#ff80ab)}.snackbar-success{background-color:var(--b-snackbar-background-success,#d4edda);color:var(--b-snackbar-text-success,#155724)}.snackbar-action-button-success{color:var(--b-snackbar-button-success,#ff4081)}.snackbar-action-button-success:focus,.snackbar-action-button-success:hover{color:var(--b-snackbar-button-hover-success,#ff80ab)}.snackbar-danger{background-color:var(--b-snackbar-background-danger,#f8d7da);color:var(--b-snackbar-text-danger,#721c24)}.snackbar-action-button-danger{color:var(--b-snackbar-button-danger,#ff4081)}.snackbar-action-button-danger:focus,.snackbar-action-button-danger:hover{color:var(--b-snackbar-button-hover-danger,#ff80ab)}.snackbar-warning{background-color:var(--b-snackbar-background-warning,#fff3cd);color:var(--b-snackbar-text-warning,#856404)}.snackbar-action-button-warning{color:var(--b-snackbar-button-warning,#ff4081)}.snackbar-action-button-warning:focus,.snackbar-action-button-warning:hover{color:var(--b-snackbar-button-hover-warning,#ff80ab)}.snackbar-info{background-color:var(--b-snackbar-background-info,#d1ecf1);color:var(--b-snackbar-text-info,#0c5460)}.snackbar-action-button-info{color:var(--b-snackbar-button-info,#ff4081)}.snackbar-action-button-info:focus,.snackbar-action-button-info:hover{color:var(--b-snackbar-button-hover-info,#ff80ab)}.snackbar-light{background-color:var(--b-snackbar-background-light,#fefefe);color:var(--b-snackbar-text-light,#818182)}.snackbar-action-button-light{color:var(--b-snackbar-button-light,#ff4081)}.snackbar-action-button-light:focus,.snackbar-action-button-light:hover{color:var(--b-snackbar-button-hover-light,#ff80ab)}.snackbar-dark{background-color:var(--b-snackbar-background-dark,#d6d8d9);color:var(--b-snackbar-text-dark,#1b1e21)}.snackbar-action-button-dark{color:var(--b-snackbar-button-dark,#ff4081)}.snackbar-action-button-dark:focus,.snackbar-action-button-dark:hover{color:var(--b-snackbar-button-hover-dark,#ff80ab)}.snackbar-stack-bottom-end,.snackbar-stack-bottom-start,.snackbar-stack-bottom{display:flex;flex-direction:column;position:fixed;z-index:1090!important;bottom:0}.snackbar-stack-bottom-end .snackbar,.snackbar-stack-bottom-start .snackbar,.snackbar-stack-bottom .snackbar{position:relative;flex-direction:row;margin-bottom:0}.snackbar-stack-bottom-end .snackbar:not(:last-child),.snackbar-stack-bottom-start .snackbar:not(:last-child),.snackbar-stack-bottom .snackbar:not(:last-child){margin-bottom:1.5rem}.snackbar-stack-top-end,.snackbar-stack-top-start,.snackbar-stack-top{display:flex;flex-direction:column;align-items:center;justify-content:center;align-content:center;position:fixed;z-index:1090!important;top:0}.snackbar-stack-top-end .snackbar,.snackbar-stack-top-start .snackbar,.snackbar-stack-top .snackbar{position:relative;flex-direction:row;margin-bottom:0}.snackbar-stack-top-end .snackbar:not(:last-child),.snackbar-stack-top-start .snackbar:not(:last-child),.snackbar-stack-top .snackbar:not(:last-child){margin-bottom:1.5rem}.snackbar-stack-top .snackbar.snackbar-show,.snackbar-stack-top-start .snackbar.snackbar-show,.snackbar-stack-top-end .snackbar.snackbar-show{transition:all var(--stack-transition-duration,1000);animation:showTop var(--stack-animation-duration,500) forwards}.snackbar-stack-top .snackbar-hide,.snackbar-stack-top-start .snackbar-hide,.snackbar-stack-top-end .snackbar-hide{transition:all var(--stack-transition-duration,1000);animation:hideTop var(--stack-animation-duration,500) backwards}.snackbar-stack-bottom .snackbar.snackbar-show,.snackbar-stack-bottom-start .snackbar.snackbar-show,.snackbar-stack-bottom-end .snackbar.snackbar-show{transition:all var(--stack-transition-duration,1000);animation:showBottom var(--stack-animation-duration,500) forwards}.snackbar-stack-bottom .snackbar-hide,.snackbar-stack-bottom-start .snackbar-hide,.snackbar-stack-bottom-end .snackbar-hide{transition:all var(--stack-transition-duration,1000);animation:hideBottom var(--stack-animation-duration,500) backwards}@keyframes showTop{0%{opacity:0}100%{opacity:1}}@keyframes hideTop{0%{opacity:1;top:0}100%{opacity:0;top:-100px}}@keyframes showBottom{0%{opacity:0}100%{opacity:1}}@keyframes hideBottom{0%{opacity:1}100%{opacity:0}}@media(min-width:576px){.snackbar-stack-bottom{left:50%;transform:translate(-50%,0%)}.snackbar-stack-bottom-start{left:1.5rem}.snackbar-stack-bottom-end{right:1.5rem}.snackbar-stack-top-start{left:1.5rem;top:1.5rem}.snackbar-stack-top-end{right:1.5rem;top:1.5rem}.snackbar-stack-top{left:50%;transform:translate(-50%,0%);top:1.5rem}}@media(max-width:576px){.snackbar-stack{right:0;left:0}} -.radar-spinner,.radar-spinner *{box-sizing:border-box}.radar-spinner{height:60px;width:60px;position:relative}.radar-spinner .circle{position:absolute;height:100%;width:100%;top:0;left:0;animation:radar-spinner-animation 2s infinite}.radar-spinner .circle:nth-child(1){padding:calc(60px*5*2*0/110);animation-delay:300ms}.radar-spinner .circle:nth-child(2){padding:calc(60px*5*2*1/110);animation-delay:300ms}.radar-spinner .circle:nth-child(3){padding:calc(60px*5*2*2/110);animation-delay:300ms}.radar-spinner .circle:nth-child(4){padding:calc(60px*5*2*3/110);animation-delay:0ms}.radar-spinner .circle-inner,.radar-spinner .circle-inner-container{height:100%;width:100%;border-radius:50%;border:calc(60px*5/110) solid transparent}.radar-spinner .circle-inner{border-left-color:var(--secondary,#ff1d5e);border-right-color:var(--secondary,#ff1d5e)}@keyframes radar-spinner-animation{50%{transform:rotate(180deg)}100%{transform:rotate(0deg)}} -@keyframes chartjs-render-animation{from{opacity:.99}to{opacity:1}}.chartjs-render-monitor{animation:chartjs-render-animation 1ms}.chartjs-size-monitor,.chartjs-size-monitor-expand,.chartjs-size-monitor-shrink{position:absolute;direction:ltr;left:0;top:0;right:0;bottom:0;overflow:hidden;pointer-events:none;visibility:hidden;z-index:-1}.chartjs-size-monitor-expand>div{position:absolute;width:1000000px;height:1000000px;left:0;top:0}.chartjs-size-monitor-shrink>div{position:absolute;width:200%;height:200%;left:0;top:0} +.pickr{position:relative;overflow:visible;transform:translateY(0)}.pickr *{box-sizing:border-box;outline:0;border:0;-webkit-appearance:none}.pickr .pcr-button{position:relative;height:2em;width:2em;padding:.5em;cursor:pointer;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Helvetica Neue",Arial,sans-serif;border-radius:.15em;background:url('data:image/svg+xml;utf8, ') no-repeat center;background-size:0;transition:all .3s}.pickr .pcr-button::before{position:absolute;content:"";top:0;left:0;width:100%;height:100%;background:url('data:image/svg+xml;utf8, ');background-size:.5em;border-radius:.15em;z-index:-1}.pickr .pcr-button::before{z-index:initial}.pickr .pcr-button::after{position:absolute;content:"";top:0;left:0;height:100%;width:100%;transition:background .3s;background:var(--pcr-color);border-radius:.15em}.pickr .pcr-button.clear{background-size:70%}.pickr .pcr-button.clear::before{opacity:0}.pickr .pcr-button.clear:focus{box-shadow:0 0 0 1px rgba(255,255,255,.85),0 0 0 3px var(--pcr-color)}.pickr .pcr-button.disabled{cursor:not-allowed}.pickr *,.pcr-app *{box-sizing:border-box;outline:0;border:0;-webkit-appearance:none}.pickr input:focus,.pickr input.pcr-active,.pickr button:focus,.pickr button.pcr-active,.pcr-app input:focus,.pcr-app input.pcr-active,.pcr-app button:focus,.pcr-app button.pcr-active{box-shadow:0 0 0 1px rgba(255,255,255,.85),0 0 0 3px var(--pcr-color)}.pickr .pcr-palette,.pickr .pcr-slider,.pcr-app .pcr-palette,.pcr-app .pcr-slider{transition:box-shadow .3s}.pickr .pcr-palette:focus,.pickr .pcr-slider:focus,.pcr-app .pcr-palette:focus,.pcr-app .pcr-slider:focus{box-shadow:0 0 0 1px rgba(255,255,255,.85),0 0 0 3px rgba(0,0,0,.25)}.pcr-app{position:fixed;display:flex;flex-direction:column;z-index:10000;border-radius:.1em;background:#fff;opacity:0;visibility:hidden;transition:opacity .3s,visibility 0s .3s;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Helvetica Neue",Arial,sans-serif;box-shadow:0 .15em 1.5em 0 rgba(0,0,0,.1),0 0 1em 0 rgba(0,0,0,.03);left:0;top:0}.pcr-app.visible{transition:opacity .3s;visibility:visible;opacity:1}.pcr-app .pcr-swatches{display:flex;flex-wrap:wrap;margin-top:.75em}.pcr-app .pcr-swatches.pcr-last{margin:0}@supports(display:grid){.pcr-app .pcr-swatches{display:grid;align-items:center;grid-template-columns:repeat(auto-fit,1.75em)}}.pcr-app .pcr-swatches>button{font-size:1em;position:relative;width:calc(1.75em - 5px);height:calc(1.75em - 5px);border-radius:.15em;cursor:pointer;margin:2.5px;flex-shrink:0;justify-self:center;transition:all .15s;overflow:hidden;background:transparent;z-index:1}.pcr-app .pcr-swatches>button::before{position:absolute;content:"";top:0;left:0;width:100%;height:100%;background:url('data:image/svg+xml;utf8, ');background-size:6px;border-radius:.15em;z-index:-1}.pcr-app .pcr-swatches>button::after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:var(--pcr-color);border:1px solid rgba(0,0,0,.05);border-radius:.15em;box-sizing:border-box}.pcr-app .pcr-swatches>button:hover{filter:brightness(1.05)}.pcr-app .pcr-swatches>button:not(.pcr-active){box-shadow:none}.pcr-app .pcr-interaction{display:flex;flex-wrap:wrap;align-items:center;margin:0 -.2em 0 -.2em}.pcr-app .pcr-interaction>*{margin:0 .2em}.pcr-app .pcr-interaction input{letter-spacing:.07em;font-size:.75em;text-align:center;cursor:pointer;color:#75797e;background:#f1f3f4;border-radius:.15em;transition:all .15s;padding:.45em .5em;margin-top:.75em}.pcr-app .pcr-interaction input:hover{filter:brightness(.975)}.pcr-app .pcr-interaction input:focus{box-shadow:0 0 0 1px rgba(255,255,255,.85),0 0 0 3px rgba(66,133,244,.75)}.pcr-app .pcr-interaction .pcr-result{color:#75797e;text-align:left;flex:1 1 8em;min-width:8em;transition:all .2s;border-radius:.15em;background:#f1f3f4;cursor:text}.pcr-app .pcr-interaction .pcr-result::-moz-selection{background:#4285f4;color:#fff}.pcr-app .pcr-interaction .pcr-result::selection{background:#4285f4;color:#fff}.pcr-app .pcr-interaction .pcr-type.active{color:#fff;background:#4285f4}.pcr-app .pcr-interaction .pcr-save,.pcr-app .pcr-interaction .pcr-cancel,.pcr-app .pcr-interaction .pcr-clear{color:#fff;width:auto}.pcr-app .pcr-interaction .pcr-save,.pcr-app .pcr-interaction .pcr-cancel,.pcr-app .pcr-interaction .pcr-clear{color:#fff}.pcr-app .pcr-interaction .pcr-save:hover,.pcr-app .pcr-interaction .pcr-cancel:hover,.pcr-app .pcr-interaction .pcr-clear:hover{filter:brightness(.925)}.pcr-app .pcr-interaction .pcr-save{background:#4285f4}.pcr-app .pcr-interaction .pcr-clear,.pcr-app .pcr-interaction .pcr-cancel{background:#f44250}.pcr-app .pcr-interaction .pcr-clear:focus,.pcr-app .pcr-interaction .pcr-cancel:focus{box-shadow:0 0 0 1px rgba(255,255,255,.85),0 0 0 3px rgba(244,66,80,.75)}.pcr-app .pcr-selection .pcr-picker{position:absolute;height:18px;width:18px;border:2px solid #fff;border-radius:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.pcr-app .pcr-selection .pcr-color-palette,.pcr-app .pcr-selection .pcr-color-chooser,.pcr-app .pcr-selection .pcr-color-opacity{position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:flex;flex-direction:column;cursor:grab;cursor:-webkit-grab}.pcr-app .pcr-selection .pcr-color-palette:active,.pcr-app .pcr-selection .pcr-color-chooser:active,.pcr-app .pcr-selection .pcr-color-opacity:active{cursor:grabbing;cursor:-webkit-grabbing}.pcr-app[data-theme=monolith]{width:14.25em;max-width:95vw;padding:.8em}.pcr-app[data-theme=monolith] .pcr-selection{display:flex;flex-direction:column;justify-content:space-between;flex-grow:1}.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-preview{position:relative;z-index:1;width:100%;height:1em;display:flex;flex-direction:row;justify-content:space-between;margin-bottom:.5em}.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-preview::before{position:absolute;content:"";top:0;left:0;width:100%;height:100%;background:url('data:image/svg+xml;utf8, ');background-size:.5em;border-radius:.15em;z-index:-1}.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-preview .pcr-last-color{cursor:pointer;transition:background-color .3s,box-shadow .3s;border-radius:.15em 0 0 .15em;z-index:2}.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-preview .pcr-current-color{border-radius:0 .15em .15em 0}.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-preview .pcr-last-color,.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-preview .pcr-current-color{background:var(--pcr-color);width:50%;height:100%}.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-palette{width:100%;height:8em;z-index:1}.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-palette .pcr-palette{border-radius:.15em;width:100%;height:100%}.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-palette .pcr-palette::before{position:absolute;content:"";top:0;left:0;width:100%;height:100%;background:url('data:image/svg+xml;utf8, ');background-size:.5em;border-radius:.15em;z-index:-1}.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-chooser,.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-opacity{height:.5em;margin-top:.75em}.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-chooser .pcr-picker,.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-opacity .pcr-picker{top:50%;transform:translateY(-50%)}.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-chooser .pcr-slider,.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-opacity .pcr-slider{flex-grow:1;border-radius:50em}.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-chooser .pcr-slider{background:linear-gradient(to right,#f00,#ff0,#0f0,#0ff,#00f,#f0f,#f00)}.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-opacity .pcr-slider{background:linear-gradient(to right,transparent,#000),url('data:image/svg+xml;utf8, ');background-size:100%,.25em} +.badge-close{cursor:pointer}.badge-close::before{height:2px;width:50%}.badge-close::after{height:50%;width:2px}.badge-close:hover,.badge-close:focus{background-color:rgba(10,10,10,.3)}.badge-close:active{background-color:rgba(10,10,10,.4)}.navbar-nav .nav-item:hover{cursor:pointer}.navbar-nav .nav-link:hover{cursor:pointer}.nav .nav-link:hover{cursor:pointer}.nav-item{position:relative}.b-bar-horizontal .nav-item.dropdown .dropdown-menu>.dropdown>.dropdown-item{width:100%}.b-bar-horizontal .nav-item.dropdown .dropdown-menu>.dropdown>.dropdown-item::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.b-bar-horizontal .nav-item.dropdown .dropdown-menu>.dropdown>.dropdown-item:empty::after{margin-left:0}.b-bar-horizontal .nav-item.dropdown .dropdown-menu>.dropdown>.dropdown-item::after{transform:rotate(-90deg);position:absolute;right:10%;top:45%}.b-bar-horizontal .nav-item.dropdown .dropdown-menu>.dropdown>.dropdown-menu{top:0;left:100%;margin-left:0;margin-right:.1rem}.btn-group>.b-tooltip:not(:last-child)>.btn{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.b-tooltip:not(:first-child)>.btn{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group.btn-group-toggle .btn.active.disabled{opacity:1}.btn-group-vertical>.b-tooltip:not(:last-child)>.btn{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.b-tooltip:not(:first-child)>.btn{border-top-left-radius:0;border-top-right-radius:0}.btn-xs,.btn-group-xs>.btn{padding:.15rem .5rem;font-size:.75rem;line-height:1.5;border-radius:.15rem}.btn-md,.btn-group-md>.btn{padding:.47rem 1rem;font-size:1.125rem;line-height:1.5;border-radius:.25rem}.btn-xl,.btn-group-xl>.btn{padding:.5rem 1rem;font-size:1.5rem;line-height:1.5;border-radius:1rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=submit].btn-block,input[type=reset].btn-block,input[type=button].btn-block{width:100%}.card-deck .card{height:100%;margin-bottom:.75rem}@media(min-width:576px){.card-deck{display:flex;flex-flow:row wrap;margin-right:-.75rem;margin-left:-.75rem}.card-deck .card{flex:1 0 0%;margin-right:.75rem;margin-bottom:0;margin-left:.75rem}}hr.divider.divider-text{position:unset}hr.divider.divider-text::before{top:unset}.table-fixed-header .table thead tr th.dropdown-table-fixed-header-visible{z-index:11}.dropdown-menu-position-strategy{width:max-content;top:0;left:0}.dropdown-menu-position-strategy-absolute{position:absolute}.dropdown-menu-position-strategy-fixed{position:fixed}.dropdown-toggle.dropdown-toggle-hidden::after{content:none!important}.dropdown-toggle.dropdown-toggle-hidden::before{content:none!important}.dropdown-menu.show{animation-duration:.3s;animation-fill-mode:both;animation-name:fadeIn}.dropdown-menu a:not([href]).dropdown-item:not(.disabled){cursor:pointer}.dropdown-menu.dropdown-menu-scrollable{max-height:var(--dropdown-list-menu-max-height,200px);overflow-y:scroll}.b-is-autocomplete .dropdown-menu{width:100%;max-height:var(--autocomplete-menu-max-height,200px);overflow-y:scroll}.b-is-autocomplete .dropdown-menu .dropdown-item.focus{color:#1e2125!important;background-color:#e9ecef}.b-is-autocomplete.b-is-autocomplete-multipleselection{display:flex;align-items:center;flex-wrap:wrap;max-width:100%;width:100%;cursor:text;min-height:calc(1.5em + .75rem + 2px);height:auto;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius)}.b-is-autocomplete.b-is-autocomplete-multipleselection>input.form-control{display:inline-block;border:0;box-shadow:none;outline:0;background-color:transparent;max-width:inherit;width:auto;flex-grow:1}.b-is-autocomplete.b-is-autocomplete-multipleselection>.badge{margin-top:.25rem;margin-bottom:.25rem;line-height:1.5;flex-grow:initial}.b-is-autocomplete.b-is-autocomplete-multipleselection .dropdown-menu{top:100%}.b-is-autocomplete.b-is-autocomplete-multipleselection.focus{color:var(--bs-body-color);background-color:var(--bs-body-bg);border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.dropdown.btn-group>.btn.dropdown-toggle-split+.dropdown-menu.show{top:100%}.dropdown{position:relative}.dropdown .btn.dropdown-toggle:not(.btn-outline){box-shadow:none;border:0}.dropdown.dropdown-disabled.b-is-autocomplete{background-color:var(--b-theme-light,#e9ecef)}.dropdown>.dropdown-menu>.dropdown:not(.dropup,.dropstart,.dropend){position:relative}.dropdown>.dropdown-menu>.dropdown:not(.dropup,.dropstart,.dropend)>.dropdown-toggle{width:100%}.dropdown>.dropdown-menu>.dropdown:not(.dropup,.dropstart,.dropend)>.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown>.dropdown-menu>.dropdown:not(.dropup,.dropstart,.dropend)>.dropdown-toggle:empty::after{margin-left:0}.dropdown>.dropdown-menu>.dropdown:not(.dropup,.dropstart,.dropend)>.dropdown-toggle::after{position:absolute;right:10%;top:45%}.dropdown>.dropdown-menu>.dropdown:not(.dropup,.dropstart,.dropend)>.dropdown-menu{top:auto;left:auto;bottom:auto;right:auto}.dropdown>.dropdown-menu>.dropdown.dropup .dropdown-toggle::after,.dropdown>.dropdown-menu>.dropdown.dropend .dropdown-toggle::after{vertical-align:0;position:absolute;right:10%;top:45%}.dropdown>.dropdown-menu>.dropdown.dropstart .dropdown-toggle::after{vertical-align:0}.dropdown.dropup>.dropdown-menu{top:auto;bottom:auto;margin-top:0;margin-bottom:.125rem}.dropdown.dropup>.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropdown.dropup>.dropdown-toggle:empty::after{margin-left:0}.dropdown.dropend>.dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropdown.dropend>.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropdown.dropend>.dropdown-toggle:empty::after{margin-left:0}.dropdown.dropend>.dropdown-toggle::after{vertical-align:0}.dropdown.dropstart>.dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropdown.dropstart>.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropdown.dropstart>.dropdown-toggle::after{display:none}.dropdown.dropstart>.dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropdown.dropstart>.dropdown-toggle:empty::after{margin-left:0}.dropdown.dropstart>.dropdown-toggle::before{vertical-align:0}.dropdown-menu-start{right:auto;left:0}.dropdown-menu-end{right:0;left:auto}@media(min-width:576px){.dropdown-menu-sm-start{right:auto;left:0}.dropdown-menu-sm-end{right:0;left:auto}}@media(min-width:768px){.dropdown-menu-md-start{right:auto;left:0}.dropdown-menu-md-end{right:0;left:auto}}@media(min-width:992px){.dropdown-menu-lg-start{right:auto;left:0}.dropdown-menu-lg-end{right:0;left:auto}}@media(min-width:1200px){.dropdown-menu-xl-start{right:auto;left:0}.dropdown-menu-xl-end{right:0;left:auto}}@media(min-width:1400px){.dropdown-menu-xxl-start{right:auto;left:0}.dropdown-menu-xxl-end{right:0;left:auto}}.figure.figure-is-16x16{height:16px;width:16px}.figure.figure-is-24x24{height:24px;width:24px}.figure.figure-is-32x32{height:32px;width:32px}.figure.figure-is-48x48{height:48px;width:48px}.figure.figure-is-64x64{height:64px;width:64px}.figure.figure-is-96x96{height:96px;width:96px}.figure.figure-is-128x128{height:128px;width:128px}.figure.figure-is-256x256{height:256px;width:256px}.figure.figure-is-512x512{height:512px;width:512px}.form-check>.form-check-input.form-check-input-pointer,.form-check>.form-check-label.form-check-label-pointer,.form-switch>.form-check-input.form-check-input-pointer,.form-switch>.form-check-label.form-check-label-pointer{cursor:pointer}.form-control-plaintext.form-control-xs,.form-control-plaintext.form-control-md,.form-control-plaintext.form-control-xl{padding-right:0;padding-left:0}.form-control-xs{height:calc(1.5em + .3rem + calc(var(--bs-border-width)*2));padding:.15rem .5rem;font-size:.75rem;line-height:1.5;border-radius:.15rem}.form-control-md{height:calc(1.5em + .94rem + calc(var(--bs-border-width)*2));padding:.47rem 1rem;font-size:1.125rem;line-height:1.5;border-radius:.25rem}.form-control-xl{height:calc(1.5em + 1rem + calc(var(--bs-border-width)*2));padding:.5rem 1rem;font-size:1.5rem;line-height:1.5;border-radius:1rem}.form-select-xs{height:calc(1.5em + .3rem + calc(var(--bs-border-width)*2));padding-top:.15rem;padding-bottom:.15rem;padding-left:.5rem;font-size:.75rem}.form-select-md{height:calc(1.5em + .94rem + calc(var(--bs-border-width)*2));padding-top:.47rem;padding-bottom:.47rem;padding-left:1rem;font-size:1.125rem}.form-select-xl{height:calc(1.5em + 1rem + calc(var(--bs-border-width)*2));padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.5rem}.input-group>.b-numeric:not(:last-child)>input,.input-group>div.flatpickr-wrapper:not(:last-child)>input{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.b-numeric:not(:first-child)>input,.input-group>div.flatpickr-wrapper:not(:first-child)>input{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-xs>.form-control:not(textarea),.input-group-xs>.form-select,.input-group-xs>.b-numeric>input{height:calc(1.5em + .3rem + calc(var(--bs-border-width)*2))}.input-group-xs>.form-control,.input-group-xs>.form-select,.input-group-xs>.input-group-text,.input-group-xs>.btn,.input-group-xs>.b-numeric>input{padding:.15rem .5rem;font-size:.75rem;line-height:1.5;border-radius:.15rem}.input-group-sm>.b-numeric>input{height:calc(1.5em + .5rem + calc(var(--bs-border-width)*2))}.input-group-sm>.b-numeric>input{padding:.25rem .5rem;font-size:.875rem;line-height:1.25;border-radius:var(--bs-border-radius-sm)}.input-group-md>.form-control:not(textarea),.input-group-md>.form-select,.input-group-md>.b-numeric>input{height:calc(1.5em + .94rem + calc(var(--bs-border-width)*2))}.input-group-md>.form-control,.input-group-md>.form-select,.input-group-md>.input-group-text,.input-group-md>.btn,.input-group-md>.b-numeric>input{padding:.47rem 1rem;font-size:1.125rem;line-height:1.5;border-radius:.25rem}.input-group-lg>.b-numeric>input{height:calc(1.5em + 1rem + calc(var(--bs-border-width)*2))}.input-group-lg>.b-numeric>input{padding:.5rem 1rem;font-size:1.25rem;line-height:2;border-radius:var(--bs-border-radius-lg)}.input-group-xl>.form-control:not(textarea),.input-group-xl>.form-select,.input-group-xl>.b-numeric>input{height:calc(1.5em + 1rem + calc(var(--bs-border-width)*2))}.input-group-xl>.form-control,.input-group-xl>.form-select,.input-group-xl>.input-group-text,.input-group-xl>.btn,.input-group-xl>.b-numeric>input{padding:.5rem 1rem;font-size:1.5rem;line-height:1.5;border-radius:1rem}.input-group-xs>.form-select,.input-group-md>.form-select,.input-group-xl>.form-select{padding-right:1.75rem}.input-group:not(.has-validation)>.dropdown:first-child>.btn:not(:last-child).dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>.dropdown>.btn:not(:last-child).dropdown-toggle,.input-group.has-validation>.dropdown>.btn:not(:last-child):not(.dropdown-toggle){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>div.flatpickr-wrapper>.form-control{position:relative;flex:1 1 auto;width:1%;min-width:0}.form-check>.form-check-input.form-check-input-xs{width:.7rem;height:.7rem}.form-check>.form-check-input.form-check-input-xs+.form-check-label{line-height:"normal";padding-left:0}.form-check>.form-check-input.form-check-input-sm{width:.8rem;height:.8rem}.form-check>.form-check-input.form-check-input-sm+.form-check-label{line-height:"normal";padding-left:0}.form-check>.form-check-input.form-check-input-md{width:1.25rem;height:1.25rem}.form-check>.form-check-input.form-check-input-md+.form-check-label{line-height:1.7rem;padding-left:3px}.form-check>.form-check-input.form-check-input-lg{width:1.55rem;height:1.55rem}.form-check>.form-check-input.form-check-input-lg+.form-check-label{line-height:2rem;padding-left:6px}.form-check>.form-check-input.form-check-input-xl{width:1.85rem;height:1.85rem}.form-check>.form-check-input.form-check-input-xl+.form-check-label{line-height:2.5rem;padding-left:10px}select[readonly]{pointer-events:none}select[readonly] option,select[readonly] optgroup{display:none}.b-numeric{position:relative;width:100%}.b-numeric:hover>.b-numeric-handler-wrap{opacity:1}.b-numeric input:disabled+.b-numeric-handler-wrap,.b-numeric input:read-only+.b-numeric-handler-wrap{display:none}.b-numeric-handler-wrap{position:absolute;top:0;right:0;width:22px;height:100%;background:#fff;border:1px solid #d9d9d9;opacity:0}.input-group .b-numeric{-ms-flex:1 1 auto;flex:1 1 auto;width:1%}.b-numeric-handler-wrap .b-numeric-handler.b-numeric-handler-down{border-top:1px solid #d9d9d9}.b-numeric-handler{position:relative;display:flex;width:100%;height:50%;overflow:hidden;color:rgba(0,0,0,.45);font-weight:700;line-height:0;align-items:center;justify-content:center}.b-numeric-handler.btn{padding:0}.form-control+.b-numeric-handler-wrap{font-size:1rem;border-top-right-radius:var(--bs-border-radius);border-bottom-right-radius:var(--bs-border-radius)}.form-control-xs+.b-numeric-handler-wrap{font-size:.75rem;border-top-right-radius:.15rem;border-bottom-right-radius:.15rem}.form-control-xs+.b-numeric-handler-wrap>.b-numeric-handler.btn{font-size:.75rem}.form-control-sm+.b-numeric-handler-wrap{font-size:.875rem;border-top-right-radius:var(--bs-border-radius-sm);border-bottom-right-radius:var(--bs-border-radius-sm)}.form-control-sm+.b-numeric-handler-wrap>.b-numeric-handler.btn{font-size:.875rem}.form-control-md+.b-numeric-handler-wrap{font-size:1.125rem;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.form-control-md+.b-numeric-handler-wrap>.b-numeric-handler.btn{font-size:1.125rem}.form-control-lg+.b-numeric-handler-wrap{font-size:1.25rem;border-top-right-radius:var(--bs-border-radius-lg);border-bottom-right-radius:var(--bs-border-radius-lg)}.form-control-lg+.b-numeric-handler-wrap>.b-numeric-handler.btn{font-size:1.25rem}.form-control-xl+.b-numeric-handler-wrap{font-size:1.5rem;border-top-right-radius:1rem;border-bottom-right-radius:1rem}.form-control-xl+.b-numeric-handler-wrap>.b-numeric-handler.btn{font-size:1.5rem}.custom-file-label{overflow:hidden}input[readonly][type=range],input[readonly=readonly][type=range]{pointer-events:none}input[readonly][type=range]::-webkit-slider-thumb,input[readonly=readonly][type=range]::-webkit-slider-thumb{pointer-events:none}input[readonly][type=range]::-moz-range-thumb,input[readonly=readonly][type=range]::-moz-range-thumb{pointer-events:none}input[readonly][type=range]::-ms-thumb,input[readonly=readonly][type=range]::-ms-thumb{pointer-events:none}.form-group{margin-bottom:1rem}.form-inline{display:flex;flex-flow:row wrap;align-items:center}.form-inline .form-check{width:100%}@media(min-width:576px){.form-inline label{display:flex;align-items:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:flex;flex:0 0 auto;flex-flow:row wrap;align-items:center;margin-bottom:0}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .input-group,.form-inline .custom-select{width:auto}.form-inline .form-check{display:flex;align-items:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .form-select{align-items:center;justify-content:center}.form-inline .form-check-label{margin-bottom:0}}.b-input-color-picker{padding:.5rem .6rem}.b-input-color-picker>.b-input-color-picker-preview{height:.55rem}.focus-trap{display:contents}.form-file input[type=file]{margin-left:-2px!important}.form-file input[type=file]::-webkit-file-upload-button{display:none}.form-file input[type=file]::file-selector-button{display:none}.form-label-required:after{content:" *";color:var(--b-theme-danger,#dc3545)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.5rem}@media(min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.jumbotron.jumbotron-primary{background-color:#0d6efd;color:#fff}.jumbotron.jumbotron-secondary{background-color:#6c757d;color:#fff}.jumbotron.jumbotron-success{background-color:#198754;color:#fff}.jumbotron.jumbotron-info{background-color:#0dcaf0;color:#000}.jumbotron.jumbotron-warning{background-color:#ffc107;color:#000}.jumbotron.jumbotron-danger{background-color:#dc3545;color:#fff}.jumbotron.jumbotron-light{background-color:#f8f9fa;color:#000}.jumbotron.jumbotron-dark{background-color:#212529;color:#fff}.jumbotron.jumbotron-link{background-color:#3273dc;color:#fff}.b-layout-header-fixed{z-index:1030}.b-layout-footer-fixed{z-index:1030}.b-layout-sider-content{z-index:1031}a.link-unstyled{text-decoration:none;color:inherit}li.list-group-item-action{cursor:pointer}.list-group-scrollable{overflow-y:scroll}.media{display:flex;align-items:flex-start}.media-body{flex:1}.modal.fade{transition:opacity var(--modal-animation-duration,300ms) linear}.modal.fade .modal-dialog{transition:-webkit-transform var(--modal-animation-duration,300ms) ease-out;transition:transform var(--modal-animation-duration,300ms) ease-out}.offcanvas-footer{position:sticky;bottom:0;top:auto;display:flex;align-items:center;justify-content:space-between;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x)}.page-item:not(.disabled) .page-link{cursor:pointer}.pagination-xs .page-link{padding:.125rem .25rem;font-size:.75rem;line-height:1.5}.pagination-xs .page-item:first-child .page-link{border-top-left-radius:.15rem;border-bottom-left-radius:.15rem}.pagination-xs .page-item:last-child .page-link{border-top-right-radius:.15rem;border-bottom-right-radius:.15rem}.pagination-md .page-link{padding:.625rem 1.25rem;font-size:1.125rem;line-height:1.5}.pagination-md .page-item:first-child .page-link{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.pagination-md .page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.pagination-xl .page-link{padding:1rem 2rem;font-size:1.5rem;line-height:1.5}.pagination-xl .page-item:first-child .page-link{border-top-left-radius:1rem;border-bottom-left-radius:1rem}.pagination-xl .page-item:last-child .page-link{border-top-right-radius:1rem;border-bottom-right-radius:1rem}.b-page-progress .b-page-progress-indicator.b-page-progress-indicator-primary{background-color:#0d6efd}.b-page-progress .b-page-progress-indicator.b-page-progress-indicator-secondary{background-color:#6c757d}.b-page-progress .b-page-progress-indicator.b-page-progress-indicator-success{background-color:#198754}.b-page-progress .b-page-progress-indicator.b-page-progress-indicator-info{background-color:#0dcaf0}.b-page-progress .b-page-progress-indicator.b-page-progress-indicator-warning{background-color:#ffc107}.b-page-progress .b-page-progress-indicator.b-page-progress-indicator-danger{background-color:#dc3545}.b-page-progress .b-page-progress-indicator.b-page-progress-indicator-light{background-color:#f8f9fa}.b-page-progress .b-page-progress-indicator.b-page-progress-indicator-dark{background-color:#212529}.b-page-progress .b-page-progress-indicator.b-page-progress-indicator-link{background-color:#3273dc}.rating:not(.rating-disabled):not(.rating-readonly):hover .rating-item{cursor:pointer}.rating.rating-disabled{opacity:.65}.rating .rating-item.rating-item-primary{color:#0d6efd}.rating .rating-item.rating-item-secondary{color:#6c757d}.rating .rating-item.rating-item-success{color:#198754}.rating .rating-item.rating-item-info{color:#0dcaf0}.rating .rating-item.rating-item-warning{color:#ffc107}.rating .rating-item.rating-item-danger{color:#dc3545}.rating .rating-item.rating-item-light{color:#f8f9fa}.rating .rating-item.rating-item-dark{color:#212529}.rating .rating-item.rating-item-link{color:#3273dc}.rating .rating-item.rating-item-hover{opacity:.7}.steps{padding:0;margin:0;list-style:none;display:flex;overflow-x:auto}.steps .step:first-child{margin-left:auto}.steps .step:last-child{margin-right:auto}.step:first-of-type .step-circle::before{display:none}.step:last-of-type .step-container{padding-right:0}.step-container{box-sizing:content-box;display:flex;align-items:center;flex-direction:column;width:5rem;min-width:5rem;max-width:5rem;padding-top:.5rem;padding-right:1rem}.step-circle{position:relative;display:flex;justify-content:center;align-items:center;width:1.5rem;height:1.5rem;color:#adb5bd;border:2px solid #adb5bd;border-radius:100%;background-color:#fff}.step-circle::before{content:"";display:block;position:absolute;top:50%;left:-2px;width:calc(5rem + 1rem - 1.5rem);height:2px;transform:translate(-100%,-50%);color:#adb5bd;background-color:currentColor}.step-text{color:#adb5bd;word-break:keep-all;text-align:center;margin-top:.25em}.step-completed .step-circle{color:#fff;background-color:#198754;border-color:#198754}.step-completed .step-circle::before{color:#198754}.step-completed .step-text{color:#198754}.step-active .step-circle{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.step-active .step-circle::before{color:#0d6efd}.step-active .step-text{color:#0d6efd}.step-primary .step-circle{color:#0d6efd;border-color:#0d6efd}.step-primary.step-completed .step-circle{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.step-primary.step-completed .step-circle::before{color:#0d6efd}.step-primary.step-completed .step-text{color:#0d6efd}.step-primary.step-active .step-circle{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.step-primary.step-active::before{color:#0d6efd}.step-primary.step-active .step-text{color:#0d6efd}.step-secondary .step-circle{color:#6c757d;border-color:#6c757d}.step-secondary.step-completed .step-circle{color:#fff;background-color:#6c757d;border-color:#6c757d}.step-secondary.step-completed .step-circle::before{color:#6c757d}.step-secondary.step-completed .step-text{color:#6c757d}.step-secondary.step-active .step-circle{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.step-secondary.step-active::before{color:#0d6efd}.step-secondary.step-active .step-text{color:#0d6efd}.step-success .step-circle{color:#198754;border-color:#198754}.step-success.step-completed .step-circle{color:#fff;background-color:#198754;border-color:#198754}.step-success.step-completed .step-circle::before{color:#198754}.step-success.step-completed .step-text{color:#198754}.step-success.step-active .step-circle{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.step-success.step-active::before{color:#0d6efd}.step-success.step-active .step-text{color:#0d6efd}.step-info .step-circle{color:#0dcaf0;border-color:#0dcaf0}.step-info.step-completed .step-circle{color:#fff;background-color:#0dcaf0;border-color:#0dcaf0}.step-info.step-completed .step-circle::before{color:#0dcaf0}.step-info.step-completed .step-text{color:#0dcaf0}.step-info.step-active .step-circle{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.step-info.step-active::before{color:#0d6efd}.step-info.step-active .step-text{color:#0d6efd}.step-warning .step-circle{color:#ffc107;border-color:#ffc107}.step-warning.step-completed .step-circle{color:#fff;background-color:#ffc107;border-color:#ffc107}.step-warning.step-completed .step-circle::before{color:#ffc107}.step-warning.step-completed .step-text{color:#ffc107}.step-warning.step-active .step-circle{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.step-warning.step-active::before{color:#0d6efd}.step-warning.step-active .step-text{color:#0d6efd}.step-danger .step-circle{color:#dc3545;border-color:#dc3545}.step-danger.step-completed .step-circle{color:#fff;background-color:#dc3545;border-color:#dc3545}.step-danger.step-completed .step-circle::before{color:#dc3545}.step-danger.step-completed .step-text{color:#dc3545}.step-danger.step-active .step-circle{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.step-danger.step-active::before{color:#0d6efd}.step-danger.step-active .step-text{color:#0d6efd}.step-light .step-circle{color:#f8f9fa;border-color:#f8f9fa}.step-light.step-completed .step-circle{color:#fff;background-color:#f8f9fa;border-color:#f8f9fa}.step-light.step-completed .step-circle::before{color:#f8f9fa}.step-light.step-completed .step-text{color:#f8f9fa}.step-light.step-active .step-circle{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.step-light.step-active::before{color:#0d6efd}.step-light.step-active .step-text{color:#0d6efd}.step-dark .step-circle{color:#212529;border-color:#212529}.step-dark.step-completed .step-circle{color:#fff;background-color:#212529;border-color:#212529}.step-dark.step-completed .step-circle::before{color:#212529}.step-dark.step-completed .step-text{color:#212529}.step-dark.step-active .step-circle{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.step-dark.step-active::before{color:#0d6efd}.step-dark.step-active .step-text{color:#0d6efd}.step-link .step-circle{color:#3273dc;border-color:#3273dc}.step-link.step-completed .step-circle{color:#fff;background-color:#3273dc;border-color:#3273dc}.step-link.step-completed .step-circle::before{color:#3273dc}.step-link.step-completed .step-text{color:#3273dc}.step-link.step-active .step-circle{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.step-link.step-active::before{color:#0d6efd}.step-link.step-active .step-text{color:#0d6efd}.steps-content{margin:1rem 0}.steps-content>.step-panel{display:none}.steps-content>.active{display:block}.form-check.form-switch .form-check-input.form-check-input-primary:checked{background-color:#0d6efd;border-color:#0d6efd}.form-check.form-switch .form-check-input.form-check-input-secondary:checked{background-color:#6c757d;border-color:#6c757d}.form-check.form-switch .form-check-input.form-check-input-success:checked{background-color:#198754;border-color:#198754}.form-check.form-switch .form-check-input.form-check-input-info:checked{background-color:#0dcaf0;border-color:#0dcaf0}.form-check.form-switch .form-check-input.form-check-input-warning:checked{background-color:#ffc107;border-color:#ffc107}.form-check.form-switch .form-check-input.form-check-input-danger:checked{background-color:#dc3545;border-color:#dc3545}.form-check.form-switch .form-check-input.form-check-input-light:checked{background-color:#f8f9fa;border-color:#f8f9fa}.form-check.form-switch .form-check-input.form-check-input-dark:checked{background-color:#212529;border-color:#212529}.form-check.form-switch .form-check-input.form-check-input-link:checked{background-color:#3273dc;border-color:#3273dc}.form-check.form-switch .form-check-input.form-check-input-xs{width:calc(.75rem + (.5rem/2));height:.5rem;margin-left:-2.5em}.form-check.form-switch .form-check-input.form-check-input-xs+.form-check-label{line-height:1rem;vertical-align:middle;padding-left:0}.form-check.form-switch .form-check-input.form-check-input-xs:checked~.form-check-label::after{transform:translateX(calc(.75rem - (.5rem/2)))}.form-check.form-switch .form-check-input.form-check-input-sm{width:calc(1rem + (.75rem/2));height:.75rem;margin-left:-2.5em}.form-check.form-switch .form-check-input.form-check-input-sm+.form-check-label{line-height:1.25rem;vertical-align:middle;padding-left:.75rem}.form-check.form-switch .form-check-input.form-check-input-sm:checked~.form-check-label::after{transform:translateX(calc(1rem - (.75rem/2)))}.form-check.form-switch .form-check-input.form-check-input-md{width:calc(2rem + (1.5rem/2));height:1.5rem;margin-left:-2.5em}.form-check.form-switch .form-check-input.form-check-input-md+.form-check-label{line-height:2rem;vertical-align:middle;padding-left:.75rem}.form-check.form-switch .form-check-input.form-check-input-md:checked~.form-check-label::after{transform:translateX(calc(2rem - (1.5rem/2)))}.form-check.form-switch .form-check-input.form-check-input-lg{width:calc(3rem + (2rem/2));height:2rem;margin-left:-2.5em}.form-check.form-switch .form-check-input.form-check-input-lg+.form-check-label{line-height:2.5rem;vertical-align:middle;padding-left:.75rem}.form-check.form-switch .form-check-input.form-check-input-lg:checked~.form-check-label::after{transform:translateX(calc(3rem - (2rem/2)))}.form-check.form-switch .form-check-input.form-check-input-xl{width:calc(4rem + (2.5rem/2));height:2.5rem;margin-left:-2.5em}.form-check.form-switch .form-check-input.form-check-input-xl+.form-check-label{line-height:3rem;vertical-align:middle;padding-left:.75rem}.form-check.form-switch .form-check-input.form-check-input-xl:checked~.form-check-label::after{transform:translateX(calc(4rem - (2.5rem/2)))}table.table tbody tr:not(.table-group).selected{background-color:var(--bs-primary)}table.table tbody tr.table-group{cursor:pointer;background-color:var(--b-theme-light,var(--bs-light,#f5f5f5));font-weight:700}tr.table-row-selectable:hover{cursor:pointer}tr.table-row-selectable:focus[tabindex="0"]{outline:0}.table-fixed-header{overflow-y:auto}.table-fixed-header>.table{border-collapse:separate;border-spacing:0}.table-fixed-header>.table>thead:not(.table-thead-theme)>tr>th{background:#fff}.table-fixed-header>.table>thead>tr>th{border-top:0;position:sticky;z-index:10}.table-fixed-header>.table>thead>tr:nth-child(1)>th{top:0}.table-fixed-header>.table-bordered>:not(caption)>*>*{border-width:1px 1px}.table-fixed-columns{width:100%;overflow-x:auto;white-space:nowrap;position:relative}.table-fixed-columns .table{table-layout:fixed;overflow-x:auto;white-space:nowrap;border-collapse:separate;border-spacing:0}.table-fixed-columns .table .table-header-cell-fixed-start,.table-fixed-columns .table .table-row-header-fixed-start,.table-fixed-columns .table .table-row-cell-fixed-start{position:sticky;border-left:0;z-index:11;background-color:#fff;border-inline-start-width:0;left:0}.table-fixed-columns .table .table-header-cell-fixed-end,.table-fixed-columns .table .table-row-header-fixed-end,.table-fixed-columns .table .table-row-cell-fixed-end{position:sticky;border-left:0;z-index:11;background-color:#fff;border-inline-start-width:0;right:0}.table-fixed-columns .table.table-bordered td:not(.table-header-cell-fixed-start):not(.table-row-header-fixed-start):not(.table-row-cell-fixed-start),.table-fixed-columns .table.table-bordered th:not(.table-header-cell-fixed-start):not(.table-row-header-fixed-start):not(.table-row-cell-fixed-start){border-left:1px;border-inline-start-width:1px}.snackbar-stack{z-index:1069!important}.snackbar{z-index:1070!important}@keyframes fadeIn{0%{opacity:0}100%{opacity:1}0%{opacity:0}}@keyframes slideIn{0%{transform:translateY(1rem);opacity:0}100%{transform:translateY(0);opacity:1}0%{transform:translateY(1rem);opacity:0}}.border-1{border:1px solid #dee2e6!important}.border-1.border-primary{border-color:#0d6efd!important}.border-1.border-secondary{border-color:#6c757d!important}.border-1.border-success{border-color:#198754!important}.border-1.border-info{border-color:#0dcaf0!important}.border-1.border-warning{border-color:#ffc107!important}.border-1.border-danger{border-color:#dc3545!important}.border-1.border-light{border-color:#f8f9fa!important}.border-1.border-dark{border-color:#212529!important}.border-1.border-link{border-color:#3273dc!important}.border-primary-1{border:1px solid #0d6efd!important}.border-secondary-1{border:1px solid #6c757d!important}.border-success-1{border:1px solid #198754!important}.border-info-1{border:1px solid #0dcaf0!important}.border-warning-1{border:1px solid #ffc107!important}.border-danger-1{border:1px solid #dc3545!important}.border-light-1{border:1px solid #f8f9fa!important}.border-dark-1{border:1px solid #212529!important}.border-link-1{border:1px solid #3273dc!important}.border-top-1{border-top:1px solid #dee2e6!important}.border-primary-top-1{border-top:1px solid #0d6efd!important}.border-secondary-top-1{border-top:1px solid #6c757d!important}.border-success-top-1{border-top:1px solid #198754!important}.border-info-top-1{border-top:1px solid #0dcaf0!important}.border-warning-top-1{border-top:1px solid #ffc107!important}.border-danger-top-1{border-top:1px solid #dc3545!important}.border-light-top-1{border-top:1px solid #f8f9fa!important}.border-dark-top-1{border-top:1px solid #212529!important}.border-link-top-1{border-top:1px solid #3273dc!important}.border-end-1{border-right:1px solid #dee2e6!important}.border-primary-end-1{border-right:1px solid #0d6efd!important}.border-secondary-end-1{border-right:1px solid #6c757d!important}.border-success-end-1{border-right:1px solid #198754!important}.border-info-end-1{border-right:1px solid #0dcaf0!important}.border-warning-end-1{border-right:1px solid #ffc107!important}.border-danger-end-1{border-right:1px solid #dc3545!important}.border-light-end-1{border-right:1px solid #f8f9fa!important}.border-dark-end-1{border-right:1px solid #212529!important}.border-link-end-1{border-right:1px solid #3273dc!important}.border-bottom-1{border-bottom:1px solid #dee2e6!important}.border-primary-bottom-1{border-bottom:1px solid #0d6efd!important}.border-secondary-bottom-1{border-bottom:1px solid #6c757d!important}.border-success-bottom-1{border-bottom:1px solid #198754!important}.border-info-bottom-1{border-bottom:1px solid #0dcaf0!important}.border-warning-bottom-1{border-bottom:1px solid #ffc107!important}.border-danger-bottom-1{border-bottom:1px solid #dc3545!important}.border-light-bottom-1{border-bottom:1px solid #f8f9fa!important}.border-dark-bottom-1{border-bottom:1px solid #212529!important}.border-link-bottom-1{border-bottom:1px solid #3273dc!important}.border-start-1{border-left:1px solid #dee2e6!important}.border-primary-start-1{border-left:1px solid #0d6efd!important}.border-secondary-start-1{border-left:1px solid #6c757d!important}.border-success-start-1{border-left:1px solid #198754!important}.border-info-start-1{border-left:1px solid #0dcaf0!important}.border-warning-start-1{border-left:1px solid #ffc107!important}.border-danger-start-1{border-left:1px solid #dc3545!important}.border-light-start-1{border-left:1px solid #f8f9fa!important}.border-dark-start-1{border-left:1px solid #212529!important}.border-link-start-1{border-left:1px solid #3273dc!important}.border-2{border:2px solid #dee2e6!important}.border-2.border-primary{border-color:#0d6efd!important}.border-2.border-secondary{border-color:#6c757d!important}.border-2.border-success{border-color:#198754!important}.border-2.border-info{border-color:#0dcaf0!important}.border-2.border-warning{border-color:#ffc107!important}.border-2.border-danger{border-color:#dc3545!important}.border-2.border-light{border-color:#f8f9fa!important}.border-2.border-dark{border-color:#212529!important}.border-2.border-link{border-color:#3273dc!important}.border-primary-2{border:2px solid #0d6efd!important}.border-secondary-2{border:2px solid #6c757d!important}.border-success-2{border:2px solid #198754!important}.border-info-2{border:2px solid #0dcaf0!important}.border-warning-2{border:2px solid #ffc107!important}.border-danger-2{border:2px solid #dc3545!important}.border-light-2{border:2px solid #f8f9fa!important}.border-dark-2{border:2px solid #212529!important}.border-link-2{border:2px solid #3273dc!important}.border-top-2{border-top:2px solid #dee2e6!important}.border-primary-top-2{border-top:2px solid #0d6efd!important}.border-secondary-top-2{border-top:2px solid #6c757d!important}.border-success-top-2{border-top:2px solid #198754!important}.border-info-top-2{border-top:2px solid #0dcaf0!important}.border-warning-top-2{border-top:2px solid #ffc107!important}.border-danger-top-2{border-top:2px solid #dc3545!important}.border-light-top-2{border-top:2px solid #f8f9fa!important}.border-dark-top-2{border-top:2px solid #212529!important}.border-link-top-2{border-top:2px solid #3273dc!important}.border-end-2{border-right:2px solid #dee2e6!important}.border-primary-end-2{border-right:2px solid #0d6efd!important}.border-secondary-end-2{border-right:2px solid #6c757d!important}.border-success-end-2{border-right:2px solid #198754!important}.border-info-end-2{border-right:2px solid #0dcaf0!important}.border-warning-end-2{border-right:2px solid #ffc107!important}.border-danger-end-2{border-right:2px solid #dc3545!important}.border-light-end-2{border-right:2px solid #f8f9fa!important}.border-dark-end-2{border-right:2px solid #212529!important}.border-link-end-2{border-right:2px solid #3273dc!important}.border-bottom-2{border-bottom:2px solid #dee2e6!important}.border-primary-bottom-2{border-bottom:2px solid #0d6efd!important}.border-secondary-bottom-2{border-bottom:2px solid #6c757d!important}.border-success-bottom-2{border-bottom:2px solid #198754!important}.border-info-bottom-2{border-bottom:2px solid #0dcaf0!important}.border-warning-bottom-2{border-bottom:2px solid #ffc107!important}.border-danger-bottom-2{border-bottom:2px solid #dc3545!important}.border-light-bottom-2{border-bottom:2px solid #f8f9fa!important}.border-dark-bottom-2{border-bottom:2px solid #212529!important}.border-link-bottom-2{border-bottom:2px solid #3273dc!important}.border-start-2{border-left:2px solid #dee2e6!important}.border-primary-start-2{border-left:2px solid #0d6efd!important}.border-secondary-start-2{border-left:2px solid #6c757d!important}.border-success-start-2{border-left:2px solid #198754!important}.border-info-start-2{border-left:2px solid #0dcaf0!important}.border-warning-start-2{border-left:2px solid #ffc107!important}.border-danger-start-2{border-left:2px solid #dc3545!important}.border-light-start-2{border-left:2px solid #f8f9fa!important}.border-dark-start-2{border-left:2px solid #212529!important}.border-link-start-2{border-left:2px solid #3273dc!important}.border-3{border:3px solid #dee2e6!important}.border-3.border-primary{border-color:#0d6efd!important}.border-3.border-secondary{border-color:#6c757d!important}.border-3.border-success{border-color:#198754!important}.border-3.border-info{border-color:#0dcaf0!important}.border-3.border-warning{border-color:#ffc107!important}.border-3.border-danger{border-color:#dc3545!important}.border-3.border-light{border-color:#f8f9fa!important}.border-3.border-dark{border-color:#212529!important}.border-3.border-link{border-color:#3273dc!important}.border-primary-3{border:3px solid #0d6efd!important}.border-secondary-3{border:3px solid #6c757d!important}.border-success-3{border:3px solid #198754!important}.border-info-3{border:3px solid #0dcaf0!important}.border-warning-3{border:3px solid #ffc107!important}.border-danger-3{border:3px solid #dc3545!important}.border-light-3{border:3px solid #f8f9fa!important}.border-dark-3{border:3px solid #212529!important}.border-link-3{border:3px solid #3273dc!important}.border-top-3{border-top:3px solid #dee2e6!important}.border-primary-top-3{border-top:3px solid #0d6efd!important}.border-secondary-top-3{border-top:3px solid #6c757d!important}.border-success-top-3{border-top:3px solid #198754!important}.border-info-top-3{border-top:3px solid #0dcaf0!important}.border-warning-top-3{border-top:3px solid #ffc107!important}.border-danger-top-3{border-top:3px solid #dc3545!important}.border-light-top-3{border-top:3px solid #f8f9fa!important}.border-dark-top-3{border-top:3px solid #212529!important}.border-link-top-3{border-top:3px solid #3273dc!important}.border-end-3{border-right:3px solid #dee2e6!important}.border-primary-end-3{border-right:3px solid #0d6efd!important}.border-secondary-end-3{border-right:3px solid #6c757d!important}.border-success-end-3{border-right:3px solid #198754!important}.border-info-end-3{border-right:3px solid #0dcaf0!important}.border-warning-end-3{border-right:3px solid #ffc107!important}.border-danger-end-3{border-right:3px solid #dc3545!important}.border-light-end-3{border-right:3px solid #f8f9fa!important}.border-dark-end-3{border-right:3px solid #212529!important}.border-link-end-3{border-right:3px solid #3273dc!important}.border-bottom-3{border-bottom:3px solid #dee2e6!important}.border-primary-bottom-3{border-bottom:3px solid #0d6efd!important}.border-secondary-bottom-3{border-bottom:3px solid #6c757d!important}.border-success-bottom-3{border-bottom:3px solid #198754!important}.border-info-bottom-3{border-bottom:3px solid #0dcaf0!important}.border-warning-bottom-3{border-bottom:3px solid #ffc107!important}.border-danger-bottom-3{border-bottom:3px solid #dc3545!important}.border-light-bottom-3{border-bottom:3px solid #f8f9fa!important}.border-dark-bottom-3{border-bottom:3px solid #212529!important}.border-link-bottom-3{border-bottom:3px solid #3273dc!important}.border-start-3{border-left:3px solid #dee2e6!important}.border-primary-start-3{border-left:3px solid #0d6efd!important}.border-secondary-start-3{border-left:3px solid #6c757d!important}.border-success-start-3{border-left:3px solid #198754!important}.border-info-start-3{border-left:3px solid #0dcaf0!important}.border-warning-start-3{border-left:3px solid #ffc107!important}.border-danger-start-3{border-left:3px solid #dc3545!important}.border-light-start-3{border-left:3px solid #f8f9fa!important}.border-dark-start-3{border-left:3px solid #212529!important}.border-link-start-3{border-left:3px solid #3273dc!important}.border-4{border:4px solid #dee2e6!important}.border-4.border-primary{border-color:#0d6efd!important}.border-4.border-secondary{border-color:#6c757d!important}.border-4.border-success{border-color:#198754!important}.border-4.border-info{border-color:#0dcaf0!important}.border-4.border-warning{border-color:#ffc107!important}.border-4.border-danger{border-color:#dc3545!important}.border-4.border-light{border-color:#f8f9fa!important}.border-4.border-dark{border-color:#212529!important}.border-4.border-link{border-color:#3273dc!important}.border-primary-4{border:4px solid #0d6efd!important}.border-secondary-4{border:4px solid #6c757d!important}.border-success-4{border:4px solid #198754!important}.border-info-4{border:4px solid #0dcaf0!important}.border-warning-4{border:4px solid #ffc107!important}.border-danger-4{border:4px solid #dc3545!important}.border-light-4{border:4px solid #f8f9fa!important}.border-dark-4{border:4px solid #212529!important}.border-link-4{border:4px solid #3273dc!important}.border-top-4{border-top:4px solid #dee2e6!important}.border-primary-top-4{border-top:4px solid #0d6efd!important}.border-secondary-top-4{border-top:4px solid #6c757d!important}.border-success-top-4{border-top:4px solid #198754!important}.border-info-top-4{border-top:4px solid #0dcaf0!important}.border-warning-top-4{border-top:4px solid #ffc107!important}.border-danger-top-4{border-top:4px solid #dc3545!important}.border-light-top-4{border-top:4px solid #f8f9fa!important}.border-dark-top-4{border-top:4px solid #212529!important}.border-link-top-4{border-top:4px solid #3273dc!important}.border-end-4{border-right:4px solid #dee2e6!important}.border-primary-end-4{border-right:4px solid #0d6efd!important}.border-secondary-end-4{border-right:4px solid #6c757d!important}.border-success-end-4{border-right:4px solid #198754!important}.border-info-end-4{border-right:4px solid #0dcaf0!important}.border-warning-end-4{border-right:4px solid #ffc107!important}.border-danger-end-4{border-right:4px solid #dc3545!important}.border-light-end-4{border-right:4px solid #f8f9fa!important}.border-dark-end-4{border-right:4px solid #212529!important}.border-link-end-4{border-right:4px solid #3273dc!important}.border-bottom-4{border-bottom:4px solid #dee2e6!important}.border-primary-bottom-4{border-bottom:4px solid #0d6efd!important}.border-secondary-bottom-4{border-bottom:4px solid #6c757d!important}.border-success-bottom-4{border-bottom:4px solid #198754!important}.border-info-bottom-4{border-bottom:4px solid #0dcaf0!important}.border-warning-bottom-4{border-bottom:4px solid #ffc107!important}.border-danger-bottom-4{border-bottom:4px solid #dc3545!important}.border-light-bottom-4{border-bottom:4px solid #f8f9fa!important}.border-dark-bottom-4{border-bottom:4px solid #212529!important}.border-link-bottom-4{border-bottom:4px solid #3273dc!important}.border-start-4{border-left:4px solid #dee2e6!important}.border-primary-start-4{border-left:4px solid #0d6efd!important}.border-secondary-start-4{border-left:4px solid #6c757d!important}.border-success-start-4{border-left:4px solid #198754!important}.border-info-start-4{border-left:4px solid #0dcaf0!important}.border-warning-start-4{border-left:4px solid #ffc107!important}.border-danger-start-4{border-left:4px solid #dc3545!important}.border-light-start-4{border-left:4px solid #f8f9fa!important}.border-dark-start-4{border-left:4px solid #212529!important}.border-link-start-4{border-left:4px solid #3273dc!important}.border-5{border:5px solid #dee2e6!important}.border-5.border-primary{border-color:#0d6efd!important}.border-5.border-secondary{border-color:#6c757d!important}.border-5.border-success{border-color:#198754!important}.border-5.border-info{border-color:#0dcaf0!important}.border-5.border-warning{border-color:#ffc107!important}.border-5.border-danger{border-color:#dc3545!important}.border-5.border-light{border-color:#f8f9fa!important}.border-5.border-dark{border-color:#212529!important}.border-5.border-link{border-color:#3273dc!important}.border-primary-5{border:5px solid #0d6efd!important}.border-secondary-5{border:5px solid #6c757d!important}.border-success-5{border:5px solid #198754!important}.border-info-5{border:5px solid #0dcaf0!important}.border-warning-5{border:5px solid #ffc107!important}.border-danger-5{border:5px solid #dc3545!important}.border-light-5{border:5px solid #f8f9fa!important}.border-dark-5{border:5px solid #212529!important}.border-link-5{border:5px solid #3273dc!important}.border-top-5{border-top:5px solid #dee2e6!important}.border-primary-top-5{border-top:5px solid #0d6efd!important}.border-secondary-top-5{border-top:5px solid #6c757d!important}.border-success-top-5{border-top:5px solid #198754!important}.border-info-top-5{border-top:5px solid #0dcaf0!important}.border-warning-top-5{border-top:5px solid #ffc107!important}.border-danger-top-5{border-top:5px solid #dc3545!important}.border-light-top-5{border-top:5px solid #f8f9fa!important}.border-dark-top-5{border-top:5px solid #212529!important}.border-link-top-5{border-top:5px solid #3273dc!important}.border-end-5{border-right:5px solid #dee2e6!important}.border-primary-end-5{border-right:5px solid #0d6efd!important}.border-secondary-end-5{border-right:5px solid #6c757d!important}.border-success-end-5{border-right:5px solid #198754!important}.border-info-end-5{border-right:5px solid #0dcaf0!important}.border-warning-end-5{border-right:5px solid #ffc107!important}.border-danger-end-5{border-right:5px solid #dc3545!important}.border-light-end-5{border-right:5px solid #f8f9fa!important}.border-dark-end-5{border-right:5px solid #212529!important}.border-link-end-5{border-right:5px solid #3273dc!important}.border-bottom-5{border-bottom:5px solid #dee2e6!important}.border-primary-bottom-5{border-bottom:5px solid #0d6efd!important}.border-secondary-bottom-5{border-bottom:5px solid #6c757d!important}.border-success-bottom-5{border-bottom:5px solid #198754!important}.border-info-bottom-5{border-bottom:5px solid #0dcaf0!important}.border-warning-bottom-5{border-bottom:5px solid #ffc107!important}.border-danger-bottom-5{border-bottom:5px solid #dc3545!important}.border-light-bottom-5{border-bottom:5px solid #f8f9fa!important}.border-dark-bottom-5{border-bottom:5px solid #212529!important}.border-link-bottom-5{border-bottom:5px solid #3273dc!important}.border-start-5{border-left:5px solid #dee2e6!important}.border-primary-start-5{border-left:5px solid #0d6efd!important}.border-secondary-start-5{border-left:5px solid #6c757d!important}.border-success-start-5{border-left:5px solid #198754!important}.border-info-start-5{border-left:5px solid #0dcaf0!important}.border-warning-start-5{border-left:5px solid #ffc107!important}.border-danger-start-5{border-left:5px solid #dc3545!important}.border-light-start-5{border-left:5px solid #f8f9fa!important}.border-dark-start-5{border-left:5px solid #212529!important}.border-link-start-5{border-left:5px solid #3273dc!important}.cursor-pointer{cursor:pointer}.grid{display:grid;grid-template-rows:repeat(var(--bs-rows,1),1fr);grid-template-columns:repeat(var(--bs-columns,12),1fr);gap:var(--bs-gap,1.5rem)}.grid.g-rows-1{grid-template-rows:repeat(1,minmax(0,1fr))}.grid.g-rows-2{grid-template-rows:repeat(2,minmax(0,1fr))}.grid.g-rows-3{grid-template-rows:repeat(3,minmax(0,1fr))}.grid.g-rows-4{grid-template-rows:repeat(4,minmax(0,1fr))}.grid.g-rows-5{grid-template-rows:repeat(5,minmax(0,1fr))}.grid.g-rows-6{grid-template-rows:repeat(6,minmax(0,1fr))}.grid.g-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid.g-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.g-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.g-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid.g-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid.g-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.grid.g-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.grid.g-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.grid.g-cols-9{grid-template-columns:repeat(9,minmax(0,1fr))}.grid.g-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.grid.g-cols-11{grid-template-columns:repeat(11,minmax(0,1fr))}.grid.g-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}@media(min-width:576px){.grid.g-rows-sm-1{grid-template-rows:repeat(1,minmax(0,1fr))}.grid.g-rows-sm-2{grid-template-rows:repeat(2,minmax(0,1fr))}.grid.g-rows-sm-3{grid-template-rows:repeat(3,minmax(0,1fr))}.grid.g-rows-sm-4{grid-template-rows:repeat(4,minmax(0,1fr))}.grid.g-rows-sm-5{grid-template-rows:repeat(5,minmax(0,1fr))}.grid.g-rows-sm-6{grid-template-rows:repeat(6,minmax(0,1fr))}.grid.g-cols-sm-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid.g-cols-sm-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.g-cols-sm-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.g-cols-sm-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid.g-cols-sm-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid.g-cols-sm-6{grid-template-columns:repeat(6,minmax(0,1fr))}.grid.g-cols-sm-7{grid-template-columns:repeat(7,minmax(0,1fr))}.grid.g-cols-sm-8{grid-template-columns:repeat(8,minmax(0,1fr))}.grid.g-cols-sm-9{grid-template-columns:repeat(9,minmax(0,1fr))}.grid.g-cols-sm-10{grid-template-columns:repeat(10,minmax(0,1fr))}.grid.g-cols-sm-11{grid-template-columns:repeat(11,minmax(0,1fr))}.grid.g-cols-sm-12{grid-template-columns:repeat(12,minmax(0,1fr))}}@media(min-width:768px){.grid.g-rows-md-1{grid-template-rows:repeat(1,minmax(0,1fr))}.grid.g-rows-md-2{grid-template-rows:repeat(2,minmax(0,1fr))}.grid.g-rows-md-3{grid-template-rows:repeat(3,minmax(0,1fr))}.grid.g-rows-md-4{grid-template-rows:repeat(4,minmax(0,1fr))}.grid.g-rows-md-5{grid-template-rows:repeat(5,minmax(0,1fr))}.grid.g-rows-md-6{grid-template-rows:repeat(6,minmax(0,1fr))}.grid.g-cols-md-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid.g-cols-md-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.g-cols-md-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.g-cols-md-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid.g-cols-md-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid.g-cols-md-6{grid-template-columns:repeat(6,minmax(0,1fr))}.grid.g-cols-md-7{grid-template-columns:repeat(7,minmax(0,1fr))}.grid.g-cols-md-8{grid-template-columns:repeat(8,minmax(0,1fr))}.grid.g-cols-md-9{grid-template-columns:repeat(9,minmax(0,1fr))}.grid.g-cols-md-10{grid-template-columns:repeat(10,minmax(0,1fr))}.grid.g-cols-md-11{grid-template-columns:repeat(11,minmax(0,1fr))}.grid.g-cols-md-12{grid-template-columns:repeat(12,minmax(0,1fr))}}@media(min-width:992px){.grid.g-rows-lg-1{grid-template-rows:repeat(1,minmax(0,1fr))}.grid.g-rows-lg-2{grid-template-rows:repeat(2,minmax(0,1fr))}.grid.g-rows-lg-3{grid-template-rows:repeat(3,minmax(0,1fr))}.grid.g-rows-lg-4{grid-template-rows:repeat(4,minmax(0,1fr))}.grid.g-rows-lg-5{grid-template-rows:repeat(5,minmax(0,1fr))}.grid.g-rows-lg-6{grid-template-rows:repeat(6,minmax(0,1fr))}.grid.g-cols-lg-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid.g-cols-lg-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.g-cols-lg-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.g-cols-lg-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid.g-cols-lg-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid.g-cols-lg-6{grid-template-columns:repeat(6,minmax(0,1fr))}.grid.g-cols-lg-7{grid-template-columns:repeat(7,minmax(0,1fr))}.grid.g-cols-lg-8{grid-template-columns:repeat(8,minmax(0,1fr))}.grid.g-cols-lg-9{grid-template-columns:repeat(9,minmax(0,1fr))}.grid.g-cols-lg-10{grid-template-columns:repeat(10,minmax(0,1fr))}.grid.g-cols-lg-11{grid-template-columns:repeat(11,minmax(0,1fr))}.grid.g-cols-lg-12{grid-template-columns:repeat(12,minmax(0,1fr))}}@media(min-width:1200px){.grid.g-rows-xl-1{grid-template-rows:repeat(1,minmax(0,1fr))}.grid.g-rows-xl-2{grid-template-rows:repeat(2,minmax(0,1fr))}.grid.g-rows-xl-3{grid-template-rows:repeat(3,minmax(0,1fr))}.grid.g-rows-xl-4{grid-template-rows:repeat(4,minmax(0,1fr))}.grid.g-rows-xl-5{grid-template-rows:repeat(5,minmax(0,1fr))}.grid.g-rows-xl-6{grid-template-rows:repeat(6,minmax(0,1fr))}.grid.g-cols-xl-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid.g-cols-xl-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.g-cols-xl-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.g-cols-xl-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid.g-cols-xl-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid.g-cols-xl-6{grid-template-columns:repeat(6,minmax(0,1fr))}.grid.g-cols-xl-7{grid-template-columns:repeat(7,minmax(0,1fr))}.grid.g-cols-xl-8{grid-template-columns:repeat(8,minmax(0,1fr))}.grid.g-cols-xl-9{grid-template-columns:repeat(9,minmax(0,1fr))}.grid.g-cols-xl-10{grid-template-columns:repeat(10,minmax(0,1fr))}.grid.g-cols-xl-11{grid-template-columns:repeat(11,minmax(0,1fr))}.grid.g-cols-xl-12{grid-template-columns:repeat(12,minmax(0,1fr))}}@media(min-width:1400px){.grid.g-rows-xxl-1{grid-template-rows:repeat(1,minmax(0,1fr))}.grid.g-rows-xxl-2{grid-template-rows:repeat(2,minmax(0,1fr))}.grid.g-rows-xxl-3{grid-template-rows:repeat(3,minmax(0,1fr))}.grid.g-rows-xxl-4{grid-template-rows:repeat(4,minmax(0,1fr))}.grid.g-rows-xxl-5{grid-template-rows:repeat(5,minmax(0,1fr))}.grid.g-rows-xxl-6{grid-template-rows:repeat(6,minmax(0,1fr))}.grid.g-cols-xxl-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid.g-cols-xxl-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.g-cols-xxl-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.g-cols-xxl-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid.g-cols-xxl-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid.g-cols-xxl-6{grid-template-columns:repeat(6,minmax(0,1fr))}.grid.g-cols-xxl-7{grid-template-columns:repeat(7,minmax(0,1fr))}.grid.g-cols-xxl-8{grid-template-columns:repeat(8,minmax(0,1fr))}.grid.g-cols-xxl-9{grid-template-columns:repeat(9,minmax(0,1fr))}.grid.g-cols-xxl-10{grid-template-columns:repeat(10,minmax(0,1fr))}.grid.g-cols-xxl-11{grid-template-columns:repeat(11,minmax(0,1fr))}.grid.g-cols-xxl-12{grid-template-columns:repeat(12,minmax(0,1fr))}}.grid .g-col-1{grid-column:auto/span 1}.grid .g-col-2{grid-column:auto/span 2}.grid .g-col-3{grid-column:auto/span 3}.grid .g-col-4{grid-column:auto/span 4}.grid .g-col-5{grid-column:auto/span 5}.grid .g-col-6{grid-column:auto/span 6}.grid .g-col-7{grid-column:auto/span 7}.grid .g-col-8{grid-column:auto/span 8}.grid .g-col-9{grid-column:auto/span 9}.grid .g-col-10{grid-column:auto/span 10}.grid .g-col-11{grid-column:auto/span 11}.grid .g-col-12{grid-column:auto/span 12}.grid .g-start-1{grid-column-start:1}.grid .g-start-2{grid-column-start:2}.grid .g-start-3{grid-column-start:3}.grid .g-start-4{grid-column-start:4}.grid .g-start-5{grid-column-start:5}.grid .g-start-6{grid-column-start:6}.grid .g-start-7{grid-column-start:7}.grid .g-start-8{grid-column-start:8}.grid .g-start-9{grid-column-start:9}.grid .g-start-10{grid-column-start:10}.grid .g-start-11{grid-column-start:11}@media(min-width:576px){.grid .g-col-sm-1{grid-column:auto/span 1}.grid .g-col-sm-2{grid-column:auto/span 2}.grid .g-col-sm-3{grid-column:auto/span 3}.grid .g-col-sm-4{grid-column:auto/span 4}.grid .g-col-sm-5{grid-column:auto/span 5}.grid .g-col-sm-6{grid-column:auto/span 6}.grid .g-col-sm-7{grid-column:auto/span 7}.grid .g-col-sm-8{grid-column:auto/span 8}.grid .g-col-sm-9{grid-column:auto/span 9}.grid .g-col-sm-10{grid-column:auto/span 10}.grid .g-col-sm-11{grid-column:auto/span 11}.grid .g-col-sm-12{grid-column:auto/span 12}.grid .g-start-sm-1{grid-column-start:1}.grid .g-start-sm-2{grid-column-start:2}.grid .g-start-sm-3{grid-column-start:3}.grid .g-start-sm-4{grid-column-start:4}.grid .g-start-sm-5{grid-column-start:5}.grid .g-start-sm-6{grid-column-start:6}.grid .g-start-sm-7{grid-column-start:7}.grid .g-start-sm-8{grid-column-start:8}.grid .g-start-sm-9{grid-column-start:9}.grid .g-start-sm-10{grid-column-start:10}.grid .g-start-sm-11{grid-column-start:11}}@media(min-width:768px){.grid .g-col-md-1{grid-column:auto/span 1}.grid .g-col-md-2{grid-column:auto/span 2}.grid .g-col-md-3{grid-column:auto/span 3}.grid .g-col-md-4{grid-column:auto/span 4}.grid .g-col-md-5{grid-column:auto/span 5}.grid .g-col-md-6{grid-column:auto/span 6}.grid .g-col-md-7{grid-column:auto/span 7}.grid .g-col-md-8{grid-column:auto/span 8}.grid .g-col-md-9{grid-column:auto/span 9}.grid .g-col-md-10{grid-column:auto/span 10}.grid .g-col-md-11{grid-column:auto/span 11}.grid .g-col-md-12{grid-column:auto/span 12}.grid .g-start-md-1{grid-column-start:1}.grid .g-start-md-2{grid-column-start:2}.grid .g-start-md-3{grid-column-start:3}.grid .g-start-md-4{grid-column-start:4}.grid .g-start-md-5{grid-column-start:5}.grid .g-start-md-6{grid-column-start:6}.grid .g-start-md-7{grid-column-start:7}.grid .g-start-md-8{grid-column-start:8}.grid .g-start-md-9{grid-column-start:9}.grid .g-start-md-10{grid-column-start:10}.grid .g-start-md-11{grid-column-start:11}}@media(min-width:992px){.grid .g-col-lg-1{grid-column:auto/span 1}.grid .g-col-lg-2{grid-column:auto/span 2}.grid .g-col-lg-3{grid-column:auto/span 3}.grid .g-col-lg-4{grid-column:auto/span 4}.grid .g-col-lg-5{grid-column:auto/span 5}.grid .g-col-lg-6{grid-column:auto/span 6}.grid .g-col-lg-7{grid-column:auto/span 7}.grid .g-col-lg-8{grid-column:auto/span 8}.grid .g-col-lg-9{grid-column:auto/span 9}.grid .g-col-lg-10{grid-column:auto/span 10}.grid .g-col-lg-11{grid-column:auto/span 11}.grid .g-col-lg-12{grid-column:auto/span 12}.grid .g-start-lg-1{grid-column-start:1}.grid .g-start-lg-2{grid-column-start:2}.grid .g-start-lg-3{grid-column-start:3}.grid .g-start-lg-4{grid-column-start:4}.grid .g-start-lg-5{grid-column-start:5}.grid .g-start-lg-6{grid-column-start:6}.grid .g-start-lg-7{grid-column-start:7}.grid .g-start-lg-8{grid-column-start:8}.grid .g-start-lg-9{grid-column-start:9}.grid .g-start-lg-10{grid-column-start:10}.grid .g-start-lg-11{grid-column-start:11}}@media(min-width:1200px){.grid .g-col-xl-1{grid-column:auto/span 1}.grid .g-col-xl-2{grid-column:auto/span 2}.grid .g-col-xl-3{grid-column:auto/span 3}.grid .g-col-xl-4{grid-column:auto/span 4}.grid .g-col-xl-5{grid-column:auto/span 5}.grid .g-col-xl-6{grid-column:auto/span 6}.grid .g-col-xl-7{grid-column:auto/span 7}.grid .g-col-xl-8{grid-column:auto/span 8}.grid .g-col-xl-9{grid-column:auto/span 9}.grid .g-col-xl-10{grid-column:auto/span 10}.grid .g-col-xl-11{grid-column:auto/span 11}.grid .g-col-xl-12{grid-column:auto/span 12}.grid .g-start-xl-1{grid-column-start:1}.grid .g-start-xl-2{grid-column-start:2}.grid .g-start-xl-3{grid-column-start:3}.grid .g-start-xl-4{grid-column-start:4}.grid .g-start-xl-5{grid-column-start:5}.grid .g-start-xl-6{grid-column-start:6}.grid .g-start-xl-7{grid-column-start:7}.grid .g-start-xl-8{grid-column-start:8}.grid .g-start-xl-9{grid-column-start:9}.grid .g-start-xl-10{grid-column-start:10}.grid .g-start-xl-11{grid-column-start:11}}@media(min-width:1400px){.grid .g-col-xxl-1{grid-column:auto/span 1}.grid .g-col-xxl-2{grid-column:auto/span 2}.grid .g-col-xxl-3{grid-column:auto/span 3}.grid .g-col-xxl-4{grid-column:auto/span 4}.grid .g-col-xxl-5{grid-column:auto/span 5}.grid .g-col-xxl-6{grid-column:auto/span 6}.grid .g-col-xxl-7{grid-column:auto/span 7}.grid .g-col-xxl-8{grid-column:auto/span 8}.grid .g-col-xxl-9{grid-column:auto/span 9}.grid .g-col-xxl-10{grid-column:auto/span 10}.grid .g-col-xxl-11{grid-column:auto/span 11}.grid .g-col-xxl-12{grid-column:auto/span 12}.grid .g-start-xxl-1{grid-column-start:1}.grid .g-start-xxl-2{grid-column-start:2}.grid .g-start-xxl-3{grid-column-start:3}.grid .g-start-xxl-4{grid-column-start:4}.grid .g-start-xxl-5{grid-column-start:5}.grid .g-start-xxl-6{grid-column-start:6}.grid .g-start-xxl-7{grid-column-start:7}.grid .g-start-xxl-8{grid-column-start:8}.grid .g-start-xxl-9{grid-column-start:9}.grid .g-start-xxl-10{grid-column-start:10}.grid .g-start-xxl-11{grid-column-start:11}}ol.ordered-list-lower-alpha{list-style-type:lower-alpha}ol.ordered-list-lower-roman{list-style-type:lower-roman}ol.ordered-list-upper-alpha{list-style-type:upper-alpha}ol.ordered-list-upper-roman{list-style-type:upper-roman}.overflow-auto-auto{overflow:auto auto!important}.overflow-auto-hidden{overflow:auto hidden!important}.overflow-auto-visible{overflow:auto visible!important}.overflow-auto-scroll{overflow:auto scroll!important}.overflow-hidden-auto{overflow:hidden auto!important}.overflow-hidden-hidden{overflow:hidden hidden!important}.overflow-hidden-visible{overflow:hidden visible!important}.overflow-hidden-scroll{overflow:hidden scroll!important}.overflow-visible-auto{overflow:visible auto!important}.overflow-visible-hidden{overflow:visible hidden!important}.overflow-visible-visible{overflow:visible visible!important}.overflow-visible-scroll{overflow:visible scroll!important}.overflow-scroll-auto{overflow:scroll auto!important}.overflow-scroll-hidden{overflow:scroll hidden!important}.overflow-scroll-visible{overflow:scroll visible!important}.overflow-scroll-scroll{overflow:scroll scroll!important}@media(min-width:576px){.w-sm-25{width:25%!important}.w-sm-50{width:50%!important}.w-sm-75{width:75%!important}.w-sm-100{width:100%!important}.w-sm-auto{width:auto!important}.w-sm-33{width:33.333333%!important}.w-sm-66{width:66.666667%!important}.mw-sm-100{max-width:100%!important}.vw-sm-100{width:100vw!important}.min-vw-sm-100{min-width:100vw!important}.h-sm-25{height:25%!important}.h-sm-50{height:50%!important}.h-sm-75{height:75%!important}.h-sm-100{height:100%!important}.h-sm-auto{height:auto!important}.h-sm-33{height:33.333333%!important}.h-sm-66{height:66.666667%!important}.mh-sm-100{max-height:100%!important}.vh-sm-100{height:100vh!important}.min-vh-sm-100{min-height:100vh!important}}@media(min-width:768px){.w-md-25{width:25%!important}.w-md-50{width:50%!important}.w-md-75{width:75%!important}.w-md-100{width:100%!important}.w-md-auto{width:auto!important}.w-md-33{width:33.333333%!important}.w-md-66{width:66.666667%!important}.mw-md-100{max-width:100%!important}.vw-md-100{width:100vw!important}.min-vw-md-100{min-width:100vw!important}.h-md-25{height:25%!important}.h-md-50{height:50%!important}.h-md-75{height:75%!important}.h-md-100{height:100%!important}.h-md-auto{height:auto!important}.h-md-33{height:33.333333%!important}.h-md-66{height:66.666667%!important}.mh-md-100{max-height:100%!important}.vh-md-100{height:100vh!important}.min-vh-md-100{min-height:100vh!important}}@media(min-width:992px){.w-lg-25{width:25%!important}.w-lg-50{width:50%!important}.w-lg-75{width:75%!important}.w-lg-100{width:100%!important}.w-lg-auto{width:auto!important}.w-lg-33{width:33.333333%!important}.w-lg-66{width:66.666667%!important}.mw-lg-100{max-width:100%!important}.vw-lg-100{width:100vw!important}.min-vw-lg-100{min-width:100vw!important}.h-lg-25{height:25%!important}.h-lg-50{height:50%!important}.h-lg-75{height:75%!important}.h-lg-100{height:100%!important}.h-lg-auto{height:auto!important}.h-lg-33{height:33.333333%!important}.h-lg-66{height:66.666667%!important}.mh-lg-100{max-height:100%!important}.vh-lg-100{height:100vh!important}.min-vh-lg-100{min-height:100vh!important}}@media(min-width:1200px){.w-xl-25{width:25%!important}.w-xl-50{width:50%!important}.w-xl-75{width:75%!important}.w-xl-100{width:100%!important}.w-xl-auto{width:auto!important}.w-xl-33{width:33.333333%!important}.w-xl-66{width:66.666667%!important}.mw-xl-100{max-width:100%!important}.vw-xl-100{width:100vw!important}.min-vw-xl-100{min-width:100vw!important}.h-xl-25{height:25%!important}.h-xl-50{height:50%!important}.h-xl-75{height:75%!important}.h-xl-100{height:100%!important}.h-xl-auto{height:auto!important}.h-xl-33{height:33.333333%!important}.h-xl-66{height:66.666667%!important}.mh-xl-100{max-height:100%!important}.vh-xl-100{height:100vh!important}.min-vh-xl-100{min-height:100vh!important}}@media(min-width:1400px){.w-xxl-25{width:25%!important}.w-xxl-50{width:50%!important}.w-xxl-75{width:75%!important}.w-xxl-100{width:100%!important}.w-xxl-auto{width:auto!important}.w-xxl-33{width:33.333333%!important}.w-xxl-66{width:66.666667%!important}.mw-xxl-100{max-width:100%!important}.vw-xxl-100{width:100vw!important}.min-vw-xxl-100{min-width:100vw!important}.h-xxl-25{height:25%!important}.h-xxl-50{height:50%!important}.h-xxl-75{height:75%!important}.h-xxl-100{height:100%!important}.h-xxl-auto{height:auto!important}.h-xxl-33{height:33.333333%!important}.h-xxl-66{height:66.666667%!important}.mh-xxl-100{max-height:100%!important}.vh-xxl-100{height:100vh!important}.min-vh-xxl-100{min-height:100vh!important}}.gap-y-0{row-gap:0!important}.gap-x-0{column-gap:0!important}.gap-y-1{row-gap:.25rem!important}.gap-x-1{column-gap:.25rem!important}.gap-y-2{row-gap:.5rem!important}.gap-x-2{column-gap:.5rem!important}.gap-y-3{row-gap:1rem!important}.gap-x-3{column-gap:1rem!important}.gap-y-4{row-gap:1.5rem!important}.gap-x-4{column-gap:1.5rem!important}.gap-y-5{row-gap:3rem!important}.gap-x-5{column-gap:3rem!important}.fs-xs{font-size:.75rem!important}.fs-sm{font-size:.925rem!important}.fs-md{font-size:1.125rem!important}.fs-lg{font-size:1.25rem!important}.fs-xl{font-size:1.5rem!important}.flatpickr-months{margin:.5rem 0}.flatpickr-months .flatpickr-month,.flatpickr-months .flatpickr-next-month,.flatpickr-months .flatpickr-prev-month{height:auto;position:relative}.flatpickr-months .flatpickr-month:hover svg,.flatpickr-months .flatpickr-next-month:hover svg,.flatpickr-months .flatpickr-prev-month:hover svg{fill:#0d6efd}.flatpickr-months .flatpickr-month{color:#212529}.flatpickr-current-month{padding:13px 0 0 0;font-size:115%}.flatpickr-current-month span.cur-month{font-weight:700}.flatpickr-current-month span.cur-month:hover{background:rgba(13,110,253,.15)}.numInputWrapper:hover{background:rgba(13,110,253,.15)}.flatpickr-day{border-radius:.375rem;font-weight:500;color:#212529}.flatpickr-day.today{border-color:#0d6efd}.flatpickr-day.today:hover{background:#0d6efd;border-color:#0d6efd}.flatpickr-day:hover{background:rgba(13,110,253,.1);border-color:rgba(0,0,0,0)}span.flatpickr-weekday{color:#212529}.flatpickr-day.selected,.flatpickr-day.startRange,.flatpickr-day.endRange,.flatpickr-day.selected.inRange,.flatpickr-day.startRange.inRange,.flatpickr-day.endRange.inRange,.flatpickr-day.selected:focus,.flatpickr-day.startRange:focus,.flatpickr-day.endRange:focus,.flatpickr-day.selected:hover,.flatpickr-day.startRange:hover,.flatpickr-day.endRange:hover,.flatpickr-day.selected.prevMonthDay,.flatpickr-day.startRange.prevMonthDay,.flatpickr-day.endRange.prevMonthDay,.flatpickr-day.selected.nextMonthDay,.flatpickr-day.startRange.nextMonthDay,.flatpickr-day.endRange.nextMonthDay{background:#0d6efd;border-color:#0d6efd}.flatpickr-day.selected.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.startRange.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.endRange.startRange+.endRange:not(:nth-child(7n+1)){box-shadow:-10px 0 0 #0d6efd}.flatpickr-day.selected.startRange,.flatpickr-day.startRange.startRange,.flatpickr-day.endRange.startRange{border-radius:.375rem 0 0 .375rem}.flatpickr-day.selected.endRange,.flatpickr-day.startRange.endRange,.flatpickr-day.endRange.endRange{border-radius:0 .375rem .375rem 0}.flatpickr-monthSelect-month:hover,.flatpickr-monthSelect-month:focus{background:rgba(13,110,253,.1)}.flatpickr-monthSelect-month.selected{background-color:#0d6efd} +.snackbar{align-items:center;background-color:var(--b-snackbar-background,#323232);color:var(--b-snackbar-text-color,#fff);font-size:.875rem;line-height:1.428572;opacity:0;padding:.875rem 1.5rem;position:fixed;bottom:0;left:0;transform:translateY(100%);transition:opacity 0s var(--transition-duration-mobile-leaving,.195s),transform var(--transition-duration-mobile-leaving,.195s) cubic-bezier(.4,0,1,1);width:100%;z-index:60}@media(min-width:768px){.snackbar{border-radius:2px;max-width:35.5rem;min-width:18rem;left:50%;transform:translate(-50%,100%);width:auto}}@media(min-width:768px){.snackbar{transition:opacity 0s var(--transition-duration-tablet-leaving,.2535s),transform var(--transition-duration-tablet-leaving,.2535s) cubic-bezier(.4,0,1,1)}}@media(min-width:1200px){.snackbar{transition:opacity 0s var(--transition-duration-desktop-leaving,.13s),transform var(--transition-duration-desktop-leaving,.13s) cubic-bezier(.4,0,1,1)}}@media screen and (prefers-reduced-motion:reduce){.snackbar{transition:none}}.snackbar.snackbar-show{transition-duration:var(--transition-duration-mobile-entering,.225s);transition-property:transform;transition-timing-function:cubic-bezier(0,0,.2,1);opacity:1;transform:translateY(0)}@media(min-width:768px){.snackbar.snackbar-show{transition-duration:var(--transition-duration-tablet-entering,.2925s)}}@media(min-width:1200px){.snackbar.snackbar-show{transition-duration:var(--transition-duration-desktop-entering,.15s)}}@media screen and (prefers-reduced-motion:reduce){.snackbar.snackbar-show{transition:none}}@media(min-width:768px){.snackbar.snackbar-show{transform:translate(-50%,-1.5rem)}}.snackbar-header{display:flex;-ms-flex-pack:justify;justify-content:space-between;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background-color:DARKEN(var(--b-snackbar-background,#323232),30%);margin-right:auto;min-width:0;font-weight:bold;padding-bottom:.875rem}.snackbar-footer{display:flex;-ms-flex-pack:justify;justify-content:space-between;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background-color:DARKEN(var(--b-snackbar-background,#323232),30%);margin-right:auto;min-width:0;padding-top:.875rem}.snackbar-body{display:flex;-ms-flex-pack:justify;justify-content:space-between;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-right:auto;max-height:100%;min-width:0}.snackbar-action-button{transition-duration:var(--transition-duration-mobile,.3s);transition-property:background-color,background-image;transition-timing-function:cubic-bezier(.4,0,.2,1);background-color:transparent;background-image:none;border:0;color:var(--b-snackbar-button-color,var(--b-snackbar-button-color,#ff4081));cursor:pointer;display:block;flex-shrink:0;font-size:inherit;font-weight:500;line-height:inherit;padding:0;text-transform:uppercase;white-space:nowrap}@media(min-width:768px){.snackbar-action-button{transition-duration:var(--transition-duration-tablet,.39s)}}@media(min-width:1200px){.snackbar-action-button{transition-duration:var(--transition-duration-desktop,.2s)}}@media screen and (prefers-reduced-motion:reduce){.snackbar-action-button{transition:none}}.snackbar-action-button:focus,.snackbar-action-button:hover{color:var(--b-snackbar-button-hover-color,var(--b-snackbar-button-hover-color,#ff80ab));text-decoration:none}@media(min-width:768px){.snackbar-action-button{margin-left:3rem}}.snackbar-action-button:focus{outline:0}@media(min-width:768px){.snackbar-bottom-start,.snackbar-bottom-end{transform:translateY(100%)}.snackbar-bottom-start.snackbar-show,.snackbar-bottom-end.snackbar-show{transform:translateY(-1.5rem)}}@media(min-width:768px){.snackbar-bottom-start{left:1.5rem}}@media(min-width:768px){.snackbar-bottom-end{right:1.5rem;left:auto}}.snackbar-top{top:0;bottom:auto;transform:translateY(-100%)}@media(min-width:768px){.snackbar-top{transform:translateX(-50%) translateY(-100%)}.snackbar-top.snackbar-show{transform:translate(-50%,1.5rem)}}.snackbar-top-start{top:0;bottom:auto;transform:translateY(-100%);left:0}@media(min-width:768px){.snackbar-top-start{transform:translateY(-100%);left:1.5rem}.snackbar-top-start.snackbar-show{transform:translateY(1.5rem)}}.snackbar-top-end{top:0;bottom:auto;transform:translateY(-100%)}@media(min-width:768px){.snackbar-top-end{transform:translateY(-100%);right:1.5rem;left:auto}.snackbar-top-end.snackbar-show{transform:translateY(1.5rem)}}.snackbar-multi-line{padding-top:1.25rem;padding-bottom:1.25rem}.snackbar-multi-line .snackbar-body{white-space:normal}.snackbar-primary{background-color:var(--b-snackbar-background-primary,#cce5ff);color:var(--b-snackbar-text-primary,#004085)}.snackbar-action-button-primary{color:var(--b-snackbar-button-primary,#ff4081)}.snackbar-action-button-primary:focus,.snackbar-action-button-primary:hover{color:var(--b-snackbar-button-hover-primary,#ff80ab)}.snackbar-secondary{background-color:var(--b-snackbar-background-secondary,#e2e3e5);color:var(--b-snackbar-text-secondary,#383d41)}.snackbar-action-button-secondary{color:var(--b-snackbar-button-secondary,#ff4081)}.snackbar-action-button-secondary:focus,.snackbar-action-button-secondary:hover{color:var(--b-snackbar-button-hover-secondary,#ff80ab)}.snackbar-success{background-color:var(--b-snackbar-background-success,#d4edda);color:var(--b-snackbar-text-success,#155724)}.snackbar-action-button-success{color:var(--b-snackbar-button-success,#ff4081)}.snackbar-action-button-success:focus,.snackbar-action-button-success:hover{color:var(--b-snackbar-button-hover-success,#ff80ab)}.snackbar-danger{background-color:var(--b-snackbar-background-danger,#f8d7da);color:var(--b-snackbar-text-danger,#721c24)}.snackbar-action-button-danger{color:var(--b-snackbar-button-danger,#ff4081)}.snackbar-action-button-danger:focus,.snackbar-action-button-danger:hover{color:var(--b-snackbar-button-hover-danger,#ff80ab)}.snackbar-warning{background-color:var(--b-snackbar-background-warning,#fff3cd);color:var(--b-snackbar-text-warning,#856404)}.snackbar-action-button-warning{color:var(--b-snackbar-button-warning,#ff4081)}.snackbar-action-button-warning:focus,.snackbar-action-button-warning:hover{color:var(--b-snackbar-button-hover-warning,#ff80ab)}.snackbar-info{background-color:var(--b-snackbar-background-info,#d1ecf1);color:var(--b-snackbar-text-info,#0c5460)}.snackbar-action-button-info{color:var(--b-snackbar-button-info,#ff4081)}.snackbar-action-button-info:focus,.snackbar-action-button-info:hover{color:var(--b-snackbar-button-hover-info,#ff80ab)}.snackbar-light{background-color:var(--b-snackbar-background-light,#fefefe);color:var(--b-snackbar-text-light,#818182)}.snackbar-action-button-light{color:var(--b-snackbar-button-light,#ff4081)}.snackbar-action-button-light:focus,.snackbar-action-button-light:hover{color:var(--b-snackbar-button-hover-light,#ff80ab)}.snackbar-dark{background-color:var(--b-snackbar-background-dark,#d6d8d9);color:var(--b-snackbar-text-dark,#1b1e21)}.snackbar-action-button-dark{color:var(--b-snackbar-button-dark,#ff4081)}.snackbar-action-button-dark:focus,.snackbar-action-button-dark:hover{color:var(--b-snackbar-button-hover-dark,#ff80ab)}.snackbar-stack-bottom-end,.snackbar-stack-bottom-start,.snackbar-stack-bottom{display:flex;flex-direction:column;position:fixed;z-index:1090!important;bottom:0}.snackbar-stack-bottom-end .snackbar,.snackbar-stack-bottom-start .snackbar,.snackbar-stack-bottom .snackbar{position:relative;flex-direction:row;margin-bottom:0}.snackbar-stack-bottom-end .snackbar:not(:last-child),.snackbar-stack-bottom-start .snackbar:not(:last-child),.snackbar-stack-bottom .snackbar:not(:last-child){margin-bottom:1.5rem}.snackbar-stack-top-end,.snackbar-stack-top-start,.snackbar-stack-top{display:flex;flex-direction:column;align-items:center;justify-content:center;align-content:center;position:fixed;z-index:1090!important;top:0}.snackbar-stack-top-end .snackbar,.snackbar-stack-top-start .snackbar,.snackbar-stack-top .snackbar{position:relative;flex-direction:row;margin-bottom:0}.snackbar-stack-top-end .snackbar:not(:last-child),.snackbar-stack-top-start .snackbar:not(:last-child),.snackbar-stack-top .snackbar:not(:last-child){margin-bottom:1.5rem}.snackbar-stack-top .snackbar.snackbar-show,.snackbar-stack-top-start .snackbar.snackbar-show,.snackbar-stack-top-end .snackbar.snackbar-show{transition:all var(--stack-transition-duration,1000);animation:showTop var(--stack-animation-duration,500) forwards}.snackbar-stack-top .snackbar-hide,.snackbar-stack-top-start .snackbar-hide,.snackbar-stack-top-end .snackbar-hide{transition:all var(--stack-transition-duration,1000);animation:hideTop var(--stack-animation-duration,500) backwards}.snackbar-stack-bottom .snackbar.snackbar-show,.snackbar-stack-bottom-start .snackbar.snackbar-show,.snackbar-stack-bottom-end .snackbar.snackbar-show{transition:all var(--stack-transition-duration,1000);animation:showBottom var(--stack-animation-duration,500) forwards}.snackbar-stack-bottom .snackbar-hide,.snackbar-stack-bottom-start .snackbar-hide,.snackbar-stack-bottom-end .snackbar-hide{transition:all var(--stack-transition-duration,1000);animation:hideBottom var(--stack-animation-duration,500) backwards}@keyframes showTop{0%{opacity:0}100%{opacity:1}}@keyframes hideTop{0%{opacity:1;top:0}100%{opacity:0;top:-100px}}@keyframes showBottom{0%{opacity:0}100%{opacity:1}}@keyframes hideBottom{0%{opacity:1}100%{opacity:0}}@media(min-width:576px){.snackbar-stack-bottom{left:50%;transform:translate(-50%,0%)}.snackbar-stack-bottom-start{left:1.5rem}.snackbar-stack-bottom-end{right:1.5rem}.snackbar-stack-top-start{left:1.5rem;top:1.5rem}.snackbar-stack-top-end{right:1.5rem;top:1.5rem}.snackbar-stack-top{left:50%;transform:translate(-50%,0%);top:1.5rem}}@media(max-width:576px){.snackbar-stack{right:0;left:0}} +.radar-spinner,.radar-spinner *{box-sizing:border-box}.radar-spinner{height:60px;width:60px;position:relative}.radar-spinner .circle{position:absolute;height:100%;width:100%;top:0;left:0;animation:radar-spinner-animation 2s infinite}.radar-spinner .circle:nth-child(1){padding:calc(60px*5*2*0/110);animation-delay:300ms}.radar-spinner .circle:nth-child(2){padding:calc(60px*5*2*1/110);animation-delay:300ms}.radar-spinner .circle:nth-child(3){padding:calc(60px*5*2*2/110);animation-delay:300ms}.radar-spinner .circle:nth-child(4){padding:calc(60px*5*2*3/110);animation-delay:0ms}.radar-spinner .circle-inner,.radar-spinner .circle-inner-container{height:100%;width:100%;border-radius:50%;border:calc(60px*5/110) solid transparent}.radar-spinner .circle-inner{border-left-color:var(--secondary,#ff1d5e);border-right-color:var(--secondary,#ff1d5e)}@keyframes radar-spinner-animation{50%{transform:rotate(180deg)}100%{transform:rotate(0deg)}} +@keyframes chartjs-render-animation{from{opacity:.99}to{opacity:1}}.chartjs-render-monitor{animation:chartjs-render-animation 1ms}.chartjs-size-monitor,.chartjs-size-monitor-expand,.chartjs-size-monitor-shrink{position:absolute;direction:ltr;left:0;top:0;right:0;bottom:0;overflow:hidden;pointer-events:none;visibility:hidden;z-index:-1}.chartjs-size-monitor-expand>div{position:absolute;width:1000000px;height:1000000px;left:0;top:0}.chartjs-size-monitor-shrink>div{position:absolute;width:200%;height:200%;left:0;top:0} /*! * Datepicker for Bootstrap v1.9.0 (https://github.com/uxsolutions/bootstrap-datepicker) * * Licensed under the Apache License v2.0 (http://www.apache.org/licenses/LICENSE-2.0) */ -.datepicker{padding:4px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;direction:ltr}.datepicker-inline{width:220px}.datepicker-rtl{direction:rtl}.datepicker-rtl.dropdown-menu{left:auto}.datepicker-rtl table tr td span{float:right}.datepicker-dropdown{top:0;left:0}.datepicker-dropdown:before{content:'';display:inline-block;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #999;border-top:0;border-bottom-color:rgba(0,0,0,.2);position:absolute}.datepicker-dropdown:after{content:'';display:inline-block;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #fff;border-top:0;position:absolute}.datepicker-dropdown.datepicker-orient-left:before{left:6px}.datepicker-dropdown.datepicker-orient-left:after{left:7px}.datepicker-dropdown.datepicker-orient-right:before{right:6px}.datepicker-dropdown.datepicker-orient-right:after{right:7px}.datepicker-dropdown.datepicker-orient-bottom:before{top:-7px}.datepicker-dropdown.datepicker-orient-bottom:after{top:-6px}.datepicker-dropdown.datepicker-orient-top:before{bottom:-7px;border-bottom:0;border-top:7px solid #999}.datepicker-dropdown.datepicker-orient-top:after{bottom:-6px;border-bottom:0;border-top:6px solid #fff}.datepicker table{margin:0;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.datepicker td,.datepicker th{text-align:center;width:20px;height:20px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;border:none}.table-striped .datepicker table tr td,.table-striped .datepicker table tr th{background-color:transparent}.datepicker table tr td.day.focused,.datepicker table tr td.day:hover{background:#eee;cursor:pointer}.datepicker table tr td.new,.datepicker table tr td.old{color:#999}.datepicker table tr td.disabled,.datepicker table tr td.disabled:hover{background:0 0;color:#999;cursor:default}.datepicker table tr td.highlighted{background:#d9edf7;border-radius:0}.datepicker table tr td.today,.datepicker table tr td.today.disabled,.datepicker table tr td.today.disabled:hover,.datepicker table tr td.today:hover{background-color:#fde19a;background-image:-moz-linear-gradient(to bottom,#fdd49a,#fdf59a);background-image:-ms-linear-gradient(to bottom,#fdd49a,#fdf59a);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fdd49a),to(#fdf59a));background-image:-webkit-linear-gradient(to bottom,#fdd49a,#fdf59a);background-image:-o-linear-gradient(to bottom,#fdd49a,#fdf59a);background-image:linear-gradient(to bottom,#fdd49a,#fdf59a);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fdd49a', endColorstr='#fdf59a', GradientType=0);border-color:#fdf59a #fdf59a #fbed50;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);color:#000}.datepicker table tr td.today.active,.datepicker table tr td.today.disabled,.datepicker table tr td.today.disabled.active,.datepicker table tr td.today.disabled.disabled,.datepicker table tr td.today.disabled:active,.datepicker table tr td.today.disabled:hover,.datepicker table tr td.today.disabled:hover.active,.datepicker table tr td.today.disabled:hover.disabled,.datepicker table tr td.today.disabled:hover:active,.datepicker table tr td.today.disabled:hover:hover,.datepicker table tr td.today.disabled:hover[disabled],.datepicker table tr td.today.disabled[disabled],.datepicker table tr td.today:active,.datepicker table tr td.today:hover,.datepicker table tr td.today:hover.active,.datepicker table tr td.today:hover.disabled,.datepicker table tr td.today:hover:active,.datepicker table tr td.today:hover:hover,.datepicker table tr td.today:hover[disabled],.datepicker table tr td.today[disabled]{background-color:#fdf59a}.datepicker table tr td.today.active,.datepicker table tr td.today.disabled.active,.datepicker table tr td.today.disabled:active,.datepicker table tr td.today.disabled:hover.active,.datepicker table tr td.today.disabled:hover:active,.datepicker table tr td.today:active,.datepicker table tr td.today:hover.active,.datepicker table tr td.today:hover:active{background-color:#fbf069\9}.datepicker table tr td.today:hover:hover{color:#000}.datepicker table tr td.today.active:hover{color:#fff}.datepicker table tr td.range,.datepicker table tr td.range.disabled,.datepicker table tr td.range.disabled:hover,.datepicker table tr td.range:hover{background:#eee;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.datepicker table tr td.range.today,.datepicker table tr td.range.today.disabled,.datepicker table tr td.range.today.disabled:hover,.datepicker table tr td.range.today:hover{background-color:#f3d17a;background-image:-moz-linear-gradient(to bottom,#f3c17a,#f3e97a);background-image:-ms-linear-gradient(to bottom,#f3c17a,#f3e97a);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f3c17a),to(#f3e97a));background-image:-webkit-linear-gradient(to bottom,#f3c17a,#f3e97a);background-image:-o-linear-gradient(to bottom,#f3c17a,#f3e97a);background-image:linear-gradient(to bottom,#f3c17a,#f3e97a);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f3c17a', endColorstr='#f3e97a', GradientType=0);border-color:#f3e97a #f3e97a #edde34;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.datepicker table tr td.range.today.active,.datepicker table tr td.range.today.disabled,.datepicker table tr td.range.today.disabled.active,.datepicker table tr td.range.today.disabled.disabled,.datepicker table tr td.range.today.disabled:active,.datepicker table tr td.range.today.disabled:hover,.datepicker table tr td.range.today.disabled:hover.active,.datepicker table tr td.range.today.disabled:hover.disabled,.datepicker table tr td.range.today.disabled:hover:active,.datepicker table tr td.range.today.disabled:hover:hover,.datepicker table tr td.range.today.disabled:hover[disabled],.datepicker table tr td.range.today.disabled[disabled],.datepicker table tr td.range.today:active,.datepicker table tr td.range.today:hover,.datepicker table tr td.range.today:hover.active,.datepicker table tr td.range.today:hover.disabled,.datepicker table tr td.range.today:hover:active,.datepicker table tr td.range.today:hover:hover,.datepicker table tr td.range.today:hover[disabled],.datepicker table tr td.range.today[disabled]{background-color:#f3e97a}.datepicker table tr td.range.today.active,.datepicker table tr td.range.today.disabled.active,.datepicker table tr td.range.today.disabled:active,.datepicker table tr td.range.today.disabled:hover.active,.datepicker table tr td.range.today.disabled:hover:active,.datepicker table tr td.range.today:active,.datepicker table tr td.range.today:hover.active,.datepicker table tr td.range.today:hover:active{background-color:#efe24b\9}.datepicker table tr td.selected,.datepicker table tr td.selected.disabled,.datepicker table tr td.selected.disabled:hover,.datepicker table tr td.selected:hover{background-color:#9e9e9e;background-image:-moz-linear-gradient(to bottom,#b3b3b3,grey);background-image:-ms-linear-gradient(to bottom,#b3b3b3,grey);background-image:-webkit-gradient(linear,0 0,0 100%,from(#b3b3b3),to(grey));background-image:-webkit-linear-gradient(to bottom,#b3b3b3,grey);background-image:-o-linear-gradient(to bottom,#b3b3b3,grey);background-image:linear-gradient(to bottom,#b3b3b3,grey);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#b3b3b3', endColorstr='#808080', GradientType=0);border-color:grey grey #595959;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.datepicker table tr td.selected.active,.datepicker table tr td.selected.disabled,.datepicker table tr td.selected.disabled.active,.datepicker table tr td.selected.disabled.disabled,.datepicker table tr td.selected.disabled:active,.datepicker table tr td.selected.disabled:hover,.datepicker table tr td.selected.disabled:hover.active,.datepicker table tr td.selected.disabled:hover.disabled,.datepicker table tr td.selected.disabled:hover:active,.datepicker table tr td.selected.disabled:hover:hover,.datepicker table tr td.selected.disabled:hover[disabled],.datepicker table tr td.selected.disabled[disabled],.datepicker table tr td.selected:active,.datepicker table tr td.selected:hover,.datepicker table tr td.selected:hover.active,.datepicker table tr td.selected:hover.disabled,.datepicker table tr td.selected:hover:active,.datepicker table tr td.selected:hover:hover,.datepicker table tr td.selected:hover[disabled],.datepicker table tr td.selected[disabled]{background-color:grey}.datepicker table tr td.selected.active,.datepicker table tr td.selected.disabled.active,.datepicker table tr td.selected.disabled:active,.datepicker table tr td.selected.disabled:hover.active,.datepicker table tr td.selected.disabled:hover:active,.datepicker table tr td.selected:active,.datepicker table tr td.selected:hover.active,.datepicker table tr td.selected:hover:active{background-color:#666\9}.datepicker table tr td.active,.datepicker table tr td.active.disabled,.datepicker table tr td.active.disabled:hover,.datepicker table tr td.active:hover{background-color:#006dcc;background-image:-moz-linear-gradient(to bottom,#08c,#04c);background-image:-ms-linear-gradient(to bottom,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(to bottom,#08c,#04c);background-image:-o-linear-gradient(to bottom,#08c,#04c);background-image:linear-gradient(to bottom,#08c,#04c);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#08c', endColorstr='#0044cc', GradientType=0);border-color:#04c #04c #002a80;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.datepicker table tr td.active.active,.datepicker table tr td.active.disabled,.datepicker table tr td.active.disabled.active,.datepicker table tr td.active.disabled.disabled,.datepicker table tr td.active.disabled:active,.datepicker table tr td.active.disabled:hover,.datepicker table tr td.active.disabled:hover.active,.datepicker table tr td.active.disabled:hover.disabled,.datepicker table tr td.active.disabled:hover:active,.datepicker table tr td.active.disabled:hover:hover,.datepicker table tr td.active.disabled:hover[disabled],.datepicker table tr td.active.disabled[disabled],.datepicker table tr td.active:active,.datepicker table tr td.active:hover,.datepicker table tr td.active:hover.active,.datepicker table tr td.active:hover.disabled,.datepicker table tr td.active:hover:active,.datepicker table tr td.active:hover:hover,.datepicker table tr td.active:hover[disabled],.datepicker table tr td.active[disabled]{background-color:#04c}.datepicker table tr td.active.active,.datepicker table tr td.active.disabled.active,.datepicker table tr td.active.disabled:active,.datepicker table tr td.active.disabled:hover.active,.datepicker table tr td.active.disabled:hover:active,.datepicker table tr td.active:active,.datepicker table tr td.active:hover.active,.datepicker table tr td.active:hover:active{background-color:#039\9}.datepicker table tr td span{display:block;width:23%;height:54px;line-height:54px;float:left;margin:1%;cursor:pointer;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.datepicker table tr td span.focused,.datepicker table tr td span:hover{background:#eee}.datepicker table tr td span.disabled,.datepicker table tr td span.disabled:hover{background:0 0;color:#999;cursor:default}.datepicker table tr td span.active,.datepicker table tr td span.active.disabled,.datepicker table tr td span.active.disabled:hover,.datepicker table tr td span.active:hover{background-color:#006dcc;background-image:-moz-linear-gradient(to bottom,#08c,#04c);background-image:-ms-linear-gradient(to bottom,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(to bottom,#08c,#04c);background-image:-o-linear-gradient(to bottom,#08c,#04c);background-image:linear-gradient(to bottom,#08c,#04c);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#08c', endColorstr='#0044cc', GradientType=0);border-color:#04c #04c #002a80;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.datepicker table tr td span.active.active,.datepicker table tr td span.active.disabled,.datepicker table tr td span.active.disabled.active,.datepicker table tr td span.active.disabled.disabled,.datepicker table tr td span.active.disabled:active,.datepicker table tr td span.active.disabled:hover,.datepicker table tr td span.active.disabled:hover.active,.datepicker table tr td span.active.disabled:hover.disabled,.datepicker table tr td span.active.disabled:hover:active,.datepicker table tr td span.active.disabled:hover:hover,.datepicker table tr td span.active.disabled:hover[disabled],.datepicker table tr td span.active.disabled[disabled],.datepicker table tr td span.active:active,.datepicker table tr td span.active:hover,.datepicker table tr td span.active:hover.active,.datepicker table tr td span.active:hover.disabled,.datepicker table tr td span.active:hover:active,.datepicker table tr td span.active:hover:hover,.datepicker table tr td span.active:hover[disabled],.datepicker table tr td span.active[disabled]{background-color:#04c}.datepicker table tr td span.active.active,.datepicker table tr td span.active.disabled.active,.datepicker table tr td span.active.disabled:active,.datepicker table tr td span.active.disabled:hover.active,.datepicker table tr td span.active.disabled:hover:active,.datepicker table tr td span.active:active,.datepicker table tr td span.active:hover.active,.datepicker table tr td span.active:hover:active{background-color:#039\9}.datepicker table tr td span.new,.datepicker table tr td span.old{color:#999}.datepicker .datepicker-switch{width:145px}.datepicker .datepicker-switch,.datepicker .next,.datepicker .prev,.datepicker tfoot tr th{cursor:pointer}.datepicker .datepicker-switch:hover,.datepicker .next:hover,.datepicker .prev:hover,.datepicker tfoot tr th:hover{background:#eee}.datepicker .next.disabled,.datepicker .prev.disabled{visibility:hidden}.datepicker .cw{font-size:10px;width:12px;padding:0 2px 0 5px;vertical-align:middle}.input-append.date .add-on,.input-prepend.date .add-on{cursor:pointer}.input-append.date .add-on i,.input-prepend.date .add-on i{margin-top:3px}.input-daterange input{text-align:center}.input-daterange input:first-child{-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.input-daterange input:last-child{-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.input-daterange .add-on{display:inline-block;width:auto;min-width:16px;height:18px;padding:4px 5px;font-weight:400;line-height:18px;text-align:center;text-shadow:0 1px 0 #fff;vertical-align:middle;background-color:#eee;border:1px solid #ccc;margin-left:-5px;margin-right:-5px} -@font-face{font-family:"bootstrap-icons";src:url("_content/Volo.Abp.AspNetCore.Components.Web.LeptonXLiteTheme/side-menu/libs/bootstrap-icons/font/fonts/bootstrap-icons.woff2?30af91bf14e37666a085fb8a161ff36d") format("woff2"),url("_content/Volo.Abp.AspNetCore.Components.Web.LeptonXLiteTheme/side-menu/libs/bootstrap-icons/font/fonts/bootstrap-icons.woff?30af91bf14e37666a085fb8a161ff36d") format("woff")}.bi::before,[class^="bi-"]::before,[class*=" bi-"]::before{display:inline-block;font-family:bootstrap-icons!important;font-style:normal;font-weight:normal!important;font-variant:normal;text-transform:none;line-height:1;vertical-align:-.125em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.bi-123::before{content:""}.bi-alarm-fill::before{content:""}.bi-alarm::before{content:""}.bi-align-bottom::before{content:""}.bi-align-center::before{content:""}.bi-align-end::before{content:""}.bi-align-middle::before{content:""}.bi-align-start::before{content:""}.bi-align-top::before{content:""}.bi-alt::before{content:""}.bi-app-indicator::before{content:""}.bi-app::before{content:""}.bi-archive-fill::before{content:""}.bi-archive::before{content:""}.bi-arrow-90deg-down::before{content:""}.bi-arrow-90deg-left::before{content:""}.bi-arrow-90deg-right::before{content:""}.bi-arrow-90deg-up::before{content:""}.bi-arrow-bar-down::before{content:""}.bi-arrow-bar-left::before{content:""}.bi-arrow-bar-right::before{content:""}.bi-arrow-bar-up::before{content:""}.bi-arrow-clockwise::before{content:""}.bi-arrow-counterclockwise::before{content:""}.bi-arrow-down-circle-fill::before{content:""}.bi-arrow-down-circle::before{content:""}.bi-arrow-down-left-circle-fill::before{content:""}.bi-arrow-down-left-circle::before{content:""}.bi-arrow-down-left-square-fill::before{content:""}.bi-arrow-down-left-square::before{content:""}.bi-arrow-down-left::before{content:""}.bi-arrow-down-right-circle-fill::before{content:""}.bi-arrow-down-right-circle::before{content:""}.bi-arrow-down-right-square-fill::before{content:""}.bi-arrow-down-right-square::before{content:""}.bi-arrow-down-right::before{content:""}.bi-arrow-down-short::before{content:""}.bi-arrow-down-square-fill::before{content:""}.bi-arrow-down-square::before{content:""}.bi-arrow-down-up::before{content:""}.bi-arrow-down::before{content:""}.bi-arrow-left-circle-fill::before{content:""}.bi-arrow-left-circle::before{content:""}.bi-arrow-left-right::before{content:""}.bi-arrow-left-short::before{content:""}.bi-arrow-left-square-fill::before{content:""}.bi-arrow-left-square::before{content:""}.bi-arrow-left::before{content:""}.bi-arrow-repeat::before{content:""}.bi-arrow-return-left::before{content:""}.bi-arrow-return-right::before{content:""}.bi-arrow-right-circle-fill::before{content:""}.bi-arrow-right-circle::before{content:""}.bi-arrow-right-short::before{content:""}.bi-arrow-right-square-fill::before{content:""}.bi-arrow-right-square::before{content:""}.bi-arrow-right::before{content:""}.bi-arrow-up-circle-fill::before{content:""}.bi-arrow-up-circle::before{content:""}.bi-arrow-up-left-circle-fill::before{content:""}.bi-arrow-up-left-circle::before{content:""}.bi-arrow-up-left-square-fill::before{content:""}.bi-arrow-up-left-square::before{content:""}.bi-arrow-up-left::before{content:""}.bi-arrow-up-right-circle-fill::before{content:""}.bi-arrow-up-right-circle::before{content:""}.bi-arrow-up-right-square-fill::before{content:""}.bi-arrow-up-right-square::before{content:""}.bi-arrow-up-right::before{content:""}.bi-arrow-up-short::before{content:""}.bi-arrow-up-square-fill::before{content:""}.bi-arrow-up-square::before{content:""}.bi-arrow-up::before{content:""}.bi-arrows-angle-contract::before{content:""}.bi-arrows-angle-expand::before{content:""}.bi-arrows-collapse::before{content:""}.bi-arrows-expand::before{content:""}.bi-arrows-fullscreen::before{content:""}.bi-arrows-move::before{content:""}.bi-aspect-ratio-fill::before{content:""}.bi-aspect-ratio::before{content:""}.bi-asterisk::before{content:""}.bi-at::before{content:""}.bi-award-fill::before{content:""}.bi-award::before{content:""}.bi-back::before{content:""}.bi-backspace-fill::before{content:""}.bi-backspace-reverse-fill::before{content:""}.bi-backspace-reverse::before{content:""}.bi-backspace::before{content:""}.bi-badge-3d-fill::before{content:""}.bi-badge-3d::before{content:""}.bi-badge-4k-fill::before{content:""}.bi-badge-4k::before{content:""}.bi-badge-8k-fill::before{content:""}.bi-badge-8k::before{content:""}.bi-badge-ad-fill::before{content:""}.bi-badge-ad::before{content:""}.bi-badge-ar-fill::before{content:""}.bi-badge-ar::before{content:""}.bi-badge-cc-fill::before{content:""}.bi-badge-cc::before{content:""}.bi-badge-hd-fill::before{content:""}.bi-badge-hd::before{content:""}.bi-badge-tm-fill::before{content:""}.bi-badge-tm::before{content:""}.bi-badge-vo-fill::before{content:""}.bi-badge-vo::before{content:""}.bi-badge-vr-fill::before{content:""}.bi-badge-vr::before{content:""}.bi-badge-wc-fill::before{content:""}.bi-badge-wc::before{content:""}.bi-bag-check-fill::before{content:""}.bi-bag-check::before{content:""}.bi-bag-dash-fill::before{content:""}.bi-bag-dash::before{content:""}.bi-bag-fill::before{content:""}.bi-bag-plus-fill::before{content:""}.bi-bag-plus::before{content:""}.bi-bag-x-fill::before{content:""}.bi-bag-x::before{content:""}.bi-bag::before{content:""}.bi-bar-chart-fill::before{content:""}.bi-bar-chart-line-fill::before{content:""}.bi-bar-chart-line::before{content:""}.bi-bar-chart-steps::before{content:""}.bi-bar-chart::before{content:""}.bi-basket-fill::before{content:""}.bi-basket::before{content:""}.bi-basket2-fill::before{content:""}.bi-basket2::before{content:""}.bi-basket3-fill::before{content:""}.bi-basket3::before{content:""}.bi-battery-charging::before{content:""}.bi-battery-full::before{content:""}.bi-battery-half::before{content:""}.bi-battery::before{content:""}.bi-bell-fill::before{content:""}.bi-bell::before{content:""}.bi-bezier::before{content:""}.bi-bezier2::before{content:""}.bi-bicycle::before{content:""}.bi-binoculars-fill::before{content:""}.bi-binoculars::before{content:""}.bi-blockquote-left::before{content:""}.bi-blockquote-right::before{content:""}.bi-book-fill::before{content:""}.bi-book-half::before{content:""}.bi-book::before{content:""}.bi-bookmark-check-fill::before{content:""}.bi-bookmark-check::before{content:""}.bi-bookmark-dash-fill::before{content:""}.bi-bookmark-dash::before{content:""}.bi-bookmark-fill::before{content:""}.bi-bookmark-heart-fill::before{content:""}.bi-bookmark-heart::before{content:""}.bi-bookmark-plus-fill::before{content:""}.bi-bookmark-plus::before{content:""}.bi-bookmark-star-fill::before{content:""}.bi-bookmark-star::before{content:""}.bi-bookmark-x-fill::before{content:""}.bi-bookmark-x::before{content:""}.bi-bookmark::before{content:""}.bi-bookmarks-fill::before{content:""}.bi-bookmarks::before{content:""}.bi-bookshelf::before{content:""}.bi-bootstrap-fill::before{content:""}.bi-bootstrap-reboot::before{content:""}.bi-bootstrap::before{content:""}.bi-border-all::before{content:""}.bi-border-bottom::before{content:""}.bi-border-center::before{content:""}.bi-border-inner::before{content:""}.bi-border-left::before{content:""}.bi-border-middle::before{content:""}.bi-border-outer::before{content:""}.bi-border-right::before{content:""}.bi-border-style::before{content:""}.bi-border-top::before{content:""}.bi-border-width::before{content:""}.bi-border::before{content:""}.bi-bounding-box-circles::before{content:""}.bi-bounding-box::before{content:""}.bi-box-arrow-down-left::before{content:""}.bi-box-arrow-down-right::before{content:""}.bi-box-arrow-down::before{content:""}.bi-box-arrow-in-down-left::before{content:""}.bi-box-arrow-in-down-right::before{content:""}.bi-box-arrow-in-down::before{content:""}.bi-box-arrow-in-left::before{content:""}.bi-box-arrow-in-right::before{content:""}.bi-box-arrow-in-up-left::before{content:""}.bi-box-arrow-in-up-right::before{content:""}.bi-box-arrow-in-up::before{content:""}.bi-box-arrow-left::before{content:""}.bi-box-arrow-right::before{content:""}.bi-box-arrow-up-left::before{content:""}.bi-box-arrow-up-right::before{content:""}.bi-box-arrow-up::before{content:""}.bi-box-seam::before{content:""}.bi-box::before{content:""}.bi-braces::before{content:""}.bi-bricks::before{content:""}.bi-briefcase-fill::before{content:""}.bi-briefcase::before{content:""}.bi-brightness-alt-high-fill::before{content:""}.bi-brightness-alt-high::before{content:""}.bi-brightness-alt-low-fill::before{content:""}.bi-brightness-alt-low::before{content:""}.bi-brightness-high-fill::before{content:""}.bi-brightness-high::before{content:""}.bi-brightness-low-fill::before{content:""}.bi-brightness-low::before{content:""}.bi-broadcast-pin::before{content:""}.bi-broadcast::before{content:""}.bi-brush-fill::before{content:""}.bi-brush::before{content:""}.bi-bucket-fill::before{content:""}.bi-bucket::before{content:""}.bi-bug-fill::before{content:""}.bi-bug::before{content:""}.bi-building::before{content:""}.bi-bullseye::before{content:""}.bi-calculator-fill::before{content:""}.bi-calculator::before{content:""}.bi-calendar-check-fill::before{content:""}.bi-calendar-check::before{content:""}.bi-calendar-date-fill::before{content:""}.bi-calendar-date::before{content:""}.bi-calendar-day-fill::before{content:""}.bi-calendar-day::before{content:""}.bi-calendar-event-fill::before{content:""}.bi-calendar-event::before{content:""}.bi-calendar-fill::before{content:""}.bi-calendar-minus-fill::before{content:""}.bi-calendar-minus::before{content:""}.bi-calendar-month-fill::before{content:""}.bi-calendar-month::before{content:""}.bi-calendar-plus-fill::before{content:""}.bi-calendar-plus::before{content:""}.bi-calendar-range-fill::before{content:""}.bi-calendar-range::before{content:""}.bi-calendar-week-fill::before{content:""}.bi-calendar-week::before{content:""}.bi-calendar-x-fill::before{content:""}.bi-calendar-x::before{content:""}.bi-calendar::before{content:""}.bi-calendar2-check-fill::before{content:""}.bi-calendar2-check::before{content:""}.bi-calendar2-date-fill::before{content:""}.bi-calendar2-date::before{content:""}.bi-calendar2-day-fill::before{content:""}.bi-calendar2-day::before{content:""}.bi-calendar2-event-fill::before{content:""}.bi-calendar2-event::before{content:""}.bi-calendar2-fill::before{content:""}.bi-calendar2-minus-fill::before{content:""}.bi-calendar2-minus::before{content:""}.bi-calendar2-month-fill::before{content:""}.bi-calendar2-month::before{content:""}.bi-calendar2-plus-fill::before{content:""}.bi-calendar2-plus::before{content:""}.bi-calendar2-range-fill::before{content:""}.bi-calendar2-range::before{content:""}.bi-calendar2-week-fill::before{content:""}.bi-calendar2-week::before{content:""}.bi-calendar2-x-fill::before{content:""}.bi-calendar2-x::before{content:""}.bi-calendar2::before{content:""}.bi-calendar3-event-fill::before{content:""}.bi-calendar3-event::before{content:""}.bi-calendar3-fill::before{content:""}.bi-calendar3-range-fill::before{content:""}.bi-calendar3-range::before{content:""}.bi-calendar3-week-fill::before{content:""}.bi-calendar3-week::before{content:""}.bi-calendar3::before{content:""}.bi-calendar4-event::before{content:""}.bi-calendar4-range::before{content:""}.bi-calendar4-week::before{content:""}.bi-calendar4::before{content:""}.bi-camera-fill::before{content:""}.bi-camera-reels-fill::before{content:""}.bi-camera-reels::before{content:""}.bi-camera-video-fill::before{content:""}.bi-camera-video-off-fill::before{content:""}.bi-camera-video-off::before{content:""}.bi-camera-video::before{content:""}.bi-camera::before{content:""}.bi-camera2::before{content:""}.bi-capslock-fill::before{content:""}.bi-capslock::before{content:""}.bi-card-checklist::before{content:""}.bi-card-heading::before{content:""}.bi-card-image::before{content:""}.bi-card-list::before{content:""}.bi-card-text::before{content:""}.bi-caret-down-fill::before{content:""}.bi-caret-down-square-fill::before{content:""}.bi-caret-down-square::before{content:""}.bi-caret-down::before{content:""}.bi-caret-left-fill::before{content:""}.bi-caret-left-square-fill::before{content:""}.bi-caret-left-square::before{content:""}.bi-caret-left::before{content:""}.bi-caret-right-fill::before{content:""}.bi-caret-right-square-fill::before{content:""}.bi-caret-right-square::before{content:""}.bi-caret-right::before{content:""}.bi-caret-up-fill::before{content:""}.bi-caret-up-square-fill::before{content:""}.bi-caret-up-square::before{content:""}.bi-caret-up::before{content:""}.bi-cart-check-fill::before{content:""}.bi-cart-check::before{content:""}.bi-cart-dash-fill::before{content:""}.bi-cart-dash::before{content:""}.bi-cart-fill::before{content:""}.bi-cart-plus-fill::before{content:""}.bi-cart-plus::before{content:""}.bi-cart-x-fill::before{content:""}.bi-cart-x::before{content:""}.bi-cart::before{content:""}.bi-cart2::before{content:""}.bi-cart3::before{content:""}.bi-cart4::before{content:""}.bi-cash-stack::before{content:""}.bi-cash::before{content:""}.bi-cast::before{content:""}.bi-chat-dots-fill::before{content:""}.bi-chat-dots::before{content:""}.bi-chat-fill::before{content:""}.bi-chat-left-dots-fill::before{content:""}.bi-chat-left-dots::before{content:""}.bi-chat-left-fill::before{content:""}.bi-chat-left-quote-fill::before{content:""}.bi-chat-left-quote::before{content:""}.bi-chat-left-text-fill::before{content:""}.bi-chat-left-text::before{content:""}.bi-chat-left::before{content:""}.bi-chat-quote-fill::before{content:""}.bi-chat-quote::before{content:""}.bi-chat-right-dots-fill::before{content:""}.bi-chat-right-dots::before{content:""}.bi-chat-right-fill::before{content:""}.bi-chat-right-quote-fill::before{content:""}.bi-chat-right-quote::before{content:""}.bi-chat-right-text-fill::before{content:""}.bi-chat-right-text::before{content:""}.bi-chat-right::before{content:""}.bi-chat-square-dots-fill::before{content:""}.bi-chat-square-dots::before{content:""}.bi-chat-square-fill::before{content:""}.bi-chat-square-quote-fill::before{content:""}.bi-chat-square-quote::before{content:""}.bi-chat-square-text-fill::before{content:""}.bi-chat-square-text::before{content:""}.bi-chat-square::before{content:""}.bi-chat-text-fill::before{content:""}.bi-chat-text::before{content:""}.bi-chat::before{content:""}.bi-check-all::before{content:""}.bi-check-circle-fill::before{content:""}.bi-check-circle::before{content:""}.bi-check-square-fill::before{content:""}.bi-check-square::before{content:""}.bi-check::before{content:""}.bi-check2-all::before{content:""}.bi-check2-circle::before{content:""}.bi-check2-square::before{content:""}.bi-check2::before{content:""}.bi-chevron-bar-contract::before{content:""}.bi-chevron-bar-down::before{content:""}.bi-chevron-bar-expand::before{content:""}.bi-chevron-bar-left::before{content:""}.bi-chevron-bar-right::before{content:""}.bi-chevron-bar-up::before{content:""}.bi-chevron-compact-down::before{content:""}.bi-chevron-compact-left::before{content:""}.bi-chevron-compact-right::before{content:""}.bi-chevron-compact-up::before{content:""}.bi-chevron-contract::before{content:""}.bi-chevron-double-down::before{content:""}.bi-chevron-double-left::before{content:""}.bi-chevron-double-right::before{content:""}.bi-chevron-double-up::before{content:""}.bi-chevron-down::before{content:""}.bi-chevron-expand::before{content:""}.bi-chevron-left::before{content:""}.bi-chevron-right::before{content:""}.bi-chevron-up::before{content:""}.bi-circle-fill::before{content:""}.bi-circle-half::before{content:""}.bi-circle-square::before{content:""}.bi-circle::before{content:""}.bi-clipboard-check::before{content:""}.bi-clipboard-data::before{content:""}.bi-clipboard-minus::before{content:""}.bi-clipboard-plus::before{content:""}.bi-clipboard-x::before{content:""}.bi-clipboard::before{content:""}.bi-clock-fill::before{content:""}.bi-clock-history::before{content:""}.bi-clock::before{content:""}.bi-cloud-arrow-down-fill::before{content:""}.bi-cloud-arrow-down::before{content:""}.bi-cloud-arrow-up-fill::before{content:""}.bi-cloud-arrow-up::before{content:""}.bi-cloud-check-fill::before{content:""}.bi-cloud-check::before{content:""}.bi-cloud-download-fill::before{content:""}.bi-cloud-download::before{content:""}.bi-cloud-drizzle-fill::before{content:""}.bi-cloud-drizzle::before{content:""}.bi-cloud-fill::before{content:""}.bi-cloud-fog-fill::before{content:""}.bi-cloud-fog::before{content:""}.bi-cloud-fog2-fill::before{content:""}.bi-cloud-fog2::before{content:""}.bi-cloud-hail-fill::before{content:""}.bi-cloud-hail::before{content:""}.bi-cloud-haze-1::before{content:""}.bi-cloud-haze-fill::before{content:""}.bi-cloud-haze::before{content:""}.bi-cloud-haze2-fill::before{content:""}.bi-cloud-lightning-fill::before{content:""}.bi-cloud-lightning-rain-fill::before{content:""}.bi-cloud-lightning-rain::before{content:""}.bi-cloud-lightning::before{content:""}.bi-cloud-minus-fill::before{content:""}.bi-cloud-minus::before{content:""}.bi-cloud-moon-fill::before{content:""}.bi-cloud-moon::before{content:""}.bi-cloud-plus-fill::before{content:""}.bi-cloud-plus::before{content:""}.bi-cloud-rain-fill::before{content:""}.bi-cloud-rain-heavy-fill::before{content:""}.bi-cloud-rain-heavy::before{content:""}.bi-cloud-rain::before{content:""}.bi-cloud-slash-fill::before{content:""}.bi-cloud-slash::before{content:""}.bi-cloud-sleet-fill::before{content:""}.bi-cloud-sleet::before{content:""}.bi-cloud-snow-fill::before{content:""}.bi-cloud-snow::before{content:""}.bi-cloud-sun-fill::before{content:""}.bi-cloud-sun::before{content:""}.bi-cloud-upload-fill::before{content:""}.bi-cloud-upload::before{content:""}.bi-cloud::before{content:""}.bi-clouds-fill::before{content:""}.bi-clouds::before{content:""}.bi-cloudy-fill::before{content:""}.bi-cloudy::before{content:""}.bi-code-slash::before{content:""}.bi-code-square::before{content:""}.bi-code::before{content:""}.bi-collection-fill::before{content:""}.bi-collection-play-fill::before{content:""}.bi-collection-play::before{content:""}.bi-collection::before{content:""}.bi-columns-gap::before{content:""}.bi-columns::before{content:""}.bi-command::before{content:""}.bi-compass-fill::before{content:""}.bi-compass::before{content:""}.bi-cone-striped::before{content:""}.bi-cone::before{content:""}.bi-controller::before{content:""}.bi-cpu-fill::before{content:""}.bi-cpu::before{content:""}.bi-credit-card-2-back-fill::before{content:""}.bi-credit-card-2-back::before{content:""}.bi-credit-card-2-front-fill::before{content:""}.bi-credit-card-2-front::before{content:""}.bi-credit-card-fill::before{content:""}.bi-credit-card::before{content:""}.bi-crop::before{content:""}.bi-cup-fill::before{content:""}.bi-cup-straw::before{content:""}.bi-cup::before{content:""}.bi-cursor-fill::before{content:""}.bi-cursor-text::before{content:""}.bi-cursor::before{content:""}.bi-dash-circle-dotted::before{content:""}.bi-dash-circle-fill::before{content:""}.bi-dash-circle::before{content:""}.bi-dash-square-dotted::before{content:""}.bi-dash-square-fill::before{content:""}.bi-dash-square::before{content:""}.bi-dash::before{content:""}.bi-diagram-2-fill::before{content:""}.bi-diagram-2::before{content:""}.bi-diagram-3-fill::before{content:""}.bi-diagram-3::before{content:""}.bi-diamond-fill::before{content:""}.bi-diamond-half::before{content:""}.bi-diamond::before{content:""}.bi-dice-1-fill::before{content:""}.bi-dice-1::before{content:""}.bi-dice-2-fill::before{content:""}.bi-dice-2::before{content:""}.bi-dice-3-fill::before{content:""}.bi-dice-3::before{content:""}.bi-dice-4-fill::before{content:""}.bi-dice-4::before{content:""}.bi-dice-5-fill::before{content:""}.bi-dice-5::before{content:""}.bi-dice-6-fill::before{content:""}.bi-dice-6::before{content:""}.bi-disc-fill::before{content:""}.bi-disc::before{content:""}.bi-discord::before{content:""}.bi-display-fill::before{content:""}.bi-display::before{content:""}.bi-distribute-horizontal::before{content:""}.bi-distribute-vertical::before{content:""}.bi-door-closed-fill::before{content:""}.bi-door-closed::before{content:""}.bi-door-open-fill::before{content:""}.bi-door-open::before{content:""}.bi-dot::before{content:""}.bi-download::before{content:""}.bi-droplet-fill::before{content:""}.bi-droplet-half::before{content:""}.bi-droplet::before{content:""}.bi-earbuds::before{content:""}.bi-easel-fill::before{content:""}.bi-easel::before{content:""}.bi-egg-fill::before{content:""}.bi-egg-fried::before{content:""}.bi-egg::before{content:""}.bi-eject-fill::before{content:""}.bi-eject::before{content:""}.bi-emoji-angry-fill::before{content:""}.bi-emoji-angry::before{content:""}.bi-emoji-dizzy-fill::before{content:""}.bi-emoji-dizzy::before{content:""}.bi-emoji-expressionless-fill::before{content:""}.bi-emoji-expressionless::before{content:""}.bi-emoji-frown-fill::before{content:""}.bi-emoji-frown::before{content:""}.bi-emoji-heart-eyes-fill::before{content:""}.bi-emoji-heart-eyes::before{content:""}.bi-emoji-laughing-fill::before{content:""}.bi-emoji-laughing::before{content:""}.bi-emoji-neutral-fill::before{content:""}.bi-emoji-neutral::before{content:""}.bi-emoji-smile-fill::before{content:""}.bi-emoji-smile-upside-down-fill::before{content:""}.bi-emoji-smile-upside-down::before{content:""}.bi-emoji-smile::before{content:""}.bi-emoji-sunglasses-fill::before{content:""}.bi-emoji-sunglasses::before{content:""}.bi-emoji-wink-fill::before{content:""}.bi-emoji-wink::before{content:""}.bi-envelope-fill::before{content:""}.bi-envelope-open-fill::before{content:""}.bi-envelope-open::before{content:""}.bi-envelope::before{content:""}.bi-eraser-fill::before{content:""}.bi-eraser::before{content:""}.bi-exclamation-circle-fill::before{content:""}.bi-exclamation-circle::before{content:""}.bi-exclamation-diamond-fill::before{content:""}.bi-exclamation-diamond::before{content:""}.bi-exclamation-octagon-fill::before{content:""}.bi-exclamation-octagon::before{content:""}.bi-exclamation-square-fill::before{content:""}.bi-exclamation-square::before{content:""}.bi-exclamation-triangle-fill::before{content:""}.bi-exclamation-triangle::before{content:""}.bi-exclamation::before{content:""}.bi-exclude::before{content:""}.bi-eye-fill::before{content:""}.bi-eye-slash-fill::before{content:""}.bi-eye-slash::before{content:""}.bi-eye::before{content:""}.bi-eyedropper::before{content:""}.bi-eyeglasses::before{content:""}.bi-facebook::before{content:""}.bi-file-arrow-down-fill::before{content:""}.bi-file-arrow-down::before{content:""}.bi-file-arrow-up-fill::before{content:""}.bi-file-arrow-up::before{content:""}.bi-file-bar-graph-fill::before{content:""}.bi-file-bar-graph::before{content:""}.bi-file-binary-fill::before{content:""}.bi-file-binary::before{content:""}.bi-file-break-fill::before{content:""}.bi-file-break::before{content:""}.bi-file-check-fill::before{content:""}.bi-file-check::before{content:""}.bi-file-code-fill::before{content:""}.bi-file-code::before{content:""}.bi-file-diff-fill::before{content:""}.bi-file-diff::before{content:""}.bi-file-earmark-arrow-down-fill::before{content:""}.bi-file-earmark-arrow-down::before{content:""}.bi-file-earmark-arrow-up-fill::before{content:""}.bi-file-earmark-arrow-up::before{content:""}.bi-file-earmark-bar-graph-fill::before{content:""}.bi-file-earmark-bar-graph::before{content:""}.bi-file-earmark-binary-fill::before{content:""}.bi-file-earmark-binary::before{content:""}.bi-file-earmark-break-fill::before{content:""}.bi-file-earmark-break::before{content:""}.bi-file-earmark-check-fill::before{content:""}.bi-file-earmark-check::before{content:""}.bi-file-earmark-code-fill::before{content:""}.bi-file-earmark-code::before{content:""}.bi-file-earmark-diff-fill::before{content:""}.bi-file-earmark-diff::before{content:""}.bi-file-earmark-easel-fill::before{content:""}.bi-file-earmark-easel::before{content:""}.bi-file-earmark-excel-fill::before{content:""}.bi-file-earmark-excel::before{content:""}.bi-file-earmark-fill::before{content:""}.bi-file-earmark-font-fill::before{content:""}.bi-file-earmark-font::before{content:""}.bi-file-earmark-image-fill::before{content:""}.bi-file-earmark-image::before{content:""}.bi-file-earmark-lock-fill::before{content:""}.bi-file-earmark-lock::before{content:""}.bi-file-earmark-lock2-fill::before{content:""}.bi-file-earmark-lock2::before{content:""}.bi-file-earmark-medical-fill::before{content:""}.bi-file-earmark-medical::before{content:""}.bi-file-earmark-minus-fill::before{content:""}.bi-file-earmark-minus::before{content:""}.bi-file-earmark-music-fill::before{content:""}.bi-file-earmark-music::before{content:""}.bi-file-earmark-person-fill::before{content:""}.bi-file-earmark-person::before{content:""}.bi-file-earmark-play-fill::before{content:""}.bi-file-earmark-play::before{content:""}.bi-file-earmark-plus-fill::before{content:""}.bi-file-earmark-plus::before{content:""}.bi-file-earmark-post-fill::before{content:""}.bi-file-earmark-post::before{content:""}.bi-file-earmark-ppt-fill::before{content:""}.bi-file-earmark-ppt::before{content:""}.bi-file-earmark-richtext-fill::before{content:""}.bi-file-earmark-richtext::before{content:""}.bi-file-earmark-ruled-fill::before{content:""}.bi-file-earmark-ruled::before{content:""}.bi-file-earmark-slides-fill::before{content:""}.bi-file-earmark-slides::before{content:""}.bi-file-earmark-spreadsheet-fill::before{content:""}.bi-file-earmark-spreadsheet::before{content:""}.bi-file-earmark-text-fill::before{content:""}.bi-file-earmark-text::before{content:""}.bi-file-earmark-word-fill::before{content:""}.bi-file-earmark-word::before{content:""}.bi-file-earmark-x-fill::before{content:""}.bi-file-earmark-x::before{content:""}.bi-file-earmark-zip-fill::before{content:""}.bi-file-earmark-zip::before{content:""}.bi-file-earmark::before{content:""}.bi-file-easel-fill::before{content:""}.bi-file-easel::before{content:""}.bi-file-excel-fill::before{content:""}.bi-file-excel::before{content:""}.bi-file-fill::before{content:""}.bi-file-font-fill::before{content:""}.bi-file-font::before{content:""}.bi-file-image-fill::before{content:""}.bi-file-image::before{content:""}.bi-file-lock-fill::before{content:""}.bi-file-lock::before{content:""}.bi-file-lock2-fill::before{content:""}.bi-file-lock2::before{content:""}.bi-file-medical-fill::before{content:""}.bi-file-medical::before{content:""}.bi-file-minus-fill::before{content:""}.bi-file-minus::before{content:""}.bi-file-music-fill::before{content:""}.bi-file-music::before{content:""}.bi-file-person-fill::before{content:""}.bi-file-person::before{content:""}.bi-file-play-fill::before{content:""}.bi-file-play::before{content:""}.bi-file-plus-fill::before{content:""}.bi-file-plus::before{content:""}.bi-file-post-fill::before{content:""}.bi-file-post::before{content:""}.bi-file-ppt-fill::before{content:""}.bi-file-ppt::before{content:""}.bi-file-richtext-fill::before{content:""}.bi-file-richtext::before{content:""}.bi-file-ruled-fill::before{content:""}.bi-file-ruled::before{content:""}.bi-file-slides-fill::before{content:""}.bi-file-slides::before{content:""}.bi-file-spreadsheet-fill::before{content:""}.bi-file-spreadsheet::before{content:""}.bi-file-text-fill::before{content:""}.bi-file-text::before{content:""}.bi-file-word-fill::before{content:""}.bi-file-word::before{content:""}.bi-file-x-fill::before{content:""}.bi-file-x::before{content:""}.bi-file-zip-fill::before{content:""}.bi-file-zip::before{content:""}.bi-file::before{content:""}.bi-files-alt::before{content:""}.bi-files::before{content:""}.bi-film::before{content:""}.bi-filter-circle-fill::before{content:""}.bi-filter-circle::before{content:""}.bi-filter-left::before{content:""}.bi-filter-right::before{content:""}.bi-filter-square-fill::before{content:""}.bi-filter-square::before{content:""}.bi-filter::before{content:""}.bi-flag-fill::before{content:""}.bi-flag::before{content:""}.bi-flower1::before{content:""}.bi-flower2::before{content:""}.bi-flower3::before{content:""}.bi-folder-check::before{content:""}.bi-folder-fill::before{content:""}.bi-folder-minus::before{content:""}.bi-folder-plus::before{content:""}.bi-folder-symlink-fill::before{content:""}.bi-folder-symlink::before{content:""}.bi-folder-x::before{content:""}.bi-folder::before{content:""}.bi-folder2-open::before{content:""}.bi-folder2::before{content:""}.bi-fonts::before{content:""}.bi-forward-fill::before{content:""}.bi-forward::before{content:""}.bi-front::before{content:""}.bi-fullscreen-exit::before{content:""}.bi-fullscreen::before{content:""}.bi-funnel-fill::before{content:""}.bi-funnel::before{content:""}.bi-gear-fill::before{content:""}.bi-gear-wide-connected::before{content:""}.bi-gear-wide::before{content:""}.bi-gear::before{content:""}.bi-gem::before{content:""}.bi-geo-alt-fill::before{content:""}.bi-geo-alt::before{content:""}.bi-geo-fill::before{content:""}.bi-geo::before{content:""}.bi-gift-fill::before{content:""}.bi-gift::before{content:""}.bi-github::before{content:""}.bi-globe::before{content:""}.bi-globe2::before{content:""}.bi-google::before{content:""}.bi-graph-down::before{content:""}.bi-graph-up::before{content:""}.bi-grid-1x2-fill::before{content:""}.bi-grid-1x2::before{content:""}.bi-grid-3x2-gap-fill::before{content:""}.bi-grid-3x2-gap::before{content:""}.bi-grid-3x2::before{content:""}.bi-grid-3x3-gap-fill::before{content:""}.bi-grid-3x3-gap::before{content:""}.bi-grid-3x3::before{content:""}.bi-grid-fill::before{content:""}.bi-grid::before{content:""}.bi-grip-horizontal::before{content:""}.bi-grip-vertical::before{content:""}.bi-hammer::before{content:""}.bi-hand-index-fill::before{content:""}.bi-hand-index-thumb-fill::before{content:""}.bi-hand-index-thumb::before{content:""}.bi-hand-index::before{content:""}.bi-hand-thumbs-down-fill::before{content:""}.bi-hand-thumbs-down::before{content:""}.bi-hand-thumbs-up-fill::before{content:""}.bi-hand-thumbs-up::before{content:""}.bi-handbag-fill::before{content:""}.bi-handbag::before{content:""}.bi-hash::before{content:""}.bi-hdd-fill::before{content:""}.bi-hdd-network-fill::before{content:""}.bi-hdd-network::before{content:""}.bi-hdd-rack-fill::before{content:""}.bi-hdd-rack::before{content:""}.bi-hdd-stack-fill::before{content:""}.bi-hdd-stack::before{content:""}.bi-hdd::before{content:""}.bi-headphones::before{content:""}.bi-headset::before{content:""}.bi-heart-fill::before{content:""}.bi-heart-half::before{content:""}.bi-heart::before{content:""}.bi-heptagon-fill::before{content:""}.bi-heptagon-half::before{content:""}.bi-heptagon::before{content:""}.bi-hexagon-fill::before{content:""}.bi-hexagon-half::before{content:""}.bi-hexagon::before{content:""}.bi-hourglass-bottom::before{content:""}.bi-hourglass-split::before{content:""}.bi-hourglass-top::before{content:""}.bi-hourglass::before{content:""}.bi-house-door-fill::before{content:""}.bi-house-door::before{content:""}.bi-house-fill::before{content:""}.bi-house::before{content:""}.bi-hr::before{content:""}.bi-hurricane::before{content:""}.bi-image-alt::before{content:""}.bi-image-fill::before{content:""}.bi-image::before{content:""}.bi-images::before{content:""}.bi-inbox-fill::before{content:""}.bi-inbox::before{content:""}.bi-inboxes-fill::before{content:""}.bi-inboxes::before{content:""}.bi-info-circle-fill::before{content:""}.bi-info-circle::before{content:""}.bi-info-square-fill::before{content:""}.bi-info-square::before{content:""}.bi-info::before{content:""}.bi-input-cursor-text::before{content:""}.bi-input-cursor::before{content:""}.bi-instagram::before{content:""}.bi-intersect::before{content:""}.bi-journal-album::before{content:""}.bi-journal-arrow-down::before{content:""}.bi-journal-arrow-up::before{content:""}.bi-journal-bookmark-fill::before{content:""}.bi-journal-bookmark::before{content:""}.bi-journal-check::before{content:""}.bi-journal-code::before{content:""}.bi-journal-medical::before{content:""}.bi-journal-minus::before{content:""}.bi-journal-plus::before{content:""}.bi-journal-richtext::before{content:""}.bi-journal-text::before{content:""}.bi-journal-x::before{content:""}.bi-journal::before{content:""}.bi-journals::before{content:""}.bi-joystick::before{content:""}.bi-justify-left::before{content:""}.bi-justify-right::before{content:""}.bi-justify::before{content:""}.bi-kanban-fill::before{content:""}.bi-kanban::before{content:""}.bi-key-fill::before{content:""}.bi-key::before{content:""}.bi-keyboard-fill::before{content:""}.bi-keyboard::before{content:""}.bi-ladder::before{content:""}.bi-lamp-fill::before{content:""}.bi-lamp::before{content:""}.bi-laptop-fill::before{content:""}.bi-laptop::before{content:""}.bi-layer-backward::before{content:""}.bi-layer-forward::before{content:""}.bi-layers-fill::before{content:""}.bi-layers-half::before{content:""}.bi-layers::before{content:""}.bi-layout-sidebar-inset-reverse::before{content:""}.bi-layout-sidebar-inset::before{content:""}.bi-layout-sidebar-reverse::before{content:""}.bi-layout-sidebar::before{content:""}.bi-layout-split::before{content:""}.bi-layout-text-sidebar-reverse::before{content:""}.bi-layout-text-sidebar::before{content:""}.bi-layout-text-window-reverse::before{content:""}.bi-layout-text-window::before{content:""}.bi-layout-three-columns::before{content:""}.bi-layout-wtf::before{content:""}.bi-life-preserver::before{content:""}.bi-lightbulb-fill::before{content:""}.bi-lightbulb-off-fill::before{content:""}.bi-lightbulb-off::before{content:""}.bi-lightbulb::before{content:""}.bi-lightning-charge-fill::before{content:""}.bi-lightning-charge::before{content:""}.bi-lightning-fill::before{content:""}.bi-lightning::before{content:""}.bi-link-45deg::before{content:""}.bi-link::before{content:""}.bi-linkedin::before{content:""}.bi-list-check::before{content:""}.bi-list-nested::before{content:""}.bi-list-ol::before{content:""}.bi-list-stars::before{content:""}.bi-list-task::before{content:""}.bi-list-ul::before{content:""}.bi-list::before{content:""}.bi-lock-fill::before{content:""}.bi-lock::before{content:""}.bi-mailbox::before{content:""}.bi-mailbox2::before{content:""}.bi-map-fill::before{content:""}.bi-map::before{content:""}.bi-markdown-fill::before{content:""}.bi-markdown::before{content:""}.bi-mask::before{content:""}.bi-megaphone-fill::before{content:""}.bi-megaphone::before{content:""}.bi-menu-app-fill::before{content:""}.bi-menu-app::before{content:""}.bi-menu-button-fill::before{content:""}.bi-menu-button-wide-fill::before{content:""}.bi-menu-button-wide::before{content:""}.bi-menu-button::before{content:""}.bi-menu-down::before{content:""}.bi-menu-up::before{content:""}.bi-mic-fill::before{content:""}.bi-mic-mute-fill::before{content:""}.bi-mic-mute::before{content:""}.bi-mic::before{content:""}.bi-minecart-loaded::before{content:""}.bi-minecart::before{content:""}.bi-moisture::before{content:""}.bi-moon-fill::before{content:""}.bi-moon-stars-fill::before{content:""}.bi-moon-stars::before{content:""}.bi-moon::before{content:""}.bi-mouse-fill::before{content:""}.bi-mouse::before{content:""}.bi-mouse2-fill::before{content:""}.bi-mouse2::before{content:""}.bi-mouse3-fill::before{content:""}.bi-mouse3::before{content:""}.bi-music-note-beamed::before{content:""}.bi-music-note-list::before{content:""}.bi-music-note::before{content:""}.bi-music-player-fill::before{content:""}.bi-music-player::before{content:""}.bi-newspaper::before{content:""}.bi-node-minus-fill::before{content:""}.bi-node-minus::before{content:""}.bi-node-plus-fill::before{content:""}.bi-node-plus::before{content:""}.bi-nut-fill::before{content:""}.bi-nut::before{content:""}.bi-octagon-fill::before{content:""}.bi-octagon-half::before{content:""}.bi-octagon::before{content:""}.bi-option::before{content:""}.bi-outlet::before{content:""}.bi-paint-bucket::before{content:""}.bi-palette-fill::before{content:""}.bi-palette::before{content:""}.bi-palette2::before{content:""}.bi-paperclip::before{content:""}.bi-paragraph::before{content:""}.bi-patch-check-fill::before{content:""}.bi-patch-check::before{content:""}.bi-patch-exclamation-fill::before{content:""}.bi-patch-exclamation::before{content:""}.bi-patch-minus-fill::before{content:""}.bi-patch-minus::before{content:""}.bi-patch-plus-fill::before{content:""}.bi-patch-plus::before{content:""}.bi-patch-question-fill::before{content:""}.bi-patch-question::before{content:""}.bi-pause-btn-fill::before{content:""}.bi-pause-btn::before{content:""}.bi-pause-circle-fill::before{content:""}.bi-pause-circle::before{content:""}.bi-pause-fill::before{content:""}.bi-pause::before{content:""}.bi-peace-fill::before{content:""}.bi-peace::before{content:""}.bi-pen-fill::before{content:""}.bi-pen::before{content:""}.bi-pencil-fill::before{content:""}.bi-pencil-square::before{content:""}.bi-pencil::before{content:""}.bi-pentagon-fill::before{content:""}.bi-pentagon-half::before{content:""}.bi-pentagon::before{content:""}.bi-people-fill::before{content:""}.bi-people::before{content:""}.bi-percent::before{content:""}.bi-person-badge-fill::before{content:""}.bi-person-badge::before{content:""}.bi-person-bounding-box::before{content:""}.bi-person-check-fill::before{content:""}.bi-person-check::before{content:""}.bi-person-circle::before{content:""}.bi-person-dash-fill::before{content:""}.bi-person-dash::before{content:""}.bi-person-fill::before{content:""}.bi-person-lines-fill::before{content:""}.bi-person-plus-fill::before{content:""}.bi-person-plus::before{content:""}.bi-person-square::before{content:""}.bi-person-x-fill::before{content:""}.bi-person-x::before{content:""}.bi-person::before{content:""}.bi-phone-fill::before{content:""}.bi-phone-landscape-fill::before{content:""}.bi-phone-landscape::before{content:""}.bi-phone-vibrate-fill::before{content:""}.bi-phone-vibrate::before{content:""}.bi-phone::before{content:""}.bi-pie-chart-fill::before{content:""}.bi-pie-chart::before{content:""}.bi-pin-angle-fill::before{content:""}.bi-pin-angle::before{content:""}.bi-pin-fill::before{content:""}.bi-pin::before{content:""}.bi-pip-fill::before{content:""}.bi-pip::before{content:""}.bi-play-btn-fill::before{content:""}.bi-play-btn::before{content:""}.bi-play-circle-fill::before{content:""}.bi-play-circle::before{content:""}.bi-play-fill::before{content:""}.bi-play::before{content:""}.bi-plug-fill::before{content:""}.bi-plug::before{content:""}.bi-plus-circle-dotted::before{content:""}.bi-plus-circle-fill::before{content:""}.bi-plus-circle::before{content:""}.bi-plus-square-dotted::before{content:""}.bi-plus-square-fill::before{content:""}.bi-plus-square::before{content:""}.bi-plus::before{content:""}.bi-power::before{content:""}.bi-printer-fill::before{content:""}.bi-printer::before{content:""}.bi-puzzle-fill::before{content:""}.bi-puzzle::before{content:""}.bi-question-circle-fill::before{content:""}.bi-question-circle::before{content:""}.bi-question-diamond-fill::before{content:""}.bi-question-diamond::before{content:""}.bi-question-octagon-fill::before{content:""}.bi-question-octagon::before{content:""}.bi-question-square-fill::before{content:""}.bi-question-square::before{content:""}.bi-question::before{content:""}.bi-rainbow::before{content:""}.bi-receipt-cutoff::before{content:""}.bi-receipt::before{content:""}.bi-reception-0::before{content:""}.bi-reception-1::before{content:""}.bi-reception-2::before{content:""}.bi-reception-3::before{content:""}.bi-reception-4::before{content:""}.bi-record-btn-fill::before{content:""}.bi-record-btn::before{content:""}.bi-record-circle-fill::before{content:""}.bi-record-circle::before{content:""}.bi-record-fill::before{content:""}.bi-record::before{content:""}.bi-record2-fill::before{content:""}.bi-record2::before{content:""}.bi-reply-all-fill::before{content:""}.bi-reply-all::before{content:""}.bi-reply-fill::before{content:""}.bi-reply::before{content:""}.bi-rss-fill::before{content:""}.bi-rss::before{content:""}.bi-rulers::before{content:""}.bi-save-fill::before{content:""}.bi-save::before{content:""}.bi-save2-fill::before{content:""}.bi-save2::before{content:""}.bi-scissors::before{content:""}.bi-screwdriver::before{content:""}.bi-search::before{content:""}.bi-segmented-nav::before{content:""}.bi-server::before{content:""}.bi-share-fill::before{content:""}.bi-share::before{content:""}.bi-shield-check::before{content:""}.bi-shield-exclamation::before{content:""}.bi-shield-fill-check::before{content:""}.bi-shield-fill-exclamation::before{content:""}.bi-shield-fill-minus::before{content:""}.bi-shield-fill-plus::before{content:""}.bi-shield-fill-x::before{content:""}.bi-shield-fill::before{content:""}.bi-shield-lock-fill::before{content:""}.bi-shield-lock::before{content:""}.bi-shield-minus::before{content:""}.bi-shield-plus::before{content:""}.bi-shield-shaded::before{content:""}.bi-shield-slash-fill::before{content:""}.bi-shield-slash::before{content:""}.bi-shield-x::before{content:""}.bi-shield::before{content:""}.bi-shift-fill::before{content:""}.bi-shift::before{content:""}.bi-shop-window::before{content:""}.bi-shop::before{content:""}.bi-shuffle::before{content:""}.bi-signpost-2-fill::before{content:""}.bi-signpost-2::before{content:""}.bi-signpost-fill::before{content:""}.bi-signpost-split-fill::before{content:""}.bi-signpost-split::before{content:""}.bi-signpost::before{content:""}.bi-sim-fill::before{content:""}.bi-sim::before{content:""}.bi-skip-backward-btn-fill::before{content:""}.bi-skip-backward-btn::before{content:""}.bi-skip-backward-circle-fill::before{content:""}.bi-skip-backward-circle::before{content:""}.bi-skip-backward-fill::before{content:""}.bi-skip-backward::before{content:""}.bi-skip-end-btn-fill::before{content:""}.bi-skip-end-btn::before{content:""}.bi-skip-end-circle-fill::before{content:""}.bi-skip-end-circle::before{content:""}.bi-skip-end-fill::before{content:""}.bi-skip-end::before{content:""}.bi-skip-forward-btn-fill::before{content:""}.bi-skip-forward-btn::before{content:""}.bi-skip-forward-circle-fill::before{content:""}.bi-skip-forward-circle::before{content:""}.bi-skip-forward-fill::before{content:""}.bi-skip-forward::before{content:""}.bi-skip-start-btn-fill::before{content:""}.bi-skip-start-btn::before{content:""}.bi-skip-start-circle-fill::before{content:""}.bi-skip-start-circle::before{content:""}.bi-skip-start-fill::before{content:""}.bi-skip-start::before{content:""}.bi-slack::before{content:""}.bi-slash-circle-fill::before{content:""}.bi-slash-circle::before{content:""}.bi-slash-square-fill::before{content:""}.bi-slash-square::before{content:""}.bi-slash::before{content:""}.bi-sliders::before{content:""}.bi-smartwatch::before{content:""}.bi-snow::before{content:""}.bi-snow2::before{content:""}.bi-snow3::before{content:""}.bi-sort-alpha-down-alt::before{content:""}.bi-sort-alpha-down::before{content:""}.bi-sort-alpha-up-alt::before{content:""}.bi-sort-alpha-up::before{content:""}.bi-sort-down-alt::before{content:""}.bi-sort-down::before{content:""}.bi-sort-numeric-down-alt::before{content:""}.bi-sort-numeric-down::before{content:""}.bi-sort-numeric-up-alt::before{content:""}.bi-sort-numeric-up::before{content:""}.bi-sort-up-alt::before{content:""}.bi-sort-up::before{content:""}.bi-soundwave::before{content:""}.bi-speaker-fill::before{content:""}.bi-speaker::before{content:""}.bi-speedometer::before{content:""}.bi-speedometer2::before{content:""}.bi-spellcheck::before{content:""}.bi-square-fill::before{content:""}.bi-square-half::before{content:""}.bi-square::before{content:""}.bi-stack::before{content:""}.bi-star-fill::before{content:""}.bi-star-half::before{content:""}.bi-star::before{content:""}.bi-stars::before{content:""}.bi-stickies-fill::before{content:""}.bi-stickies::before{content:""}.bi-sticky-fill::before{content:""}.bi-sticky::before{content:""}.bi-stop-btn-fill::before{content:""}.bi-stop-btn::before{content:""}.bi-stop-circle-fill::before{content:""}.bi-stop-circle::before{content:""}.bi-stop-fill::before{content:""}.bi-stop::before{content:""}.bi-stoplights-fill::before{content:""}.bi-stoplights::before{content:""}.bi-stopwatch-fill::before{content:""}.bi-stopwatch::before{content:""}.bi-subtract::before{content:""}.bi-suit-club-fill::before{content:""}.bi-suit-club::before{content:""}.bi-suit-diamond-fill::before{content:""}.bi-suit-diamond::before{content:""}.bi-suit-heart-fill::before{content:""}.bi-suit-heart::before{content:""}.bi-suit-spade-fill::before{content:""}.bi-suit-spade::before{content:""}.bi-sun-fill::before{content:""}.bi-sun::before{content:""}.bi-sunglasses::before{content:""}.bi-sunrise-fill::before{content:""}.bi-sunrise::before{content:""}.bi-sunset-fill::before{content:""}.bi-sunset::before{content:""}.bi-symmetry-horizontal::before{content:""}.bi-symmetry-vertical::before{content:""}.bi-table::before{content:""}.bi-tablet-fill::before{content:""}.bi-tablet-landscape-fill::before{content:""}.bi-tablet-landscape::before{content:""}.bi-tablet::before{content:""}.bi-tag-fill::before{content:""}.bi-tag::before{content:""}.bi-tags-fill::before{content:""}.bi-tags::before{content:""}.bi-telegram::before{content:""}.bi-telephone-fill::before{content:""}.bi-telephone-forward-fill::before{content:""}.bi-telephone-forward::before{content:""}.bi-telephone-inbound-fill::before{content:""}.bi-telephone-inbound::before{content:""}.bi-telephone-minus-fill::before{content:""}.bi-telephone-minus::before{content:""}.bi-telephone-outbound-fill::before{content:""}.bi-telephone-outbound::before{content:""}.bi-telephone-plus-fill::before{content:""}.bi-telephone-plus::before{content:""}.bi-telephone-x-fill::before{content:""}.bi-telephone-x::before{content:""}.bi-telephone::before{content:""}.bi-terminal-fill::before{content:""}.bi-terminal::before{content:""}.bi-text-center::before{content:""}.bi-text-indent-left::before{content:""}.bi-text-indent-right::before{content:""}.bi-text-left::before{content:""}.bi-text-paragraph::before{content:""}.bi-text-right::before{content:""}.bi-textarea-resize::before{content:""}.bi-textarea-t::before{content:""}.bi-textarea::before{content:""}.bi-thermometer-half::before{content:""}.bi-thermometer-high::before{content:""}.bi-thermometer-low::before{content:""}.bi-thermometer-snow::before{content:""}.bi-thermometer-sun::before{content:""}.bi-thermometer::before{content:""}.bi-three-dots-vertical::before{content:""}.bi-three-dots::before{content:""}.bi-toggle-off::before{content:""}.bi-toggle-on::before{content:""}.bi-toggle2-off::before{content:""}.bi-toggle2-on::before{content:""}.bi-toggles::before{content:""}.bi-toggles2::before{content:""}.bi-tools::before{content:""}.bi-tornado::before{content:""}.bi-trash-fill::before{content:""}.bi-trash::before{content:""}.bi-trash2-fill::before{content:""}.bi-trash2::before{content:""}.bi-tree-fill::before{content:""}.bi-tree::before{content:""}.bi-triangle-fill::before{content:""}.bi-triangle-half::before{content:""}.bi-triangle::before{content:""}.bi-trophy-fill::before{content:""}.bi-trophy::before{content:""}.bi-tropical-storm::before{content:""}.bi-truck-flatbed::before{content:""}.bi-truck::before{content:""}.bi-tsunami::before{content:""}.bi-tv-fill::before{content:""}.bi-tv::before{content:""}.bi-twitch::before{content:""}.bi-twitter::before{content:""}.bi-type-bold::before{content:""}.bi-type-h1::before{content:""}.bi-type-h2::before{content:""}.bi-type-h3::before{content:""}.bi-type-italic::before{content:""}.bi-type-strikethrough::before{content:""}.bi-type-underline::before{content:""}.bi-type::before{content:""}.bi-ui-checks-grid::before{content:""}.bi-ui-checks::before{content:""}.bi-ui-radios-grid::before{content:""}.bi-ui-radios::before{content:""}.bi-umbrella-fill::before{content:""}.bi-umbrella::before{content:""}.bi-union::before{content:""}.bi-unlock-fill::before{content:""}.bi-unlock::before{content:""}.bi-upc-scan::before{content:""}.bi-upc::before{content:""}.bi-upload::before{content:""}.bi-vector-pen::before{content:""}.bi-view-list::before{content:""}.bi-view-stacked::before{content:""}.bi-vinyl-fill::before{content:""}.bi-vinyl::before{content:""}.bi-voicemail::before{content:""}.bi-volume-down-fill::before{content:""}.bi-volume-down::before{content:""}.bi-volume-mute-fill::before{content:""}.bi-volume-mute::before{content:""}.bi-volume-off-fill::before{content:""}.bi-volume-off::before{content:""}.bi-volume-up-fill::before{content:""}.bi-volume-up::before{content:""}.bi-vr::before{content:""}.bi-wallet-fill::before{content:""}.bi-wallet::before{content:""}.bi-wallet2::before{content:""}.bi-watch::before{content:""}.bi-water::before{content:""}.bi-whatsapp::before{content:""}.bi-wifi-1::before{content:""}.bi-wifi-2::before{content:""}.bi-wifi-off::before{content:""}.bi-wifi::before{content:""}.bi-wind::before{content:""}.bi-window-dock::before{content:""}.bi-window-sidebar::before{content:""}.bi-window::before{content:""}.bi-wrench::before{content:""}.bi-x-circle-fill::before{content:""}.bi-x-circle::before{content:""}.bi-x-diamond-fill::before{content:""}.bi-x-diamond::before{content:""}.bi-x-octagon-fill::before{content:""}.bi-x-octagon::before{content:""}.bi-x-square-fill::before{content:""}.bi-x-square::before{content:""}.bi-x::before{content:""}.bi-youtube::before{content:""}.bi-zoom-in::before{content:""}.bi-zoom-out::before{content:""}.bi-bank::before{content:""}.bi-bank2::before{content:""}.bi-bell-slash-fill::before{content:""}.bi-bell-slash::before{content:""}.bi-cash-coin::before{content:""}.bi-check-lg::before{content:""}.bi-coin::before{content:""}.bi-currency-bitcoin::before{content:""}.bi-currency-dollar::before{content:""}.bi-currency-euro::before{content:""}.bi-currency-exchange::before{content:""}.bi-currency-pound::before{content:""}.bi-currency-yen::before{content:""}.bi-dash-lg::before{content:""}.bi-exclamation-lg::before{content:""}.bi-file-earmark-pdf-fill::before{content:""}.bi-file-earmark-pdf::before{content:""}.bi-file-pdf-fill::before{content:""}.bi-file-pdf::before{content:""}.bi-gender-ambiguous::before{content:""}.bi-gender-female::before{content:""}.bi-gender-male::before{content:""}.bi-gender-trans::before{content:""}.bi-headset-vr::before{content:""}.bi-info-lg::before{content:""}.bi-mastodon::before{content:""}.bi-messenger::before{content:""}.bi-piggy-bank-fill::before{content:""}.bi-piggy-bank::before{content:""}.bi-pin-map-fill::before{content:""}.bi-pin-map::before{content:""}.bi-plus-lg::before{content:""}.bi-question-lg::before{content:""}.bi-recycle::before{content:""}.bi-reddit::before{content:""}.bi-safe-fill::before{content:""}.bi-safe2-fill::before{content:""}.bi-safe2::before{content:""}.bi-sd-card-fill::before{content:""}.bi-sd-card::before{content:""}.bi-skype::before{content:""}.bi-slash-lg::before{content:""}.bi-translate::before{content:""}.bi-x-lg::before{content:""}.bi-safe::before{content:""}.bi-apple::before{content:""}.bi-microsoft::before{content:""}.bi-windows::before{content:""}.bi-behance::before{content:""}.bi-dribbble::before{content:""}.bi-line::before{content:""}.bi-medium::before{content:""}.bi-paypal::before{content:""}.bi-pinterest::before{content:""}.bi-signal::before{content:""}.bi-snapchat::before{content:""}.bi-spotify::before{content:""}.bi-stack-overflow::before{content:""}.bi-strava::before{content:""}.bi-wordpress::before{content:""}.bi-vimeo::before{content:""}.bi-activity::before{content:""}.bi-easel2-fill::before{content:""}.bi-easel2::before{content:""}.bi-easel3-fill::before{content:""}.bi-easel3::before{content:""}.bi-fan::before{content:""}.bi-fingerprint::before{content:""}.bi-graph-down-arrow::before{content:""}.bi-graph-up-arrow::before{content:""}.bi-hypnotize::before{content:""}.bi-magic::before{content:""}.bi-person-rolodex::before{content:""}.bi-person-video::before{content:""}.bi-person-video2::before{content:""}.bi-person-video3::before{content:""}.bi-person-workspace::before{content:""}.bi-radioactive::before{content:""}.bi-webcam-fill::before{content:""}.bi-webcam::before{content:""}.bi-yin-yang::before{content:""}.bi-bandaid-fill::before{content:""}.bi-bandaid::before{content:""}.bi-bluetooth::before{content:""}.bi-body-text::before{content:""}.bi-boombox::before{content:""}.bi-boxes::before{content:""}.bi-dpad-fill::before{content:""}.bi-dpad::before{content:""}.bi-ear-fill::before{content:""}.bi-ear::before{content:""}.bi-envelope-check-1::before{content:""}.bi-envelope-check-fill::before{content:""}.bi-envelope-check::before{content:""}.bi-envelope-dash-1::before{content:""}.bi-envelope-dash-fill::before{content:""}.bi-envelope-dash::before{content:""}.bi-envelope-exclamation-1::before{content:""}.bi-envelope-exclamation-fill::before{content:""}.bi-envelope-exclamation::before{content:""}.bi-envelope-plus-fill::before{content:""}.bi-envelope-plus::before{content:""}.bi-envelope-slash-1::before{content:""}.bi-envelope-slash-fill::before{content:""}.bi-envelope-slash::before{content:""}.bi-envelope-x-1::before{content:""}.bi-envelope-x-fill::before{content:""}.bi-envelope-x::before{content:""}.bi-explicit-fill::before{content:""}.bi-explicit::before{content:""}.bi-git::before{content:""}.bi-infinity::before{content:""}.bi-list-columns-reverse::before{content:""}.bi-list-columns::before{content:""}.bi-meta::before{content:""}.bi-mortorboard-fill::before{content:""}.bi-mortorboard::before{content:""}.bi-nintendo-switch::before{content:""}.bi-pc-display-horizontal::before{content:""}.bi-pc-display::before{content:""}.bi-pc-horizontal::before{content:""}.bi-pc::before{content:""}.bi-playstation::before{content:""}.bi-plus-slash-minus::before{content:""}.bi-projector-fill::before{content:""}.bi-projector::before{content:""}.bi-qr-code-scan::before{content:""}.bi-qr-code::before{content:""}.bi-quora::before{content:""}.bi-quote::before{content:""}.bi-robot::before{content:""}.bi-send-check-fill::before{content:""}.bi-send-check::before{content:""}.bi-send-dash-fill::before{content:""}.bi-send-dash::before{content:""}.bi-send-exclamation-1::before{content:""}.bi-send-exclamation-fill::before{content:""}.bi-send-exclamation::before{content:""}.bi-send-fill::before{content:""}.bi-send-plus-fill::before{content:""}.bi-send-plus::before{content:""}.bi-send-slash-fill::before{content:""}.bi-send-slash::before{content:""}.bi-send-x-fill::before{content:""}.bi-send-x::before{content:""}.bi-send::before{content:""}.bi-steam::before{content:""}.bi-terminal-dash-1::before{content:""}.bi-terminal-dash::before{content:""}.bi-terminal-plus::before{content:""}.bi-terminal-split::before{content:""}.bi-ticket-detailed-fill::before{content:""}.bi-ticket-detailed::before{content:""}.bi-ticket-fill::before{content:""}.bi-ticket-perforated-fill::before{content:""}.bi-ticket-perforated::before{content:""}.bi-ticket::before{content:""}.bi-tiktok::before{content:""}.bi-window-dash::before{content:""}.bi-window-desktop::before{content:""}.bi-window-fullscreen::before{content:""}.bi-window-plus::before{content:""}.bi-window-split::before{content:""}.bi-window-stack::before{content:""}.bi-window-x::before{content:""}.bi-xbox::before{content:""}.bi-ethernet::before{content:""}.bi-hdmi-fill::before{content:""}.bi-hdmi::before{content:""}.bi-usb-c-fill::before{content:""}.bi-usb-c::before{content:""}.bi-usb-fill::before{content:""}.bi-usb-plug-fill::before{content:""}.bi-usb-plug::before{content:""}.bi-usb-symbol::before{content:""}.bi-usb::before{content:""}.bi-boombox-fill::before{content:""}.bi-displayport-1::before{content:""}.bi-displayport::before{content:""}.bi-gpu-card::before{content:""}.bi-memory::before{content:""}.bi-modem-fill::before{content:""}.bi-modem::before{content:""}.bi-motherboard-fill::before{content:""}.bi-motherboard::before{content:""}.bi-optical-audio-fill::before{content:""}.bi-optical-audio::before{content:""}.bi-pci-card::before{content:""}.bi-router-fill::before{content:""}.bi-router::before{content:""}.bi-ssd-fill::before{content:""}.bi-ssd::before{content:""}.bi-thunderbolt-fill::before{content:""}.bi-thunderbolt::before{content:""}.bi-usb-drive-fill::before{content:""}.bi-usb-drive::before{content:""}.bi-usb-micro-fill::before{content:""}.bi-usb-micro::before{content:""}.bi-usb-mini-fill::before{content:""}.bi-usb-mini::before{content:""}.bi-cloud-haze2::before{content:""}.bi-device-hdd-fill::before{content:""}.bi-device-hdd::before{content:""}.bi-device-ssd-fill::before{content:""}.bi-device-ssd::before{content:""}.bi-displayport-fill::before{content:""}.bi-mortarboard-fill::before{content:""}.bi-mortarboard::before{content:""}.bi-terminal-x::before{content:""} +.datepicker{padding:4px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;direction:ltr}.datepicker-inline{width:220px}.datepicker-rtl{direction:rtl}.datepicker-rtl.dropdown-menu{left:auto}.datepicker-rtl table tr td span{float:right}.datepicker-dropdown{top:0;left:0}.datepicker-dropdown:before{content:'';display:inline-block;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #999;border-top:0;border-bottom-color:rgba(0,0,0,.2);position:absolute}.datepicker-dropdown:after{content:'';display:inline-block;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #fff;border-top:0;position:absolute}.datepicker-dropdown.datepicker-orient-left:before{left:6px}.datepicker-dropdown.datepicker-orient-left:after{left:7px}.datepicker-dropdown.datepicker-orient-right:before{right:6px}.datepicker-dropdown.datepicker-orient-right:after{right:7px}.datepicker-dropdown.datepicker-orient-bottom:before{top:-7px}.datepicker-dropdown.datepicker-orient-bottom:after{top:-6px}.datepicker-dropdown.datepicker-orient-top:before{bottom:-7px;border-bottom:0;border-top:7px solid #999}.datepicker-dropdown.datepicker-orient-top:after{bottom:-6px;border-bottom:0;border-top:6px solid #fff}.datepicker table{margin:0;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.datepicker td,.datepicker th{text-align:center;width:20px;height:20px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;border:none}.table-striped .datepicker table tr td,.table-striped .datepicker table tr th{background-color:transparent}.datepicker table tr td.day.focused,.datepicker table tr td.day:hover{background:#eee;cursor:pointer}.datepicker table tr td.new,.datepicker table tr td.old{color:#999}.datepicker table tr td.disabled,.datepicker table tr td.disabled:hover{background:0 0;color:#999;cursor:default}.datepicker table tr td.highlighted{background:#d9edf7;border-radius:0}.datepicker table tr td.today,.datepicker table tr td.today.disabled,.datepicker table tr td.today.disabled:hover,.datepicker table tr td.today:hover{background-color:#fde19a;background-image:-moz-linear-gradient(to bottom,#fdd49a,#fdf59a);background-image:-ms-linear-gradient(to bottom,#fdd49a,#fdf59a);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fdd49a),to(#fdf59a));background-image:-webkit-linear-gradient(to bottom,#fdd49a,#fdf59a);background-image:-o-linear-gradient(to bottom,#fdd49a,#fdf59a);background-image:linear-gradient(to bottom,#fdd49a,#fdf59a);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fdd49a', endColorstr='#fdf59a', GradientType=0);border-color:#fdf59a #fdf59a #fbed50;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);color:#000}.datepicker table tr td.today.active,.datepicker table tr td.today.disabled,.datepicker table tr td.today.disabled.active,.datepicker table tr td.today.disabled.disabled,.datepicker table tr td.today.disabled:active,.datepicker table tr td.today.disabled:hover,.datepicker table tr td.today.disabled:hover.active,.datepicker table tr td.today.disabled:hover.disabled,.datepicker table tr td.today.disabled:hover:active,.datepicker table tr td.today.disabled:hover:hover,.datepicker table tr td.today.disabled:hover[disabled],.datepicker table tr td.today.disabled[disabled],.datepicker table tr td.today:active,.datepicker table tr td.today:hover,.datepicker table tr td.today:hover.active,.datepicker table tr td.today:hover.disabled,.datepicker table tr td.today:hover:active,.datepicker table tr td.today:hover:hover,.datepicker table tr td.today:hover[disabled],.datepicker table tr td.today[disabled]{background-color:#fdf59a}.datepicker table tr td.today.active,.datepicker table tr td.today.disabled.active,.datepicker table tr td.today.disabled:active,.datepicker table tr td.today.disabled:hover.active,.datepicker table tr td.today.disabled:hover:active,.datepicker table tr td.today:active,.datepicker table tr td.today:hover.active,.datepicker table tr td.today:hover:active{background-color:#fbf069\9}.datepicker table tr td.today:hover:hover{color:#000}.datepicker table tr td.today.active:hover{color:#fff}.datepicker table tr td.range,.datepicker table tr td.range.disabled,.datepicker table tr td.range.disabled:hover,.datepicker table tr td.range:hover{background:#eee;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.datepicker table tr td.range.today,.datepicker table tr td.range.today.disabled,.datepicker table tr td.range.today.disabled:hover,.datepicker table tr td.range.today:hover{background-color:#f3d17a;background-image:-moz-linear-gradient(to bottom,#f3c17a,#f3e97a);background-image:-ms-linear-gradient(to bottom,#f3c17a,#f3e97a);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f3c17a),to(#f3e97a));background-image:-webkit-linear-gradient(to bottom,#f3c17a,#f3e97a);background-image:-o-linear-gradient(to bottom,#f3c17a,#f3e97a);background-image:linear-gradient(to bottom,#f3c17a,#f3e97a);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f3c17a', endColorstr='#f3e97a', GradientType=0);border-color:#f3e97a #f3e97a #edde34;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.datepicker table tr td.range.today.active,.datepicker table tr td.range.today.disabled,.datepicker table tr td.range.today.disabled.active,.datepicker table tr td.range.today.disabled.disabled,.datepicker table tr td.range.today.disabled:active,.datepicker table tr td.range.today.disabled:hover,.datepicker table tr td.range.today.disabled:hover.active,.datepicker table tr td.range.today.disabled:hover.disabled,.datepicker table tr td.range.today.disabled:hover:active,.datepicker table tr td.range.today.disabled:hover:hover,.datepicker table tr td.range.today.disabled:hover[disabled],.datepicker table tr td.range.today.disabled[disabled],.datepicker table tr td.range.today:active,.datepicker table tr td.range.today:hover,.datepicker table tr td.range.today:hover.active,.datepicker table tr td.range.today:hover.disabled,.datepicker table tr td.range.today:hover:active,.datepicker table tr td.range.today:hover:hover,.datepicker table tr td.range.today:hover[disabled],.datepicker table tr td.range.today[disabled]{background-color:#f3e97a}.datepicker table tr td.range.today.active,.datepicker table tr td.range.today.disabled.active,.datepicker table tr td.range.today.disabled:active,.datepicker table tr td.range.today.disabled:hover.active,.datepicker table tr td.range.today.disabled:hover:active,.datepicker table tr td.range.today:active,.datepicker table tr td.range.today:hover.active,.datepicker table tr td.range.today:hover:active{background-color:#efe24b\9}.datepicker table tr td.selected,.datepicker table tr td.selected.disabled,.datepicker table tr td.selected.disabled:hover,.datepicker table tr td.selected:hover{background-color:#9e9e9e;background-image:-moz-linear-gradient(to bottom,#b3b3b3,grey);background-image:-ms-linear-gradient(to bottom,#b3b3b3,grey);background-image:-webkit-gradient(linear,0 0,0 100%,from(#b3b3b3),to(grey));background-image:-webkit-linear-gradient(to bottom,#b3b3b3,grey);background-image:-o-linear-gradient(to bottom,#b3b3b3,grey);background-image:linear-gradient(to bottom,#b3b3b3,grey);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#b3b3b3', endColorstr='#808080', GradientType=0);border-color:grey grey #595959;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.datepicker table tr td.selected.active,.datepicker table tr td.selected.disabled,.datepicker table tr td.selected.disabled.active,.datepicker table tr td.selected.disabled.disabled,.datepicker table tr td.selected.disabled:active,.datepicker table tr td.selected.disabled:hover,.datepicker table tr td.selected.disabled:hover.active,.datepicker table tr td.selected.disabled:hover.disabled,.datepicker table tr td.selected.disabled:hover:active,.datepicker table tr td.selected.disabled:hover:hover,.datepicker table tr td.selected.disabled:hover[disabled],.datepicker table tr td.selected.disabled[disabled],.datepicker table tr td.selected:active,.datepicker table tr td.selected:hover,.datepicker table tr td.selected:hover.active,.datepicker table tr td.selected:hover.disabled,.datepicker table tr td.selected:hover:active,.datepicker table tr td.selected:hover:hover,.datepicker table tr td.selected:hover[disabled],.datepicker table tr td.selected[disabled]{background-color:grey}.datepicker table tr td.selected.active,.datepicker table tr td.selected.disabled.active,.datepicker table tr td.selected.disabled:active,.datepicker table tr td.selected.disabled:hover.active,.datepicker table tr td.selected.disabled:hover:active,.datepicker table tr td.selected:active,.datepicker table tr td.selected:hover.active,.datepicker table tr td.selected:hover:active{background-color:#666\9}.datepicker table tr td.active,.datepicker table tr td.active.disabled,.datepicker table tr td.active.disabled:hover,.datepicker table tr td.active:hover{background-color:#006dcc;background-image:-moz-linear-gradient(to bottom,#08c,#04c);background-image:-ms-linear-gradient(to bottom,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(to bottom,#08c,#04c);background-image:-o-linear-gradient(to bottom,#08c,#04c);background-image:linear-gradient(to bottom,#08c,#04c);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#08c', endColorstr='#0044cc', GradientType=0);border-color:#04c #04c #002a80;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.datepicker table tr td.active.active,.datepicker table tr td.active.disabled,.datepicker table tr td.active.disabled.active,.datepicker table tr td.active.disabled.disabled,.datepicker table tr td.active.disabled:active,.datepicker table tr td.active.disabled:hover,.datepicker table tr td.active.disabled:hover.active,.datepicker table tr td.active.disabled:hover.disabled,.datepicker table tr td.active.disabled:hover:active,.datepicker table tr td.active.disabled:hover:hover,.datepicker table tr td.active.disabled:hover[disabled],.datepicker table tr td.active.disabled[disabled],.datepicker table tr td.active:active,.datepicker table tr td.active:hover,.datepicker table tr td.active:hover.active,.datepicker table tr td.active:hover.disabled,.datepicker table tr td.active:hover:active,.datepicker table tr td.active:hover:hover,.datepicker table tr td.active:hover[disabled],.datepicker table tr td.active[disabled]{background-color:#04c}.datepicker table tr td.active.active,.datepicker table tr td.active.disabled.active,.datepicker table tr td.active.disabled:active,.datepicker table tr td.active.disabled:hover.active,.datepicker table tr td.active.disabled:hover:active,.datepicker table tr td.active:active,.datepicker table tr td.active:hover.active,.datepicker table tr td.active:hover:active{background-color:#039\9}.datepicker table tr td span{display:block;width:23%;height:54px;line-height:54px;float:left;margin:1%;cursor:pointer;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.datepicker table tr td span.focused,.datepicker table tr td span:hover{background:#eee}.datepicker table tr td span.disabled,.datepicker table tr td span.disabled:hover{background:0 0;color:#999;cursor:default}.datepicker table tr td span.active,.datepicker table tr td span.active.disabled,.datepicker table tr td span.active.disabled:hover,.datepicker table tr td span.active:hover{background-color:#006dcc;background-image:-moz-linear-gradient(to bottom,#08c,#04c);background-image:-ms-linear-gradient(to bottom,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(to bottom,#08c,#04c);background-image:-o-linear-gradient(to bottom,#08c,#04c);background-image:linear-gradient(to bottom,#08c,#04c);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#08c', endColorstr='#0044cc', GradientType=0);border-color:#04c #04c #002a80;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.datepicker table tr td span.active.active,.datepicker table tr td span.active.disabled,.datepicker table tr td span.active.disabled.active,.datepicker table tr td span.active.disabled.disabled,.datepicker table tr td span.active.disabled:active,.datepicker table tr td span.active.disabled:hover,.datepicker table tr td span.active.disabled:hover.active,.datepicker table tr td span.active.disabled:hover.disabled,.datepicker table tr td span.active.disabled:hover:active,.datepicker table tr td span.active.disabled:hover:hover,.datepicker table tr td span.active.disabled:hover[disabled],.datepicker table tr td span.active.disabled[disabled],.datepicker table tr td span.active:active,.datepicker table tr td span.active:hover,.datepicker table tr td span.active:hover.active,.datepicker table tr td span.active:hover.disabled,.datepicker table tr td span.active:hover:active,.datepicker table tr td span.active:hover:hover,.datepicker table tr td span.active:hover[disabled],.datepicker table tr td span.active[disabled]{background-color:#04c}.datepicker table tr td span.active.active,.datepicker table tr td span.active.disabled.active,.datepicker table tr td span.active.disabled:active,.datepicker table tr td span.active.disabled:hover.active,.datepicker table tr td span.active.disabled:hover:active,.datepicker table tr td span.active:active,.datepicker table tr td span.active:hover.active,.datepicker table tr td span.active:hover:active{background-color:#039\9}.datepicker table tr td span.new,.datepicker table tr td span.old{color:#999}.datepicker .datepicker-switch{width:145px}.datepicker .datepicker-switch,.datepicker .next,.datepicker .prev,.datepicker tfoot tr th{cursor:pointer}.datepicker .datepicker-switch:hover,.datepicker .next:hover,.datepicker .prev:hover,.datepicker tfoot tr th:hover{background:#eee}.datepicker .next.disabled,.datepicker .prev.disabled{visibility:hidden}.datepicker .cw{font-size:10px;width:12px;padding:0 2px 0 5px;vertical-align:middle}.input-append.date .add-on,.input-prepend.date .add-on{cursor:pointer}.input-append.date .add-on i,.input-prepend.date .add-on i{margin-top:3px}.input-daterange input{text-align:center}.input-daterange input:first-child{-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.input-daterange input:last-child{-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.input-daterange .add-on{display:inline-block;width:auto;min-width:16px;height:18px;padding:4px 5px;font-weight:400;line-height:18px;text-align:center;text-shadow:0 1px 0 #fff;vertical-align:middle;background-color:#eee;border:1px solid #ccc;margin-left:-5px;margin-right:-5px} +@font-face{font-family:"bootstrap-icons";src:url("_content/Volo.Abp.AspNetCore.Components.Web.LeptonXLiteTheme/side-menu/libs/bootstrap-icons/font/fonts/bootstrap-icons.woff2?30af91bf14e37666a085fb8a161ff36d") format("woff2"),url("_content/Volo.Abp.AspNetCore.Components.Web.LeptonXLiteTheme/side-menu/libs/bootstrap-icons/font/fonts/bootstrap-icons.woff?30af91bf14e37666a085fb8a161ff36d") format("woff")}.bi::before,[class^="bi-"]::before,[class*=" bi-"]::before{display:inline-block;font-family:bootstrap-icons!important;font-style:normal;font-weight:normal!important;font-variant:normal;text-transform:none;line-height:1;vertical-align:-.125em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.bi-123::before{content:""}.bi-alarm-fill::before{content:""}.bi-alarm::before{content:""}.bi-align-bottom::before{content:""}.bi-align-center::before{content:""}.bi-align-end::before{content:""}.bi-align-middle::before{content:""}.bi-align-start::before{content:""}.bi-align-top::before{content:""}.bi-alt::before{content:""}.bi-app-indicator::before{content:""}.bi-app::before{content:""}.bi-archive-fill::before{content:""}.bi-archive::before{content:""}.bi-arrow-90deg-down::before{content:""}.bi-arrow-90deg-left::before{content:""}.bi-arrow-90deg-right::before{content:""}.bi-arrow-90deg-up::before{content:""}.bi-arrow-bar-down::before{content:""}.bi-arrow-bar-left::before{content:""}.bi-arrow-bar-right::before{content:""}.bi-arrow-bar-up::before{content:""}.bi-arrow-clockwise::before{content:""}.bi-arrow-counterclockwise::before{content:""}.bi-arrow-down-circle-fill::before{content:""}.bi-arrow-down-circle::before{content:""}.bi-arrow-down-left-circle-fill::before{content:""}.bi-arrow-down-left-circle::before{content:""}.bi-arrow-down-left-square-fill::before{content:""}.bi-arrow-down-left-square::before{content:""}.bi-arrow-down-left::before{content:""}.bi-arrow-down-right-circle-fill::before{content:""}.bi-arrow-down-right-circle::before{content:""}.bi-arrow-down-right-square-fill::before{content:""}.bi-arrow-down-right-square::before{content:""}.bi-arrow-down-right::before{content:""}.bi-arrow-down-short::before{content:""}.bi-arrow-down-square-fill::before{content:""}.bi-arrow-down-square::before{content:""}.bi-arrow-down-up::before{content:""}.bi-arrow-down::before{content:""}.bi-arrow-left-circle-fill::before{content:""}.bi-arrow-left-circle::before{content:""}.bi-arrow-left-right::before{content:""}.bi-arrow-left-short::before{content:""}.bi-arrow-left-square-fill::before{content:""}.bi-arrow-left-square::before{content:""}.bi-arrow-left::before{content:""}.bi-arrow-repeat::before{content:""}.bi-arrow-return-left::before{content:""}.bi-arrow-return-right::before{content:""}.bi-arrow-right-circle-fill::before{content:""}.bi-arrow-right-circle::before{content:""}.bi-arrow-right-short::before{content:""}.bi-arrow-right-square-fill::before{content:""}.bi-arrow-right-square::before{content:""}.bi-arrow-right::before{content:""}.bi-arrow-up-circle-fill::before{content:""}.bi-arrow-up-circle::before{content:""}.bi-arrow-up-left-circle-fill::before{content:""}.bi-arrow-up-left-circle::before{content:""}.bi-arrow-up-left-square-fill::before{content:""}.bi-arrow-up-left-square::before{content:""}.bi-arrow-up-left::before{content:""}.bi-arrow-up-right-circle-fill::before{content:""}.bi-arrow-up-right-circle::before{content:""}.bi-arrow-up-right-square-fill::before{content:""}.bi-arrow-up-right-square::before{content:""}.bi-arrow-up-right::before{content:""}.bi-arrow-up-short::before{content:""}.bi-arrow-up-square-fill::before{content:""}.bi-arrow-up-square::before{content:""}.bi-arrow-up::before{content:""}.bi-arrows-angle-contract::before{content:""}.bi-arrows-angle-expand::before{content:""}.bi-arrows-collapse::before{content:""}.bi-arrows-expand::before{content:""}.bi-arrows-fullscreen::before{content:""}.bi-arrows-move::before{content:""}.bi-aspect-ratio-fill::before{content:""}.bi-aspect-ratio::before{content:""}.bi-asterisk::before{content:""}.bi-at::before{content:""}.bi-award-fill::before{content:""}.bi-award::before{content:""}.bi-back::before{content:""}.bi-backspace-fill::before{content:""}.bi-backspace-reverse-fill::before{content:""}.bi-backspace-reverse::before{content:""}.bi-backspace::before{content:""}.bi-badge-3d-fill::before{content:""}.bi-badge-3d::before{content:""}.bi-badge-4k-fill::before{content:""}.bi-badge-4k::before{content:""}.bi-badge-8k-fill::before{content:""}.bi-badge-8k::before{content:""}.bi-badge-ad-fill::before{content:""}.bi-badge-ad::before{content:""}.bi-badge-ar-fill::before{content:""}.bi-badge-ar::before{content:""}.bi-badge-cc-fill::before{content:""}.bi-badge-cc::before{content:""}.bi-badge-hd-fill::before{content:""}.bi-badge-hd::before{content:""}.bi-badge-tm-fill::before{content:""}.bi-badge-tm::before{content:""}.bi-badge-vo-fill::before{content:""}.bi-badge-vo::before{content:""}.bi-badge-vr-fill::before{content:""}.bi-badge-vr::before{content:""}.bi-badge-wc-fill::before{content:""}.bi-badge-wc::before{content:""}.bi-bag-check-fill::before{content:""}.bi-bag-check::before{content:""}.bi-bag-dash-fill::before{content:""}.bi-bag-dash::before{content:""}.bi-bag-fill::before{content:""}.bi-bag-plus-fill::before{content:""}.bi-bag-plus::before{content:""}.bi-bag-x-fill::before{content:""}.bi-bag-x::before{content:""}.bi-bag::before{content:""}.bi-bar-chart-fill::before{content:""}.bi-bar-chart-line-fill::before{content:""}.bi-bar-chart-line::before{content:""}.bi-bar-chart-steps::before{content:""}.bi-bar-chart::before{content:""}.bi-basket-fill::before{content:""}.bi-basket::before{content:""}.bi-basket2-fill::before{content:""}.bi-basket2::before{content:""}.bi-basket3-fill::before{content:""}.bi-basket3::before{content:""}.bi-battery-charging::before{content:""}.bi-battery-full::before{content:""}.bi-battery-half::before{content:""}.bi-battery::before{content:""}.bi-bell-fill::before{content:""}.bi-bell::before{content:""}.bi-bezier::before{content:""}.bi-bezier2::before{content:""}.bi-bicycle::before{content:""}.bi-binoculars-fill::before{content:""}.bi-binoculars::before{content:""}.bi-blockquote-left::before{content:""}.bi-blockquote-right::before{content:""}.bi-book-fill::before{content:""}.bi-book-half::before{content:""}.bi-book::before{content:""}.bi-bookmark-check-fill::before{content:""}.bi-bookmark-check::before{content:""}.bi-bookmark-dash-fill::before{content:""}.bi-bookmark-dash::before{content:""}.bi-bookmark-fill::before{content:""}.bi-bookmark-heart-fill::before{content:""}.bi-bookmark-heart::before{content:""}.bi-bookmark-plus-fill::before{content:""}.bi-bookmark-plus::before{content:""}.bi-bookmark-star-fill::before{content:""}.bi-bookmark-star::before{content:""}.bi-bookmark-x-fill::before{content:""}.bi-bookmark-x::before{content:""}.bi-bookmark::before{content:""}.bi-bookmarks-fill::before{content:""}.bi-bookmarks::before{content:""}.bi-bookshelf::before{content:""}.bi-bootstrap-fill::before{content:""}.bi-bootstrap-reboot::before{content:""}.bi-bootstrap::before{content:""}.bi-border-all::before{content:""}.bi-border-bottom::before{content:""}.bi-border-center::before{content:""}.bi-border-inner::before{content:""}.bi-border-left::before{content:""}.bi-border-middle::before{content:""}.bi-border-outer::before{content:""}.bi-border-right::before{content:""}.bi-border-style::before{content:""}.bi-border-top::before{content:""}.bi-border-width::before{content:""}.bi-border::before{content:""}.bi-bounding-box-circles::before{content:""}.bi-bounding-box::before{content:""}.bi-box-arrow-down-left::before{content:""}.bi-box-arrow-down-right::before{content:""}.bi-box-arrow-down::before{content:""}.bi-box-arrow-in-down-left::before{content:""}.bi-box-arrow-in-down-right::before{content:""}.bi-box-arrow-in-down::before{content:""}.bi-box-arrow-in-left::before{content:""}.bi-box-arrow-in-right::before{content:""}.bi-box-arrow-in-up-left::before{content:""}.bi-box-arrow-in-up-right::before{content:""}.bi-box-arrow-in-up::before{content:""}.bi-box-arrow-left::before{content:""}.bi-box-arrow-right::before{content:""}.bi-box-arrow-up-left::before{content:""}.bi-box-arrow-up-right::before{content:""}.bi-box-arrow-up::before{content:""}.bi-box-seam::before{content:""}.bi-box::before{content:""}.bi-braces::before{content:""}.bi-bricks::before{content:""}.bi-briefcase-fill::before{content:""}.bi-briefcase::before{content:""}.bi-brightness-alt-high-fill::before{content:""}.bi-brightness-alt-high::before{content:""}.bi-brightness-alt-low-fill::before{content:""}.bi-brightness-alt-low::before{content:""}.bi-brightness-high-fill::before{content:""}.bi-brightness-high::before{content:""}.bi-brightness-low-fill::before{content:""}.bi-brightness-low::before{content:""}.bi-broadcast-pin::before{content:""}.bi-broadcast::before{content:""}.bi-brush-fill::before{content:""}.bi-brush::before{content:""}.bi-bucket-fill::before{content:""}.bi-bucket::before{content:""}.bi-bug-fill::before{content:""}.bi-bug::before{content:""}.bi-building::before{content:""}.bi-bullseye::before{content:""}.bi-calculator-fill::before{content:""}.bi-calculator::before{content:""}.bi-calendar-check-fill::before{content:""}.bi-calendar-check::before{content:""}.bi-calendar-date-fill::before{content:""}.bi-calendar-date::before{content:""}.bi-calendar-day-fill::before{content:""}.bi-calendar-day::before{content:""}.bi-calendar-event-fill::before{content:""}.bi-calendar-event::before{content:""}.bi-calendar-fill::before{content:""}.bi-calendar-minus-fill::before{content:""}.bi-calendar-minus::before{content:""}.bi-calendar-month-fill::before{content:""}.bi-calendar-month::before{content:""}.bi-calendar-plus-fill::before{content:""}.bi-calendar-plus::before{content:""}.bi-calendar-range-fill::before{content:""}.bi-calendar-range::before{content:""}.bi-calendar-week-fill::before{content:""}.bi-calendar-week::before{content:""}.bi-calendar-x-fill::before{content:""}.bi-calendar-x::before{content:""}.bi-calendar::before{content:""}.bi-calendar2-check-fill::before{content:""}.bi-calendar2-check::before{content:""}.bi-calendar2-date-fill::before{content:""}.bi-calendar2-date::before{content:""}.bi-calendar2-day-fill::before{content:""}.bi-calendar2-day::before{content:""}.bi-calendar2-event-fill::before{content:""}.bi-calendar2-event::before{content:""}.bi-calendar2-fill::before{content:""}.bi-calendar2-minus-fill::before{content:""}.bi-calendar2-minus::before{content:""}.bi-calendar2-month-fill::before{content:""}.bi-calendar2-month::before{content:""}.bi-calendar2-plus-fill::before{content:""}.bi-calendar2-plus::before{content:""}.bi-calendar2-range-fill::before{content:""}.bi-calendar2-range::before{content:""}.bi-calendar2-week-fill::before{content:""}.bi-calendar2-week::before{content:""}.bi-calendar2-x-fill::before{content:""}.bi-calendar2-x::before{content:""}.bi-calendar2::before{content:""}.bi-calendar3-event-fill::before{content:""}.bi-calendar3-event::before{content:""}.bi-calendar3-fill::before{content:""}.bi-calendar3-range-fill::before{content:""}.bi-calendar3-range::before{content:""}.bi-calendar3-week-fill::before{content:""}.bi-calendar3-week::before{content:""}.bi-calendar3::before{content:""}.bi-calendar4-event::before{content:""}.bi-calendar4-range::before{content:""}.bi-calendar4-week::before{content:""}.bi-calendar4::before{content:""}.bi-camera-fill::before{content:""}.bi-camera-reels-fill::before{content:""}.bi-camera-reels::before{content:""}.bi-camera-video-fill::before{content:""}.bi-camera-video-off-fill::before{content:""}.bi-camera-video-off::before{content:""}.bi-camera-video::before{content:""}.bi-camera::before{content:""}.bi-camera2::before{content:""}.bi-capslock-fill::before{content:""}.bi-capslock::before{content:""}.bi-card-checklist::before{content:""}.bi-card-heading::before{content:""}.bi-card-image::before{content:""}.bi-card-list::before{content:""}.bi-card-text::before{content:""}.bi-caret-down-fill::before{content:""}.bi-caret-down-square-fill::before{content:""}.bi-caret-down-square::before{content:""}.bi-caret-down::before{content:""}.bi-caret-left-fill::before{content:""}.bi-caret-left-square-fill::before{content:""}.bi-caret-left-square::before{content:""}.bi-caret-left::before{content:""}.bi-caret-right-fill::before{content:""}.bi-caret-right-square-fill::before{content:""}.bi-caret-right-square::before{content:""}.bi-caret-right::before{content:""}.bi-caret-up-fill::before{content:""}.bi-caret-up-square-fill::before{content:""}.bi-caret-up-square::before{content:""}.bi-caret-up::before{content:""}.bi-cart-check-fill::before{content:""}.bi-cart-check::before{content:""}.bi-cart-dash-fill::before{content:""}.bi-cart-dash::before{content:""}.bi-cart-fill::before{content:""}.bi-cart-plus-fill::before{content:""}.bi-cart-plus::before{content:""}.bi-cart-x-fill::before{content:""}.bi-cart-x::before{content:""}.bi-cart::before{content:""}.bi-cart2::before{content:""}.bi-cart3::before{content:""}.bi-cart4::before{content:""}.bi-cash-stack::before{content:""}.bi-cash::before{content:""}.bi-cast::before{content:""}.bi-chat-dots-fill::before{content:""}.bi-chat-dots::before{content:""}.bi-chat-fill::before{content:""}.bi-chat-left-dots-fill::before{content:""}.bi-chat-left-dots::before{content:""}.bi-chat-left-fill::before{content:""}.bi-chat-left-quote-fill::before{content:""}.bi-chat-left-quote::before{content:""}.bi-chat-left-text-fill::before{content:""}.bi-chat-left-text::before{content:""}.bi-chat-left::before{content:""}.bi-chat-quote-fill::before{content:""}.bi-chat-quote::before{content:""}.bi-chat-right-dots-fill::before{content:""}.bi-chat-right-dots::before{content:""}.bi-chat-right-fill::before{content:""}.bi-chat-right-quote-fill::before{content:""}.bi-chat-right-quote::before{content:""}.bi-chat-right-text-fill::before{content:""}.bi-chat-right-text::before{content:""}.bi-chat-right::before{content:""}.bi-chat-square-dots-fill::before{content:""}.bi-chat-square-dots::before{content:""}.bi-chat-square-fill::before{content:""}.bi-chat-square-quote-fill::before{content:""}.bi-chat-square-quote::before{content:""}.bi-chat-square-text-fill::before{content:""}.bi-chat-square-text::before{content:""}.bi-chat-square::before{content:""}.bi-chat-text-fill::before{content:""}.bi-chat-text::before{content:""}.bi-chat::before{content:""}.bi-check-all::before{content:""}.bi-check-circle-fill::before{content:""}.bi-check-circle::before{content:""}.bi-check-square-fill::before{content:""}.bi-check-square::before{content:""}.bi-check::before{content:""}.bi-check2-all::before{content:""}.bi-check2-circle::before{content:""}.bi-check2-square::before{content:""}.bi-check2::before{content:""}.bi-chevron-bar-contract::before{content:""}.bi-chevron-bar-down::before{content:""}.bi-chevron-bar-expand::before{content:""}.bi-chevron-bar-left::before{content:""}.bi-chevron-bar-right::before{content:""}.bi-chevron-bar-up::before{content:""}.bi-chevron-compact-down::before{content:""}.bi-chevron-compact-left::before{content:""}.bi-chevron-compact-right::before{content:""}.bi-chevron-compact-up::before{content:""}.bi-chevron-contract::before{content:""}.bi-chevron-double-down::before{content:""}.bi-chevron-double-left::before{content:""}.bi-chevron-double-right::before{content:""}.bi-chevron-double-up::before{content:""}.bi-chevron-down::before{content:""}.bi-chevron-expand::before{content:""}.bi-chevron-left::before{content:""}.bi-chevron-right::before{content:""}.bi-chevron-up::before{content:""}.bi-circle-fill::before{content:""}.bi-circle-half::before{content:""}.bi-circle-square::before{content:""}.bi-circle::before{content:""}.bi-clipboard-check::before{content:""}.bi-clipboard-data::before{content:""}.bi-clipboard-minus::before{content:""}.bi-clipboard-plus::before{content:""}.bi-clipboard-x::before{content:""}.bi-clipboard::before{content:""}.bi-clock-fill::before{content:""}.bi-clock-history::before{content:""}.bi-clock::before{content:""}.bi-cloud-arrow-down-fill::before{content:""}.bi-cloud-arrow-down::before{content:""}.bi-cloud-arrow-up-fill::before{content:""}.bi-cloud-arrow-up::before{content:""}.bi-cloud-check-fill::before{content:""}.bi-cloud-check::before{content:""}.bi-cloud-download-fill::before{content:""}.bi-cloud-download::before{content:""}.bi-cloud-drizzle-fill::before{content:""}.bi-cloud-drizzle::before{content:""}.bi-cloud-fill::before{content:""}.bi-cloud-fog-fill::before{content:""}.bi-cloud-fog::before{content:""}.bi-cloud-fog2-fill::before{content:""}.bi-cloud-fog2::before{content:""}.bi-cloud-hail-fill::before{content:""}.bi-cloud-hail::before{content:""}.bi-cloud-haze-1::before{content:""}.bi-cloud-haze-fill::before{content:""}.bi-cloud-haze::before{content:""}.bi-cloud-haze2-fill::before{content:""}.bi-cloud-lightning-fill::before{content:""}.bi-cloud-lightning-rain-fill::before{content:""}.bi-cloud-lightning-rain::before{content:""}.bi-cloud-lightning::before{content:""}.bi-cloud-minus-fill::before{content:""}.bi-cloud-minus::before{content:""}.bi-cloud-moon-fill::before{content:""}.bi-cloud-moon::before{content:""}.bi-cloud-plus-fill::before{content:""}.bi-cloud-plus::before{content:""}.bi-cloud-rain-fill::before{content:""}.bi-cloud-rain-heavy-fill::before{content:""}.bi-cloud-rain-heavy::before{content:""}.bi-cloud-rain::before{content:""}.bi-cloud-slash-fill::before{content:""}.bi-cloud-slash::before{content:""}.bi-cloud-sleet-fill::before{content:""}.bi-cloud-sleet::before{content:""}.bi-cloud-snow-fill::before{content:""}.bi-cloud-snow::before{content:""}.bi-cloud-sun-fill::before{content:""}.bi-cloud-sun::before{content:""}.bi-cloud-upload-fill::before{content:""}.bi-cloud-upload::before{content:""}.bi-cloud::before{content:""}.bi-clouds-fill::before{content:""}.bi-clouds::before{content:""}.bi-cloudy-fill::before{content:""}.bi-cloudy::before{content:""}.bi-code-slash::before{content:""}.bi-code-square::before{content:""}.bi-code::before{content:""}.bi-collection-fill::before{content:""}.bi-collection-play-fill::before{content:""}.bi-collection-play::before{content:""}.bi-collection::before{content:""}.bi-columns-gap::before{content:""}.bi-columns::before{content:""}.bi-command::before{content:""}.bi-compass-fill::before{content:""}.bi-compass::before{content:""}.bi-cone-striped::before{content:""}.bi-cone::before{content:""}.bi-controller::before{content:""}.bi-cpu-fill::before{content:""}.bi-cpu::before{content:""}.bi-credit-card-2-back-fill::before{content:""}.bi-credit-card-2-back::before{content:""}.bi-credit-card-2-front-fill::before{content:""}.bi-credit-card-2-front::before{content:""}.bi-credit-card-fill::before{content:""}.bi-credit-card::before{content:""}.bi-crop::before{content:""}.bi-cup-fill::before{content:""}.bi-cup-straw::before{content:""}.bi-cup::before{content:""}.bi-cursor-fill::before{content:""}.bi-cursor-text::before{content:""}.bi-cursor::before{content:""}.bi-dash-circle-dotted::before{content:""}.bi-dash-circle-fill::before{content:""}.bi-dash-circle::before{content:""}.bi-dash-square-dotted::before{content:""}.bi-dash-square-fill::before{content:""}.bi-dash-square::before{content:""}.bi-dash::before{content:""}.bi-diagram-2-fill::before{content:""}.bi-diagram-2::before{content:""}.bi-diagram-3-fill::before{content:""}.bi-diagram-3::before{content:""}.bi-diamond-fill::before{content:""}.bi-diamond-half::before{content:""}.bi-diamond::before{content:""}.bi-dice-1-fill::before{content:""}.bi-dice-1::before{content:""}.bi-dice-2-fill::before{content:""}.bi-dice-2::before{content:""}.bi-dice-3-fill::before{content:""}.bi-dice-3::before{content:""}.bi-dice-4-fill::before{content:""}.bi-dice-4::before{content:""}.bi-dice-5-fill::before{content:""}.bi-dice-5::before{content:""}.bi-dice-6-fill::before{content:""}.bi-dice-6::before{content:""}.bi-disc-fill::before{content:""}.bi-disc::before{content:""}.bi-discord::before{content:""}.bi-display-fill::before{content:""}.bi-display::before{content:""}.bi-distribute-horizontal::before{content:""}.bi-distribute-vertical::before{content:""}.bi-door-closed-fill::before{content:""}.bi-door-closed::before{content:""}.bi-door-open-fill::before{content:""}.bi-door-open::before{content:""}.bi-dot::before{content:""}.bi-download::before{content:""}.bi-droplet-fill::before{content:""}.bi-droplet-half::before{content:""}.bi-droplet::before{content:""}.bi-earbuds::before{content:""}.bi-easel-fill::before{content:""}.bi-easel::before{content:""}.bi-egg-fill::before{content:""}.bi-egg-fried::before{content:""}.bi-egg::before{content:""}.bi-eject-fill::before{content:""}.bi-eject::before{content:""}.bi-emoji-angry-fill::before{content:""}.bi-emoji-angry::before{content:""}.bi-emoji-dizzy-fill::before{content:""}.bi-emoji-dizzy::before{content:""}.bi-emoji-expressionless-fill::before{content:""}.bi-emoji-expressionless::before{content:""}.bi-emoji-frown-fill::before{content:""}.bi-emoji-frown::before{content:""}.bi-emoji-heart-eyes-fill::before{content:""}.bi-emoji-heart-eyes::before{content:""}.bi-emoji-laughing-fill::before{content:""}.bi-emoji-laughing::before{content:""}.bi-emoji-neutral-fill::before{content:""}.bi-emoji-neutral::before{content:""}.bi-emoji-smile-fill::before{content:""}.bi-emoji-smile-upside-down-fill::before{content:""}.bi-emoji-smile-upside-down::before{content:""}.bi-emoji-smile::before{content:""}.bi-emoji-sunglasses-fill::before{content:""}.bi-emoji-sunglasses::before{content:""}.bi-emoji-wink-fill::before{content:""}.bi-emoji-wink::before{content:""}.bi-envelope-fill::before{content:""}.bi-envelope-open-fill::before{content:""}.bi-envelope-open::before{content:""}.bi-envelope::before{content:""}.bi-eraser-fill::before{content:""}.bi-eraser::before{content:""}.bi-exclamation-circle-fill::before{content:""}.bi-exclamation-circle::before{content:""}.bi-exclamation-diamond-fill::before{content:""}.bi-exclamation-diamond::before{content:""}.bi-exclamation-octagon-fill::before{content:""}.bi-exclamation-octagon::before{content:""}.bi-exclamation-square-fill::before{content:""}.bi-exclamation-square::before{content:""}.bi-exclamation-triangle-fill::before{content:""}.bi-exclamation-triangle::before{content:""}.bi-exclamation::before{content:""}.bi-exclude::before{content:""}.bi-eye-fill::before{content:""}.bi-eye-slash-fill::before{content:""}.bi-eye-slash::before{content:""}.bi-eye::before{content:""}.bi-eyedropper::before{content:""}.bi-eyeglasses::before{content:""}.bi-facebook::before{content:""}.bi-file-arrow-down-fill::before{content:""}.bi-file-arrow-down::before{content:""}.bi-file-arrow-up-fill::before{content:""}.bi-file-arrow-up::before{content:""}.bi-file-bar-graph-fill::before{content:""}.bi-file-bar-graph::before{content:""}.bi-file-binary-fill::before{content:""}.bi-file-binary::before{content:""}.bi-file-break-fill::before{content:""}.bi-file-break::before{content:""}.bi-file-check-fill::before{content:""}.bi-file-check::before{content:""}.bi-file-code-fill::before{content:""}.bi-file-code::before{content:""}.bi-file-diff-fill::before{content:""}.bi-file-diff::before{content:""}.bi-file-earmark-arrow-down-fill::before{content:""}.bi-file-earmark-arrow-down::before{content:""}.bi-file-earmark-arrow-up-fill::before{content:""}.bi-file-earmark-arrow-up::before{content:""}.bi-file-earmark-bar-graph-fill::before{content:""}.bi-file-earmark-bar-graph::before{content:""}.bi-file-earmark-binary-fill::before{content:""}.bi-file-earmark-binary::before{content:""}.bi-file-earmark-break-fill::before{content:""}.bi-file-earmark-break::before{content:""}.bi-file-earmark-check-fill::before{content:""}.bi-file-earmark-check::before{content:""}.bi-file-earmark-code-fill::before{content:""}.bi-file-earmark-code::before{content:""}.bi-file-earmark-diff-fill::before{content:""}.bi-file-earmark-diff::before{content:""}.bi-file-earmark-easel-fill::before{content:""}.bi-file-earmark-easel::before{content:""}.bi-file-earmark-excel-fill::before{content:""}.bi-file-earmark-excel::before{content:""}.bi-file-earmark-fill::before{content:""}.bi-file-earmark-font-fill::before{content:""}.bi-file-earmark-font::before{content:""}.bi-file-earmark-image-fill::before{content:""}.bi-file-earmark-image::before{content:""}.bi-file-earmark-lock-fill::before{content:""}.bi-file-earmark-lock::before{content:""}.bi-file-earmark-lock2-fill::before{content:""}.bi-file-earmark-lock2::before{content:""}.bi-file-earmark-medical-fill::before{content:""}.bi-file-earmark-medical::before{content:""}.bi-file-earmark-minus-fill::before{content:""}.bi-file-earmark-minus::before{content:""}.bi-file-earmark-music-fill::before{content:""}.bi-file-earmark-music::before{content:""}.bi-file-earmark-person-fill::before{content:""}.bi-file-earmark-person::before{content:""}.bi-file-earmark-play-fill::before{content:""}.bi-file-earmark-play::before{content:""}.bi-file-earmark-plus-fill::before{content:""}.bi-file-earmark-plus::before{content:""}.bi-file-earmark-post-fill::before{content:""}.bi-file-earmark-post::before{content:""}.bi-file-earmark-ppt-fill::before{content:""}.bi-file-earmark-ppt::before{content:""}.bi-file-earmark-richtext-fill::before{content:""}.bi-file-earmark-richtext::before{content:""}.bi-file-earmark-ruled-fill::before{content:""}.bi-file-earmark-ruled::before{content:""}.bi-file-earmark-slides-fill::before{content:""}.bi-file-earmark-slides::before{content:""}.bi-file-earmark-spreadsheet-fill::before{content:""}.bi-file-earmark-spreadsheet::before{content:""}.bi-file-earmark-text-fill::before{content:""}.bi-file-earmark-text::before{content:""}.bi-file-earmark-word-fill::before{content:""}.bi-file-earmark-word::before{content:""}.bi-file-earmark-x-fill::before{content:""}.bi-file-earmark-x::before{content:""}.bi-file-earmark-zip-fill::before{content:""}.bi-file-earmark-zip::before{content:""}.bi-file-earmark::before{content:""}.bi-file-easel-fill::before{content:""}.bi-file-easel::before{content:""}.bi-file-excel-fill::before{content:""}.bi-file-excel::before{content:""}.bi-file-fill::before{content:""}.bi-file-font-fill::before{content:""}.bi-file-font::before{content:""}.bi-file-image-fill::before{content:""}.bi-file-image::before{content:""}.bi-file-lock-fill::before{content:""}.bi-file-lock::before{content:""}.bi-file-lock2-fill::before{content:""}.bi-file-lock2::before{content:""}.bi-file-medical-fill::before{content:""}.bi-file-medical::before{content:""}.bi-file-minus-fill::before{content:""}.bi-file-minus::before{content:""}.bi-file-music-fill::before{content:""}.bi-file-music::before{content:""}.bi-file-person-fill::before{content:""}.bi-file-person::before{content:""}.bi-file-play-fill::before{content:""}.bi-file-play::before{content:""}.bi-file-plus-fill::before{content:""}.bi-file-plus::before{content:""}.bi-file-post-fill::before{content:""}.bi-file-post::before{content:""}.bi-file-ppt-fill::before{content:""}.bi-file-ppt::before{content:""}.bi-file-richtext-fill::before{content:""}.bi-file-richtext::before{content:""}.bi-file-ruled-fill::before{content:""}.bi-file-ruled::before{content:""}.bi-file-slides-fill::before{content:""}.bi-file-slides::before{content:""}.bi-file-spreadsheet-fill::before{content:""}.bi-file-spreadsheet::before{content:""}.bi-file-text-fill::before{content:""}.bi-file-text::before{content:""}.bi-file-word-fill::before{content:""}.bi-file-word::before{content:""}.bi-file-x-fill::before{content:""}.bi-file-x::before{content:""}.bi-file-zip-fill::before{content:""}.bi-file-zip::before{content:""}.bi-file::before{content:""}.bi-files-alt::before{content:""}.bi-files::before{content:""}.bi-film::before{content:""}.bi-filter-circle-fill::before{content:""}.bi-filter-circle::before{content:""}.bi-filter-left::before{content:""}.bi-filter-right::before{content:""}.bi-filter-square-fill::before{content:""}.bi-filter-square::before{content:""}.bi-filter::before{content:""}.bi-flag-fill::before{content:""}.bi-flag::before{content:""}.bi-flower1::before{content:""}.bi-flower2::before{content:""}.bi-flower3::before{content:""}.bi-folder-check::before{content:""}.bi-folder-fill::before{content:""}.bi-folder-minus::before{content:""}.bi-folder-plus::before{content:""}.bi-folder-symlink-fill::before{content:""}.bi-folder-symlink::before{content:""}.bi-folder-x::before{content:""}.bi-folder::before{content:""}.bi-folder2-open::before{content:""}.bi-folder2::before{content:""}.bi-fonts::before{content:""}.bi-forward-fill::before{content:""}.bi-forward::before{content:""}.bi-front::before{content:""}.bi-fullscreen-exit::before{content:""}.bi-fullscreen::before{content:""}.bi-funnel-fill::before{content:""}.bi-funnel::before{content:""}.bi-gear-fill::before{content:""}.bi-gear-wide-connected::before{content:""}.bi-gear-wide::before{content:""}.bi-gear::before{content:""}.bi-gem::before{content:""}.bi-geo-alt-fill::before{content:""}.bi-geo-alt::before{content:""}.bi-geo-fill::before{content:""}.bi-geo::before{content:""}.bi-gift-fill::before{content:""}.bi-gift::before{content:""}.bi-github::before{content:""}.bi-globe::before{content:""}.bi-globe2::before{content:""}.bi-google::before{content:""}.bi-graph-down::before{content:""}.bi-graph-up::before{content:""}.bi-grid-1x2-fill::before{content:""}.bi-grid-1x2::before{content:""}.bi-grid-3x2-gap-fill::before{content:""}.bi-grid-3x2-gap::before{content:""}.bi-grid-3x2::before{content:""}.bi-grid-3x3-gap-fill::before{content:""}.bi-grid-3x3-gap::before{content:""}.bi-grid-3x3::before{content:""}.bi-grid-fill::before{content:""}.bi-grid::before{content:""}.bi-grip-horizontal::before{content:""}.bi-grip-vertical::before{content:""}.bi-hammer::before{content:""}.bi-hand-index-fill::before{content:""}.bi-hand-index-thumb-fill::before{content:""}.bi-hand-index-thumb::before{content:""}.bi-hand-index::before{content:""}.bi-hand-thumbs-down-fill::before{content:""}.bi-hand-thumbs-down::before{content:""}.bi-hand-thumbs-up-fill::before{content:""}.bi-hand-thumbs-up::before{content:""}.bi-handbag-fill::before{content:""}.bi-handbag::before{content:""}.bi-hash::before{content:""}.bi-hdd-fill::before{content:""}.bi-hdd-network-fill::before{content:""}.bi-hdd-network::before{content:""}.bi-hdd-rack-fill::before{content:""}.bi-hdd-rack::before{content:""}.bi-hdd-stack-fill::before{content:""}.bi-hdd-stack::before{content:""}.bi-hdd::before{content:""}.bi-headphones::before{content:""}.bi-headset::before{content:""}.bi-heart-fill::before{content:""}.bi-heart-half::before{content:""}.bi-heart::before{content:""}.bi-heptagon-fill::before{content:""}.bi-heptagon-half::before{content:""}.bi-heptagon::before{content:""}.bi-hexagon-fill::before{content:""}.bi-hexagon-half::before{content:""}.bi-hexagon::before{content:""}.bi-hourglass-bottom::before{content:""}.bi-hourglass-split::before{content:""}.bi-hourglass-top::before{content:""}.bi-hourglass::before{content:""}.bi-house-door-fill::before{content:""}.bi-house-door::before{content:""}.bi-house-fill::before{content:""}.bi-house::before{content:""}.bi-hr::before{content:""}.bi-hurricane::before{content:""}.bi-image-alt::before{content:""}.bi-image-fill::before{content:""}.bi-image::before{content:""}.bi-images::before{content:""}.bi-inbox-fill::before{content:""}.bi-inbox::before{content:""}.bi-inboxes-fill::before{content:""}.bi-inboxes::before{content:""}.bi-info-circle-fill::before{content:""}.bi-info-circle::before{content:""}.bi-info-square-fill::before{content:""}.bi-info-square::before{content:""}.bi-info::before{content:""}.bi-input-cursor-text::before{content:""}.bi-input-cursor::before{content:""}.bi-instagram::before{content:""}.bi-intersect::before{content:""}.bi-journal-album::before{content:""}.bi-journal-arrow-down::before{content:""}.bi-journal-arrow-up::before{content:""}.bi-journal-bookmark-fill::before{content:""}.bi-journal-bookmark::before{content:""}.bi-journal-check::before{content:""}.bi-journal-code::before{content:""}.bi-journal-medical::before{content:""}.bi-journal-minus::before{content:""}.bi-journal-plus::before{content:""}.bi-journal-richtext::before{content:""}.bi-journal-text::before{content:""}.bi-journal-x::before{content:""}.bi-journal::before{content:""}.bi-journals::before{content:""}.bi-joystick::before{content:""}.bi-justify-left::before{content:""}.bi-justify-right::before{content:""}.bi-justify::before{content:""}.bi-kanban-fill::before{content:""}.bi-kanban::before{content:""}.bi-key-fill::before{content:""}.bi-key::before{content:""}.bi-keyboard-fill::before{content:""}.bi-keyboard::before{content:""}.bi-ladder::before{content:""}.bi-lamp-fill::before{content:""}.bi-lamp::before{content:""}.bi-laptop-fill::before{content:""}.bi-laptop::before{content:""}.bi-layer-backward::before{content:""}.bi-layer-forward::before{content:""}.bi-layers-fill::before{content:""}.bi-layers-half::before{content:""}.bi-layers::before{content:""}.bi-layout-sidebar-inset-reverse::before{content:""}.bi-layout-sidebar-inset::before{content:""}.bi-layout-sidebar-reverse::before{content:""}.bi-layout-sidebar::before{content:""}.bi-layout-split::before{content:""}.bi-layout-text-sidebar-reverse::before{content:""}.bi-layout-text-sidebar::before{content:""}.bi-layout-text-window-reverse::before{content:""}.bi-layout-text-window::before{content:""}.bi-layout-three-columns::before{content:""}.bi-layout-wtf::before{content:""}.bi-life-preserver::before{content:""}.bi-lightbulb-fill::before{content:""}.bi-lightbulb-off-fill::before{content:""}.bi-lightbulb-off::before{content:""}.bi-lightbulb::before{content:""}.bi-lightning-charge-fill::before{content:""}.bi-lightning-charge::before{content:""}.bi-lightning-fill::before{content:""}.bi-lightning::before{content:""}.bi-link-45deg::before{content:""}.bi-link::before{content:""}.bi-linkedin::before{content:""}.bi-list-check::before{content:""}.bi-list-nested::before{content:""}.bi-list-ol::before{content:""}.bi-list-stars::before{content:""}.bi-list-task::before{content:""}.bi-list-ul::before{content:""}.bi-list::before{content:""}.bi-lock-fill::before{content:""}.bi-lock::before{content:""}.bi-mailbox::before{content:""}.bi-mailbox2::before{content:""}.bi-map-fill::before{content:""}.bi-map::before{content:""}.bi-markdown-fill::before{content:""}.bi-markdown::before{content:""}.bi-mask::before{content:""}.bi-megaphone-fill::before{content:""}.bi-megaphone::before{content:""}.bi-menu-app-fill::before{content:""}.bi-menu-app::before{content:""}.bi-menu-button-fill::before{content:""}.bi-menu-button-wide-fill::before{content:""}.bi-menu-button-wide::before{content:""}.bi-menu-button::before{content:""}.bi-menu-down::before{content:""}.bi-menu-up::before{content:""}.bi-mic-fill::before{content:""}.bi-mic-mute-fill::before{content:""}.bi-mic-mute::before{content:""}.bi-mic::before{content:""}.bi-minecart-loaded::before{content:""}.bi-minecart::before{content:""}.bi-moisture::before{content:""}.bi-moon-fill::before{content:""}.bi-moon-stars-fill::before{content:""}.bi-moon-stars::before{content:""}.bi-moon::before{content:""}.bi-mouse-fill::before{content:""}.bi-mouse::before{content:""}.bi-mouse2-fill::before{content:""}.bi-mouse2::before{content:""}.bi-mouse3-fill::before{content:""}.bi-mouse3::before{content:""}.bi-music-note-beamed::before{content:""}.bi-music-note-list::before{content:""}.bi-music-note::before{content:""}.bi-music-player-fill::before{content:""}.bi-music-player::before{content:""}.bi-newspaper::before{content:""}.bi-node-minus-fill::before{content:""}.bi-node-minus::before{content:""}.bi-node-plus-fill::before{content:""}.bi-node-plus::before{content:""}.bi-nut-fill::before{content:""}.bi-nut::before{content:""}.bi-octagon-fill::before{content:""}.bi-octagon-half::before{content:""}.bi-octagon::before{content:""}.bi-option::before{content:""}.bi-outlet::before{content:""}.bi-paint-bucket::before{content:""}.bi-palette-fill::before{content:""}.bi-palette::before{content:""}.bi-palette2::before{content:""}.bi-paperclip::before{content:""}.bi-paragraph::before{content:""}.bi-patch-check-fill::before{content:""}.bi-patch-check::before{content:""}.bi-patch-exclamation-fill::before{content:""}.bi-patch-exclamation::before{content:""}.bi-patch-minus-fill::before{content:""}.bi-patch-minus::before{content:""}.bi-patch-plus-fill::before{content:""}.bi-patch-plus::before{content:""}.bi-patch-question-fill::before{content:""}.bi-patch-question::before{content:""}.bi-pause-btn-fill::before{content:""}.bi-pause-btn::before{content:""}.bi-pause-circle-fill::before{content:""}.bi-pause-circle::before{content:""}.bi-pause-fill::before{content:""}.bi-pause::before{content:""}.bi-peace-fill::before{content:""}.bi-peace::before{content:""}.bi-pen-fill::before{content:""}.bi-pen::before{content:""}.bi-pencil-fill::before{content:""}.bi-pencil-square::before{content:""}.bi-pencil::before{content:""}.bi-pentagon-fill::before{content:""}.bi-pentagon-half::before{content:""}.bi-pentagon::before{content:""}.bi-people-fill::before{content:""}.bi-people::before{content:""}.bi-percent::before{content:""}.bi-person-badge-fill::before{content:""}.bi-person-badge::before{content:""}.bi-person-bounding-box::before{content:""}.bi-person-check-fill::before{content:""}.bi-person-check::before{content:""}.bi-person-circle::before{content:""}.bi-person-dash-fill::before{content:""}.bi-person-dash::before{content:""}.bi-person-fill::before{content:""}.bi-person-lines-fill::before{content:""}.bi-person-plus-fill::before{content:""}.bi-person-plus::before{content:""}.bi-person-square::before{content:""}.bi-person-x-fill::before{content:""}.bi-person-x::before{content:""}.bi-person::before{content:""}.bi-phone-fill::before{content:""}.bi-phone-landscape-fill::before{content:""}.bi-phone-landscape::before{content:""}.bi-phone-vibrate-fill::before{content:""}.bi-phone-vibrate::before{content:""}.bi-phone::before{content:""}.bi-pie-chart-fill::before{content:""}.bi-pie-chart::before{content:""}.bi-pin-angle-fill::before{content:""}.bi-pin-angle::before{content:""}.bi-pin-fill::before{content:""}.bi-pin::before{content:""}.bi-pip-fill::before{content:""}.bi-pip::before{content:""}.bi-play-btn-fill::before{content:""}.bi-play-btn::before{content:""}.bi-play-circle-fill::before{content:""}.bi-play-circle::before{content:""}.bi-play-fill::before{content:""}.bi-play::before{content:""}.bi-plug-fill::before{content:""}.bi-plug::before{content:""}.bi-plus-circle-dotted::before{content:""}.bi-plus-circle-fill::before{content:""}.bi-plus-circle::before{content:""}.bi-plus-square-dotted::before{content:""}.bi-plus-square-fill::before{content:""}.bi-plus-square::before{content:""}.bi-plus::before{content:""}.bi-power::before{content:""}.bi-printer-fill::before{content:""}.bi-printer::before{content:""}.bi-puzzle-fill::before{content:""}.bi-puzzle::before{content:""}.bi-question-circle-fill::before{content:""}.bi-question-circle::before{content:""}.bi-question-diamond-fill::before{content:""}.bi-question-diamond::before{content:""}.bi-question-octagon-fill::before{content:""}.bi-question-octagon::before{content:""}.bi-question-square-fill::before{content:""}.bi-question-square::before{content:""}.bi-question::before{content:""}.bi-rainbow::before{content:""}.bi-receipt-cutoff::before{content:""}.bi-receipt::before{content:""}.bi-reception-0::before{content:""}.bi-reception-1::before{content:""}.bi-reception-2::before{content:""}.bi-reception-3::before{content:""}.bi-reception-4::before{content:""}.bi-record-btn-fill::before{content:""}.bi-record-btn::before{content:""}.bi-record-circle-fill::before{content:""}.bi-record-circle::before{content:""}.bi-record-fill::before{content:""}.bi-record::before{content:""}.bi-record2-fill::before{content:""}.bi-record2::before{content:""}.bi-reply-all-fill::before{content:""}.bi-reply-all::before{content:""}.bi-reply-fill::before{content:""}.bi-reply::before{content:""}.bi-rss-fill::before{content:""}.bi-rss::before{content:""}.bi-rulers::before{content:""}.bi-save-fill::before{content:""}.bi-save::before{content:""}.bi-save2-fill::before{content:""}.bi-save2::before{content:""}.bi-scissors::before{content:""}.bi-screwdriver::before{content:""}.bi-search::before{content:""}.bi-segmented-nav::before{content:""}.bi-server::before{content:""}.bi-share-fill::before{content:""}.bi-share::before{content:""}.bi-shield-check::before{content:""}.bi-shield-exclamation::before{content:""}.bi-shield-fill-check::before{content:""}.bi-shield-fill-exclamation::before{content:""}.bi-shield-fill-minus::before{content:""}.bi-shield-fill-plus::before{content:""}.bi-shield-fill-x::before{content:""}.bi-shield-fill::before{content:""}.bi-shield-lock-fill::before{content:""}.bi-shield-lock::before{content:""}.bi-shield-minus::before{content:""}.bi-shield-plus::before{content:""}.bi-shield-shaded::before{content:""}.bi-shield-slash-fill::before{content:""}.bi-shield-slash::before{content:""}.bi-shield-x::before{content:""}.bi-shield::before{content:""}.bi-shift-fill::before{content:""}.bi-shift::before{content:""}.bi-shop-window::before{content:""}.bi-shop::before{content:""}.bi-shuffle::before{content:""}.bi-signpost-2-fill::before{content:""}.bi-signpost-2::before{content:""}.bi-signpost-fill::before{content:""}.bi-signpost-split-fill::before{content:""}.bi-signpost-split::before{content:""}.bi-signpost::before{content:""}.bi-sim-fill::before{content:""}.bi-sim::before{content:""}.bi-skip-backward-btn-fill::before{content:""}.bi-skip-backward-btn::before{content:""}.bi-skip-backward-circle-fill::before{content:""}.bi-skip-backward-circle::before{content:""}.bi-skip-backward-fill::before{content:""}.bi-skip-backward::before{content:""}.bi-skip-end-btn-fill::before{content:""}.bi-skip-end-btn::before{content:""}.bi-skip-end-circle-fill::before{content:""}.bi-skip-end-circle::before{content:""}.bi-skip-end-fill::before{content:""}.bi-skip-end::before{content:""}.bi-skip-forward-btn-fill::before{content:""}.bi-skip-forward-btn::before{content:""}.bi-skip-forward-circle-fill::before{content:""}.bi-skip-forward-circle::before{content:""}.bi-skip-forward-fill::before{content:""}.bi-skip-forward::before{content:""}.bi-skip-start-btn-fill::before{content:""}.bi-skip-start-btn::before{content:""}.bi-skip-start-circle-fill::before{content:""}.bi-skip-start-circle::before{content:""}.bi-skip-start-fill::before{content:""}.bi-skip-start::before{content:""}.bi-slack::before{content:""}.bi-slash-circle-fill::before{content:""}.bi-slash-circle::before{content:""}.bi-slash-square-fill::before{content:""}.bi-slash-square::before{content:""}.bi-slash::before{content:""}.bi-sliders::before{content:""}.bi-smartwatch::before{content:""}.bi-snow::before{content:""}.bi-snow2::before{content:""}.bi-snow3::before{content:""}.bi-sort-alpha-down-alt::before{content:""}.bi-sort-alpha-down::before{content:""}.bi-sort-alpha-up-alt::before{content:""}.bi-sort-alpha-up::before{content:""}.bi-sort-down-alt::before{content:""}.bi-sort-down::before{content:""}.bi-sort-numeric-down-alt::before{content:""}.bi-sort-numeric-down::before{content:""}.bi-sort-numeric-up-alt::before{content:""}.bi-sort-numeric-up::before{content:""}.bi-sort-up-alt::before{content:""}.bi-sort-up::before{content:""}.bi-soundwave::before{content:""}.bi-speaker-fill::before{content:""}.bi-speaker::before{content:""}.bi-speedometer::before{content:""}.bi-speedometer2::before{content:""}.bi-spellcheck::before{content:""}.bi-square-fill::before{content:""}.bi-square-half::before{content:""}.bi-square::before{content:""}.bi-stack::before{content:""}.bi-star-fill::before{content:""}.bi-star-half::before{content:""}.bi-star::before{content:""}.bi-stars::before{content:""}.bi-stickies-fill::before{content:""}.bi-stickies::before{content:""}.bi-sticky-fill::before{content:""}.bi-sticky::before{content:""}.bi-stop-btn-fill::before{content:""}.bi-stop-btn::before{content:""}.bi-stop-circle-fill::before{content:""}.bi-stop-circle::before{content:""}.bi-stop-fill::before{content:""}.bi-stop::before{content:""}.bi-stoplights-fill::before{content:""}.bi-stoplights::before{content:""}.bi-stopwatch-fill::before{content:""}.bi-stopwatch::before{content:""}.bi-subtract::before{content:""}.bi-suit-club-fill::before{content:""}.bi-suit-club::before{content:""}.bi-suit-diamond-fill::before{content:""}.bi-suit-diamond::before{content:""}.bi-suit-heart-fill::before{content:""}.bi-suit-heart::before{content:""}.bi-suit-spade-fill::before{content:""}.bi-suit-spade::before{content:""}.bi-sun-fill::before{content:""}.bi-sun::before{content:""}.bi-sunglasses::before{content:""}.bi-sunrise-fill::before{content:""}.bi-sunrise::before{content:""}.bi-sunset-fill::before{content:""}.bi-sunset::before{content:""}.bi-symmetry-horizontal::before{content:""}.bi-symmetry-vertical::before{content:""}.bi-table::before{content:""}.bi-tablet-fill::before{content:""}.bi-tablet-landscape-fill::before{content:""}.bi-tablet-landscape::before{content:""}.bi-tablet::before{content:""}.bi-tag-fill::before{content:""}.bi-tag::before{content:""}.bi-tags-fill::before{content:""}.bi-tags::before{content:""}.bi-telegram::before{content:""}.bi-telephone-fill::before{content:""}.bi-telephone-forward-fill::before{content:""}.bi-telephone-forward::before{content:""}.bi-telephone-inbound-fill::before{content:""}.bi-telephone-inbound::before{content:""}.bi-telephone-minus-fill::before{content:""}.bi-telephone-minus::before{content:""}.bi-telephone-outbound-fill::before{content:""}.bi-telephone-outbound::before{content:""}.bi-telephone-plus-fill::before{content:""}.bi-telephone-plus::before{content:""}.bi-telephone-x-fill::before{content:""}.bi-telephone-x::before{content:""}.bi-telephone::before{content:""}.bi-terminal-fill::before{content:""}.bi-terminal::before{content:""}.bi-text-center::before{content:""}.bi-text-indent-left::before{content:""}.bi-text-indent-right::before{content:""}.bi-text-left::before{content:""}.bi-text-paragraph::before{content:""}.bi-text-right::before{content:""}.bi-textarea-resize::before{content:""}.bi-textarea-t::before{content:""}.bi-textarea::before{content:""}.bi-thermometer-half::before{content:""}.bi-thermometer-high::before{content:""}.bi-thermometer-low::before{content:""}.bi-thermometer-snow::before{content:""}.bi-thermometer-sun::before{content:""}.bi-thermometer::before{content:""}.bi-three-dots-vertical::before{content:""}.bi-three-dots::before{content:""}.bi-toggle-off::before{content:""}.bi-toggle-on::before{content:""}.bi-toggle2-off::before{content:""}.bi-toggle2-on::before{content:""}.bi-toggles::before{content:""}.bi-toggles2::before{content:""}.bi-tools::before{content:""}.bi-tornado::before{content:""}.bi-trash-fill::before{content:""}.bi-trash::before{content:""}.bi-trash2-fill::before{content:""}.bi-trash2::before{content:""}.bi-tree-fill::before{content:""}.bi-tree::before{content:""}.bi-triangle-fill::before{content:""}.bi-triangle-half::before{content:""}.bi-triangle::before{content:""}.bi-trophy-fill::before{content:""}.bi-trophy::before{content:""}.bi-tropical-storm::before{content:""}.bi-truck-flatbed::before{content:""}.bi-truck::before{content:""}.bi-tsunami::before{content:""}.bi-tv-fill::before{content:""}.bi-tv::before{content:""}.bi-twitch::before{content:""}.bi-twitter::before{content:""}.bi-type-bold::before{content:""}.bi-type-h1::before{content:""}.bi-type-h2::before{content:""}.bi-type-h3::before{content:""}.bi-type-italic::before{content:""}.bi-type-strikethrough::before{content:""}.bi-type-underline::before{content:""}.bi-type::before{content:""}.bi-ui-checks-grid::before{content:""}.bi-ui-checks::before{content:""}.bi-ui-radios-grid::before{content:""}.bi-ui-radios::before{content:""}.bi-umbrella-fill::before{content:""}.bi-umbrella::before{content:""}.bi-union::before{content:""}.bi-unlock-fill::before{content:""}.bi-unlock::before{content:""}.bi-upc-scan::before{content:""}.bi-upc::before{content:""}.bi-upload::before{content:""}.bi-vector-pen::before{content:""}.bi-view-list::before{content:""}.bi-view-stacked::before{content:""}.bi-vinyl-fill::before{content:""}.bi-vinyl::before{content:""}.bi-voicemail::before{content:""}.bi-volume-down-fill::before{content:""}.bi-volume-down::before{content:""}.bi-volume-mute-fill::before{content:""}.bi-volume-mute::before{content:""}.bi-volume-off-fill::before{content:""}.bi-volume-off::before{content:""}.bi-volume-up-fill::before{content:""}.bi-volume-up::before{content:""}.bi-vr::before{content:""}.bi-wallet-fill::before{content:""}.bi-wallet::before{content:""}.bi-wallet2::before{content:""}.bi-watch::before{content:""}.bi-water::before{content:""}.bi-whatsapp::before{content:""}.bi-wifi-1::before{content:""}.bi-wifi-2::before{content:""}.bi-wifi-off::before{content:""}.bi-wifi::before{content:""}.bi-wind::before{content:""}.bi-window-dock::before{content:""}.bi-window-sidebar::before{content:""}.bi-window::before{content:""}.bi-wrench::before{content:""}.bi-x-circle-fill::before{content:""}.bi-x-circle::before{content:""}.bi-x-diamond-fill::before{content:""}.bi-x-diamond::before{content:""}.bi-x-octagon-fill::before{content:""}.bi-x-octagon::before{content:""}.bi-x-square-fill::before{content:""}.bi-x-square::before{content:""}.bi-x::before{content:""}.bi-youtube::before{content:""}.bi-zoom-in::before{content:""}.bi-zoom-out::before{content:""}.bi-bank::before{content:""}.bi-bank2::before{content:""}.bi-bell-slash-fill::before{content:""}.bi-bell-slash::before{content:""}.bi-cash-coin::before{content:""}.bi-check-lg::before{content:""}.bi-coin::before{content:""}.bi-currency-bitcoin::before{content:""}.bi-currency-dollar::before{content:""}.bi-currency-euro::before{content:""}.bi-currency-exchange::before{content:""}.bi-currency-pound::before{content:""}.bi-currency-yen::before{content:""}.bi-dash-lg::before{content:""}.bi-exclamation-lg::before{content:""}.bi-file-earmark-pdf-fill::before{content:""}.bi-file-earmark-pdf::before{content:""}.bi-file-pdf-fill::before{content:""}.bi-file-pdf::before{content:""}.bi-gender-ambiguous::before{content:""}.bi-gender-female::before{content:""}.bi-gender-male::before{content:""}.bi-gender-trans::before{content:""}.bi-headset-vr::before{content:""}.bi-info-lg::before{content:""}.bi-mastodon::before{content:""}.bi-messenger::before{content:""}.bi-piggy-bank-fill::before{content:""}.bi-piggy-bank::before{content:""}.bi-pin-map-fill::before{content:""}.bi-pin-map::before{content:""}.bi-plus-lg::before{content:""}.bi-question-lg::before{content:""}.bi-recycle::before{content:""}.bi-reddit::before{content:""}.bi-safe-fill::before{content:""}.bi-safe2-fill::before{content:""}.bi-safe2::before{content:""}.bi-sd-card-fill::before{content:""}.bi-sd-card::before{content:""}.bi-skype::before{content:""}.bi-slash-lg::before{content:""}.bi-translate::before{content:""}.bi-x-lg::before{content:""}.bi-safe::before{content:""}.bi-apple::before{content:""}.bi-microsoft::before{content:""}.bi-windows::before{content:""}.bi-behance::before{content:""}.bi-dribbble::before{content:""}.bi-line::before{content:""}.bi-medium::before{content:""}.bi-paypal::before{content:""}.bi-pinterest::before{content:""}.bi-signal::before{content:""}.bi-snapchat::before{content:""}.bi-spotify::before{content:""}.bi-stack-overflow::before{content:""}.bi-strava::before{content:""}.bi-wordpress::before{content:""}.bi-vimeo::before{content:""}.bi-activity::before{content:""}.bi-easel2-fill::before{content:""}.bi-easel2::before{content:""}.bi-easel3-fill::before{content:""}.bi-easel3::before{content:""}.bi-fan::before{content:""}.bi-fingerprint::before{content:""}.bi-graph-down-arrow::before{content:""}.bi-graph-up-arrow::before{content:""}.bi-hypnotize::before{content:""}.bi-magic::before{content:""}.bi-person-rolodex::before{content:""}.bi-person-video::before{content:""}.bi-person-video2::before{content:""}.bi-person-video3::before{content:""}.bi-person-workspace::before{content:""}.bi-radioactive::before{content:""}.bi-webcam-fill::before{content:""}.bi-webcam::before{content:""}.bi-yin-yang::before{content:""}.bi-bandaid-fill::before{content:""}.bi-bandaid::before{content:""}.bi-bluetooth::before{content:""}.bi-body-text::before{content:""}.bi-boombox::before{content:""}.bi-boxes::before{content:""}.bi-dpad-fill::before{content:""}.bi-dpad::before{content:""}.bi-ear-fill::before{content:""}.bi-ear::before{content:""}.bi-envelope-check-1::before{content:""}.bi-envelope-check-fill::before{content:""}.bi-envelope-check::before{content:""}.bi-envelope-dash-1::before{content:""}.bi-envelope-dash-fill::before{content:""}.bi-envelope-dash::before{content:""}.bi-envelope-exclamation-1::before{content:""}.bi-envelope-exclamation-fill::before{content:""}.bi-envelope-exclamation::before{content:""}.bi-envelope-plus-fill::before{content:""}.bi-envelope-plus::before{content:""}.bi-envelope-slash-1::before{content:""}.bi-envelope-slash-fill::before{content:""}.bi-envelope-slash::before{content:""}.bi-envelope-x-1::before{content:""}.bi-envelope-x-fill::before{content:""}.bi-envelope-x::before{content:""}.bi-explicit-fill::before{content:""}.bi-explicit::before{content:""}.bi-git::before{content:""}.bi-infinity::before{content:""}.bi-list-columns-reverse::before{content:""}.bi-list-columns::before{content:""}.bi-meta::before{content:""}.bi-mortorboard-fill::before{content:""}.bi-mortorboard::before{content:""}.bi-nintendo-switch::before{content:""}.bi-pc-display-horizontal::before{content:""}.bi-pc-display::before{content:""}.bi-pc-horizontal::before{content:""}.bi-pc::before{content:""}.bi-playstation::before{content:""}.bi-plus-slash-minus::before{content:""}.bi-projector-fill::before{content:""}.bi-projector::before{content:""}.bi-qr-code-scan::before{content:""}.bi-qr-code::before{content:""}.bi-quora::before{content:""}.bi-quote::before{content:""}.bi-robot::before{content:""}.bi-send-check-fill::before{content:""}.bi-send-check::before{content:""}.bi-send-dash-fill::before{content:""}.bi-send-dash::before{content:""}.bi-send-exclamation-1::before{content:""}.bi-send-exclamation-fill::before{content:""}.bi-send-exclamation::before{content:""}.bi-send-fill::before{content:""}.bi-send-plus-fill::before{content:""}.bi-send-plus::before{content:""}.bi-send-slash-fill::before{content:""}.bi-send-slash::before{content:""}.bi-send-x-fill::before{content:""}.bi-send-x::before{content:""}.bi-send::before{content:""}.bi-steam::before{content:""}.bi-terminal-dash-1::before{content:""}.bi-terminal-dash::before{content:""}.bi-terminal-plus::before{content:""}.bi-terminal-split::before{content:""}.bi-ticket-detailed-fill::before{content:""}.bi-ticket-detailed::before{content:""}.bi-ticket-fill::before{content:""}.bi-ticket-perforated-fill::before{content:""}.bi-ticket-perforated::before{content:""}.bi-ticket::before{content:""}.bi-tiktok::before{content:""}.bi-window-dash::before{content:""}.bi-window-desktop::before{content:""}.bi-window-fullscreen::before{content:""}.bi-window-plus::before{content:""}.bi-window-split::before{content:""}.bi-window-stack::before{content:""}.bi-window-x::before{content:""}.bi-xbox::before{content:""}.bi-ethernet::before{content:""}.bi-hdmi-fill::before{content:""}.bi-hdmi::before{content:""}.bi-usb-c-fill::before{content:""}.bi-usb-c::before{content:""}.bi-usb-fill::before{content:""}.bi-usb-plug-fill::before{content:""}.bi-usb-plug::before{content:""}.bi-usb-symbol::before{content:""}.bi-usb::before{content:""}.bi-boombox-fill::before{content:""}.bi-displayport-1::before{content:""}.bi-displayport::before{content:""}.bi-gpu-card::before{content:""}.bi-memory::before{content:""}.bi-modem-fill::before{content:""}.bi-modem::before{content:""}.bi-motherboard-fill::before{content:""}.bi-motherboard::before{content:""}.bi-optical-audio-fill::before{content:""}.bi-optical-audio::before{content:""}.bi-pci-card::before{content:""}.bi-router-fill::before{content:""}.bi-router::before{content:""}.bi-ssd-fill::before{content:""}.bi-ssd::before{content:""}.bi-thunderbolt-fill::before{content:""}.bi-thunderbolt::before{content:""}.bi-usb-drive-fill::before{content:""}.bi-usb-drive::before{content:""}.bi-usb-micro-fill::before{content:""}.bi-usb-micro::before{content:""}.bi-usb-mini-fill::before{content:""}.bi-usb-mini::before{content:""}.bi-cloud-haze2::before{content:""}.bi-device-hdd-fill::before{content:""}.bi-device-hdd::before{content:""}.bi-device-ssd-fill::before{content:""}.bi-device-ssd::before{content:""}.bi-displayport-fill::before{content:""}.bi-mortarboard-fill::before{content:""}.bi-mortarboard::before{content:""}.bi-terminal-x::before{content:""} diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/wwwroot/global.js b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/wwwroot/global.js similarity index 89% rename from templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/wwwroot/global.js rename to templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/wwwroot/global.js index 55481be1e3..e7b37a33d9 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/wwwroot/global.js +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/wwwroot/global.js @@ -1,25 +1,23 @@ -(()=>{"use strict";var e,t,n;!function(e){const t=[],n="__jsObjectId",r="__dotNetObject",o="__byte[]",i="__dotNetStream",s="__jsStreamReferenceLength";let a,c;class l{constructor(e){this._jsObject=e,this._cachedFunctions=new Map}findFunction(e){const t=this._cachedFunctions.get(e);if(t)return t;let n,r=this._jsObject;if(e.split(".").forEach((t=>{if(!(t in r))throw new Error(`Could not find '${e}' ('${t}' was undefined).`);n=r,r=r[t]})),r instanceof Function)return r=r.bind(n),this._cachedFunctions.set(e,r),r;throw new Error(`The value '${e}' is not a function.`)}getWrappedObject(){return this._jsObject}}const u={0:new l(window)};u[0]._cachedFunctions.set("import",(e=>("string"==typeof e&&e.startsWith("./")&&(e=new URL(e.substr(2),document.baseURI).toString()),import(e))));let d,f=1;function m(e){t.push(e)}function h(e){if(e&&"object"==typeof e){u[f]=new l(e);const t={[n]:f};return f++,t}throw new Error(`Cannot create a JSObjectReference from the value '${e}'.`)}function p(e){let t=-1;if(e instanceof ArrayBuffer&&(e=new Uint8Array(e)),e instanceof Blob)t=e.size;else{if(!(e.buffer instanceof ArrayBuffer))throw new Error("Supplied value is not a typed array or blob.");if(void 0===e.byteLength)throw new Error(`Cannot create a JSStreamReference from the value '${e}' as it doesn't have a byteLength.`);t=e.byteLength}const r={[s]:t};try{const t=h(e);r[n]=t[n]}catch(t){throw new Error(`Cannot create a JSStreamReference from the value '${e}'.`)}return r}function v(e,n){c=e;const r=n?JSON.parse(n,((e,n)=>t.reduce(((t,n)=>n(e,t)),n))):null;return c=void 0,r}function b(){if(void 0===a)throw new Error("No call dispatcher has been set.");if(null===a)throw new Error("There are multiple .NET runtimes present, so a default dispatcher could not be resolved. Use DotNetObject to invoke .NET instance methods.");return a}e.attachDispatcher=function(e){const t=new g(e);return void 0===a?a=t:a&&(a=null),t},e.attachReviver=m,e.invokeMethod=function(e,t,...n){return b().invokeDotNetStaticMethod(e,t,...n)},e.invokeMethodAsync=function(e,t,...n){return b().invokeDotNetStaticMethodAsync(e,t,...n)},e.createJSObjectReference=h,e.createJSStreamReference=p,e.disposeJSObjectReference=function(e){const t=e&&e[n];"number"==typeof t&&E(t)},function(e){e[e.Default=0]="Default",e[e.JSObjectReference=1]="JSObjectReference",e[e.JSStreamReference=2]="JSStreamReference",e[e.JSVoidResult=3]="JSVoidResult"}(d=e.JSCallResultType||(e.JSCallResultType={}));class g{constructor(e){this._dotNetCallDispatcher=e,this._byteArraysToBeRevived=new Map,this._pendingDotNetToJSStreams=new Map,this._pendingAsyncCalls={},this._nextAsyncCallId=1}getDotNetCallDispatcher(){return this._dotNetCallDispatcher}invokeJSFromDotNet(e,t,n,r){const o=v(this,t),i=I(w(e,r)(...o||[]),n);return null==i?null:_(this,i)}beginInvokeJSFromDotNet(e,t,n,r,o){const i=new Promise((e=>{const r=v(this,n);e(w(t,o)(...r||[]))}));e&&i.then((t=>_(this,[e,!0,I(t,r)]))).then((t=>this._dotNetCallDispatcher.endInvokeJSFromDotNet(e,!0,t)),(t=>this._dotNetCallDispatcher.endInvokeJSFromDotNet(e,!1,JSON.stringify([e,!1,y(t)]))))}endInvokeDotNetFromJS(e,t,n){const r=t?v(this,n):new Error(n);this.completePendingCall(parseInt(e,10),t,r)}invokeDotNetStaticMethod(e,t,...n){return this.invokeDotNetMethod(e,t,null,n)}invokeDotNetStaticMethodAsync(e,t,...n){return this.invokeDotNetMethodAsync(e,t,null,n)}invokeDotNetMethod(e,t,n,r){if(this._dotNetCallDispatcher.invokeDotNetFromJS){const o=_(this,r),i=this._dotNetCallDispatcher.invokeDotNetFromJS(e,t,n,o);return i?v(this,i):null}throw new Error("The current dispatcher does not support synchronous calls from JS to .NET. Use invokeDotNetMethodAsync instead.")}invokeDotNetMethodAsync(e,t,n,r){if(e&&n)throw new Error(`For instance method calls, assemblyName should be null. Received '${e}'.`);const o=this._nextAsyncCallId++,i=new Promise(((e,t)=>{this._pendingAsyncCalls[o]={resolve:e,reject:t}}));try{const i=_(this,r);this._dotNetCallDispatcher.beginInvokeDotNetFromJS(o,e,t,n,i)}catch(e){this.completePendingCall(o,!1,e)}return i}receiveByteArray(e,t){this._byteArraysToBeRevived.set(e,t)}processByteArray(e){const t=this._byteArraysToBeRevived.get(e);return t?(this._byteArraysToBeRevived.delete(e),t):null}supplyDotNetStream(e,t){if(this._pendingDotNetToJSStreams.has(e)){const n=this._pendingDotNetToJSStreams.get(e);this._pendingDotNetToJSStreams.delete(e),n.resolve(t)}else{const n=new C;n.resolve(t),this._pendingDotNetToJSStreams.set(e,n)}}getDotNetStreamPromise(e){let t;if(this._pendingDotNetToJSStreams.has(e))t=this._pendingDotNetToJSStreams.get(e).streamPromise,this._pendingDotNetToJSStreams.delete(e);else{const n=new C;this._pendingDotNetToJSStreams.set(e,n),t=n.streamPromise}return t}completePendingCall(e,t,n){if(!this._pendingAsyncCalls.hasOwnProperty(e))throw new Error(`There is no pending async call with ID ${e}.`);const r=this._pendingAsyncCalls[e];delete this._pendingAsyncCalls[e],t?r.resolve(n):r.reject(n)}}function y(e){return e instanceof Error?`${e.message}\n${e.stack}`:e?e.toString():"null"}function w(e,t){const n=u[t];if(n)return n.findFunction(e);throw new Error(`JS object instance with ID ${t} does not exist (has it been disposed?).`)}function E(e){delete u[e]}e.findJSFunction=w,e.disposeJSObjectReferenceById=E;class S{constructor(e,t){this._id=e,this._callDispatcher=t}invokeMethod(e,...t){return this._callDispatcher.invokeDotNetMethod(null,e,this._id,t)}invokeMethodAsync(e,...t){return this._callDispatcher.invokeDotNetMethodAsync(null,e,this._id,t)}dispose(){this._callDispatcher.invokeDotNetMethodAsync(null,"__Dispose",this._id,null).catch((e=>console.error(e)))}serializeAsArg(){return{[r]:this._id}}}e.DotNetObject=S,m((function(e,t){if(t&&"object"==typeof t){if(t.hasOwnProperty(r))return new S(t[r],c);if(t.hasOwnProperty(n)){const e=t[n],r=u[e];if(r)return r.getWrappedObject();throw new Error(`JS object instance with Id '${e}' does not exist. It may have been disposed.`)}if(t.hasOwnProperty(o)){const e=t[o],n=c.processByteArray(e);if(void 0===n)throw new Error(`Byte array index '${e}' does not exist.`);return n}if(t.hasOwnProperty(i)){const e=t[i],n=c.getDotNetStreamPromise(e);return new A(n)}}return t}));class A{constructor(e){this._streamPromise=e}stream(){return this._streamPromise}async arrayBuffer(){return new Response(await this.stream()).arrayBuffer()}}class C{constructor(){this.streamPromise=new Promise(((e,t)=>{this.resolve=e,this.reject=t}))}}function I(e,t){switch(t){case d.Default:return e;case d.JSObjectReference:return h(e);case d.JSStreamReference:return p(e);case d.JSVoidResult:return null;default:throw new Error(`Invalid JS call result type '${t}'.`)}}let N=0;function _(e,t){N=0,c=e;const n=JSON.stringify(t,R);return c=void 0,n}function R(e,t){if(t instanceof S)return t.serializeAsArg();if(t instanceof Uint8Array){c.getDotNetCallDispatcher().sendByteArray(N,t);const e={[o]:N};return N++,e}return t}}(e||(e={})),function(e){e[e.prependFrame=1]="prependFrame",e[e.removeFrame=2]="removeFrame",e[e.setAttribute=3]="setAttribute",e[e.removeAttribute=4]="removeAttribute",e[e.updateText=5]="updateText",e[e.stepIn=6]="stepIn",e[e.stepOut=7]="stepOut",e[e.updateMarkup=8]="updateMarkup",e[e.permutationListEntry=9]="permutationListEntry",e[e.permutationListEnd=10]="permutationListEnd"}(t||(t={})),function(e){e[e.element=1]="element",e[e.text=2]="text",e[e.attribute=3]="attribute",e[e.component=4]="component",e[e.region=5]="region",e[e.elementReferenceCapture=6]="elementReferenceCapture",e[e.markup=8]="markup",e[e.namedEvent=10]="namedEvent"}(n||(n={}));class r{constructor(e,t){this.componentId=e,this.fieldValue=t}static fromEvent(e,t){const n=t.target;if(n instanceof Element){const t=function(e){return e instanceof HTMLInputElement?e.type&&"checkbox"===e.type.toLowerCase()?{value:e.checked}:{value:e.value}:e instanceof HTMLSelectElement||e instanceof HTMLTextAreaElement?{value:e.value}:null}(n);if(t)return new r(e,t.value)}return null}}const o=new Map,i=new Map,s=[];function a(e){return o.get(e)}function c(e){const t=o.get(e);return(null==t?void 0:t.browserEventName)||e}function l(e,t){e.forEach((e=>o.set(e,t)))}function u(e){const t=[];for(let n=0;ne.selected)).map((e=>e.value))}}{const e=function(e){return!!e&&"INPUT"===e.tagName&&"checkbox"===e.getAttribute("type")}(t);return{value:e?!!t.checked:t.value}}}}),l(["copy","cut","paste"],{createEventArgs:e=>({type:e.type})}),l(["drag","dragend","dragenter","dragleave","dragover","dragstart","drop"],{createEventArgs:e=>{return{...d(t=e),dataTransfer:t.dataTransfer?{dropEffect:t.dataTransfer.dropEffect,effectAllowed:t.dataTransfer.effectAllowed,files:Array.from(t.dataTransfer.files).map((e=>e.name)),items:Array.from(t.dataTransfer.items).map((e=>({kind:e.kind,type:e.type}))),types:t.dataTransfer.types}:null};var t}}),l(["focus","blur","focusin","focusout"],{createEventArgs:e=>({type:e.type})}),l(["keydown","keyup","keypress"],{createEventArgs:e=>{return{key:(t=e).key,code:t.code,location:t.location,repeat:t.repeat,ctrlKey:t.ctrlKey,shiftKey:t.shiftKey,altKey:t.altKey,metaKey:t.metaKey,type:t.type};var t}}),l(["contextmenu","click","mouseover","mouseout","mousemove","mousedown","mouseup","mouseleave","mouseenter","dblclick"],{createEventArgs:e=>d(e)}),l(["error"],{createEventArgs:e=>{return{message:(t=e).message,filename:t.filename,lineno:t.lineno,colno:t.colno,type:t.type};var t}}),l(["loadstart","timeout","abort","load","loadend","progress"],{createEventArgs:e=>{return{lengthComputable:(t=e).lengthComputable,loaded:t.loaded,total:t.total,type:t.type};var t}}),l(["touchcancel","touchend","touchmove","touchenter","touchleave","touchstart"],{createEventArgs:e=>{return{detail:(t=e).detail,touches:u(t.touches),targetTouches:u(t.targetTouches),changedTouches:u(t.changedTouches),ctrlKey:t.ctrlKey,shiftKey:t.shiftKey,altKey:t.altKey,metaKey:t.metaKey,type:t.type};var t}}),l(["gotpointercapture","lostpointercapture","pointercancel","pointerdown","pointerenter","pointerleave","pointermove","pointerout","pointerover","pointerup"],{createEventArgs:e=>{return{...d(t=e),pointerId:t.pointerId,width:t.width,height:t.height,pressure:t.pressure,tiltX:t.tiltX,tiltY:t.tiltY,pointerType:t.pointerType,isPrimary:t.isPrimary};var t}}),l(["wheel","mousewheel"],{createEventArgs:e=>{return{...d(t=e),deltaX:t.deltaX,deltaY:t.deltaY,deltaZ:t.deltaZ,deltaMode:t.deltaMode};var t}}),l(["cancel","close","toggle"],{createEventArgs:()=>({})});const f=["date","datetime-local","month","time","week"],m=new Map;let h,p,v=0;const b={async add(e,t,n){if(!n)throw new Error("initialParameters must be an object, even if empty.");const r="__bl-dynamic-root:"+(++v).toString();m.set(r,e);const o=await w().invokeMethodAsync("AddRootComponent",t,r),i=new y(o,p[t]);return await i.setParameters(n),i}};class g{invoke(e){return this._callback(e)}setCallback(t){this._selfJSObjectReference||(this._selfJSObjectReference=e.createJSObjectReference(this)),this._callback=t}getJSObjectReference(){return this._selfJSObjectReference}dispose(){this._selfJSObjectReference&&e.disposeJSObjectReference(this._selfJSObjectReference)}}class y{constructor(e,t){this._jsEventCallbackWrappers=new Map,this._componentId=e;for(const e of t)"eventcallback"===e.type&&this._jsEventCallbackWrappers.set(e.name.toLowerCase(),new g)}setParameters(e){const t={},n=Object.entries(e||{}),r=n.length;for(const[e,r]of n){const n=this._jsEventCallbackWrappers.get(e.toLowerCase());n&&r?(n.setCallback(r),t[e]=n.getJSObjectReference()):t[e]=r}return w().invokeMethodAsync("SetRootComponentParameters",this._componentId,r,t)}async dispose(){if(null!==this._componentId){await w().invokeMethodAsync("RemoveRootComponent",this._componentId),this._componentId=null;for(const e of this._jsEventCallbackWrappers.values())e.dispose()}}}function w(){if(!h)throw new Error("Dynamic root components have not been enabled in this application.");return h}const E=new Map,S=[],A=new Map;function C(e,t,n){return N(e,t.eventHandlerId,(()=>I(e).invokeMethodAsync("DispatchEventAsync",t,n)))}function I(e){const t=E.get(e);if(!t)throw new Error(`No interop methods are registered for renderer ${e}`);return t}let N=(e,t,n)=>n();const _=O(["abort","blur","cancel","canplay","canplaythrough","change","close","cuechange","durationchange","emptied","ended","error","focus","load","loadeddata","loadedmetadata","loadend","loadstart","mouseenter","mouseleave","pointerenter","pointerleave","pause","play","playing","progress","ratechange","reset","scroll","seeked","seeking","stalled","submit","suspend","timeupdate","toggle","unload","volumechange","waiting","DOMNodeInsertedIntoDocument","DOMNodeRemovedFromDocument"]),R={submit:!0},D=O(["click","dblclick","mousedown","mousemove","mouseup"]);class k{constructor(e){this.browserRendererId=e,this.afterClickCallbacks=[];const t=++k.nextEventDelegatorId;this.eventsCollectionKey=`_blazorEvents_${t}`,this.eventInfoStore=new F(this.onGlobalEvent.bind(this))}setListener(e,t,n,r){const o=this.getEventHandlerInfosForElement(e,!0),i=o.getHandler(t);if(i)this.eventInfoStore.update(i.eventHandlerId,n);else{const i={element:e,eventName:t,eventHandlerId:n,renderingComponentId:r};this.eventInfoStore.add(i),o.setHandler(t,i)}}getHandler(e){return this.eventInfoStore.get(e)}removeListener(e){const t=this.eventInfoStore.remove(e);if(t){const e=t.element,n=this.getEventHandlerInfosForElement(e,!1);n&&n.removeHandler(t.eventName)}}notifyAfterClick(e){this.afterClickCallbacks.push(e),this.eventInfoStore.addGlobalListener("click")}setStopPropagation(e,t,n){this.getEventHandlerInfosForElement(e,!0).stopPropagation(t,n)}setPreventDefault(e,t,n){this.getEventHandlerInfosForElement(e,!0).preventDefault(t,n)}onGlobalEvent(e){if(!(e.target instanceof Element))return;this.dispatchGlobalEventToAllElements(e.type,e);const t=(n=e.type,i.get(n));var n;t&&t.forEach((t=>this.dispatchGlobalEventToAllElements(t,e))),"click"===e.type&&this.afterClickCallbacks.forEach((t=>t(e)))}dispatchGlobalEventToAllElements(e,t){const n=t.composedPath();let o=n.shift(),i=null,s=!1;const c=Object.prototype.hasOwnProperty.call(_,e);let l=!1;for(;o;){const f=o,m=this.getEventHandlerInfosForElement(f,!1);if(m){const n=m.getHandler(e);if(n&&(u=f,d=t.type,!((u instanceof HTMLButtonElement||u instanceof HTMLInputElement||u instanceof HTMLTextAreaElement||u instanceof HTMLSelectElement)&&Object.prototype.hasOwnProperty.call(D,d)&&u.disabled))){if(!s){const n=a(e);i=(null==n?void 0:n.createEventArgs)?n.createEventArgs(t):{},s=!0}Object.prototype.hasOwnProperty.call(R,t.type)&&t.preventDefault(),C(this.browserRendererId,{eventHandlerId:n.eventHandlerId,eventName:e,eventFieldInfo:r.fromEvent(n.renderingComponentId,t)},i)}m.stopPropagation(e)&&(l=!0),m.preventDefault(e)&&t.preventDefault()}o=c||l?void 0:n.shift()}var u,d}getEventHandlerInfosForElement(e,t){return Object.prototype.hasOwnProperty.call(e,this.eventsCollectionKey)?e[this.eventsCollectionKey]:t?e[this.eventsCollectionKey]=new T:null}}k.nextEventDelegatorId=0;class F{constructor(e){this.globalListener=e,this.infosByEventHandlerId={},this.countByEventName={},s.push(this.handleEventNameAliasAdded.bind(this))}add(e){if(this.infosByEventHandlerId[e.eventHandlerId])throw new Error(`Event ${e.eventHandlerId} is already tracked`);this.infosByEventHandlerId[e.eventHandlerId]=e,this.addGlobalListener(e.eventName)}get(e){return this.infosByEventHandlerId[e]}addGlobalListener(e){if(e=c(e),Object.prototype.hasOwnProperty.call(this.countByEventName,e))this.countByEventName[e]++;else{this.countByEventName[e]=1;const t=Object.prototype.hasOwnProperty.call(_,e);document.addEventListener(e,this.globalListener,t)}}update(e,t){if(Object.prototype.hasOwnProperty.call(this.infosByEventHandlerId,t))throw new Error(`Event ${t} is already tracked`);const n=this.infosByEventHandlerId[e];delete this.infosByEventHandlerId[e],n.eventHandlerId=t,this.infosByEventHandlerId[t]=n}remove(e){const t=this.infosByEventHandlerId[e];if(t){delete this.infosByEventHandlerId[e];const n=c(t.eventName);0==--this.countByEventName[n]&&(delete this.countByEventName[n],document.removeEventListener(n,this.globalListener))}return t}handleEventNameAliasAdded(e,t){if(Object.prototype.hasOwnProperty.call(this.countByEventName,e)){const n=this.countByEventName[e];delete this.countByEventName[e],document.removeEventListener(e,this.globalListener),this.addGlobalListener(t),this.countByEventName[t]+=n-1}}}class T{constructor(){this.handlers={},this.preventDefaultFlags=null,this.stopPropagationFlags=null}getHandler(e){return Object.prototype.hasOwnProperty.call(this.handlers,e)?this.handlers[e]:null}setHandler(e,t){this.handlers[e]=t}removeHandler(e){delete this.handlers[e]}preventDefault(e,t){return void 0!==t&&(this.preventDefaultFlags=this.preventDefaultFlags||{},this.preventDefaultFlags[e]=t),!!this.preventDefaultFlags&&this.preventDefaultFlags[e]}stopPropagation(e,t){return void 0!==t&&(this.stopPropagationFlags=this.stopPropagationFlags||{},this.stopPropagationFlags[e]=t),!!this.stopPropagationFlags&&this.stopPropagationFlags[e]}}function O(e){const t={};return e.forEach((e=>{t[e]=!0})),t}const L=Symbol(),M=Symbol(),x=Symbol();function P(e,t){if(L in e)return e;const n=[];if(e.childNodes.length>0){if(!t)throw new Error("New logical elements must start empty, or allowExistingContents must be true");e.childNodes.forEach((t=>{const r=P(t,!0);r[M]=e,n.push(r)}))}return e[L]=n,e}function B(e){const t=U(e);for(;t.length;)H(e,0)}function J(e,t){const n=document.createComment("!");return j(n,e,t),n}function j(e,t,n){const r=e;let o=e;if(L in e){const t=G(r);if(t!==e){const n=new Range;n.setStartBefore(e),n.setEndAfter(t),o=n.extractContents()}}const i=$(r);if(i){const e=U(i),t=Array.prototype.indexOf.call(e,r);e.splice(t,1),delete r[M]}const s=U(t);if(n0;)H(n,0)}const r=n;r.parentNode.removeChild(r)}function $(e){return e[M]||null}function z(e,t){return U(e)[t]}function W(e){const t=X(e);return"http://www.w3.org/2000/svg"===t.namespaceURI&&"foreignObject"!==t.tagName}function U(e){return e[L]}function K(e){const t=U($(e));return t[Array.prototype.indexOf.call(t,e)+1]||null}function V(e,t){const n=U(e);t.forEach((e=>{e.moveRangeStart=n[e.fromSiblingIndex],e.moveRangeEnd=G(e.moveRangeStart)})),t.forEach((t=>{const r=document.createComment("marker");t.moveToBeforeMarker=r;const o=n[t.toSiblingIndex+1];o?o.parentNode.insertBefore(r,o):Y(r,e)})),t.forEach((e=>{const t=e.moveToBeforeMarker,n=t.parentNode,r=e.moveRangeStart,o=e.moveRangeEnd;let i=r;for(;i;){const e=i.nextSibling;if(n.insertBefore(i,t),i===o)break;i=e}n.removeChild(t)})),t.forEach((e=>{n[e.toSiblingIndex]=e.moveRangeStart}))}function X(e){if(e instanceof Element||e instanceof DocumentFragment)return e;if(e instanceof Comment)return e.parentNode;throw new Error("Not a valid logical element")}function Y(e,t){if(t instanceof Element||t instanceof DocumentFragment)t.appendChild(e);else{if(!(t instanceof Comment))throw new Error(`Cannot append node because the parent is not a valid logical element. Parent: ${t}`);{const n=K(t);n?n.parentNode.insertBefore(e,n):Y(e,$(t))}}}function G(e){if(e instanceof Element||e instanceof DocumentFragment)return e;const t=K(e);if(t)return t.previousSibling;{const t=$(e);return t instanceof Element||t instanceof DocumentFragment?t.lastChild:G(t)}}function q(e){return`_bl_${e}`}const Z="__internalId";e.attachReviver(((e,t)=>t&&"object"==typeof t&&Object.prototype.hasOwnProperty.call(t,Z)&&"string"==typeof t[Z]?function(e){const t=`[${q(e)}]`;return document.querySelector(t)}(t[Z]):t));const Q="_blazorDeferredValue";function ee(e){return"select-multiple"===e.type}function te(e,t){e.value=t||""}function ne(e,t){e instanceof HTMLSelectElement?ee(e)?function(e,t){t||(t=[]);for(let n=0;n{Ie()&&function(e,t){if(0!==e.button||function(e){return e.ctrlKey||e.shiftKey||e.altKey||e.metaKey}(e))return;if(e.defaultPrevented)return;const n=function(e){const t=!window._blazorDisableComposedPath&&e.composedPath&&e.composedPath();if(t){for(let e=0;e{const t=document.createElement("script");t.textContent=e.textContent,e.getAttributeNames().forEach((n=>{t.setAttribute(n,e.getAttribute(n))})),e.parentNode.replaceChild(t,e)})),oe.content));var s;let a=0;for(;i.firstChild;)j(i.firstChild,o,a++)}applyAttribute(e,t,n,r){const o=e.frameReader,i=o.attributeName(r),s=o.attributeEventHandlerId(r);if(s){const e=fe(i);return void this.eventDelegator.setListener(n,e,s,t)}const a=o.attributeValue(r);this.setOrRemoveAttributeOrProperty(n,i,a)}insertFrameRange(e,t,n,r,o,i,s){const a=r;for(let a=i;a{He(t,e)})},enableNavigationInterception:function(e){if(void 0!==he&&he!==e)throw new Error("Only one interactive runtime may enable navigation interception at a time.");he=e},setHasLocationChangingListeners:function(e,t){const n=ke.get(e);if(!n)throw new Error(`Renderer with ID '${e}' is not listening for navigation events`);n.hasLocationChangingEventListeners=t},endLocationChanging:function(e,t){Te&&e===De&&(Te(t),Te=null)},navigateTo:function(e,t){Me(e,t,!0)},refresh:function(e){!e&&Ee()?Se(location.href,!0):location.reload()},getBaseURI:()=>document.baseURI,getLocationHref:()=>location.href,scrollToElement:Le};function Le(e){const t=document.getElementById(e);return!!t&&(t.scrollIntoView(),!0)}function Me(e,t,n=!1){const r=Ae(e);!t.forceLoad&&we(r)?We()?xe(r,!1,t.replaceHistoryEntry,t.historyEntryState,n):Se(r,t.replaceHistoryEntry):function(e,t){if(location.href===e){const t=e+"?";history.replaceState(null,"",t),location.replace(e)}else t?location.replace(e):location.href=e}(e,t.replaceHistoryEntry)}async function xe(e,t,n,r=void 0,o=!1){if(Je(),function(e){const t=e.indexOf("#");return t>-1&&location.href.replace(location.hash,"")===e.substring(0,t)}(e))return void function(e,t,n){Pe(e,t,n);const r=e.indexOf("#");r!==e.length-1&&Le(e.substring(r+1))}(e,n,r);const i=ze();(o||!(null==i?void 0:i.hasLocationChangingEventListeners)||await je(e,r,t,i))&&(ge=!0,Pe(e,n,r),await He(t))}function Pe(e,t,n=void 0){t?history.replaceState({userState:n,_index:Re},"",e):(Re++,history.pushState({userState:n,_index:Re},"",e))}function Be(e){return new Promise((t=>{const n=Fe;Fe=()=>{Fe=n,t()},history.go(e)}))}function Je(){Te&&(Te(!1),Te=null)}function je(e,t,n,r){return new Promise((o=>{Je(),De++,Te=o,r.locationChanging(De,e,t,n)}))}async function He(e,t){const n=null!=t?t:location.href;await Promise.all(Array.from(ke,(async([t,r])=>{var o,i;i=t,E.has(i)&&await r.locationChanged(n,null===(o=history.state)||void 0===o?void 0:o.userState,e)})))}async function $e(e){var t,n;Fe&&We()&&await Fe(e),Re=null!==(n=null===(t=history.state)||void 0===t?void 0:t._index)&&void 0!==n?n:0}function ze(){const e=Ne();if(void 0!==e)return ke.get(e)}function We(){return Ie()||!Ee()}const Ue={focus:function(e,t){if(e instanceof HTMLElement)e.focus({preventScroll:t});else{if(!(e instanceof SVGElement))throw new Error("Unable to focus an invalid element.");if(!e.hasAttribute("tabindex"))throw new Error("Unable to focus an SVG element that does not have a tabindex.");e.focus({preventScroll:t})}},focusBySelector:function(e,t){const n=document.querySelector(e);n&&(n.hasAttribute("tabindex")||(n.tabIndex=-1),n.focus({preventScroll:!0}))}},Ke={init:function(e,t,n,r=50){const o=Xe(t);(o||document.documentElement).style.overflowAnchor="none";const i=document.createRange();f(n.parentElement)&&(t.style.display="table-row",n.style.display="table-row");const s=new IntersectionObserver((function(r){r.forEach((r=>{var o;if(!r.isIntersecting)return;i.setStartAfter(t),i.setEndBefore(n);const s=i.getBoundingClientRect().height,a=null===(o=r.rootBounds)||void 0===o?void 0:o.height;r.target===t?e.invokeMethodAsync("OnSpacerBeforeVisible",r.intersectionRect.top-r.boundingClientRect.top,s,a):r.target===n&&n.offsetHeight>0&&e.invokeMethodAsync("OnSpacerAfterVisible",r.boundingClientRect.bottom-r.intersectionRect.bottom,s,a)}))}),{root:o,rootMargin:`${r}px`});s.observe(t),s.observe(n);const a=d(t),c=d(n),{observersByDotNetObjectId:l,id:u}=Ye(e);function d(e){const t={attributes:!0},n=new MutationObserver(((n,r)=>{f(e.parentElement)&&(r.disconnect(),e.style.display="table-row",r.observe(e,t)),s.unobserve(e),s.observe(e)}));return n.observe(e,t),n}function f(e){return null!==e&&(e instanceof HTMLTableElement&&""===e.style.display||"table"===e.style.display||e instanceof HTMLTableSectionElement&&""===e.style.display||"table-row-group"===e.style.display)}l[u]={intersectionObserver:s,mutationObserverBefore:a,mutationObserverAfter:c}},dispose:function(e){const{observersByDotNetObjectId:t,id:n}=Ye(e),r=t[n];r&&(r.intersectionObserver.disconnect(),r.mutationObserverBefore.disconnect(),r.mutationObserverAfter.disconnect(),e.dispose(),delete t[n])}},Ve=Symbol();function Xe(e){return e&&e!==document.body&&e!==document.documentElement?"visible"!==getComputedStyle(e).overflowY?e:Xe(e.parentElement):null}function Ye(e){var t;const n=e._callDispatcher,r=e._id;return null!==(t=n[Ve])&&void 0!==t||(n[Ve]={}),{observersByDotNetObjectId:n[Ve],id:r}}const Ge={getAndRemoveExistingTitle:function(){var e;const t=document.head?document.head.getElementsByTagName("title"):[];if(0===t.length)return null;let n=null;for(let r=t.length-1;r>=0;r--){const o=t[r],i=o.previousSibling;i instanceof Comment&&null!==$(i)||(null===n&&(n=o.textContent),null===(e=o.parentNode)||void 0===e||e.removeChild(o))}return n}},qe={init:function(e,t){t._blazorInputFileNextFileId=0,t.addEventListener("click",(function(){t.value=""})),t.addEventListener("change",(function(){t._blazorFilesById={};const n=Array.prototype.map.call(t.files,(function(e){const n={id:++t._blazorInputFileNextFileId,lastModified:new Date(e.lastModified).toISOString(),name:e.name,size:e.size,contentType:e.type,readPromise:void 0,arrayBuffer:void 0,blob:e};return t._blazorFilesById[n.id]=n,n}));e.invokeMethodAsync("NotifyChange",n)}))},toImageFile:async function(e,t,n,r,o){const i=Ze(e,t),s=await new Promise((function(e){const t=new Image;t.onload=function(){URL.revokeObjectURL(t.src),e(t)},t.onerror=function(){t.onerror=null,URL.revokeObjectURL(t.src)},t.src=URL.createObjectURL(i.blob)})),a=await new Promise((function(e){var t;const i=Math.min(1,r/s.width),a=Math.min(1,o/s.height),c=Math.min(i,a),l=document.createElement("canvas");l.width=Math.round(s.width*c),l.height=Math.round(s.height*c),null===(t=l.getContext("2d"))||void 0===t||t.drawImage(s,0,0,l.width,l.height),l.toBlob(e,n)})),c={id:++e._blazorInputFileNextFileId,lastModified:i.lastModified,name:i.name,size:(null==a?void 0:a.size)||0,contentType:n,blob:a||i.blob};return e._blazorFilesById[c.id]=c,c},readFileData:async function(e,t){return Ze(e,t).blob}};function Ze(e,t){const n=e._blazorFilesById[t];if(!n)throw new Error(`There is no file with ID ${t}. The file list may have changed. See https://aka.ms/aspnet/blazor-input-file-multiple-selections.`);return n}const Qe=new Set,et={enableNavigationPrompt:function(e){0===Qe.size&&window.addEventListener("beforeunload",tt),Qe.add(e)},disableNavigationPrompt:function(e){Qe.delete(e),0===Qe.size&&window.removeEventListener("beforeunload",tt)}};function tt(e){e.preventDefault(),e.returnValue=!0}const nt=new Map,rt={navigateTo:function(e,t,n=!1){Me(e,t instanceof Object?t:{forceLoad:t,replaceHistoryEntry:n})},registerCustomEventType:function(e,t){if(!t)throw new Error("The options parameter is required.");if(o.has(e))throw new Error(`The event '${e}' is already registered.`);if(t.browserEventName){const n=i.get(t.browserEventName);n?n.push(e):i.set(t.browserEventName,[e]),s.forEach((n=>n(e,t.browserEventName)))}o.set(e,t)},rootComponents:b,runtime:{},_internal:{navigationManager:Oe,domWrapper:Ue,Virtualize:Ke,PageTitle:Ge,InputFile:qe,NavigationLock:et,getJSDataStreamChunk:async function(e,t,n){return e instanceof Blob?await async function(e,t,n){const r=e.slice(t,t+n),o=await r.arrayBuffer();return new Uint8Array(o)}(e,t,n):function(e,t,n){return new Uint8Array(e.buffer,e.byteOffset+t,n)}(e,t,n)},attachWebRendererInterop:function(t,n,r,o){var i,s;if(E.has(t))throw new Error(`Interop methods are already registered for renderer ${t}`);E.set(t,n),r&&o&&Object.keys(r).length>0&&function(t,n,r){if(h)throw new Error("Dynamic root components have already been enabled.");h=t,p=n;for(const[t,o]of Object.entries(r)){const r=e.findJSFunction(t,0);for(const e of o)r(e,n[e])}}(I(t),r,o),null===(s=null===(i=A.get(t))||void 0===i?void 0:i[0])||void 0===s||s.call(i),function(e){for(const t of S)t(e)}(t)}}};var ot,it;window.Blazor=rt;const st=navigator,at=st.userAgentData&&st.userAgentData.brands,ct=at&&at.length>0?at.some((e=>"Google Chrome"===e.brand||"Microsoft Edge"===e.brand||"Chromium"===e.brand)):window.chrome,lt=null!==(it=null===(ot=st.userAgentData)||void 0===ot?void 0:ot.platform)&&void 0!==it?it:navigator.platform;function ut(e){return 0!==e.debugLevel&&(ct||navigator.userAgent.includes("Firefox"))}let dt=!1;function ft(){const e=document.querySelector("#blazor-error-ui");e&&(e.style.display="block"),dt||(dt=!0,document.querySelectorAll("#blazor-error-ui .reload").forEach((e=>{e.onclick=function(e){location.reload(),e.preventDefault()}})),document.querySelectorAll("#blazor-error-ui .dismiss").forEach((e=>{e.onclick=function(e){const t=document.querySelector("#blazor-error-ui");t&&(t.style.display="none"),e.preventDefault()}})))}var mt,ht;!function(e){e[e.Default=0]="Default",e[e.Server=1]="Server",e[e.WebAssembly=2]="WebAssembly",e[e.WebView=3]="WebView"}(mt||(mt={})),function(e){e[e.Trace=0]="Trace",e[e.Debug=1]="Debug",e[e.Information=2]="Information",e[e.Warning=3]="Warning",e[e.Error=4]="Error",e[e.Critical=5]="Critical",e[e.None=6]="None"}(ht||(ht={}));class pt{constructor(e=!0,t,n,r=0){this.singleRuntime=e,this.logger=t,this.webRendererId=r,this.afterStartedCallbacks=[],n&&this.afterStartedCallbacks.push(...n)}async importInitializersAsync(e,t){await Promise.all(e.map((e=>async function(e,n){const r=function(e){const t=document.baseURI;return t.endsWith("/")?`${t}${e}`:`${t}/${e}`}(n),o=await import(r);if(void 0!==o){if(e.singleRuntime){const{beforeStart:n,afterStarted:r,beforeWebAssemblyStart:s,afterWebAssemblyStarted:a,beforeServerStart:c,afterServerStarted:l}=o;let u=n;e.webRendererId===mt.Server&&c&&(u=c),e.webRendererId===mt.WebAssembly&&s&&(u=s);let d=r;return e.webRendererId===mt.Server&&l&&(d=l),e.webRendererId===mt.WebAssembly&&a&&(d=a),i(e,u,d,t)}return function(e,t,n){var o;const s=n[0],{beforeStart:a,afterStarted:c,beforeWebStart:l,afterWebStarted:u,beforeWebAssemblyStart:d,afterWebAssemblyStarted:f,beforeServerStart:m,afterServerStarted:h}=t,p=!(l||u||d||f||m||h||!a&&!c),v=p&&s.enableClassicInitializers;if(p&&!s.enableClassicInitializers)null===(o=e.logger)||void 0===o||o.log(ht.Warning,`Initializer '${r}' will be ignored because multiple runtimes are available. use 'before(web|webAssembly|server)Start' and 'after(web|webAssembly|server)Started?' instead.)`);else if(v)return i(e,a,c,n);if(function(e){e.webAssembly?e.webAssembly.initializers||(e.webAssembly.initializers={beforeStart:[],afterStarted:[]}):e.webAssembly={initializers:{beforeStart:[],afterStarted:[]}},e.circuit?e.circuit.initializers||(e.circuit.initializers={beforeStart:[],afterStarted:[]}):e.circuit={initializers:{beforeStart:[],afterStarted:[]}}}(s),d&&s.webAssembly.initializers.beforeStart.push(d),f&&s.webAssembly.initializers.afterStarted.push(f),m&&s.circuit.initializers.beforeStart.push(m),h&&s.circuit.initializers.afterStarted.push(h),u&&e.afterStartedCallbacks.push(u),l)return l(s)}(e,o,t)}function i(e,t,n,r){if(n&&e.afterStartedCallbacks.push(n),t)return t(...r)}}(this,e))))}async invokeAfterStartedCallbacks(e){const t=function(e){var t;return null===(t=A.get(e))||void 0===t?void 0:t[1]}(this.webRendererId);t&&await t,await Promise.all(this.afterStartedCallbacks.map((t=>t(e))))}}let vt,bt,gt,yt,wt,Et,St;const At=Math.pow(2,32),Ct=Math.pow(2,21)-1;let It=null;function Nt(e){return bt.getI32(e)}const _t={load:function(e,t){return async function(e,t){const{dotnet:n}=await async function(e){if("undefined"==typeof WebAssembly||!WebAssembly.validate)throw new Error("This browser does not support WebAssembly.");let t="_framework/dotnet.js";if(e.loadBootResource){const n="dotnetjs",r=e.loadBootResource(n,"dotnet.js",t,"","js-module-dotnet");if("string"==typeof r)t=r;else if(r)throw new Error(`For a ${n} resource, custom loaders must supply a URI string.`)}const n=new URL(t,document.baseURI).toString();return await import(n)}(e),r=function(e,t){const n={maxParallelDownloads:1e6,enableDownloadRetry:!1,applicationEnvironment:e.environment},r={...window.Module||{},onConfigLoaded:async n=>{n.environmentVariables||(n.environmentVariables={}),"sharded"===n.globalizationMode&&(n.environmentVariables.__BLAZOR_SHARDED_ICU="1"),rt._internal.getApplicationEnvironment=()=>n.applicationEnvironment,null==t||t(n),St=await async function(e,t){var n,r,o;if(e.initializers)return await Promise.all(e.initializers.beforeStart.map((t=>t(e)))),new pt(!1,void 0,e.initializers.afterStarted,mt.WebAssembly);{const i=[e,null!==(r=null===(n=t.resources)||void 0===n?void 0:n.extensions)&&void 0!==r?r:{}],s=new pt(!0,void 0,void 0,mt.WebAssembly),a=Object.keys((null===(o=null==t?void 0:t.resources)||void 0===o?void 0:o.libraryInitializers)||{});return await s.importInitializersAsync(a,i),s}}(e,n)},onDownloadResourceProgress:Rt,config:n,disableDotnet6Compatibility:!1,out:kt,err:Ft};return r}(e,t);e.applicationCulture&&n.withApplicationCulture(e.applicationCulture),e.environment&&n.withApplicationEnvironment(e.environment),e.loadBootResource&&n.withResourceLoader(e.loadBootResource),n.withModuleConfig(r),e.configureRuntime&&e.configureRuntime(n),Et=await n.create()}(e,t)},start:function(){return async function(){if(!Et)throw new Error("The runtime must be loaded it gets configured.");const{MONO:t,BINDING:n,Module:r,setModuleImports:o,INTERNAL:i,getConfig:s,invokeLibraryInitializers:a}=Et;gt=r,vt=n,bt=t,wt=i,function(e){const t=lt.match(/^Mac/i)?"Cmd":"Alt";ut(e)&&console.info(`Debugging hotkey: Shift+${t}+D (when application has focus)`),document.addEventListener("keydown",(t=>{t.shiftKey&&(t.metaKey||t.altKey)&&"KeyD"===t.code&&(ut(e)?navigator.userAgent.includes("Firefox")?async function(){const e=await fetch(`_framework/debug?url=${encodeURIComponent(location.href)}&isFirefox=true`);200!==e.status&&console.warn(await e.text())}():ct?function(){const e=document.createElement("a");e.href=`_framework/debug?url=${encodeURIComponent(location.href)}`,e.target="_blank",e.rel="noopener noreferrer",e.click()}():console.error("Currently, only Microsoft Edge (80+), Google Chrome, or Chromium, are supported for debugging."):console.error("Cannot start debugging, because the application was not compiled with debugging enabled."))}))}(s()),rt.runtime=Et,rt._internal.dotNetCriticalError=Ft,o("blazor-internal",{Blazor:{_internal:rt._internal}});const c=await Et.getAssemblyExports("Microsoft.AspNetCore.Components.WebAssembly");return Object.assign(rt._internal,{dotNetExports:{...c.Microsoft.AspNetCore.Components.WebAssembly.Services.DefaultWebAssemblyJSRuntime}}),yt=e.attachDispatcher({beginInvokeDotNetFromJS:(e,t,n,r,o)=>{if(Ot(),!r&&!t)throw new Error("Either assemblyName or dotNetObjectId must have a non null value.");const i=r?r.toString():t;rt._internal.dotNetExports.BeginInvokeDotNet(e?e.toString():null,i,n,o)},endInvokeJSFromDotNet:(e,t,n)=>{rt._internal.dotNetExports.EndInvokeJS(n)},sendByteArray:(e,t)=>{rt._internal.dotNetExports.ReceiveByteArrayFromJS(e,t)},invokeDotNetFromJS:(e,t,n,r)=>(Ot(),rt._internal.dotNetExports.InvokeDotNet(e||null,t,null!=n?n:0,r))}),{invokeLibraryInitializers:a}}()},callEntryPoint:async function(){try{await Et.runMain(Et.getConfig().mainAssemblyName,[])}catch(e){console.error(e),ft()}},toUint8Array:function(e){const t=Tt(e),n=Nt(t),r=new Uint8Array(n);return r.set(gt.HEAPU8.subarray(t+4,t+4+n)),r},getArrayLength:function(e){return Nt(Tt(e))},getArrayEntryPtr:function(e,t,n){return Tt(e)+4+t*n},getObjectFieldsBaseAddress:function(e){return e+8},readInt16Field:function(e,t){return n=e+(t||0),bt.getI16(n);var n},readInt32Field:function(e,t){return Nt(e+(t||0))},readUint64Field:function(e,t){return function(e){const t=e>>2,n=gt.HEAPU32[t+1];if(n>Ct)throw new Error(`Cannot read uint64 with high order part ${n}, because the result would exceed Number.MAX_SAFE_INTEGER.`);return n*At+gt.HEAPU32[t]}(e+(t||0))},readFloatField:function(e,t){return n=e+(t||0),bt.getF32(n);var n},readObjectField:function(e,t){return Nt(e+(t||0))},readStringField:function(e,t,n){const r=Nt(e+(t||0));if(0===r)return null;if(n){const e=vt.unbox_mono_obj(r);return"boolean"==typeof e?e?"":null:e}return vt.conv_string(r)},readStructField:function(e,t){return e+(t||0)},beginHeapLock:function(){return Ot(),It=Lt.create(),It},invokeWhenHeapUnlocked:function(e){It?It.enqueuePostReleaseAction(e):e()}};function Rt(e,t){const n=e/t*100;document.documentElement.style.setProperty("--blazor-load-percentage",`${n}%`),document.documentElement.style.setProperty("--blazor-load-percentage-text",`"${Math.floor(n)}%"`)}const Dt=["DEBUGGING ENABLED"],kt=e=>Dt.indexOf(e)<0&&console.log(e),Ft=e=>{console.error(e||"(null)"),ft()};function Tt(e){return e+12}function Ot(){if(It)throw new Error("Assertion failed - heap is currently locked")}class Lt{enqueuePostReleaseAction(e){this.postReleaseActions||(this.postReleaseActions=[]),this.postReleaseActions.push(e)}release(){var e;if(It!==this)throw new Error("Trying to release a lock which isn't current");for(wt.mono_wasm_gc_unlock(),It=null;null===(e=this.postReleaseActions)||void 0===e?void 0:e.length;)this.postReleaseActions.shift()(),Ot()}static create(){return wt.mono_wasm_gc_lock(),new Lt}}let Mt;class xt{constructor(e){this.batchAddress=e,this.arrayRangeReader=Pt,this.arrayBuilderSegmentReader=Bt,this.diffReader=Jt,this.editReader=jt,this.frameReader=Ht}updatedComponents(){return Mt.readStructField(this.batchAddress,0)}referenceFrames(){return Mt.readStructField(this.batchAddress,Pt.structLength)}disposedComponentIds(){return Mt.readStructField(this.batchAddress,2*Pt.structLength)}disposedEventHandlerIds(){return Mt.readStructField(this.batchAddress,3*Pt.structLength)}updatedComponentsEntry(e,t){return $t(e,t,Jt.structLength)}referenceFramesEntry(e,t){return $t(e,t,Ht.structLength)}disposedComponentIdsEntry(e,t){const n=$t(e,t,4);return Mt.readInt32Field(n)}disposedEventHandlerIdsEntry(e,t){const n=$t(e,t,8);return Mt.readUint64Field(n)}}const Pt={structLength:8,values:e=>Mt.readObjectField(e,0),count:e=>Mt.readInt32Field(e,4)},Bt={structLength:12,values:e=>{const t=Mt.readObjectField(e,0),n=Mt.getObjectFieldsBaseAddress(t);return Mt.readObjectField(n,0)},offset:e=>Mt.readInt32Field(e,4),count:e=>Mt.readInt32Field(e,8)},Jt={structLength:4+Bt.structLength,componentId:e=>Mt.readInt32Field(e,0),edits:e=>Mt.readStructField(e,4),editsEntry:(e,t)=>$t(e,t,jt.structLength)},jt={structLength:20,editType:e=>Mt.readInt32Field(e,0),siblingIndex:e=>Mt.readInt32Field(e,4),newTreeIndex:e=>Mt.readInt32Field(e,8),moveToSiblingIndex:e=>Mt.readInt32Field(e,8),removedAttributeName:e=>Mt.readStringField(e,16)},Ht={structLength:36,frameType:e=>Mt.readInt16Field(e,4),subtreeLength:e=>Mt.readInt32Field(e,8),elementReferenceCaptureId:e=>Mt.readStringField(e,16),componentId:e=>Mt.readInt32Field(e,12),elementName:e=>Mt.readStringField(e,16),textContent:e=>Mt.readStringField(e,16),markupContent:e=>Mt.readStringField(e,16),attributeName:e=>Mt.readStringField(e,16),attributeValue:e=>Mt.readStringField(e,24,!0),attributeEventHandlerId:e=>Mt.readUint64Field(e,8)};function $t(e,t,n){return Mt.getArrayEntryPtr(e,t,n)}const zt=/^\s*Blazor-WebAssembly-Component-State:(?[a-zA-Z0-9+/=]+)$/;function Wt(e,t,n="state"){var r;if(e.nodeType===Node.COMMENT_NODE){const o=e.textContent||"",i=t.exec(o),s=i&&i.groups&&i.groups[n];return s&&(null===(r=e.parentNode)||void 0===r||r.removeChild(e)),s}if(!e.hasChildNodes())return;const o=e.childNodes;for(let e=0;e.*)$/);function Vt(e,t){const n=e.currentElement;var r,o,i;if(n&&n.nodeType===Node.COMMENT_NODE&&n.textContent){const s=Kt.exec(n.textContent),a=s&&s.groups&&s.groups.descriptor;if(!a)return;!function(e){if(e.parentNode instanceof Document)throw new Error("Root components cannot be marked as interactive. The element must be rendered statically so that scripts are not evaluated multiple times.")}(n);try{const s=function(e){const t=JSON.parse(e),{type:n}=t;if("server"!==n&&"webassembly"!==n&&"auto"!==n)throw new Error(`Invalid component type '${n}'.`);return t}(a),c=function(e,t,n){const{prerenderId:r}=e;if(r){for(;n.next()&&n.currentElement;){const e=n.currentElement;if(e.nodeType!==Node.COMMENT_NODE)continue;if(!e.textContent)continue;const t=Kt.exec(e.textContent),o=t&&t[1];if(o)return en(o,r),e}throw new Error(`Could not find an end component comment for '${t}'.`)}}(s,n,e);if(t!==s.type)return;switch(s.type){case"webassembly":return o=n,i=c,Qt(r=s),{...r,uniqueId:qt++,start:o,end:i};case"server":return function(e,t,n){return Zt(e),{...e,uniqueId:qt++,start:t,end:n}}(s,n,c);case"auto":return function(e,t,n){return Zt(e),Qt(e),{...e,uniqueId:qt++,start:t,end:n}}(s,n,c)}}catch(e){throw new Error(`Found malformed component comment at ${n.textContent}`)}}}let Xt,Yt,Gt,qt=0;function Zt(e){const{descriptor:t,sequence:n}=e;if(!t)throw new Error("descriptor must be defined when using a descriptor.");if(void 0===n)throw new Error("sequence must be defined when using a descriptor.");if(!Number.isInteger(n))throw new Error(`Error parsing the sequence '${n}' for component '${JSON.stringify(e)}'`)}function Qt(e){const{assembly:t,typeName:n}=e;if(!t)throw new Error("assembly must be defined when using a descriptor.");if(!n)throw new Error("typeName must be defined when using a descriptor.");e.parameterDefinitions=e.parameterDefinitions&&atob(e.parameterDefinitions),e.parameterValues=e.parameterValues&&atob(e.parameterValues)}function en(e,t){const n=JSON.parse(e);if(1!==Object.keys(n).length)throw new Error(`Invalid end of component comment: '${e}'`);const r=n.prerenderId;if(!r)throw new Error(`End of component comment must have a value for the prerendered property: '${e}'`);if(r!==t)throw new Error(`End of component comment prerendered property must match the start comment prerender id: '${t}', '${r}'`)}class tn{constructor(e){this.childNodes=e,this.currentIndex=-1,this.length=e.length}next(){return this.currentIndex++,this.currentIndex{on=e}));const un=new Promise((e=>{sn=e}));let dn;function fn(e){if(Xt)throw new Error("WebAssembly options have already been configured.");!async function(e){const t=await e;Xt=t,dn()}(e)}function mn(e){if(void 0!==rn)throw new Error("Blazor WebAssembly has already started.");return rn=new Promise(hn.bind(null,e)),rn}async function hn(e,t,n){(function(){if(window.parent!==window&&!window.opener&&window.frameElement){const e=window.sessionStorage&&window.sessionStorage["Microsoft.AspNetCore.Components.WebAssembly.Authentication.CachedAuthSettings"],t=e&&JSON.parse(e);return t&&t.redirect_uri&&location.href.startsWith(t.redirect_uri)}return!1})()&&await new Promise((()=>{}));const r=pn();!function(e){const t=N;N=(e,n,r)=>{((e,t,n)=>{const r=function(e){return me[e]}(e);(null==r?void 0:r.eventDelegator.getHandler(t))&&_t.invokeWhenHeapUnlocked(n)})(e,n,(()=>t(e,n,r)))}}(),rt._internal.applyHotReload=(e,t,n,r)=>{yt.invokeDotNetStaticMethod("Microsoft.AspNetCore.Components.WebAssembly","ApplyHotReloadDelta",e,t,n,r)},rt._internal.getApplyUpdateCapabilities=()=>yt.invokeDotNetStaticMethod("Microsoft.AspNetCore.Components.WebAssembly","GetApplyUpdateCapabilities"),rt._internal.invokeJSFromDotNet=vn,rt._internal.invokeJSJson=bn,rt._internal.endInvokeDotNetFromJS=gn,rt._internal.receiveWebAssemblyDotNetDataStream=yn,rt._internal.receiveByteArray=wn;const o=(Mt=_t,Mt);rt.platform=o,rt._internal.renderBatch=(e,t)=>{const n=_t.beginHeapLock();try{!function(e,t){const n=me[e];if(!n)throw new Error(`There is no browser renderer with ID ${e}.`);const r=t.arrayRangeReader,o=t.updatedComponents(),i=r.values(o),s=r.count(o),a=t.referenceFrames(),c=r.values(a),l=t.diffReader;for(let e=0;e{await yt.invokeDotNetStaticMethodAsync("Microsoft.AspNetCore.Components.WebAssembly","NotifyLocationChanged",e,t,n)}),(async(e,t,n,r)=>{const o=await yt.invokeDotNetStaticMethodAsync("Microsoft.AspNetCore.Components.WebAssembly","NotifyLocationChangingAsync",t,n,r);rt._internal.navigationManager.endLocationChanging(e,o)}));const i=new nn(e);let s;rt._internal.registeredComponents={getRegisteredComponentsCount:()=>i.getCount(),getAssembly:e=>i.getAssembly(e),getTypeName:e=>i.getTypeName(e),getParameterDefinitions:e=>i.getParameterDefinitions(e)||"",getParameterValues:e=>i.getParameterValues(e)||""},rt._internal.getPersistedState=()=>Wt(document,zt)||"",rt._internal.getInitialComponentsUpdate=()=>un,rt._internal.updateRootComponents=e=>{var t;return null===(t=rt._internal.dotNetExports)||void 0===t?void 0:t.UpdateRootComponentsCore(e)},rt._internal.endUpdateRootComponents=t=>{var n;return null===(n=e.onAfterUpdateRootComponents)||void 0===n?void 0:n.call(e,t)},rt._internal.attachRootComponentToElement=(e,t,n)=>{const r=i.resolveRegisteredElement(e);r?ye(n,r,t,!1):function(e,t,n){const r="::before";let o=!1;if(e.endsWith("::after"))e=e.slice(0,-7),o=!0;else if(e.endsWith(r))throw new Error(`The '${r}' selector is not supported.`);const i=function(e){const t=m.get(e);if(t)return m.delete(e),t}(e)||document.querySelector(e);if(!i)throw new Error(`Could not find any element matching selector '${e}'.`);ye(n,P(i,!0),t,o)}(e,t,n)};try{await r,s=await o.start()}catch(e){throw new Error(`Failed to start platform. Reason: ${e}`)}o.callEntryPoint(),St.invokeAfterStartedCallbacks(rt),cn=!0,t()}function pn(){return null!=Gt||(Gt=(async()=>{await Yt;const e=null!=Xt?Xt:{},t=null==Xt?void 0:Xt.configureRuntime;e.configureRuntime=e=>{null==t||t(e),ln&&e.withEnvironmentVariable("__BLAZOR_WEBASSEMBLY_WAIT_FOR_ROOT_COMPONENTS","true")},await _t.load(e,on),an=!0})()),Gt}function vn(t,n,r,o){const i=_t.readStringField(t,0),s=_t.readInt32Field(t,4),a=_t.readStringField(t,8),c=_t.readUint64Field(t,20);if(null!==a){const e=_t.readUint64Field(t,12);if(0!==e)return yt.beginInvokeJSFromDotNet(e,i,a,s,c),0;{const e=yt.invokeJSFromDotNet(i,a,s,c);return null===e?0:vt.js_string_to_mono_string(e)}}{const t=e.findJSFunction(i,c).call(null,n,r,o);switch(s){case e.JSCallResultType.Default:return t;case e.JSCallResultType.JSObjectReference:return e.createJSObjectReference(t).__jsObjectId;case e.JSCallResultType.JSStreamReference:{const n=e.createJSStreamReference(t),r=JSON.stringify(n);return vt.js_string_to_mono_string(r)}case e.JSCallResultType.JSVoidResult:return null;default:throw new Error(`Invalid JS call result type '${s}'.`)}}}function bn(e,t,n,r,o){return 0!==o?(yt.beginInvokeJSFromDotNet(o,e,r,n,t),null):yt.invokeJSFromDotNet(e,r,n,t)}function gn(e,t,n){yt.endInvokeDotNetFromJS(e,t,n)}function yn(e,t,n,r){!function(e,t,n,r,o){let i=nt.get(t);if(!i){const n=new ReadableStream({start(e){nt.set(t,e),i=e}});e.supplyDotNetStream(t,n)}o?(i.error(o),nt.delete(t)):0===r?(i.close(),nt.delete(t)):i.enqueue(n.length===r?n:n.subarray(0,r))}(yt,e,t,n,r)}function wn(e,t){yt.receiveByteArray(e,t)}Yt=new Promise((e=>{dn=e}));class En{constructor(e){this.initialComponents=e}resolveRootComponent(e){return this.initialComponents[e]}}class Sn{constructor(){this._eventListeners=new Map}static create(e){const t=new Sn;return e.addEventListener=t.addEventListener.bind(t),e.removeEventListener=t.removeEventListener.bind(t),t}addEventListener(e,t){let n=this._eventListeners.get(e);n||(n=new Set,this._eventListeners.set(e,n)),n.add(t)}removeEventListener(e,t){var n;null===(n=this._eventListeners.get(e))||void 0===n||n.delete(t)}dispatchEvent(e,t){const n=this._eventListeners.get(e);if(!n)return;const r={...t,type:e};for(const e of n)e(r)}}let An=!1;async function Cn(e){if(An)throw new Error("Blazor has already started.");An=!0,fn(Promise.resolve(e||{})),Sn.create(rt);const t=Ut(document,"webassembly"),n=new En(t);await mn(n)}rt.start=Cn,window.DotNet=e,document&&document.currentScript&&"false"!==document.currentScript.getAttribute("autostart")&&Cn().catch((e=>{void 0!==gt&>.err?gt.err(e):console.error(e)}))})(); - /*! For license information please see AuthenticationService.js.LICENSE.txt */ -var t,e;t={671:function(t){var e;e=function(){return function(t){var e={};function r(n){if(e[n])return e[n].exports;var i=e[n]={i:n,l:!1,exports:{}};return t[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=t,r.c=e,r.d=function(t,e,n){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},r.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.t=function(t,e){if(1&e&&(t=r(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)r.d(n,i,function(e){return t[e]}.bind(null,i));return n},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,"a",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p="",r(r.s=22)}([function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(t,e){for(var r=0;r=4){for(var t=arguments.length,e=Array(t),r=0;r=3){for(var t=arguments.length,e=Array(t),r=0;r=2){for(var t=arguments.length,e=Array(t),r=0;r=1){for(var t=arguments.length,e=Array(t),r=0;r1&&void 0!==arguments[1]?arguments[1]:o.JsonService;if(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),!e)throw i.Log.error("MetadataService: No settings passed to MetadataService"),new Error("settings");this._settings=e,this._jsonService=new r(["application/jwk-set+json"])}return t.prototype.resetSigningKeys=function(){this._settings=this._settings||{},this._settings.signingKeys=void 0},t.prototype.getMetadata=function(){var t=this;return this._settings.metadata?(i.Log.debug("MetadataService.getMetadata: Returning metadata from settings"),Promise.resolve(this._settings.metadata)):this.metadataUrl?(i.Log.debug("MetadataService.getMetadata: getting metadata from",this.metadataUrl),this._jsonService.getJson(this.metadataUrl).then((function(e){i.Log.debug("MetadataService.getMetadata: json received");var r=t._settings.metadataSeed||{};return t._settings.metadata=Object.assign({},r,e),t._settings.metadata}))):(i.Log.error("MetadataService.getMetadata: No authority or metadataUrl configured on settings"),Promise.reject(new Error("No authority or metadataUrl configured on settings")))},t.prototype.getIssuer=function(){return this._getMetadataProperty("issuer")},t.prototype.getAuthorizationEndpoint=function(){return this._getMetadataProperty("authorization_endpoint")},t.prototype.getUserInfoEndpoint=function(){return this._getMetadataProperty("userinfo_endpoint")},t.prototype.getTokenEndpoint=function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return this._getMetadataProperty("token_endpoint",t)},t.prototype.getCheckSessionIframe=function(){return this._getMetadataProperty("check_session_iframe",!0)},t.prototype.getEndSessionEndpoint=function(){return this._getMetadataProperty("end_session_endpoint",!0)},t.prototype.getRevocationEndpoint=function(){return this._getMetadataProperty("revocation_endpoint",!0)},t.prototype.getKeysEndpoint=function(){return this._getMetadataProperty("jwks_uri",!0)},t.prototype._getMetadataProperty=function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return i.Log.debug("MetadataService.getMetadataProperty for: "+t),this.getMetadata().then((function(r){if(i.Log.debug("MetadataService.getMetadataProperty: metadata recieved"),void 0===r[t]){if(!0===e)return void i.Log.warn("MetadataService.getMetadataProperty: Metadata does not contain optional property "+t);throw i.Log.error("MetadataService.getMetadataProperty: Metadata does not contain property "+t),new Error("Metadata does not contain property "+t)}return r[t]}))},t.prototype.getSigningKeys=function(){var t=this;return this._settings.signingKeys?(i.Log.debug("MetadataService.getSigningKeys: Returning signingKeys from settings"),Promise.resolve(this._settings.signingKeys)):this._getMetadataProperty("jwks_uri").then((function(e){return i.Log.debug("MetadataService.getSigningKeys: jwks_uri received",e),t._jsonService.getJson(e).then((function(e){if(i.Log.debug("MetadataService.getSigningKeys: key set received",e),!e.keys)throw i.Log.error("MetadataService.getSigningKeys: Missing keys on keyset"),new Error("Missing keys on keyset");return t._settings.signingKeys=e.keys,t._settings.signingKeys}))}))},n(t,[{key:"metadataUrl",get:function(){return this._metadataUrl||(this._settings.metadataUrl?this._metadataUrl=this._settings.metadataUrl:(this._metadataUrl=this._settings.authority,this._metadataUrl&&this._metadataUrl.indexOf(s)<0&&("/"!==this._metadataUrl[this._metadataUrl.length-1]&&(this._metadataUrl+="/"),this._metadataUrl+=s))),this._metadataUrl}}]),t}()},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.UrlUtility=void 0;var n=r(0),i=r(1);e.UrlUtility=function(){function t(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t)}return t.addQueryParam=function(t,e,r){return t.indexOf("?")<0&&(t+="?"),"?"!==t[t.length-1]&&(t+="&"),t+=encodeURIComponent(e),(t+="=")+encodeURIComponent(r)},t.parseUrlFragment=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"#",r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:i.Global;"string"!=typeof t&&(t=r.location.href);var o=t.lastIndexOf(e);o>=0&&(t=t.substr(o+1)),"?"===e&&(o=t.indexOf("#"))>=0&&(t=t.substr(0,o));for(var s,a={},u=/([^&=]+)=([^&]*)/g,c=0;s=u.exec(t);)if(a[decodeURIComponent(s[1])]=decodeURIComponent(s[2].replace(/\+/g," ")),c++>50)return n.Log.error("UrlUtility.parseUrlFragment: response exceeded expected number of parameters",t),{error:"Response exceeded expected number of parameters"};for(var h in a)return a;return{}},t}()},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.JoseUtil=void 0;var n=r(26),i=function(t){return t&&t.__esModule?t:{default:t}}(r(33));e.JoseUtil=(0,i.default)({jws:n.jws,KeyUtil:n.KeyUtil,X509:n.X509,crypto:n.crypto,hextob64u:n.hextob64u,b64tohex:n.b64tohex,AllowedSigningAlgs:n.AllowedSigningAlgs})},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.OidcClientSettings=void 0;var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i=function(){function t(t,e){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{},r=e.authority,i=e.metadataUrl,o=e.metadata,h=e.signingKeys,d=e.metadataSeed,p=e.client_id,v=e.client_secret,y=e.response_type,m=void 0===y?l:y,_=e.scope,S=void 0===_?f:_,w=e.redirect_uri,b=e.post_logout_redirect_uri,F=e.client_authentication,E=void 0===F?g:F,x=e.prompt,A=e.display,k=e.max_age,P=e.ui_locales,C=e.acr_values,T=e.resource,R=e.response_mode,I=e.filterProtocolClaims,D=void 0===I||I,L=e.loadUserInfo,N=void 0===L||L,U=e.staleStateAge,O=void 0===U?900:U,B=e.clockSkew,M=void 0===B?300:B,j=e.clockService,H=void 0===j?new s.ClockService:j,K=e.userInfoJwtIssuer,V=void 0===K?"OP":K,q=e.mergeClaims,J=void 0!==q&&q,W=e.stateStore,z=void 0===W?new a.WebStorageStateStore:W,Y=e.ResponseValidatorCtor,G=void 0===Y?u.ResponseValidator:Y,$=e.MetadataServiceCtor,X=void 0===$?c.MetadataService:$,Q=e.extraQueryParams,Z=void 0===Q?{}:Q,tt=e.extraTokenParams,et=void 0===tt?{}:tt;(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")})(this,t),this._authority=r,this._metadataUrl=i,this._metadata=o,this._metadataSeed=d,this._signingKeys=h,this._client_id=p,this._client_secret=v,this._response_type=m,this._scope=S,this._redirect_uri=w,this._post_logout_redirect_uri=b,this._client_authentication=E,this._prompt=x,this._display=A,this._max_age=k,this._ui_locales=P,this._acr_values=C,this._resource=T,this._response_mode=R,this._filterProtocolClaims=!!D,this._loadUserInfo=!!N,this._staleStateAge=O,this._clockSkew=M,this._clockService=H,this._userInfoJwtIssuer=V,this._mergeClaims=!!J,this._stateStore=z,this._validator=new G(this),this._metadataService=new X(this),this._extraQueryParams="object"===(void 0===Z?"undefined":n(Z))?Z:{},this._extraTokenParams="object"===(void 0===et?"undefined":n(et))?et:{}}return t.prototype.getEpochTime=function(){return this._clockService.getEpochTime()},i(t,[{key:"client_id",get:function(){return this._client_id},set:function(t){if(this._client_id)throw o.Log.error("OidcClientSettings.set_client_id: client_id has already been assigned."),new Error("client_id has already been assigned.");this._client_id=t}},{key:"client_secret",get:function(){return this._client_secret}},{key:"response_type",get:function(){return this._response_type}},{key:"scope",get:function(){return this._scope}},{key:"redirect_uri",get:function(){return this._redirect_uri}},{key:"post_logout_redirect_uri",get:function(){return this._post_logout_redirect_uri}},{key:"client_authentication",get:function(){return this._client_authentication}},{key:"prompt",get:function(){return this._prompt}},{key:"display",get:function(){return this._display}},{key:"max_age",get:function(){return this._max_age}},{key:"ui_locales",get:function(){return this._ui_locales}},{key:"acr_values",get:function(){return this._acr_values}},{key:"resource",get:function(){return this._resource}},{key:"response_mode",get:function(){return this._response_mode}},{key:"authority",get:function(){return this._authority},set:function(t){if(this._authority)throw o.Log.error("OidcClientSettings.set_authority: authority has already been assigned."),new Error("authority has already been assigned.");this._authority=t}},{key:"metadataUrl",get:function(){return this._metadataUrl||(this._metadataUrl=this.authority,this._metadataUrl&&this._metadataUrl.indexOf(h)<0&&("/"!==this._metadataUrl[this._metadataUrl.length-1]&&(this._metadataUrl+="/"),this._metadataUrl+=h)),this._metadataUrl}},{key:"metadata",get:function(){return this._metadata},set:function(t){this._metadata=t}},{key:"metadataSeed",get:function(){return this._metadataSeed},set:function(t){this._metadataSeed=t}},{key:"signingKeys",get:function(){return this._signingKeys},set:function(t){this._signingKeys=t}},{key:"filterProtocolClaims",get:function(){return this._filterProtocolClaims}},{key:"loadUserInfo",get:function(){return this._loadUserInfo}},{key:"staleStateAge",get:function(){return this._staleStateAge}},{key:"clockSkew",get:function(){return this._clockSkew}},{key:"userInfoJwtIssuer",get:function(){return this._userInfoJwtIssuer}},{key:"mergeClaims",get:function(){return this._mergeClaims}},{key:"stateStore",get:function(){return this._stateStore}},{key:"validator",get:function(){return this._validator}},{key:"metadataService",get:function(){return this._metadataService}},{key:"extraQueryParams",get:function(){return this._extraQueryParams},set:function(t){"object"===(void 0===t?"undefined":n(t))?this._extraQueryParams=t:this._extraQueryParams={}}},{key:"extraTokenParams",get:function(){return this._extraTokenParams},set:function(t){"object"===(void 0===t?"undefined":n(t))?this._extraTokenParams=t:this._extraTokenParams={}}}]),t}()},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.WebStorageStateStore=void 0;var n=r(0),i=r(1);e.WebStorageStateStore=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=e.prefix,n=void 0===r?"oidc.":r,o=e.store,s=void 0===o?i.Global.localStorage:o;(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")})(this,t),this._store=s,this._prefix=n}return t.prototype.set=function(t,e){return n.Log.debug("WebStorageStateStore.set",t),t=this._prefix+t,this._store.setItem(t,e),Promise.resolve()},t.prototype.get=function(t){n.Log.debug("WebStorageStateStore.get",t),t=this._prefix+t;var e=this._store.getItem(t);return Promise.resolve(e)},t.prototype.remove=function(t){n.Log.debug("WebStorageStateStore.remove",t),t=this._prefix+t;var e=this._store.getItem(t);return this._store.removeItem(t),Promise.resolve(e)},t.prototype.getAllKeys=function(){n.Log.debug("WebStorageStateStore.getAllKeys");for(var t=[],e=0;e0&&void 0!==arguments[0]?arguments[0]:null,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:i.Global.XMLHttpRequest,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")})(this,t),e&&Array.isArray(e)?this._contentTypes=e.slice():this._contentTypes=[],this._contentTypes.push("application/json"),n&&this._contentTypes.push("application/jwt"),this._XMLHttpRequest=r,this._jwtHandler=n}return t.prototype.getJson=function(t,e){var r=this;if(!t)throw n.Log.error("JsonService.getJson: No url passed"),new Error("url");return n.Log.debug("JsonService.getJson, url: ",t),new Promise((function(i,o){var s=new r._XMLHttpRequest;s.open("GET",t);var a=r._contentTypes,u=r._jwtHandler;s.onload=function(){if(n.Log.debug("JsonService.getJson: HTTP response received, status",s.status),200===s.status){var e=s.getResponseHeader("Content-Type");if(e){var r=a.find((function(t){if(e.startsWith(t))return!0}));if("application/jwt"==r)return void u(s).then(i,o);if(r)try{return void i(JSON.parse(s.responseText))}catch(t){return n.Log.error("JsonService.getJson: Error parsing JSON response",t.message),void o(t)}}o(Error("Invalid response Content-Type: "+e+", from URL: "+t))}else o(Error(s.statusText+" ("+s.status+")"))},s.onerror=function(){n.Log.error("JsonService.getJson: network error"),o(Error("Network Error"))},e&&(n.Log.debug("JsonService.getJson: token passed, setting Authorization header"),s.setRequestHeader("Authorization","Bearer "+e)),s.send()}))},t.prototype.postForm=function(t,e,r){var i=this;if(!t)throw n.Log.error("JsonService.postForm: No url passed"),new Error("url");return n.Log.debug("JsonService.postForm, url: ",t),new Promise((function(o,s){var a=new i._XMLHttpRequest;a.open("POST",t);var u=i._contentTypes;a.onload=function(){if(n.Log.debug("JsonService.postForm: HTTP response received, status",a.status),200!==a.status){if(400===a.status&&(r=a.getResponseHeader("Content-Type"))&&u.find((function(t){if(r.startsWith(t))return!0})))try{var e=JSON.parse(a.responseText);if(e&&e.error)return n.Log.error("JsonService.postForm: Error from server: ",e.error),void s(new Error(e.error))}catch(t){return n.Log.error("JsonService.postForm: Error parsing JSON response",t.message),void s(t)}s(Error(a.statusText+" ("+a.status+")"))}else{var r;if((r=a.getResponseHeader("Content-Type"))&&u.find((function(t){if(r.startsWith(t))return!0})))try{return void o(JSON.parse(a.responseText))}catch(t){return n.Log.error("JsonService.postForm: Error parsing JSON response",t.message),void s(t)}s(Error("Invalid response Content-Type: "+r+", from URL: "+t))}},a.onerror=function(){n.Log.error("JsonService.postForm: network error"),s(Error("Network Error"))};var c="";for(var h in e){var l=e[h];l&&(c.length>0&&(c+="&"),c+=encodeURIComponent(h),c+="=",c+=encodeURIComponent(l))}a.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),void 0!==r&&a.setRequestHeader("Authorization","Basic "+btoa(r)),a.send(c)}))},t}()},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SigninRequest=void 0;var n=r(0),i=r(3),o=r(13);e.SigninRequest=function(){function t(e){var r=e.url,s=e.client_id,a=e.redirect_uri,u=e.response_type,c=e.scope,h=e.authority,l=e.data,f=e.prompt,g=e.display,d=e.max_age,p=e.ui_locales,v=e.id_token_hint,y=e.login_hint,m=e.acr_values,_=e.resource,S=e.response_mode,w=e.request,b=e.request_uri,F=e.extraQueryParams,E=e.request_type,x=e.client_secret,A=e.extraTokenParams,k=e.skipUserInfo;if(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),!r)throw n.Log.error("SigninRequest.ctor: No url passed"),new Error("url");if(!s)throw n.Log.error("SigninRequest.ctor: No client_id passed"),new Error("client_id");if(!a)throw n.Log.error("SigninRequest.ctor: No redirect_uri passed"),new Error("redirect_uri");if(!u)throw n.Log.error("SigninRequest.ctor: No response_type passed"),new Error("response_type");if(!c)throw n.Log.error("SigninRequest.ctor: No scope passed"),new Error("scope");if(!h)throw n.Log.error("SigninRequest.ctor: No authority passed"),new Error("authority");var P=t.isOidc(u),C=t.isCode(u);S||(S=t.isCode(u)?"query":null),this.state=new o.SigninState({nonce:P,data:l,client_id:s,authority:h,redirect_uri:a,code_verifier:C,request_type:E,response_mode:S,client_secret:x,scope:c,extraTokenParams:A,skipUserInfo:k}),r=i.UrlUtility.addQueryParam(r,"client_id",s),r=i.UrlUtility.addQueryParam(r,"redirect_uri",a),r=i.UrlUtility.addQueryParam(r,"response_type",u),r=i.UrlUtility.addQueryParam(r,"scope",c),r=i.UrlUtility.addQueryParam(r,"state",this.state.id),P&&(r=i.UrlUtility.addQueryParam(r,"nonce",this.state.nonce)),C&&(r=i.UrlUtility.addQueryParam(r,"code_challenge",this.state.code_challenge),r=i.UrlUtility.addQueryParam(r,"code_challenge_method","S256"));var T={prompt:f,display:g,max_age:d,ui_locales:p,id_token_hint:v,login_hint:y,acr_values:m,resource:_,request:w,request_uri:b,response_mode:S};for(var R in T)T[R]&&(r=i.UrlUtility.addQueryParam(r,R,T[R]));for(var I in F)r=i.UrlUtility.addQueryParam(r,I,F[I]);this.url=r}return t.isOidc=function(t){return!!t.split(/\s+/g).filter((function(t){return"id_token"===t}))[0]},t.isOAuth=function(t){return!!t.split(/\s+/g).filter((function(t){return"token"===t}))[0]},t.isCode=function(t){return!!t.split(/\s+/g).filter((function(t){return"code"===t}))[0]},t}()},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.State=void 0;var n=function(){function t(t,e){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{},r=e.id,n=e.data,i=e.created,s=e.request_type;(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")})(this,t),this._id=r||(0,o.default)(),this._data=n,this._created="number"==typeof i&&i>0?i:parseInt(Date.now()/1e3),this._request_type=s}return t.prototype.toStorageString=function(){return i.Log.debug("State.toStorageString"),JSON.stringify({id:this.id,data:this.data,created:this.created,request_type:this.request_type})},t.fromStorageString=function(e){return i.Log.debug("State.fromStorageString"),new t(JSON.parse(e))},t.clearStaleState=function(e,r){var n=Date.now()/1e3-r;return e.getAllKeys().then((function(r){i.Log.debug("State.clearStaleState: got keys",r);for(var o=[],s=function(s){var a=r[s];u=e.get(a).then((function(r){var o=!1;if(r)try{var s=t.fromStorageString(r);i.Log.debug("State.clearStaleState: got item from key: ",a,s.created),s.created<=n&&(o=!0)}catch(t){i.Log.error("State.clearStaleState: Error parsing state for key",a,t.message),o=!0}else i.Log.debug("State.clearStaleState: no item in storage for key: ",a),o=!0;if(o)return i.Log.debug("State.clearStaleState: removed item for key: ",a),e.remove(a)})),o.push(u)},a=0;a0&&void 0!==arguments[0]?arguments[0]:{};(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")})(this,t),e instanceof o.OidcClientSettings?this._settings=e:this._settings=new o.OidcClientSettings(e)}return t.prototype.createSigninRequest=function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=e.response_type,n=e.scope,o=e.redirect_uri,s=e.data,u=e.state,c=e.prompt,h=e.display,l=e.max_age,f=e.ui_locales,g=e.id_token_hint,d=e.login_hint,p=e.acr_values,v=e.resource,y=e.request,m=e.request_uri,_=e.response_mode,S=e.extraQueryParams,w=e.extraTokenParams,b=e.request_type,F=e.skipUserInfo,E=arguments[1];i.Log.debug("OidcClient.createSigninRequest");var x=this._settings.client_id;r=r||this._settings.response_type,n=n||this._settings.scope,o=o||this._settings.redirect_uri,c=c||this._settings.prompt,h=h||this._settings.display,l=l||this._settings.max_age,f=f||this._settings.ui_locales,p=p||this._settings.acr_values,v=v||this._settings.resource,_=_||this._settings.response_mode,S=S||this._settings.extraQueryParams,w=w||this._settings.extraTokenParams;var A=this._settings.authority;return a.SigninRequest.isCode(r)&&"code"!==r?Promise.reject(new Error("OpenID Connect hybrid flow is not supported")):this._metadataService.getAuthorizationEndpoint().then((function(e){i.Log.debug("OidcClient.createSigninRequest: Received authorization endpoint",e);var k=new a.SigninRequest({url:e,client_id:x,redirect_uri:o,response_type:r,scope:n,data:s||u,authority:A,prompt:c,display:h,max_age:l,ui_locales:f,id_token_hint:g,login_hint:d,acr_values:p,resource:v,request:y,request_uri:m,extraQueryParams:S,extraTokenParams:w,request_type:b,response_mode:_,client_secret:t._settings.client_secret,skipUserInfo:F}),P=k.state;return(E=E||t._stateStore).set(P.id,P.toStorageString()).then((function(){return k}))}))},t.prototype.readSigninResponseState=function(t,e){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];i.Log.debug("OidcClient.readSigninResponseState");var n="query"===this._settings.response_mode||!this._settings.response_mode&&a.SigninRequest.isCode(this._settings.response_type)?"?":"#",o=new u.SigninResponse(t,n);return o.state?(e=e||this._stateStore,(r?e.remove.bind(e):e.get.bind(e))(o.state).then((function(t){if(!t)throw i.Log.error("OidcClient.readSigninResponseState: No matching state found in storage"),new Error("No matching state found in storage");return{state:l.SigninState.fromStorageString(t),response:o}}))):(i.Log.error("OidcClient.readSigninResponseState: No state in response"),Promise.reject(new Error("No state in response")))},t.prototype.processSigninResponse=function(t,e){var r=this;return i.Log.debug("OidcClient.processSigninResponse"),this.readSigninResponseState(t,e,!0).then((function(t){var e=t.state,n=t.response;return i.Log.debug("OidcClient.processSigninResponse: Received state from storage; validating response"),r._validator.validateSigninResponse(e,n)}))},t.prototype.createSignoutRequest=function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=e.id_token_hint,n=e.data,o=e.state,s=e.post_logout_redirect_uri,a=e.extraQueryParams,u=e.request_type,h=arguments[1];return i.Log.debug("OidcClient.createSignoutRequest"),s=s||this._settings.post_logout_redirect_uri,a=a||this._settings.extraQueryParams,this._metadataService.getEndSessionEndpoint().then((function(e){if(!e)throw i.Log.error("OidcClient.createSignoutRequest: No end session endpoint url returned"),new Error("no end session endpoint");i.Log.debug("OidcClient.createSignoutRequest: Received end session endpoint",e);var l=new c.SignoutRequest({url:e,id_token_hint:r,post_logout_redirect_uri:s,data:n||o,extraQueryParams:a,request_type:u}),f=l.state;return f&&(i.Log.debug("OidcClient.createSignoutRequest: Signout request has state to persist"),(h=h||t._stateStore).set(f.id,f.toStorageString())),l}))},t.prototype.readSignoutResponseState=function(t,e){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];i.Log.debug("OidcClient.readSignoutResponseState");var n=new h.SignoutResponse(t);if(!n.state)return i.Log.debug("OidcClient.readSignoutResponseState: No state in response"),n.error?(i.Log.warn("OidcClient.readSignoutResponseState: Response was error: ",n.error),Promise.reject(new s.ErrorResponse(n))):Promise.resolve({state:void 0,response:n});var o=n.state;return e=e||this._stateStore,(r?e.remove.bind(e):e.get.bind(e))(o).then((function(t){if(!t)throw i.Log.error("OidcClient.readSignoutResponseState: No matching state found in storage"),new Error("No matching state found in storage");return{state:f.State.fromStorageString(t),response:n}}))},t.prototype.processSignoutResponse=function(t,e){var r=this;return i.Log.debug("OidcClient.processSignoutResponse"),this.readSignoutResponseState(t,e,!0).then((function(t){var e=t.state,n=t.response;return e?(i.Log.debug("OidcClient.processSignoutResponse: Received state from storage; validating response"),r._validator.validateSignoutResponse(e,n)):(i.Log.debug("OidcClient.processSignoutResponse: No state from storage; skipping validating response"),n)}))},t.prototype.clearStaleState=function(t){return i.Log.debug("OidcClient.clearStaleState"),t=t||this._stateStore,f.State.clearStaleState(t,this.settings.staleStateAge)},n(t,[{key:"_stateStore",get:function(){return this.settings.stateStore}},{key:"_validator",get:function(){return this.settings.validator}},{key:"_metadataService",get:function(){return this.settings.metadataService}},{key:"settings",get:function(){return this._settings}},{key:"metadataService",get:function(){return this._metadataService}}]),t}()},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.TokenClient=void 0;var n=r(7),i=r(2),o=r(0);e.TokenClient=function(){function t(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:n.JsonService,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:i.MetadataService;if(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),!e)throw o.Log.error("TokenClient.ctor: No settings passed"),new Error("settings");this._settings=e,this._jsonService=new r,this._metadataService=new s(this._settings)}return t.prototype.exchangeCode=function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(e=Object.assign({},e)).grant_type=e.grant_type||"authorization_code",e.client_id=e.client_id||this._settings.client_id,e.client_secret=e.client_secret||this._settings.client_secret,e.redirect_uri=e.redirect_uri||this._settings.redirect_uri;var r=void 0,n=e._client_authentication||this._settings._client_authentication;return delete e._client_authentication,e.code?e.redirect_uri?e.code_verifier?e.client_id?e.client_secret||"client_secret_basic"!=n?("client_secret_basic"==n&&(r=e.client_id+":"+e.client_secret,delete e.client_id,delete e.client_secret),this._metadataService.getTokenEndpoint(!1).then((function(n){return o.Log.debug("TokenClient.exchangeCode: Received token endpoint"),t._jsonService.postForm(n,e,r).then((function(t){return o.Log.debug("TokenClient.exchangeCode: response received"),t}))}))):(o.Log.error("TokenClient.exchangeCode: No client_secret passed"),Promise.reject(new Error("A client_secret is required"))):(o.Log.error("TokenClient.exchangeCode: No client_id passed"),Promise.reject(new Error("A client_id is required"))):(o.Log.error("TokenClient.exchangeCode: No code_verifier passed"),Promise.reject(new Error("A code_verifier is required"))):(o.Log.error("TokenClient.exchangeCode: No redirect_uri passed"),Promise.reject(new Error("A redirect_uri is required"))):(o.Log.error("TokenClient.exchangeCode: No code passed"),Promise.reject(new Error("A code is required")))},t.prototype.exchangeRefreshToken=function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(e=Object.assign({},e)).grant_type=e.grant_type||"refresh_token",e.client_id=e.client_id||this._settings.client_id,e.client_secret=e.client_secret||this._settings.client_secret;var r=void 0,n=e._client_authentication||this._settings._client_authentication;return delete e._client_authentication,e.refresh_token?e.client_id?("client_secret_basic"==n&&(r=e.client_id+":"+e.client_secret,delete e.client_id,delete e.client_secret),this._metadataService.getTokenEndpoint(!1).then((function(n){return o.Log.debug("TokenClient.exchangeRefreshToken: Received token endpoint"),t._jsonService.postForm(n,e,r).then((function(t){return o.Log.debug("TokenClient.exchangeRefreshToken: response received"),t}))}))):(o.Log.error("TokenClient.exchangeRefreshToken: No client_id passed"),Promise.reject(new Error("A client_id is required"))):(o.Log.error("TokenClient.exchangeRefreshToken: No refresh_token passed"),Promise.reject(new Error("A refresh_token is required")))},t}()},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ErrorResponse=void 0;var n=r(0);e.ErrorResponse=function(t){function e(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=r.error,o=r.error_description,s=r.error_uri,a=r.state,u=r.session_state;if(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e),!i)throw n.Log.error("No error passed to ErrorResponse"),new Error("error");var c=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}(this,t.call(this,o||i));return c.name="ErrorResponse",c.error=i,c.error_description=o,c.error_uri=s,c.state=a,c.session_state=u,c}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,t),e}(Error)},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SigninState=void 0;var n=function(){function t(t,e){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{},n=r.nonce,i=r.authority,o=r.client_id,u=r.redirect_uri,c=r.code_verifier,h=r.response_mode,l=r.client_secret,f=r.scope,g=r.extraTokenParams,d=r.skipUserInfo;!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e);var p=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}(this,t.call(this,arguments[0]));if(!0===n?p._nonce=(0,a.default)():n&&(p._nonce=n),!0===c?p._code_verifier=(0,a.default)()+(0,a.default)()+(0,a.default)():c&&(p._code_verifier=c),p.code_verifier){var v=s.JoseUtil.hashString(p.code_verifier,"SHA256");p._code_challenge=s.JoseUtil.hexToBase64Url(v)}return p._redirect_uri=u,p._authority=i,p._client_id=o,p._response_mode=h,p._client_secret=l,p._scope=f,p._extraTokenParams=g,p._skipUserInfo=d,p}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,t),e.prototype.toStorageString=function(){return i.Log.debug("SigninState.toStorageString"),JSON.stringify({id:this.id,data:this.data,created:this.created,request_type:this.request_type,nonce:this.nonce,code_verifier:this.code_verifier,redirect_uri:this.redirect_uri,authority:this.authority,client_id:this.client_id,response_mode:this.response_mode,client_secret:this.client_secret,scope:this.scope,extraTokenParams:this.extraTokenParams,skipUserInfo:this.skipUserInfo})},e.fromStorageString=function(t){return i.Log.debug("SigninState.fromStorageString"),new e(JSON.parse(t))},n(e,[{key:"nonce",get:function(){return this._nonce}},{key:"authority",get:function(){return this._authority}},{key:"client_id",get:function(){return this._client_id}},{key:"redirect_uri",get:function(){return this._redirect_uri}},{key:"code_verifier",get:function(){return this._code_verifier}},{key:"code_challenge",get:function(){return this._code_challenge}},{key:"response_mode",get:function(){return this._response_mode}},{key:"client_secret",get:function(){return this._client_secret}},{key:"scope",get:function(){return this._scope}},{key:"extraTokenParams",get:function(){return this._extraTokenParams}},{key:"skipUserInfo",get:function(){return this._skipUserInfo}}]),e}(o.State)},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(){return("undefined"!=n&&null!==n&&void 0!==n.getRandomValues?i:o)().replace(/-/g,"")};var n="undefined"!=typeof window?window.crypto||window.msCrypto:null;function i(){return([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,(function(t){return(t^n.getRandomValues(new Uint8Array(1))[0]&15>>t/4).toString(16)}))}function o(){return([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,(function(t){return(t^16*Math.random()>>t/4).toString(16)}))}t.exports=e.default},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.User=void 0;var n=function(){function t(t,e){for(var r=0;r0){var r=parseInt(Date.now()/1e3);this.expires_at=r+e}}},{key:"expired",get:function(){var t=this.expires_in;if(void 0!==t)return t<=0}},{key:"scopes",get:function(){return(this.scope||"").split(" ")}}]),t}()},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.AccessTokenEvents=void 0;var n=r(0),i=r(46);e.AccessTokenEvents=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=e.accessTokenExpiringNotificationTime,n=void 0===r?60:r,o=e.accessTokenExpiringTimer,s=void 0===o?new i.Timer("Access token expiring"):o,a=e.accessTokenExpiredTimer,u=void 0===a?new i.Timer("Access token expired"):a;(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")})(this,t),this._accessTokenExpiringNotificationTime=n,this._accessTokenExpiring=s,this._accessTokenExpired=u}return t.prototype.load=function(t){if(t.access_token&&void 0!==t.expires_in){var e=t.expires_in;if(n.Log.debug("AccessTokenEvents.load: access token present, remaining duration:",e),e>0){var r=e-this._accessTokenExpiringNotificationTime;r<=0&&(r=1),n.Log.debug("AccessTokenEvents.load: registering expiring timer in:",r),this._accessTokenExpiring.init(r)}else n.Log.debug("AccessTokenEvents.load: canceling existing expiring timer becase we're past expiration."),this._accessTokenExpiring.cancel();var i=e+1;n.Log.debug("AccessTokenEvents.load: registering expired timer in:",i),this._accessTokenExpired.init(i)}else this._accessTokenExpiring.cancel(),this._accessTokenExpired.cancel()},t.prototype.unload=function(){n.Log.debug("AccessTokenEvents.unload: canceling existing access token timers"),this._accessTokenExpiring.cancel(),this._accessTokenExpired.cancel()},t.prototype.addAccessTokenExpiring=function(t){this._accessTokenExpiring.addHandler(t)},t.prototype.removeAccessTokenExpiring=function(t){this._accessTokenExpiring.removeHandler(t)},t.prototype.addAccessTokenExpired=function(t){this._accessTokenExpired.addHandler(t)},t.prototype.removeAccessTokenExpired=function(t){this._accessTokenExpired.removeHandler(t)},t}()},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Event=void 0;var n=r(0);e.Event=function(){function t(e){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this._name=e,this._callbacks=[]}return t.prototype.addHandler=function(t){this._callbacks.push(t)},t.prototype.removeHandler=function(t){var e=this._callbacks.findIndex((function(e){return e===t}));e>=0&&this._callbacks.splice(e,1)},t.prototype.raise=function(){n.Log.debug("Event: Raising event: "+this._name);for(var t=0;t1&&void 0!==arguments[1]?arguments[1]:o.CheckSessionIFrame,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:s.Global.timer;if(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),!e)throw i.Log.error("SessionMonitor.ctor: No user manager passed to SessionMonitor"),new Error("userManager");this._userManager=e,this._CheckSessionIFrameCtor=n,this._timer=a,this._userManager.events.addUserLoaded(this._start.bind(this)),this._userManager.events.addUserUnloaded(this._stop.bind(this)),Promise.resolve(this._userManager.getUser().then((function(t){t?r._start(t):r._settings.monitorAnonymousSession&&r._userManager.querySessionStatus().then((function(t){var e={session_state:t.session_state};t.sub&&t.sid&&(e.profile={sub:t.sub,sid:t.sid}),r._start(e)})).catch((function(t){i.Log.error("SessionMonitor ctor: error from querySessionStatus:",t.message)}))})).catch((function(t){i.Log.error("SessionMonitor ctor: error from getUser:",t.message)})))}return t.prototype._start=function(t){var e=this,r=t.session_state;r&&(t.profile?(this._sub=t.profile.sub,this._sid=t.profile.sid,i.Log.debug("SessionMonitor._start: session_state:",r,", sub:",this._sub)):(this._sub=void 0,this._sid=void 0,i.Log.debug("SessionMonitor._start: session_state:",r,", anonymous user")),this._checkSessionIFrame?this._checkSessionIFrame.start(r):this._metadataService.getCheckSessionIframe().then((function(t){if(t){i.Log.debug("SessionMonitor._start: Initializing check session iframe");var n=e._client_id,o=e._checkSessionInterval,s=e._stopCheckSessionOnError;e._checkSessionIFrame=new e._CheckSessionIFrameCtor(e._callback.bind(e),n,t,o,s),e._checkSessionIFrame.load().then((function(){e._checkSessionIFrame.start(r)}))}else i.Log.warn("SessionMonitor._start: No check session iframe found in the metadata")})).catch((function(t){i.Log.error("SessionMonitor._start: Error from getCheckSessionIframe:",t.message)})))},t.prototype._stop=function(){var t=this;if(this._sub=void 0,this._sid=void 0,this._checkSessionIFrame&&(i.Log.debug("SessionMonitor._stop"),this._checkSessionIFrame.stop()),this._settings.monitorAnonymousSession)var e=this._timer.setInterval((function(){t._timer.clearInterval(e),t._userManager.querySessionStatus().then((function(e){var r={session_state:e.session_state};e.sub&&e.sid&&(r.profile={sub:e.sub,sid:e.sid}),t._start(r)})).catch((function(t){i.Log.error("SessionMonitor: error from querySessionStatus:",t.message)}))}),1e3)},t.prototype._callback=function(){var t=this;this._userManager.querySessionStatus().then((function(e){var r=!0;e?e.sub===t._sub?(r=!1,t._checkSessionIFrame.start(e.session_state),e.sid===t._sid?i.Log.debug("SessionMonitor._callback: Same sub still logged in at OP, restarting check session iframe; session_state:",e.session_state):(i.Log.debug("SessionMonitor._callback: Same sub still logged in at OP, session state has changed, restarting check session iframe; session_state:",e.session_state),t._userManager.events._raiseUserSessionChanged())):i.Log.debug("SessionMonitor._callback: Different subject signed into OP:",e.sub):i.Log.debug("SessionMonitor._callback: Subject no longer signed into OP"),r&&(t._sub?(i.Log.debug("SessionMonitor._callback: SessionMonitor._callback; raising signed out event"),t._userManager.events._raiseUserSignedOut()):(i.Log.debug("SessionMonitor._callback: SessionMonitor._callback; raising signed in event"),t._userManager.events._raiseUserSignedIn()))})).catch((function(e){t._sub&&(i.Log.debug("SessionMonitor._callback: Error calling queryCurrentSigninSession; raising signed out event",e.message),t._userManager.events._raiseUserSignedOut())}))},n(t,[{key:"_settings",get:function(){return this._userManager.settings}},{key:"_metadataService",get:function(){return this._userManager.metadataService}},{key:"_client_id",get:function(){return this._settings.client_id}},{key:"_checkSessionInterval",get:function(){return this._settings.checkSessionInterval}},{key:"_stopCheckSessionOnError",get:function(){return this._settings.stopCheckSessionOnError}}]),t}()},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CheckSessionIFrame=void 0;var n=r(0);e.CheckSessionIFrame=function(){function t(e,r,n,i){var o=!(arguments.length>4&&void 0!==arguments[4])||arguments[4];(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")})(this,t),this._callback=e,this._client_id=r,this._url=n,this._interval=i||2e3,this._stopOnError=o;var s=n.indexOf("/",n.indexOf("//")+2);this._frame_origin=n.substr(0,s),this._frame=window.document.createElement("iframe"),this._frame.style.visibility="hidden",this._frame.style.position="absolute",this._frame.style.display="none",this._frame.width=0,this._frame.height=0,this._frame.src=n}return t.prototype.load=function(){var t=this;return new Promise((function(e){t._frame.onload=function(){e()},window.document.body.appendChild(t._frame),t._boundMessageEvent=t._message.bind(t),window.addEventListener("message",t._boundMessageEvent,!1)}))},t.prototype._message=function(t){t.origin===this._frame_origin&&t.source===this._frame.contentWindow&&("error"===t.data?(n.Log.error("CheckSessionIFrame: error message from check session op iframe"),this._stopOnError&&this.stop()):"changed"===t.data?(n.Log.debug("CheckSessionIFrame: changed message from check session op iframe"),this.stop(),this._callback()):n.Log.debug("CheckSessionIFrame: "+t.data+" message from check session op iframe"))},t.prototype.start=function(t){var e=this;if(this._session_state!==t){n.Log.debug("CheckSessionIFrame.start"),this.stop(),this._session_state=t;var r=function(){e._frame.contentWindow.postMessage(e._client_id+" "+e._session_state,e._frame_origin)};r(),this._timer=window.setInterval(r,this._interval)}},t.prototype.stop=function(){this._session_state=null,this._timer&&(n.Log.debug("CheckSessionIFrame.stop"),window.clearInterval(this._timer),this._timer=null)},t}()},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.TokenRevocationClient=void 0;var n=r(0),i=r(2),o=r(1),s="access_token",a="refresh_token";e.TokenRevocationClient=function(){function t(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:o.Global.XMLHttpRequest,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:i.MetadataService;if(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),!e)throw n.Log.error("TokenRevocationClient.ctor: No settings provided"),new Error("No settings provided.");this._settings=e,this._XMLHttpRequestCtor=r,this._metadataService=new s(this._settings)}return t.prototype.revoke=function(t,e){var r=this,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"access_token";if(!t)throw n.Log.error("TokenRevocationClient.revoke: No token provided"),new Error("No token provided.");if(i!==s&&i!=a)throw n.Log.error("TokenRevocationClient.revoke: Invalid token type"),new Error("Invalid token type.");return this._metadataService.getRevocationEndpoint().then((function(o){if(o){n.Log.debug("TokenRevocationClient.revoke: Revoking "+i);var s=r._settings.client_id,a=r._settings.client_secret;return r._revoke(o,s,a,t,i)}if(e)throw n.Log.error("TokenRevocationClient.revoke: Revocation not supported"),new Error("Revocation not supported")}))},t.prototype._revoke=function(t,e,r,i,o){var s=this;return new Promise((function(a,u){var c=new s._XMLHttpRequestCtor;c.open("POST",t),c.onload=function(){n.Log.debug("TokenRevocationClient.revoke: HTTP response received, status",c.status),200===c.status?a():u(Error(c.statusText+" ("+c.status+")"))},c.onerror=function(){n.Log.debug("TokenRevocationClient.revoke: Network Error."),u("Network Error")};var h="client_id="+encodeURIComponent(e);r&&(h+="&client_secret="+encodeURIComponent(r)),h+="&token_type_hint="+encodeURIComponent(o),h+="&token="+encodeURIComponent(i),c.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),c.send(h)}))},t}()},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CordovaPopupWindow=void 0;var n=function(){function t(t,e){for(var r=0;r1&&void 0!==arguments[1]?arguments[1]:o.MetadataService,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:s.UserInfoService,u=arguments.length>3&&void 0!==arguments[3]?arguments[3]:c.JoseUtil,h=arguments.length>4&&void 0!==arguments[4]?arguments[4]:a.TokenClient;if(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),!e)throw i.Log.error("ResponseValidator.ctor: No settings passed to ResponseValidator"),new Error("settings");this._settings=e,this._metadataService=new r(this._settings),this._userInfoService=new n(this._settings),this._joseUtil=u,this._tokenClient=new h(this._settings)}return t.prototype.validateSigninResponse=function(t,e){var r=this;return i.Log.debug("ResponseValidator.validateSigninResponse"),this._processSigninParams(t,e).then((function(e){return i.Log.debug("ResponseValidator.validateSigninResponse: state processed"),r._validateTokens(t,e).then((function(e){return i.Log.debug("ResponseValidator.validateSigninResponse: tokens validated"),r._processClaims(t,e).then((function(t){return i.Log.debug("ResponseValidator.validateSigninResponse: claims processed"),t}))}))}))},t.prototype.validateSignoutResponse=function(t,e){return t.id!==e.state?(i.Log.error("ResponseValidator.validateSignoutResponse: State does not match"),Promise.reject(new Error("State does not match"))):(i.Log.debug("ResponseValidator.validateSignoutResponse: state validated"),e.state=t.data,e.error?(i.Log.warn("ResponseValidator.validateSignoutResponse: Response was error",e.error),Promise.reject(new u.ErrorResponse(e))):Promise.resolve(e))},t.prototype._processSigninParams=function(t,e){if(t.id!==e.state)return i.Log.error("ResponseValidator._processSigninParams: State does not match"),Promise.reject(new Error("State does not match"));if(!t.client_id)return i.Log.error("ResponseValidator._processSigninParams: No client_id on state"),Promise.reject(new Error("No client_id on state"));if(!t.authority)return i.Log.error("ResponseValidator._processSigninParams: No authority on state"),Promise.reject(new Error("No authority on state"));if(this._settings.authority){if(this._settings.authority&&this._settings.authority!==t.authority)return i.Log.error("ResponseValidator._processSigninParams: authority mismatch on settings vs. signin state"),Promise.reject(new Error("authority mismatch on settings vs. signin state"))}else this._settings.authority=t.authority;if(this._settings.client_id){if(this._settings.client_id&&this._settings.client_id!==t.client_id)return i.Log.error("ResponseValidator._processSigninParams: client_id mismatch on settings vs. signin state"),Promise.reject(new Error("client_id mismatch on settings vs. signin state"))}else this._settings.client_id=t.client_id;return i.Log.debug("ResponseValidator._processSigninParams: state validated"),e.state=t.data,e.error?(i.Log.warn("ResponseValidator._processSigninParams: Response was error",e.error),Promise.reject(new u.ErrorResponse(e))):t.nonce&&!e.id_token?(i.Log.error("ResponseValidator._processSigninParams: Expecting id_token in response"),Promise.reject(new Error("No id_token in response"))):!t.nonce&&e.id_token?(i.Log.error("ResponseValidator._processSigninParams: Not expecting id_token in response"),Promise.reject(new Error("Unexpected id_token in response"))):t.code_verifier&&!e.code?(i.Log.error("ResponseValidator._processSigninParams: Expecting code in response"),Promise.reject(new Error("No code in response"))):!t.code_verifier&&e.code?(i.Log.error("ResponseValidator._processSigninParams: Not expecting code in response"),Promise.reject(new Error("Unexpected code in response"))):(e.scope||(e.scope=t.scope),Promise.resolve(e))},t.prototype._processClaims=function(t,e){var r=this;if(e.isOpenIdConnect){if(i.Log.debug("ResponseValidator._processClaims: response is OIDC, processing claims"),e.profile=this._filterProtocolClaims(e.profile),!0!==t.skipUserInfo&&this._settings.loadUserInfo&&e.access_token)return i.Log.debug("ResponseValidator._processClaims: loading user info"),this._userInfoService.getClaims(e.access_token).then((function(t){return i.Log.debug("ResponseValidator._processClaims: user info claims received from user info endpoint"),t.sub!==e.profile.sub?(i.Log.error("ResponseValidator._processClaims: sub from user info endpoint does not match sub in id_token"),Promise.reject(new Error("sub from user info endpoint does not match sub in id_token"))):(e.profile=r._mergeClaims(e.profile,t),i.Log.debug("ResponseValidator._processClaims: user info claims received, updated profile:",e.profile),e)}));i.Log.debug("ResponseValidator._processClaims: not loading user info")}else i.Log.debug("ResponseValidator._processClaims: response is not OIDC, not processing claims");return Promise.resolve(e)},t.prototype._mergeClaims=function(t,e){var r=Object.assign({},t);for(var i in e){var o=e[i];Array.isArray(o)||(o=[o]);for(var s=0;s1)return i.Log.error("ResponseValidator._validateIdToken: No kid found in id_token and more than one key found in metadata"),Promise.reject(new Error("No kid found in id_token and more than one key found in metadata"));o=r[0]}return Promise.resolve(o)}))},t.prototype._getSigningKeyForJwtWithSingleRetry=function(t){var e=this;return this._getSigningKeyForJwt(t).then((function(r){return r?Promise.resolve(r):(e._metadataService.resetSigningKeys(),e._getSigningKeyForJwt(t))}))},t.prototype._validateIdToken=function(t,e){var r=this;if(!t.nonce)return i.Log.error("ResponseValidator._validateIdToken: No nonce on state"),Promise.reject(new Error("No nonce on state"));var n=this._joseUtil.parseJwt(e.id_token);return n&&n.header&&n.payload?t.nonce!==n.payload.nonce?(i.Log.error("ResponseValidator._validateIdToken: Invalid nonce in id_token"),Promise.reject(new Error("Invalid nonce in id_token"))):this._metadataService.getIssuer().then((function(o){return i.Log.debug("ResponseValidator._validateIdToken: Received issuer"),r._getSigningKeyForJwtWithSingleRetry(n).then((function(s){if(!s)return i.Log.error("ResponseValidator._validateIdToken: No key matching kid or alg found in signing keys"),Promise.reject(new Error("No key matching kid or alg found in signing keys"));var a=t.client_id,u=r._settings.clockSkew;return i.Log.debug("ResponseValidator._validateIdToken: Validaing JWT; using clock skew (in seconds) of: ",u),r._joseUtil.validateJwt(e.id_token,s,o,a,u).then((function(){return i.Log.debug("ResponseValidator._validateIdToken: JWT validation successful"),n.payload.sub?(e.profile=n.payload,e):(i.Log.error("ResponseValidator._validateIdToken: No sub present in id_token"),Promise.reject(new Error("No sub present in id_token")))}))}))})):(i.Log.error("ResponseValidator._validateIdToken: Failed to parse id_token",n),Promise.reject(new Error("Failed to parse id_token")))},t.prototype._filterByAlg=function(t,e){var r=null;if(e.startsWith("RS"))r="RSA";else if(e.startsWith("PS"))r="PS";else{if(!e.startsWith("ES"))return i.Log.debug("ResponseValidator._filterByAlg: alg not supported: ",e),[];r="EC"}return i.Log.debug("ResponseValidator._filterByAlg: Looking for keys that match kty: ",r),t=t.filter((function(t){return t.kty===r})),i.Log.debug("ResponseValidator._filterByAlg: Number of keys that match kty: ",r,t.length),t},t.prototype._validateAccessToken=function(t){if(!t.profile)return i.Log.error("ResponseValidator._validateAccessToken: No profile loaded from id_token"),Promise.reject(new Error("No profile loaded from id_token"));if(!t.profile.at_hash)return i.Log.error("ResponseValidator._validateAccessToken: No at_hash in id_token"),Promise.reject(new Error("No at_hash in id_token"));if(!t.id_token)return i.Log.error("ResponseValidator._validateAccessToken: No id_token"),Promise.reject(new Error("No id_token"));var e=this._joseUtil.parseJwt(t.id_token);if(!e||!e.header)return i.Log.error("ResponseValidator._validateAccessToken: Failed to parse id_token",e),Promise.reject(new Error("Failed to parse id_token"));var r=e.header.alg;if(!r||5!==r.length)return i.Log.error("ResponseValidator._validateAccessToken: Unsupported alg:",r),Promise.reject(new Error("Unsupported alg: "+r));var n=r.substr(2,3);if(!n)return i.Log.error("ResponseValidator._validateAccessToken: Unsupported alg:",r,n),Promise.reject(new Error("Unsupported alg: "+r));if(256!==(n=parseInt(n))&&384!==n&&512!==n)return i.Log.error("ResponseValidator._validateAccessToken: Unsupported alg:",r,n),Promise.reject(new Error("Unsupported alg: "+r));var o="sha"+n,s=this._joseUtil.hashString(t.access_token,o);if(!s)return i.Log.error("ResponseValidator._validateAccessToken: access_token hash failed:",o),Promise.reject(new Error("Failed to validate at_hash"));var a=s.substr(0,s.length/2),u=this._joseUtil.hexToBase64Url(a);return u!==t.profile.at_hash?(i.Log.error("ResponseValidator._validateAccessToken: Failed to validate at_hash",u,t.profile.at_hash),Promise.reject(new Error("Failed to validate at_hash"))):(i.Log.debug("ResponseValidator._validateAccessToken: success"),Promise.resolve(t))},t}()},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.UserInfoService=void 0;var n=r(7),i=r(2),o=r(0),s=r(4);e.UserInfoService=function(){function t(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:n.JsonService,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:i.MetadataService,u=arguments.length>3&&void 0!==arguments[3]?arguments[3]:s.JoseUtil;if(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),!e)throw o.Log.error("UserInfoService.ctor: No settings passed"),new Error("settings");this._settings=e,this._jsonService=new r(void 0,void 0,this._getClaimsFromJwt.bind(this)),this._metadataService=new a(this._settings),this._joseUtil=u}return t.prototype.getClaims=function(t){var e=this;return t?this._metadataService.getUserInfoEndpoint().then((function(r){return o.Log.debug("UserInfoService.getClaims: received userinfo url",r),e._jsonService.getJson(r,t).then((function(t){return o.Log.debug("UserInfoService.getClaims: claims received",t),t}))})):(o.Log.error("UserInfoService.getClaims: No token passed"),Promise.reject(new Error("A token is required")))},t.prototype._getClaimsFromJwt=function t(e){var r=this;try{var n=this._joseUtil.parseJwt(e.responseText);if(!n||!n.header||!n.payload)return o.Log.error("UserInfoService._getClaimsFromJwt: Failed to parse JWT",n),Promise.reject(new Error("Failed to parse id_token"));var i=n.header.kid,s=void 0;switch(this._settings.userInfoJwtIssuer){case"OP":s=this._metadataService.getIssuer();break;case"ANY":s=Promise.resolve(n.payload.iss);break;default:s=Promise.resolve(this._settings.userInfoJwtIssuer)}return s.then((function(t){return o.Log.debug("UserInfoService._getClaimsFromJwt: Received issuer:"+t),r._metadataService.getSigningKeys().then((function(s){if(!s)return o.Log.error("UserInfoService._getClaimsFromJwt: No signing keys from metadata"),Promise.reject(new Error("No signing keys from metadata"));o.Log.debug("UserInfoService._getClaimsFromJwt: Received signing keys");var a=void 0;if(i)a=s.filter((function(t){return t.kid===i}))[0];else{if((s=r._filterByAlg(s,n.header.alg)).length>1)return o.Log.error("UserInfoService._getClaimsFromJwt: No kid found in id_token and more than one key found in metadata"),Promise.reject(new Error("No kid found in id_token and more than one key found in metadata"));a=s[0]}if(!a)return o.Log.error("UserInfoService._getClaimsFromJwt: No key matching kid or alg found in signing keys"),Promise.reject(new Error("No key matching kid or alg found in signing keys"));var u=r._settings.client_id,c=r._settings.clockSkew;return o.Log.debug("UserInfoService._getClaimsFromJwt: Validaing JWT; using clock skew (in seconds) of: ",c),r._joseUtil.validateJwt(e.responseText,a,t,u,c,void 0,!0).then((function(){return o.Log.debug("UserInfoService._getClaimsFromJwt: JWT validation successful"),n.payload}))}))}))}catch(t){return o.Log.error("UserInfoService._getClaimsFromJwt: Error parsing JWT response",t.message),void reject(t)}},t.prototype._filterByAlg=function(t,e){var r=null;if(e.startsWith("RS"))r="RSA";else if(e.startsWith("PS"))r="PS";else{if(!e.startsWith("ES"))return o.Log.debug("UserInfoService._filterByAlg: alg not supported: ",e),[];r="EC"}return o.Log.debug("UserInfoService._filterByAlg: Looking for keys that match kty: ",r),t=t.filter((function(t){return t.kty===r})),o.Log.debug("UserInfoService._filterByAlg: Number of keys that match kty: ",r,t.length),t},t}()},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.AllowedSigningAlgs=e.b64tohex=e.hextob64u=e.crypto=e.X509=e.KeyUtil=e.jws=void 0;var n=r(27);e.jws=n.jws,e.KeyUtil=n.KEYUTIL,e.X509=n.X509,e.crypto=n.crypto,e.hextob64u=n.hextob64u,e.b64tohex=n.b64tohex,e.AllowedSigningAlgs=["RS256","RS384","RS512","PS256","PS384","PS512","ES256","ES384","ES512"]},function(t,e,r){"use strict";(function(t){Object.defineProperty(e,"__esModule",{value:!0});var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},n={userAgent:!1},i={};if(void 0===o)var o={};o.lang={extend:function(t,e,r){if(!e||!t)throw new Error("YAHOO.lang.extend failed, please check that all dependencies are included.");var i=function(){};if(i.prototype=e.prototype,t.prototype=new i,t.prototype.constructor=t,t.superclass=e.prototype,e.prototype.constructor==Object.prototype.constructor&&(e.prototype.constructor=e),r){var o;for(o in r)t.prototype[o]=r[o];var s=function(){},a=["toString","valueOf"];try{/MSIE/.test(n.userAgent)&&(s=function(t,e){for(o=0;o>>2]>>>24-o%4*8&255;e[n+o>>>2]|=s<<24-(n+o)%4*8}else for(o=0;o>>2]=r[o>>>2];return this.sigBytes+=i,this},clamp:function(){var t=this.words,e=this.sigBytes;t[e>>>2]&=4294967295<<32-e%4*8,t.length=s.ceil(e/4)},clone:function(){var t=c.clone.call(this);return t.words=this.words.slice(0),t},random:function(t){for(var e=[],r=0;r>>2]>>>24-i%4*8&255;n.push((o>>>4).toString(16)),n.push((15&o).toString(16))}return n.join("")},parse:function(t){for(var e=t.length,r=[],n=0;n>>3]|=parseInt(t.substr(n,2),16)<<24-n%8*4;return new h.init(r,e/2)}},g=l.Latin1={stringify:function(t){for(var e=t.words,r=t.sigBytes,n=[],i=0;i>>2]>>>24-i%4*8&255;n.push(String.fromCharCode(o))}return n.join("")},parse:function(t){for(var e=t.length,r=[],n=0;n>>2]|=(255&t.charCodeAt(n))<<24-n%4*8;return new h.init(r,e)}},d=l.Utf8={stringify:function(t){try{return decodeURIComponent(escape(g.stringify(t)))}catch(t){throw new Error("Malformed UTF-8 data")}},parse:function(t){return g.parse(unescape(encodeURIComponent(t)))}},p=u.BufferedBlockAlgorithm=c.extend({reset:function(){this._data=new h.init,this._nDataBytes=0},_append:function(t){"string"==typeof t&&(t=d.parse(t)),this._data.concat(t),this._nDataBytes+=t.sigBytes},_process:function(t){var e=this._data,r=e.words,n=e.sigBytes,i=this.blockSize,o=n/(4*i),a=(o=t?s.ceil(o):s.max((0|o)-this._minBufferSize,0))*i,u=s.min(4*a,n);if(a){for(var c=0;c>>2]>>>24-i%4*8&255)<<16|(e[i+1>>>2]>>>24-(i+1)%4*8&255)<<8|e[i+2>>>2]>>>24-(i+2)%4*8&255,s=0;4>s&&i+.75*s>>6*(3-s)&63));if(e=n.charAt(64))for(;t.length%4;)t.push(e);return t.join("")},parse:function(t){var r=t.length,n=this._map;(i=n.charAt(64))&&-1!=(i=t.indexOf(i))&&(r=i);for(var i=[],o=0,s=0;s>>6-s%4*2;i[o>>>2]|=(a|u)<<24-o%4*8,o++}return e.create(i,o)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="}}(),function(t){for(var e=y,r=(i=e.lib).WordArray,n=i.Hasher,i=e.algo,o=[],s=[],a=function(t){return 4294967296*(t-(0|t))|0},u=2,c=0;64>c;){var h;t:{h=u;for(var l=t.sqrt(h),f=2;f<=l;f++)if(!(h%f)){h=!1;break t}h=!0}h&&(8>c&&(o[c]=a(t.pow(u,.5))),s[c]=a(t.pow(u,1/3)),c++),u++}var g=[];i=i.SHA256=n.extend({_doReset:function(){this._hash=new r.init(o.slice(0))},_doProcessBlock:function(t,e){for(var r=this._hash.words,n=r[0],i=r[1],o=r[2],a=r[3],u=r[4],c=r[5],h=r[6],l=r[7],f=0;64>f;f++){if(16>f)g[f]=0|t[e+f];else{var d=g[f-15],p=g[f-2];g[f]=((d<<25|d>>>7)^(d<<14|d>>>18)^d>>>3)+g[f-7]+((p<<15|p>>>17)^(p<<13|p>>>19)^p>>>10)+g[f-16]}d=l+((u<<26|u>>>6)^(u<<21|u>>>11)^(u<<7|u>>>25))+(u&c^~u&h)+s[f]+g[f],p=((n<<30|n>>>2)^(n<<19|n>>>13)^(n<<10|n>>>22))+(n&i^n&o^i&o),l=h,h=c,c=u,u=a+d|0,a=o,o=i,i=n,n=d+p|0}r[0]=r[0]+n|0,r[1]=r[1]+i|0,r[2]=r[2]+o|0,r[3]=r[3]+a|0,r[4]=r[4]+u|0,r[5]=r[5]+c|0,r[6]=r[6]+h|0,r[7]=r[7]+l|0},_doFinalize:function(){var e=this._data,r=e.words,n=8*this._nDataBytes,i=8*e.sigBytes;return r[i>>>5]|=128<<24-i%32,r[14+(i+64>>>9<<4)]=t.floor(n/4294967296),r[15+(i+64>>>9<<4)]=n,e.sigBytes=4*r.length,this._process(),this._hash},clone:function(){var t=n.clone.call(this);return t._hash=this._hash.clone(),t}}),e.SHA256=n._createHelper(i),e.HmacSHA256=n._createHmacHelper(i)}(Math),function(){function t(){return n.create.apply(n,arguments)}for(var e=y,r=e.lib.Hasher,n=(o=e.x64).Word,i=o.WordArray,o=e.algo,s=[t(1116352408,3609767458),t(1899447441,602891725),t(3049323471,3964484399),t(3921009573,2173295548),t(961987163,4081628472),t(1508970993,3053834265),t(2453635748,2937671579),t(2870763221,3664609560),t(3624381080,2734883394),t(310598401,1164996542),t(607225278,1323610764),t(1426881987,3590304994),t(1925078388,4068182383),t(2162078206,991336113),t(2614888103,633803317),t(3248222580,3479774868),t(3835390401,2666613458),t(4022224774,944711139),t(264347078,2341262773),t(604807628,2007800933),t(770255983,1495990901),t(1249150122,1856431235),t(1555081692,3175218132),t(1996064986,2198950837),t(2554220882,3999719339),t(2821834349,766784016),t(2952996808,2566594879),t(3210313671,3203337956),t(3336571891,1034457026),t(3584528711,2466948901),t(113926993,3758326383),t(338241895,168717936),t(666307205,1188179964),t(773529912,1546045734),t(1294757372,1522805485),t(1396182291,2643833823),t(1695183700,2343527390),t(1986661051,1014477480),t(2177026350,1206759142),t(2456956037,344077627),t(2730485921,1290863460),t(2820302411,3158454273),t(3259730800,3505952657),t(3345764771,106217008),t(3516065817,3606008344),t(3600352804,1432725776),t(4094571909,1467031594),t(275423344,851169720),t(430227734,3100823752),t(506948616,1363258195),t(659060556,3750685593),t(883997877,3785050280),t(958139571,3318307427),t(1322822218,3812723403),t(1537002063,2003034995),t(1747873779,3602036899),t(1955562222,1575990012),t(2024104815,1125592928),t(2227730452,2716904306),t(2361852424,442776044),t(2428436474,593698344),t(2756734187,3733110249),t(3204031479,2999351573),t(3329325298,3815920427),t(3391569614,3928383900),t(3515267271,566280711),t(3940187606,3454069534),t(4118630271,4000239992),t(116418474,1914138554),t(174292421,2731055270),t(289380356,3203993006),t(460393269,320620315),t(685471733,587496836),t(852142971,1086792851),t(1017036298,365543100),t(1126000580,2618297676),t(1288033470,3409855158),t(1501505948,4234509866),t(1607167915,987167468),t(1816402316,1246189591)],a=[],u=0;80>u;u++)a[u]=t();o=o.SHA512=r.extend({_doReset:function(){this._hash=new i.init([new n.init(1779033703,4089235720),new n.init(3144134277,2227873595),new n.init(1013904242,4271175723),new n.init(2773480762,1595750129),new n.init(1359893119,2917565137),new n.init(2600822924,725511199),new n.init(528734635,4215389547),new n.init(1541459225,327033209)])},_doProcessBlock:function(t,e){for(var r=(l=this._hash.words)[0],n=l[1],i=l[2],o=l[3],u=l[4],c=l[5],h=l[6],l=l[7],f=r.high,g=r.low,d=n.high,p=n.low,v=i.high,y=i.low,m=o.high,_=o.low,S=u.high,w=u.low,b=c.high,F=c.low,E=h.high,x=h.low,A=l.high,k=l.low,P=f,C=g,T=d,R=p,I=v,D=y,L=m,N=_,U=S,O=w,B=b,M=F,j=E,H=x,K=A,V=k,q=0;80>q;q++){var J=a[q];if(16>q)var W=J.high=0|t[e+2*q],z=J.low=0|t[e+2*q+1];else{W=((z=(W=a[q-15]).high)>>>1|(Y=W.low)<<31)^(z>>>8|Y<<24)^z>>>7;var Y=(Y>>>1|z<<31)^(Y>>>8|z<<24)^(Y>>>7|z<<25),G=((z=(G=a[q-2]).high)>>>19|($=G.low)<<13)^(z<<3|$>>>29)^z>>>6,$=($>>>19|z<<13)^($<<3|z>>>29)^($>>>6|z<<26),X=(z=a[q-7]).high,Q=(Z=a[q-16]).high,Z=Z.low;W=(W=(W=W+X+((z=Y+z.low)>>>0>>0?1:0))+G+((z+=$)>>>0<$>>>0?1:0))+Q+((z+=Z)>>>0>>0?1:0),J.high=W,J.low=z}X=U&B^~U&j,Z=O&M^~O&H,J=P&T^P&I^T&I;var tt=C&R^C&D^R&D,et=(Y=(P>>>28|C<<4)^(P<<30|C>>>2)^(P<<25|C>>>7),G=(C>>>28|P<<4)^(C<<30|P>>>2)^(C<<25|P>>>7),($=s[q]).high),rt=$.low;Q=K+((U>>>14|O<<18)^(U>>>18|O<<14)^(U<<23|O>>>9))+(($=V+((O>>>14|U<<18)^(O>>>18|U<<14)^(O<<23|U>>>9)))>>>0>>0?1:0),K=j,V=H,j=B,H=M,B=U,M=O,U=L+(Q=(Q=(Q=Q+X+(($+=Z)>>>0>>0?1:0))+et+(($+=rt)>>>0>>0?1:0))+W+(($+=z)>>>0>>0?1:0))+((O=N+$|0)>>>0>>0?1:0)|0,L=I,N=D,I=T,D=R,T=P,R=C,P=Q+(J=Y+J+((z=G+tt)>>>0>>0?1:0))+((C=$+z|0)>>>0<$>>>0?1:0)|0}g=r.low=g+C,r.high=f+P+(g>>>0>>0?1:0),p=n.low=p+R,n.high=d+T+(p>>>0>>0?1:0),y=i.low=y+D,i.high=v+I+(y>>>0>>0?1:0),_=o.low=_+N,o.high=m+L+(_>>>0>>0?1:0),w=u.low=w+O,u.high=S+U+(w>>>0>>0?1:0),F=c.low=F+M,c.high=b+B+(F>>>0>>0?1:0),x=h.low=x+H,h.high=E+j+(x>>>0>>0?1:0),k=l.low=k+V,l.high=A+K+(k>>>0>>0?1:0)},_doFinalize:function(){var t=this._data,e=t.words,r=8*this._nDataBytes,n=8*t.sigBytes;return e[n>>>5]|=128<<24-n%32,e[30+(n+128>>>10<<5)]=Math.floor(r/4294967296),e[31+(n+128>>>10<<5)]=r,t.sigBytes=4*e.length,this._process(),this._hash.toX32()},clone:function(){var t=r.clone.call(this);return t._hash=this._hash.clone(),t},blockSize:32}),e.SHA512=r._createHelper(o),e.HmacSHA512=r._createHmacHelper(o)}(),function(){var t=y,e=(i=t.x64).Word,r=i.WordArray,n=(i=t.algo).SHA512,i=i.SHA384=n.extend({_doReset:function(){this._hash=new r.init([new e.init(3418070365,3238371032),new e.init(1654270250,914150663),new e.init(2438529370,812702999),new e.init(355462360,4144912697),new e.init(1731405415,4290775857),new e.init(2394180231,1750603025),new e.init(3675008525,1694076839),new e.init(1203062813,3204075428)])},_doFinalize:function(){var t=n._doFinalize.call(this);return t.sigBytes-=16,t}});t.SHA384=n._createHelper(i),t.HmacSHA384=n._createHmacHelper(i)}();var m,_="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";function S(t){var e,r,n="";for(e=0;e+3<=t.length;e+=3)r=parseInt(t.substring(e,e+3),16),n+=_.charAt(r>>6)+_.charAt(63&r);for(e+1==t.length?(r=parseInt(t.substring(e,e+1),16),n+=_.charAt(r<<2)):e+2==t.length&&(r=parseInt(t.substring(e,e+2),16),n+=_.charAt(r>>2)+_.charAt((3&r)<<4));(3&n.length)>0;)n+="=";return n}function w(t){var e,r,n,i="",o=0;for(e=0;e>2),r=3&n,o=1):1==o?(i+=P(r<<2|n>>4),r=15&n,o=2):2==o?(i+=P(r),i+=P(n>>2),r=3&n,o=3):(i+=P(r<<2|n>>4),i+=P(15&n),o=0));return 1==o&&(i+=P(r<<2)),i}function b(t){var e,r=w(t),n=new Array;for(e=0;2*e>15;--o>=0;){var u=32767&this[t],c=this[t++]>>15,h=a*u+c*s;i=((u=s*u+((32767&h)<<15)+r[n]+(1073741823&i))>>>30)+(h>>>15)+a*c+(i>>>30),r[n++]=1073741823&u}return i},m=30):"Netscape"!=n.appName?(F.prototype.am=function(t,e,r,n,i,o){for(;--o>=0;){var s=e*this[t++]+r[n]+i;i=Math.floor(s/67108864),r[n++]=67108863&s}return i},m=26):(F.prototype.am=function(t,e,r,n,i,o){for(var s=16383&e,a=e>>14;--o>=0;){var u=16383&this[t],c=this[t++]>>14,h=a*u+c*s;i=((u=s*u+((16383&h)<<14)+r[n]+i)>>28)+(h>>14)+a*c,r[n++]=268435455&u}return i},m=28),F.prototype.DB=m,F.prototype.DM=(1<>>16)&&(t=e,r+=16),0!=(e=t>>8)&&(t=e,r+=8),0!=(e=t>>4)&&(t=e,r+=4),0!=(e=t>>2)&&(t=e,r+=2),0!=(e=t>>1)&&(t=e,r+=1),r}function I(t){this.m=t}function D(t){this.m=t,this.mp=t.invDigit(),this.mpl=32767&this.mp,this.mph=this.mp>>15,this.um=(1<>=16,e+=16),0==(255&t)&&(t>>=8,e+=8),0==(15&t)&&(t>>=4,e+=4),0==(3&t)&&(t>>=2,e+=2),0==(1&t)&&++e,e}function M(t){for(var e=0;0!=t;)t&=t-1,++e;return e}function j(){}function H(t){return t}function K(t){this.r2=E(),this.q3=E(),F.ONE.dlShiftTo(2*t.t,this.r2),this.mu=this.r2.divide(t),this.m=t}I.prototype.convert=function(t){return t.s<0||t.compareTo(this.m)>=0?t.mod(this.m):t},I.prototype.revert=function(t){return t},I.prototype.reduce=function(t){t.divRemTo(this.m,null,t)},I.prototype.mulTo=function(t,e,r){t.multiplyTo(e,r),this.reduce(r)},I.prototype.sqrTo=function(t,e){t.squareTo(e),this.reduce(e)},D.prototype.convert=function(t){var e=E();return t.abs().dlShiftTo(this.m.t,e),e.divRemTo(this.m,null,e),t.s<0&&e.compareTo(F.ZERO)>0&&this.m.subTo(e,e),e},D.prototype.revert=function(t){var e=E();return t.copyTo(e),this.reduce(e),e},D.prototype.reduce=function(t){for(;t.t<=this.mt2;)t[t.t++]=0;for(var e=0;e>15)*this.mpl&this.um)<<15)&t.DM;for(t[r=e+this.m.t]+=this.m.am(0,n,t,e,0,this.m.t);t[r]>=t.DV;)t[r]-=t.DV,t[++r]++}t.clamp(),t.drShiftTo(this.m.t,t),t.compareTo(this.m)>=0&&t.subTo(this.m,t)},D.prototype.mulTo=function(t,e,r){t.multiplyTo(e,r),this.reduce(r)},D.prototype.sqrTo=function(t,e){t.squareTo(e),this.reduce(e)},F.prototype.copyTo=function(t){for(var e=this.t-1;e>=0;--e)t[e]=this[e];t.t=this.t,t.s=this.s},F.prototype.fromInt=function(t){this.t=1,this.s=t<0?-1:0,t>0?this[0]=t:t<-1?this[0]=t+this.DV:this.t=0},F.prototype.fromString=function(t,e){var r;if(16==e)r=4;else if(8==e)r=3;else if(256==e)r=8;else if(2==e)r=1;else if(32==e)r=5;else{if(4!=e)return void this.fromRadix(t,e);r=2}this.t=0,this.s=0;for(var n=t.length,i=!1,o=0;--n>=0;){var s=8==r?255&t[n]:C(t,n);s<0?"-"==t.charAt(n)&&(i=!0):(i=!1,0==o?this[this.t++]=s:o+r>this.DB?(this[this.t-1]|=(s&(1<>this.DB-o):this[this.t-1]|=s<=this.DB&&(o-=this.DB))}8==r&&0!=(128&t[0])&&(this.s=-1,o>0&&(this[this.t-1]|=(1<0&&this[this.t-1]==t;)--this.t},F.prototype.dlShiftTo=function(t,e){var r;for(r=this.t-1;r>=0;--r)e[r+t]=this[r];for(r=t-1;r>=0;--r)e[r]=0;e.t=this.t+t,e.s=this.s},F.prototype.drShiftTo=function(t,e){for(var r=t;r=0;--r)e[r+s+1]=this[r]>>i|a,a=(this[r]&o)<=0;--r)e[r]=0;e[s]=a,e.t=this.t+s+1,e.s=this.s,e.clamp()},F.prototype.rShiftTo=function(t,e){e.s=this.s;var r=Math.floor(t/this.DB);if(r>=this.t)e.t=0;else{var n=t%this.DB,i=this.DB-n,o=(1<>n;for(var s=r+1;s>n;n>0&&(e[this.t-r-1]|=(this.s&o)<>=this.DB;if(t.t>=this.DB;n+=this.s}else{for(n+=this.s;r>=this.DB;n-=t.s}e.s=n<0?-1:0,n<-1?e[r++]=this.DV+n:n>0&&(e[r++]=n),e.t=r,e.clamp()},F.prototype.multiplyTo=function(t,e){var r=this.abs(),n=t.abs(),i=r.t;for(e.t=i+n.t;--i>=0;)e[i]=0;for(i=0;i=0;)t[r]=0;for(r=0;r=e.DV&&(t[r+e.t]-=e.DV,t[r+e.t+1]=1)}t.t>0&&(t[t.t-1]+=e.am(r,e[r],t,2*r,0,1)),t.s=0,t.clamp()},F.prototype.divRemTo=function(t,e,r){var n=t.abs();if(!(n.t<=0)){var i=this.abs();if(i.t0?(n.lShiftTo(u,o),i.lShiftTo(u,r)):(n.copyTo(o),i.copyTo(r));var c=o.t,h=o[c-1];if(0!=h){var l=h*(1<1?o[c-2]>>this.F2:0),f=this.FV/l,g=(1<=0&&(r[r.t++]=1,r.subTo(y,r)),F.ONE.dlShiftTo(c,y),y.subTo(o,o);o.t=0;){var m=r[--p]==h?this.DM:Math.floor(r[p]*f+(r[p-1]+d)*g);if((r[p]+=o.am(0,m,r,v,0,c))0&&r.rShiftTo(u,r),s<0&&F.ZERO.subTo(r,r)}}},F.prototype.invDigit=function(){if(this.t<1)return 0;var t=this[0];if(0==(1&t))return 0;var e=3&t;return(e=(e=(e=(e=e*(2-(15&t)*e)&15)*(2-(255&t)*e)&255)*(2-((65535&t)*e&65535))&65535)*(2-t*e%this.DV)%this.DV)>0?this.DV-e:-e},F.prototype.isEven=function(){return 0==(this.t>0?1&this[0]:this.s)},F.prototype.exp=function(t,e){if(t>4294967295||t<1)return F.ONE;var r=E(),n=E(),i=e.convert(this),o=R(t)-1;for(i.copyTo(r);--o>=0;)if(e.sqrTo(r,n),(t&1<0)e.mulTo(n,i,r);else{var s=r;r=n,n=s}return e.revert(r)},F.prototype.toString=function(t){if(this.s<0)return"-"+this.negate().toString(t);var e;if(16==t)e=4;else if(8==t)e=3;else if(2==t)e=1;else if(32==t)e=5;else{if(4!=t)return this.toRadix(t);e=2}var r,n=(1<0)for(a>a)>0&&(i=!0,o=P(r));s>=0;)a>(a+=this.DB-e)):(r=this[s]>>(a-=e)&n,a<=0&&(a+=this.DB,--s)),r>0&&(i=!0),i&&(o+=P(r));return i?o:"0"},F.prototype.negate=function(){var t=E();return F.ZERO.subTo(this,t),t},F.prototype.abs=function(){return this.s<0?this.negate():this},F.prototype.compareTo=function(t){var e=this.s-t.s;if(0!=e)return e;var r=this.t;if(0!=(e=r-t.t))return this.s<0?-e:e;for(;--r>=0;)if(0!=(e=this[r]-t[r]))return e;return 0},F.prototype.bitLength=function(){return this.t<=0?0:this.DB*(this.t-1)+R(this[this.t-1]^this.s&this.DM)},F.prototype.mod=function(t){var e=E();return this.abs().divRemTo(t,null,e),this.s<0&&e.compareTo(F.ZERO)>0&&t.subTo(e,e),e},F.prototype.modPowInt=function(t,e){var r;return r=t<256||e.isEven()?new I(e):new D(e),this.exp(t,r)},F.ZERO=T(0),F.ONE=T(1),j.prototype.convert=H,j.prototype.revert=H,j.prototype.mulTo=function(t,e,r){t.multiplyTo(e,r)},j.prototype.sqrTo=function(t,e){t.squareTo(e)},K.prototype.convert=function(t){if(t.s<0||t.t>2*this.m.t)return t.mod(this.m);if(t.compareTo(this.m)<0)return t;var e=E();return t.copyTo(e),this.reduce(e),e},K.prototype.revert=function(t){return t},K.prototype.reduce=function(t){for(t.drShiftTo(this.m.t-1,this.r2),t.t>this.m.t+1&&(t.t=this.m.t+1,t.clamp()),this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3),this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);t.compareTo(this.r2)<0;)t.dAddOffset(1,this.m.t+1);for(t.subTo(this.r2,t);t.compareTo(this.m)>=0;)t.subTo(this.m,t)},K.prototype.mulTo=function(t,e,r){t.multiplyTo(e,r),this.reduce(r)},K.prototype.sqrTo=function(t,e){t.squareTo(e),this.reduce(e)};var V,q,J,W=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997],z=(1<<26)/W[W.length-1];function Y(){this.i=0,this.j=0,this.S=new Array}function G(){!function(t){q[J++]^=255&t,q[J++]^=t>>8&255,q[J++]^=t>>16&255,q[J++]^=t>>24&255,J>=256&&(J-=256)}((new Date).getTime())}if(F.prototype.chunkSize=function(t){return Math.floor(Math.LN2*this.DB/Math.log(t))},F.prototype.toRadix=function(t){if(null==t&&(t=10),0==this.signum()||t<2||t>36)return"0";var e=this.chunkSize(t),r=Math.pow(t,e),n=T(r),i=E(),o=E(),s="";for(this.divRemTo(n,i,o);i.signum()>0;)s=(r+o.intValue()).toString(t).substr(1)+s,i.divRemTo(n,i,o);return o.intValue().toString(t)+s},F.prototype.fromRadix=function(t,e){this.fromInt(0),null==e&&(e=10);for(var r=this.chunkSize(e),n=Math.pow(e,r),i=!1,o=0,s=0,a=0;a=r&&(this.dMultiply(n),this.dAddOffset(s,0),o=0,s=0))}o>0&&(this.dMultiply(Math.pow(e,o)),this.dAddOffset(s,0)),i&&F.ZERO.subTo(this,this)},F.prototype.fromNumber=function(t,e,r){if("number"==typeof e)if(t<2)this.fromInt(1);else for(this.fromNumber(t,r),this.testBit(t-1)||this.bitwiseTo(F.ONE.shiftLeft(t-1),N,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(e);)this.dAddOffset(2,0),this.bitLength()>t&&this.subTo(F.ONE.shiftLeft(t-1),this);else{var n=new Array,i=7&t;n.length=1+(t>>3),e.nextBytes(n),i>0?n[0]&=(1<>=this.DB;if(t.t>=this.DB;n+=this.s}else{for(n+=this.s;r>=this.DB;n+=t.s}e.s=n<0?-1:0,n>0?e[r++]=n:n<-1&&(e[r++]=this.DV+n),e.t=r,e.clamp()},F.prototype.dMultiply=function(t){this[this.t]=this.am(0,t-1,this,0,0,this.t),++this.t,this.clamp()},F.prototype.dAddOffset=function(t,e){if(0!=t){for(;this.t<=e;)this[this.t++]=0;for(this[e]+=t;this[e]>=this.DV;)this[e]-=this.DV,++e>=this.t&&(this[this.t++]=0),++this[e]}},F.prototype.multiplyLowerTo=function(t,e,r){var n,i=Math.min(this.t+t.t,e);for(r.s=0,r.t=i;i>0;)r[--i]=0;for(n=r.t-this.t;i=0;)r[n]=0;for(n=Math.max(e-this.t,0);n0)if(0==e)r=this[0]%t;else for(var n=this.t-1;n>=0;--n)r=(e*r+this[n])%t;return r},F.prototype.millerRabin=function(t){var e=this.subtract(F.ONE),r=e.getLowestSetBit();if(r<=0)return!1;var n=e.shiftRight(r);(t=t+1>>1)>W.length&&(t=W.length);for(var i=E(),o=0;o>24},F.prototype.shortValue=function(){return 0==this.t?this.s:this[0]<<16>>16},F.prototype.signum=function(){return this.s<0?-1:this.t<=0||1==this.t&&this[0]<=0?0:1},F.prototype.toByteArray=function(){var t=this.t,e=new Array;e[0]=this.s;var r,n=this.DB-t*this.DB%8,i=0;if(t-- >0)for(n>n)!=(this.s&this.DM)>>n&&(e[i++]=r|this.s<=0;)n<8?(r=(this[t]&(1<>(n+=this.DB-8)):(r=this[t]>>(n-=8)&255,n<=0&&(n+=this.DB,--t)),0!=(128&r)&&(r|=-256),0==i&&(128&this.s)!=(128&r)&&++i,(i>0||r!=this.s)&&(e[i++]=r);return e},F.prototype.equals=function(t){return 0==this.compareTo(t)},F.prototype.min=function(t){return this.compareTo(t)<0?this:t},F.prototype.max=function(t){return this.compareTo(t)>0?this:t},F.prototype.and=function(t){var e=E();return this.bitwiseTo(t,L,e),e},F.prototype.or=function(t){var e=E();return this.bitwiseTo(t,N,e),e},F.prototype.xor=function(t){var e=E();return this.bitwiseTo(t,U,e),e},F.prototype.andNot=function(t){var e=E();return this.bitwiseTo(t,O,e),e},F.prototype.not=function(){for(var t=E(),e=0;e=this.t?0!=this.s:0!=(this[e]&1<1){var h=E();for(n.sqrTo(s[1],h);a<=c;)s[a]=E(),n.mulTo(h,s[a-2],s[a]),a+=2}var l,f,g=t.t-1,d=!0,p=E();for(i=R(t[g])-1;g>=0;){for(i>=u?l=t[g]>>i-u&c:(l=(t[g]&(1<0&&(l|=t[g-1]>>this.DB+i-u)),a=r;0==(1&l);)l>>=1,--a;if((i-=a)<0&&(i+=this.DB,--g),d)s[l].copyTo(o),d=!1;else{for(;a>1;)n.sqrTo(o,p),n.sqrTo(p,o),a-=2;a>0?n.sqrTo(o,p):(f=o,o=p,p=f),n.mulTo(p,s[l],o)}for(;g>=0&&0==(t[g]&1<=0?(r.subTo(n,r),e&&i.subTo(s,i),o.subTo(a,o)):(n.subTo(r,n),e&&s.subTo(i,s),a.subTo(o,a))}return 0!=n.compareTo(F.ONE)?F.ZERO:a.compareTo(t)>=0?a.subtract(t):a.signum()<0?(a.addTo(t,a),a.signum()<0?a.add(t):a):a},F.prototype.pow=function(t){return this.exp(t,new j)},F.prototype.gcd=function(t){var e=this.s<0?this.negate():this.clone(),r=t.s<0?t.negate():t.clone();if(e.compareTo(r)<0){var n=e;e=r,r=n}var i=e.getLowestSetBit(),o=r.getLowestSetBit();if(o<0)return e;for(i0&&(e.rShiftTo(o,e),r.rShiftTo(o,r));e.signum()>0;)(i=e.getLowestSetBit())>0&&e.rShiftTo(i,e),(i=r.getLowestSetBit())>0&&r.rShiftTo(i,r),e.compareTo(r)>=0?(e.subTo(r,e),e.rShiftTo(1,e)):(r.subTo(e,r),r.rShiftTo(1,r));return o>0&&r.lShiftTo(o,r),r},F.prototype.isProbablePrime=function(t){var e,r=this.abs();if(1==r.t&&r[0]<=W[W.length-1]){for(e=0;e>>8,q[J++]=255&$;J=0,G()}function tt(){if(null==V){for(G(),(V=new Y).init(q),J=0;J>24,(16711680&i)>>16,(65280&i)>>8,255&i]))),i+=1;return n}function it(){this.n=null,this.e=0,this.d=null,this.p=null,this.q=null,this.dmp1=null,this.dmq1=null,this.coeff=null}function ot(t,e){this.x=e,this.q=t}function st(t,e,r,n){this.curve=t,this.x=e,this.y=r,this.z=null==n?F.ONE:n,this.zinv=null}function at(t,e,r){this.q=t,this.a=this.fromBigInteger(e),this.b=this.fromBigInteger(r),this.infinity=new st(this,null,null)}et.prototype.nextBytes=function(t){var e;for(e=0;e0&&e.length>0))throw"Invalid RSA public key";this.n=rt(t,16),this.e=parseInt(e,16)}},it.prototype.encrypt=function(t){var e=function(t,e){if(e=0&&e>0;){var i=t.charCodeAt(n--);i<128?r[--e]=i:i>127&&i<2048?(r[--e]=63&i|128,r[--e]=i>>6|192):(r[--e]=63&i|128,r[--e]=i>>6&63|128,r[--e]=i>>12|224)}r[--e]=0;for(var o=new et,s=new Array;e>2;){for(s[0]=0;0==s[0];)o.nextBytes(s);r[--e]=s[0]}return r[--e]=2,r[--e]=0,new F(r)}(t,this.n.bitLength()+7>>3);if(null==e)return null;var r=this.doPublic(e);if(null==r)return null;var n=r.toString(16);return 0==(1&n.length)?n:"0"+n},it.prototype.encryptOAEP=function(t,e,r){var n=function(t,e,r,n){var i=ct.crypto.MessageDigest,o=ct.crypto.Util,s=null;if(r||(r="sha1"),"string"==typeof r&&(s=i.getCanonicalAlgName(r),n=i.getHashLength(s),r=function(t){return Ft(o.hashHex(Et(t),s))}),t.length+2*n+2>e)throw"Message too long for RSA";var a,u="";for(a=0;a>3,e,r);if(null==n)return null;var i=this.doPublic(n);if(null==i)return null;var o=i.toString(16);return 0==(1&o.length)?o:"0"+o},it.prototype.type="RSA",ot.prototype.equals=function(t){return t==this||this.q.equals(t.q)&&this.x.equals(t.x)},ot.prototype.toBigInteger=function(){return this.x},ot.prototype.negate=function(){return new ot(this.q,this.x.negate().mod(this.q))},ot.prototype.add=function(t){return new ot(this.q,this.x.add(t.toBigInteger()).mod(this.q))},ot.prototype.subtract=function(t){return new ot(this.q,this.x.subtract(t.toBigInteger()).mod(this.q))},ot.prototype.multiply=function(t){return new ot(this.q,this.x.multiply(t.toBigInteger()).mod(this.q))},ot.prototype.square=function(){return new ot(this.q,this.x.square().mod(this.q))},ot.prototype.divide=function(t){return new ot(this.q,this.x.multiply(t.toBigInteger().modInverse(this.q)).mod(this.q))},st.prototype.getX=function(){return null==this.zinv&&(this.zinv=this.z.modInverse(this.curve.q)),this.curve.fromBigInteger(this.x.toBigInteger().multiply(this.zinv).mod(this.curve.q))},st.prototype.getY=function(){return null==this.zinv&&(this.zinv=this.z.modInverse(this.curve.q)),this.curve.fromBigInteger(this.y.toBigInteger().multiply(this.zinv).mod(this.curve.q))},st.prototype.equals=function(t){return t==this||(this.isInfinity()?t.isInfinity():t.isInfinity()?this.isInfinity():!!t.y.toBigInteger().multiply(this.z).subtract(this.y.toBigInteger().multiply(t.z)).mod(this.curve.q).equals(F.ZERO)&&t.x.toBigInteger().multiply(this.z).subtract(this.x.toBigInteger().multiply(t.z)).mod(this.curve.q).equals(F.ZERO))},st.prototype.isInfinity=function(){return null==this.x&&null==this.y||this.z.equals(F.ZERO)&&!this.y.toBigInteger().equals(F.ZERO)},st.prototype.negate=function(){return new st(this.curve,this.x,this.y.negate(),this.z)},st.prototype.add=function(t){if(this.isInfinity())return t;if(t.isInfinity())return this;var e=t.y.toBigInteger().multiply(this.z).subtract(this.y.toBigInteger().multiply(t.z)).mod(this.curve.q),r=t.x.toBigInteger().multiply(this.z).subtract(this.x.toBigInteger().multiply(t.z)).mod(this.curve.q);if(F.ZERO.equals(r))return F.ZERO.equals(e)?this.twice():this.curve.getInfinity();var n=new F("3"),i=this.x.toBigInteger(),o=this.y.toBigInteger(),s=(t.x.toBigInteger(),t.y.toBigInteger(),r.square()),a=s.multiply(r),u=i.multiply(s),c=e.square().multiply(this.z),h=c.subtract(u.shiftLeft(1)).multiply(t.z).subtract(a).multiply(r).mod(this.curve.q),l=u.multiply(n).multiply(e).subtract(o.multiply(a)).subtract(c.multiply(e)).multiply(t.z).add(e.multiply(a)).mod(this.curve.q),f=a.multiply(this.z).multiply(t.z).mod(this.curve.q);return new st(this.curve,this.curve.fromBigInteger(h),this.curve.fromBigInteger(l),f)},st.prototype.twice=function(){if(this.isInfinity())return this;if(0==this.y.toBigInteger().signum())return this.curve.getInfinity();var t=new F("3"),e=this.x.toBigInteger(),r=this.y.toBigInteger(),n=r.multiply(this.z),i=n.multiply(r).mod(this.curve.q),o=this.curve.a.toBigInteger(),s=e.square().multiply(t);F.ZERO.equals(o)||(s=s.add(this.z.square().multiply(o)));var a=(s=s.mod(this.curve.q)).square().subtract(e.shiftLeft(3).multiply(i)).shiftLeft(1).multiply(n).mod(this.curve.q),u=s.multiply(t).multiply(e).subtract(i.shiftLeft(1)).shiftLeft(2).multiply(i).subtract(s.square().multiply(s)).mod(this.curve.q),c=n.square().multiply(n).shiftLeft(3).mod(this.curve.q);return new st(this.curve,this.curve.fromBigInteger(a),this.curve.fromBigInteger(u),c)},st.prototype.multiply=function(t){if(this.isInfinity())return this;if(0==t.signum())return this.curve.getInfinity();var e,r=t,n=r.multiply(new F("3")),i=this.negate(),o=this,s=this.curve.q.subtract(t),a=s.multiply(new F("3")),u=new st(this.curve,this.x,this.y),c=u.negate();for(e=n.bitLength()-2;e>0;--e){o=o.twice();var h=n.testBit(e);h!=r.testBit(e)&&(o=o.add(h?this:i))}for(e=a.bitLength()-2;e>0;--e){u=u.twice();var l=a.testBit(e);l!=s.testBit(e)&&(u=u.add(l?u:c))}return o},st.prototype.multiplyTwo=function(t,e,r){var n;n=t.bitLength()>r.bitLength()?t.bitLength()-1:r.bitLength()-1;for(var i=this.curve.getInfinity(),o=this.add(e);n>=0;)i=i.twice(),t.testBit(n)?i=r.testBit(n)?i.add(o):i.add(this):r.testBit(n)&&(i=i.add(e)),--n;return i},at.prototype.getQ=function(){return this.q},at.prototype.getA=function(){return this.a},at.prototype.getB=function(){return this.b},at.prototype.equals=function(t){return t==this||this.q.equals(t.q)&&this.a.equals(t.a)&&this.b.equals(t.b)},at.prototype.getInfinity=function(){return this.infinity},at.prototype.fromBigInteger=function(t){return new ot(this.q,t)},at.prototype.decodePointHex=function(t){switch(parseInt(t.substr(0,2),16)){case 0:return this.infinity;case 2:case 3:default:return null;case 4:case 6:case 7:var e=(t.length-2)/2,r=t.substr(2,e),n=t.substr(e+2,e);return new st(this,this.fromBigInteger(new F(r,16)),this.fromBigInteger(new F(n,16)))}},ot.prototype.getByteLength=function(){return Math.floor((this.toBigInteger().bitLength()+7)/8)},st.prototype.getEncoded=function(t){var e=function(t,e){var r=t.toByteArrayUnsigned();if(er.length;)r.unshift(0);return r},r=this.getX().toBigInteger(),n=this.getY().toBigInteger(),i=e(r,32);return t?n.isEven()?i.unshift(2):i.unshift(3):(i.unshift(4),i=i.concat(e(n,32))),i},st.decodeFrom=function(t,e){e[0];var r=e.length-1,n=e.slice(1,1+r/2),i=e.slice(1+r/2,1+r);n.unshift(0),i.unshift(0);var o=new F(n),s=new F(i);return new st(t,t.fromBigInteger(o),t.fromBigInteger(s))},st.decodeFromHex=function(t,e){e.substr(0,2);var r=e.length-2,n=e.substr(2,r/2),i=e.substr(2+r/2,r/2),o=new F(n,16),s=new F(i,16);return new st(t,t.fromBigInteger(o),t.fromBigInteger(s))},st.prototype.add2D=function(t){if(this.isInfinity())return t;if(t.isInfinity())return this;if(this.x.equals(t.x))return this.y.equals(t.y)?this.twice():this.curve.getInfinity();var e=t.x.subtract(this.x),r=t.y.subtract(this.y).divide(e),n=r.square().subtract(this.x).subtract(t.x),i=r.multiply(this.x.subtract(n)).subtract(this.y);return new st(this.curve,n,i)},st.prototype.twice2D=function(){if(this.isInfinity())return this;if(0==this.y.toBigInteger().signum())return this.curve.getInfinity();var t=this.curve.fromBigInteger(F.valueOf(2)),e=this.curve.fromBigInteger(F.valueOf(3)),r=this.x.square().multiply(e).add(this.curve.a).divide(this.y.multiply(t)),n=r.square().subtract(this.x.multiply(t)),i=r.multiply(this.x.subtract(n)).subtract(this.y);return new st(this.curve,n,i)},st.prototype.multiply2D=function(t){if(this.isInfinity())return this;if(0==t.signum())return this.curve.getInfinity();var e,r=t,n=r.multiply(new F("3")),i=this.negate(),o=this;for(e=n.bitLength()-2;e>0;--e){o=o.twice();var s=n.testBit(e);s!=r.testBit(e)&&(o=o.add2D(s?this:i))}return o},st.prototype.isOnCurve=function(){var t=this.getX().toBigInteger(),e=this.getY().toBigInteger(),r=this.curve.getA().toBigInteger(),n=this.curve.getB().toBigInteger(),i=this.curve.getQ(),o=e.multiply(e).mod(i),s=t.multiply(t).multiply(t).add(r.multiply(t)).add(n).mod(i);return o.equals(s)},st.prototype.toString=function(){return"("+this.getX().toBigInteger().toString()+","+this.getY().toBigInteger().toString()+")"},st.prototype.validate=function(){var t=this.curve.getQ();if(this.isInfinity())throw new Error("Point is at infinity.");var e=this.getX().toBigInteger(),r=this.getY().toBigInteger();if(e.compareTo(F.ONE)<0||e.compareTo(t.subtract(F.ONE))>0)throw new Error("x coordinate out of bounds");if(r.compareTo(F.ONE)<0||r.compareTo(t.subtract(F.ONE))>0)throw new Error("y coordinate out of bounds");if(!this.isOnCurve())throw new Error("Point is not on the curve.");if(this.multiply(t).isInfinity())throw new Error("Point is not a scalar multiple of G.");return!0};var ut=function(){var t=new RegExp('(?:false|true|null|[\\{\\}\\[\\]]|(?:-?\\b(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?\\b)|(?:"(?:[^\\0-\\x08\\x0a-\\x1f"\\\\]|\\\\(?:["/\\\\bfnrt]|u[0-9A-Fa-f]{4}))*"))',"g"),e=new RegExp("\\\\(?:([^u])|u(.{4}))","g"),n={'"':'"',"/":"/","\\":"\\",b:"\b",f:"\f",n:"\n",r:"\r",t:"\t"};function i(t,e,r){return e?n[e]:String.fromCharCode(parseInt(r,16))}var o=new String(""),s=Object.hasOwnProperty;return function(n,a){var u,c,h=n.match(t),l=h[0],f=!1;"{"===l?u={}:"["===l?u=[]:(u=[],f=!0);for(var g=[u],d=1-f,p=h.length;d=0;)delete i[o[h]]}return a.call(e,n,i)}({"":u},"")),u}}();void 0!==ct&&ct||(e.KJUR=ct={}),void 0!==ct.asn1&&ct.asn1||(ct.asn1={}),ct.asn1.ASN1Util=new function(){this.integerToByteHex=function(t){var e=t.toString(16);return e.length%2==1&&(e="0"+e),e},this.bigIntToMinTwosComplementsHex=function(t){var e=t.toString(16);if("-"!=e.substr(0,1))e.length%2==1?e="0"+e:e.match(/^[0-7]/)||(e="00"+e);else{var r=e.substr(1).length;r%2==1?r+=1:e.match(/^[0-7]/)||(r+=2);for(var n="",i=0;i15)throw"ASN.1 length too long to represent by 8x: n = "+t.toString(16);return(128+r).toString(16)+e},this.getEncodedHex=function(){return(null==this.hTLV||this.isModified)&&(this.hV=this.getFreshValueHex(),this.hL=this.getLengthHexFromValue(),this.hTLV=this.hT+this.hL+this.hV,this.isModified=!1),this.hTLV},this.getValueHex=function(){return this.getEncodedHex(),this.hV},this.getFreshValueHex=function(){return""},this.setByParam=function(t){this.params=t},null!=t&&null!=t.tlv&&(this.hTLV=t.tlv,this.isModified=!1)},ct.asn1.DERAbstractString=function(t){ct.asn1.DERAbstractString.superclass.constructor.call(this),this.getString=function(){return this.s},this.setString=function(t){this.hTLV=null,this.isModified=!0,this.s=t,this.hV=wt(this.s).toLowerCase()},this.setStringHex=function(t){this.hTLV=null,this.isModified=!0,this.s=null,this.hV=t},this.getFreshValueHex=function(){return this.hV},void 0!==t&&("string"==typeof t?this.setString(t):void 0!==t.str?this.setString(t.str):void 0!==t.hex&&this.setStringHex(t.hex))},o.lang.extend(ct.asn1.DERAbstractString,ct.asn1.ASN1Object),ct.asn1.DERAbstractTime=function(t){ct.asn1.DERAbstractTime.superclass.constructor.call(this),this.localDateToUTC=function(t){var e=t.getTime()+6e4*t.getTimezoneOffset();return new Date(e)},this.formatDate=function(t,e,r){var n=this.zeroPadding,i=this.localDateToUTC(t),o=String(i.getFullYear());"utc"==e&&(o=o.substr(2,2));var s=o+n(String(i.getMonth()+1),2)+n(String(i.getDate()),2)+n(String(i.getHours()),2)+n(String(i.getMinutes()),2)+n(String(i.getSeconds()),2);if(!0===r){var a=i.getMilliseconds();if(0!=a){var u=n(String(a),3);s=s+"."+(u=u.replace(/[0]+$/,""))}}return s+"Z"},this.zeroPadding=function(t,e){return t.length>=e?t:new Array(e-t.length+1).join("0")+t},this.getString=function(){return this.s},this.setString=function(t){this.hTLV=null,this.isModified=!0,this.s=t,this.hV=vt(t)},this.setByDateValue=function(t,e,r,n,i,o){var s=new Date(Date.UTC(t,e-1,r,n,i,o,0));this.setByDate(s)},this.getFreshValueHex=function(){return this.hV}},o.lang.extend(ct.asn1.DERAbstractTime,ct.asn1.ASN1Object),ct.asn1.DERAbstractStructured=function(t){ct.asn1.DERAbstractString.superclass.constructor.call(this),this.setByASN1ObjectArray=function(t){this.hTLV=null,this.isModified=!0,this.asn1Array=t},this.appendASN1Object=function(t){this.hTLV=null,this.isModified=!0,this.asn1Array.push(t)},this.asn1Array=new Array,void 0!==t&&void 0!==t.array&&(this.asn1Array=t.array)},o.lang.extend(ct.asn1.DERAbstractStructured,ct.asn1.ASN1Object),ct.asn1.DERBoolean=function(t){ct.asn1.DERBoolean.superclass.constructor.call(this),this.hT="01",this.hTLV=0==t?"010100":"0101ff"},o.lang.extend(ct.asn1.DERBoolean,ct.asn1.ASN1Object),ct.asn1.DERInteger=function(t){ct.asn1.DERInteger.superclass.constructor.call(this),this.hT="02",this.setByBigInteger=function(t){this.hTLV=null,this.isModified=!0,this.hV=ct.asn1.ASN1Util.bigIntToMinTwosComplementsHex(t)},this.setByInteger=function(t){var e=new F(String(t),10);this.setByBigInteger(e)},this.setValueHex=function(t){this.hV=t},this.getFreshValueHex=function(){return this.hV},void 0!==t&&(void 0!==t.bigint?this.setByBigInteger(t.bigint):void 0!==t.int?this.setByInteger(t.int):"number"==typeof t?this.setByInteger(t):void 0!==t.hex&&this.setValueHex(t.hex))},o.lang.extend(ct.asn1.DERInteger,ct.asn1.ASN1Object),ct.asn1.DERBitString=function(t){if(void 0!==t&&void 0!==t.obj){var e=ct.asn1.ASN1Util.newObject(t.obj);t.hex="00"+e.getEncodedHex()}ct.asn1.DERBitString.superclass.constructor.call(this),this.hT="03",this.setHexValueIncludingUnusedBits=function(t){this.hTLV=null,this.isModified=!0,this.hV=t},this.setUnusedBitsAndHexValue=function(t,e){if(t<0||7i.length&&(i=n[r]);return(t=t.replace(i,"::")).slice(1,-1)}function Ut(t){var e="malformed hex value";if(!t.match(/^([0-9A-Fa-f][0-9A-Fa-f]){1,}$/))throw e;if(8!=t.length)return 32==t.length?Nt(t):t;try{return parseInt(t.substr(0,2),16)+"."+parseInt(t.substr(2,2),16)+"."+parseInt(t.substr(4,2),16)+"."+parseInt(t.substr(6,2),16)}catch(t){throw e}}function Ot(t){for(var e=encodeURIComponent(t),r="",n=0;n"7"?"00"+t:t}ft.getLblen=function(t,e){if("8"!=t.substr(e+2,1))return 1;var r=parseInt(t.substr(e+3,1));return 0==r?-1:0=n)break}return s},ft.getNthChildIdx=function(t,e,r){return ft.getChildIdx(t,e)[r]},ft.getIdxbyList=function(t,e,r,n){var i,o,s=ft;return 0==r.length?void 0!==n&&t.substr(e,2)!==n?-1:e:(i=r.shift())>=(o=s.getChildIdx(t,e)).length?-1:s.getIdxbyList(t,o[i],r,n)},ft.getIdxbyListEx=function(t,e,r,n){var i,o,s=ft;if(0==r.length)return void 0!==n&&t.substr(e,2)!==n?-1:e;i=r.shift(),o=s.getChildIdx(t,e);for(var a=0,u=0;u=t.length?null:i.getTLV(t,o)},ft.getTLVbyListEx=function(t,e,r,n){var i=ft,o=i.getIdxbyListEx(t,e,r,n);return-1==o?null:i.getTLV(t,o)},ft.getVbyList=function(t,e,r,n,i){var o,s,a=ft;return-1==(o=a.getIdxbyList(t,e,r,n))||o>=t.length?null:(s=a.getV(t,o),!0===i&&(s=s.substr(2)),s)},ft.getVbyListEx=function(t,e,r,n,i){var o,s,a=ft;return-1==(o=a.getIdxbyListEx(t,e,r,n))?null:(s=a.getV(t,o),"03"==t.substr(o,2)&&!1!==i&&(s=s.substr(2)),s)},ft.getInt=function(t,e,r){null==r&&(r=-1);try{var n=t.substr(e,2);if("02"!=n&&"03"!=n)return r;var i=ft.getV(t,e);return"02"==n?parseInt(i,16):function(t){try{var e=t.substr(0,2);if("00"==e)return parseInt(t.substr(2),16);var r=parseInt(e,16),n=t.substr(2),i=parseInt(n,16).toString(2);return"0"==i&&(i="00000000"),i=i.slice(0,0-r),parseInt(i,2)}catch(t){return-1}}(i)}catch(t){return r}},ft.getOID=function(t,e,r){null==r&&(r=null);try{return"06"!=t.substr(e,2)?r:function(t){if(!Bt(t))return null;try{var e=[],r=t.substr(0,2),n=parseInt(r,16);e[0]=new String(Math.floor(n/40)),e[1]=new String(n%40);for(var i=t.substr(2),o=[],s=0;s0&&(c=c+"."+a.join(".")),c}catch(t){return null}}(ft.getV(t,e))}catch(t){return r}},ft.getOIDName=function(t,e,r){null==r&&(r=null);try{var n=ft.getOID(t,e,r);if(n==r)return r;var i=ct.asn1.x509.OID.oid2name(n);return""==i?n:i}catch(t){return r}},ft.getString=function(t,e,r){null==r&&(r=null);try{return Ft(ft.getV(t,e))}catch(t){return r}},ft.hextooidstr=function(t){var e=function(t,e){return t.length>=e?t:new Array(e-t.length+1).join("0")+t},r=[],n=t.substr(0,2),i=parseInt(n,16);r[0]=new String(Math.floor(i/40)),r[1]=new String(i%40);for(var o=t.substr(2),s=[],a=0;a0&&(h=h+"."+u.join(".")),h},ft.dump=function(t,e,r,n){var i=ft,o=i.getV,s=i.dump,a=i.getChildIdx,u=t;t instanceof ct.asn1.ASN1Object&&(u=t.getEncodedHex());var c=function(t,e){return t.length<=2*e?t:t.substr(0,e)+"..(total "+t.length/2+"bytes).."+t.substr(t.length-e,e)};void 0===e&&(e={ommit_long_octet:32}),void 0===r&&(r=0),void 0===n&&(n="");var h,l=e.ommit_long_octet;if("01"==(h=u.substr(r,2)))return"00"==(f=o(u,r))?n+"BOOLEAN FALSE\n":n+"BOOLEAN TRUE\n";if("02"==h)return n+"INTEGER "+c(f=o(u,r),l)+"\n";if("03"==h){var f=o(u,r);return i.isASN1HEX(f.substr(2))?(w=n+"BITSTRING, encapsulates\n")+s(f.substr(2),e,0,n+" "):n+"BITSTRING "+c(f,l)+"\n"}if("04"==h)return f=o(u,r),i.isASN1HEX(f)?(w=n+"OCTETSTRING, encapsulates\n")+s(f,e,0,n+" "):n+"OCTETSTRING "+c(f,l)+"\n";if("05"==h)return n+"NULL\n";if("06"==h){var g=o(u,r),d=ct.asn1.ASN1Util.oidHexToInt(g),p=ct.asn1.x509.OID.oid2name(d),v=d.replace(/\./g," ");return""!=p?n+"ObjectIdentifier "+p+" ("+v+")\n":n+"ObjectIdentifier ("+v+")\n"}if("0a"==h)return n+"ENUMERATED "+parseInt(o(u,r))+"\n";if("0c"==h)return n+"UTF8String '"+bt(o(u,r))+"'\n";if("13"==h)return n+"PrintableString '"+bt(o(u,r))+"'\n";if("14"==h)return n+"TeletexString '"+bt(o(u,r))+"'\n";if("16"==h)return n+"IA5String '"+bt(o(u,r))+"'\n";if("17"==h)return n+"UTCTime "+bt(o(u,r))+"\n";if("18"==h)return n+"GeneralizedTime "+bt(o(u,r))+"\n";if("1a"==h)return n+"VisualString '"+bt(o(u,r))+"'\n";if("1e"==h)return n+"BMPString '"+bt(o(u,r))+"'\n";if("30"==h){if("3000"==u.substr(r,4))return n+"SEQUENCE {}\n";w=n+"SEQUENCE\n";var y=e;if((2==(S=a(u,r)).length||3==S.length)&&"06"==u.substr(S[0],2)&&"04"==u.substr(S[S.length-1],2)){p=i.oidname(o(u,S[0]));var m=JSON.parse(JSON.stringify(e));m.x509ExtName=p,y=m}for(var _=0;_31)&&128==(192&r)&&(31&r)==n}catch(t){return!1}},ft.isASN1HEX=function(t){var e=ft;if(t.length%2==1)return!1;var r=e.getVblen(t,0),n=t.substr(0,2),i=e.getL(t,0);return t.length-n.length-i.length==2*r},ft.checkStrictDER=function(t,e,r,n,i){var o=ft;if(void 0===r){if("string"!=typeof t)throw new Error("not hex string");if(t=t.toLowerCase(),!ct.lang.String.isHex(t))throw new Error("not hex string");r=t.length,i=(n=t.length/2)<128?1:Math.ceil(n.toString(16))+1}if(o.getL(t,e).length>2*i)throw new Error("L of TLV too long: idx="+e);var s=o.getVblen(t,e);if(s>n)throw new Error("value of L too long than hex: idx="+e);var a=o.getTLV(t,e),u=a.length-2-o.getL(t,e).length;if(u!==2*s)throw new Error("V string length and L's value not the same:"+u+"/"+2*s);if(0===e&&t.length!=a.length)throw new Error("total length and TLV length unmatch:"+t.length+"!="+a.length);var c=t.substr(e,2);if("02"===c){var h=o.getVidx(t,e);if("00"==t.substr(h,2)&&t.charCodeAt(h+2)<56)throw new Error("not least zeros for DER INTEGER")}if(32&parseInt(c,16)){for(var l=o.getVblen(t,e),f=0,g=o.getChildIdx(t,e),d=0;d=e?t:new Array(e-t.length+1).join(r)+t};void 0!==ct&&ct||(e.KJUR=ct={}),void 0!==ct.crypto&&ct.crypto||(ct.crypto={}),ct.crypto.Util=new function(){this.DIGESTINFOHEAD={sha1:"3021300906052b0e03021a05000414",sha224:"302d300d06096086480165030402040500041c",sha256:"3031300d060960864801650304020105000420",sha384:"3041300d060960864801650304020205000430",sha512:"3051300d060960864801650304020305000440",md2:"3020300c06082a864886f70d020205000410",md5:"3020300c06082a864886f70d020505000410",ripemd160:"3021300906052b2403020105000414"},this.DEFAULTPROVIDER={md5:"cryptojs",sha1:"cryptojs",sha224:"cryptojs",sha256:"cryptojs",sha384:"cryptojs",sha512:"cryptojs",ripemd160:"cryptojs",hmacmd5:"cryptojs",hmacsha1:"cryptojs",hmacsha224:"cryptojs",hmacsha256:"cryptojs",hmacsha384:"cryptojs",hmacsha512:"cryptojs",hmacripemd160:"cryptojs",MD5withRSA:"cryptojs/jsrsa",SHA1withRSA:"cryptojs/jsrsa",SHA224withRSA:"cryptojs/jsrsa",SHA256withRSA:"cryptojs/jsrsa",SHA384withRSA:"cryptojs/jsrsa",SHA512withRSA:"cryptojs/jsrsa",RIPEMD160withRSA:"cryptojs/jsrsa",MD5withECDSA:"cryptojs/jsrsa",SHA1withECDSA:"cryptojs/jsrsa",SHA224withECDSA:"cryptojs/jsrsa",SHA256withECDSA:"cryptojs/jsrsa",SHA384withECDSA:"cryptojs/jsrsa",SHA512withECDSA:"cryptojs/jsrsa",RIPEMD160withECDSA:"cryptojs/jsrsa",SHA1withDSA:"cryptojs/jsrsa",SHA224withDSA:"cryptojs/jsrsa",SHA256withDSA:"cryptojs/jsrsa",MD5withRSAandMGF1:"cryptojs/jsrsa",SHAwithRSAandMGF1:"cryptojs/jsrsa",SHA1withRSAandMGF1:"cryptojs/jsrsa",SHA224withRSAandMGF1:"cryptojs/jsrsa",SHA256withRSAandMGF1:"cryptojs/jsrsa",SHA384withRSAandMGF1:"cryptojs/jsrsa",SHA512withRSAandMGF1:"cryptojs/jsrsa",RIPEMD160withRSAandMGF1:"cryptojs/jsrsa"},this.CRYPTOJSMESSAGEDIGESTNAME={md5:y.algo.MD5,sha1:y.algo.SHA1,sha224:y.algo.SHA224,sha256:y.algo.SHA256,sha384:y.algo.SHA384,sha512:y.algo.SHA512,ripemd160:y.algo.RIPEMD160},this.getDigestInfoHex=function(t,e){if(void 0===this.DIGESTINFOHEAD[e])throw"alg not supported in Util.DIGESTINFOHEAD: "+e;return this.DIGESTINFOHEAD[e]+t},this.getPaddedDigestInfoHex=function(t,e,r){var n=this.getDigestInfoHex(t,e),i=r/4;if(n.length+22>i)throw"key is too short for SigAlg: keylen="+r+","+e;for(var o="0001",s="00"+n,a="",u=i-o.length-s.length,c=0;c=0)return!1;if(r.compareTo(n.ONE)<0||r.compareTo(o)>=0)return!1;var a=r.modInverse(o),u=t.multiply(a).mod(o),c=e.multiply(a).mod(o);return s.multiply(u).add(i.multiply(c)).getX().toBigInteger().mod(o).equals(e)},this.serializeSig=function(t,e){var r=t.toByteArraySigned(),n=e.toByteArraySigned(),i=[];return i.push(2),i.push(r.length),(i=i.concat(r)).push(2),i.push(n.length),(i=i.concat(n)).unshift(i.length),i.unshift(48),i},this.parseSig=function(t){var e;if(48!=t[0])throw new Error("Signature not a valid DERSequence");if(2!=t[e=2])throw new Error("First element in signature must be a DERInteger");var r=t.slice(e+2,e+2+t[e+1]);if(2!=t[e+=2+t[e+1]])throw new Error("Second element in signature must be a DERInteger");var i=t.slice(e+2,e+2+t[e+1]);return e+=2+t[e+1],{r:n.fromByteArrayUnsigned(r),s:n.fromByteArrayUnsigned(i)}},this.parseSigCompact=function(t){if(65!==t.length)throw"Signature has the wrong length";var e=t[0]-27;if(e<0||e>7)throw"Invalid signature type";var r=this.ecparams.n;return{r:n.fromByteArrayUnsigned(t.slice(1,33)).mod(r),s:n.fromByteArrayUnsigned(t.slice(33,65)).mod(r),i:e}},this.readPKCS5PrvKeyHex=function(t){if(!1===h(t))throw new Error("not ASN.1 hex string");var e,r,n;try{e=c(t,0,["[0]",0],"06"),r=c(t,0,[1],"04");try{n=c(t,0,["[1]",0],"03")}catch(t){}}catch(t){throw new Error("malformed PKCS#1/5 plain ECC private key")}if(this.curveName=a(e),void 0===this.curveName)throw"unsupported curve name";this.setNamedCurve(this.curveName),this.setPublicKeyHex(n),this.setPrivateKeyHex(r),this.isPublic=!1},this.readPKCS8PrvKeyHex=function(t){if(!1===h(t))throw new e("not ASN.1 hex string");var r,n,i;try{c(t,0,[1,0],"06"),r=c(t,0,[1,1],"06"),n=c(t,0,[2,0,1],"04");try{i=c(t,0,[2,0,"[1]",0],"03")}catch(t){}}catch(t){throw new e("malformed PKCS#8 plain ECC private key")}if(this.curveName=a(r),void 0===this.curveName)throw new e("unsupported curve name");this.setNamedCurve(this.curveName),this.setPublicKeyHex(i),this.setPrivateKeyHex(n),this.isPublic=!1},this.readPKCS8PubKeyHex=function(t){if(!1===h(t))throw new e("not ASN.1 hex string");var r,n;try{c(t,0,[0,0],"06"),r=c(t,0,[0,1],"06"),n=c(t,0,[1],"03")}catch(t){throw new e("malformed PKCS#8 ECC public key")}if(this.curveName=a(r),null===this.curveName)throw new e("unsupported curve name");this.setNamedCurve(this.curveName),this.setPublicKeyHex(n)},this.readCertPubKeyHex=function(t,r){if(!1===h(t))throw new e("not ASN.1 hex string");var n,i;try{n=c(t,0,[0,5,0,1],"06"),i=c(t,0,[0,5,1],"03")}catch(t){throw new e("malformed X.509 certificate ECC public key")}if(this.curveName=a(n),null===this.curveName)throw new e("unsupported curve name");this.setNamedCurve(this.curveName),this.setPublicKeyHex(i)},void 0!==t&&void 0!==t.curve&&(this.curveName=t.curve),void 0===this.curveName&&(this.curveName="secp256r1"),this.setNamedCurve(this.curveName),void 0!==t&&(void 0!==t.prv&&this.setPrivateKeyHex(t.prv),void 0!==t.pub&&this.setPublicKeyHex(t.pub))},ct.crypto.ECDSA.parseSigHex=function(t){var e=ct.crypto.ECDSA.parseSigHexInHexRS(t);return{r:new F(e.r,16),s:new F(e.s,16)}},ct.crypto.ECDSA.parseSigHexInHexRS=function(t){var e=ft,r=e.getChildIdx,n=e.getV;if(e.checkStrictDER(t,0),"30"!=t.substr(0,2))throw new Error("signature is not a ASN.1 sequence");var i=r(t,0);if(2!=i.length)throw new Error("signature shall have two elements");var o=i[0],s=i[1];if("02"!=t.substr(o,2))throw new Error("1st item not ASN.1 integer");if("02"!=t.substr(s,2))throw new Error("2nd item not ASN.1 integer");return{r:n(t,o),s:n(t,s)}},ct.crypto.ECDSA.asn1SigToConcatSig=function(t){var e=ct.crypto.ECDSA.parseSigHexInHexRS(t),r=e.r,n=e.s;if("00"==r.substr(0,2)&&r.length%32==2&&(r=r.substr(2)),"00"==n.substr(0,2)&&n.length%32==2&&(n=n.substr(2)),r.length%32==30&&(r="00"+r),n.length%32==30&&(n="00"+n),r.length%32!=0)throw"unknown ECDSA sig r length error";if(n.length%32!=0)throw"unknown ECDSA sig s length error";return r+n},ct.crypto.ECDSA.concatSigToASN1Sig=function(t){if(t.length/2*8%128!=0)throw"unknown ECDSA concatinated r-s sig length error";var e=t.substr(0,t.length/2),r=t.substr(t.length/2);return ct.crypto.ECDSA.hexRSSigToASN1Sig(e,r)},ct.crypto.ECDSA.hexRSSigToASN1Sig=function(t,e){var r=new F(t,16),n=new F(e,16);return ct.crypto.ECDSA.biRSSigToASN1Sig(r,n)},ct.crypto.ECDSA.biRSSigToASN1Sig=function(t,e){var r=ct.asn1,n=new r.DERInteger({bigint:t}),i=new r.DERInteger({bigint:e});return new r.DERSequence({array:[n,i]}).getEncodedHex()},ct.crypto.ECDSA.getName=function(t){return"2b8104001f"===t?"secp192k1":"2a8648ce3d030107"===t?"secp256r1":"2b8104000a"===t?"secp256k1":"2b81040021"===t?"secp224r1":"2b81040022"===t?"secp384r1":-1!=="|secp256r1|NIST P-256|P-256|prime256v1|".indexOf(t)?"secp256r1":-1!=="|secp256k1|".indexOf(t)?"secp256k1":-1!=="|secp224r1|NIST P-224|P-224|".indexOf(t)?"secp224r1":-1!=="|secp384r1|NIST P-384|P-384|".indexOf(t)?"secp384r1":null},void 0!==ct&&ct||(e.KJUR=ct={}),void 0!==ct.crypto&&ct.crypto||(ct.crypto={}),ct.crypto.ECParameterDB=new function(){var t={},e={};function r(t){return new F(t,16)}this.getByName=function(r){var n=r;if(void 0!==e[n]&&(n=e[r]),void 0!==t[n])return t[n];throw"unregistered EC curve name: "+n},this.regist=function(n,i,o,s,a,u,c,h,l,f,g,d){t[n]={};var p=r(o),v=r(s),y=r(a),m=r(u),_=r(c),S=new at(p,v,y),w=S.decodePointHex("04"+h+l);t[n].name=n,t[n].keylen=i,t[n].curve=S,t[n].G=w,t[n].n=m,t[n].h=_,t[n].oid=g,t[n].info=d;for(var b=0;b=2*a)break}var l={};return l.keyhex=u.substr(0,2*i[t].keylen),l.ivhex=u.substr(2*i[t].keylen,2*i[t].ivlen),l},a=function(t,e,r,n){var o=y.enc.Base64.parse(t),s=y.enc.Hex.stringify(o);return(0,i[e].proc)(s,r,n)};return{version:"1.0.0",parsePKCS5PEM:function(t){return o(t)},getKeyAndUnusedIvByPasscodeAndIvsalt:function(t,e,r){return s(t,e,r)},decryptKeyB64:function(t,e,r,n){return a(t,e,r,n)},getDecryptedKeyHex:function(t,e){var r=o(t),n=(r.type,r.cipher),i=r.ivsalt,u=r.data,c=s(n,e,i).keyhex;return a(u,n,c,i)},getEncryptedPKCS5PEMFromPrvKeyHex:function(t,e,r,n,o){var a="";if(void 0!==n&&null!=n||(n="AES-256-CBC"),void 0===i[n])throw"KEYUTIL unsupported algorithm: "+n;void 0!==o&&null!=o||(o=function(t){var e=y.lib.WordArray.random(t);return y.enc.Hex.stringify(e)}(i[n].ivlen).toUpperCase());var u=function(t,e,r,n){return(0,i[e].eproc)(t,r,n)}(e,n,s(n,r,o).keyhex,o);return a="-----BEGIN "+t+" PRIVATE KEY-----\r\n",a+="Proc-Type: 4,ENCRYPTED\r\n",a+="DEK-Info: "+n+","+o+"\r\n",a+="\r\n",(a+=u.replace(/(.{64})/g,"$1\r\n"))+"\r\n-----END "+t+" PRIVATE KEY-----\r\n"},parseHexOfEncryptedPKCS8:function(t){var e=ft,r=e.getChildIdx,n=e.getV,i={},o=r(t,0);if(2!=o.length)throw"malformed format: SEQUENCE(0).items != 2: "+o.length;i.ciphertext=n(t,o[1]);var s=r(t,o[0]);if(2!=s.length)throw"malformed format: SEQUENCE(0.0).items != 2: "+s.length;if("2a864886f70d01050d"!=n(t,s[0]))throw"this only supports pkcs5PBES2";var a=r(t,s[1]);if(2!=s.length)throw"malformed format: SEQUENCE(0.0.1).items != 2: "+a.length;var u=r(t,a[1]);if(2!=u.length)throw"malformed format: SEQUENCE(0.0.1.1).items != 2: "+u.length;if("2a864886f70d0307"!=n(t,u[0]))throw"this only supports TripleDES";i.encryptionSchemeAlg="TripleDES",i.encryptionSchemeIV=n(t,u[1]);var c=r(t,a[0]);if(2!=c.length)throw"malformed format: SEQUENCE(0.0.1.0).items != 2: "+c.length;if("2a864886f70d01050c"!=n(t,c[0]))throw"this only supports pkcs5PBKDF2";var h=r(t,c[1]);if(h.length<2)throw"malformed format: SEQUENCE(0.0.1.0.1).items < 2: "+h.length;i.pbkdf2Salt=n(t,h[0]);var l=n(t,h[1]);try{i.pbkdf2Iter=parseInt(l,16)}catch(t){throw"malformed format pbkdf2Iter: "+l}return i},getPBKDF2KeyHexFromParam:function(t,e){var r=y.enc.Hex.parse(t.pbkdf2Salt),n=t.pbkdf2Iter,i=y.PBKDF2(e,r,{keySize:6,iterations:n});return y.enc.Hex.stringify(i)},_getPlainPKCS8HexFromEncryptedPKCS8PEM:function(t,e){var r=Ct(t,"ENCRYPTED PRIVATE KEY"),n=this.parseHexOfEncryptedPKCS8(r),i=Ht.getPBKDF2KeyHexFromParam(n,e),o={};o.ciphertext=y.enc.Hex.parse(n.ciphertext);var s=y.enc.Hex.parse(i),a=y.enc.Hex.parse(n.encryptionSchemeIV),u=y.TripleDES.decrypt(o,s,{iv:a});return y.enc.Hex.stringify(u)},getKeyFromEncryptedPKCS8PEM:function(t,e){var r=this._getPlainPKCS8HexFromEncryptedPKCS8PEM(t,e);return this.getKeyFromPlainPrivatePKCS8Hex(r)},parsePlainPrivatePKCS8Hex:function(t){var e=ft,r=e.getChildIdx,n=e.getV,i={algparam:null};if("30"!=t.substr(0,2))throw"malformed plain PKCS8 private key(code:001)";var o=r(t,0);if(3!=o.length)throw"malformed plain PKCS8 private key(code:002)";if("30"!=t.substr(o[1],2))throw"malformed PKCS8 private key(code:003)";var s=r(t,o[1]);if(2!=s.length)throw"malformed PKCS8 private key(code:004)";if("06"!=t.substr(s[0],2))throw"malformed PKCS8 private key(code:005)";if(i.algoid=n(t,s[0]),"06"==t.substr(s[1],2)&&(i.algparam=n(t,s[1])),"04"!=t.substr(o[2],2))throw"malformed PKCS8 private key(code:006)";return i.keyidx=e.getVidx(t,o[2]),i},getKeyFromPlainPrivatePKCS8PEM:function(t){var e=Ct(t,"PRIVATE KEY");return this.getKeyFromPlainPrivatePKCS8Hex(e)},getKeyFromPlainPrivatePKCS8Hex:function(t){var e,r=this.parsePlainPrivatePKCS8Hex(t);if("2a864886f70d010101"==r.algoid)e=new it;else if("2a8648ce380401"==r.algoid)e=new ct.crypto.DSA;else{if("2a8648ce3d0201"!=r.algoid)throw"unsupported private key algorithm";e=new ct.crypto.ECDSA}return e.readPKCS8PrvKeyHex(t),e},_getKeyFromPublicPKCS8Hex:function(t){var e,r=ft.getVbyList(t,0,[0,0],"06");if("2a864886f70d010101"===r)e=new it;else if("2a8648ce380401"===r)e=new ct.crypto.DSA;else{if("2a8648ce3d0201"!==r)throw"unsupported PKCS#8 public key hex";e=new ct.crypto.ECDSA}return e.readPKCS8PubKeyHex(t),e},parsePublicRawRSAKeyHex:function(t){var e=ft,r=e.getChildIdx,n=e.getV,i={};if("30"!=t.substr(0,2))throw"malformed RSA key(code:001)";var o=r(t,0);if(2!=o.length)throw"malformed RSA key(code:002)";if("02"!=t.substr(o[0],2))throw"malformed RSA key(code:003)";if(i.n=n(t,o[0]),"02"!=t.substr(o[1],2))throw"malformed RSA key(code:004)";return i.e=n(t,o[1]),i},parsePublicPKCS8Hex:function(t){var e=ft,r=e.getChildIdx,n=e.getV,i={algparam:null},o=r(t,0);if(2!=o.length)throw"outer DERSequence shall have 2 elements: "+o.length;var s=o[0];if("30"!=t.substr(s,2))throw"malformed PKCS8 public key(code:001)";var a=r(t,s);if(2!=a.length)throw"malformed PKCS8 public key(code:002)";if("06"!=t.substr(a[0],2))throw"malformed PKCS8 public key(code:003)";if(i.algoid=n(t,a[0]),"06"==t.substr(a[1],2)?i.algparam=n(t,a[1]):"30"==t.substr(a[1],2)&&(i.algparam={},i.algparam.p=e.getVbyList(t,a[1],[0],"02"),i.algparam.q=e.getVbyList(t,a[1],[1],"02"),i.algparam.g=e.getVbyList(t,a[1],[2],"02")),"03"!=t.substr(o[1],2))throw"malformed PKCS8 public key(code:004)";return i.key=n(t,o[1]).substr(2),i}}}();Ht.getKey=function(t,e,r){var n,i=(y=ft).getChildIdx,o=(y.getV,y.getVbyList),s=ct.crypto,a=s.ECDSA,u=s.DSA,c=it,h=Ct,l=Ht;if(void 0!==c&&t instanceof c)return t;if(void 0!==a&&t instanceof a)return t;if(void 0!==u&&t instanceof u)return t;if(void 0!==t.curve&&void 0!==t.xy&&void 0===t.d)return new a({pub:t.xy,curve:t.curve});if(void 0!==t.curve&&void 0!==t.d)return new a({prv:t.d,curve:t.curve});if(void 0===t.kty&&void 0!==t.n&&void 0!==t.e&&void 0===t.d)return(C=new c).setPublic(t.n,t.e),C;if(void 0===t.kty&&void 0!==t.n&&void 0!==t.e&&void 0!==t.d&&void 0!==t.p&&void 0!==t.q&&void 0!==t.dp&&void 0!==t.dq&&void 0!==t.co&&void 0===t.qi)return(C=new c).setPrivateEx(t.n,t.e,t.d,t.p,t.q,t.dp,t.dq,t.co),C;if(void 0===t.kty&&void 0!==t.n&&void 0!==t.e&&void 0!==t.d&&void 0===t.p)return(C=new c).setPrivate(t.n,t.e,t.d),C;if(void 0!==t.p&&void 0!==t.q&&void 0!==t.g&&void 0!==t.y&&void 0===t.x)return(C=new u).setPublic(t.p,t.q,t.g,t.y),C;if(void 0!==t.p&&void 0!==t.q&&void 0!==t.g&&void 0!==t.y&&void 0!==t.x)return(C=new u).setPrivate(t.p,t.q,t.g,t.y,t.x),C;if("RSA"===t.kty&&void 0!==t.n&&void 0!==t.e&&void 0===t.d)return(C=new c).setPublic(St(t.n),St(t.e)),C;if("RSA"===t.kty&&void 0!==t.n&&void 0!==t.e&&void 0!==t.d&&void 0!==t.p&&void 0!==t.q&&void 0!==t.dp&&void 0!==t.dq&&void 0!==t.qi)return(C=new c).setPrivateEx(St(t.n),St(t.e),St(t.d),St(t.p),St(t.q),St(t.dp),St(t.dq),St(t.qi)),C;if("RSA"===t.kty&&void 0!==t.n&&void 0!==t.e&&void 0!==t.d)return(C=new c).setPrivate(St(t.n),St(t.e),St(t.d)),C;if("EC"===t.kty&&void 0!==t.crv&&void 0!==t.x&&void 0!==t.y&&void 0===t.d){var f=(P=new a({curve:t.crv})).ecparams.keylen/4,g="04"+("0000000000"+St(t.x)).slice(-f)+("0000000000"+St(t.y)).slice(-f);return P.setPublicKeyHex(g),P}if("EC"===t.kty&&void 0!==t.crv&&void 0!==t.x&&void 0!==t.y&&void 0!==t.d){f=(P=new a({curve:t.crv})).ecparams.keylen/4,g="04"+("0000000000"+St(t.x)).slice(-f)+("0000000000"+St(t.y)).slice(-f);var d=("0000000000"+St(t.d)).slice(-f);return P.setPublicKeyHex(g),P.setPrivateKeyHex(d),P}if("pkcs5prv"===r){var p,v=t,y=ft;if(9===(p=i(v,0)).length)(C=new c).readPKCS5PrvKeyHex(v);else if(6===p.length)(C=new u).readPKCS5PrvKeyHex(v);else{if(!(p.length>2&&"04"===v.substr(p[1],2)))throw"unsupported PKCS#1/5 hexadecimal key";(C=new a).readPKCS5PrvKeyHex(v)}return C}if("pkcs8prv"===r)return l.getKeyFromPlainPrivatePKCS8Hex(t);if("pkcs8pub"===r)return l._getKeyFromPublicPKCS8Hex(t);if("x509pub"===r)return Wt.getPublicKeyFromCertHex(t);if(-1!=t.indexOf("-END CERTIFICATE-",0)||-1!=t.indexOf("-END X509 CERTIFICATE-",0)||-1!=t.indexOf("-END TRUSTED CERTIFICATE-",0))return Wt.getPublicKeyFromCertPEM(t);if(-1!=t.indexOf("-END PUBLIC KEY-")){var m=Ct(t,"PUBLIC KEY");return l._getKeyFromPublicPKCS8Hex(m)}if(-1!=t.indexOf("-END RSA PRIVATE KEY-")&&-1==t.indexOf("4,ENCRYPTED")){var _=h(t,"RSA PRIVATE KEY");return l.getKey(_,null,"pkcs5prv")}if(-1!=t.indexOf("-END DSA PRIVATE KEY-")&&-1==t.indexOf("4,ENCRYPTED")){var S=o(n=h(t,"DSA PRIVATE KEY"),0,[1],"02"),w=o(n,0,[2],"02"),b=o(n,0,[3],"02"),E=o(n,0,[4],"02"),x=o(n,0,[5],"02");return(C=new u).setPrivate(new F(S,16),new F(w,16),new F(b,16),new F(E,16),new F(x,16)),C}if(-1!=t.indexOf("-END EC PRIVATE KEY-")&&-1==t.indexOf("4,ENCRYPTED"))return _=h(t,"EC PRIVATE KEY"),l.getKey(_,null,"pkcs5prv");if(-1!=t.indexOf("-END PRIVATE KEY-"))return l.getKeyFromPlainPrivatePKCS8PEM(t);if(-1!=t.indexOf("-END RSA PRIVATE KEY-")&&-1!=t.indexOf("4,ENCRYPTED")){var A=l.getDecryptedKeyHex(t,e),k=new it;return k.readPKCS5PrvKeyHex(A),k}if(-1!=t.indexOf("-END EC PRIVATE KEY-")&&-1!=t.indexOf("4,ENCRYPTED")){var P,C=o(n=l.getDecryptedKeyHex(t,e),0,[1],"04"),T=o(n,0,[2,0],"06"),R=o(n,0,[3,0],"03").substr(2);if(void 0===ct.crypto.OID.oidhex2name[T])throw"undefined OID(hex) in KJUR.crypto.OID: "+T;return(P=new a({curve:ct.crypto.OID.oidhex2name[T]})).setPublicKeyHex(R),P.setPrivateKeyHex(C),P.isPublic=!1,P}if(-1!=t.indexOf("-END DSA PRIVATE KEY-")&&-1!=t.indexOf("4,ENCRYPTED"))return S=o(n=l.getDecryptedKeyHex(t,e),0,[1],"02"),w=o(n,0,[2],"02"),b=o(n,0,[3],"02"),E=o(n,0,[4],"02"),x=o(n,0,[5],"02"),(C=new u).setPrivate(new F(S,16),new F(w,16),new F(b,16),new F(E,16),new F(x,16)),C;if(-1!=t.indexOf("-END ENCRYPTED PRIVATE KEY-"))return l.getKeyFromEncryptedPKCS8PEM(t,e);throw new Error("not supported argument")},Ht.generateKeypair=function(t,e){if("RSA"==t){var r=e;(s=new it).generate(r,"10001"),s.isPrivate=!0,s.isPublic=!0;var n=new it,i=s.n.toString(16),o=s.e.toString(16);return n.setPublic(i,o),n.isPrivate=!1,n.isPublic=!0,(a={}).prvKeyObj=s,a.pubKeyObj=n,a}if("EC"==t){var s,a,u=e,c=new ct.crypto.ECDSA({curve:u}).generateKeyPairHex();return(s=new ct.crypto.ECDSA({curve:u})).setPublicKeyHex(c.ecpubhex),s.setPrivateKeyHex(c.ecprvhex),s.isPrivate=!0,s.isPublic=!1,(n=new ct.crypto.ECDSA({curve:u})).setPublicKeyHex(c.ecpubhex),n.isPrivate=!1,n.isPublic=!0,(a={}).prvKeyObj=s,a.pubKeyObj=n,a}throw"unknown algorithm: "+t},Ht.getPEM=function(t,e,r,n,i,o){var s=ct,a=s.asn1,u=a.DERObjectIdentifier,c=a.DERInteger,h=a.ASN1Util.newObject,l=a.x509.SubjectPublicKeyInfo,f=s.crypto,g=f.DSA,d=f.ECDSA,p=it;function v(t){return h({seq:[{int:0},{int:{bigint:t.n}},{int:t.e},{int:{bigint:t.d}},{int:{bigint:t.p}},{int:{bigint:t.q}},{int:{bigint:t.dmp1}},{int:{bigint:t.dmq1}},{int:{bigint:t.coeff}}]})}function m(t){return h({seq:[{int:1},{octstr:{hex:t.prvKeyHex}},{tag:["a0",!0,{oid:{name:t.curveName}}]},{tag:["a1",!0,{bitstr:{hex:"00"+t.pubKeyHex}}]}]})}function _(t){return h({seq:[{int:0},{int:{bigint:t.p}},{int:{bigint:t.q}},{int:{bigint:t.g}},{int:{bigint:t.y}},{int:{bigint:t.x}}]})}if((void 0!==p&&t instanceof p||void 0!==g&&t instanceof g||void 0!==d&&t instanceof d)&&1==t.isPublic&&(void 0===e||"PKCS8PUB"==e))return Pt(F=new l(t).getEncodedHex(),"PUBLIC KEY");if("PKCS1PRV"==e&&void 0!==p&&t instanceof p&&(void 0===r||null==r)&&1==t.isPrivate)return Pt(F=v(t).getEncodedHex(),"RSA PRIVATE KEY");if("PKCS1PRV"==e&&void 0!==d&&t instanceof d&&(void 0===r||null==r)&&1==t.isPrivate){var S=new u({name:t.curveName}).getEncodedHex(),w=m(t).getEncodedHex(),b="";return(b+=Pt(S,"EC PARAMETERS"))+Pt(w,"EC PRIVATE KEY")}if("PKCS1PRV"==e&&void 0!==g&&t instanceof g&&(void 0===r||null==r)&&1==t.isPrivate)return Pt(F=_(t).getEncodedHex(),"DSA PRIVATE KEY");if("PKCS5PRV"==e&&void 0!==p&&t instanceof p&&void 0!==r&&null!=r&&1==t.isPrivate){var F=v(t).getEncodedHex();return void 0===n&&(n="DES-EDE3-CBC"),this.getEncryptedPKCS5PEMFromPrvKeyHex("RSA",F,r,n,o)}if("PKCS5PRV"==e&&void 0!==d&&t instanceof d&&void 0!==r&&null!=r&&1==t.isPrivate)return F=m(t).getEncodedHex(),void 0===n&&(n="DES-EDE3-CBC"),this.getEncryptedPKCS5PEMFromPrvKeyHex("EC",F,r,n,o);if("PKCS5PRV"==e&&void 0!==g&&t instanceof g&&void 0!==r&&null!=r&&1==t.isPrivate)return F=_(t).getEncodedHex(),void 0===n&&(n="DES-EDE3-CBC"),this.getEncryptedPKCS5PEMFromPrvKeyHex("DSA",F,r,n,o);var E=function(t,e){var r=x(t,e);return new h({seq:[{seq:[{oid:{name:"pkcs5PBES2"}},{seq:[{seq:[{oid:{name:"pkcs5PBKDF2"}},{seq:[{octstr:{hex:r.pbkdf2Salt}},{int:r.pbkdf2Iter}]}]},{seq:[{oid:{name:"des-EDE3-CBC"}},{octstr:{hex:r.encryptionSchemeIV}}]}]}]},{octstr:{hex:r.ciphertext}}]}).getEncodedHex()},x=function(t,e){var r=y.lib.WordArray.random(8),n=y.lib.WordArray.random(8),i=y.PBKDF2(e,r,{keySize:6,iterations:100}),o=y.enc.Hex.parse(t),s=y.TripleDES.encrypt(o,i,{iv:n})+"",a={};return a.ciphertext=s,a.pbkdf2Salt=y.enc.Hex.stringify(r),a.pbkdf2Iter=100,a.encryptionSchemeAlg="DES-EDE3-CBC",a.encryptionSchemeIV=y.enc.Hex.stringify(n),a};if("PKCS8PRV"==e&&null!=p&&t instanceof p&&1==t.isPrivate){var A=v(t).getEncodedHex();return F=h({seq:[{int:0},{seq:[{oid:{name:"rsaEncryption"}},{null:!0}]},{octstr:{hex:A}}]}).getEncodedHex(),void 0===r||null==r?Pt(F,"PRIVATE KEY"):Pt(w=E(F,r),"ENCRYPTED PRIVATE KEY")}if("PKCS8PRV"==e&&void 0!==d&&t instanceof d&&1==t.isPrivate)return A=new h({seq:[{int:1},{octstr:{hex:t.prvKeyHex}},{tag:["a1",!0,{bitstr:{hex:"00"+t.pubKeyHex}}]}]}).getEncodedHex(),F=h({seq:[{int:0},{seq:[{oid:{name:"ecPublicKey"}},{oid:{name:t.curveName}}]},{octstr:{hex:A}}]}).getEncodedHex(),void 0===r||null==r?Pt(F,"PRIVATE KEY"):Pt(w=E(F,r),"ENCRYPTED PRIVATE KEY");if("PKCS8PRV"==e&&void 0!==g&&t instanceof g&&1==t.isPrivate)return A=new c({bigint:t.x}).getEncodedHex(),F=h({seq:[{int:0},{seq:[{oid:{name:"dsa"}},{seq:[{int:{bigint:t.p}},{int:{bigint:t.q}},{int:{bigint:t.g}}]}]},{octstr:{hex:A}}]}).getEncodedHex(),void 0===r||null==r?Pt(F,"PRIVATE KEY"):Pt(w=E(F,r),"ENCRYPTED PRIVATE KEY");throw new Error("unsupported object nor format")},Ht.getKeyFromCSRPEM=function(t){var e=Ct(t,"CERTIFICATE REQUEST");return Ht.getKeyFromCSRHex(e)},Ht.getKeyFromCSRHex=function(t){var e=Ht.parseCSRHex(t);return Ht.getKey(e.p8pubkeyhex,null,"pkcs8pub")},Ht.parseCSRHex=function(t){var e=ft,r=e.getChildIdx,n=e.getTLV,i={},o=t;if("30"!=o.substr(0,2))throw"malformed CSR(code:001)";var s=r(o,0);if(s.length<1)throw"malformed CSR(code:002)";if("30"!=o.substr(s[0],2))throw"malformed CSR(code:003)";var a=r(o,s[0]);if(a.length<3)throw"malformed CSR(code:004)";return i.p8pubkeyhex=n(o,a[2]),i},Ht.getKeyID=function(t){var e=Ht,r=ft;"string"==typeof t&&-1!=t.indexOf("BEGIN ")&&(t=e.getKey(t));var n=Ct(e.getPEM(t)),i=r.getIdxbyList(n,0,[1]),o=r.getV(n,i).substring(2);return ct.crypto.Util.hashHex(o,"sha1")},Ht.getJWKFromKey=function(t){var e={};if(t instanceof it&&t.isPrivate)return e.kty="RSA",e.n=_t(t.n.toString(16)),e.e=_t(t.e.toString(16)),e.d=_t(t.d.toString(16)),e.p=_t(t.p.toString(16)),e.q=_t(t.q.toString(16)),e.dp=_t(t.dmp1.toString(16)),e.dq=_t(t.dmq1.toString(16)),e.qi=_t(t.coeff.toString(16)),e;if(t instanceof it&&t.isPublic)return e.kty="RSA",e.n=_t(t.n.toString(16)),e.e=_t(t.e.toString(16)),e;if(t instanceof ct.crypto.ECDSA&&t.isPrivate){if("P-256"!==(n=t.getShortNISTPCurveName())&&"P-384"!==n)throw"unsupported curve name for JWT: "+n;var r=t.getPublicKeyXYHex();return e.kty="EC",e.crv=n,e.x=_t(r.x),e.y=_t(r.y),e.d=_t(t.prvKeyHex),e}if(t instanceof ct.crypto.ECDSA&&t.isPublic){var n;if("P-256"!==(n=t.getShortNISTPCurveName())&&"P-384"!==n)throw"unsupported curve name for JWT: "+n;return r=t.getPublicKeyXYHex(),e.kty="EC",e.crv=n,e.x=_t(r.x),e.y=_t(r.y),e}throw"not supported key object"},it.getPosArrayOfChildrenFromHex=function(t){return ft.getChildIdx(t,0)},it.getHexValueArrayOfChildrenFromHex=function(t){var e,r=ft.getV,n=r(t,(e=it.getPosArrayOfChildrenFromHex(t))[0]),i=r(t,e[1]),o=r(t,e[2]),s=r(t,e[3]),a=r(t,e[4]),u=r(t,e[5]),c=r(t,e[6]),h=r(t,e[7]),l=r(t,e[8]);return(e=new Array).push(n,i,o,s,a,u,c,h,l),e},it.prototype.readPrivateKeyFromPEMString=function(t){var e=Ct(t),r=it.getHexValueArrayOfChildrenFromHex(e);this.setPrivateEx(r[1],r[2],r[3],r[4],r[5],r[6],r[7],r[8])},it.prototype.readPKCS5PrvKeyHex=function(t){var e=it.getHexValueArrayOfChildrenFromHex(t);this.setPrivateEx(e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8])},it.prototype.readPKCS8PrvKeyHex=function(t){var e,r,n,i,o,s,a,u,c=ft,h=c.getVbyListEx;if(!1===c.isASN1HEX(t))throw new Error("not ASN.1 hex string");try{e=h(t,0,[2,0,1],"02"),r=h(t,0,[2,0,2],"02"),n=h(t,0,[2,0,3],"02"),i=h(t,0,[2,0,4],"02"),o=h(t,0,[2,0,5],"02"),s=h(t,0,[2,0,6],"02"),a=h(t,0,[2,0,7],"02"),u=h(t,0,[2,0,8],"02")}catch(t){throw new Error("malformed PKCS#8 plain RSA private key")}this.setPrivateEx(e,r,n,i,o,s,a,u)},it.prototype.readPKCS5PubKeyHex=function(t){var e=ft,r=e.getV;if(!1===e.isASN1HEX(t))throw new Error("keyHex is not ASN.1 hex string");var n=e.getChildIdx(t,0);if(2!==n.length||"02"!==t.substr(n[0],2)||"02"!==t.substr(n[1],2))throw new Error("wrong hex for PKCS#5 public key");var i=r(t,n[0]),o=r(t,n[1]);this.setPublic(i,o)},it.prototype.readPKCS8PubKeyHex=function(t){var e=ft;if(!1===e.isASN1HEX(t))throw new Error("not ASN.1 hex string");if("06092a864886f70d010101"!==e.getTLVbyListEx(t,0,[0,0]))throw new Error("not PKCS8 RSA public key");var r=e.getTLVbyListEx(t,0,[1,0]);this.readPKCS5PubKeyHex(r)},it.prototype.readCertPubKeyHex=function(t,e){var r,n;(r=new Wt).readCertHex(t),n=r.getPublicKeyHex(),this.readPKCS8PubKeyHex(n)};var Kt=new RegExp("[^0-9a-f]","gi");function Vt(t,e){for(var r="",n=e/4-t.length,i=0;i>24,(16711680&i)>>16,(65280&i)>>8,255&i])))),i+=1;return n}function Jt(t){for(var e in ct.crypto.Util.DIGESTINFOHEAD){var r=ct.crypto.Util.DIGESTINFOHEAD[e],n=r.length;if(t.substring(0,n)==r)return[e,t.substring(n)]}return[]}function Wt(t){var e,r=ft,n=r.getChildIdx,i=r.getV,o=r.getTLV,s=r.getVbyList,a=r.getVbyListEx,u=r.getTLVbyList,c=r.getTLVbyListEx,h=r.getIdxbyList,l=r.getIdxbyListEx,f=r.getVidx,g=r.oidname,d=r.hextooidstr,p=Wt,v=Ct;try{e=ct.asn1.x509.AlgorithmIdentifier.PSSNAME2ASN1TLV}catch(t){}this.HEX2STAG={"0c":"utf8",13:"prn",16:"ia5","1a":"vis","1e":"bmp"},this.hex=null,this.version=0,this.foffset=0,this.aExtInfo=null,this.getVersion=function(){return null===this.hex||0!==this.version?this.version:"a003020102"!==u(this.hex,0,[0,0])?(this.version=1,this.foffset=-1,1):(this.version=3,3)},this.getSerialNumberHex=function(){return a(this.hex,0,[0,0],"02")},this.getSignatureAlgorithmField=function(){var t=c(this.hex,0,[0,1]);return this.getAlgorithmIdentifierName(t)},this.getAlgorithmIdentifierName=function(t){for(var r in e)if(t===e[r])return r;return g(a(t,0,[0],"06"))},this.getIssuer=function(){return this.getX500Name(this.getIssuerHex())},this.getIssuerHex=function(){return u(this.hex,0,[0,3+this.foffset],"30")},this.getIssuerString=function(){return p.hex2dn(this.getIssuerHex())},this.getSubject=function(){return this.getX500Name(this.getSubjectHex())},this.getSubjectHex=function(){return u(this.hex,0,[0,5+this.foffset],"30")},this.getSubjectString=function(){return p.hex2dn(this.getSubjectHex())},this.getNotBefore=function(){var t=s(this.hex,0,[0,4+this.foffset,0]);return t=t.replace(/(..)/g,"%$1"),decodeURIComponent(t)},this.getNotAfter=function(){var t=s(this.hex,0,[0,4+this.foffset,1]);return t=t.replace(/(..)/g,"%$1"),decodeURIComponent(t)},this.getPublicKeyHex=function(){return r.getTLVbyList(this.hex,0,[0,6+this.foffset],"30")},this.getPublicKeyIdx=function(){return h(this.hex,0,[0,6+this.foffset],"30")},this.getPublicKeyContentIdx=function(){var t=this.getPublicKeyIdx();return h(this.hex,t,[1,0],"30")},this.getPublicKey=function(){return Ht.getKey(this.getPublicKeyHex(),null,"pkcs8pub")},this.getSignatureAlgorithmName=function(){var t=u(this.hex,0,[1],"30");return this.getAlgorithmIdentifierName(t)},this.getSignatureValueHex=function(){return s(this.hex,0,[2],"03",!0)},this.verifySignature=function(t){var e=this.getSignatureAlgorithmField(),r=this.getSignatureValueHex(),n=u(this.hex,0,[0],"30"),i=new ct.crypto.Signature({alg:e});return i.init(t),i.updateHex(n),i.verify(r)},this.parseExt=function(t){var e,o,a;if(void 0===t){if(a=this.hex,3!==this.version)return-1;e=h(a,0,[0,7,0],"30"),o=n(a,e)}else{a=Ct(t);var u=h(a,0,[0,3,0,0],"06");if("2a864886f70d01090e"!=i(a,u))return void(this.aExtInfo=new Array);e=h(a,0,[0,3,0,1,0],"30"),o=n(a,e),this.hex=a}this.aExtInfo=new Array;for(var c=0;c1){var a=o(t,s[1]),u=this.getGeneralName(a);null!=u.uri&&(i.uri=u.uri)}if(s.length>2){var c=o(t,s[2]);"0101ff"==c&&(i.reqauth=!0),"010100"==c&&(i.reqauth=!1)}return i},this.getX500NameRule=function(t){for(var e=null,r=[],n=0;n0&&(t.ext=this.getExtParamArray()),t.sighex=this.getSignatureValueHex(),t},this.getExtParamArray=function(t){null==t&&-1!=l(this.hex,0,[0,"[3]"])&&(t=c(this.hex,0,[0,"[3]",0],"30"));for(var e=[],r=n(t,0),i=0;i0&&(c=new Array(r),(new et).nextBytes(c),c=String.fromCharCode.apply(String,c));var h=Ft(u(Et("\0\0\0\0\0\0\0\0"+i+c))),l=[];for(n=0;n>8*a-s&255;for(d[0]&=~p,n=0;nthis.n.bitLength())return 0;var n=Jt(this.doPublic(r).toString(16).replace(/^1f+00/,""));if(0==n.length)return!1;var i=n[0];return n[1]==function(t){return ct.crypto.Util.hashString(t,i)}(t)},it.prototype.verifyWithMessageHash=function(t,e){if(e.length!=Math.ceil(this.n.bitLength()/4))return!1;var r=rt(e,16);if(r.bitLength()>this.n.bitLength())return 0;var n=Jt(this.doPublic(r).toString(16).replace(/^1f+00/,""));return 0!=n.length&&(n[0],n[1]==t)},it.prototype.verifyPSS=function(t,e,r,n){var i=function(t){return ct.crypto.Util.hashHex(t,r)}(Et(t));return void 0===n&&(n=-1),this.verifyWithMessageHashPSS(i,e,r,n)},it.prototype.verifyWithMessageHashPSS=function(t,e,r,n){if(e.length!=Math.ceil(this.n.bitLength()/4))return!1;var i,o=new F(e,16),s=function(t){return ct.crypto.Util.hashHex(t,r)},a=Ft(t),u=a.length,c=this.n.bitLength()-1,h=Math.ceil(c/8);if(-1===n||void 0===n)n=u;else if(-2===n)n=h-u-2;else if(n<-2)throw new Error("invalid salt length");if(h>8*h-c&255;if(0!=(f.charCodeAt(0)&d))throw new Error("bits beyond keysize not zero");var p=qt(g,f.length,s),v=[];for(i=0;i0&&-1==(":"+n.join(":")+":").indexOf(":"+y+":"))throw"algorithm '"+y+"' not accepted in the list";if("none"!=y&&null===e)throw"key shall be specified to verify.";if("string"==typeof e&&-1!=e.indexOf("-----BEGIN ")&&(e=Ht.getKey(e)),!("RS"!=g&&"PS"!=g||e instanceof i))throw"key shall be a RSAKey obj for RS* and PS* algs";if("ES"==g&&!(e instanceof c))throw"key shall be a ECDSA obj for ES* algs";var m=null;if(void 0===s.jwsalg2sigalg[v.alg])throw"unsupported alg name: "+y;if("none"==(m=s.jwsalg2sigalg[y]))throw"not supported";if("Hmac"==m.substr(0,4)){if(void 0===e)throw"hexadecimal key shall be specified for HMAC";var _=new h({alg:m,pass:e});return _.updateString(d),p==_.doFinal()}if(-1!=m.indexOf("withECDSA")){var S,w=null;try{w=c.concatSigToASN1Sig(p)}catch(t){return!1}return(S=new l({alg:m})).init(e),S.updateString(d),S.verify(w)}return(S=new l({alg:m})).init(e),S.updateString(d),S.verify(p)},ct.jws.JWS.parse=function(t){var e,r,n,i=t.split("."),o={};if(2!=i.length&&3!=i.length)throw"malformed sJWS: wrong number of '.' splitted elements";return e=i[0],r=i[1],3==i.length&&(n=i[2]),o.headerObj=ct.jws.JWS.readSafeJSONString(lt(e)),o.payloadObj=ct.jws.JWS.readSafeJSONString(lt(r)),o.headerPP=JSON.stringify(o.headerObj,null," "),null==o.payloadObj?o.payloadPP=lt(r):o.payloadPP=JSON.stringify(o.payloadObj,null," "),void 0!==n&&(o.sigHex=St(n)),o},ct.jws.JWS.verifyJWT=function(t,e,n){var i=ct.jws,o=i.JWS,s=o.readSafeJSONString,a=o.inArray,u=o.includedArray,c=t.split("."),h=c[0],l=c[1],f=(St(c[2]),s(lt(h))),g=s(lt(l));if(void 0===f.alg)return!1;if(void 0===n.alg)throw"acceptField.alg shall be specified";if(!a(f.alg,n.alg))return!1;if(void 0!==g.iss&&"object"===r(n.iss)&&!a(g.iss,n.iss))return!1;if(void 0!==g.sub&&"object"===r(n.sub)&&!a(g.sub,n.sub))return!1;if(void 0!==g.aud&&"object"===r(n.aud))if("string"==typeof g.aud){if(!a(g.aud,n.aud))return!1}else if("object"==r(g.aud)&&!u(g.aud,n.aud))return!1;var d=i.IntDate.getNow();return void 0!==n.verifyAt&&"number"==typeof n.verifyAt&&(d=n.verifyAt),void 0!==n.gracePeriod&&"number"==typeof n.gracePeriod||(n.gracePeriod=0),!(void 0!==g.exp&&"number"==typeof g.exp&&g.exp+n.gracePeriode.length&&(r=e.length);for(var n=0;n=s())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+s().toString(16)+" bytes");return 0|t}function d(t,e){if(u.isBuffer(t))return t.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(t)||t instanceof ArrayBuffer))return t.byteLength;"string"!=typeof t&&(t=""+t);var r=t.length;if(0===r)return 0;for(var n=!1;;)switch(e){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return H(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return K(t).length;default:if(n)return H(t).length;e=(""+e).toLowerCase(),n=!0}}function p(t,e,r){var n=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(e>>>=0))return"";for(t||(t="utf8");;)switch(t){case"hex":return T(this,e,r);case"utf8":case"utf-8":return A(this,e,r);case"ascii":return P(this,e,r);case"latin1":case"binary":return C(this,e,r);case"base64":return x(this,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return R(this,e,r);default:if(n)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),n=!0}}function v(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function y(t,e,r,n,i){if(0===t.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=i?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(i)return-1;r=t.length-1}else if(r<0){if(!i)return-1;r=0}if("string"==typeof e&&(e=u.from(e,n)),u.isBuffer(e))return 0===e.length?-1:m(t,e,r,n,i);if("number"==typeof e)return e&=255,u.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(t,e,r):Uint8Array.prototype.lastIndexOf.call(t,e,r):m(t,[e],r,n,i);throw new TypeError("val must be string, number or Buffer")}function m(t,e,r,n,i){var o,s=1,a=t.length,u=e.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(t.length<2||e.length<2)return-1;s=2,a/=2,u/=2,r/=2}function c(t,e){return 1===s?t[e]:t.readUInt16BE(e*s)}if(i){var h=-1;for(o=r;oa&&(r=a-u),o=r;o>=0;o--){for(var l=!0,f=0;fi&&(n=i):n=i;var o=e.length;if(o%2!=0)throw new TypeError("Invalid hex string");n>o/2&&(n=o/2);for(var s=0;s>8,i=r%256,o.push(i),o.push(n);return o}(e,t.length-r),t,r,n)}function x(t,e,r){return 0===e&&r===t.length?n.fromByteArray(t):n.fromByteArray(t.slice(e,r))}function A(t,e,r){r=Math.min(t.length,r);for(var n=[],i=e;i239?4:c>223?3:c>191?2:1;if(i+l<=r)switch(l){case 1:c<128&&(h=c);break;case 2:128==(192&(o=t[i+1]))&&(u=(31&c)<<6|63&o)>127&&(h=u);break;case 3:o=t[i+1],s=t[i+2],128==(192&o)&&128==(192&s)&&(u=(15&c)<<12|(63&o)<<6|63&s)>2047&&(u<55296||u>57343)&&(h=u);break;case 4:o=t[i+1],s=t[i+2],a=t[i+3],128==(192&o)&&128==(192&s)&&128==(192&a)&&(u=(15&c)<<18|(63&o)<<12|(63&s)<<6|63&a)>65535&&u<1114112&&(h=u)}null===h?(h=65533,l=1):h>65535&&(h-=65536,n.push(h>>>10&1023|55296),h=56320|1023&h),n.push(h),i+=l}return function(t){var e=t.length;if(e<=k)return String.fromCharCode.apply(String,t);for(var r="",n=0;n0&&(t=this.toString("hex",0,r).match(/.{2}/g).join(" "),this.length>r&&(t+=" ... ")),""},u.prototype.compare=function(t,e,r,n,i){if(!u.isBuffer(t))throw new TypeError("Argument must be a Buffer");if(void 0===e&&(e=0),void 0===r&&(r=t?t.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),e<0||r>t.length||n<0||i>this.length)throw new RangeError("out of range index");if(n>=i&&e>=r)return 0;if(n>=i)return-1;if(e>=r)return 1;if(this===t)return 0;for(var o=(i>>>=0)-(n>>>=0),s=(r>>>=0)-(e>>>=0),a=Math.min(o,s),c=this.slice(n,i),h=t.slice(e,r),l=0;li)&&(r=i),t.length>0&&(r<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var o=!1;;)switch(n){case"hex":return _(this,t,e,r);case"utf8":case"utf-8":return S(this,t,e,r);case"ascii":return w(this,t,e,r);case"latin1":case"binary":return b(this,t,e,r);case"base64":return F(this,t,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return E(this,t,e,r);default:if(o)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),o=!0}},u.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var k=4096;function P(t,e,r){var n="";r=Math.min(t.length,r);for(var i=e;in)&&(r=n);for(var i="",o=e;or)throw new RangeError("Trying to access beyond buffer length")}function D(t,e,r,n,i,o){if(!u.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>i||et.length)throw new RangeError("Index out of range")}function L(t,e,r,n){e<0&&(e=65535+e+1);for(var i=0,o=Math.min(t.length-r,2);i>>8*(n?i:1-i)}function N(t,e,r,n){e<0&&(e=4294967295+e+1);for(var i=0,o=Math.min(t.length-r,4);i>>8*(n?i:3-i)&255}function U(t,e,r,n,i,o){if(r+n>t.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function O(t,e,r,n,o){return o||U(t,0,r,4),i.write(t,e,r,n,23,4),r+4}function B(t,e,r,n,o){return o||U(t,0,r,8),i.write(t,e,r,n,52,8),r+8}u.prototype.slice=function(t,e){var r,n=this.length;if((t=~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),(e=void 0===e?n:~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),e0&&(i*=256);)n+=this[t+--e]*i;return n},u.prototype.readUInt8=function(t,e){return e||I(t,1,this.length),this[t]},u.prototype.readUInt16LE=function(t,e){return e||I(t,2,this.length),this[t]|this[t+1]<<8},u.prototype.readUInt16BE=function(t,e){return e||I(t,2,this.length),this[t]<<8|this[t+1]},u.prototype.readUInt32LE=function(t,e){return e||I(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},u.prototype.readUInt32BE=function(t,e){return e||I(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},u.prototype.readIntLE=function(t,e,r){t|=0,e|=0,r||I(t,e,this.length);for(var n=this[t],i=1,o=0;++o=(i*=128)&&(n-=Math.pow(2,8*e)),n},u.prototype.readIntBE=function(t,e,r){t|=0,e|=0,r||I(t,e,this.length);for(var n=e,i=1,o=this[t+--n];n>0&&(i*=256);)o+=this[t+--n]*i;return o>=(i*=128)&&(o-=Math.pow(2,8*e)),o},u.prototype.readInt8=function(t,e){return e||I(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},u.prototype.readInt16LE=function(t,e){e||I(t,2,this.length);var r=this[t]|this[t+1]<<8;return 32768&r?4294901760|r:r},u.prototype.readInt16BE=function(t,e){e||I(t,2,this.length);var r=this[t+1]|this[t]<<8;return 32768&r?4294901760|r:r},u.prototype.readInt32LE=function(t,e){return e||I(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},u.prototype.readInt32BE=function(t,e){return e||I(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},u.prototype.readFloatLE=function(t,e){return e||I(t,4,this.length),i.read(this,t,!0,23,4)},u.prototype.readFloatBE=function(t,e){return e||I(t,4,this.length),i.read(this,t,!1,23,4)},u.prototype.readDoubleLE=function(t,e){return e||I(t,8,this.length),i.read(this,t,!0,52,8)},u.prototype.readDoubleBE=function(t,e){return e||I(t,8,this.length),i.read(this,t,!1,52,8)},u.prototype.writeUIntLE=function(t,e,r,n){t=+t,e|=0,r|=0,n||D(this,t,e,r,Math.pow(2,8*r)-1,0);var i=1,o=0;for(this[e]=255&t;++o=0&&(o*=256);)this[e+i]=t/o&255;return e+r},u.prototype.writeUInt8=function(t,e,r){return t=+t,e|=0,r||D(this,t,e,1,255,0),u.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),this[e]=255&t,e+1},u.prototype.writeUInt16LE=function(t,e,r){return t=+t,e|=0,r||D(this,t,e,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):L(this,t,e,!0),e+2},u.prototype.writeUInt16BE=function(t,e,r){return t=+t,e|=0,r||D(this,t,e,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):L(this,t,e,!1),e+2},u.prototype.writeUInt32LE=function(t,e,r){return t=+t,e|=0,r||D(this,t,e,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t):N(this,t,e,!0),e+4},u.prototype.writeUInt32BE=function(t,e,r){return t=+t,e|=0,r||D(this,t,e,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):N(this,t,e,!1),e+4},u.prototype.writeIntLE=function(t,e,r,n){if(t=+t,e|=0,!n){var i=Math.pow(2,8*r-1);D(this,t,e,r,i-1,-i)}var o=0,s=1,a=0;for(this[e]=255&t;++o>0)-a&255;return e+r},u.prototype.writeIntBE=function(t,e,r,n){if(t=+t,e|=0,!n){var i=Math.pow(2,8*r-1);D(this,t,e,r,i-1,-i)}var o=r-1,s=1,a=0;for(this[e+o]=255&t;--o>=0&&(s*=256);)t<0&&0===a&&0!==this[e+o+1]&&(a=1),this[e+o]=(t/s>>0)-a&255;return e+r},u.prototype.writeInt8=function(t,e,r){return t=+t,e|=0,r||D(this,t,e,1,127,-128),u.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),t<0&&(t=255+t+1),this[e]=255&t,e+1},u.prototype.writeInt16LE=function(t,e,r){return t=+t,e|=0,r||D(this,t,e,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):L(this,t,e,!0),e+2},u.prototype.writeInt16BE=function(t,e,r){return t=+t,e|=0,r||D(this,t,e,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):L(this,t,e,!1),e+2},u.prototype.writeInt32LE=function(t,e,r){return t=+t,e|=0,r||D(this,t,e,4,2147483647,-2147483648),u.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24):N(this,t,e,!0),e+4},u.prototype.writeInt32BE=function(t,e,r){return t=+t,e|=0,r||D(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),u.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):N(this,t,e,!1),e+4},u.prototype.writeFloatLE=function(t,e,r){return O(this,t,e,!0,r)},u.prototype.writeFloatBE=function(t,e,r){return O(this,t,e,!1,r)},u.prototype.writeDoubleLE=function(t,e,r){return B(this,t,e,!0,r)},u.prototype.writeDoubleBE=function(t,e,r){return B(this,t,e,!1,r)},u.prototype.copy=function(t,e,r,n){if(r||(r=0),n||0===n||(n=this.length),e>=t.length&&(e=t.length),e||(e=0),n>0&&n=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),t.length-e=0;--i)t[i+e]=this[i+r];else if(o<1e3||!u.TYPED_ARRAY_SUPPORT)for(i=0;i>>=0,r=void 0===r?this.length:r>>>0,t||(t=0),"number"==typeof t)for(o=e;o55295&&r<57344){if(!i){if(r>56319){(e-=3)>-1&&o.push(239,191,189);continue}if(s+1===n){(e-=3)>-1&&o.push(239,191,189);continue}i=r;continue}if(r<56320){(e-=3)>-1&&o.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(e-=3)>-1&&o.push(239,191,189);if(i=null,r<128){if((e-=1)<0)break;o.push(r)}else if(r<2048){if((e-=2)<0)break;o.push(r>>6|192,63&r|128)}else if(r<65536){if((e-=3)<0)break;o.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return o}function K(t){return n.toByteArray(function(t){if((t=function(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")}(t).replace(M,"")).length<2)return"";for(;t.length%4!=0;)t+="=";return t}(t))}function V(t,e,r,n){for(var i=0;i=e.length||i>=t.length);++i)e[i+r]=t[i];return i}}).call(this,r(29))},function(t,e){var r;r=function(){return this}();try{r=r||new Function("return this")()}catch(t){"object"==typeof window&&(r=window)}t.exports=r},function(t,e,r){"use strict";e.byteLength=function(t){var e=c(t),r=e[0],n=e[1];return 3*(r+n)/4-n},e.toByteArray=function(t){var e,r,n=c(t),s=n[0],a=n[1],u=new o(function(t,e,r){return 3*(e+r)/4-r}(0,s,a)),h=0,l=a>0?s-4:s;for(r=0;r>16&255,u[h++]=e>>8&255,u[h++]=255&e;return 2===a&&(e=i[t.charCodeAt(r)]<<2|i[t.charCodeAt(r+1)]>>4,u[h++]=255&e),1===a&&(e=i[t.charCodeAt(r)]<<10|i[t.charCodeAt(r+1)]<<4|i[t.charCodeAt(r+2)]>>2,u[h++]=e>>8&255,u[h++]=255&e),u},e.fromByteArray=function(t){for(var e,r=t.length,i=r%3,o=[],s=16383,a=0,u=r-i;au?u:a+s));return 1===i?(e=t[r-1],o.push(n[e>>2]+n[e<<4&63]+"==")):2===i&&(e=(t[r-2]<<8)+t[r-1],o.push(n[e>>10]+n[e>>4&63]+n[e<<2&63]+"=")),o.join("")};for(var n=[],i=[],o="undefined"!=typeof Uint8Array?Uint8Array:Array,s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",a=0,u=s.length;a0)throw new Error("Invalid string. Length must be a multiple of 4");var r=t.indexOf("=");return-1===r&&(r=e),[r,r===e?0:4-r%4]}function h(t,e,r){for(var i,o,s=[],a=e;a>18&63]+n[o>>12&63]+n[o>>6&63]+n[63&o]);return s.join("")}i["-".charCodeAt(0)]=62,i["_".charCodeAt(0)]=63},function(t,e){e.read=function(t,e,r,n,i){var o,s,a=8*i-n-1,u=(1<>1,h=-7,l=r?i-1:0,f=r?-1:1,g=t[e+l];for(l+=f,o=g&(1<<-h)-1,g>>=-h,h+=a;h>0;o=256*o+t[e+l],l+=f,h-=8);for(s=o&(1<<-h)-1,o>>=-h,h+=n;h>0;s=256*s+t[e+l],l+=f,h-=8);if(0===o)o=1-c;else{if(o===u)return s?NaN:1/0*(g?-1:1);s+=Math.pow(2,n),o-=c}return(g?-1:1)*s*Math.pow(2,o-n)},e.write=function(t,e,r,n,i,o){var s,a,u,c=8*o-i-1,h=(1<>1,f=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,g=n?0:o-1,d=n?1:-1,p=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,s=h):(s=Math.floor(Math.log(e)/Math.LN2),e*(u=Math.pow(2,-s))<1&&(s--,u*=2),(e+=s+l>=1?f/u:f*Math.pow(2,1-l))*u>=2&&(s++,u/=2),s+l>=h?(a=0,s=h):s+l>=1?(a=(e*u-1)*Math.pow(2,i),s+=l):(a=e*Math.pow(2,l-1)*Math.pow(2,i),s=0));i>=8;t[r+g]=255&a,g+=d,a/=256,i-=8);for(s=s<0;t[r+g]=255&s,g+=d,s/=256,c-=8);t[r+g-d]|=128*p}},function(t,e){var r={}.toString;t.exports=Array.isArray||function(t){return"[object Array]"==r.call(t)}},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){var e=t.jws,r=t.KeyUtil,i=t.X509,o=t.crypto,s=t.hextob64u,a=t.b64tohex,u=t.AllowedSigningAlgs;return function(){function t(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t)}return t.parseJwt=function t(r){n.Log.debug("JoseUtil.parseJwt");try{var i=e.JWS.parse(r);return{header:i.headerObj,payload:i.payloadObj}}catch(t){n.Log.error(t)}},t.validateJwt=function(e,o,s,u,c,h,l){n.Log.debug("JoseUtil.validateJwt");try{if("RSA"===o.kty)if(o.e&&o.n)o=r.getKey(o);else{if(!o.x5c||!o.x5c.length)return n.Log.error("JoseUtil.validateJwt: RSA key missing key material",o),Promise.reject(new Error("RSA key missing key material"));var f=a(o.x5c[0]);o=i.getPublicKeyFromCertHex(f)}else{if("EC"!==o.kty)return n.Log.error("JoseUtil.validateJwt: Unsupported key type",o&&o.kty),Promise.reject(new Error(o.kty));if(!(o.crv&&o.x&&o.y))return n.Log.error("JoseUtil.validateJwt: EC key missing key material",o),Promise.reject(new Error("EC key missing key material"));o=r.getKey(o)}return t._validateJwt(e,o,s,u,c,h,l)}catch(t){return n.Log.error(t&&t.message||t),Promise.reject("JWT validation failed")}},t.validateJwtAttributes=function(e,r,i,o,s,a){o||(o=0),s||(s=parseInt(Date.now()/1e3));var u=t.parseJwt(e).payload;if(!u.iss)return n.Log.error("JoseUtil._validateJwt: issuer was not provided"),Promise.reject(new Error("issuer was not provided"));if(u.iss!==r)return n.Log.error("JoseUtil._validateJwt: Invalid issuer in token",u.iss),Promise.reject(new Error("Invalid issuer in token: "+u.iss));if(!u.aud)return n.Log.error("JoseUtil._validateJwt: aud was not provided"),Promise.reject(new Error("aud was not provided"));if(!(u.aud===i||Array.isArray(u.aud)&&u.aud.indexOf(i)>=0))return n.Log.error("JoseUtil._validateJwt: Invalid audience in token",u.aud),Promise.reject(new Error("Invalid audience in token: "+u.aud));if(u.azp&&u.azp!==i)return n.Log.error("JoseUtil._validateJwt: Invalid azp in token",u.azp),Promise.reject(new Error("Invalid azp in token: "+u.azp));if(!a){var c=s+o,h=s-o;if(!u.iat)return n.Log.error("JoseUtil._validateJwt: iat was not provided"),Promise.reject(new Error("iat was not provided"));if(c1&&void 0!==arguments[1]?arguments[1]:"#";!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t);var n=i.UrlUtility.parseUrlFragment(e,r);this.error=n.error,this.error_description=n.error_description,this.error_uri=n.error_uri,this.code=n.code,this.state=n.state,this.id_token=n.id_token,this.session_state=n.session_state,this.access_token=n.access_token,this.token_type=n.token_type,this.scope=n.scope,this.profile=void 0,this.expires_in=n.expires_in}return n(t,[{key:"expires_in",get:function(){if(this.expires_at){var t=parseInt(Date.now()/1e3);return this.expires_at-t}},set:function(t){var e=parseInt(t);if("number"==typeof e&&e>0){var r=parseInt(Date.now()/1e3);this.expires_at=r+e}}},{key:"expired",get:function(){var t=this.expires_in;if(void 0!==t)return t<=0}},{key:"scopes",get:function(){return(this.scope||"").split(" ")}},{key:"isOpenIdConnect",get:function(){return this.scopes.indexOf("openid")>=0||!!this.id_token}}]),t}()},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SignoutRequest=void 0;var n=r(0),i=r(3),o=r(9);e.SignoutRequest=function t(e){var r=e.url,s=e.id_token_hint,a=e.post_logout_redirect_uri,u=e.data,c=e.extraQueryParams,h=e.request_type;if(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),!r)throw n.Log.error("SignoutRequest.ctor: No url passed"),new Error("url");for(var l in s&&(r=i.UrlUtility.addQueryParam(r,"id_token_hint",s)),a&&(r=i.UrlUtility.addQueryParam(r,"post_logout_redirect_uri",a),u&&(this.state=new o.State({data:u,request_type:h}),r=i.UrlUtility.addQueryParam(r,"state",this.state.id))),c)r=i.UrlUtility.addQueryParam(r,l,c[l]);this.url=r}},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SignoutResponse=void 0;var n=r(3);e.SignoutResponse=function t(e){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t);var r=n.UrlUtility.parseUrlFragment(e,"?");this.error=r.error,this.error_description=r.error_description,this.error_uri=r.error_uri,this.state=r.state}},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.InMemoryWebStorage=void 0;var n=function(){function t(t,e){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:c.SilentRenewService,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:h.SessionMonitor,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:f.TokenRevocationClient,l=arguments.length>4&&void 0!==arguments[4]?arguments[4]:g.TokenClient,p=arguments.length>5&&void 0!==arguments[5]?arguments[5]:d.JoseUtil;(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")})(this,e),r instanceof s.UserManagerSettings||(r=new s.UserManagerSettings(r));var v=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}(this,t.call(this,r));return v._events=new u.UserManagerEvents(r),v._silentRenewService=new n(v),v.settings.automaticSilentRenew&&(i.Log.debug("UserManager.ctor: automaticSilentRenew is configured, setting up silent renew"),v.startSilentRenew()),v.settings.monitorSession&&(i.Log.debug("UserManager.ctor: monitorSession is configured, setting up session monitor"),v._sessionMonitor=new o(v)),v._tokenRevocationClient=new a(v._settings),v._tokenClient=new l(v._settings),v._joseUtil=p,v}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,t),e.prototype.getUser=function(){var t=this;return this._loadUser().then((function(e){return e?(i.Log.info("UserManager.getUser: user loaded"),t._events.load(e,!1),e):(i.Log.info("UserManager.getUser: user not found in storage"),null)}))},e.prototype.removeUser=function(){var t=this;return this.storeUser(null).then((function(){i.Log.info("UserManager.removeUser: user removed from storage"),t._events.unload()}))},e.prototype.signinRedirect=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(t=Object.assign({},t)).request_type="si:r";var e={useReplaceToNavigate:t.useReplaceToNavigate};return this._signinStart(t,this._redirectNavigator,e).then((function(){i.Log.info("UserManager.signinRedirect: successful")}))},e.prototype.signinRedirectCallback=function(t){return this._signinEnd(t||this._redirectNavigator.url).then((function(t){return t.profile&&t.profile.sub?i.Log.info("UserManager.signinRedirectCallback: successful, signed in sub: ",t.profile.sub):i.Log.info("UserManager.signinRedirectCallback: no sub"),t}))},e.prototype.signinPopup=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(t=Object.assign({},t)).request_type="si:p";var e=t.redirect_uri||this.settings.popup_redirect_uri||this.settings.redirect_uri;return e?(t.redirect_uri=e,t.display="popup",this._signin(t,this._popupNavigator,{startUrl:e,popupWindowFeatures:t.popupWindowFeatures||this.settings.popupWindowFeatures,popupWindowTarget:t.popupWindowTarget||this.settings.popupWindowTarget}).then((function(t){return t&&(t.profile&&t.profile.sub?i.Log.info("UserManager.signinPopup: signinPopup successful, signed in sub: ",t.profile.sub):i.Log.info("UserManager.signinPopup: no sub")),t}))):(i.Log.error("UserManager.signinPopup: No popup_redirect_uri or redirect_uri configured"),Promise.reject(new Error("No popup_redirect_uri or redirect_uri configured")))},e.prototype.signinPopupCallback=function(t){return this._signinCallback(t,this._popupNavigator).then((function(t){return t&&(t.profile&&t.profile.sub?i.Log.info("UserManager.signinPopupCallback: successful, signed in sub: ",t.profile.sub):i.Log.info("UserManager.signinPopupCallback: no sub")),t})).catch((function(t){i.Log.error(t.message)}))},e.prototype.signinSilent=function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return e=Object.assign({},e),this._loadUser().then((function(r){return r&&r.refresh_token?(e.refresh_token=r.refresh_token,t._useRefreshToken(e)):(e.request_type="si:s",e.id_token_hint=e.id_token_hint||t.settings.includeIdTokenInSilentRenew&&r&&r.id_token,r&&t._settings.validateSubOnSilentRenew&&(i.Log.debug("UserManager.signinSilent, subject prior to silent renew: ",r.profile.sub),e.current_sub=r.profile.sub),t._signinSilentIframe(e))}))},e.prototype._useRefreshToken=function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this._tokenClient.exchangeRefreshToken(e).then((function(e){return e?e.access_token?t._loadUser().then((function(r){if(r){var n=Promise.resolve();return e.id_token&&(n=t._validateIdTokenFromTokenRefreshToken(r.profile,e.id_token)),n.then((function(){return i.Log.debug("UserManager._useRefreshToken: refresh token response success"),r.id_token=e.id_token||r.id_token,r.access_token=e.access_token,r.refresh_token=e.refresh_token||r.refresh_token,r.expires_in=e.expires_in,t.storeUser(r).then((function(){return t._events.load(r),r}))}))}return null})):(i.Log.error("UserManager._useRefreshToken: No access token returned from token endpoint"),Promise.reject("No access token returned from token endpoint")):(i.Log.error("UserManager._useRefreshToken: No response returned from token endpoint"),Promise.reject("No response returned from token endpoint"))}))},e.prototype._validateIdTokenFromTokenRefreshToken=function(t,e){var r=this;return this._metadataService.getIssuer().then((function(n){return r.settings.getEpochTime().then((function(o){return r._joseUtil.validateJwtAttributes(e,n,r._settings.client_id,r._settings.clockSkew,o).then((function(e){return e?e.sub!==t.sub?(i.Log.error("UserManager._validateIdTokenFromTokenRefreshToken: sub in id_token does not match current sub"),Promise.reject(new Error("sub in id_token does not match current sub"))):e.auth_time&&e.auth_time!==t.auth_time?(i.Log.error("UserManager._validateIdTokenFromTokenRefreshToken: auth_time in id_token does not match original auth_time"),Promise.reject(new Error("auth_time in id_token does not match original auth_time"))):e.azp&&e.azp!==t.azp?(i.Log.error("UserManager._validateIdTokenFromTokenRefreshToken: azp in id_token does not match original azp"),Promise.reject(new Error("azp in id_token does not match original azp"))):!e.azp&&t.azp?(i.Log.error("UserManager._validateIdTokenFromTokenRefreshToken: azp not in id_token, but present in original id_token"),Promise.reject(new Error("azp not in id_token, but present in original id_token"))):void 0:(i.Log.error("UserManager._validateIdTokenFromTokenRefreshToken: Failed to validate id_token"),Promise.reject(new Error("Failed to validate id_token")))}))}))}))},e.prototype._signinSilentIframe=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.redirect_uri||this.settings.silent_redirect_uri||this.settings.redirect_uri;return e?(t.redirect_uri=e,t.prompt=t.prompt||"none",this._signin(t,this._iframeNavigator,{startUrl:e,silentRequestTimeout:t.silentRequestTimeout||this.settings.silentRequestTimeout}).then((function(t){return t&&(t.profile&&t.profile.sub?i.Log.info("UserManager.signinSilent: successful, signed in sub: ",t.profile.sub):i.Log.info("UserManager.signinSilent: no sub")),t}))):(i.Log.error("UserManager.signinSilent: No silent_redirect_uri configured"),Promise.reject(new Error("No silent_redirect_uri configured")))},e.prototype.signinSilentCallback=function(t){return this._signinCallback(t,this._iframeNavigator).then((function(t){return t&&(t.profile&&t.profile.sub?i.Log.info("UserManager.signinSilentCallback: successful, signed in sub: ",t.profile.sub):i.Log.info("UserManager.signinSilentCallback: no sub")),t}))},e.prototype.signinCallback=function(t){var e=this;return this.readSigninResponseState(t).then((function(r){var n=r.state;return r.response,"si:r"===n.request_type?e.signinRedirectCallback(t):"si:p"===n.request_type?e.signinPopupCallback(t):"si:s"===n.request_type?e.signinSilentCallback(t):Promise.reject(new Error("invalid response_type in state"))}))},e.prototype.signoutCallback=function(t,e){var r=this;return this.readSignoutResponseState(t).then((function(n){var i=n.state,o=n.response;return i?"so:r"===i.request_type?r.signoutRedirectCallback(t):"so:p"===i.request_type?r.signoutPopupCallback(t,e):Promise.reject(new Error("invalid response_type in state")):o}))},e.prototype.querySessionStatus=function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(e=Object.assign({},e)).request_type="si:s";var r=e.redirect_uri||this.settings.silent_redirect_uri||this.settings.redirect_uri;return r?(e.redirect_uri=r,e.prompt="none",e.response_type=e.response_type||this.settings.query_status_response_type,e.scope=e.scope||"openid",e.skipUserInfo=!0,this._signinStart(e,this._iframeNavigator,{startUrl:r,silentRequestTimeout:e.silentRequestTimeout||this.settings.silentRequestTimeout}).then((function(e){return t.processSigninResponse(e.url).then((function(t){if(i.Log.debug("UserManager.querySessionStatus: got signin response"),t.session_state&&t.profile.sub)return i.Log.info("UserManager.querySessionStatus: querySessionStatus success for sub: ",t.profile.sub),{session_state:t.session_state,sub:t.profile.sub,sid:t.profile.sid};i.Log.info("querySessionStatus successful, user not authenticated")})).catch((function(e){if(e.session_state&&t.settings.monitorAnonymousSession&&("login_required"==e.message||"consent_required"==e.message||"interaction_required"==e.message||"account_selection_required"==e.message))return i.Log.info("UserManager.querySessionStatus: querySessionStatus success for anonymous user"),{session_state:e.session_state};throw e}))}))):(i.Log.error("UserManager.querySessionStatus: No silent_redirect_uri configured"),Promise.reject(new Error("No silent_redirect_uri configured")))},e.prototype._signin=function(t,e){var r=this,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this._signinStart(t,e,n).then((function(e){return r._signinEnd(e.url,t)}))},e.prototype._signinStart=function(t,e){var r=this,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return e.prepare(n).then((function(e){return i.Log.debug("UserManager._signinStart: got navigator window handle"),r.createSigninRequest(t).then((function(t){return i.Log.debug("UserManager._signinStart: got signin request"),n.url=t.url,n.id=t.state.id,e.navigate(n)})).catch((function(t){throw e.close&&(i.Log.debug("UserManager._signinStart: Error after preparing navigator, closing navigator window"),e.close()),t}))}))},e.prototype._signinEnd=function(t){var e=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.processSigninResponse(t).then((function(t){i.Log.debug("UserManager._signinEnd: got signin response");var n=new a.User(t);if(r.current_sub){if(r.current_sub!==n.profile.sub)return i.Log.debug("UserManager._signinEnd: current user does not match user returned from signin. sub from signin: ",n.profile.sub),Promise.reject(new Error("login_required"));i.Log.debug("UserManager._signinEnd: current user matches user returned from signin")}return e.storeUser(n).then((function(){return i.Log.debug("UserManager._signinEnd: user stored"),e._events.load(n),n}))}))},e.prototype._signinCallback=function(t,e){i.Log.debug("UserManager._signinCallback");var r="query"===this._settings.response_mode||!this._settings.response_mode&&l.SigninRequest.isCode(this._settings.response_type)?"?":"#";return e.callback(t,void 0,r)},e.prototype.signoutRedirect=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(t=Object.assign({},t)).request_type="so:r";var e=t.post_logout_redirect_uri||this.settings.post_logout_redirect_uri;e&&(t.post_logout_redirect_uri=e);var r={useReplaceToNavigate:t.useReplaceToNavigate};return this._signoutStart(t,this._redirectNavigator,r).then((function(){i.Log.info("UserManager.signoutRedirect: successful")}))},e.prototype.signoutRedirectCallback=function(t){return this._signoutEnd(t||this._redirectNavigator.url).then((function(t){return i.Log.info("UserManager.signoutRedirectCallback: successful"),t}))},e.prototype.signoutPopup=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(t=Object.assign({},t)).request_type="so:p";var e=t.post_logout_redirect_uri||this.settings.popup_post_logout_redirect_uri||this.settings.post_logout_redirect_uri;return t.post_logout_redirect_uri=e,t.display="popup",t.post_logout_redirect_uri&&(t.state=t.state||{}),this._signout(t,this._popupNavigator,{startUrl:e,popupWindowFeatures:t.popupWindowFeatures||this.settings.popupWindowFeatures,popupWindowTarget:t.popupWindowTarget||this.settings.popupWindowTarget}).then((function(){i.Log.info("UserManager.signoutPopup: successful")}))},e.prototype.signoutPopupCallback=function(t,e){return void 0===e&&"boolean"==typeof t&&(e=t,t=null),this._popupNavigator.callback(t,e,"?").then((function(){i.Log.info("UserManager.signoutPopupCallback: successful")}))},e.prototype._signout=function(t,e){var r=this,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this._signoutStart(t,e,n).then((function(t){return r._signoutEnd(t.url)}))},e.prototype._signoutStart=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return arguments[1].prepare(r).then((function(n){return i.Log.debug("UserManager._signoutStart: got navigator window handle"),e._loadUser().then((function(o){return i.Log.debug("UserManager._signoutStart: loaded current user from storage"),(e._settings.revokeAccessTokenOnSignout?e._revokeInternal(o):Promise.resolve()).then((function(){var s=t.id_token_hint||o&&o.id_token;return s&&(i.Log.debug("UserManager._signoutStart: Setting id_token into signout request"),t.id_token_hint=s),e.removeUser().then((function(){return i.Log.debug("UserManager._signoutStart: user removed, creating signout request"),e.createSignoutRequest(t).then((function(t){return i.Log.debug("UserManager._signoutStart: got signout request"),r.url=t.url,t.state&&(r.id=t.state.id),n.navigate(r)}))}))}))})).catch((function(t){throw n.close&&(i.Log.debug("UserManager._signoutStart: Error after preparing navigator, closing navigator window"),n.close()),t}))}))},e.prototype._signoutEnd=function(t){return this.processSignoutResponse(t).then((function(t){return i.Log.debug("UserManager._signoutEnd: got signout response"),t}))},e.prototype.revokeAccessToken=function(){var t=this;return this._loadUser().then((function(e){return t._revokeInternal(e,!0).then((function(r){if(r)return i.Log.debug("UserManager.revokeAccessToken: removing token properties from user and re-storing"),e.access_token=null,e.refresh_token=null,e.expires_at=null,e.token_type=null,t.storeUser(e).then((function(){i.Log.debug("UserManager.revokeAccessToken: user stored"),t._events.load(e)}))}))})).then((function(){i.Log.info("UserManager.revokeAccessToken: access token revoked successfully")}))},e.prototype._revokeInternal=function(t,e){var r=this;if(t){var n=t.access_token,o=t.refresh_token;return this._revokeAccessTokenInternal(n,e).then((function(t){return r._revokeRefreshTokenInternal(o,e).then((function(e){return t||e||i.Log.debug("UserManager.revokeAccessToken: no need to revoke due to no token(s), or JWT format"),t||e}))}))}return Promise.resolve(!1)},e.prototype._revokeAccessTokenInternal=function(t,e){return!t||t.indexOf(".")>=0?Promise.resolve(!1):this._tokenRevocationClient.revoke(t,e).then((function(){return!0}))},e.prototype._revokeRefreshTokenInternal=function(t,e){return t?this._tokenRevocationClient.revoke(t,e,"refresh_token").then((function(){return!0})):Promise.resolve(!1)},e.prototype.startSilentRenew=function(){this._silentRenewService.start()},e.prototype.stopSilentRenew=function(){this._silentRenewService.stop()},e.prototype._loadUser=function(){return this._userStore.get(this._userStoreKey).then((function(t){return t?(i.Log.debug("UserManager._loadUser: user storageString loaded"),a.User.fromStorageString(t)):(i.Log.debug("UserManager._loadUser: no user storageString"),null)}))},e.prototype.storeUser=function(t){if(t){i.Log.debug("UserManager.storeUser: storing user");var e=t.toStorageString();return this._userStore.set(this._userStoreKey,e)}return i.Log.debug("storeUser.storeUser: removing user"),this._userStore.remove(this._userStoreKey)},n(e,[{key:"_redirectNavigator",get:function(){return this.settings.redirectNavigator}},{key:"_popupNavigator",get:function(){return this.settings.popupNavigator}},{key:"_iframeNavigator",get:function(){return this.settings.iframeNavigator}},{key:"_userStore",get:function(){return this.settings.userStore}},{key:"events",get:function(){return this._events}},{key:"_userStoreKey",get:function(){return"user:"+this.settings.authority+":"+this.settings.client_id}}]),e}(o.OidcClient)},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.UserManagerSettings=void 0;var n=function(){function t(t,e){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{},n=r.popup_redirect_uri,i=r.popup_post_logout_redirect_uri,l=r.popupWindowFeatures,f=r.popupWindowTarget,g=r.silent_redirect_uri,d=r.silentRequestTimeout,p=r.automaticSilentRenew,v=void 0!==p&&p,y=r.validateSubOnSilentRenew,m=void 0!==y&&y,_=r.includeIdTokenInSilentRenew,S=void 0===_||_,w=r.monitorSession,b=void 0===w||w,F=r.monitorAnonymousSession,E=void 0!==F&&F,x=r.checkSessionInterval,A=void 0===x?2e3:x,k=r.stopCheckSessionOnError,P=void 0===k||k,C=r.query_status_response_type,T=r.revokeAccessTokenOnSignout,R=void 0!==T&&T,I=r.accessTokenExpiringNotificationTime,D=void 0===I?60:I,L=r.redirectNavigator,N=void 0===L?new o.RedirectNavigator:L,U=r.popupNavigator,O=void 0===U?new s.PopupNavigator:U,B=r.iframeNavigator,M=void 0===B?new a.IFrameNavigator:B,j=r.userStore,H=void 0===j?new u.WebStorageStateStore({store:c.Global.sessionStorage}):j;!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e);var K=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}(this,t.call(this,arguments[0]));return K._popup_redirect_uri=n,K._popup_post_logout_redirect_uri=i,K._popupWindowFeatures=l,K._popupWindowTarget=f,K._silent_redirect_uri=g,K._silentRequestTimeout=d,K._automaticSilentRenew=v,K._validateSubOnSilentRenew=m,K._includeIdTokenInSilentRenew=S,K._accessTokenExpiringNotificationTime=D,K._monitorSession=b,K._monitorAnonymousSession=E,K._checkSessionInterval=A,K._stopCheckSessionOnError=P,C?K._query_status_response_type=C:arguments[0]&&arguments[0].response_type?K._query_status_response_type=h.SigninRequest.isOidc(arguments[0].response_type)?"id_token":"code":K._query_status_response_type="id_token",K._revokeAccessTokenOnSignout=R,K._redirectNavigator=N,K._popupNavigator=O,K._iframeNavigator=M,K._userStore=H,K}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,t),n(e,[{key:"popup_redirect_uri",get:function(){return this._popup_redirect_uri}},{key:"popup_post_logout_redirect_uri",get:function(){return this._popup_post_logout_redirect_uri}},{key:"popupWindowFeatures",get:function(){return this._popupWindowFeatures}},{key:"popupWindowTarget",get:function(){return this._popupWindowTarget}},{key:"silent_redirect_uri",get:function(){return this._silent_redirect_uri}},{key:"silentRequestTimeout",get:function(){return this._silentRequestTimeout}},{key:"automaticSilentRenew",get:function(){return this._automaticSilentRenew}},{key:"validateSubOnSilentRenew",get:function(){return this._validateSubOnSilentRenew}},{key:"includeIdTokenInSilentRenew",get:function(){return this._includeIdTokenInSilentRenew}},{key:"accessTokenExpiringNotificationTime",get:function(){return this._accessTokenExpiringNotificationTime}},{key:"monitorSession",get:function(){return this._monitorSession}},{key:"monitorAnonymousSession",get:function(){return this._monitorAnonymousSession}},{key:"checkSessionInterval",get:function(){return this._checkSessionInterval}},{key:"stopCheckSessionOnError",get:function(){return this._stopCheckSessionOnError}},{key:"query_status_response_type",get:function(){return this._query_status_response_type}},{key:"revokeAccessTokenOnSignout",get:function(){return this._revokeAccessTokenOnSignout}},{key:"redirectNavigator",get:function(){return this._redirectNavigator}},{key:"popupNavigator",get:function(){return this._popupNavigator}},{key:"iframeNavigator",get:function(){return this._iframeNavigator}},{key:"userStore",get:function(){return this._userStore}}]),e}(i.OidcClientSettings)},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.RedirectNavigator=void 0;var n=function(){function t(t,e){for(var r=0;r1&&void 0!==arguments[1])||arguments[1];n.Log.debug("UserManagerEvents.load"),t.prototype.load.call(this,e),r&&this._userLoaded.raise(e)},e.prototype.unload=function(){n.Log.debug("UserManagerEvents.unload"),t.prototype.unload.call(this),this._userUnloaded.raise()},e.prototype.addUserLoaded=function(t){this._userLoaded.addHandler(t)},e.prototype.removeUserLoaded=function(t){this._userLoaded.removeHandler(t)},e.prototype.addUserUnloaded=function(t){this._userUnloaded.addHandler(t)},e.prototype.removeUserUnloaded=function(t){this._userUnloaded.removeHandler(t)},e.prototype.addSilentRenewError=function(t){this._silentRenewError.addHandler(t)},e.prototype.removeSilentRenewError=function(t){this._silentRenewError.removeHandler(t)},e.prototype._raiseSilentRenewError=function(t){n.Log.debug("UserManagerEvents._raiseSilentRenewError",t.message),this._silentRenewError.raise(t)},e.prototype.addUserSignedIn=function(t){this._userSignedIn.addHandler(t)},e.prototype.removeUserSignedIn=function(t){this._userSignedIn.removeHandler(t)},e.prototype._raiseUserSignedIn=function(){n.Log.debug("UserManagerEvents._raiseUserSignedIn"),this._userSignedIn.raise()},e.prototype.addUserSignedOut=function(t){this._userSignedOut.addHandler(t)},e.prototype.removeUserSignedOut=function(t){this._userSignedOut.removeHandler(t)},e.prototype._raiseUserSignedOut=function(){n.Log.debug("UserManagerEvents._raiseUserSignedOut"),this._userSignedOut.raise()},e.prototype.addUserSessionChanged=function(t){this._userSessionChanged.addHandler(t)},e.prototype.removeUserSessionChanged=function(t){this._userSessionChanged.removeHandler(t)},e.prototype._raiseUserSessionChanged=function(){n.Log.debug("UserManagerEvents._raiseUserSessionChanged"),this._userSessionChanged.raise()},e}(i.AccessTokenEvents)},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Timer=void 0;var n=function(){function t(t,e){for(var r=0;r1&&void 0!==arguments[1]?arguments[1]:o.Global.timer,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e);var s=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}(this,t.call(this,r));return s._timer=n,s._nowFunc=i||function(){return Date.now()/1e3},s}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,t),e.prototype.init=function(t){t<=0&&(t=1),t=parseInt(t);var e=this.now+t;if(this.expiration===e&&this._timerHandle)i.Log.debug("Timer.init timer "+this._name+" skipping initialization since already initialized for expiration:",this.expiration);else{this.cancel(),i.Log.debug("Timer.init timer "+this._name+" for duration:",t),this._expiration=e;var r=5;t{"use strict";e.in=e.kO=e.Pd=void 0;const n=r(671);var i,o,s;!function(t){t.Success="Success",t.RequiresRedirect="RequiresRedirect"}(i=e.Pd||(e.Pd={})),function(t){t.Redirect="Redirect",t.Success="Success",t.Failure="Failure",t.OperationCompleted="OperationCompleted"}(o=e.kO||(e.kO={}));class a{constructor(t){this.debug=t.debugEnabled,this.trace=t.traceEnabled}log(t,e){if(t==s.Trace&&this.trace||t==s.Debug&&this.debug){const r=t==s.Trace?"trce":"dbug";console.debug(`${r}: Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationService[0]\n ${e}`)}}}!function(t){t[t.Trace=0]="Trace",t[t.Debug=1]="Debug"}(s=e.in||(e.in={}));class u{constructor(t,e){this._userManager=t,this._logger=e}async trySilentSignIn(){return this._intialSilentSignIn||(this._intialSilentSignIn=(async()=>{try{this.debug("Beginning initial silent sign in."),await this._userManager.signinSilent(),this.debug("Initial silent sign in succeeded.")}catch(t){t instanceof Error&&this.debug(`Initial silent sign in failed '${t.message}'`)}})()),this._intialSilentSignIn}async getUser(){window.parent!==window||window.opener||window.frameElement||!this._userManager.settings.redirect_uri||location.href.startsWith(this._userManager.settings.redirect_uri)||await this.trySilentSignIn();const t=await this._userManager.getUser();return t&&t.profile}async getAccessToken(t){this.trace("getAccessToken",t);const e=await this._userManager.getUser();if(function(t){return!(!t||!t.access_token||t.expired||!t.scopes)}(e)&&function(t,e){const r=new Set(e);if(t&&t.scopes)for(const e of t.scopes)if(!r.has(e))return!1;return!0}(t,e.scopes))return this.debug(`Valid access token present expiring at '${r(e.expires_in).toISOString()}'`),{status:i.Success,token:{grantedScopes:e.scopes,expires:r(e.expires_in),value:e.access_token}};try{const e=t&&t.scopes?{scope:t.scopes.join(" ")}:void 0;this.debug(`Provisioning a token silently for scopes '${null==e?void 0:e.scope}'`),this.trace("userManager.signinSilent",e);const n=await this._userManager.signinSilent(e);this.debug(`Provisioned an access token expiring at '${r(n.expires_in).toISOString()}'`);const o={status:i.Success,token:{grantedScopes:n.scopes,expires:r(n.expires_in),value:n.access_token}};return this.trace("getAccessToken-result",o),o}catch(t){return t instanceof Error&&this.debug(`Failed to provision a token silently '${t.message}'`),{status:i.RequiresRedirect}}function r(t){const e=new Date;return e.setTime(e.getTime()+1e3*t),e}}async signIn(t){if(this.trace("signIn",t),t.interactiveRequest)return this.debug("Interactive sign in starting."),this.signInInteractive(t);try{return this.debug("Silent sign in starting"),await this._userManager.clearStaleState(),await this._userManager.signinSilent(this.createArguments(void 0,t.interactiveRequest)),this.debug("Silent sign in succeeded"),this.success(t.state)}catch(e){return e instanceof Error&&this.debug(`Silent sign in failed, redirecting to the identity provider '${e.message}'.`),await this.signInInteractive(t)}}async signInInteractive(t){this.trace("signInInteractive",t);try{return await this._userManager.clearStaleState(),await this._userManager.signinRedirect(this.createArguments(t.state,t.interactiveRequest)),this.debug("Redirect sign in succeeded"),this.redirect()}catch(t){const e=this.getExceptionMessage(t);return this.debug(`Redirect sign in failed '${e}'.`),this.error(e)}}async completeSignIn(t){this.trace("completeSignIn",t);const e=await this.loginRequired(t),r=await this.stateExists(t);try{const e=await this._userManager.signinCallback(t);return window.self!==window.top?this.operationCompleted():(this.trace("completeSignIn-result",e),this.success(e&&e.state))}catch(t){return e||window.self!==window.top||!r?this.operationCompleted():this.error("There was an error signing in.")}}async signOut(t){this.trace("signOut",t);try{return await this._userManager.metadataService.getEndSessionEndpoint()?(await this._userManager.signoutRedirect(this.createArguments(t.state,t.interactiveRequest)),this.redirect()):(await this._userManager.removeUser(),this.success(t.state))}catch(t){const e=this.getExceptionMessage(t);return this.debug(`Sign out error '${e}'.`),this.error(e)}}async completeSignOut(t){this.trace("completeSignOut",t);try{if(await this.stateExists(t)){const e=await this._userManager.signoutCallback(t);return this.success(e&&e.state)}return this.operationCompleted()}catch(t){const e=this.getExceptionMessage(t);return this.debug(`Complete sign out error '${e}'`),this.error(e)}}getExceptionMessage(t){return function(t){return t&&t.error_description}(t)?t.error_description:function(t){return t&&t.message}(t)?t.message:t.toString()}async stateExists(t){const e=new URLSearchParams(new URL(t).search).get("state");return e&&this._userManager.settings.stateStore?await this._userManager.settings.stateStore.get(e):void 0}async loginRequired(t){const e=new URLSearchParams(new URL(t).search).get("error");return!(!e||!this._userManager.settings.stateStore)&&"login_required"===await this._userManager.settings.stateStore.get(e)}createArguments(t,e){return{useReplaceToNavigate:!0,data:t,scope:(null==e?void 0:e.scopes)?e.scopes.join(" "):void 0,...null==e?void 0:e.additionalRequestParameters}}error(t){return{status:o.Failure,errorMessage:t}}success(t){return{status:o.Success,state:t}}redirect(){return{status:o.Redirect}}operationCompleted(){return{status:o.OperationCompleted}}debug(t){var e;null===(e=this._logger)||void 0===e||e.log(s.Debug,t)}trace(t,e){var r;null===(r=this._logger)||void 0===r||r.log(s.Trace,`${t}: ${JSON.stringify(e)}`)}}class c{static init(t,e){return c._initialized||(c._initialized=c.initializeCore(t,new a(e))),c._initialized}static handleCallback(){return c.initializeCore()}static async initializeCore(t,e){const r=t||c.resolveCachedSettings(),n=c.resolveCachedLoggerOptions(),i=e||n&&new a(n);if(!t&&r&&!e&&i){const t=c.createUserManagerCore(r);window.parent!==window&&!window.opener&&window.frameElement&&t.settings.redirect_uri&&location.href.startsWith(t.settings.redirect_uri)&&(c.instance=new u(t,i),c._initialized=(async()=>{await c.instance.completeSignIn(location.href)})())}else if(t&&e){const r=await c.createUserManager(t);c.instance=new u(r,e),window.sessionStorage.setItem(`${c._infrastructureKey}.CachedJSLoggingOptions`,JSON.stringify({debugEnabled:e.debug,traceEnabled:e.trace}))}}static resolveCachedSettings(){const t=window.sessionStorage.getItem(`${c._infrastructureKey}.CachedAuthSettings`);return t?JSON.parse(t):void 0}static resolveCachedLoggerOptions(){const t=window.sessionStorage.getItem(`${c._infrastructureKey}.CachedJSLoggingOptions`);return t?JSON.parse(t):void 0}static getUser(){return c.instance.getUser()}static getAccessToken(t){return c.instance.getAccessToken(t)}static signIn(t){return c.instance.signIn(t)}static async completeSignIn(t){let e=this._pendingOperations[t];return e||(e=c.instance.completeSignIn(t),await e,delete this._pendingOperations[t]),e}static signOut(t){return c.instance.signOut(t)}static async completeSignOut(t){let e=this._pendingOperations[t];return e||(e=c.instance.completeSignOut(t),await e,delete this._pendingOperations[t]),e}static async createUserManager(t){let e;if(function(t){return t.hasOwnProperty("configurationEndpoint")}(t)){const r=await fetch(t.configurationEndpoint);if(!r.ok)throw new Error(`Could not load settings from '${t.configurationEndpoint}'`);e=await r.json()}else t.scope||(t.scope=t.defaultScopes.join(" ")),null===t.response_type&&delete t.response_type,e=t;return window.sessionStorage.setItem(`${c._infrastructureKey}.CachedAuthSettings`,JSON.stringify(e)),c.createUserManagerCore(e)}static createUserManagerCore(t){const e=new n.UserManager(t);return e.events.addUserSignedOut((async()=>{e.removeUser()})),e}}c._infrastructureKey="Microsoft.AspNetCore.Components.WebAssembly.Authentication",c._pendingOperations={},c.handleCallback(),window.AuthenticationService=c}},e={},function r(n){var i=e[n];if(void 0!==i)return i.exports;var o=e[n]={exports:{}};return t[n].call(o.exports,o,o.exports,r),o.exports}(981); - -var abp=abp||{};(function(){abp.utils=abp.utils||{};abp.domReady=function(n){document.readyState==="complete"||document.readyState==="interactive"?setTimeout(n,1):document.addEventListener("DOMContentLoaded",n)};abp.utils.setCookieValue=function(n,t,i,r,u){var f=encodeURIComponent(n)+"=";t&&(f=f+encodeURIComponent(t));i&&(f=f+"; expires="+i);r&&(f=f+"; path="+r);u&&(f=f+"; secure");document.cookie=f};abp.utils.getCookieValue=function(n){for(var i,r=document.cookie.split("; "),t=0;t=4){for(var t=arguments.length,e=Array(t),r=0;r=3){for(var t=arguments.length,e=Array(t),r=0;r=2){for(var t=arguments.length,e=Array(t),r=0;r=1){for(var t=arguments.length,e=Array(t),r=0;r1&&void 0!==arguments[1]?arguments[1]:o.JsonService;if(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),!e)throw i.Log.error("MetadataService: No settings passed to MetadataService"),new Error("settings");this._settings=e,this._jsonService=new r(["application/jwk-set+json"])}return t.prototype.resetSigningKeys=function(){this._settings=this._settings||{},this._settings.signingKeys=void 0},t.prototype.getMetadata=function(){var t=this;return this._settings.metadata?(i.Log.debug("MetadataService.getMetadata: Returning metadata from settings"),Promise.resolve(this._settings.metadata)):this.metadataUrl?(i.Log.debug("MetadataService.getMetadata: getting metadata from",this.metadataUrl),this._jsonService.getJson(this.metadataUrl).then((function(e){i.Log.debug("MetadataService.getMetadata: json received");var r=t._settings.metadataSeed||{};return t._settings.metadata=Object.assign({},r,e),t._settings.metadata}))):(i.Log.error("MetadataService.getMetadata: No authority or metadataUrl configured on settings"),Promise.reject(new Error("No authority or metadataUrl configured on settings")))},t.prototype.getIssuer=function(){return this._getMetadataProperty("issuer")},t.prototype.getAuthorizationEndpoint=function(){return this._getMetadataProperty("authorization_endpoint")},t.prototype.getUserInfoEndpoint=function(){return this._getMetadataProperty("userinfo_endpoint")},t.prototype.getTokenEndpoint=function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return this._getMetadataProperty("token_endpoint",t)},t.prototype.getCheckSessionIframe=function(){return this._getMetadataProperty("check_session_iframe",!0)},t.prototype.getEndSessionEndpoint=function(){return this._getMetadataProperty("end_session_endpoint",!0)},t.prototype.getRevocationEndpoint=function(){return this._getMetadataProperty("revocation_endpoint",!0)},t.prototype.getKeysEndpoint=function(){return this._getMetadataProperty("jwks_uri",!0)},t.prototype._getMetadataProperty=function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return i.Log.debug("MetadataService.getMetadataProperty for: "+t),this.getMetadata().then((function(r){if(i.Log.debug("MetadataService.getMetadataProperty: metadata recieved"),void 0===r[t]){if(!0===e)return void i.Log.warn("MetadataService.getMetadataProperty: Metadata does not contain optional property "+t);throw i.Log.error("MetadataService.getMetadataProperty: Metadata does not contain property "+t),new Error("Metadata does not contain property "+t)}return r[t]}))},t.prototype.getSigningKeys=function(){var t=this;return this._settings.signingKeys?(i.Log.debug("MetadataService.getSigningKeys: Returning signingKeys from settings"),Promise.resolve(this._settings.signingKeys)):this._getMetadataProperty("jwks_uri").then((function(e){return i.Log.debug("MetadataService.getSigningKeys: jwks_uri received",e),t._jsonService.getJson(e).then((function(e){if(i.Log.debug("MetadataService.getSigningKeys: key set received",e),!e.keys)throw i.Log.error("MetadataService.getSigningKeys: Missing keys on keyset"),new Error("Missing keys on keyset");return t._settings.signingKeys=e.keys,t._settings.signingKeys}))}))},n(t,[{key:"metadataUrl",get:function(){return this._metadataUrl||(this._settings.metadataUrl?this._metadataUrl=this._settings.metadataUrl:(this._metadataUrl=this._settings.authority,this._metadataUrl&&this._metadataUrl.indexOf(s)<0&&("/"!==this._metadataUrl[this._metadataUrl.length-1]&&(this._metadataUrl+="/"),this._metadataUrl+=s))),this._metadataUrl}}]),t}()},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.UrlUtility=void 0;var n=r(0),i=r(1);e.UrlUtility=function(){function t(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t)}return t.addQueryParam=function(t,e,r){return t.indexOf("?")<0&&(t+="?"),"?"!==t[t.length-1]&&(t+="&"),t+=encodeURIComponent(e),(t+="=")+encodeURIComponent(r)},t.parseUrlFragment=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"#",r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:i.Global;"string"!=typeof t&&(t=r.location.href);var o=t.lastIndexOf(e);o>=0&&(t=t.substr(o+1)),"?"===e&&(o=t.indexOf("#"))>=0&&(t=t.substr(0,o));for(var s,a={},u=/([^&=]+)=([^&]*)/g,c=0;s=u.exec(t);)if(a[decodeURIComponent(s[1])]=decodeURIComponent(s[2].replace(/\+/g," ")),c++>50)return n.Log.error("UrlUtility.parseUrlFragment: response exceeded expected number of parameters",t),{error:"Response exceeded expected number of parameters"};for(var h in a)return a;return{}},t}()},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.JoseUtil=void 0;var n=r(26),i=function(t){return t&&t.__esModule?t:{default:t}}(r(33));e.JoseUtil=(0,i.default)({jws:n.jws,KeyUtil:n.KeyUtil,X509:n.X509,crypto:n.crypto,hextob64u:n.hextob64u,b64tohex:n.b64tohex,AllowedSigningAlgs:n.AllowedSigningAlgs})},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.OidcClientSettings=void 0;var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i=function(){function t(t,e){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{},r=e.authority,i=e.metadataUrl,o=e.metadata,h=e.signingKeys,d=e.metadataSeed,p=e.client_id,v=e.client_secret,y=e.response_type,m=void 0===y?l:y,_=e.scope,S=void 0===_?f:_,w=e.redirect_uri,b=e.post_logout_redirect_uri,F=e.client_authentication,E=void 0===F?g:F,x=e.prompt,A=e.display,k=e.max_age,P=e.ui_locales,C=e.acr_values,T=e.resource,R=e.response_mode,I=e.filterProtocolClaims,D=void 0===I||I,L=e.loadUserInfo,N=void 0===L||L,U=e.staleStateAge,O=void 0===U?900:U,B=e.clockSkew,M=void 0===B?300:B,j=e.clockService,H=void 0===j?new s.ClockService:j,K=e.userInfoJwtIssuer,V=void 0===K?"OP":K,q=e.mergeClaims,J=void 0!==q&&q,W=e.stateStore,z=void 0===W?new a.WebStorageStateStore:W,Y=e.ResponseValidatorCtor,G=void 0===Y?u.ResponseValidator:Y,$=e.MetadataServiceCtor,X=void 0===$?c.MetadataService:$,Q=e.extraQueryParams,Z=void 0===Q?{}:Q,tt=e.extraTokenParams,et=void 0===tt?{}:tt;(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")})(this,t),this._authority=r,this._metadataUrl=i,this._metadata=o,this._metadataSeed=d,this._signingKeys=h,this._client_id=p,this._client_secret=v,this._response_type=m,this._scope=S,this._redirect_uri=w,this._post_logout_redirect_uri=b,this._client_authentication=E,this._prompt=x,this._display=A,this._max_age=k,this._ui_locales=P,this._acr_values=C,this._resource=T,this._response_mode=R,this._filterProtocolClaims=!!D,this._loadUserInfo=!!N,this._staleStateAge=O,this._clockSkew=M,this._clockService=H,this._userInfoJwtIssuer=V,this._mergeClaims=!!J,this._stateStore=z,this._validator=new G(this),this._metadataService=new X(this),this._extraQueryParams="object"===(void 0===Z?"undefined":n(Z))?Z:{},this._extraTokenParams="object"===(void 0===et?"undefined":n(et))?et:{}}return t.prototype.getEpochTime=function(){return this._clockService.getEpochTime()},i(t,[{key:"client_id",get:function(){return this._client_id},set:function(t){if(this._client_id)throw o.Log.error("OidcClientSettings.set_client_id: client_id has already been assigned."),new Error("client_id has already been assigned.");this._client_id=t}},{key:"client_secret",get:function(){return this._client_secret}},{key:"response_type",get:function(){return this._response_type}},{key:"scope",get:function(){return this._scope}},{key:"redirect_uri",get:function(){return this._redirect_uri}},{key:"post_logout_redirect_uri",get:function(){return this._post_logout_redirect_uri}},{key:"client_authentication",get:function(){return this._client_authentication}},{key:"prompt",get:function(){return this._prompt}},{key:"display",get:function(){return this._display}},{key:"max_age",get:function(){return this._max_age}},{key:"ui_locales",get:function(){return this._ui_locales}},{key:"acr_values",get:function(){return this._acr_values}},{key:"resource",get:function(){return this._resource}},{key:"response_mode",get:function(){return this._response_mode}},{key:"authority",get:function(){return this._authority},set:function(t){if(this._authority)throw o.Log.error("OidcClientSettings.set_authority: authority has already been assigned."),new Error("authority has already been assigned.");this._authority=t}},{key:"metadataUrl",get:function(){return this._metadataUrl||(this._metadataUrl=this.authority,this._metadataUrl&&this._metadataUrl.indexOf(h)<0&&("/"!==this._metadataUrl[this._metadataUrl.length-1]&&(this._metadataUrl+="/"),this._metadataUrl+=h)),this._metadataUrl}},{key:"metadata",get:function(){return this._metadata},set:function(t){this._metadata=t}},{key:"metadataSeed",get:function(){return this._metadataSeed},set:function(t){this._metadataSeed=t}},{key:"signingKeys",get:function(){return this._signingKeys},set:function(t){this._signingKeys=t}},{key:"filterProtocolClaims",get:function(){return this._filterProtocolClaims}},{key:"loadUserInfo",get:function(){return this._loadUserInfo}},{key:"staleStateAge",get:function(){return this._staleStateAge}},{key:"clockSkew",get:function(){return this._clockSkew}},{key:"userInfoJwtIssuer",get:function(){return this._userInfoJwtIssuer}},{key:"mergeClaims",get:function(){return this._mergeClaims}},{key:"stateStore",get:function(){return this._stateStore}},{key:"validator",get:function(){return this._validator}},{key:"metadataService",get:function(){return this._metadataService}},{key:"extraQueryParams",get:function(){return this._extraQueryParams},set:function(t){"object"===(void 0===t?"undefined":n(t))?this._extraQueryParams=t:this._extraQueryParams={}}},{key:"extraTokenParams",get:function(){return this._extraTokenParams},set:function(t){"object"===(void 0===t?"undefined":n(t))?this._extraTokenParams=t:this._extraTokenParams={}}}]),t}()},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.WebStorageStateStore=void 0;var n=r(0),i=r(1);e.WebStorageStateStore=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=e.prefix,n=void 0===r?"oidc.":r,o=e.store,s=void 0===o?i.Global.localStorage:o;(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")})(this,t),this._store=s,this._prefix=n}return t.prototype.set=function(t,e){return n.Log.debug("WebStorageStateStore.set",t),t=this._prefix+t,this._store.setItem(t,e),Promise.resolve()},t.prototype.get=function(t){n.Log.debug("WebStorageStateStore.get",t),t=this._prefix+t;var e=this._store.getItem(t);return Promise.resolve(e)},t.prototype.remove=function(t){n.Log.debug("WebStorageStateStore.remove",t),t=this._prefix+t;var e=this._store.getItem(t);return this._store.removeItem(t),Promise.resolve(e)},t.prototype.getAllKeys=function(){n.Log.debug("WebStorageStateStore.getAllKeys");for(var t=[],e=0;e0&&void 0!==arguments[0]?arguments[0]:null,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:i.Global.XMLHttpRequest,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")})(this,t),e&&Array.isArray(e)?this._contentTypes=e.slice():this._contentTypes=[],this._contentTypes.push("application/json"),n&&this._contentTypes.push("application/jwt"),this._XMLHttpRequest=r,this._jwtHandler=n}return t.prototype.getJson=function(t,e){var r=this;if(!t)throw n.Log.error("JsonService.getJson: No url passed"),new Error("url");return n.Log.debug("JsonService.getJson, url: ",t),new Promise((function(i,o){var s=new r._XMLHttpRequest;s.open("GET",t);var a=r._contentTypes,u=r._jwtHandler;s.onload=function(){if(n.Log.debug("JsonService.getJson: HTTP response received, status",s.status),200===s.status){var e=s.getResponseHeader("Content-Type");if(e){var r=a.find((function(t){if(e.startsWith(t))return!0}));if("application/jwt"==r)return void u(s).then(i,o);if(r)try{return void i(JSON.parse(s.responseText))}catch(t){return n.Log.error("JsonService.getJson: Error parsing JSON response",t.message),void o(t)}}o(Error("Invalid response Content-Type: "+e+", from URL: "+t))}else o(Error(s.statusText+" ("+s.status+")"))},s.onerror=function(){n.Log.error("JsonService.getJson: network error"),o(Error("Network Error"))},e&&(n.Log.debug("JsonService.getJson: token passed, setting Authorization header"),s.setRequestHeader("Authorization","Bearer "+e)),s.send()}))},t.prototype.postForm=function(t,e,r){var i=this;if(!t)throw n.Log.error("JsonService.postForm: No url passed"),new Error("url");return n.Log.debug("JsonService.postForm, url: ",t),new Promise((function(o,s){var a=new i._XMLHttpRequest;a.open("POST",t);var u=i._contentTypes;a.onload=function(){if(n.Log.debug("JsonService.postForm: HTTP response received, status",a.status),200!==a.status){if(400===a.status&&(r=a.getResponseHeader("Content-Type"))&&u.find((function(t){if(r.startsWith(t))return!0})))try{var e=JSON.parse(a.responseText);if(e&&e.error)return n.Log.error("JsonService.postForm: Error from server: ",e.error),void s(new Error(e.error))}catch(t){return n.Log.error("JsonService.postForm: Error parsing JSON response",t.message),void s(t)}s(Error(a.statusText+" ("+a.status+")"))}else{var r;if((r=a.getResponseHeader("Content-Type"))&&u.find((function(t){if(r.startsWith(t))return!0})))try{return void o(JSON.parse(a.responseText))}catch(t){return n.Log.error("JsonService.postForm: Error parsing JSON response",t.message),void s(t)}s(Error("Invalid response Content-Type: "+r+", from URL: "+t))}},a.onerror=function(){n.Log.error("JsonService.postForm: network error"),s(Error("Network Error"))};var c="";for(var h in e){var l=e[h];l&&(c.length>0&&(c+="&"),c+=encodeURIComponent(h),c+="=",c+=encodeURIComponent(l))}a.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),void 0!==r&&a.setRequestHeader("Authorization","Basic "+btoa(r)),a.send(c)}))},t}()},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SigninRequest=void 0;var n=r(0),i=r(3),o=r(13);e.SigninRequest=function(){function t(e){var r=e.url,s=e.client_id,a=e.redirect_uri,u=e.response_type,c=e.scope,h=e.authority,l=e.data,f=e.prompt,g=e.display,d=e.max_age,p=e.ui_locales,v=e.id_token_hint,y=e.login_hint,m=e.acr_values,_=e.resource,S=e.response_mode,w=e.request,b=e.request_uri,F=e.extraQueryParams,E=e.request_type,x=e.client_secret,A=e.extraTokenParams,k=e.skipUserInfo;if(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),!r)throw n.Log.error("SigninRequest.ctor: No url passed"),new Error("url");if(!s)throw n.Log.error("SigninRequest.ctor: No client_id passed"),new Error("client_id");if(!a)throw n.Log.error("SigninRequest.ctor: No redirect_uri passed"),new Error("redirect_uri");if(!u)throw n.Log.error("SigninRequest.ctor: No response_type passed"),new Error("response_type");if(!c)throw n.Log.error("SigninRequest.ctor: No scope passed"),new Error("scope");if(!h)throw n.Log.error("SigninRequest.ctor: No authority passed"),new Error("authority");var P=t.isOidc(u),C=t.isCode(u);S||(S=t.isCode(u)?"query":null),this.state=new o.SigninState({nonce:P,data:l,client_id:s,authority:h,redirect_uri:a,code_verifier:C,request_type:E,response_mode:S,client_secret:x,scope:c,extraTokenParams:A,skipUserInfo:k}),r=i.UrlUtility.addQueryParam(r,"client_id",s),r=i.UrlUtility.addQueryParam(r,"redirect_uri",a),r=i.UrlUtility.addQueryParam(r,"response_type",u),r=i.UrlUtility.addQueryParam(r,"scope",c),r=i.UrlUtility.addQueryParam(r,"state",this.state.id),P&&(r=i.UrlUtility.addQueryParam(r,"nonce",this.state.nonce)),C&&(r=i.UrlUtility.addQueryParam(r,"code_challenge",this.state.code_challenge),r=i.UrlUtility.addQueryParam(r,"code_challenge_method","S256"));var T={prompt:f,display:g,max_age:d,ui_locales:p,id_token_hint:v,login_hint:y,acr_values:m,resource:_,request:w,request_uri:b,response_mode:S};for(var R in T)T[R]&&(r=i.UrlUtility.addQueryParam(r,R,T[R]));for(var I in F)r=i.UrlUtility.addQueryParam(r,I,F[I]);this.url=r}return t.isOidc=function(t){return!!t.split(/\s+/g).filter((function(t){return"id_token"===t}))[0]},t.isOAuth=function(t){return!!t.split(/\s+/g).filter((function(t){return"token"===t}))[0]},t.isCode=function(t){return!!t.split(/\s+/g).filter((function(t){return"code"===t}))[0]},t}()},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.State=void 0;var n=function(){function t(t,e){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{},r=e.id,n=e.data,i=e.created,s=e.request_type;(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")})(this,t),this._id=r||(0,o.default)(),this._data=n,this._created="number"==typeof i&&i>0?i:parseInt(Date.now()/1e3),this._request_type=s}return t.prototype.toStorageString=function(){return i.Log.debug("State.toStorageString"),JSON.stringify({id:this.id,data:this.data,created:this.created,request_type:this.request_type})},t.fromStorageString=function(e){return i.Log.debug("State.fromStorageString"),new t(JSON.parse(e))},t.clearStaleState=function(e,r){var n=Date.now()/1e3-r;return e.getAllKeys().then((function(r){i.Log.debug("State.clearStaleState: got keys",r);for(var o=[],s=function(s){var a=r[s];u=e.get(a).then((function(r){var o=!1;if(r)try{var s=t.fromStorageString(r);i.Log.debug("State.clearStaleState: got item from key: ",a,s.created),s.created<=n&&(o=!0)}catch(t){i.Log.error("State.clearStaleState: Error parsing state for key",a,t.message),o=!0}else i.Log.debug("State.clearStaleState: no item in storage for key: ",a),o=!0;if(o)return i.Log.debug("State.clearStaleState: removed item for key: ",a),e.remove(a)})),o.push(u)},a=0;a0&&void 0!==arguments[0]?arguments[0]:{};(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")})(this,t),e instanceof o.OidcClientSettings?this._settings=e:this._settings=new o.OidcClientSettings(e)}return t.prototype.createSigninRequest=function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=e.response_type,n=e.scope,o=e.redirect_uri,s=e.data,u=e.state,c=e.prompt,h=e.display,l=e.max_age,f=e.ui_locales,g=e.id_token_hint,d=e.login_hint,p=e.acr_values,v=e.resource,y=e.request,m=e.request_uri,_=e.response_mode,S=e.extraQueryParams,w=e.extraTokenParams,b=e.request_type,F=e.skipUserInfo,E=arguments[1];i.Log.debug("OidcClient.createSigninRequest");var x=this._settings.client_id;r=r||this._settings.response_type,n=n||this._settings.scope,o=o||this._settings.redirect_uri,c=c||this._settings.prompt,h=h||this._settings.display,l=l||this._settings.max_age,f=f||this._settings.ui_locales,p=p||this._settings.acr_values,v=v||this._settings.resource,_=_||this._settings.response_mode,S=S||this._settings.extraQueryParams,w=w||this._settings.extraTokenParams;var A=this._settings.authority;return a.SigninRequest.isCode(r)&&"code"!==r?Promise.reject(new Error("OpenID Connect hybrid flow is not supported")):this._metadataService.getAuthorizationEndpoint().then((function(e){i.Log.debug("OidcClient.createSigninRequest: Received authorization endpoint",e);var k=new a.SigninRequest({url:e,client_id:x,redirect_uri:o,response_type:r,scope:n,data:s||u,authority:A,prompt:c,display:h,max_age:l,ui_locales:f,id_token_hint:g,login_hint:d,acr_values:p,resource:v,request:y,request_uri:m,extraQueryParams:S,extraTokenParams:w,request_type:b,response_mode:_,client_secret:t._settings.client_secret,skipUserInfo:F}),P=k.state;return(E=E||t._stateStore).set(P.id,P.toStorageString()).then((function(){return k}))}))},t.prototype.readSigninResponseState=function(t,e){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];i.Log.debug("OidcClient.readSigninResponseState");var n="query"===this._settings.response_mode||!this._settings.response_mode&&a.SigninRequest.isCode(this._settings.response_type)?"?":"#",o=new u.SigninResponse(t,n);return o.state?(e=e||this._stateStore,(r?e.remove.bind(e):e.get.bind(e))(o.state).then((function(t){if(!t)throw i.Log.error("OidcClient.readSigninResponseState: No matching state found in storage"),new Error("No matching state found in storage");return{state:l.SigninState.fromStorageString(t),response:o}}))):(i.Log.error("OidcClient.readSigninResponseState: No state in response"),Promise.reject(new Error("No state in response")))},t.prototype.processSigninResponse=function(t,e){var r=this;return i.Log.debug("OidcClient.processSigninResponse"),this.readSigninResponseState(t,e,!0).then((function(t){var e=t.state,n=t.response;return i.Log.debug("OidcClient.processSigninResponse: Received state from storage; validating response"),r._validator.validateSigninResponse(e,n)}))},t.prototype.createSignoutRequest=function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=e.id_token_hint,n=e.data,o=e.state,s=e.post_logout_redirect_uri,a=e.extraQueryParams,u=e.request_type,h=arguments[1];return i.Log.debug("OidcClient.createSignoutRequest"),s=s||this._settings.post_logout_redirect_uri,a=a||this._settings.extraQueryParams,this._metadataService.getEndSessionEndpoint().then((function(e){if(!e)throw i.Log.error("OidcClient.createSignoutRequest: No end session endpoint url returned"),new Error("no end session endpoint");i.Log.debug("OidcClient.createSignoutRequest: Received end session endpoint",e);var l=new c.SignoutRequest({url:e,id_token_hint:r,post_logout_redirect_uri:s,data:n||o,extraQueryParams:a,request_type:u}),f=l.state;return f&&(i.Log.debug("OidcClient.createSignoutRequest: Signout request has state to persist"),(h=h||t._stateStore).set(f.id,f.toStorageString())),l}))},t.prototype.readSignoutResponseState=function(t,e){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];i.Log.debug("OidcClient.readSignoutResponseState");var n=new h.SignoutResponse(t);if(!n.state)return i.Log.debug("OidcClient.readSignoutResponseState: No state in response"),n.error?(i.Log.warn("OidcClient.readSignoutResponseState: Response was error: ",n.error),Promise.reject(new s.ErrorResponse(n))):Promise.resolve({state:void 0,response:n});var o=n.state;return e=e||this._stateStore,(r?e.remove.bind(e):e.get.bind(e))(o).then((function(t){if(!t)throw i.Log.error("OidcClient.readSignoutResponseState: No matching state found in storage"),new Error("No matching state found in storage");return{state:f.State.fromStorageString(t),response:n}}))},t.prototype.processSignoutResponse=function(t,e){var r=this;return i.Log.debug("OidcClient.processSignoutResponse"),this.readSignoutResponseState(t,e,!0).then((function(t){var e=t.state,n=t.response;return e?(i.Log.debug("OidcClient.processSignoutResponse: Received state from storage; validating response"),r._validator.validateSignoutResponse(e,n)):(i.Log.debug("OidcClient.processSignoutResponse: No state from storage; skipping validating response"),n)}))},t.prototype.clearStaleState=function(t){return i.Log.debug("OidcClient.clearStaleState"),t=t||this._stateStore,f.State.clearStaleState(t,this.settings.staleStateAge)},n(t,[{key:"_stateStore",get:function(){return this.settings.stateStore}},{key:"_validator",get:function(){return this.settings.validator}},{key:"_metadataService",get:function(){return this.settings.metadataService}},{key:"settings",get:function(){return this._settings}},{key:"metadataService",get:function(){return this._metadataService}}]),t}()},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.TokenClient=void 0;var n=r(7),i=r(2),o=r(0);e.TokenClient=function(){function t(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:n.JsonService,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:i.MetadataService;if(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),!e)throw o.Log.error("TokenClient.ctor: No settings passed"),new Error("settings");this._settings=e,this._jsonService=new r,this._metadataService=new s(this._settings)}return t.prototype.exchangeCode=function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(e=Object.assign({},e)).grant_type=e.grant_type||"authorization_code",e.client_id=e.client_id||this._settings.client_id,e.client_secret=e.client_secret||this._settings.client_secret,e.redirect_uri=e.redirect_uri||this._settings.redirect_uri;var r=void 0,n=e._client_authentication||this._settings._client_authentication;return delete e._client_authentication,e.code?e.redirect_uri?e.code_verifier?e.client_id?e.client_secret||"client_secret_basic"!=n?("client_secret_basic"==n&&(r=e.client_id+":"+e.client_secret,delete e.client_id,delete e.client_secret),this._metadataService.getTokenEndpoint(!1).then((function(n){return o.Log.debug("TokenClient.exchangeCode: Received token endpoint"),t._jsonService.postForm(n,e,r).then((function(t){return o.Log.debug("TokenClient.exchangeCode: response received"),t}))}))):(o.Log.error("TokenClient.exchangeCode: No client_secret passed"),Promise.reject(new Error("A client_secret is required"))):(o.Log.error("TokenClient.exchangeCode: No client_id passed"),Promise.reject(new Error("A client_id is required"))):(o.Log.error("TokenClient.exchangeCode: No code_verifier passed"),Promise.reject(new Error("A code_verifier is required"))):(o.Log.error("TokenClient.exchangeCode: No redirect_uri passed"),Promise.reject(new Error("A redirect_uri is required"))):(o.Log.error("TokenClient.exchangeCode: No code passed"),Promise.reject(new Error("A code is required")))},t.prototype.exchangeRefreshToken=function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(e=Object.assign({},e)).grant_type=e.grant_type||"refresh_token",e.client_id=e.client_id||this._settings.client_id,e.client_secret=e.client_secret||this._settings.client_secret;var r=void 0,n=e._client_authentication||this._settings._client_authentication;return delete e._client_authentication,e.refresh_token?e.client_id?("client_secret_basic"==n&&(r=e.client_id+":"+e.client_secret,delete e.client_id,delete e.client_secret),this._metadataService.getTokenEndpoint(!1).then((function(n){return o.Log.debug("TokenClient.exchangeRefreshToken: Received token endpoint"),t._jsonService.postForm(n,e,r).then((function(t){return o.Log.debug("TokenClient.exchangeRefreshToken: response received"),t}))}))):(o.Log.error("TokenClient.exchangeRefreshToken: No client_id passed"),Promise.reject(new Error("A client_id is required"))):(o.Log.error("TokenClient.exchangeRefreshToken: No refresh_token passed"),Promise.reject(new Error("A refresh_token is required")))},t}()},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ErrorResponse=void 0;var n=r(0);e.ErrorResponse=function(t){function e(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=r.error,o=r.error_description,s=r.error_uri,a=r.state,u=r.session_state;if(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e),!i)throw n.Log.error("No error passed to ErrorResponse"),new Error("error");var c=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}(this,t.call(this,o||i));return c.name="ErrorResponse",c.error=i,c.error_description=o,c.error_uri=s,c.state=a,c.session_state=u,c}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,t),e}(Error)},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SigninState=void 0;var n=function(){function t(t,e){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{},n=r.nonce,i=r.authority,o=r.client_id,u=r.redirect_uri,c=r.code_verifier,h=r.response_mode,l=r.client_secret,f=r.scope,g=r.extraTokenParams,d=r.skipUserInfo;!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e);var p=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}(this,t.call(this,arguments[0]));if(!0===n?p._nonce=(0,a.default)():n&&(p._nonce=n),!0===c?p._code_verifier=(0,a.default)()+(0,a.default)()+(0,a.default)():c&&(p._code_verifier=c),p.code_verifier){var v=s.JoseUtil.hashString(p.code_verifier,"SHA256");p._code_challenge=s.JoseUtil.hexToBase64Url(v)}return p._redirect_uri=u,p._authority=i,p._client_id=o,p._response_mode=h,p._client_secret=l,p._scope=f,p._extraTokenParams=g,p._skipUserInfo=d,p}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,t),e.prototype.toStorageString=function(){return i.Log.debug("SigninState.toStorageString"),JSON.stringify({id:this.id,data:this.data,created:this.created,request_type:this.request_type,nonce:this.nonce,code_verifier:this.code_verifier,redirect_uri:this.redirect_uri,authority:this.authority,client_id:this.client_id,response_mode:this.response_mode,client_secret:this.client_secret,scope:this.scope,extraTokenParams:this.extraTokenParams,skipUserInfo:this.skipUserInfo})},e.fromStorageString=function(t){return i.Log.debug("SigninState.fromStorageString"),new e(JSON.parse(t))},n(e,[{key:"nonce",get:function(){return this._nonce}},{key:"authority",get:function(){return this._authority}},{key:"client_id",get:function(){return this._client_id}},{key:"redirect_uri",get:function(){return this._redirect_uri}},{key:"code_verifier",get:function(){return this._code_verifier}},{key:"code_challenge",get:function(){return this._code_challenge}},{key:"response_mode",get:function(){return this._response_mode}},{key:"client_secret",get:function(){return this._client_secret}},{key:"scope",get:function(){return this._scope}},{key:"extraTokenParams",get:function(){return this._extraTokenParams}},{key:"skipUserInfo",get:function(){return this._skipUserInfo}}]),e}(o.State)},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(){return("undefined"!=n&&null!==n&&void 0!==n.getRandomValues?i:o)().replace(/-/g,"")};var n="undefined"!=typeof window?window.crypto||window.msCrypto:null;function i(){return([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,(function(t){return(t^n.getRandomValues(new Uint8Array(1))[0]&15>>t/4).toString(16)}))}function o(){return([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,(function(t){return(t^16*Math.random()>>t/4).toString(16)}))}t.exports=e.default},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.User=void 0;var n=function(){function t(t,e){for(var r=0;r0){var r=parseInt(Date.now()/1e3);this.expires_at=r+e}}},{key:"expired",get:function(){var t=this.expires_in;if(void 0!==t)return t<=0}},{key:"scopes",get:function(){return(this.scope||"").split(" ")}}]),t}()},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.AccessTokenEvents=void 0;var n=r(0),i=r(46);e.AccessTokenEvents=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=e.accessTokenExpiringNotificationTime,n=void 0===r?60:r,o=e.accessTokenExpiringTimer,s=void 0===o?new i.Timer("Access token expiring"):o,a=e.accessTokenExpiredTimer,u=void 0===a?new i.Timer("Access token expired"):a;(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")})(this,t),this._accessTokenExpiringNotificationTime=n,this._accessTokenExpiring=s,this._accessTokenExpired=u}return t.prototype.load=function(t){if(t.access_token&&void 0!==t.expires_in){var e=t.expires_in;if(n.Log.debug("AccessTokenEvents.load: access token present, remaining duration:",e),e>0){var r=e-this._accessTokenExpiringNotificationTime;r<=0&&(r=1),n.Log.debug("AccessTokenEvents.load: registering expiring timer in:",r),this._accessTokenExpiring.init(r)}else n.Log.debug("AccessTokenEvents.load: canceling existing expiring timer becase we're past expiration."),this._accessTokenExpiring.cancel();var i=e+1;n.Log.debug("AccessTokenEvents.load: registering expired timer in:",i),this._accessTokenExpired.init(i)}else this._accessTokenExpiring.cancel(),this._accessTokenExpired.cancel()},t.prototype.unload=function(){n.Log.debug("AccessTokenEvents.unload: canceling existing access token timers"),this._accessTokenExpiring.cancel(),this._accessTokenExpired.cancel()},t.prototype.addAccessTokenExpiring=function(t){this._accessTokenExpiring.addHandler(t)},t.prototype.removeAccessTokenExpiring=function(t){this._accessTokenExpiring.removeHandler(t)},t.prototype.addAccessTokenExpired=function(t){this._accessTokenExpired.addHandler(t)},t.prototype.removeAccessTokenExpired=function(t){this._accessTokenExpired.removeHandler(t)},t}()},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Event=void 0;var n=r(0);e.Event=function(){function t(e){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this._name=e,this._callbacks=[]}return t.prototype.addHandler=function(t){this._callbacks.push(t)},t.prototype.removeHandler=function(t){var e=this._callbacks.findIndex((function(e){return e===t}));e>=0&&this._callbacks.splice(e,1)},t.prototype.raise=function(){n.Log.debug("Event: Raising event: "+this._name);for(var t=0;t1&&void 0!==arguments[1]?arguments[1]:o.CheckSessionIFrame,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:s.Global.timer;if(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),!e)throw i.Log.error("SessionMonitor.ctor: No user manager passed to SessionMonitor"),new Error("userManager");this._userManager=e,this._CheckSessionIFrameCtor=n,this._timer=a,this._userManager.events.addUserLoaded(this._start.bind(this)),this._userManager.events.addUserUnloaded(this._stop.bind(this)),Promise.resolve(this._userManager.getUser().then((function(t){t?r._start(t):r._settings.monitorAnonymousSession&&r._userManager.querySessionStatus().then((function(t){var e={session_state:t.session_state};t.sub&&t.sid&&(e.profile={sub:t.sub,sid:t.sid}),r._start(e)})).catch((function(t){i.Log.error("SessionMonitor ctor: error from querySessionStatus:",t.message)}))})).catch((function(t){i.Log.error("SessionMonitor ctor: error from getUser:",t.message)})))}return t.prototype._start=function(t){var e=this,r=t.session_state;r&&(t.profile?(this._sub=t.profile.sub,this._sid=t.profile.sid,i.Log.debug("SessionMonitor._start: session_state:",r,", sub:",this._sub)):(this._sub=void 0,this._sid=void 0,i.Log.debug("SessionMonitor._start: session_state:",r,", anonymous user")),this._checkSessionIFrame?this._checkSessionIFrame.start(r):this._metadataService.getCheckSessionIframe().then((function(t){if(t){i.Log.debug("SessionMonitor._start: Initializing check session iframe");var n=e._client_id,o=e._checkSessionInterval,s=e._stopCheckSessionOnError;e._checkSessionIFrame=new e._CheckSessionIFrameCtor(e._callback.bind(e),n,t,o,s),e._checkSessionIFrame.load().then((function(){e._checkSessionIFrame.start(r)}))}else i.Log.warn("SessionMonitor._start: No check session iframe found in the metadata")})).catch((function(t){i.Log.error("SessionMonitor._start: Error from getCheckSessionIframe:",t.message)})))},t.prototype._stop=function(){var t=this;if(this._sub=void 0,this._sid=void 0,this._checkSessionIFrame&&(i.Log.debug("SessionMonitor._stop"),this._checkSessionIFrame.stop()),this._settings.monitorAnonymousSession)var e=this._timer.setInterval((function(){t._timer.clearInterval(e),t._userManager.querySessionStatus().then((function(e){var r={session_state:e.session_state};e.sub&&e.sid&&(r.profile={sub:e.sub,sid:e.sid}),t._start(r)})).catch((function(t){i.Log.error("SessionMonitor: error from querySessionStatus:",t.message)}))}),1e3)},t.prototype._callback=function(){var t=this;this._userManager.querySessionStatus().then((function(e){var r=!0;e?e.sub===t._sub?(r=!1,t._checkSessionIFrame.start(e.session_state),e.sid===t._sid?i.Log.debug("SessionMonitor._callback: Same sub still logged in at OP, restarting check session iframe; session_state:",e.session_state):(i.Log.debug("SessionMonitor._callback: Same sub still logged in at OP, session state has changed, restarting check session iframe; session_state:",e.session_state),t._userManager.events._raiseUserSessionChanged())):i.Log.debug("SessionMonitor._callback: Different subject signed into OP:",e.sub):i.Log.debug("SessionMonitor._callback: Subject no longer signed into OP"),r&&(t._sub?(i.Log.debug("SessionMonitor._callback: SessionMonitor._callback; raising signed out event"),t._userManager.events._raiseUserSignedOut()):(i.Log.debug("SessionMonitor._callback: SessionMonitor._callback; raising signed in event"),t._userManager.events._raiseUserSignedIn()))})).catch((function(e){t._sub&&(i.Log.debug("SessionMonitor._callback: Error calling queryCurrentSigninSession; raising signed out event",e.message),t._userManager.events._raiseUserSignedOut())}))},n(t,[{key:"_settings",get:function(){return this._userManager.settings}},{key:"_metadataService",get:function(){return this._userManager.metadataService}},{key:"_client_id",get:function(){return this._settings.client_id}},{key:"_checkSessionInterval",get:function(){return this._settings.checkSessionInterval}},{key:"_stopCheckSessionOnError",get:function(){return this._settings.stopCheckSessionOnError}}]),t}()},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CheckSessionIFrame=void 0;var n=r(0);e.CheckSessionIFrame=function(){function t(e,r,n,i){var o=!(arguments.length>4&&void 0!==arguments[4])||arguments[4];(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")})(this,t),this._callback=e,this._client_id=r,this._url=n,this._interval=i||2e3,this._stopOnError=o;var s=n.indexOf("/",n.indexOf("//")+2);this._frame_origin=n.substr(0,s),this._frame=window.document.createElement("iframe"),this._frame.style.visibility="hidden",this._frame.style.position="absolute",this._frame.style.display="none",this._frame.width=0,this._frame.height=0,this._frame.src=n}return t.prototype.load=function(){var t=this;return new Promise((function(e){t._frame.onload=function(){e()},window.document.body.appendChild(t._frame),t._boundMessageEvent=t._message.bind(t),window.addEventListener("message",t._boundMessageEvent,!1)}))},t.prototype._message=function(t){t.origin===this._frame_origin&&t.source===this._frame.contentWindow&&("error"===t.data?(n.Log.error("CheckSessionIFrame: error message from check session op iframe"),this._stopOnError&&this.stop()):"changed"===t.data?(n.Log.debug("CheckSessionIFrame: changed message from check session op iframe"),this.stop(),this._callback()):n.Log.debug("CheckSessionIFrame: "+t.data+" message from check session op iframe"))},t.prototype.start=function(t){var e=this;if(this._session_state!==t){n.Log.debug("CheckSessionIFrame.start"),this.stop(),this._session_state=t;var r=function(){e._frame.contentWindow.postMessage(e._client_id+" "+e._session_state,e._frame_origin)};r(),this._timer=window.setInterval(r,this._interval)}},t.prototype.stop=function(){this._session_state=null,this._timer&&(n.Log.debug("CheckSessionIFrame.stop"),window.clearInterval(this._timer),this._timer=null)},t}()},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.TokenRevocationClient=void 0;var n=r(0),i=r(2),o=r(1),s="access_token",a="refresh_token";e.TokenRevocationClient=function(){function t(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:o.Global.XMLHttpRequest,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:i.MetadataService;if(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),!e)throw n.Log.error("TokenRevocationClient.ctor: No settings provided"),new Error("No settings provided.");this._settings=e,this._XMLHttpRequestCtor=r,this._metadataService=new s(this._settings)}return t.prototype.revoke=function(t,e){var r=this,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"access_token";if(!t)throw n.Log.error("TokenRevocationClient.revoke: No token provided"),new Error("No token provided.");if(i!==s&&i!=a)throw n.Log.error("TokenRevocationClient.revoke: Invalid token type"),new Error("Invalid token type.");return this._metadataService.getRevocationEndpoint().then((function(o){if(o){n.Log.debug("TokenRevocationClient.revoke: Revoking "+i);var s=r._settings.client_id,a=r._settings.client_secret;return r._revoke(o,s,a,t,i)}if(e)throw n.Log.error("TokenRevocationClient.revoke: Revocation not supported"),new Error("Revocation not supported")}))},t.prototype._revoke=function(t,e,r,i,o){var s=this;return new Promise((function(a,u){var c=new s._XMLHttpRequestCtor;c.open("POST",t),c.onload=function(){n.Log.debug("TokenRevocationClient.revoke: HTTP response received, status",c.status),200===c.status?a():u(Error(c.statusText+" ("+c.status+")"))},c.onerror=function(){n.Log.debug("TokenRevocationClient.revoke: Network Error."),u("Network Error")};var h="client_id="+encodeURIComponent(e);r&&(h+="&client_secret="+encodeURIComponent(r)),h+="&token_type_hint="+encodeURIComponent(o),h+="&token="+encodeURIComponent(i),c.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),c.send(h)}))},t}()},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CordovaPopupWindow=void 0;var n=function(){function t(t,e){for(var r=0;r1&&void 0!==arguments[1]?arguments[1]:o.MetadataService,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:s.UserInfoService,u=arguments.length>3&&void 0!==arguments[3]?arguments[3]:c.JoseUtil,h=arguments.length>4&&void 0!==arguments[4]?arguments[4]:a.TokenClient;if(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),!e)throw i.Log.error("ResponseValidator.ctor: No settings passed to ResponseValidator"),new Error("settings");this._settings=e,this._metadataService=new r(this._settings),this._userInfoService=new n(this._settings),this._joseUtil=u,this._tokenClient=new h(this._settings)}return t.prototype.validateSigninResponse=function(t,e){var r=this;return i.Log.debug("ResponseValidator.validateSigninResponse"),this._processSigninParams(t,e).then((function(e){return i.Log.debug("ResponseValidator.validateSigninResponse: state processed"),r._validateTokens(t,e).then((function(e){return i.Log.debug("ResponseValidator.validateSigninResponse: tokens validated"),r._processClaims(t,e).then((function(t){return i.Log.debug("ResponseValidator.validateSigninResponse: claims processed"),t}))}))}))},t.prototype.validateSignoutResponse=function(t,e){return t.id!==e.state?(i.Log.error("ResponseValidator.validateSignoutResponse: State does not match"),Promise.reject(new Error("State does not match"))):(i.Log.debug("ResponseValidator.validateSignoutResponse: state validated"),e.state=t.data,e.error?(i.Log.warn("ResponseValidator.validateSignoutResponse: Response was error",e.error),Promise.reject(new u.ErrorResponse(e))):Promise.resolve(e))},t.prototype._processSigninParams=function(t,e){if(t.id!==e.state)return i.Log.error("ResponseValidator._processSigninParams: State does not match"),Promise.reject(new Error("State does not match"));if(!t.client_id)return i.Log.error("ResponseValidator._processSigninParams: No client_id on state"),Promise.reject(new Error("No client_id on state"));if(!t.authority)return i.Log.error("ResponseValidator._processSigninParams: No authority on state"),Promise.reject(new Error("No authority on state"));if(this._settings.authority){if(this._settings.authority&&this._settings.authority!==t.authority)return i.Log.error("ResponseValidator._processSigninParams: authority mismatch on settings vs. signin state"),Promise.reject(new Error("authority mismatch on settings vs. signin state"))}else this._settings.authority=t.authority;if(this._settings.client_id){if(this._settings.client_id&&this._settings.client_id!==t.client_id)return i.Log.error("ResponseValidator._processSigninParams: client_id mismatch on settings vs. signin state"),Promise.reject(new Error("client_id mismatch on settings vs. signin state"))}else this._settings.client_id=t.client_id;return i.Log.debug("ResponseValidator._processSigninParams: state validated"),e.state=t.data,e.error?(i.Log.warn("ResponseValidator._processSigninParams: Response was error",e.error),Promise.reject(new u.ErrorResponse(e))):t.nonce&&!e.id_token?(i.Log.error("ResponseValidator._processSigninParams: Expecting id_token in response"),Promise.reject(new Error("No id_token in response"))):!t.nonce&&e.id_token?(i.Log.error("ResponseValidator._processSigninParams: Not expecting id_token in response"),Promise.reject(new Error("Unexpected id_token in response"))):t.code_verifier&&!e.code?(i.Log.error("ResponseValidator._processSigninParams: Expecting code in response"),Promise.reject(new Error("No code in response"))):!t.code_verifier&&e.code?(i.Log.error("ResponseValidator._processSigninParams: Not expecting code in response"),Promise.reject(new Error("Unexpected code in response"))):(e.scope||(e.scope=t.scope),Promise.resolve(e))},t.prototype._processClaims=function(t,e){var r=this;if(e.isOpenIdConnect){if(i.Log.debug("ResponseValidator._processClaims: response is OIDC, processing claims"),e.profile=this._filterProtocolClaims(e.profile),!0!==t.skipUserInfo&&this._settings.loadUserInfo&&e.access_token)return i.Log.debug("ResponseValidator._processClaims: loading user info"),this._userInfoService.getClaims(e.access_token).then((function(t){return i.Log.debug("ResponseValidator._processClaims: user info claims received from user info endpoint"),t.sub!==e.profile.sub?(i.Log.error("ResponseValidator._processClaims: sub from user info endpoint does not match sub in id_token"),Promise.reject(new Error("sub from user info endpoint does not match sub in id_token"))):(e.profile=r._mergeClaims(e.profile,t),i.Log.debug("ResponseValidator._processClaims: user info claims received, updated profile:",e.profile),e)}));i.Log.debug("ResponseValidator._processClaims: not loading user info")}else i.Log.debug("ResponseValidator._processClaims: response is not OIDC, not processing claims");return Promise.resolve(e)},t.prototype._mergeClaims=function(t,e){var r=Object.assign({},t);for(var i in e){var o=e[i];Array.isArray(o)||(o=[o]);for(var s=0;s1)return i.Log.error("ResponseValidator._validateIdToken: No kid found in id_token and more than one key found in metadata"),Promise.reject(new Error("No kid found in id_token and more than one key found in metadata"));o=r[0]}return Promise.resolve(o)}))},t.prototype._getSigningKeyForJwtWithSingleRetry=function(t){var e=this;return this._getSigningKeyForJwt(t).then((function(r){return r?Promise.resolve(r):(e._metadataService.resetSigningKeys(),e._getSigningKeyForJwt(t))}))},t.prototype._validateIdToken=function(t,e){var r=this;if(!t.nonce)return i.Log.error("ResponseValidator._validateIdToken: No nonce on state"),Promise.reject(new Error("No nonce on state"));var n=this._joseUtil.parseJwt(e.id_token);return n&&n.header&&n.payload?t.nonce!==n.payload.nonce?(i.Log.error("ResponseValidator._validateIdToken: Invalid nonce in id_token"),Promise.reject(new Error("Invalid nonce in id_token"))):this._metadataService.getIssuer().then((function(o){return i.Log.debug("ResponseValidator._validateIdToken: Received issuer"),r._getSigningKeyForJwtWithSingleRetry(n).then((function(s){if(!s)return i.Log.error("ResponseValidator._validateIdToken: No key matching kid or alg found in signing keys"),Promise.reject(new Error("No key matching kid or alg found in signing keys"));var a=t.client_id,u=r._settings.clockSkew;return i.Log.debug("ResponseValidator._validateIdToken: Validaing JWT; using clock skew (in seconds) of: ",u),r._joseUtil.validateJwt(e.id_token,s,o,a,u).then((function(){return i.Log.debug("ResponseValidator._validateIdToken: JWT validation successful"),n.payload.sub?(e.profile=n.payload,e):(i.Log.error("ResponseValidator._validateIdToken: No sub present in id_token"),Promise.reject(new Error("No sub present in id_token")))}))}))})):(i.Log.error("ResponseValidator._validateIdToken: Failed to parse id_token",n),Promise.reject(new Error("Failed to parse id_token")))},t.prototype._filterByAlg=function(t,e){var r=null;if(e.startsWith("RS"))r="RSA";else if(e.startsWith("PS"))r="PS";else{if(!e.startsWith("ES"))return i.Log.debug("ResponseValidator._filterByAlg: alg not supported: ",e),[];r="EC"}return i.Log.debug("ResponseValidator._filterByAlg: Looking for keys that match kty: ",r),t=t.filter((function(t){return t.kty===r})),i.Log.debug("ResponseValidator._filterByAlg: Number of keys that match kty: ",r,t.length),t},t.prototype._validateAccessToken=function(t){if(!t.profile)return i.Log.error("ResponseValidator._validateAccessToken: No profile loaded from id_token"),Promise.reject(new Error("No profile loaded from id_token"));if(!t.profile.at_hash)return i.Log.error("ResponseValidator._validateAccessToken: No at_hash in id_token"),Promise.reject(new Error("No at_hash in id_token"));if(!t.id_token)return i.Log.error("ResponseValidator._validateAccessToken: No id_token"),Promise.reject(new Error("No id_token"));var e=this._joseUtil.parseJwt(t.id_token);if(!e||!e.header)return i.Log.error("ResponseValidator._validateAccessToken: Failed to parse id_token",e),Promise.reject(new Error("Failed to parse id_token"));var r=e.header.alg;if(!r||5!==r.length)return i.Log.error("ResponseValidator._validateAccessToken: Unsupported alg:",r),Promise.reject(new Error("Unsupported alg: "+r));var n=r.substr(2,3);if(!n)return i.Log.error("ResponseValidator._validateAccessToken: Unsupported alg:",r,n),Promise.reject(new Error("Unsupported alg: "+r));if(256!==(n=parseInt(n))&&384!==n&&512!==n)return i.Log.error("ResponseValidator._validateAccessToken: Unsupported alg:",r,n),Promise.reject(new Error("Unsupported alg: "+r));var o="sha"+n,s=this._joseUtil.hashString(t.access_token,o);if(!s)return i.Log.error("ResponseValidator._validateAccessToken: access_token hash failed:",o),Promise.reject(new Error("Failed to validate at_hash"));var a=s.substr(0,s.length/2),u=this._joseUtil.hexToBase64Url(a);return u!==t.profile.at_hash?(i.Log.error("ResponseValidator._validateAccessToken: Failed to validate at_hash",u,t.profile.at_hash),Promise.reject(new Error("Failed to validate at_hash"))):(i.Log.debug("ResponseValidator._validateAccessToken: success"),Promise.resolve(t))},t}()},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.UserInfoService=void 0;var n=r(7),i=r(2),o=r(0),s=r(4);e.UserInfoService=function(){function t(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:n.JsonService,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:i.MetadataService,u=arguments.length>3&&void 0!==arguments[3]?arguments[3]:s.JoseUtil;if(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),!e)throw o.Log.error("UserInfoService.ctor: No settings passed"),new Error("settings");this._settings=e,this._jsonService=new r(void 0,void 0,this._getClaimsFromJwt.bind(this)),this._metadataService=new a(this._settings),this._joseUtil=u}return t.prototype.getClaims=function(t){var e=this;return t?this._metadataService.getUserInfoEndpoint().then((function(r){return o.Log.debug("UserInfoService.getClaims: received userinfo url",r),e._jsonService.getJson(r,t).then((function(t){return o.Log.debug("UserInfoService.getClaims: claims received",t),t}))})):(o.Log.error("UserInfoService.getClaims: No token passed"),Promise.reject(new Error("A token is required")))},t.prototype._getClaimsFromJwt=function t(e){var r=this;try{var n=this._joseUtil.parseJwt(e.responseText);if(!n||!n.header||!n.payload)return o.Log.error("UserInfoService._getClaimsFromJwt: Failed to parse JWT",n),Promise.reject(new Error("Failed to parse id_token"));var i=n.header.kid,s=void 0;switch(this._settings.userInfoJwtIssuer){case"OP":s=this._metadataService.getIssuer();break;case"ANY":s=Promise.resolve(n.payload.iss);break;default:s=Promise.resolve(this._settings.userInfoJwtIssuer)}return s.then((function(t){return o.Log.debug("UserInfoService._getClaimsFromJwt: Received issuer:"+t),r._metadataService.getSigningKeys().then((function(s){if(!s)return o.Log.error("UserInfoService._getClaimsFromJwt: No signing keys from metadata"),Promise.reject(new Error("No signing keys from metadata"));o.Log.debug("UserInfoService._getClaimsFromJwt: Received signing keys");var a=void 0;if(i)a=s.filter((function(t){return t.kid===i}))[0];else{if((s=r._filterByAlg(s,n.header.alg)).length>1)return o.Log.error("UserInfoService._getClaimsFromJwt: No kid found in id_token and more than one key found in metadata"),Promise.reject(new Error("No kid found in id_token and more than one key found in metadata"));a=s[0]}if(!a)return o.Log.error("UserInfoService._getClaimsFromJwt: No key matching kid or alg found in signing keys"),Promise.reject(new Error("No key matching kid or alg found in signing keys"));var u=r._settings.client_id,c=r._settings.clockSkew;return o.Log.debug("UserInfoService._getClaimsFromJwt: Validaing JWT; using clock skew (in seconds) of: ",c),r._joseUtil.validateJwt(e.responseText,a,t,u,c,void 0,!0).then((function(){return o.Log.debug("UserInfoService._getClaimsFromJwt: JWT validation successful"),n.payload}))}))}))}catch(t){return o.Log.error("UserInfoService._getClaimsFromJwt: Error parsing JWT response",t.message),void reject(t)}},t.prototype._filterByAlg=function(t,e){var r=null;if(e.startsWith("RS"))r="RSA";else if(e.startsWith("PS"))r="PS";else{if(!e.startsWith("ES"))return o.Log.debug("UserInfoService._filterByAlg: alg not supported: ",e),[];r="EC"}return o.Log.debug("UserInfoService._filterByAlg: Looking for keys that match kty: ",r),t=t.filter((function(t){return t.kty===r})),o.Log.debug("UserInfoService._filterByAlg: Number of keys that match kty: ",r,t.length),t},t}()},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.AllowedSigningAlgs=e.b64tohex=e.hextob64u=e.crypto=e.X509=e.KeyUtil=e.jws=void 0;var n=r(27);e.jws=n.jws,e.KeyUtil=n.KEYUTIL,e.X509=n.X509,e.crypto=n.crypto,e.hextob64u=n.hextob64u,e.b64tohex=n.b64tohex,e.AllowedSigningAlgs=["RS256","RS384","RS512","PS256","PS384","PS512","ES256","ES384","ES512"]},function(t,e,r){"use strict";(function(t){Object.defineProperty(e,"__esModule",{value:!0});var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},n={userAgent:!1},i={};if(void 0===o)var o={};o.lang={extend:function(t,e,r){if(!e||!t)throw new Error("YAHOO.lang.extend failed, please check that all dependencies are included.");var i=function(){};if(i.prototype=e.prototype,t.prototype=new i,t.prototype.constructor=t,t.superclass=e.prototype,e.prototype.constructor==Object.prototype.constructor&&(e.prototype.constructor=e),r){var o;for(o in r)t.prototype[o]=r[o];var s=function(){},a=["toString","valueOf"];try{/MSIE/.test(n.userAgent)&&(s=function(t,e){for(o=0;o>>2]>>>24-o%4*8&255;e[n+o>>>2]|=s<<24-(n+o)%4*8}else for(o=0;o>>2]=r[o>>>2];return this.sigBytes+=i,this},clamp:function(){var t=this.words,e=this.sigBytes;t[e>>>2]&=4294967295<<32-e%4*8,t.length=s.ceil(e/4)},clone:function(){var t=c.clone.call(this);return t.words=this.words.slice(0),t},random:function(t){for(var e=[],r=0;r>>2]>>>24-i%4*8&255;n.push((o>>>4).toString(16)),n.push((15&o).toString(16))}return n.join("")},parse:function(t){for(var e=t.length,r=[],n=0;n>>3]|=parseInt(t.substr(n,2),16)<<24-n%8*4;return new h.init(r,e/2)}},g=l.Latin1={stringify:function(t){for(var e=t.words,r=t.sigBytes,n=[],i=0;i>>2]>>>24-i%4*8&255;n.push(String.fromCharCode(o))}return n.join("")},parse:function(t){for(var e=t.length,r=[],n=0;n>>2]|=(255&t.charCodeAt(n))<<24-n%4*8;return new h.init(r,e)}},d=l.Utf8={stringify:function(t){try{return decodeURIComponent(escape(g.stringify(t)))}catch(t){throw new Error("Malformed UTF-8 data")}},parse:function(t){return g.parse(unescape(encodeURIComponent(t)))}},p=u.BufferedBlockAlgorithm=c.extend({reset:function(){this._data=new h.init,this._nDataBytes=0},_append:function(t){"string"==typeof t&&(t=d.parse(t)),this._data.concat(t),this._nDataBytes+=t.sigBytes},_process:function(t){var e=this._data,r=e.words,n=e.sigBytes,i=this.blockSize,o=n/(4*i),a=(o=t?s.ceil(o):s.max((0|o)-this._minBufferSize,0))*i,u=s.min(4*a,n);if(a){for(var c=0;c>>2]>>>24-i%4*8&255)<<16|(e[i+1>>>2]>>>24-(i+1)%4*8&255)<<8|e[i+2>>>2]>>>24-(i+2)%4*8&255,s=0;4>s&&i+.75*s>>6*(3-s)&63));if(e=n.charAt(64))for(;t.length%4;)t.push(e);return t.join("")},parse:function(t){var r=t.length,n=this._map;(i=n.charAt(64))&&-1!=(i=t.indexOf(i))&&(r=i);for(var i=[],o=0,s=0;s>>6-s%4*2;i[o>>>2]|=(a|u)<<24-o%4*8,o++}return e.create(i,o)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="}}(),function(t){for(var e=y,r=(i=e.lib).WordArray,n=i.Hasher,i=e.algo,o=[],s=[],a=function(t){return 4294967296*(t-(0|t))|0},u=2,c=0;64>c;){var h;t:{h=u;for(var l=t.sqrt(h),f=2;f<=l;f++)if(!(h%f)){h=!1;break t}h=!0}h&&(8>c&&(o[c]=a(t.pow(u,.5))),s[c]=a(t.pow(u,1/3)),c++),u++}var g=[];i=i.SHA256=n.extend({_doReset:function(){this._hash=new r.init(o.slice(0))},_doProcessBlock:function(t,e){for(var r=this._hash.words,n=r[0],i=r[1],o=r[2],a=r[3],u=r[4],c=r[5],h=r[6],l=r[7],f=0;64>f;f++){if(16>f)g[f]=0|t[e+f];else{var d=g[f-15],p=g[f-2];g[f]=((d<<25|d>>>7)^(d<<14|d>>>18)^d>>>3)+g[f-7]+((p<<15|p>>>17)^(p<<13|p>>>19)^p>>>10)+g[f-16]}d=l+((u<<26|u>>>6)^(u<<21|u>>>11)^(u<<7|u>>>25))+(u&c^~u&h)+s[f]+g[f],p=((n<<30|n>>>2)^(n<<19|n>>>13)^(n<<10|n>>>22))+(n&i^n&o^i&o),l=h,h=c,c=u,u=a+d|0,a=o,o=i,i=n,n=d+p|0}r[0]=r[0]+n|0,r[1]=r[1]+i|0,r[2]=r[2]+o|0,r[3]=r[3]+a|0,r[4]=r[4]+u|0,r[5]=r[5]+c|0,r[6]=r[6]+h|0,r[7]=r[7]+l|0},_doFinalize:function(){var e=this._data,r=e.words,n=8*this._nDataBytes,i=8*e.sigBytes;return r[i>>>5]|=128<<24-i%32,r[14+(i+64>>>9<<4)]=t.floor(n/4294967296),r[15+(i+64>>>9<<4)]=n,e.sigBytes=4*r.length,this._process(),this._hash},clone:function(){var t=n.clone.call(this);return t._hash=this._hash.clone(),t}}),e.SHA256=n._createHelper(i),e.HmacSHA256=n._createHmacHelper(i)}(Math),function(){function t(){return n.create.apply(n,arguments)}for(var e=y,r=e.lib.Hasher,n=(o=e.x64).Word,i=o.WordArray,o=e.algo,s=[t(1116352408,3609767458),t(1899447441,602891725),t(3049323471,3964484399),t(3921009573,2173295548),t(961987163,4081628472),t(1508970993,3053834265),t(2453635748,2937671579),t(2870763221,3664609560),t(3624381080,2734883394),t(310598401,1164996542),t(607225278,1323610764),t(1426881987,3590304994),t(1925078388,4068182383),t(2162078206,991336113),t(2614888103,633803317),t(3248222580,3479774868),t(3835390401,2666613458),t(4022224774,944711139),t(264347078,2341262773),t(604807628,2007800933),t(770255983,1495990901),t(1249150122,1856431235),t(1555081692,3175218132),t(1996064986,2198950837),t(2554220882,3999719339),t(2821834349,766784016),t(2952996808,2566594879),t(3210313671,3203337956),t(3336571891,1034457026),t(3584528711,2466948901),t(113926993,3758326383),t(338241895,168717936),t(666307205,1188179964),t(773529912,1546045734),t(1294757372,1522805485),t(1396182291,2643833823),t(1695183700,2343527390),t(1986661051,1014477480),t(2177026350,1206759142),t(2456956037,344077627),t(2730485921,1290863460),t(2820302411,3158454273),t(3259730800,3505952657),t(3345764771,106217008),t(3516065817,3606008344),t(3600352804,1432725776),t(4094571909,1467031594),t(275423344,851169720),t(430227734,3100823752),t(506948616,1363258195),t(659060556,3750685593),t(883997877,3785050280),t(958139571,3318307427),t(1322822218,3812723403),t(1537002063,2003034995),t(1747873779,3602036899),t(1955562222,1575990012),t(2024104815,1125592928),t(2227730452,2716904306),t(2361852424,442776044),t(2428436474,593698344),t(2756734187,3733110249),t(3204031479,2999351573),t(3329325298,3815920427),t(3391569614,3928383900),t(3515267271,566280711),t(3940187606,3454069534),t(4118630271,4000239992),t(116418474,1914138554),t(174292421,2731055270),t(289380356,3203993006),t(460393269,320620315),t(685471733,587496836),t(852142971,1086792851),t(1017036298,365543100),t(1126000580,2618297676),t(1288033470,3409855158),t(1501505948,4234509866),t(1607167915,987167468),t(1816402316,1246189591)],a=[],u=0;80>u;u++)a[u]=t();o=o.SHA512=r.extend({_doReset:function(){this._hash=new i.init([new n.init(1779033703,4089235720),new n.init(3144134277,2227873595),new n.init(1013904242,4271175723),new n.init(2773480762,1595750129),new n.init(1359893119,2917565137),new n.init(2600822924,725511199),new n.init(528734635,4215389547),new n.init(1541459225,327033209)])},_doProcessBlock:function(t,e){for(var r=(l=this._hash.words)[0],n=l[1],i=l[2],o=l[3],u=l[4],c=l[5],h=l[6],l=l[7],f=r.high,g=r.low,d=n.high,p=n.low,v=i.high,y=i.low,m=o.high,_=o.low,S=u.high,w=u.low,b=c.high,F=c.low,E=h.high,x=h.low,A=l.high,k=l.low,P=f,C=g,T=d,R=p,I=v,D=y,L=m,N=_,U=S,O=w,B=b,M=F,j=E,H=x,K=A,V=k,q=0;80>q;q++){var J=a[q];if(16>q)var W=J.high=0|t[e+2*q],z=J.low=0|t[e+2*q+1];else{W=((z=(W=a[q-15]).high)>>>1|(Y=W.low)<<31)^(z>>>8|Y<<24)^z>>>7;var Y=(Y>>>1|z<<31)^(Y>>>8|z<<24)^(Y>>>7|z<<25),G=((z=(G=a[q-2]).high)>>>19|($=G.low)<<13)^(z<<3|$>>>29)^z>>>6,$=($>>>19|z<<13)^($<<3|z>>>29)^($>>>6|z<<26),X=(z=a[q-7]).high,Q=(Z=a[q-16]).high,Z=Z.low;W=(W=(W=W+X+((z=Y+z.low)>>>0>>0?1:0))+G+((z+=$)>>>0<$>>>0?1:0))+Q+((z+=Z)>>>0>>0?1:0),J.high=W,J.low=z}X=U&B^~U&j,Z=O&M^~O&H,J=P&T^P&I^T&I;var tt=C&R^C&D^R&D,et=(Y=(P>>>28|C<<4)^(P<<30|C>>>2)^(P<<25|C>>>7),G=(C>>>28|P<<4)^(C<<30|P>>>2)^(C<<25|P>>>7),($=s[q]).high),rt=$.low;Q=K+((U>>>14|O<<18)^(U>>>18|O<<14)^(U<<23|O>>>9))+(($=V+((O>>>14|U<<18)^(O>>>18|U<<14)^(O<<23|U>>>9)))>>>0>>0?1:0),K=j,V=H,j=B,H=M,B=U,M=O,U=L+(Q=(Q=(Q=Q+X+(($+=Z)>>>0>>0?1:0))+et+(($+=rt)>>>0>>0?1:0))+W+(($+=z)>>>0>>0?1:0))+((O=N+$|0)>>>0>>0?1:0)|0,L=I,N=D,I=T,D=R,T=P,R=C,P=Q+(J=Y+J+((z=G+tt)>>>0>>0?1:0))+((C=$+z|0)>>>0<$>>>0?1:0)|0}g=r.low=g+C,r.high=f+P+(g>>>0>>0?1:0),p=n.low=p+R,n.high=d+T+(p>>>0>>0?1:0),y=i.low=y+D,i.high=v+I+(y>>>0>>0?1:0),_=o.low=_+N,o.high=m+L+(_>>>0>>0?1:0),w=u.low=w+O,u.high=S+U+(w>>>0>>0?1:0),F=c.low=F+M,c.high=b+B+(F>>>0>>0?1:0),x=h.low=x+H,h.high=E+j+(x>>>0>>0?1:0),k=l.low=k+V,l.high=A+K+(k>>>0>>0?1:0)},_doFinalize:function(){var t=this._data,e=t.words,r=8*this._nDataBytes,n=8*t.sigBytes;return e[n>>>5]|=128<<24-n%32,e[30+(n+128>>>10<<5)]=Math.floor(r/4294967296),e[31+(n+128>>>10<<5)]=r,t.sigBytes=4*e.length,this._process(),this._hash.toX32()},clone:function(){var t=r.clone.call(this);return t._hash=this._hash.clone(),t},blockSize:32}),e.SHA512=r._createHelper(o),e.HmacSHA512=r._createHmacHelper(o)}(),function(){var t=y,e=(i=t.x64).Word,r=i.WordArray,n=(i=t.algo).SHA512,i=i.SHA384=n.extend({_doReset:function(){this._hash=new r.init([new e.init(3418070365,3238371032),new e.init(1654270250,914150663),new e.init(2438529370,812702999),new e.init(355462360,4144912697),new e.init(1731405415,4290775857),new e.init(2394180231,1750603025),new e.init(3675008525,1694076839),new e.init(1203062813,3204075428)])},_doFinalize:function(){var t=n._doFinalize.call(this);return t.sigBytes-=16,t}});t.SHA384=n._createHelper(i),t.HmacSHA384=n._createHmacHelper(i)}();var m,_="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";function S(t){var e,r,n="";for(e=0;e+3<=t.length;e+=3)r=parseInt(t.substring(e,e+3),16),n+=_.charAt(r>>6)+_.charAt(63&r);for(e+1==t.length?(r=parseInt(t.substring(e,e+1),16),n+=_.charAt(r<<2)):e+2==t.length&&(r=parseInt(t.substring(e,e+2),16),n+=_.charAt(r>>2)+_.charAt((3&r)<<4));(3&n.length)>0;)n+="=";return n}function w(t){var e,r,n,i="",o=0;for(e=0;e>2),r=3&n,o=1):1==o?(i+=P(r<<2|n>>4),r=15&n,o=2):2==o?(i+=P(r),i+=P(n>>2),r=3&n,o=3):(i+=P(r<<2|n>>4),i+=P(15&n),o=0));return 1==o&&(i+=P(r<<2)),i}function b(t){var e,r=w(t),n=new Array;for(e=0;2*e>15;--o>=0;){var u=32767&this[t],c=this[t++]>>15,h=a*u+c*s;i=((u=s*u+((32767&h)<<15)+r[n]+(1073741823&i))>>>30)+(h>>>15)+a*c+(i>>>30),r[n++]=1073741823&u}return i},m=30):"Netscape"!=n.appName?(F.prototype.am=function(t,e,r,n,i,o){for(;--o>=0;){var s=e*this[t++]+r[n]+i;i=Math.floor(s/67108864),r[n++]=67108863&s}return i},m=26):(F.prototype.am=function(t,e,r,n,i,o){for(var s=16383&e,a=e>>14;--o>=0;){var u=16383&this[t],c=this[t++]>>14,h=a*u+c*s;i=((u=s*u+((16383&h)<<14)+r[n]+i)>>28)+(h>>14)+a*c,r[n++]=268435455&u}return i},m=28),F.prototype.DB=m,F.prototype.DM=(1<>>16)&&(t=e,r+=16),0!=(e=t>>8)&&(t=e,r+=8),0!=(e=t>>4)&&(t=e,r+=4),0!=(e=t>>2)&&(t=e,r+=2),0!=(e=t>>1)&&(t=e,r+=1),r}function I(t){this.m=t}function D(t){this.m=t,this.mp=t.invDigit(),this.mpl=32767&this.mp,this.mph=this.mp>>15,this.um=(1<>=16,e+=16),0==(255&t)&&(t>>=8,e+=8),0==(15&t)&&(t>>=4,e+=4),0==(3&t)&&(t>>=2,e+=2),0==(1&t)&&++e,e}function M(t){for(var e=0;0!=t;)t&=t-1,++e;return e}function j(){}function H(t){return t}function K(t){this.r2=E(),this.q3=E(),F.ONE.dlShiftTo(2*t.t,this.r2),this.mu=this.r2.divide(t),this.m=t}I.prototype.convert=function(t){return t.s<0||t.compareTo(this.m)>=0?t.mod(this.m):t},I.prototype.revert=function(t){return t},I.prototype.reduce=function(t){t.divRemTo(this.m,null,t)},I.prototype.mulTo=function(t,e,r){t.multiplyTo(e,r),this.reduce(r)},I.prototype.sqrTo=function(t,e){t.squareTo(e),this.reduce(e)},D.prototype.convert=function(t){var e=E();return t.abs().dlShiftTo(this.m.t,e),e.divRemTo(this.m,null,e),t.s<0&&e.compareTo(F.ZERO)>0&&this.m.subTo(e,e),e},D.prototype.revert=function(t){var e=E();return t.copyTo(e),this.reduce(e),e},D.prototype.reduce=function(t){for(;t.t<=this.mt2;)t[t.t++]=0;for(var e=0;e>15)*this.mpl&this.um)<<15)&t.DM;for(t[r=e+this.m.t]+=this.m.am(0,n,t,e,0,this.m.t);t[r]>=t.DV;)t[r]-=t.DV,t[++r]++}t.clamp(),t.drShiftTo(this.m.t,t),t.compareTo(this.m)>=0&&t.subTo(this.m,t)},D.prototype.mulTo=function(t,e,r){t.multiplyTo(e,r),this.reduce(r)},D.prototype.sqrTo=function(t,e){t.squareTo(e),this.reduce(e)},F.prototype.copyTo=function(t){for(var e=this.t-1;e>=0;--e)t[e]=this[e];t.t=this.t,t.s=this.s},F.prototype.fromInt=function(t){this.t=1,this.s=t<0?-1:0,t>0?this[0]=t:t<-1?this[0]=t+this.DV:this.t=0},F.prototype.fromString=function(t,e){var r;if(16==e)r=4;else if(8==e)r=3;else if(256==e)r=8;else if(2==e)r=1;else if(32==e)r=5;else{if(4!=e)return void this.fromRadix(t,e);r=2}this.t=0,this.s=0;for(var n=t.length,i=!1,o=0;--n>=0;){var s=8==r?255&t[n]:C(t,n);s<0?"-"==t.charAt(n)&&(i=!0):(i=!1,0==o?this[this.t++]=s:o+r>this.DB?(this[this.t-1]|=(s&(1<>this.DB-o):this[this.t-1]|=s<=this.DB&&(o-=this.DB))}8==r&&0!=(128&t[0])&&(this.s=-1,o>0&&(this[this.t-1]|=(1<0&&this[this.t-1]==t;)--this.t},F.prototype.dlShiftTo=function(t,e){var r;for(r=this.t-1;r>=0;--r)e[r+t]=this[r];for(r=t-1;r>=0;--r)e[r]=0;e.t=this.t+t,e.s=this.s},F.prototype.drShiftTo=function(t,e){for(var r=t;r=0;--r)e[r+s+1]=this[r]>>i|a,a=(this[r]&o)<=0;--r)e[r]=0;e[s]=a,e.t=this.t+s+1,e.s=this.s,e.clamp()},F.prototype.rShiftTo=function(t,e){e.s=this.s;var r=Math.floor(t/this.DB);if(r>=this.t)e.t=0;else{var n=t%this.DB,i=this.DB-n,o=(1<>n;for(var s=r+1;s>n;n>0&&(e[this.t-r-1]|=(this.s&o)<>=this.DB;if(t.t>=this.DB;n+=this.s}else{for(n+=this.s;r>=this.DB;n-=t.s}e.s=n<0?-1:0,n<-1?e[r++]=this.DV+n:n>0&&(e[r++]=n),e.t=r,e.clamp()},F.prototype.multiplyTo=function(t,e){var r=this.abs(),n=t.abs(),i=r.t;for(e.t=i+n.t;--i>=0;)e[i]=0;for(i=0;i=0;)t[r]=0;for(r=0;r=e.DV&&(t[r+e.t]-=e.DV,t[r+e.t+1]=1)}t.t>0&&(t[t.t-1]+=e.am(r,e[r],t,2*r,0,1)),t.s=0,t.clamp()},F.prototype.divRemTo=function(t,e,r){var n=t.abs();if(!(n.t<=0)){var i=this.abs();if(i.t0?(n.lShiftTo(u,o),i.lShiftTo(u,r)):(n.copyTo(o),i.copyTo(r));var c=o.t,h=o[c-1];if(0!=h){var l=h*(1<1?o[c-2]>>this.F2:0),f=this.FV/l,g=(1<=0&&(r[r.t++]=1,r.subTo(y,r)),F.ONE.dlShiftTo(c,y),y.subTo(o,o);o.t=0;){var m=r[--p]==h?this.DM:Math.floor(r[p]*f+(r[p-1]+d)*g);if((r[p]+=o.am(0,m,r,v,0,c))0&&r.rShiftTo(u,r),s<0&&F.ZERO.subTo(r,r)}}},F.prototype.invDigit=function(){if(this.t<1)return 0;var t=this[0];if(0==(1&t))return 0;var e=3&t;return(e=(e=(e=(e=e*(2-(15&t)*e)&15)*(2-(255&t)*e)&255)*(2-((65535&t)*e&65535))&65535)*(2-t*e%this.DV)%this.DV)>0?this.DV-e:-e},F.prototype.isEven=function(){return 0==(this.t>0?1&this[0]:this.s)},F.prototype.exp=function(t,e){if(t>4294967295||t<1)return F.ONE;var r=E(),n=E(),i=e.convert(this),o=R(t)-1;for(i.copyTo(r);--o>=0;)if(e.sqrTo(r,n),(t&1<0)e.mulTo(n,i,r);else{var s=r;r=n,n=s}return e.revert(r)},F.prototype.toString=function(t){if(this.s<0)return"-"+this.negate().toString(t);var e;if(16==t)e=4;else if(8==t)e=3;else if(2==t)e=1;else if(32==t)e=5;else{if(4!=t)return this.toRadix(t);e=2}var r,n=(1<0)for(a>a)>0&&(i=!0,o=P(r));s>=0;)a>(a+=this.DB-e)):(r=this[s]>>(a-=e)&n,a<=0&&(a+=this.DB,--s)),r>0&&(i=!0),i&&(o+=P(r));return i?o:"0"},F.prototype.negate=function(){var t=E();return F.ZERO.subTo(this,t),t},F.prototype.abs=function(){return this.s<0?this.negate():this},F.prototype.compareTo=function(t){var e=this.s-t.s;if(0!=e)return e;var r=this.t;if(0!=(e=r-t.t))return this.s<0?-e:e;for(;--r>=0;)if(0!=(e=this[r]-t[r]))return e;return 0},F.prototype.bitLength=function(){return this.t<=0?0:this.DB*(this.t-1)+R(this[this.t-1]^this.s&this.DM)},F.prototype.mod=function(t){var e=E();return this.abs().divRemTo(t,null,e),this.s<0&&e.compareTo(F.ZERO)>0&&t.subTo(e,e),e},F.prototype.modPowInt=function(t,e){var r;return r=t<256||e.isEven()?new I(e):new D(e),this.exp(t,r)},F.ZERO=T(0),F.ONE=T(1),j.prototype.convert=H,j.prototype.revert=H,j.prototype.mulTo=function(t,e,r){t.multiplyTo(e,r)},j.prototype.sqrTo=function(t,e){t.squareTo(e)},K.prototype.convert=function(t){if(t.s<0||t.t>2*this.m.t)return t.mod(this.m);if(t.compareTo(this.m)<0)return t;var e=E();return t.copyTo(e),this.reduce(e),e},K.prototype.revert=function(t){return t},K.prototype.reduce=function(t){for(t.drShiftTo(this.m.t-1,this.r2),t.t>this.m.t+1&&(t.t=this.m.t+1,t.clamp()),this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3),this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);t.compareTo(this.r2)<0;)t.dAddOffset(1,this.m.t+1);for(t.subTo(this.r2,t);t.compareTo(this.m)>=0;)t.subTo(this.m,t)},K.prototype.mulTo=function(t,e,r){t.multiplyTo(e,r),this.reduce(r)},K.prototype.sqrTo=function(t,e){t.squareTo(e),this.reduce(e)};var V,q,J,W=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997],z=(1<<26)/W[W.length-1];function Y(){this.i=0,this.j=0,this.S=new Array}function G(){!function(t){q[J++]^=255&t,q[J++]^=t>>8&255,q[J++]^=t>>16&255,q[J++]^=t>>24&255,J>=256&&(J-=256)}((new Date).getTime())}if(F.prototype.chunkSize=function(t){return Math.floor(Math.LN2*this.DB/Math.log(t))},F.prototype.toRadix=function(t){if(null==t&&(t=10),0==this.signum()||t<2||t>36)return"0";var e=this.chunkSize(t),r=Math.pow(t,e),n=T(r),i=E(),o=E(),s="";for(this.divRemTo(n,i,o);i.signum()>0;)s=(r+o.intValue()).toString(t).substr(1)+s,i.divRemTo(n,i,o);return o.intValue().toString(t)+s},F.prototype.fromRadix=function(t,e){this.fromInt(0),null==e&&(e=10);for(var r=this.chunkSize(e),n=Math.pow(e,r),i=!1,o=0,s=0,a=0;a=r&&(this.dMultiply(n),this.dAddOffset(s,0),o=0,s=0))}o>0&&(this.dMultiply(Math.pow(e,o)),this.dAddOffset(s,0)),i&&F.ZERO.subTo(this,this)},F.prototype.fromNumber=function(t,e,r){if("number"==typeof e)if(t<2)this.fromInt(1);else for(this.fromNumber(t,r),this.testBit(t-1)||this.bitwiseTo(F.ONE.shiftLeft(t-1),N,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(e);)this.dAddOffset(2,0),this.bitLength()>t&&this.subTo(F.ONE.shiftLeft(t-1),this);else{var n=new Array,i=7&t;n.length=1+(t>>3),e.nextBytes(n),i>0?n[0]&=(1<>=this.DB;if(t.t>=this.DB;n+=this.s}else{for(n+=this.s;r>=this.DB;n+=t.s}e.s=n<0?-1:0,n>0?e[r++]=n:n<-1&&(e[r++]=this.DV+n),e.t=r,e.clamp()},F.prototype.dMultiply=function(t){this[this.t]=this.am(0,t-1,this,0,0,this.t),++this.t,this.clamp()},F.prototype.dAddOffset=function(t,e){if(0!=t){for(;this.t<=e;)this[this.t++]=0;for(this[e]+=t;this[e]>=this.DV;)this[e]-=this.DV,++e>=this.t&&(this[this.t++]=0),++this[e]}},F.prototype.multiplyLowerTo=function(t,e,r){var n,i=Math.min(this.t+t.t,e);for(r.s=0,r.t=i;i>0;)r[--i]=0;for(n=r.t-this.t;i=0;)r[n]=0;for(n=Math.max(e-this.t,0);n0)if(0==e)r=this[0]%t;else for(var n=this.t-1;n>=0;--n)r=(e*r+this[n])%t;return r},F.prototype.millerRabin=function(t){var e=this.subtract(F.ONE),r=e.getLowestSetBit();if(r<=0)return!1;var n=e.shiftRight(r);(t=t+1>>1)>W.length&&(t=W.length);for(var i=E(),o=0;o>24},F.prototype.shortValue=function(){return 0==this.t?this.s:this[0]<<16>>16},F.prototype.signum=function(){return this.s<0?-1:this.t<=0||1==this.t&&this[0]<=0?0:1},F.prototype.toByteArray=function(){var t=this.t,e=new Array;e[0]=this.s;var r,n=this.DB-t*this.DB%8,i=0;if(t-- >0)for(n>n)!=(this.s&this.DM)>>n&&(e[i++]=r|this.s<=0;)n<8?(r=(this[t]&(1<>(n+=this.DB-8)):(r=this[t]>>(n-=8)&255,n<=0&&(n+=this.DB,--t)),0!=(128&r)&&(r|=-256),0==i&&(128&this.s)!=(128&r)&&++i,(i>0||r!=this.s)&&(e[i++]=r);return e},F.prototype.equals=function(t){return 0==this.compareTo(t)},F.prototype.min=function(t){return this.compareTo(t)<0?this:t},F.prototype.max=function(t){return this.compareTo(t)>0?this:t},F.prototype.and=function(t){var e=E();return this.bitwiseTo(t,L,e),e},F.prototype.or=function(t){var e=E();return this.bitwiseTo(t,N,e),e},F.prototype.xor=function(t){var e=E();return this.bitwiseTo(t,U,e),e},F.prototype.andNot=function(t){var e=E();return this.bitwiseTo(t,O,e),e},F.prototype.not=function(){for(var t=E(),e=0;e=this.t?0!=this.s:0!=(this[e]&1<1){var h=E();for(n.sqrTo(s[1],h);a<=c;)s[a]=E(),n.mulTo(h,s[a-2],s[a]),a+=2}var l,f,g=t.t-1,d=!0,p=E();for(i=R(t[g])-1;g>=0;){for(i>=u?l=t[g]>>i-u&c:(l=(t[g]&(1<0&&(l|=t[g-1]>>this.DB+i-u)),a=r;0==(1&l);)l>>=1,--a;if((i-=a)<0&&(i+=this.DB,--g),d)s[l].copyTo(o),d=!1;else{for(;a>1;)n.sqrTo(o,p),n.sqrTo(p,o),a-=2;a>0?n.sqrTo(o,p):(f=o,o=p,p=f),n.mulTo(p,s[l],o)}for(;g>=0&&0==(t[g]&1<=0?(r.subTo(n,r),e&&i.subTo(s,i),o.subTo(a,o)):(n.subTo(r,n),e&&s.subTo(i,s),a.subTo(o,a))}return 0!=n.compareTo(F.ONE)?F.ZERO:a.compareTo(t)>=0?a.subtract(t):a.signum()<0?(a.addTo(t,a),a.signum()<0?a.add(t):a):a},F.prototype.pow=function(t){return this.exp(t,new j)},F.prototype.gcd=function(t){var e=this.s<0?this.negate():this.clone(),r=t.s<0?t.negate():t.clone();if(e.compareTo(r)<0){var n=e;e=r,r=n}var i=e.getLowestSetBit(),o=r.getLowestSetBit();if(o<0)return e;for(i0&&(e.rShiftTo(o,e),r.rShiftTo(o,r));e.signum()>0;)(i=e.getLowestSetBit())>0&&e.rShiftTo(i,e),(i=r.getLowestSetBit())>0&&r.rShiftTo(i,r),e.compareTo(r)>=0?(e.subTo(r,e),e.rShiftTo(1,e)):(r.subTo(e,r),r.rShiftTo(1,r));return o>0&&r.lShiftTo(o,r),r},F.prototype.isProbablePrime=function(t){var e,r=this.abs();if(1==r.t&&r[0]<=W[W.length-1]){for(e=0;e>>8,q[J++]=255&$;J=0,G()}function tt(){if(null==V){for(G(),(V=new Y).init(q),J=0;J>24,(16711680&i)>>16,(65280&i)>>8,255&i]))),i+=1;return n}function it(){this.n=null,this.e=0,this.d=null,this.p=null,this.q=null,this.dmp1=null,this.dmq1=null,this.coeff=null}function ot(t,e){this.x=e,this.q=t}function st(t,e,r,n){this.curve=t,this.x=e,this.y=r,this.z=null==n?F.ONE:n,this.zinv=null}function at(t,e,r){this.q=t,this.a=this.fromBigInteger(e),this.b=this.fromBigInteger(r),this.infinity=new st(this,null,null)}et.prototype.nextBytes=function(t){var e;for(e=0;e0&&e.length>0))throw"Invalid RSA public key";this.n=rt(t,16),this.e=parseInt(e,16)}},it.prototype.encrypt=function(t){var e=function(t,e){if(e=0&&e>0;){var i=t.charCodeAt(n--);i<128?r[--e]=i:i>127&&i<2048?(r[--e]=63&i|128,r[--e]=i>>6|192):(r[--e]=63&i|128,r[--e]=i>>6&63|128,r[--e]=i>>12|224)}r[--e]=0;for(var o=new et,s=new Array;e>2;){for(s[0]=0;0==s[0];)o.nextBytes(s);r[--e]=s[0]}return r[--e]=2,r[--e]=0,new F(r)}(t,this.n.bitLength()+7>>3);if(null==e)return null;var r=this.doPublic(e);if(null==r)return null;var n=r.toString(16);return 0==(1&n.length)?n:"0"+n},it.prototype.encryptOAEP=function(t,e,r){var n=function(t,e,r,n){var i=ct.crypto.MessageDigest,o=ct.crypto.Util,s=null;if(r||(r="sha1"),"string"==typeof r&&(s=i.getCanonicalAlgName(r),n=i.getHashLength(s),r=function(t){return Ft(o.hashHex(Et(t),s))}),t.length+2*n+2>e)throw"Message too long for RSA";var a,u="";for(a=0;a>3,e,r);if(null==n)return null;var i=this.doPublic(n);if(null==i)return null;var o=i.toString(16);return 0==(1&o.length)?o:"0"+o},it.prototype.type="RSA",ot.prototype.equals=function(t){return t==this||this.q.equals(t.q)&&this.x.equals(t.x)},ot.prototype.toBigInteger=function(){return this.x},ot.prototype.negate=function(){return new ot(this.q,this.x.negate().mod(this.q))},ot.prototype.add=function(t){return new ot(this.q,this.x.add(t.toBigInteger()).mod(this.q))},ot.prototype.subtract=function(t){return new ot(this.q,this.x.subtract(t.toBigInteger()).mod(this.q))},ot.prototype.multiply=function(t){return new ot(this.q,this.x.multiply(t.toBigInteger()).mod(this.q))},ot.prototype.square=function(){return new ot(this.q,this.x.square().mod(this.q))},ot.prototype.divide=function(t){return new ot(this.q,this.x.multiply(t.toBigInteger().modInverse(this.q)).mod(this.q))},st.prototype.getX=function(){return null==this.zinv&&(this.zinv=this.z.modInverse(this.curve.q)),this.curve.fromBigInteger(this.x.toBigInteger().multiply(this.zinv).mod(this.curve.q))},st.prototype.getY=function(){return null==this.zinv&&(this.zinv=this.z.modInverse(this.curve.q)),this.curve.fromBigInteger(this.y.toBigInteger().multiply(this.zinv).mod(this.curve.q))},st.prototype.equals=function(t){return t==this||(this.isInfinity()?t.isInfinity():t.isInfinity()?this.isInfinity():!!t.y.toBigInteger().multiply(this.z).subtract(this.y.toBigInteger().multiply(t.z)).mod(this.curve.q).equals(F.ZERO)&&t.x.toBigInteger().multiply(this.z).subtract(this.x.toBigInteger().multiply(t.z)).mod(this.curve.q).equals(F.ZERO))},st.prototype.isInfinity=function(){return null==this.x&&null==this.y||this.z.equals(F.ZERO)&&!this.y.toBigInteger().equals(F.ZERO)},st.prototype.negate=function(){return new st(this.curve,this.x,this.y.negate(),this.z)},st.prototype.add=function(t){if(this.isInfinity())return t;if(t.isInfinity())return this;var e=t.y.toBigInteger().multiply(this.z).subtract(this.y.toBigInteger().multiply(t.z)).mod(this.curve.q),r=t.x.toBigInteger().multiply(this.z).subtract(this.x.toBigInteger().multiply(t.z)).mod(this.curve.q);if(F.ZERO.equals(r))return F.ZERO.equals(e)?this.twice():this.curve.getInfinity();var n=new F("3"),i=this.x.toBigInteger(),o=this.y.toBigInteger(),s=(t.x.toBigInteger(),t.y.toBigInteger(),r.square()),a=s.multiply(r),u=i.multiply(s),c=e.square().multiply(this.z),h=c.subtract(u.shiftLeft(1)).multiply(t.z).subtract(a).multiply(r).mod(this.curve.q),l=u.multiply(n).multiply(e).subtract(o.multiply(a)).subtract(c.multiply(e)).multiply(t.z).add(e.multiply(a)).mod(this.curve.q),f=a.multiply(this.z).multiply(t.z).mod(this.curve.q);return new st(this.curve,this.curve.fromBigInteger(h),this.curve.fromBigInteger(l),f)},st.prototype.twice=function(){if(this.isInfinity())return this;if(0==this.y.toBigInteger().signum())return this.curve.getInfinity();var t=new F("3"),e=this.x.toBigInteger(),r=this.y.toBigInteger(),n=r.multiply(this.z),i=n.multiply(r).mod(this.curve.q),o=this.curve.a.toBigInteger(),s=e.square().multiply(t);F.ZERO.equals(o)||(s=s.add(this.z.square().multiply(o)));var a=(s=s.mod(this.curve.q)).square().subtract(e.shiftLeft(3).multiply(i)).shiftLeft(1).multiply(n).mod(this.curve.q),u=s.multiply(t).multiply(e).subtract(i.shiftLeft(1)).shiftLeft(2).multiply(i).subtract(s.square().multiply(s)).mod(this.curve.q),c=n.square().multiply(n).shiftLeft(3).mod(this.curve.q);return new st(this.curve,this.curve.fromBigInteger(a),this.curve.fromBigInteger(u),c)},st.prototype.multiply=function(t){if(this.isInfinity())return this;if(0==t.signum())return this.curve.getInfinity();var e,r=t,n=r.multiply(new F("3")),i=this.negate(),o=this,s=this.curve.q.subtract(t),a=s.multiply(new F("3")),u=new st(this.curve,this.x,this.y),c=u.negate();for(e=n.bitLength()-2;e>0;--e){o=o.twice();var h=n.testBit(e);h!=r.testBit(e)&&(o=o.add(h?this:i))}for(e=a.bitLength()-2;e>0;--e){u=u.twice();var l=a.testBit(e);l!=s.testBit(e)&&(u=u.add(l?u:c))}return o},st.prototype.multiplyTwo=function(t,e,r){var n;n=t.bitLength()>r.bitLength()?t.bitLength()-1:r.bitLength()-1;for(var i=this.curve.getInfinity(),o=this.add(e);n>=0;)i=i.twice(),t.testBit(n)?i=r.testBit(n)?i.add(o):i.add(this):r.testBit(n)&&(i=i.add(e)),--n;return i},at.prototype.getQ=function(){return this.q},at.prototype.getA=function(){return this.a},at.prototype.getB=function(){return this.b},at.prototype.equals=function(t){return t==this||this.q.equals(t.q)&&this.a.equals(t.a)&&this.b.equals(t.b)},at.prototype.getInfinity=function(){return this.infinity},at.prototype.fromBigInteger=function(t){return new ot(this.q,t)},at.prototype.decodePointHex=function(t){switch(parseInt(t.substr(0,2),16)){case 0:return this.infinity;case 2:case 3:default:return null;case 4:case 6:case 7:var e=(t.length-2)/2,r=t.substr(2,e),n=t.substr(e+2,e);return new st(this,this.fromBigInteger(new F(r,16)),this.fromBigInteger(new F(n,16)))}},ot.prototype.getByteLength=function(){return Math.floor((this.toBigInteger().bitLength()+7)/8)},st.prototype.getEncoded=function(t){var e=function(t,e){var r=t.toByteArrayUnsigned();if(er.length;)r.unshift(0);return r},r=this.getX().toBigInteger(),n=this.getY().toBigInteger(),i=e(r,32);return t?n.isEven()?i.unshift(2):i.unshift(3):(i.unshift(4),i=i.concat(e(n,32))),i},st.decodeFrom=function(t,e){e[0];var r=e.length-1,n=e.slice(1,1+r/2),i=e.slice(1+r/2,1+r);n.unshift(0),i.unshift(0);var o=new F(n),s=new F(i);return new st(t,t.fromBigInteger(o),t.fromBigInteger(s))},st.decodeFromHex=function(t,e){e.substr(0,2);var r=e.length-2,n=e.substr(2,r/2),i=e.substr(2+r/2,r/2),o=new F(n,16),s=new F(i,16);return new st(t,t.fromBigInteger(o),t.fromBigInteger(s))},st.prototype.add2D=function(t){if(this.isInfinity())return t;if(t.isInfinity())return this;if(this.x.equals(t.x))return this.y.equals(t.y)?this.twice():this.curve.getInfinity();var e=t.x.subtract(this.x),r=t.y.subtract(this.y).divide(e),n=r.square().subtract(this.x).subtract(t.x),i=r.multiply(this.x.subtract(n)).subtract(this.y);return new st(this.curve,n,i)},st.prototype.twice2D=function(){if(this.isInfinity())return this;if(0==this.y.toBigInteger().signum())return this.curve.getInfinity();var t=this.curve.fromBigInteger(F.valueOf(2)),e=this.curve.fromBigInteger(F.valueOf(3)),r=this.x.square().multiply(e).add(this.curve.a).divide(this.y.multiply(t)),n=r.square().subtract(this.x.multiply(t)),i=r.multiply(this.x.subtract(n)).subtract(this.y);return new st(this.curve,n,i)},st.prototype.multiply2D=function(t){if(this.isInfinity())return this;if(0==t.signum())return this.curve.getInfinity();var e,r=t,n=r.multiply(new F("3")),i=this.negate(),o=this;for(e=n.bitLength()-2;e>0;--e){o=o.twice();var s=n.testBit(e);s!=r.testBit(e)&&(o=o.add2D(s?this:i))}return o},st.prototype.isOnCurve=function(){var t=this.getX().toBigInteger(),e=this.getY().toBigInteger(),r=this.curve.getA().toBigInteger(),n=this.curve.getB().toBigInteger(),i=this.curve.getQ(),o=e.multiply(e).mod(i),s=t.multiply(t).multiply(t).add(r.multiply(t)).add(n).mod(i);return o.equals(s)},st.prototype.toString=function(){return"("+this.getX().toBigInteger().toString()+","+this.getY().toBigInteger().toString()+")"},st.prototype.validate=function(){var t=this.curve.getQ();if(this.isInfinity())throw new Error("Point is at infinity.");var e=this.getX().toBigInteger(),r=this.getY().toBigInteger();if(e.compareTo(F.ONE)<0||e.compareTo(t.subtract(F.ONE))>0)throw new Error("x coordinate out of bounds");if(r.compareTo(F.ONE)<0||r.compareTo(t.subtract(F.ONE))>0)throw new Error("y coordinate out of bounds");if(!this.isOnCurve())throw new Error("Point is not on the curve.");if(this.multiply(t).isInfinity())throw new Error("Point is not a scalar multiple of G.");return!0};var ut=function(){var t=new RegExp('(?:false|true|null|[\\{\\}\\[\\]]|(?:-?\\b(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?\\b)|(?:"(?:[^\\0-\\x08\\x0a-\\x1f"\\\\]|\\\\(?:["/\\\\bfnrt]|u[0-9A-Fa-f]{4}))*"))',"g"),e=new RegExp("\\\\(?:([^u])|u(.{4}))","g"),n={'"':'"',"/":"/","\\":"\\",b:"\b",f:"\f",n:"\n",r:"\r",t:"\t"};function i(t,e,r){return e?n[e]:String.fromCharCode(parseInt(r,16))}var o=new String(""),s=Object.hasOwnProperty;return function(n,a){var u,c,h=n.match(t),l=h[0],f=!1;"{"===l?u={}:"["===l?u=[]:(u=[],f=!0);for(var g=[u],d=1-f,p=h.length;d=0;)delete i[o[h]]}return a.call(e,n,i)}({"":u},"")),u}}();void 0!==ct&&ct||(e.KJUR=ct={}),void 0!==ct.asn1&&ct.asn1||(ct.asn1={}),ct.asn1.ASN1Util=new function(){this.integerToByteHex=function(t){var e=t.toString(16);return e.length%2==1&&(e="0"+e),e},this.bigIntToMinTwosComplementsHex=function(t){var e=t.toString(16);if("-"!=e.substr(0,1))e.length%2==1?e="0"+e:e.match(/^[0-7]/)||(e="00"+e);else{var r=e.substr(1).length;r%2==1?r+=1:e.match(/^[0-7]/)||(r+=2);for(var n="",i=0;i15)throw"ASN.1 length too long to represent by 8x: n = "+t.toString(16);return(128+r).toString(16)+e},this.getEncodedHex=function(){return(null==this.hTLV||this.isModified)&&(this.hV=this.getFreshValueHex(),this.hL=this.getLengthHexFromValue(),this.hTLV=this.hT+this.hL+this.hV,this.isModified=!1),this.hTLV},this.getValueHex=function(){return this.getEncodedHex(),this.hV},this.getFreshValueHex=function(){return""},this.setByParam=function(t){this.params=t},null!=t&&null!=t.tlv&&(this.hTLV=t.tlv,this.isModified=!1)},ct.asn1.DERAbstractString=function(t){ct.asn1.DERAbstractString.superclass.constructor.call(this),this.getString=function(){return this.s},this.setString=function(t){this.hTLV=null,this.isModified=!0,this.s=t,this.hV=wt(this.s).toLowerCase()},this.setStringHex=function(t){this.hTLV=null,this.isModified=!0,this.s=null,this.hV=t},this.getFreshValueHex=function(){return this.hV},void 0!==t&&("string"==typeof t?this.setString(t):void 0!==t.str?this.setString(t.str):void 0!==t.hex&&this.setStringHex(t.hex))},o.lang.extend(ct.asn1.DERAbstractString,ct.asn1.ASN1Object),ct.asn1.DERAbstractTime=function(t){ct.asn1.DERAbstractTime.superclass.constructor.call(this),this.localDateToUTC=function(t){var e=t.getTime()+6e4*t.getTimezoneOffset();return new Date(e)},this.formatDate=function(t,e,r){var n=this.zeroPadding,i=this.localDateToUTC(t),o=String(i.getFullYear());"utc"==e&&(o=o.substr(2,2));var s=o+n(String(i.getMonth()+1),2)+n(String(i.getDate()),2)+n(String(i.getHours()),2)+n(String(i.getMinutes()),2)+n(String(i.getSeconds()),2);if(!0===r){var a=i.getMilliseconds();if(0!=a){var u=n(String(a),3);s=s+"."+(u=u.replace(/[0]+$/,""))}}return s+"Z"},this.zeroPadding=function(t,e){return t.length>=e?t:new Array(e-t.length+1).join("0")+t},this.getString=function(){return this.s},this.setString=function(t){this.hTLV=null,this.isModified=!0,this.s=t,this.hV=vt(t)},this.setByDateValue=function(t,e,r,n,i,o){var s=new Date(Date.UTC(t,e-1,r,n,i,o,0));this.setByDate(s)},this.getFreshValueHex=function(){return this.hV}},o.lang.extend(ct.asn1.DERAbstractTime,ct.asn1.ASN1Object),ct.asn1.DERAbstractStructured=function(t){ct.asn1.DERAbstractString.superclass.constructor.call(this),this.setByASN1ObjectArray=function(t){this.hTLV=null,this.isModified=!0,this.asn1Array=t},this.appendASN1Object=function(t){this.hTLV=null,this.isModified=!0,this.asn1Array.push(t)},this.asn1Array=new Array,void 0!==t&&void 0!==t.array&&(this.asn1Array=t.array)},o.lang.extend(ct.asn1.DERAbstractStructured,ct.asn1.ASN1Object),ct.asn1.DERBoolean=function(t){ct.asn1.DERBoolean.superclass.constructor.call(this),this.hT="01",this.hTLV=0==t?"010100":"0101ff"},o.lang.extend(ct.asn1.DERBoolean,ct.asn1.ASN1Object),ct.asn1.DERInteger=function(t){ct.asn1.DERInteger.superclass.constructor.call(this),this.hT="02",this.setByBigInteger=function(t){this.hTLV=null,this.isModified=!0,this.hV=ct.asn1.ASN1Util.bigIntToMinTwosComplementsHex(t)},this.setByInteger=function(t){var e=new F(String(t),10);this.setByBigInteger(e)},this.setValueHex=function(t){this.hV=t},this.getFreshValueHex=function(){return this.hV},void 0!==t&&(void 0!==t.bigint?this.setByBigInteger(t.bigint):void 0!==t.int?this.setByInteger(t.int):"number"==typeof t?this.setByInteger(t):void 0!==t.hex&&this.setValueHex(t.hex))},o.lang.extend(ct.asn1.DERInteger,ct.asn1.ASN1Object),ct.asn1.DERBitString=function(t){if(void 0!==t&&void 0!==t.obj){var e=ct.asn1.ASN1Util.newObject(t.obj);t.hex="00"+e.getEncodedHex()}ct.asn1.DERBitString.superclass.constructor.call(this),this.hT="03",this.setHexValueIncludingUnusedBits=function(t){this.hTLV=null,this.isModified=!0,this.hV=t},this.setUnusedBitsAndHexValue=function(t,e){if(t<0||7i.length&&(i=n[r]);return(t=t.replace(i,"::")).slice(1,-1)}function Ut(t){var e="malformed hex value";if(!t.match(/^([0-9A-Fa-f][0-9A-Fa-f]){1,}$/))throw e;if(8!=t.length)return 32==t.length?Nt(t):t;try{return parseInt(t.substr(0,2),16)+"."+parseInt(t.substr(2,2),16)+"."+parseInt(t.substr(4,2),16)+"."+parseInt(t.substr(6,2),16)}catch(t){throw e}}function Ot(t){for(var e=encodeURIComponent(t),r="",n=0;n"7"?"00"+t:t}ft.getLblen=function(t,e){if("8"!=t.substr(e+2,1))return 1;var r=parseInt(t.substr(e+3,1));return 0==r?-1:0=n)break}return s},ft.getNthChildIdx=function(t,e,r){return ft.getChildIdx(t,e)[r]},ft.getIdxbyList=function(t,e,r,n){var i,o,s=ft;return 0==r.length?void 0!==n&&t.substr(e,2)!==n?-1:e:(i=r.shift())>=(o=s.getChildIdx(t,e)).length?-1:s.getIdxbyList(t,o[i],r,n)},ft.getIdxbyListEx=function(t,e,r,n){var i,o,s=ft;if(0==r.length)return void 0!==n&&t.substr(e,2)!==n?-1:e;i=r.shift(),o=s.getChildIdx(t,e);for(var a=0,u=0;u=t.length?null:i.getTLV(t,o)},ft.getTLVbyListEx=function(t,e,r,n){var i=ft,o=i.getIdxbyListEx(t,e,r,n);return-1==o?null:i.getTLV(t,o)},ft.getVbyList=function(t,e,r,n,i){var o,s,a=ft;return-1==(o=a.getIdxbyList(t,e,r,n))||o>=t.length?null:(s=a.getV(t,o),!0===i&&(s=s.substr(2)),s)},ft.getVbyListEx=function(t,e,r,n,i){var o,s,a=ft;return-1==(o=a.getIdxbyListEx(t,e,r,n))?null:(s=a.getV(t,o),"03"==t.substr(o,2)&&!1!==i&&(s=s.substr(2)),s)},ft.getInt=function(t,e,r){null==r&&(r=-1);try{var n=t.substr(e,2);if("02"!=n&&"03"!=n)return r;var i=ft.getV(t,e);return"02"==n?parseInt(i,16):function(t){try{var e=t.substr(0,2);if("00"==e)return parseInt(t.substr(2),16);var r=parseInt(e,16),n=t.substr(2),i=parseInt(n,16).toString(2);return"0"==i&&(i="00000000"),i=i.slice(0,0-r),parseInt(i,2)}catch(t){return-1}}(i)}catch(t){return r}},ft.getOID=function(t,e,r){null==r&&(r=null);try{return"06"!=t.substr(e,2)?r:function(t){if(!Bt(t))return null;try{var e=[],r=t.substr(0,2),n=parseInt(r,16);e[0]=new String(Math.floor(n/40)),e[1]=new String(n%40);for(var i=t.substr(2),o=[],s=0;s0&&(c=c+"."+a.join(".")),c}catch(t){return null}}(ft.getV(t,e))}catch(t){return r}},ft.getOIDName=function(t,e,r){null==r&&(r=null);try{var n=ft.getOID(t,e,r);if(n==r)return r;var i=ct.asn1.x509.OID.oid2name(n);return""==i?n:i}catch(t){return r}},ft.getString=function(t,e,r){null==r&&(r=null);try{return Ft(ft.getV(t,e))}catch(t){return r}},ft.hextooidstr=function(t){var e=function(t,e){return t.length>=e?t:new Array(e-t.length+1).join("0")+t},r=[],n=t.substr(0,2),i=parseInt(n,16);r[0]=new String(Math.floor(i/40)),r[1]=new String(i%40);for(var o=t.substr(2),s=[],a=0;a0&&(h=h+"."+u.join(".")),h},ft.dump=function(t,e,r,n){var i=ft,o=i.getV,s=i.dump,a=i.getChildIdx,u=t;t instanceof ct.asn1.ASN1Object&&(u=t.getEncodedHex());var c=function(t,e){return t.length<=2*e?t:t.substr(0,e)+"..(total "+t.length/2+"bytes).."+t.substr(t.length-e,e)};void 0===e&&(e={ommit_long_octet:32}),void 0===r&&(r=0),void 0===n&&(n="");var h,l=e.ommit_long_octet;if("01"==(h=u.substr(r,2)))return"00"==(f=o(u,r))?n+"BOOLEAN FALSE\n":n+"BOOLEAN TRUE\n";if("02"==h)return n+"INTEGER "+c(f=o(u,r),l)+"\n";if("03"==h){var f=o(u,r);return i.isASN1HEX(f.substr(2))?(w=n+"BITSTRING, encapsulates\n")+s(f.substr(2),e,0,n+" "):n+"BITSTRING "+c(f,l)+"\n"}if("04"==h)return f=o(u,r),i.isASN1HEX(f)?(w=n+"OCTETSTRING, encapsulates\n")+s(f,e,0,n+" "):n+"OCTETSTRING "+c(f,l)+"\n";if("05"==h)return n+"NULL\n";if("06"==h){var g=o(u,r),d=ct.asn1.ASN1Util.oidHexToInt(g),p=ct.asn1.x509.OID.oid2name(d),v=d.replace(/\./g," ");return""!=p?n+"ObjectIdentifier "+p+" ("+v+")\n":n+"ObjectIdentifier ("+v+")\n"}if("0a"==h)return n+"ENUMERATED "+parseInt(o(u,r))+"\n";if("0c"==h)return n+"UTF8String '"+bt(o(u,r))+"'\n";if("13"==h)return n+"PrintableString '"+bt(o(u,r))+"'\n";if("14"==h)return n+"TeletexString '"+bt(o(u,r))+"'\n";if("16"==h)return n+"IA5String '"+bt(o(u,r))+"'\n";if("17"==h)return n+"UTCTime "+bt(o(u,r))+"\n";if("18"==h)return n+"GeneralizedTime "+bt(o(u,r))+"\n";if("1a"==h)return n+"VisualString '"+bt(o(u,r))+"'\n";if("1e"==h)return n+"BMPString '"+bt(o(u,r))+"'\n";if("30"==h){if("3000"==u.substr(r,4))return n+"SEQUENCE {}\n";w=n+"SEQUENCE\n";var y=e;if((2==(S=a(u,r)).length||3==S.length)&&"06"==u.substr(S[0],2)&&"04"==u.substr(S[S.length-1],2)){p=i.oidname(o(u,S[0]));var m=JSON.parse(JSON.stringify(e));m.x509ExtName=p,y=m}for(var _=0;_31)&&128==(192&r)&&(31&r)==n}catch(t){return!1}},ft.isASN1HEX=function(t){var e=ft;if(t.length%2==1)return!1;var r=e.getVblen(t,0),n=t.substr(0,2),i=e.getL(t,0);return t.length-n.length-i.length==2*r},ft.checkStrictDER=function(t,e,r,n,i){var o=ft;if(void 0===r){if("string"!=typeof t)throw new Error("not hex string");if(t=t.toLowerCase(),!ct.lang.String.isHex(t))throw new Error("not hex string");r=t.length,i=(n=t.length/2)<128?1:Math.ceil(n.toString(16))+1}if(o.getL(t,e).length>2*i)throw new Error("L of TLV too long: idx="+e);var s=o.getVblen(t,e);if(s>n)throw new Error("value of L too long than hex: idx="+e);var a=o.getTLV(t,e),u=a.length-2-o.getL(t,e).length;if(u!==2*s)throw new Error("V string length and L's value not the same:"+u+"/"+2*s);if(0===e&&t.length!=a.length)throw new Error("total length and TLV length unmatch:"+t.length+"!="+a.length);var c=t.substr(e,2);if("02"===c){var h=o.getVidx(t,e);if("00"==t.substr(h,2)&&t.charCodeAt(h+2)<56)throw new Error("not least zeros for DER INTEGER")}if(32&parseInt(c,16)){for(var l=o.getVblen(t,e),f=0,g=o.getChildIdx(t,e),d=0;d=e?t:new Array(e-t.length+1).join(r)+t};void 0!==ct&&ct||(e.KJUR=ct={}),void 0!==ct.crypto&&ct.crypto||(ct.crypto={}),ct.crypto.Util=new function(){this.DIGESTINFOHEAD={sha1:"3021300906052b0e03021a05000414",sha224:"302d300d06096086480165030402040500041c",sha256:"3031300d060960864801650304020105000420",sha384:"3041300d060960864801650304020205000430",sha512:"3051300d060960864801650304020305000440",md2:"3020300c06082a864886f70d020205000410",md5:"3020300c06082a864886f70d020505000410",ripemd160:"3021300906052b2403020105000414"},this.DEFAULTPROVIDER={md5:"cryptojs",sha1:"cryptojs",sha224:"cryptojs",sha256:"cryptojs",sha384:"cryptojs",sha512:"cryptojs",ripemd160:"cryptojs",hmacmd5:"cryptojs",hmacsha1:"cryptojs",hmacsha224:"cryptojs",hmacsha256:"cryptojs",hmacsha384:"cryptojs",hmacsha512:"cryptojs",hmacripemd160:"cryptojs",MD5withRSA:"cryptojs/jsrsa",SHA1withRSA:"cryptojs/jsrsa",SHA224withRSA:"cryptojs/jsrsa",SHA256withRSA:"cryptojs/jsrsa",SHA384withRSA:"cryptojs/jsrsa",SHA512withRSA:"cryptojs/jsrsa",RIPEMD160withRSA:"cryptojs/jsrsa",MD5withECDSA:"cryptojs/jsrsa",SHA1withECDSA:"cryptojs/jsrsa",SHA224withECDSA:"cryptojs/jsrsa",SHA256withECDSA:"cryptojs/jsrsa",SHA384withECDSA:"cryptojs/jsrsa",SHA512withECDSA:"cryptojs/jsrsa",RIPEMD160withECDSA:"cryptojs/jsrsa",SHA1withDSA:"cryptojs/jsrsa",SHA224withDSA:"cryptojs/jsrsa",SHA256withDSA:"cryptojs/jsrsa",MD5withRSAandMGF1:"cryptojs/jsrsa",SHAwithRSAandMGF1:"cryptojs/jsrsa",SHA1withRSAandMGF1:"cryptojs/jsrsa",SHA224withRSAandMGF1:"cryptojs/jsrsa",SHA256withRSAandMGF1:"cryptojs/jsrsa",SHA384withRSAandMGF1:"cryptojs/jsrsa",SHA512withRSAandMGF1:"cryptojs/jsrsa",RIPEMD160withRSAandMGF1:"cryptojs/jsrsa"},this.CRYPTOJSMESSAGEDIGESTNAME={md5:y.algo.MD5,sha1:y.algo.SHA1,sha224:y.algo.SHA224,sha256:y.algo.SHA256,sha384:y.algo.SHA384,sha512:y.algo.SHA512,ripemd160:y.algo.RIPEMD160},this.getDigestInfoHex=function(t,e){if(void 0===this.DIGESTINFOHEAD[e])throw"alg not supported in Util.DIGESTINFOHEAD: "+e;return this.DIGESTINFOHEAD[e]+t},this.getPaddedDigestInfoHex=function(t,e,r){var n=this.getDigestInfoHex(t,e),i=r/4;if(n.length+22>i)throw"key is too short for SigAlg: keylen="+r+","+e;for(var o="0001",s="00"+n,a="",u=i-o.length-s.length,c=0;c=0)return!1;if(r.compareTo(n.ONE)<0||r.compareTo(o)>=0)return!1;var a=r.modInverse(o),u=t.multiply(a).mod(o),c=e.multiply(a).mod(o);return s.multiply(u).add(i.multiply(c)).getX().toBigInteger().mod(o).equals(e)},this.serializeSig=function(t,e){var r=t.toByteArraySigned(),n=e.toByteArraySigned(),i=[];return i.push(2),i.push(r.length),(i=i.concat(r)).push(2),i.push(n.length),(i=i.concat(n)).unshift(i.length),i.unshift(48),i},this.parseSig=function(t){var e;if(48!=t[0])throw new Error("Signature not a valid DERSequence");if(2!=t[e=2])throw new Error("First element in signature must be a DERInteger");var r=t.slice(e+2,e+2+t[e+1]);if(2!=t[e+=2+t[e+1]])throw new Error("Second element in signature must be a DERInteger");var i=t.slice(e+2,e+2+t[e+1]);return e+=2+t[e+1],{r:n.fromByteArrayUnsigned(r),s:n.fromByteArrayUnsigned(i)}},this.parseSigCompact=function(t){if(65!==t.length)throw"Signature has the wrong length";var e=t[0]-27;if(e<0||e>7)throw"Invalid signature type";var r=this.ecparams.n;return{r:n.fromByteArrayUnsigned(t.slice(1,33)).mod(r),s:n.fromByteArrayUnsigned(t.slice(33,65)).mod(r),i:e}},this.readPKCS5PrvKeyHex=function(t){if(!1===h(t))throw new Error("not ASN.1 hex string");var e,r,n;try{e=c(t,0,["[0]",0],"06"),r=c(t,0,[1],"04");try{n=c(t,0,["[1]",0],"03")}catch(t){}}catch(t){throw new Error("malformed PKCS#1/5 plain ECC private key")}if(this.curveName=a(e),void 0===this.curveName)throw"unsupported curve name";this.setNamedCurve(this.curveName),this.setPublicKeyHex(n),this.setPrivateKeyHex(r),this.isPublic=!1},this.readPKCS8PrvKeyHex=function(t){if(!1===h(t))throw new e("not ASN.1 hex string");var r,n,i;try{c(t,0,[1,0],"06"),r=c(t,0,[1,1],"06"),n=c(t,0,[2,0,1],"04");try{i=c(t,0,[2,0,"[1]",0],"03")}catch(t){}}catch(t){throw new e("malformed PKCS#8 plain ECC private key")}if(this.curveName=a(r),void 0===this.curveName)throw new e("unsupported curve name");this.setNamedCurve(this.curveName),this.setPublicKeyHex(i),this.setPrivateKeyHex(n),this.isPublic=!1},this.readPKCS8PubKeyHex=function(t){if(!1===h(t))throw new e("not ASN.1 hex string");var r,n;try{c(t,0,[0,0],"06"),r=c(t,0,[0,1],"06"),n=c(t,0,[1],"03")}catch(t){throw new e("malformed PKCS#8 ECC public key")}if(this.curveName=a(r),null===this.curveName)throw new e("unsupported curve name");this.setNamedCurve(this.curveName),this.setPublicKeyHex(n)},this.readCertPubKeyHex=function(t,r){if(!1===h(t))throw new e("not ASN.1 hex string");var n,i;try{n=c(t,0,[0,5,0,1],"06"),i=c(t,0,[0,5,1],"03")}catch(t){throw new e("malformed X.509 certificate ECC public key")}if(this.curveName=a(n),null===this.curveName)throw new e("unsupported curve name");this.setNamedCurve(this.curveName),this.setPublicKeyHex(i)},void 0!==t&&void 0!==t.curve&&(this.curveName=t.curve),void 0===this.curveName&&(this.curveName="secp256r1"),this.setNamedCurve(this.curveName),void 0!==t&&(void 0!==t.prv&&this.setPrivateKeyHex(t.prv),void 0!==t.pub&&this.setPublicKeyHex(t.pub))},ct.crypto.ECDSA.parseSigHex=function(t){var e=ct.crypto.ECDSA.parseSigHexInHexRS(t);return{r:new F(e.r,16),s:new F(e.s,16)}},ct.crypto.ECDSA.parseSigHexInHexRS=function(t){var e=ft,r=e.getChildIdx,n=e.getV;if(e.checkStrictDER(t,0),"30"!=t.substr(0,2))throw new Error("signature is not a ASN.1 sequence");var i=r(t,0);if(2!=i.length)throw new Error("signature shall have two elements");var o=i[0],s=i[1];if("02"!=t.substr(o,2))throw new Error("1st item not ASN.1 integer");if("02"!=t.substr(s,2))throw new Error("2nd item not ASN.1 integer");return{r:n(t,o),s:n(t,s)}},ct.crypto.ECDSA.asn1SigToConcatSig=function(t){var e=ct.crypto.ECDSA.parseSigHexInHexRS(t),r=e.r,n=e.s;if("00"==r.substr(0,2)&&r.length%32==2&&(r=r.substr(2)),"00"==n.substr(0,2)&&n.length%32==2&&(n=n.substr(2)),r.length%32==30&&(r="00"+r),n.length%32==30&&(n="00"+n),r.length%32!=0)throw"unknown ECDSA sig r length error";if(n.length%32!=0)throw"unknown ECDSA sig s length error";return r+n},ct.crypto.ECDSA.concatSigToASN1Sig=function(t){if(t.length/2*8%128!=0)throw"unknown ECDSA concatinated r-s sig length error";var e=t.substr(0,t.length/2),r=t.substr(t.length/2);return ct.crypto.ECDSA.hexRSSigToASN1Sig(e,r)},ct.crypto.ECDSA.hexRSSigToASN1Sig=function(t,e){var r=new F(t,16),n=new F(e,16);return ct.crypto.ECDSA.biRSSigToASN1Sig(r,n)},ct.crypto.ECDSA.biRSSigToASN1Sig=function(t,e){var r=ct.asn1,n=new r.DERInteger({bigint:t}),i=new r.DERInteger({bigint:e});return new r.DERSequence({array:[n,i]}).getEncodedHex()},ct.crypto.ECDSA.getName=function(t){return"2b8104001f"===t?"secp192k1":"2a8648ce3d030107"===t?"secp256r1":"2b8104000a"===t?"secp256k1":"2b81040021"===t?"secp224r1":"2b81040022"===t?"secp384r1":-1!=="|secp256r1|NIST P-256|P-256|prime256v1|".indexOf(t)?"secp256r1":-1!=="|secp256k1|".indexOf(t)?"secp256k1":-1!=="|secp224r1|NIST P-224|P-224|".indexOf(t)?"secp224r1":-1!=="|secp384r1|NIST P-384|P-384|".indexOf(t)?"secp384r1":null},void 0!==ct&&ct||(e.KJUR=ct={}),void 0!==ct.crypto&&ct.crypto||(ct.crypto={}),ct.crypto.ECParameterDB=new function(){var t={},e={};function r(t){return new F(t,16)}this.getByName=function(r){var n=r;if(void 0!==e[n]&&(n=e[r]),void 0!==t[n])return t[n];throw"unregistered EC curve name: "+n},this.regist=function(n,i,o,s,a,u,c,h,l,f,g,d){t[n]={};var p=r(o),v=r(s),y=r(a),m=r(u),_=r(c),S=new at(p,v,y),w=S.decodePointHex("04"+h+l);t[n].name=n,t[n].keylen=i,t[n].curve=S,t[n].G=w,t[n].n=m,t[n].h=_,t[n].oid=g,t[n].info=d;for(var b=0;b=2*a)break}var l={};return l.keyhex=u.substr(0,2*i[t].keylen),l.ivhex=u.substr(2*i[t].keylen,2*i[t].ivlen),l},a=function(t,e,r,n){var o=y.enc.Base64.parse(t),s=y.enc.Hex.stringify(o);return(0,i[e].proc)(s,r,n)};return{version:"1.0.0",parsePKCS5PEM:function(t){return o(t)},getKeyAndUnusedIvByPasscodeAndIvsalt:function(t,e,r){return s(t,e,r)},decryptKeyB64:function(t,e,r,n){return a(t,e,r,n)},getDecryptedKeyHex:function(t,e){var r=o(t),n=(r.type,r.cipher),i=r.ivsalt,u=r.data,c=s(n,e,i).keyhex;return a(u,n,c,i)},getEncryptedPKCS5PEMFromPrvKeyHex:function(t,e,r,n,o){var a="";if(void 0!==n&&null!=n||(n="AES-256-CBC"),void 0===i[n])throw"KEYUTIL unsupported algorithm: "+n;void 0!==o&&null!=o||(o=function(t){var e=y.lib.WordArray.random(t);return y.enc.Hex.stringify(e)}(i[n].ivlen).toUpperCase());var u=function(t,e,r,n){return(0,i[e].eproc)(t,r,n)}(e,n,s(n,r,o).keyhex,o);return a="-----BEGIN "+t+" PRIVATE KEY-----\r\n",a+="Proc-Type: 4,ENCRYPTED\r\n",a+="DEK-Info: "+n+","+o+"\r\n",a+="\r\n",(a+=u.replace(/(.{64})/g,"$1\r\n"))+"\r\n-----END "+t+" PRIVATE KEY-----\r\n"},parseHexOfEncryptedPKCS8:function(t){var e=ft,r=e.getChildIdx,n=e.getV,i={},o=r(t,0);if(2!=o.length)throw"malformed format: SEQUENCE(0).items != 2: "+o.length;i.ciphertext=n(t,o[1]);var s=r(t,o[0]);if(2!=s.length)throw"malformed format: SEQUENCE(0.0).items != 2: "+s.length;if("2a864886f70d01050d"!=n(t,s[0]))throw"this only supports pkcs5PBES2";var a=r(t,s[1]);if(2!=s.length)throw"malformed format: SEQUENCE(0.0.1).items != 2: "+a.length;var u=r(t,a[1]);if(2!=u.length)throw"malformed format: SEQUENCE(0.0.1.1).items != 2: "+u.length;if("2a864886f70d0307"!=n(t,u[0]))throw"this only supports TripleDES";i.encryptionSchemeAlg="TripleDES",i.encryptionSchemeIV=n(t,u[1]);var c=r(t,a[0]);if(2!=c.length)throw"malformed format: SEQUENCE(0.0.1.0).items != 2: "+c.length;if("2a864886f70d01050c"!=n(t,c[0]))throw"this only supports pkcs5PBKDF2";var h=r(t,c[1]);if(h.length<2)throw"malformed format: SEQUENCE(0.0.1.0.1).items < 2: "+h.length;i.pbkdf2Salt=n(t,h[0]);var l=n(t,h[1]);try{i.pbkdf2Iter=parseInt(l,16)}catch(t){throw"malformed format pbkdf2Iter: "+l}return i},getPBKDF2KeyHexFromParam:function(t,e){var r=y.enc.Hex.parse(t.pbkdf2Salt),n=t.pbkdf2Iter,i=y.PBKDF2(e,r,{keySize:6,iterations:n});return y.enc.Hex.stringify(i)},_getPlainPKCS8HexFromEncryptedPKCS8PEM:function(t,e){var r=Ct(t,"ENCRYPTED PRIVATE KEY"),n=this.parseHexOfEncryptedPKCS8(r),i=Ht.getPBKDF2KeyHexFromParam(n,e),o={};o.ciphertext=y.enc.Hex.parse(n.ciphertext);var s=y.enc.Hex.parse(i),a=y.enc.Hex.parse(n.encryptionSchemeIV),u=y.TripleDES.decrypt(o,s,{iv:a});return y.enc.Hex.stringify(u)},getKeyFromEncryptedPKCS8PEM:function(t,e){var r=this._getPlainPKCS8HexFromEncryptedPKCS8PEM(t,e);return this.getKeyFromPlainPrivatePKCS8Hex(r)},parsePlainPrivatePKCS8Hex:function(t){var e=ft,r=e.getChildIdx,n=e.getV,i={algparam:null};if("30"!=t.substr(0,2))throw"malformed plain PKCS8 private key(code:001)";var o=r(t,0);if(3!=o.length)throw"malformed plain PKCS8 private key(code:002)";if("30"!=t.substr(o[1],2))throw"malformed PKCS8 private key(code:003)";var s=r(t,o[1]);if(2!=s.length)throw"malformed PKCS8 private key(code:004)";if("06"!=t.substr(s[0],2))throw"malformed PKCS8 private key(code:005)";if(i.algoid=n(t,s[0]),"06"==t.substr(s[1],2)&&(i.algparam=n(t,s[1])),"04"!=t.substr(o[2],2))throw"malformed PKCS8 private key(code:006)";return i.keyidx=e.getVidx(t,o[2]),i},getKeyFromPlainPrivatePKCS8PEM:function(t){var e=Ct(t,"PRIVATE KEY");return this.getKeyFromPlainPrivatePKCS8Hex(e)},getKeyFromPlainPrivatePKCS8Hex:function(t){var e,r=this.parsePlainPrivatePKCS8Hex(t);if("2a864886f70d010101"==r.algoid)e=new it;else if("2a8648ce380401"==r.algoid)e=new ct.crypto.DSA;else{if("2a8648ce3d0201"!=r.algoid)throw"unsupported private key algorithm";e=new ct.crypto.ECDSA}return e.readPKCS8PrvKeyHex(t),e},_getKeyFromPublicPKCS8Hex:function(t){var e,r=ft.getVbyList(t,0,[0,0],"06");if("2a864886f70d010101"===r)e=new it;else if("2a8648ce380401"===r)e=new ct.crypto.DSA;else{if("2a8648ce3d0201"!==r)throw"unsupported PKCS#8 public key hex";e=new ct.crypto.ECDSA}return e.readPKCS8PubKeyHex(t),e},parsePublicRawRSAKeyHex:function(t){var e=ft,r=e.getChildIdx,n=e.getV,i={};if("30"!=t.substr(0,2))throw"malformed RSA key(code:001)";var o=r(t,0);if(2!=o.length)throw"malformed RSA key(code:002)";if("02"!=t.substr(o[0],2))throw"malformed RSA key(code:003)";if(i.n=n(t,o[0]),"02"!=t.substr(o[1],2))throw"malformed RSA key(code:004)";return i.e=n(t,o[1]),i},parsePublicPKCS8Hex:function(t){var e=ft,r=e.getChildIdx,n=e.getV,i={algparam:null},o=r(t,0);if(2!=o.length)throw"outer DERSequence shall have 2 elements: "+o.length;var s=o[0];if("30"!=t.substr(s,2))throw"malformed PKCS8 public key(code:001)";var a=r(t,s);if(2!=a.length)throw"malformed PKCS8 public key(code:002)";if("06"!=t.substr(a[0],2))throw"malformed PKCS8 public key(code:003)";if(i.algoid=n(t,a[0]),"06"==t.substr(a[1],2)?i.algparam=n(t,a[1]):"30"==t.substr(a[1],2)&&(i.algparam={},i.algparam.p=e.getVbyList(t,a[1],[0],"02"),i.algparam.q=e.getVbyList(t,a[1],[1],"02"),i.algparam.g=e.getVbyList(t,a[1],[2],"02")),"03"!=t.substr(o[1],2))throw"malformed PKCS8 public key(code:004)";return i.key=n(t,o[1]).substr(2),i}}}();Ht.getKey=function(t,e,r){var n,i=(y=ft).getChildIdx,o=(y.getV,y.getVbyList),s=ct.crypto,a=s.ECDSA,u=s.DSA,c=it,h=Ct,l=Ht;if(void 0!==c&&t instanceof c)return t;if(void 0!==a&&t instanceof a)return t;if(void 0!==u&&t instanceof u)return t;if(void 0!==t.curve&&void 0!==t.xy&&void 0===t.d)return new a({pub:t.xy,curve:t.curve});if(void 0!==t.curve&&void 0!==t.d)return new a({prv:t.d,curve:t.curve});if(void 0===t.kty&&void 0!==t.n&&void 0!==t.e&&void 0===t.d)return(C=new c).setPublic(t.n,t.e),C;if(void 0===t.kty&&void 0!==t.n&&void 0!==t.e&&void 0!==t.d&&void 0!==t.p&&void 0!==t.q&&void 0!==t.dp&&void 0!==t.dq&&void 0!==t.co&&void 0===t.qi)return(C=new c).setPrivateEx(t.n,t.e,t.d,t.p,t.q,t.dp,t.dq,t.co),C;if(void 0===t.kty&&void 0!==t.n&&void 0!==t.e&&void 0!==t.d&&void 0===t.p)return(C=new c).setPrivate(t.n,t.e,t.d),C;if(void 0!==t.p&&void 0!==t.q&&void 0!==t.g&&void 0!==t.y&&void 0===t.x)return(C=new u).setPublic(t.p,t.q,t.g,t.y),C;if(void 0!==t.p&&void 0!==t.q&&void 0!==t.g&&void 0!==t.y&&void 0!==t.x)return(C=new u).setPrivate(t.p,t.q,t.g,t.y,t.x),C;if("RSA"===t.kty&&void 0!==t.n&&void 0!==t.e&&void 0===t.d)return(C=new c).setPublic(St(t.n),St(t.e)),C;if("RSA"===t.kty&&void 0!==t.n&&void 0!==t.e&&void 0!==t.d&&void 0!==t.p&&void 0!==t.q&&void 0!==t.dp&&void 0!==t.dq&&void 0!==t.qi)return(C=new c).setPrivateEx(St(t.n),St(t.e),St(t.d),St(t.p),St(t.q),St(t.dp),St(t.dq),St(t.qi)),C;if("RSA"===t.kty&&void 0!==t.n&&void 0!==t.e&&void 0!==t.d)return(C=new c).setPrivate(St(t.n),St(t.e),St(t.d)),C;if("EC"===t.kty&&void 0!==t.crv&&void 0!==t.x&&void 0!==t.y&&void 0===t.d){var f=(P=new a({curve:t.crv})).ecparams.keylen/4,g="04"+("0000000000"+St(t.x)).slice(-f)+("0000000000"+St(t.y)).slice(-f);return P.setPublicKeyHex(g),P}if("EC"===t.kty&&void 0!==t.crv&&void 0!==t.x&&void 0!==t.y&&void 0!==t.d){f=(P=new a({curve:t.crv})).ecparams.keylen/4,g="04"+("0000000000"+St(t.x)).slice(-f)+("0000000000"+St(t.y)).slice(-f);var d=("0000000000"+St(t.d)).slice(-f);return P.setPublicKeyHex(g),P.setPrivateKeyHex(d),P}if("pkcs5prv"===r){var p,v=t,y=ft;if(9===(p=i(v,0)).length)(C=new c).readPKCS5PrvKeyHex(v);else if(6===p.length)(C=new u).readPKCS5PrvKeyHex(v);else{if(!(p.length>2&&"04"===v.substr(p[1],2)))throw"unsupported PKCS#1/5 hexadecimal key";(C=new a).readPKCS5PrvKeyHex(v)}return C}if("pkcs8prv"===r)return l.getKeyFromPlainPrivatePKCS8Hex(t);if("pkcs8pub"===r)return l._getKeyFromPublicPKCS8Hex(t);if("x509pub"===r)return Wt.getPublicKeyFromCertHex(t);if(-1!=t.indexOf("-END CERTIFICATE-",0)||-1!=t.indexOf("-END X509 CERTIFICATE-",0)||-1!=t.indexOf("-END TRUSTED CERTIFICATE-",0))return Wt.getPublicKeyFromCertPEM(t);if(-1!=t.indexOf("-END PUBLIC KEY-")){var m=Ct(t,"PUBLIC KEY");return l._getKeyFromPublicPKCS8Hex(m)}if(-1!=t.indexOf("-END RSA PRIVATE KEY-")&&-1==t.indexOf("4,ENCRYPTED")){var _=h(t,"RSA PRIVATE KEY");return l.getKey(_,null,"pkcs5prv")}if(-1!=t.indexOf("-END DSA PRIVATE KEY-")&&-1==t.indexOf("4,ENCRYPTED")){var S=o(n=h(t,"DSA PRIVATE KEY"),0,[1],"02"),w=o(n,0,[2],"02"),b=o(n,0,[3],"02"),E=o(n,0,[4],"02"),x=o(n,0,[5],"02");return(C=new u).setPrivate(new F(S,16),new F(w,16),new F(b,16),new F(E,16),new F(x,16)),C}if(-1!=t.indexOf("-END EC PRIVATE KEY-")&&-1==t.indexOf("4,ENCRYPTED"))return _=h(t,"EC PRIVATE KEY"),l.getKey(_,null,"pkcs5prv");if(-1!=t.indexOf("-END PRIVATE KEY-"))return l.getKeyFromPlainPrivatePKCS8PEM(t);if(-1!=t.indexOf("-END RSA PRIVATE KEY-")&&-1!=t.indexOf("4,ENCRYPTED")){var A=l.getDecryptedKeyHex(t,e),k=new it;return k.readPKCS5PrvKeyHex(A),k}if(-1!=t.indexOf("-END EC PRIVATE KEY-")&&-1!=t.indexOf("4,ENCRYPTED")){var P,C=o(n=l.getDecryptedKeyHex(t,e),0,[1],"04"),T=o(n,0,[2,0],"06"),R=o(n,0,[3,0],"03").substr(2);if(void 0===ct.crypto.OID.oidhex2name[T])throw"undefined OID(hex) in KJUR.crypto.OID: "+T;return(P=new a({curve:ct.crypto.OID.oidhex2name[T]})).setPublicKeyHex(R),P.setPrivateKeyHex(C),P.isPublic=!1,P}if(-1!=t.indexOf("-END DSA PRIVATE KEY-")&&-1!=t.indexOf("4,ENCRYPTED"))return S=o(n=l.getDecryptedKeyHex(t,e),0,[1],"02"),w=o(n,0,[2],"02"),b=o(n,0,[3],"02"),E=o(n,0,[4],"02"),x=o(n,0,[5],"02"),(C=new u).setPrivate(new F(S,16),new F(w,16),new F(b,16),new F(E,16),new F(x,16)),C;if(-1!=t.indexOf("-END ENCRYPTED PRIVATE KEY-"))return l.getKeyFromEncryptedPKCS8PEM(t,e);throw new Error("not supported argument")},Ht.generateKeypair=function(t,e){if("RSA"==t){var r=e;(s=new it).generate(r,"10001"),s.isPrivate=!0,s.isPublic=!0;var n=new it,i=s.n.toString(16),o=s.e.toString(16);return n.setPublic(i,o),n.isPrivate=!1,n.isPublic=!0,(a={}).prvKeyObj=s,a.pubKeyObj=n,a}if("EC"==t){var s,a,u=e,c=new ct.crypto.ECDSA({curve:u}).generateKeyPairHex();return(s=new ct.crypto.ECDSA({curve:u})).setPublicKeyHex(c.ecpubhex),s.setPrivateKeyHex(c.ecprvhex),s.isPrivate=!0,s.isPublic=!1,(n=new ct.crypto.ECDSA({curve:u})).setPublicKeyHex(c.ecpubhex),n.isPrivate=!1,n.isPublic=!0,(a={}).prvKeyObj=s,a.pubKeyObj=n,a}throw"unknown algorithm: "+t},Ht.getPEM=function(t,e,r,n,i,o){var s=ct,a=s.asn1,u=a.DERObjectIdentifier,c=a.DERInteger,h=a.ASN1Util.newObject,l=a.x509.SubjectPublicKeyInfo,f=s.crypto,g=f.DSA,d=f.ECDSA,p=it;function v(t){return h({seq:[{int:0},{int:{bigint:t.n}},{int:t.e},{int:{bigint:t.d}},{int:{bigint:t.p}},{int:{bigint:t.q}},{int:{bigint:t.dmp1}},{int:{bigint:t.dmq1}},{int:{bigint:t.coeff}}]})}function m(t){return h({seq:[{int:1},{octstr:{hex:t.prvKeyHex}},{tag:["a0",!0,{oid:{name:t.curveName}}]},{tag:["a1",!0,{bitstr:{hex:"00"+t.pubKeyHex}}]}]})}function _(t){return h({seq:[{int:0},{int:{bigint:t.p}},{int:{bigint:t.q}},{int:{bigint:t.g}},{int:{bigint:t.y}},{int:{bigint:t.x}}]})}if((void 0!==p&&t instanceof p||void 0!==g&&t instanceof g||void 0!==d&&t instanceof d)&&1==t.isPublic&&(void 0===e||"PKCS8PUB"==e))return Pt(F=new l(t).getEncodedHex(),"PUBLIC KEY");if("PKCS1PRV"==e&&void 0!==p&&t instanceof p&&(void 0===r||null==r)&&1==t.isPrivate)return Pt(F=v(t).getEncodedHex(),"RSA PRIVATE KEY");if("PKCS1PRV"==e&&void 0!==d&&t instanceof d&&(void 0===r||null==r)&&1==t.isPrivate){var S=new u({name:t.curveName}).getEncodedHex(),w=m(t).getEncodedHex(),b="";return(b+=Pt(S,"EC PARAMETERS"))+Pt(w,"EC PRIVATE KEY")}if("PKCS1PRV"==e&&void 0!==g&&t instanceof g&&(void 0===r||null==r)&&1==t.isPrivate)return Pt(F=_(t).getEncodedHex(),"DSA PRIVATE KEY");if("PKCS5PRV"==e&&void 0!==p&&t instanceof p&&void 0!==r&&null!=r&&1==t.isPrivate){var F=v(t).getEncodedHex();return void 0===n&&(n="DES-EDE3-CBC"),this.getEncryptedPKCS5PEMFromPrvKeyHex("RSA",F,r,n,o)}if("PKCS5PRV"==e&&void 0!==d&&t instanceof d&&void 0!==r&&null!=r&&1==t.isPrivate)return F=m(t).getEncodedHex(),void 0===n&&(n="DES-EDE3-CBC"),this.getEncryptedPKCS5PEMFromPrvKeyHex("EC",F,r,n,o);if("PKCS5PRV"==e&&void 0!==g&&t instanceof g&&void 0!==r&&null!=r&&1==t.isPrivate)return F=_(t).getEncodedHex(),void 0===n&&(n="DES-EDE3-CBC"),this.getEncryptedPKCS5PEMFromPrvKeyHex("DSA",F,r,n,o);var E=function(t,e){var r=x(t,e);return new h({seq:[{seq:[{oid:{name:"pkcs5PBES2"}},{seq:[{seq:[{oid:{name:"pkcs5PBKDF2"}},{seq:[{octstr:{hex:r.pbkdf2Salt}},{int:r.pbkdf2Iter}]}]},{seq:[{oid:{name:"des-EDE3-CBC"}},{octstr:{hex:r.encryptionSchemeIV}}]}]}]},{octstr:{hex:r.ciphertext}}]}).getEncodedHex()},x=function(t,e){var r=y.lib.WordArray.random(8),n=y.lib.WordArray.random(8),i=y.PBKDF2(e,r,{keySize:6,iterations:100}),o=y.enc.Hex.parse(t),s=y.TripleDES.encrypt(o,i,{iv:n})+"",a={};return a.ciphertext=s,a.pbkdf2Salt=y.enc.Hex.stringify(r),a.pbkdf2Iter=100,a.encryptionSchemeAlg="DES-EDE3-CBC",a.encryptionSchemeIV=y.enc.Hex.stringify(n),a};if("PKCS8PRV"==e&&null!=p&&t instanceof p&&1==t.isPrivate){var A=v(t).getEncodedHex();return F=h({seq:[{int:0},{seq:[{oid:{name:"rsaEncryption"}},{null:!0}]},{octstr:{hex:A}}]}).getEncodedHex(),void 0===r||null==r?Pt(F,"PRIVATE KEY"):Pt(w=E(F,r),"ENCRYPTED PRIVATE KEY")}if("PKCS8PRV"==e&&void 0!==d&&t instanceof d&&1==t.isPrivate)return A=new h({seq:[{int:1},{octstr:{hex:t.prvKeyHex}},{tag:["a1",!0,{bitstr:{hex:"00"+t.pubKeyHex}}]}]}).getEncodedHex(),F=h({seq:[{int:0},{seq:[{oid:{name:"ecPublicKey"}},{oid:{name:t.curveName}}]},{octstr:{hex:A}}]}).getEncodedHex(),void 0===r||null==r?Pt(F,"PRIVATE KEY"):Pt(w=E(F,r),"ENCRYPTED PRIVATE KEY");if("PKCS8PRV"==e&&void 0!==g&&t instanceof g&&1==t.isPrivate)return A=new c({bigint:t.x}).getEncodedHex(),F=h({seq:[{int:0},{seq:[{oid:{name:"dsa"}},{seq:[{int:{bigint:t.p}},{int:{bigint:t.q}},{int:{bigint:t.g}}]}]},{octstr:{hex:A}}]}).getEncodedHex(),void 0===r||null==r?Pt(F,"PRIVATE KEY"):Pt(w=E(F,r),"ENCRYPTED PRIVATE KEY");throw new Error("unsupported object nor format")},Ht.getKeyFromCSRPEM=function(t){var e=Ct(t,"CERTIFICATE REQUEST");return Ht.getKeyFromCSRHex(e)},Ht.getKeyFromCSRHex=function(t){var e=Ht.parseCSRHex(t);return Ht.getKey(e.p8pubkeyhex,null,"pkcs8pub")},Ht.parseCSRHex=function(t){var e=ft,r=e.getChildIdx,n=e.getTLV,i={},o=t;if("30"!=o.substr(0,2))throw"malformed CSR(code:001)";var s=r(o,0);if(s.length<1)throw"malformed CSR(code:002)";if("30"!=o.substr(s[0],2))throw"malformed CSR(code:003)";var a=r(o,s[0]);if(a.length<3)throw"malformed CSR(code:004)";return i.p8pubkeyhex=n(o,a[2]),i},Ht.getKeyID=function(t){var e=Ht,r=ft;"string"==typeof t&&-1!=t.indexOf("BEGIN ")&&(t=e.getKey(t));var n=Ct(e.getPEM(t)),i=r.getIdxbyList(n,0,[1]),o=r.getV(n,i).substring(2);return ct.crypto.Util.hashHex(o,"sha1")},Ht.getJWKFromKey=function(t){var e={};if(t instanceof it&&t.isPrivate)return e.kty="RSA",e.n=_t(t.n.toString(16)),e.e=_t(t.e.toString(16)),e.d=_t(t.d.toString(16)),e.p=_t(t.p.toString(16)),e.q=_t(t.q.toString(16)),e.dp=_t(t.dmp1.toString(16)),e.dq=_t(t.dmq1.toString(16)),e.qi=_t(t.coeff.toString(16)),e;if(t instanceof it&&t.isPublic)return e.kty="RSA",e.n=_t(t.n.toString(16)),e.e=_t(t.e.toString(16)),e;if(t instanceof ct.crypto.ECDSA&&t.isPrivate){if("P-256"!==(n=t.getShortNISTPCurveName())&&"P-384"!==n)throw"unsupported curve name for JWT: "+n;var r=t.getPublicKeyXYHex();return e.kty="EC",e.crv=n,e.x=_t(r.x),e.y=_t(r.y),e.d=_t(t.prvKeyHex),e}if(t instanceof ct.crypto.ECDSA&&t.isPublic){var n;if("P-256"!==(n=t.getShortNISTPCurveName())&&"P-384"!==n)throw"unsupported curve name for JWT: "+n;return r=t.getPublicKeyXYHex(),e.kty="EC",e.crv=n,e.x=_t(r.x),e.y=_t(r.y),e}throw"not supported key object"},it.getPosArrayOfChildrenFromHex=function(t){return ft.getChildIdx(t,0)},it.getHexValueArrayOfChildrenFromHex=function(t){var e,r=ft.getV,n=r(t,(e=it.getPosArrayOfChildrenFromHex(t))[0]),i=r(t,e[1]),o=r(t,e[2]),s=r(t,e[3]),a=r(t,e[4]),u=r(t,e[5]),c=r(t,e[6]),h=r(t,e[7]),l=r(t,e[8]);return(e=new Array).push(n,i,o,s,a,u,c,h,l),e},it.prototype.readPrivateKeyFromPEMString=function(t){var e=Ct(t),r=it.getHexValueArrayOfChildrenFromHex(e);this.setPrivateEx(r[1],r[2],r[3],r[4],r[5],r[6],r[7],r[8])},it.prototype.readPKCS5PrvKeyHex=function(t){var e=it.getHexValueArrayOfChildrenFromHex(t);this.setPrivateEx(e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8])},it.prototype.readPKCS8PrvKeyHex=function(t){var e,r,n,i,o,s,a,u,c=ft,h=c.getVbyListEx;if(!1===c.isASN1HEX(t))throw new Error("not ASN.1 hex string");try{e=h(t,0,[2,0,1],"02"),r=h(t,0,[2,0,2],"02"),n=h(t,0,[2,0,3],"02"),i=h(t,0,[2,0,4],"02"),o=h(t,0,[2,0,5],"02"),s=h(t,0,[2,0,6],"02"),a=h(t,0,[2,0,7],"02"),u=h(t,0,[2,0,8],"02")}catch(t){throw new Error("malformed PKCS#8 plain RSA private key")}this.setPrivateEx(e,r,n,i,o,s,a,u)},it.prototype.readPKCS5PubKeyHex=function(t){var e=ft,r=e.getV;if(!1===e.isASN1HEX(t))throw new Error("keyHex is not ASN.1 hex string");var n=e.getChildIdx(t,0);if(2!==n.length||"02"!==t.substr(n[0],2)||"02"!==t.substr(n[1],2))throw new Error("wrong hex for PKCS#5 public key");var i=r(t,n[0]),o=r(t,n[1]);this.setPublic(i,o)},it.prototype.readPKCS8PubKeyHex=function(t){var e=ft;if(!1===e.isASN1HEX(t))throw new Error("not ASN.1 hex string");if("06092a864886f70d010101"!==e.getTLVbyListEx(t,0,[0,0]))throw new Error("not PKCS8 RSA public key");var r=e.getTLVbyListEx(t,0,[1,0]);this.readPKCS5PubKeyHex(r)},it.prototype.readCertPubKeyHex=function(t,e){var r,n;(r=new Wt).readCertHex(t),n=r.getPublicKeyHex(),this.readPKCS8PubKeyHex(n)};var Kt=new RegExp("[^0-9a-f]","gi");function Vt(t,e){for(var r="",n=e/4-t.length,i=0;i>24,(16711680&i)>>16,(65280&i)>>8,255&i])))),i+=1;return n}function Jt(t){for(var e in ct.crypto.Util.DIGESTINFOHEAD){var r=ct.crypto.Util.DIGESTINFOHEAD[e],n=r.length;if(t.substring(0,n)==r)return[e,t.substring(n)]}return[]}function Wt(t){var e,r=ft,n=r.getChildIdx,i=r.getV,o=r.getTLV,s=r.getVbyList,a=r.getVbyListEx,u=r.getTLVbyList,c=r.getTLVbyListEx,h=r.getIdxbyList,l=r.getIdxbyListEx,f=r.getVidx,g=r.oidname,d=r.hextooidstr,p=Wt,v=Ct;try{e=ct.asn1.x509.AlgorithmIdentifier.PSSNAME2ASN1TLV}catch(t){}this.HEX2STAG={"0c":"utf8",13:"prn",16:"ia5","1a":"vis","1e":"bmp"},this.hex=null,this.version=0,this.foffset=0,this.aExtInfo=null,this.getVersion=function(){return null===this.hex||0!==this.version?this.version:"a003020102"!==u(this.hex,0,[0,0])?(this.version=1,this.foffset=-1,1):(this.version=3,3)},this.getSerialNumberHex=function(){return a(this.hex,0,[0,0],"02")},this.getSignatureAlgorithmField=function(){var t=c(this.hex,0,[0,1]);return this.getAlgorithmIdentifierName(t)},this.getAlgorithmIdentifierName=function(t){for(var r in e)if(t===e[r])return r;return g(a(t,0,[0],"06"))},this.getIssuer=function(){return this.getX500Name(this.getIssuerHex())},this.getIssuerHex=function(){return u(this.hex,0,[0,3+this.foffset],"30")},this.getIssuerString=function(){return p.hex2dn(this.getIssuerHex())},this.getSubject=function(){return this.getX500Name(this.getSubjectHex())},this.getSubjectHex=function(){return u(this.hex,0,[0,5+this.foffset],"30")},this.getSubjectString=function(){return p.hex2dn(this.getSubjectHex())},this.getNotBefore=function(){var t=s(this.hex,0,[0,4+this.foffset,0]);return t=t.replace(/(..)/g,"%$1"),decodeURIComponent(t)},this.getNotAfter=function(){var t=s(this.hex,0,[0,4+this.foffset,1]);return t=t.replace(/(..)/g,"%$1"),decodeURIComponent(t)},this.getPublicKeyHex=function(){return r.getTLVbyList(this.hex,0,[0,6+this.foffset],"30")},this.getPublicKeyIdx=function(){return h(this.hex,0,[0,6+this.foffset],"30")},this.getPublicKeyContentIdx=function(){var t=this.getPublicKeyIdx();return h(this.hex,t,[1,0],"30")},this.getPublicKey=function(){return Ht.getKey(this.getPublicKeyHex(),null,"pkcs8pub")},this.getSignatureAlgorithmName=function(){var t=u(this.hex,0,[1],"30");return this.getAlgorithmIdentifierName(t)},this.getSignatureValueHex=function(){return s(this.hex,0,[2],"03",!0)},this.verifySignature=function(t){var e=this.getSignatureAlgorithmField(),r=this.getSignatureValueHex(),n=u(this.hex,0,[0],"30"),i=new ct.crypto.Signature({alg:e});return i.init(t),i.updateHex(n),i.verify(r)},this.parseExt=function(t){var e,o,a;if(void 0===t){if(a=this.hex,3!==this.version)return-1;e=h(a,0,[0,7,0],"30"),o=n(a,e)}else{a=Ct(t);var u=h(a,0,[0,3,0,0],"06");if("2a864886f70d01090e"!=i(a,u))return void(this.aExtInfo=new Array);e=h(a,0,[0,3,0,1,0],"30"),o=n(a,e),this.hex=a}this.aExtInfo=new Array;for(var c=0;c1){var a=o(t,s[1]),u=this.getGeneralName(a);null!=u.uri&&(i.uri=u.uri)}if(s.length>2){var c=o(t,s[2]);"0101ff"==c&&(i.reqauth=!0),"010100"==c&&(i.reqauth=!1)}return i},this.getX500NameRule=function(t){for(var e=null,r=[],n=0;n0&&(t.ext=this.getExtParamArray()),t.sighex=this.getSignatureValueHex(),t},this.getExtParamArray=function(t){null==t&&-1!=l(this.hex,0,[0,"[3]"])&&(t=c(this.hex,0,[0,"[3]",0],"30"));for(var e=[],r=n(t,0),i=0;i0&&(c=new Array(r),(new et).nextBytes(c),c=String.fromCharCode.apply(String,c));var h=Ft(u(Et("\0\0\0\0\0\0\0\0"+i+c))),l=[];for(n=0;n>8*a-s&255;for(d[0]&=~p,n=0;nthis.n.bitLength())return 0;var n=Jt(this.doPublic(r).toString(16).replace(/^1f+00/,""));if(0==n.length)return!1;var i=n[0];return n[1]==function(t){return ct.crypto.Util.hashString(t,i)}(t)},it.prototype.verifyWithMessageHash=function(t,e){if(e.length!=Math.ceil(this.n.bitLength()/4))return!1;var r=rt(e,16);if(r.bitLength()>this.n.bitLength())return 0;var n=Jt(this.doPublic(r).toString(16).replace(/^1f+00/,""));return 0!=n.length&&(n[0],n[1]==t)},it.prototype.verifyPSS=function(t,e,r,n){var i=function(t){return ct.crypto.Util.hashHex(t,r)}(Et(t));return void 0===n&&(n=-1),this.verifyWithMessageHashPSS(i,e,r,n)},it.prototype.verifyWithMessageHashPSS=function(t,e,r,n){if(e.length!=Math.ceil(this.n.bitLength()/4))return!1;var i,o=new F(e,16),s=function(t){return ct.crypto.Util.hashHex(t,r)},a=Ft(t),u=a.length,c=this.n.bitLength()-1,h=Math.ceil(c/8);if(-1===n||void 0===n)n=u;else if(-2===n)n=h-u-2;else if(n<-2)throw new Error("invalid salt length");if(h>8*h-c&255;if(0!=(f.charCodeAt(0)&d))throw new Error("bits beyond keysize not zero");var p=qt(g,f.length,s),v=[];for(i=0;i0&&-1==(":"+n.join(":")+":").indexOf(":"+y+":"))throw"algorithm '"+y+"' not accepted in the list";if("none"!=y&&null===e)throw"key shall be specified to verify.";if("string"==typeof e&&-1!=e.indexOf("-----BEGIN ")&&(e=Ht.getKey(e)),!("RS"!=g&&"PS"!=g||e instanceof i))throw"key shall be a RSAKey obj for RS* and PS* algs";if("ES"==g&&!(e instanceof c))throw"key shall be a ECDSA obj for ES* algs";var m=null;if(void 0===s.jwsalg2sigalg[v.alg])throw"unsupported alg name: "+y;if("none"==(m=s.jwsalg2sigalg[y]))throw"not supported";if("Hmac"==m.substr(0,4)){if(void 0===e)throw"hexadecimal key shall be specified for HMAC";var _=new h({alg:m,pass:e});return _.updateString(d),p==_.doFinal()}if(-1!=m.indexOf("withECDSA")){var S,w=null;try{w=c.concatSigToASN1Sig(p)}catch(t){return!1}return(S=new l({alg:m})).init(e),S.updateString(d),S.verify(w)}return(S=new l({alg:m})).init(e),S.updateString(d),S.verify(p)},ct.jws.JWS.parse=function(t){var e,r,n,i=t.split("."),o={};if(2!=i.length&&3!=i.length)throw"malformed sJWS: wrong number of '.' splitted elements";return e=i[0],r=i[1],3==i.length&&(n=i[2]),o.headerObj=ct.jws.JWS.readSafeJSONString(lt(e)),o.payloadObj=ct.jws.JWS.readSafeJSONString(lt(r)),o.headerPP=JSON.stringify(o.headerObj,null," "),null==o.payloadObj?o.payloadPP=lt(r):o.payloadPP=JSON.stringify(o.payloadObj,null," "),void 0!==n&&(o.sigHex=St(n)),o},ct.jws.JWS.verifyJWT=function(t,e,n){var i=ct.jws,o=i.JWS,s=o.readSafeJSONString,a=o.inArray,u=o.includedArray,c=t.split("."),h=c[0],l=c[1],f=(St(c[2]),s(lt(h))),g=s(lt(l));if(void 0===f.alg)return!1;if(void 0===n.alg)throw"acceptField.alg shall be specified";if(!a(f.alg,n.alg))return!1;if(void 0!==g.iss&&"object"===r(n.iss)&&!a(g.iss,n.iss))return!1;if(void 0!==g.sub&&"object"===r(n.sub)&&!a(g.sub,n.sub))return!1;if(void 0!==g.aud&&"object"===r(n.aud))if("string"==typeof g.aud){if(!a(g.aud,n.aud))return!1}else if("object"==r(g.aud)&&!u(g.aud,n.aud))return!1;var d=i.IntDate.getNow();return void 0!==n.verifyAt&&"number"==typeof n.verifyAt&&(d=n.verifyAt),void 0!==n.gracePeriod&&"number"==typeof n.gracePeriod||(n.gracePeriod=0),!(void 0!==g.exp&&"number"==typeof g.exp&&g.exp+n.gracePeriode.length&&(r=e.length);for(var n=0;n=s())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+s().toString(16)+" bytes");return 0|t}function d(t,e){if(u.isBuffer(t))return t.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(t)||t instanceof ArrayBuffer))return t.byteLength;"string"!=typeof t&&(t=""+t);var r=t.length;if(0===r)return 0;for(var n=!1;;)switch(e){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return H(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return K(t).length;default:if(n)return H(t).length;e=(""+e).toLowerCase(),n=!0}}function p(t,e,r){var n=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(e>>>=0))return"";for(t||(t="utf8");;)switch(t){case"hex":return T(this,e,r);case"utf8":case"utf-8":return A(this,e,r);case"ascii":return P(this,e,r);case"latin1":case"binary":return C(this,e,r);case"base64":return x(this,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return R(this,e,r);default:if(n)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),n=!0}}function v(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function y(t,e,r,n,i){if(0===t.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=i?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(i)return-1;r=t.length-1}else if(r<0){if(!i)return-1;r=0}if("string"==typeof e&&(e=u.from(e,n)),u.isBuffer(e))return 0===e.length?-1:m(t,e,r,n,i);if("number"==typeof e)return e&=255,u.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(t,e,r):Uint8Array.prototype.lastIndexOf.call(t,e,r):m(t,[e],r,n,i);throw new TypeError("val must be string, number or Buffer")}function m(t,e,r,n,i){var o,s=1,a=t.length,u=e.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(t.length<2||e.length<2)return-1;s=2,a/=2,u/=2,r/=2}function c(t,e){return 1===s?t[e]:t.readUInt16BE(e*s)}if(i){var h=-1;for(o=r;oa&&(r=a-u),o=r;o>=0;o--){for(var l=!0,f=0;fi&&(n=i):n=i;var o=e.length;if(o%2!=0)throw new TypeError("Invalid hex string");n>o/2&&(n=o/2);for(var s=0;s>8,i=r%256,o.push(i),o.push(n);return o}(e,t.length-r),t,r,n)}function x(t,e,r){return 0===e&&r===t.length?n.fromByteArray(t):n.fromByteArray(t.slice(e,r))}function A(t,e,r){r=Math.min(t.length,r);for(var n=[],i=e;i239?4:c>223?3:c>191?2:1;if(i+l<=r)switch(l){case 1:c<128&&(h=c);break;case 2:128==(192&(o=t[i+1]))&&(u=(31&c)<<6|63&o)>127&&(h=u);break;case 3:o=t[i+1],s=t[i+2],128==(192&o)&&128==(192&s)&&(u=(15&c)<<12|(63&o)<<6|63&s)>2047&&(u<55296||u>57343)&&(h=u);break;case 4:o=t[i+1],s=t[i+2],a=t[i+3],128==(192&o)&&128==(192&s)&&128==(192&a)&&(u=(15&c)<<18|(63&o)<<12|(63&s)<<6|63&a)>65535&&u<1114112&&(h=u)}null===h?(h=65533,l=1):h>65535&&(h-=65536,n.push(h>>>10&1023|55296),h=56320|1023&h),n.push(h),i+=l}return function(t){var e=t.length;if(e<=k)return String.fromCharCode.apply(String,t);for(var r="",n=0;n0&&(t=this.toString("hex",0,r).match(/.{2}/g).join(" "),this.length>r&&(t+=" ... ")),""},u.prototype.compare=function(t,e,r,n,i){if(!u.isBuffer(t))throw new TypeError("Argument must be a Buffer");if(void 0===e&&(e=0),void 0===r&&(r=t?t.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),e<0||r>t.length||n<0||i>this.length)throw new RangeError("out of range index");if(n>=i&&e>=r)return 0;if(n>=i)return-1;if(e>=r)return 1;if(this===t)return 0;for(var o=(i>>>=0)-(n>>>=0),s=(r>>>=0)-(e>>>=0),a=Math.min(o,s),c=this.slice(n,i),h=t.slice(e,r),l=0;li)&&(r=i),t.length>0&&(r<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var o=!1;;)switch(n){case"hex":return _(this,t,e,r);case"utf8":case"utf-8":return S(this,t,e,r);case"ascii":return w(this,t,e,r);case"latin1":case"binary":return b(this,t,e,r);case"base64":return F(this,t,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return E(this,t,e,r);default:if(o)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),o=!0}},u.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var k=4096;function P(t,e,r){var n="";r=Math.min(t.length,r);for(var i=e;in)&&(r=n);for(var i="",o=e;or)throw new RangeError("Trying to access beyond buffer length")}function D(t,e,r,n,i,o){if(!u.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>i||et.length)throw new RangeError("Index out of range")}function L(t,e,r,n){e<0&&(e=65535+e+1);for(var i=0,o=Math.min(t.length-r,2);i>>8*(n?i:1-i)}function N(t,e,r,n){e<0&&(e=4294967295+e+1);for(var i=0,o=Math.min(t.length-r,4);i>>8*(n?i:3-i)&255}function U(t,e,r,n,i,o){if(r+n>t.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function O(t,e,r,n,o){return o||U(t,0,r,4),i.write(t,e,r,n,23,4),r+4}function B(t,e,r,n,o){return o||U(t,0,r,8),i.write(t,e,r,n,52,8),r+8}u.prototype.slice=function(t,e){var r,n=this.length;if((t=~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),(e=void 0===e?n:~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),e0&&(i*=256);)n+=this[t+--e]*i;return n},u.prototype.readUInt8=function(t,e){return e||I(t,1,this.length),this[t]},u.prototype.readUInt16LE=function(t,e){return e||I(t,2,this.length),this[t]|this[t+1]<<8},u.prototype.readUInt16BE=function(t,e){return e||I(t,2,this.length),this[t]<<8|this[t+1]},u.prototype.readUInt32LE=function(t,e){return e||I(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},u.prototype.readUInt32BE=function(t,e){return e||I(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},u.prototype.readIntLE=function(t,e,r){t|=0,e|=0,r||I(t,e,this.length);for(var n=this[t],i=1,o=0;++o=(i*=128)&&(n-=Math.pow(2,8*e)),n},u.prototype.readIntBE=function(t,e,r){t|=0,e|=0,r||I(t,e,this.length);for(var n=e,i=1,o=this[t+--n];n>0&&(i*=256);)o+=this[t+--n]*i;return o>=(i*=128)&&(o-=Math.pow(2,8*e)),o},u.prototype.readInt8=function(t,e){return e||I(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},u.prototype.readInt16LE=function(t,e){e||I(t,2,this.length);var r=this[t]|this[t+1]<<8;return 32768&r?4294901760|r:r},u.prototype.readInt16BE=function(t,e){e||I(t,2,this.length);var r=this[t+1]|this[t]<<8;return 32768&r?4294901760|r:r},u.prototype.readInt32LE=function(t,e){return e||I(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},u.prototype.readInt32BE=function(t,e){return e||I(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},u.prototype.readFloatLE=function(t,e){return e||I(t,4,this.length),i.read(this,t,!0,23,4)},u.prototype.readFloatBE=function(t,e){return e||I(t,4,this.length),i.read(this,t,!1,23,4)},u.prototype.readDoubleLE=function(t,e){return e||I(t,8,this.length),i.read(this,t,!0,52,8)},u.prototype.readDoubleBE=function(t,e){return e||I(t,8,this.length),i.read(this,t,!1,52,8)},u.prototype.writeUIntLE=function(t,e,r,n){t=+t,e|=0,r|=0,n||D(this,t,e,r,Math.pow(2,8*r)-1,0);var i=1,o=0;for(this[e]=255&t;++o=0&&(o*=256);)this[e+i]=t/o&255;return e+r},u.prototype.writeUInt8=function(t,e,r){return t=+t,e|=0,r||D(this,t,e,1,255,0),u.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),this[e]=255&t,e+1},u.prototype.writeUInt16LE=function(t,e,r){return t=+t,e|=0,r||D(this,t,e,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):L(this,t,e,!0),e+2},u.prototype.writeUInt16BE=function(t,e,r){return t=+t,e|=0,r||D(this,t,e,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):L(this,t,e,!1),e+2},u.prototype.writeUInt32LE=function(t,e,r){return t=+t,e|=0,r||D(this,t,e,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t):N(this,t,e,!0),e+4},u.prototype.writeUInt32BE=function(t,e,r){return t=+t,e|=0,r||D(this,t,e,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):N(this,t,e,!1),e+4},u.prototype.writeIntLE=function(t,e,r,n){if(t=+t,e|=0,!n){var i=Math.pow(2,8*r-1);D(this,t,e,r,i-1,-i)}var o=0,s=1,a=0;for(this[e]=255&t;++o>0)-a&255;return e+r},u.prototype.writeIntBE=function(t,e,r,n){if(t=+t,e|=0,!n){var i=Math.pow(2,8*r-1);D(this,t,e,r,i-1,-i)}var o=r-1,s=1,a=0;for(this[e+o]=255&t;--o>=0&&(s*=256);)t<0&&0===a&&0!==this[e+o+1]&&(a=1),this[e+o]=(t/s>>0)-a&255;return e+r},u.prototype.writeInt8=function(t,e,r){return t=+t,e|=0,r||D(this,t,e,1,127,-128),u.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),t<0&&(t=255+t+1),this[e]=255&t,e+1},u.prototype.writeInt16LE=function(t,e,r){return t=+t,e|=0,r||D(this,t,e,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):L(this,t,e,!0),e+2},u.prototype.writeInt16BE=function(t,e,r){return t=+t,e|=0,r||D(this,t,e,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):L(this,t,e,!1),e+2},u.prototype.writeInt32LE=function(t,e,r){return t=+t,e|=0,r||D(this,t,e,4,2147483647,-2147483648),u.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24):N(this,t,e,!0),e+4},u.prototype.writeInt32BE=function(t,e,r){return t=+t,e|=0,r||D(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),u.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):N(this,t,e,!1),e+4},u.prototype.writeFloatLE=function(t,e,r){return O(this,t,e,!0,r)},u.prototype.writeFloatBE=function(t,e,r){return O(this,t,e,!1,r)},u.prototype.writeDoubleLE=function(t,e,r){return B(this,t,e,!0,r)},u.prototype.writeDoubleBE=function(t,e,r){return B(this,t,e,!1,r)},u.prototype.copy=function(t,e,r,n){if(r||(r=0),n||0===n||(n=this.length),e>=t.length&&(e=t.length),e||(e=0),n>0&&n=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),t.length-e=0;--i)t[i+e]=this[i+r];else if(o<1e3||!u.TYPED_ARRAY_SUPPORT)for(i=0;i>>=0,r=void 0===r?this.length:r>>>0,t||(t=0),"number"==typeof t)for(o=e;o55295&&r<57344){if(!i){if(r>56319){(e-=3)>-1&&o.push(239,191,189);continue}if(s+1===n){(e-=3)>-1&&o.push(239,191,189);continue}i=r;continue}if(r<56320){(e-=3)>-1&&o.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(e-=3)>-1&&o.push(239,191,189);if(i=null,r<128){if((e-=1)<0)break;o.push(r)}else if(r<2048){if((e-=2)<0)break;o.push(r>>6|192,63&r|128)}else if(r<65536){if((e-=3)<0)break;o.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return o}function K(t){return n.toByteArray(function(t){if((t=function(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")}(t).replace(M,"")).length<2)return"";for(;t.length%4!=0;)t+="=";return t}(t))}function V(t,e,r,n){for(var i=0;i=e.length||i>=t.length);++i)e[i+r]=t[i];return i}}).call(this,r(29))},function(t,e){var r;r=function(){return this}();try{r=r||new Function("return this")()}catch(t){"object"==typeof window&&(r=window)}t.exports=r},function(t,e,r){"use strict";e.byteLength=function(t){var e=c(t),r=e[0],n=e[1];return 3*(r+n)/4-n},e.toByteArray=function(t){var e,r,n=c(t),s=n[0],a=n[1],u=new o(function(t,e,r){return 3*(e+r)/4-r}(0,s,a)),h=0,l=a>0?s-4:s;for(r=0;r>16&255,u[h++]=e>>8&255,u[h++]=255&e;return 2===a&&(e=i[t.charCodeAt(r)]<<2|i[t.charCodeAt(r+1)]>>4,u[h++]=255&e),1===a&&(e=i[t.charCodeAt(r)]<<10|i[t.charCodeAt(r+1)]<<4|i[t.charCodeAt(r+2)]>>2,u[h++]=e>>8&255,u[h++]=255&e),u},e.fromByteArray=function(t){for(var e,r=t.length,i=r%3,o=[],s=16383,a=0,u=r-i;au?u:a+s));return 1===i?(e=t[r-1],o.push(n[e>>2]+n[e<<4&63]+"==")):2===i&&(e=(t[r-2]<<8)+t[r-1],o.push(n[e>>10]+n[e>>4&63]+n[e<<2&63]+"=")),o.join("")};for(var n=[],i=[],o="undefined"!=typeof Uint8Array?Uint8Array:Array,s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",a=0,u=s.length;a0)throw new Error("Invalid string. Length must be a multiple of 4");var r=t.indexOf("=");return-1===r&&(r=e),[r,r===e?0:4-r%4]}function h(t,e,r){for(var i,o,s=[],a=e;a>18&63]+n[o>>12&63]+n[o>>6&63]+n[63&o]);return s.join("")}i["-".charCodeAt(0)]=62,i["_".charCodeAt(0)]=63},function(t,e){e.read=function(t,e,r,n,i){var o,s,a=8*i-n-1,u=(1<>1,h=-7,l=r?i-1:0,f=r?-1:1,g=t[e+l];for(l+=f,o=g&(1<<-h)-1,g>>=-h,h+=a;h>0;o=256*o+t[e+l],l+=f,h-=8);for(s=o&(1<<-h)-1,o>>=-h,h+=n;h>0;s=256*s+t[e+l],l+=f,h-=8);if(0===o)o=1-c;else{if(o===u)return s?NaN:1/0*(g?-1:1);s+=Math.pow(2,n),o-=c}return(g?-1:1)*s*Math.pow(2,o-n)},e.write=function(t,e,r,n,i,o){var s,a,u,c=8*o-i-1,h=(1<>1,f=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,g=n?0:o-1,d=n?1:-1,p=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,s=h):(s=Math.floor(Math.log(e)/Math.LN2),e*(u=Math.pow(2,-s))<1&&(s--,u*=2),(e+=s+l>=1?f/u:f*Math.pow(2,1-l))*u>=2&&(s++,u/=2),s+l>=h?(a=0,s=h):s+l>=1?(a=(e*u-1)*Math.pow(2,i),s+=l):(a=e*Math.pow(2,l-1)*Math.pow(2,i),s=0));i>=8;t[r+g]=255&a,g+=d,a/=256,i-=8);for(s=s<0;t[r+g]=255&s,g+=d,s/=256,c-=8);t[r+g-d]|=128*p}},function(t,e){var r={}.toString;t.exports=Array.isArray||function(t){return"[object Array]"==r.call(t)}},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){var e=t.jws,r=t.KeyUtil,i=t.X509,o=t.crypto,s=t.hextob64u,a=t.b64tohex,u=t.AllowedSigningAlgs;return function(){function t(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t)}return t.parseJwt=function t(r){n.Log.debug("JoseUtil.parseJwt");try{var i=e.JWS.parse(r);return{header:i.headerObj,payload:i.payloadObj}}catch(t){n.Log.error(t)}},t.validateJwt=function(e,o,s,u,c,h,l){n.Log.debug("JoseUtil.validateJwt");try{if("RSA"===o.kty)if(o.e&&o.n)o=r.getKey(o);else{if(!o.x5c||!o.x5c.length)return n.Log.error("JoseUtil.validateJwt: RSA key missing key material",o),Promise.reject(new Error("RSA key missing key material"));var f=a(o.x5c[0]);o=i.getPublicKeyFromCertHex(f)}else{if("EC"!==o.kty)return n.Log.error("JoseUtil.validateJwt: Unsupported key type",o&&o.kty),Promise.reject(new Error(o.kty));if(!(o.crv&&o.x&&o.y))return n.Log.error("JoseUtil.validateJwt: EC key missing key material",o),Promise.reject(new Error("EC key missing key material"));o=r.getKey(o)}return t._validateJwt(e,o,s,u,c,h,l)}catch(t){return n.Log.error(t&&t.message||t),Promise.reject("JWT validation failed")}},t.validateJwtAttributes=function(e,r,i,o,s,a){o||(o=0),s||(s=parseInt(Date.now()/1e3));var u=t.parseJwt(e).payload;if(!u.iss)return n.Log.error("JoseUtil._validateJwt: issuer was not provided"),Promise.reject(new Error("issuer was not provided"));if(u.iss!==r)return n.Log.error("JoseUtil._validateJwt: Invalid issuer in token",u.iss),Promise.reject(new Error("Invalid issuer in token: "+u.iss));if(!u.aud)return n.Log.error("JoseUtil._validateJwt: aud was not provided"),Promise.reject(new Error("aud was not provided"));if(!(u.aud===i||Array.isArray(u.aud)&&u.aud.indexOf(i)>=0))return n.Log.error("JoseUtil._validateJwt: Invalid audience in token",u.aud),Promise.reject(new Error("Invalid audience in token: "+u.aud));if(u.azp&&u.azp!==i)return n.Log.error("JoseUtil._validateJwt: Invalid azp in token",u.azp),Promise.reject(new Error("Invalid azp in token: "+u.azp));if(!a){var c=s+o,h=s-o;if(!u.iat)return n.Log.error("JoseUtil._validateJwt: iat was not provided"),Promise.reject(new Error("iat was not provided"));if(c1&&void 0!==arguments[1]?arguments[1]:"#";!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t);var n=i.UrlUtility.parseUrlFragment(e,r);this.error=n.error,this.error_description=n.error_description,this.error_uri=n.error_uri,this.code=n.code,this.state=n.state,this.id_token=n.id_token,this.session_state=n.session_state,this.access_token=n.access_token,this.token_type=n.token_type,this.scope=n.scope,this.profile=void 0,this.expires_in=n.expires_in}return n(t,[{key:"expires_in",get:function(){if(this.expires_at){var t=parseInt(Date.now()/1e3);return this.expires_at-t}},set:function(t){var e=parseInt(t);if("number"==typeof e&&e>0){var r=parseInt(Date.now()/1e3);this.expires_at=r+e}}},{key:"expired",get:function(){var t=this.expires_in;if(void 0!==t)return t<=0}},{key:"scopes",get:function(){return(this.scope||"").split(" ")}},{key:"isOpenIdConnect",get:function(){return this.scopes.indexOf("openid")>=0||!!this.id_token}}]),t}()},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SignoutRequest=void 0;var n=r(0),i=r(3),o=r(9);e.SignoutRequest=function t(e){var r=e.url,s=e.id_token_hint,a=e.post_logout_redirect_uri,u=e.data,c=e.extraQueryParams,h=e.request_type;if(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),!r)throw n.Log.error("SignoutRequest.ctor: No url passed"),new Error("url");for(var l in s&&(r=i.UrlUtility.addQueryParam(r,"id_token_hint",s)),a&&(r=i.UrlUtility.addQueryParam(r,"post_logout_redirect_uri",a),u&&(this.state=new o.State({data:u,request_type:h}),r=i.UrlUtility.addQueryParam(r,"state",this.state.id))),c)r=i.UrlUtility.addQueryParam(r,l,c[l]);this.url=r}},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SignoutResponse=void 0;var n=r(3);e.SignoutResponse=function t(e){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t);var r=n.UrlUtility.parseUrlFragment(e,"?");this.error=r.error,this.error_description=r.error_description,this.error_uri=r.error_uri,this.state=r.state}},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.InMemoryWebStorage=void 0;var n=function(){function t(t,e){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:c.SilentRenewService,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:h.SessionMonitor,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:f.TokenRevocationClient,l=arguments.length>4&&void 0!==arguments[4]?arguments[4]:g.TokenClient,p=arguments.length>5&&void 0!==arguments[5]?arguments[5]:d.JoseUtil;(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")})(this,e),r instanceof s.UserManagerSettings||(r=new s.UserManagerSettings(r));var v=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}(this,t.call(this,r));return v._events=new u.UserManagerEvents(r),v._silentRenewService=new n(v),v.settings.automaticSilentRenew&&(i.Log.debug("UserManager.ctor: automaticSilentRenew is configured, setting up silent renew"),v.startSilentRenew()),v.settings.monitorSession&&(i.Log.debug("UserManager.ctor: monitorSession is configured, setting up session monitor"),v._sessionMonitor=new o(v)),v._tokenRevocationClient=new a(v._settings),v._tokenClient=new l(v._settings),v._joseUtil=p,v}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,t),e.prototype.getUser=function(){var t=this;return this._loadUser().then((function(e){return e?(i.Log.info("UserManager.getUser: user loaded"),t._events.load(e,!1),e):(i.Log.info("UserManager.getUser: user not found in storage"),null)}))},e.prototype.removeUser=function(){var t=this;return this.storeUser(null).then((function(){i.Log.info("UserManager.removeUser: user removed from storage"),t._events.unload()}))},e.prototype.signinRedirect=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(t=Object.assign({},t)).request_type="si:r";var e={useReplaceToNavigate:t.useReplaceToNavigate};return this._signinStart(t,this._redirectNavigator,e).then((function(){i.Log.info("UserManager.signinRedirect: successful")}))},e.prototype.signinRedirectCallback=function(t){return this._signinEnd(t||this._redirectNavigator.url).then((function(t){return t.profile&&t.profile.sub?i.Log.info("UserManager.signinRedirectCallback: successful, signed in sub: ",t.profile.sub):i.Log.info("UserManager.signinRedirectCallback: no sub"),t}))},e.prototype.signinPopup=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(t=Object.assign({},t)).request_type="si:p";var e=t.redirect_uri||this.settings.popup_redirect_uri||this.settings.redirect_uri;return e?(t.redirect_uri=e,t.display="popup",this._signin(t,this._popupNavigator,{startUrl:e,popupWindowFeatures:t.popupWindowFeatures||this.settings.popupWindowFeatures,popupWindowTarget:t.popupWindowTarget||this.settings.popupWindowTarget}).then((function(t){return t&&(t.profile&&t.profile.sub?i.Log.info("UserManager.signinPopup: signinPopup successful, signed in sub: ",t.profile.sub):i.Log.info("UserManager.signinPopup: no sub")),t}))):(i.Log.error("UserManager.signinPopup: No popup_redirect_uri or redirect_uri configured"),Promise.reject(new Error("No popup_redirect_uri or redirect_uri configured")))},e.prototype.signinPopupCallback=function(t){return this._signinCallback(t,this._popupNavigator).then((function(t){return t&&(t.profile&&t.profile.sub?i.Log.info("UserManager.signinPopupCallback: successful, signed in sub: ",t.profile.sub):i.Log.info("UserManager.signinPopupCallback: no sub")),t})).catch((function(t){i.Log.error(t.message)}))},e.prototype.signinSilent=function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return e=Object.assign({},e),this._loadUser().then((function(r){return r&&r.refresh_token?(e.refresh_token=r.refresh_token,t._useRefreshToken(e)):(e.request_type="si:s",e.id_token_hint=e.id_token_hint||t.settings.includeIdTokenInSilentRenew&&r&&r.id_token,r&&t._settings.validateSubOnSilentRenew&&(i.Log.debug("UserManager.signinSilent, subject prior to silent renew: ",r.profile.sub),e.current_sub=r.profile.sub),t._signinSilentIframe(e))}))},e.prototype._useRefreshToken=function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this._tokenClient.exchangeRefreshToken(e).then((function(e){return e?e.access_token?t._loadUser().then((function(r){if(r){var n=Promise.resolve();return e.id_token&&(n=t._validateIdTokenFromTokenRefreshToken(r.profile,e.id_token)),n.then((function(){return i.Log.debug("UserManager._useRefreshToken: refresh token response success"),r.id_token=e.id_token||r.id_token,r.access_token=e.access_token,r.refresh_token=e.refresh_token||r.refresh_token,r.expires_in=e.expires_in,t.storeUser(r).then((function(){return t._events.load(r),r}))}))}return null})):(i.Log.error("UserManager._useRefreshToken: No access token returned from token endpoint"),Promise.reject("No access token returned from token endpoint")):(i.Log.error("UserManager._useRefreshToken: No response returned from token endpoint"),Promise.reject("No response returned from token endpoint"))}))},e.prototype._validateIdTokenFromTokenRefreshToken=function(t,e){var r=this;return this._metadataService.getIssuer().then((function(n){return r.settings.getEpochTime().then((function(o){return r._joseUtil.validateJwtAttributes(e,n,r._settings.client_id,r._settings.clockSkew,o).then((function(e){return e?e.sub!==t.sub?(i.Log.error("UserManager._validateIdTokenFromTokenRefreshToken: sub in id_token does not match current sub"),Promise.reject(new Error("sub in id_token does not match current sub"))):e.auth_time&&e.auth_time!==t.auth_time?(i.Log.error("UserManager._validateIdTokenFromTokenRefreshToken: auth_time in id_token does not match original auth_time"),Promise.reject(new Error("auth_time in id_token does not match original auth_time"))):e.azp&&e.azp!==t.azp?(i.Log.error("UserManager._validateIdTokenFromTokenRefreshToken: azp in id_token does not match original azp"),Promise.reject(new Error("azp in id_token does not match original azp"))):!e.azp&&t.azp?(i.Log.error("UserManager._validateIdTokenFromTokenRefreshToken: azp not in id_token, but present in original id_token"),Promise.reject(new Error("azp not in id_token, but present in original id_token"))):void 0:(i.Log.error("UserManager._validateIdTokenFromTokenRefreshToken: Failed to validate id_token"),Promise.reject(new Error("Failed to validate id_token")))}))}))}))},e.prototype._signinSilentIframe=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.redirect_uri||this.settings.silent_redirect_uri||this.settings.redirect_uri;return e?(t.redirect_uri=e,t.prompt=t.prompt||"none",this._signin(t,this._iframeNavigator,{startUrl:e,silentRequestTimeout:t.silentRequestTimeout||this.settings.silentRequestTimeout}).then((function(t){return t&&(t.profile&&t.profile.sub?i.Log.info("UserManager.signinSilent: successful, signed in sub: ",t.profile.sub):i.Log.info("UserManager.signinSilent: no sub")),t}))):(i.Log.error("UserManager.signinSilent: No silent_redirect_uri configured"),Promise.reject(new Error("No silent_redirect_uri configured")))},e.prototype.signinSilentCallback=function(t){return this._signinCallback(t,this._iframeNavigator).then((function(t){return t&&(t.profile&&t.profile.sub?i.Log.info("UserManager.signinSilentCallback: successful, signed in sub: ",t.profile.sub):i.Log.info("UserManager.signinSilentCallback: no sub")),t}))},e.prototype.signinCallback=function(t){var e=this;return this.readSigninResponseState(t).then((function(r){var n=r.state;return r.response,"si:r"===n.request_type?e.signinRedirectCallback(t):"si:p"===n.request_type?e.signinPopupCallback(t):"si:s"===n.request_type?e.signinSilentCallback(t):Promise.reject(new Error("invalid response_type in state"))}))},e.prototype.signoutCallback=function(t,e){var r=this;return this.readSignoutResponseState(t).then((function(n){var i=n.state,o=n.response;return i?"so:r"===i.request_type?r.signoutRedirectCallback(t):"so:p"===i.request_type?r.signoutPopupCallback(t,e):Promise.reject(new Error("invalid response_type in state")):o}))},e.prototype.querySessionStatus=function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(e=Object.assign({},e)).request_type="si:s";var r=e.redirect_uri||this.settings.silent_redirect_uri||this.settings.redirect_uri;return r?(e.redirect_uri=r,e.prompt="none",e.response_type=e.response_type||this.settings.query_status_response_type,e.scope=e.scope||"openid",e.skipUserInfo=!0,this._signinStart(e,this._iframeNavigator,{startUrl:r,silentRequestTimeout:e.silentRequestTimeout||this.settings.silentRequestTimeout}).then((function(e){return t.processSigninResponse(e.url).then((function(t){if(i.Log.debug("UserManager.querySessionStatus: got signin response"),t.session_state&&t.profile.sub)return i.Log.info("UserManager.querySessionStatus: querySessionStatus success for sub: ",t.profile.sub),{session_state:t.session_state,sub:t.profile.sub,sid:t.profile.sid};i.Log.info("querySessionStatus successful, user not authenticated")})).catch((function(e){if(e.session_state&&t.settings.monitorAnonymousSession&&("login_required"==e.message||"consent_required"==e.message||"interaction_required"==e.message||"account_selection_required"==e.message))return i.Log.info("UserManager.querySessionStatus: querySessionStatus success for anonymous user"),{session_state:e.session_state};throw e}))}))):(i.Log.error("UserManager.querySessionStatus: No silent_redirect_uri configured"),Promise.reject(new Error("No silent_redirect_uri configured")))},e.prototype._signin=function(t,e){var r=this,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this._signinStart(t,e,n).then((function(e){return r._signinEnd(e.url,t)}))},e.prototype._signinStart=function(t,e){var r=this,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return e.prepare(n).then((function(e){return i.Log.debug("UserManager._signinStart: got navigator window handle"),r.createSigninRequest(t).then((function(t){return i.Log.debug("UserManager._signinStart: got signin request"),n.url=t.url,n.id=t.state.id,e.navigate(n)})).catch((function(t){throw e.close&&(i.Log.debug("UserManager._signinStart: Error after preparing navigator, closing navigator window"),e.close()),t}))}))},e.prototype._signinEnd=function(t){var e=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.processSigninResponse(t).then((function(t){i.Log.debug("UserManager._signinEnd: got signin response");var n=new a.User(t);if(r.current_sub){if(r.current_sub!==n.profile.sub)return i.Log.debug("UserManager._signinEnd: current user does not match user returned from signin. sub from signin: ",n.profile.sub),Promise.reject(new Error("login_required"));i.Log.debug("UserManager._signinEnd: current user matches user returned from signin")}return e.storeUser(n).then((function(){return i.Log.debug("UserManager._signinEnd: user stored"),e._events.load(n),n}))}))},e.prototype._signinCallback=function(t,e){i.Log.debug("UserManager._signinCallback");var r="query"===this._settings.response_mode||!this._settings.response_mode&&l.SigninRequest.isCode(this._settings.response_type)?"?":"#";return e.callback(t,void 0,r)},e.prototype.signoutRedirect=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(t=Object.assign({},t)).request_type="so:r";var e=t.post_logout_redirect_uri||this.settings.post_logout_redirect_uri;e&&(t.post_logout_redirect_uri=e);var r={useReplaceToNavigate:t.useReplaceToNavigate};return this._signoutStart(t,this._redirectNavigator,r).then((function(){i.Log.info("UserManager.signoutRedirect: successful")}))},e.prototype.signoutRedirectCallback=function(t){return this._signoutEnd(t||this._redirectNavigator.url).then((function(t){return i.Log.info("UserManager.signoutRedirectCallback: successful"),t}))},e.prototype.signoutPopup=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(t=Object.assign({},t)).request_type="so:p";var e=t.post_logout_redirect_uri||this.settings.popup_post_logout_redirect_uri||this.settings.post_logout_redirect_uri;return t.post_logout_redirect_uri=e,t.display="popup",t.post_logout_redirect_uri&&(t.state=t.state||{}),this._signout(t,this._popupNavigator,{startUrl:e,popupWindowFeatures:t.popupWindowFeatures||this.settings.popupWindowFeatures,popupWindowTarget:t.popupWindowTarget||this.settings.popupWindowTarget}).then((function(){i.Log.info("UserManager.signoutPopup: successful")}))},e.prototype.signoutPopupCallback=function(t,e){return void 0===e&&"boolean"==typeof t&&(e=t,t=null),this._popupNavigator.callback(t,e,"?").then((function(){i.Log.info("UserManager.signoutPopupCallback: successful")}))},e.prototype._signout=function(t,e){var r=this,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this._signoutStart(t,e,n).then((function(t){return r._signoutEnd(t.url)}))},e.prototype._signoutStart=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return arguments[1].prepare(r).then((function(n){return i.Log.debug("UserManager._signoutStart: got navigator window handle"),e._loadUser().then((function(o){return i.Log.debug("UserManager._signoutStart: loaded current user from storage"),(e._settings.revokeAccessTokenOnSignout?e._revokeInternal(o):Promise.resolve()).then((function(){var s=t.id_token_hint||o&&o.id_token;return s&&(i.Log.debug("UserManager._signoutStart: Setting id_token into signout request"),t.id_token_hint=s),e.removeUser().then((function(){return i.Log.debug("UserManager._signoutStart: user removed, creating signout request"),e.createSignoutRequest(t).then((function(t){return i.Log.debug("UserManager._signoutStart: got signout request"),r.url=t.url,t.state&&(r.id=t.state.id),n.navigate(r)}))}))}))})).catch((function(t){throw n.close&&(i.Log.debug("UserManager._signoutStart: Error after preparing navigator, closing navigator window"),n.close()),t}))}))},e.prototype._signoutEnd=function(t){return this.processSignoutResponse(t).then((function(t){return i.Log.debug("UserManager._signoutEnd: got signout response"),t}))},e.prototype.revokeAccessToken=function(){var t=this;return this._loadUser().then((function(e){return t._revokeInternal(e,!0).then((function(r){if(r)return i.Log.debug("UserManager.revokeAccessToken: removing token properties from user and re-storing"),e.access_token=null,e.refresh_token=null,e.expires_at=null,e.token_type=null,t.storeUser(e).then((function(){i.Log.debug("UserManager.revokeAccessToken: user stored"),t._events.load(e)}))}))})).then((function(){i.Log.info("UserManager.revokeAccessToken: access token revoked successfully")}))},e.prototype._revokeInternal=function(t,e){var r=this;if(t){var n=t.access_token,o=t.refresh_token;return this._revokeAccessTokenInternal(n,e).then((function(t){return r._revokeRefreshTokenInternal(o,e).then((function(e){return t||e||i.Log.debug("UserManager.revokeAccessToken: no need to revoke due to no token(s), or JWT format"),t||e}))}))}return Promise.resolve(!1)},e.prototype._revokeAccessTokenInternal=function(t,e){return!t||t.indexOf(".")>=0?Promise.resolve(!1):this._tokenRevocationClient.revoke(t,e).then((function(){return!0}))},e.prototype._revokeRefreshTokenInternal=function(t,e){return t?this._tokenRevocationClient.revoke(t,e,"refresh_token").then((function(){return!0})):Promise.resolve(!1)},e.prototype.startSilentRenew=function(){this._silentRenewService.start()},e.prototype.stopSilentRenew=function(){this._silentRenewService.stop()},e.prototype._loadUser=function(){return this._userStore.get(this._userStoreKey).then((function(t){return t?(i.Log.debug("UserManager._loadUser: user storageString loaded"),a.User.fromStorageString(t)):(i.Log.debug("UserManager._loadUser: no user storageString"),null)}))},e.prototype.storeUser=function(t){if(t){i.Log.debug("UserManager.storeUser: storing user");var e=t.toStorageString();return this._userStore.set(this._userStoreKey,e)}return i.Log.debug("storeUser.storeUser: removing user"),this._userStore.remove(this._userStoreKey)},n(e,[{key:"_redirectNavigator",get:function(){return this.settings.redirectNavigator}},{key:"_popupNavigator",get:function(){return this.settings.popupNavigator}},{key:"_iframeNavigator",get:function(){return this.settings.iframeNavigator}},{key:"_userStore",get:function(){return this.settings.userStore}},{key:"events",get:function(){return this._events}},{key:"_userStoreKey",get:function(){return"user:"+this.settings.authority+":"+this.settings.client_id}}]),e}(o.OidcClient)},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.UserManagerSettings=void 0;var n=function(){function t(t,e){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{},n=r.popup_redirect_uri,i=r.popup_post_logout_redirect_uri,l=r.popupWindowFeatures,f=r.popupWindowTarget,g=r.silent_redirect_uri,d=r.silentRequestTimeout,p=r.automaticSilentRenew,v=void 0!==p&&p,y=r.validateSubOnSilentRenew,m=void 0!==y&&y,_=r.includeIdTokenInSilentRenew,S=void 0===_||_,w=r.monitorSession,b=void 0===w||w,F=r.monitorAnonymousSession,E=void 0!==F&&F,x=r.checkSessionInterval,A=void 0===x?2e3:x,k=r.stopCheckSessionOnError,P=void 0===k||k,C=r.query_status_response_type,T=r.revokeAccessTokenOnSignout,R=void 0!==T&&T,I=r.accessTokenExpiringNotificationTime,D=void 0===I?60:I,L=r.redirectNavigator,N=void 0===L?new o.RedirectNavigator:L,U=r.popupNavigator,O=void 0===U?new s.PopupNavigator:U,B=r.iframeNavigator,M=void 0===B?new a.IFrameNavigator:B,j=r.userStore,H=void 0===j?new u.WebStorageStateStore({store:c.Global.sessionStorage}):j;!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e);var K=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}(this,t.call(this,arguments[0]));return K._popup_redirect_uri=n,K._popup_post_logout_redirect_uri=i,K._popupWindowFeatures=l,K._popupWindowTarget=f,K._silent_redirect_uri=g,K._silentRequestTimeout=d,K._automaticSilentRenew=v,K._validateSubOnSilentRenew=m,K._includeIdTokenInSilentRenew=S,K._accessTokenExpiringNotificationTime=D,K._monitorSession=b,K._monitorAnonymousSession=E,K._checkSessionInterval=A,K._stopCheckSessionOnError=P,C?K._query_status_response_type=C:arguments[0]&&arguments[0].response_type?K._query_status_response_type=h.SigninRequest.isOidc(arguments[0].response_type)?"id_token":"code":K._query_status_response_type="id_token",K._revokeAccessTokenOnSignout=R,K._redirectNavigator=N,K._popupNavigator=O,K._iframeNavigator=M,K._userStore=H,K}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,t),n(e,[{key:"popup_redirect_uri",get:function(){return this._popup_redirect_uri}},{key:"popup_post_logout_redirect_uri",get:function(){return this._popup_post_logout_redirect_uri}},{key:"popupWindowFeatures",get:function(){return this._popupWindowFeatures}},{key:"popupWindowTarget",get:function(){return this._popupWindowTarget}},{key:"silent_redirect_uri",get:function(){return this._silent_redirect_uri}},{key:"silentRequestTimeout",get:function(){return this._silentRequestTimeout}},{key:"automaticSilentRenew",get:function(){return this._automaticSilentRenew}},{key:"validateSubOnSilentRenew",get:function(){return this._validateSubOnSilentRenew}},{key:"includeIdTokenInSilentRenew",get:function(){return this._includeIdTokenInSilentRenew}},{key:"accessTokenExpiringNotificationTime",get:function(){return this._accessTokenExpiringNotificationTime}},{key:"monitorSession",get:function(){return this._monitorSession}},{key:"monitorAnonymousSession",get:function(){return this._monitorAnonymousSession}},{key:"checkSessionInterval",get:function(){return this._checkSessionInterval}},{key:"stopCheckSessionOnError",get:function(){return this._stopCheckSessionOnError}},{key:"query_status_response_type",get:function(){return this._query_status_response_type}},{key:"revokeAccessTokenOnSignout",get:function(){return this._revokeAccessTokenOnSignout}},{key:"redirectNavigator",get:function(){return this._redirectNavigator}},{key:"popupNavigator",get:function(){return this._popupNavigator}},{key:"iframeNavigator",get:function(){return this._iframeNavigator}},{key:"userStore",get:function(){return this._userStore}}]),e}(i.OidcClientSettings)},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.RedirectNavigator=void 0;var n=function(){function t(t,e){for(var r=0;r1&&void 0!==arguments[1])||arguments[1];n.Log.debug("UserManagerEvents.load"),t.prototype.load.call(this,e),r&&this._userLoaded.raise(e)},e.prototype.unload=function(){n.Log.debug("UserManagerEvents.unload"),t.prototype.unload.call(this),this._userUnloaded.raise()},e.prototype.addUserLoaded=function(t){this._userLoaded.addHandler(t)},e.prototype.removeUserLoaded=function(t){this._userLoaded.removeHandler(t)},e.prototype.addUserUnloaded=function(t){this._userUnloaded.addHandler(t)},e.prototype.removeUserUnloaded=function(t){this._userUnloaded.removeHandler(t)},e.prototype.addSilentRenewError=function(t){this._silentRenewError.addHandler(t)},e.prototype.removeSilentRenewError=function(t){this._silentRenewError.removeHandler(t)},e.prototype._raiseSilentRenewError=function(t){n.Log.debug("UserManagerEvents._raiseSilentRenewError",t.message),this._silentRenewError.raise(t)},e.prototype.addUserSignedIn=function(t){this._userSignedIn.addHandler(t)},e.prototype.removeUserSignedIn=function(t){this._userSignedIn.removeHandler(t)},e.prototype._raiseUserSignedIn=function(){n.Log.debug("UserManagerEvents._raiseUserSignedIn"),this._userSignedIn.raise()},e.prototype.addUserSignedOut=function(t){this._userSignedOut.addHandler(t)},e.prototype.removeUserSignedOut=function(t){this._userSignedOut.removeHandler(t)},e.prototype._raiseUserSignedOut=function(){n.Log.debug("UserManagerEvents._raiseUserSignedOut"),this._userSignedOut.raise()},e.prototype.addUserSessionChanged=function(t){this._userSessionChanged.addHandler(t)},e.prototype.removeUserSessionChanged=function(t){this._userSessionChanged.removeHandler(t)},e.prototype._raiseUserSessionChanged=function(){n.Log.debug("UserManagerEvents._raiseUserSessionChanged"),this._userSessionChanged.raise()},e}(i.AccessTokenEvents)},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Timer=void 0;var n=function(){function t(t,e){for(var r=0;r1&&void 0!==arguments[1]?arguments[1]:o.Global.timer,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e);var s=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}(this,t.call(this,r));return s._timer=n,s._nowFunc=i||function(){return Date.now()/1e3},s}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,t),e.prototype.init=function(t){t<=0&&(t=1),t=parseInt(t);var e=this.now+t;if(this.expiration===e&&this._timerHandle)i.Log.debug("Timer.init timer "+this._name+" skipping initialization since already initialized for expiration:",this.expiration);else{this.cancel(),i.Log.debug("Timer.init timer "+this._name+" for duration:",t),this._expiration=e;var r=5;t{"use strict";e.in=e.kO=e.Pd=void 0;const n=r(671);var i,o,s;!function(t){t.Success="Success",t.RequiresRedirect="RequiresRedirect"}(i=e.Pd||(e.Pd={})),function(t){t.Redirect="Redirect",t.Success="Success",t.Failure="Failure",t.OperationCompleted="OperationCompleted"}(o=e.kO||(e.kO={}));class a{constructor(t){this.debug=t.debugEnabled,this.trace=t.traceEnabled}log(t,e){if(t==s.Trace&&this.trace||t==s.Debug&&this.debug){const r=t==s.Trace?"trce":"dbug";console.debug(`${r}: Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationService[0]\n ${e}`)}}}!function(t){t[t.Trace=0]="Trace",t[t.Debug=1]="Debug"}(s=e.in||(e.in={}));class u{constructor(t,e){this._userManager=t,this._logger=e}async trySilentSignIn(){return this._intialSilentSignIn||(this._intialSilentSignIn=(async()=>{try{this.debug("Beginning initial silent sign in."),await this._userManager.signinSilent(),this.debug("Initial silent sign in succeeded.")}catch(t){t instanceof Error&&this.debug(`Initial silent sign in failed '${t.message}'`)}})()),this._intialSilentSignIn}async getUser(){window.parent!==window||window.opener||window.frameElement||!this._userManager.settings.redirect_uri||location.href.startsWith(this._userManager.settings.redirect_uri)||await this.trySilentSignIn();const t=await this._userManager.getUser();return t&&t.profile}async getAccessToken(t){this.trace("getAccessToken",t);const e=await this._userManager.getUser();if(function(t){return!(!t||!t.access_token||t.expired||!t.scopes)}(e)&&function(t,e){const r=new Set(e);if(t&&t.scopes)for(const e of t.scopes)if(!r.has(e))return!1;return!0}(t,e.scopes))return this.debug(`Valid access token present expiring at '${r(e.expires_in).toISOString()}'`),{status:i.Success,token:{grantedScopes:e.scopes,expires:r(e.expires_in),value:e.access_token}};try{const e=t&&t.scopes?{scope:t.scopes.join(" ")}:void 0;this.debug(`Provisioning a token silently for scopes '${null==e?void 0:e.scope}'`),this.trace("userManager.signinSilent",e);const n=await this._userManager.signinSilent(e);this.debug(`Provisioned an access token expiring at '${r(n.expires_in).toISOString()}'`);const o={status:i.Success,token:{grantedScopes:n.scopes,expires:r(n.expires_in),value:n.access_token}};return this.trace("getAccessToken-result",o),o}catch(t){return t instanceof Error&&this.debug(`Failed to provision a token silently '${t.message}'`),{status:i.RequiresRedirect}}function r(t){const e=new Date;return e.setTime(e.getTime()+1e3*t),e}}async signIn(t){if(this.trace("signIn",t),t.interactiveRequest)return this.debug("Interactive sign in starting."),this.signInInteractive(t);try{return this.debug("Silent sign in starting"),await this._userManager.clearStaleState(),await this._userManager.signinSilent(this.createArguments(void 0,t.interactiveRequest)),this.debug("Silent sign in succeeded"),this.success(t.state)}catch(e){return e instanceof Error&&this.debug(`Silent sign in failed, redirecting to the identity provider '${e.message}'.`),await this.signInInteractive(t)}}async signInInteractive(t){this.trace("signInInteractive",t);try{return await this._userManager.clearStaleState(),await this._userManager.signinRedirect(this.createArguments(t.state,t.interactiveRequest)),this.debug("Redirect sign in succeeded"),this.redirect()}catch(t){const e=this.getExceptionMessage(t);return this.debug(`Redirect sign in failed '${e}'.`),this.error(e)}}async completeSignIn(t){this.trace("completeSignIn",t);const e=await this.loginRequired(t),r=await this.stateExists(t);try{const e=await this._userManager.signinCallback(t);return window.self!==window.top?this.operationCompleted():(this.trace("completeSignIn-result",e),this.success(e&&e.state))}catch(t){return e||window.self!==window.top||!r?this.operationCompleted():this.error("There was an error signing in.")}}async signOut(t){this.trace("signOut",t);try{return await this._userManager.metadataService.getEndSessionEndpoint()?(await this._userManager.signoutRedirect(this.createArguments(t.state,t.interactiveRequest)),this.redirect()):(await this._userManager.removeUser(),this.success(t.state))}catch(t){const e=this.getExceptionMessage(t);return this.debug(`Sign out error '${e}'.`),this.error(e)}}async completeSignOut(t){this.trace("completeSignOut",t);try{if(await this.stateExists(t)){const e=await this._userManager.signoutCallback(t);return this.success(e&&e.state)}return this.operationCompleted()}catch(t){const e=this.getExceptionMessage(t);return this.debug(`Complete sign out error '${e}'`),this.error(e)}}getExceptionMessage(t){return function(t){return t&&t.error_description}(t)?t.error_description:function(t){return t&&t.message}(t)?t.message:t.toString()}async stateExists(t){const e=new URLSearchParams(new URL(t).search).get("state");return e&&this._userManager.settings.stateStore?await this._userManager.settings.stateStore.get(e):void 0}async loginRequired(t){const e=new URLSearchParams(new URL(t).search).get("error");return!(!e||!this._userManager.settings.stateStore)&&"login_required"===await this._userManager.settings.stateStore.get(e)}createArguments(t,e){return{useReplaceToNavigate:!0,data:t,scope:(null==e?void 0:e.scopes)?e.scopes.join(" "):void 0,...null==e?void 0:e.additionalRequestParameters}}error(t){return{status:o.Failure,errorMessage:t}}success(t){return{status:o.Success,state:t}}redirect(){return{status:o.Redirect}}operationCompleted(){return{status:o.OperationCompleted}}debug(t){var e;null===(e=this._logger)||void 0===e||e.log(s.Debug,t)}trace(t,e){var r;null===(r=this._logger)||void 0===r||r.log(s.Trace,`${t}: ${JSON.stringify(e)}`)}}class c{static init(t,e){return c._initialized||(c._initialized=c.initializeCore(t,new a(e))),c._initialized}static handleCallback(){return c.initializeCore()}static async initializeCore(t,e){const r=t||c.resolveCachedSettings(),n=c.resolveCachedLoggerOptions(),i=e||n&&new a(n);if(!t&&r&&!e&&i){const t=c.createUserManagerCore(r);window.parent!==window&&!window.opener&&window.frameElement&&t.settings.redirect_uri&&location.href.startsWith(t.settings.redirect_uri)&&(c.instance=new u(t,i),c._initialized=(async()=>{await c.instance.completeSignIn(location.href)})())}else if(t&&e){const r=await c.createUserManager(t);c.instance=new u(r,e),window.sessionStorage.setItem(`${c._infrastructureKey}.CachedJSLoggingOptions`,JSON.stringify({debugEnabled:e.debug,traceEnabled:e.trace}))}}static resolveCachedSettings(){const t=window.sessionStorage.getItem(`${c._infrastructureKey}.CachedAuthSettings`);return t?JSON.parse(t):void 0}static resolveCachedLoggerOptions(){const t=window.sessionStorage.getItem(`${c._infrastructureKey}.CachedJSLoggingOptions`);return t?JSON.parse(t):void 0}static getUser(){return c.instance.getUser()}static getAccessToken(t){return c.instance.getAccessToken(t)}static signIn(t){return c.instance.signIn(t)}static async completeSignIn(t){let e=this._pendingOperations[t];return e||(e=c.instance.completeSignIn(t),await e,delete this._pendingOperations[t]),e}static signOut(t){return c.instance.signOut(t)}static async completeSignOut(t){let e=this._pendingOperations[t];return e||(e=c.instance.completeSignOut(t),await e,delete this._pendingOperations[t]),e}static async createUserManager(t){let e;if(function(t){return t.hasOwnProperty("configurationEndpoint")}(t)){const r=await fetch(t.configurationEndpoint);if(!r.ok)throw new Error(`Could not load settings from '${t.configurationEndpoint}'`);e=await r.json()}else t.scope||(t.scope=t.defaultScopes.join(" ")),null===t.response_type&&delete t.response_type,e=t;return window.sessionStorage.setItem(`${c._infrastructureKey}.CachedAuthSettings`,JSON.stringify(e)),c.createUserManagerCore(e)}static createUserManagerCore(t){const e=new n.UserManager(t);return e.events.addUserSignedOut((async()=>{e.removeUser()})),e}}c._infrastructureKey="Microsoft.AspNetCore.Components.WebAssembly.Authentication",c._pendingOperations={},c.handleCallback(),window.AuthenticationService=c}},e={},function r(n){var i=e[n];if(void 0!==i)return i.exports;var o=e[n]={exports:{}};return t[n].call(o.exports,o,o.exports,r),o.exports}(981); + +var abp=abp||{};(function(){abp.utils=abp.utils||{};abp.domReady=function(n){document.readyState==="complete"||document.readyState==="interactive"?setTimeout(n,1):document.addEventListener("DOMContentLoaded",n)};abp.utils.setCookieValue=function(n,t,i,r,u){var f=encodeURIComponent(n)+"=";t&&(f=f+encodeURIComponent(t));i&&(f=f+"; expires="+i);r&&(f=f+"; path="+r);u&&(f=f+"; secure");document.cookie=f};abp.utils.getCookieValue=function(n){for(var i,r=document.cookie.split("; "),t=0;tfunction(t){if(!t.relatedTarget||t.relatedTarget!==t.delegateTarget&&!t.delegateTarget.contains(t.relatedTarget))return n.call(this,t)};r?r=n(r):i=n(i)}const[e,o,s]=ce(t,i,r),c=se(n),l=c[s]||(c[s]={}),h=he(l,o,e?i:null);if(h){h.oneOff=h.oneOff&&u;return}const a=oe(o,t.replace(hl,"")),f=e?pl(n,i,r):yl(n,i);f.delegationSelector=e?i:null;f.originalHandler=o;f.oneOff=u;f.uidEvent=a;l[a]=f;n.addEventListener(s,f,e)}}function hu(n,t,i,r,u){const f=he(t[i],r,u);f&&(n.removeEventListener(i,f,Boolean(u)),delete t[i][f.uidEvent])}function wl(n,t,i,r){const u=t[i]||{};Object.keys(u).forEach(f=>{if(f.includes(r)){const r=u[f];hu(n,t,i,r.originalHandler,r.delegationSelector)}})}function ae(n){return n=n.replace(cl,""),al[n]||n}function pe(n){return n==="true"?!0:n==="false"?!1:n===Number(n).toString()?Number(n):n===""||n==="null"?null:n}function cu(n){return n.replace(/[A-Z]/g,n=>`-${n.toLowerCase()}`)}function w(n){return n?(n.nodeName||"").toLowerCase():null}function y(n){if(n==null)return window;if(n.toString()!=="[object Window]"){var t=n.ownerDocument;return t?t.defaultView||window:window}return n}function yi(n){var t=y(n).Element;return n instanceof t||n instanceof Element}function c(n){var t=y(n).HTMLElement;return n instanceof t||n instanceof HTMLElement}function wo(n){if(typeof ShadowRoot=="undefined")return!1;var t=y(n).ShadowRoot;return n instanceof t||n instanceof ShadowRoot}function oy(n){var t=n.state;Object.keys(t.elements).forEach(function(n){var u=t.styles[n]||{},r=t.attributes[n]||{},i=t.elements[n];c(i)&&w(i)&&(Object.assign(i.style,u),Object.keys(r).forEach(function(n){var t=r[n];t===!1?i.removeAttribute(n):i.setAttribute(n,t===!0?"":t)}))})}function sy(n){var t=n.state,i={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,i.popper),t.styles=i,t.elements.arrow&&Object.assign(t.elements.arrow.style,i.arrow),function(){Object.keys(t.elements).forEach(function(n){var r=t.elements[n],u=t.attributes[n]||{},f=Object.keys(t.styles.hasOwnProperty(n)?t.styles[n]:i[n]),e=f.reduce(function(n,t){return n[t]="",n},{});c(r)&&w(r)&&(Object.assign(r.style,e),Object.keys(u).forEach(function(n){r.removeAttribute(n)}))})}}function b(n){return n.split("-")[0]}function ri(n){var t=n.getBoundingClientRect(),i=1,r=1;return{width:t.width/i,height:t.height/r,top:t.top/r,right:t.right/i,bottom:t.bottom/r,left:t.left/i,x:t.left/i,y:t.top/r}}function bu(n){var t=ri(n),i=n.offsetWidth,r=n.offsetHeight;return Math.abs(t.width-i)<=1&&(i=t.width),Math.abs(t.height-r)<=1&&(r=t.height),{x:n.offsetLeft,y:n.offsetTop,width:i,height:r}}function bo(n,t){var r=t.getRootNode&&t.getRootNode(),i;if(n.contains(t))return!0;if(r&&wo(r)){i=t;do{if(i&&n.isSameNode(i))return!0;i=i.parentNode||i.host}while(i)}return!1}function nt(n){return y(n).getComputedStyle(n)}function hy(n){return["table","td","th"].indexOf(w(n))>=0}function ut(n){return((yi(n)?n.ownerDocument:n.document)||window.document).documentElement}function ar(n){return w(n)==="html"?n:n.assignedSlot||n.parentNode||(wo(n)?n.host:null)||ut(n)}function ko(n){return!c(n)||nt(n).position==="fixed"?null:n.offsetParent}function cy(n){var r=navigator.userAgent.toLowerCase().indexOf("firefox")!==-1,f=navigator.userAgent.indexOf("Trident")!==-1,u,i,t;if(f&&c(n)&&(u=nt(n),u.position==="fixed"))return null;for(i=ar(n);c(i)&&["html","body"].indexOf(w(i))<0;){if(t=nt(i),t.transform!=="none"||t.perspective!=="none"||t.contain==="paint"||["transform","perspective"].indexOf(t.willChange)!==-1||r&&t.willChange==="filter"||r&&t.filter&&t.filter!=="none")return i;i=i.parentNode}return null}function pi(n){for(var i=y(n),t=ko(n);t&&hy(t)&&nt(t).position==="static";)t=ko(t);return t&&(w(t)==="html"||w(t)==="body"&&nt(t).position==="static")?i:t||cy(n)||i}function ku(n){return["top","bottom"].indexOf(n)>=0?"x":"y"}function yr(n,t,i){return ft(n,wi(t,i))}function go(){return{top:0,right:0,bottom:0,left:0}}function ns(n){return Object.assign({},go(),n)}function ts(n,t){return t.reduce(function(t,i){return t[i]=n,t},{})}function ly(n){var r,t=n.state,d=n.name,g=n.options,h=t.elements.arrow,c=t.modifiersData.popperOffsets,a=b(t.placement),i=ku(a),nt=[f,s].indexOf(a)>=0,e=nt?"height":"width";if(h&&c){var v=is(g.padding,t),y=bu(h),tt=i==="y"?u:f,it=i==="y"?o:s,rt=t.rects.reference[e]+t.rects.reference[i]-c[i]-t.rects.popper[e],ut=c[i]-t.rects.reference[i],l=pi(h),p=l?i==="y"?l.clientHeight||0:l.clientWidth||0:0,ft=rt/2-ut/2,et=v[tt],ot=p-y[e]-v[it],w=p/2-y[e]/2+ft,k=yr(et,w,ot),st=i;t.modifiersData[d]=(r={},r[st]=k,r.centerOffset=k-w,r)}}function ay(n){var i=n.state,u=n.options,r=u.element,t=r===void 0?"[data-popper-arrow]":r;t!=null&&(typeof t!="string"||(t=i.elements.popper.querySelector(t),t))&&bo(i.elements.popper,t)&&(i.elements.arrow=t)}function ui(n){return n.split("-")[1]}function vy(n){var i=n.x,r=n.y,u=window,t=u.devicePixelRatio||1;return{x:vr(vr(i*t)/t)||0,y:vr(vr(r*t)/t)||0}}function fs(n){var r,a=n.popper,d=n.popperRect,i=n.placement,g=n.variation,e=n.offsets,tt=n.position,v=n.gpuAcceleration,it=n.adaptive,p=n.roundOffsets,rt=p===!0?vy(e):typeof p=="function"?p(e):e,ft=rt.x,h=ft===void 0?0:ft,et=rt.y,c=et===void 0?0:et,ot=e.hasOwnProperty("x"),st=e.hasOwnProperty("y"),w=f,b=u,lt=window,k,l;if(it){var t=pi(a),ht="clientHeight",ct="clientWidth";t===y(a)&&(t=ut(a),nt(t).position!=="static"&&tt==="absolute"&&(ht="scrollHeight",ct="scrollWidth"));t=t;(i===u||(i===f||i===s)&&g===ti)&&(b=o,c-=t[ht]-d.height,c*=v?1:-1);(i===f||(i===u||i===o)&&g===ti)&&(w=s,h-=t[ct]-d.width,h*=v?1:-1)}return(k=Object.assign({position:tt},it&&us),v)?Object.assign({},k,(l={},l[b]=st?"0":"",l[w]=ot?"0":"",l.transform=(lt.devicePixelRatio||1)<=1?"translate("+h+"px, "+c+"px)":"translate3d("+h+"px, "+c+"px, 0)",l)):Object.assign({},k,(r={},r[b]=st?c+"px":"",r[w]=ot?h+"px":"",r.transform="",r))}function yy(n){var t=n.state,i=n.options,r=i.gpuAcceleration,s=r===void 0?!0:r,u=i.adaptive,h=u===void 0?!0:u,f=i.roundOffsets,e=f===void 0?!0:f,o={placement:b(t.placement),variation:ui(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:s};t.modifiersData.popperOffsets!=null&&(t.styles.popper=Object.assign({},t.styles.popper,fs(Object.assign({},o,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:h,roundOffsets:e}))));t.modifiersData.arrow!=null&&(t.styles.arrow=Object.assign({},t.styles.arrow,fs(Object.assign({},o,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:e}))));t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}function py(n){var i=n.state,t=n.instance,r=n.options,u=r.scroll,f=u===void 0?!0:u,e=r.resize,o=e===void 0?!0:e,s=y(i.elements.popper),h=[].concat(i.scrollParents.reference,i.scrollParents.popper);return f&&h.forEach(function(n){n.addEventListener("scroll",t.update,bi)}),o&&s.addEventListener("resize",t.update,bi),function(){f&&h.forEach(function(n){n.removeEventListener("scroll",t.update,bi)});o&&s.removeEventListener("resize",t.update,bi)}}function pr(n){return n.replace(/left|right|bottom|top/g,function(n){return es[n]})}function ss(n){return n.replace(/start|end/g,function(n){return os[n]})}function nf(n){var t=y(n),i=t.pageXOffset,r=t.pageYOffset;return{scrollLeft:i,scrollTop:r}}function tf(n){return ri(ut(n)).left+nf(n).scrollLeft}function wy(n){var o=y(n),i=ut(n),t=o.visualViewport,r=i.clientWidth,u=i.clientHeight,f=0,e=0;return t&&(r=t.width,u=t.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(f=t.offsetLeft,e=t.offsetTop)),{width:r,height:u,x:f+tf(n),y:e}}function by(n){var r,i=ut(n),u=nf(n),t=(r=n.ownerDocument)==null?void 0:r.body,f=ft(i.scrollWidth,i.clientWidth,t?t.scrollWidth:0,t?t.clientWidth:0),o=ft(i.scrollHeight,i.clientHeight,t?t.scrollHeight:0,t?t.clientHeight:0),e=-u.scrollLeft+tf(n),s=-u.scrollTop;return nt(t||i).direction==="rtl"&&(e+=ft(i.clientWidth,t?t.clientWidth:0)-f),{width:f,height:o,x:e,y:s}}function rf(n){var t=nt(n),i=t.overflow,r=t.overflowX,u=t.overflowY;return/auto|scroll|overlay|hidden/.test(i+u+r)}function hs(n){return["html","body","#document"].indexOf(w(n))>=0?n.ownerDocument.body:c(n)&&rf(n)?n:hs(ar(n))}function ki(n,t){var r;t===void 0&&(t=[]);var i=hs(n),u=i===((r=n.ownerDocument)==null?void 0:r.body),f=y(i),e=u?[f].concat(f.visualViewport||[],rf(i)?i:[]):i,o=t.concat(e);return u?o:o.concat(ki(ar(e)))}function uf(n){return Object.assign({},n,{left:n.x,top:n.y,right:n.x+n.width,bottom:n.y+n.height})}function ky(n){var t=ri(n);return t.top=t.top+n.clientTop,t.left=t.left+n.clientLeft,t.bottom=t.top+n.clientHeight,t.right=t.left+n.clientWidth,t.width=n.clientWidth,t.height=n.clientHeight,t.x=t.left,t.y=t.top,t}function cs(n,t){return t===vu?uf(wy(n)):c(t)?ky(t):uf(by(ut(n)))}function dy(n){var i=ki(ar(n)),r=["absolute","fixed"].indexOf(nt(n).position)>=0,t=r&&c(n)?pi(n):n;return yi(t)?i.filter(function(n){return yi(n)&&bo(n,t)&&w(n)!=="body"}):[]}function gy(n,t,i){var f=t==="clippingParents"?dy(n):[].concat(t),u=[].concat(f,[i]),e=u[0],r=u.reduce(function(t,i){var r=cs(n,i);return t.top=ft(r.top,t.top),t.right=wi(r.right,t.right),t.bottom=wi(r.bottom,t.bottom),t.left=ft(r.left,t.left),t},cs(n,e));return r.width=r.right-r.left,r.height=r.bottom-r.top,r.x=r.left,r.y=r.top,r}function ls(n){var t=n.reference,e=n.element,c=n.placement,l=c?b(c):null,y=c?ui(c):null,a=t.x+t.width/2-e.width/2,v=t.y+t.height/2-e.height/2,i,r,h;switch(l){case u:i={x:a,y:t.y-e.height};break;case o:i={x:a,y:t.y+t.height};break;case s:i={x:t.x+t.width,y:v};break;case f:i={x:t.x-e.width,y:v};break;default:i={x:t.x,y:t.y}}if(r=l?ku(l):null,r!=null){h=r==="y"?"height":"width";switch(y){case yt:i[r]=i[r]-(t[h]/2-e[h]/2);break;case ti:i[r]=i[r]+(t[h]/2-e[h]/2)}}return i}function fi(n,t){var it;t===void 0&&(t={});var i=t,v=i.placement,y=v===void 0?n.placement:v,p=i.boundary,rt=p===void 0?uo:p,w=i.rootBoundary,ft=w===void 0?vu:w,b=i.elementContext,r=b===void 0?ii:b,k=i.altBoundary,et=k===void 0?!1:k,d=i.padding,c=d===void 0?0:d,f=ns(typeof c!="number"?c:ts(c,ni)),ot=r===ii?fo:ii,g=n.rects.popper,l=n.elements[et?ot:r],e=gy(yi(l)?l:l.contextElement||ut(n.elements.popper),rt,ft),nt=ri(n.elements.reference),st=ls({reference:nt,element:g,strategy:"absolute",placement:y}),ht=uf(Object.assign({},g,st)),h=r===ii?ht:nt,a={top:e.top-h.top+f.top,bottom:h.bottom-e.bottom+f.bottom,left:e.left-h.left+f.left,right:h.right-e.right+f.right},tt=n.modifiersData.offset;return r===ii&&tt&&(it=tt[y],Object.keys(a).forEach(function(n){var t=[s,o].indexOf(n)>=0?1:-1,i=[u,o].indexOf(n)>=0?"y":"x";a[n]+=it[i]*t})),a}function np(n,t){var r;t===void 0&&(t={});var i=t,s=i.placement,h=i.boundary,c=i.rootBoundary,l=i.padding,a=i.flipVariations,f=i.allowedAutoPlacements,v=f===void 0?pu:f,e=ui(s),o=e?a?yu:yu.filter(function(n){return ui(n)===e}):ni,u=o.filter(function(n){return v.indexOf(n)>=0});return u.length===0&&(u=o),r=u.reduce(function(t,i){return t[i]=fi(n,{placement:i,boundary:h,rootBoundary:c,padding:l})[b(i)],t},{}),Object.keys(r).sort(function(n,t){return r[n]-r[t]})}function tp(n){if(b(n)===lr)return[];var t=pr(n);return[ss(n),t,ss(t)]}function ip(n){var t=n.state,i=n.options,k=n.name,a,ct,h,lt,at,y,vt;if(!t.modifiersData[k]._skip){var d=i.mainAxis,pt=d===void 0?!0:d,g=i.altAxis,wt=g===void 0?!0:g,bt=i.fallbackPlacements,nt=i.padding,tt=i.boundary,it=i.rootBoundary,kt=i.altBoundary,rt=i.flipVariations,p=rt===void 0?!0:rt,dt=i.allowedAutoPlacements,r=t.options.placement,gt=b(r),ni=gt===r,ti=bt||(ni||!p?[pr(r)]:tp(r)),c=[r].concat(ti).reduce(function(n,i){return n.concat(b(i)===lr?np(t,{placement:i,boundary:tt,rootBoundary:it,padding:nt,flipVariations:p,allowedAutoPlacements:dt}):i)},[]),ii=t.rects.reference,ri=t.rects.popper,ut=new Map,ft=!0,l=c[0];for(a=0;a=0,ht=st?"width":"height",w=fi(t,{placement:e,boundary:tt,rootBoundary:it,altBoundary:kt,padding:nt}),v=st?ot?s:f:ot?o:u;if(ii[ht]>ri[ht]&&(v=pr(v)),ct=pr(v),h=[],pt&&h.push(w[et]<=0),wt&&h.push(w[v]<=0,w[ct]<=0),h.every(function(n){return n})){l=e;ft=!1;break}ut.set(e,h)}if(ft)for(lt=p?3:1,at=function(n){var t=c.find(function(t){var i=ut.get(t);if(i)return i.slice(0,n).every(function(n){return n})});if(t)return l=t,"break"},y=lt;y>0;y--)if(vt=at(y),vt==="break")break;t.placement!==l&&(t.modifiersData[k]._skip=!0,t.placement=l,t.reset=!0)}}function vs(n,t,i){return i===void 0&&(i={x:0,y:0}),{top:n.top-t.height-i.y,right:n.right-t.width+i.x,bottom:n.bottom-t.height+i.y,left:n.left-t.width-i.x}}function ys(n){return[u,s,o,f].some(function(t){return n[t]>=0})}function rp(n){var t=n.state,e=n.name,o=t.rects.reference,s=t.rects.popper,h=t.modifiersData.preventOverflow,c=fi(t,{elementContext:"reference"}),l=fi(t,{altBoundary:!0}),i=vs(c,o),r=vs(l,s,h),u=ys(i),f=ys(r);t.modifiersData[e]={referenceClippingOffsets:i,popperEscapeOffsets:r,isReferenceHidden:u,hasPopperEscaped:f};t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":u,"data-popper-escaped":f})}function up(n,t,i){var o=b(n),c=[f,u].indexOf(o)>=0?-1:1,h=typeof i=="function"?i(Object.assign({},t,{placement:n})):i,r=h[0],e=h[1];return r=r||0,e=(e||0)*c,[f,s].indexOf(o)>=0?{x:e,y:r}:{x:r,y:e}}function fp(n){var t=n.state,f=n.options,e=n.name,i=f.offset,o=i===void 0?[0,0]:i,r=pu.reduce(function(n,i){return n[i]=up(i,t.rects,o),n},{}),u=r[t.placement],s=u.x,h=u.y;t.modifiersData.popperOffsets!=null&&(t.modifiersData.popperOffsets.x+=s,t.modifiersData.popperOffsets.y+=h);t.modifiersData[e]=r}function ep(n){var t=n.state,i=n.name;t.modifiersData[i]=ls({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})}function op(n){return n==="x"?"y":"x"}function sp(n){var t=n.state,h=n.options,hi=n.name,rt=h.mainAxis,ut=rt===void 0?!0:rt,et=h.altAxis,ot=et===void 0?!1:et,ci=h.boundary,li=h.rootBoundary,ai=h.altBoundary,vi=h.padding,st=h.tether,c=st===void 0?!0:st,ht=h.tetherOffset,w=ht===void 0?0:ht,a=fi(t,{boundary:ci,rootBoundary:li,padding:vi,altBoundary:ai}),yi=b(t.placement),k=ui(t.placement),ct=!k,i=ku(yi),d=op(i),r=t.modifiersData.popperOffsets,l=t.rects.reference,g=t.rects.popper,v=typeof w=="function"?w(Object.assign({},t.rects,{placement:t.placement})):w,nt={x:0,y:0},it;if(r){if(ut||ot){var lt=i==="y"?u:f,at=i==="y"?o:s,e=i==="y"?"height":"width",vt=r[i],pt=r[i]+a[lt],wt=r[i]-a[at],bt=c?-g[e]/2:0,bi=k===yt?l[e]:g[e],ki=k===yt?-g[e]:-l[e],kt=t.elements.arrow,di=c&&kt?bu(kt):{width:0,height:0},dt=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:go(),gt=dt[lt],ni=dt[at],y=yr(0,l[e],di[e]),gi=ct?l[e]/2-bt-y-gt-v:bi-y-gt-v,nr=ct?-l[e]/2+bt+y+ni+v:ki+y+ni+v,tt=t.elements.arrow&&pi(t.elements.arrow),tr=tt?i==="y"?tt.clientTop||0:tt.clientLeft||0:0,ti=t.modifiersData.offset?t.modifiersData.offset[t.placement][i]:0,ii=r[i]+gi-ti-tr,ri=r[i]+nr-ti;if(ut&&(it=yr(c?wi(pt,ii):pt,vt,c?ft(wt,ri):wt),r[i]=it,nt[i]=it-vt),ot){var ir=i==="x"?u:f,rr=i==="x"?o:s,p=r[d],ei=p+a[ir],oi=p-a[rr],si=yr(c?wi(ei,ii):ei,p,c?ft(oi,ri):oi);r[d]=si;nt[d]=si-p}}t.modifiersData[hi]=nt}}function hp(n){return{scrollLeft:n.scrollLeft,scrollTop:n.scrollTop}}function cp(n){return n!==y(n)&&c(n)?hp(n):nf(n)}function lp(n){var t=n.getBoundingClientRect(),i=t.width/n.offsetWidth||1,r=t.height/n.offsetHeight||1;return i!==1||r!==1}function ap(n,t,i){var f;i===void 0&&(i=!1);f=c(t);c(t)&&lp(t);var e=ut(t),u=ri(n),o={scrollLeft:0,scrollTop:0},r={x:0,y:0};return!f&&(f||i)||((w(t)!=="body"||rf(e))&&(o=cp(t)),c(t)?(r=ri(t),r.x+=t.clientLeft,r.y+=t.clientTop):e&&(r.x=tf(e))),{x:u.left+o.scrollLeft-r.x,y:u.top+o.scrollTop-r.y,width:u.width,height:u.height}}function vp(n){function u(n){t.add(n.name);var f=[].concat(n.requires||[],n.requiresIfExists||[]);f.forEach(function(n){if(!t.has(n)){var r=i.get(n);r&&u(r)}});r.push(n)}var i=new Map,t=new Set,r=[];return n.forEach(function(n){i.set(n.name,n)}),n.forEach(function(n){t.has(n.name)||u(n)}),r}function yp(n){var t=vp(n);return po.reduce(function(n,i){return n.concat(t.filter(function(n){return n.phase===i}))},[])}function pp(n){var t;return function(){return t||(t=new Promise(function(i){Promise.resolve().then(function(){t=undefined;i(n())})})),t}}function wp(n){var t=n.reduce(function(n,t){var i=n[t.name];return n[t.name]=i?Object.assign({},i,t,{options:Object.assign({},i.options,t.options),data:Object.assign({},i.data,t.data)}):t,n},{});return Object.keys(t).map(function(n){return t[n]})}function ks(){for(var t=arguments.length,i=new Array(t),n=0;n{lk(n,e)||i.removeAttribute(n.nodeName)})}return r.body.innerHTML}var is,us,bi,es,os,ef;const rl=1e6,ul=1e3,fu="transitionend",fl=n=>n===null||n===undefined?`${n}`:{}.toString.call(n).match(/\s([a-z]+)/i)[1].toLowerCase(),el=n=>{do n+=Math.floor(Math.random()*rl);while(document.getElementById(n));return n},gf=n=>{let t=n.getAttribute("data-bs-target");if(!t||t==="#"){let i=n.getAttribute("href");if(!i||!i.includes("#")&&!i.startsWith("."))return null;i.includes("#")&&!i.startsWith("#")&&(i=`#${i.split("#")[1]}`);t=i&&i!=="#"?i.trim():null}return t},eu=n=>{const t=gf(n);return t?document.querySelector(t)?t:null:null},tt=n=>{const t=gf(n);return t?document.querySelector(t):null},ol=n=>{if(!n)return 0;let{transitionDuration:t,transitionDelay:i}=window.getComputedStyle(n);const r=Number.parseFloat(t),u=Number.parseFloat(i);return!r&&!u?0:(t=t.split(",")[0],i=i.split(",")[0],(Number.parseFloat(t)+Number.parseFloat(i))*ul)},ne=n=>{n.dispatchEvent(new Event(fu))},ot=n=>!n||typeof n!="object"?!1:(typeof n.jquery!="undefined"&&(n=n[0]),typeof n.nodeType!="undefined"),it=n=>ot(n)?n.jquery?n[0]:n:typeof n=="string"&&n.length>0?document.querySelector(n):null,p=(n,t,i)=>{Object.keys(i).forEach(r=>{const f=i[r],u=t[r],e=u&&ot(u)?"element":fl(u);if(!new RegExp(f).test(e))throw new TypeError(`${n.toUpperCase()}: Option "${r}" provided type "${e}" but expected type "${f}".`);})},ci=n=>!ot(n)||n.getClientRects().length===0?!1:getComputedStyle(n).getPropertyValue("visibility")==="visible",st=n=>!n||n.nodeType!==Node.ELEMENT_NODE?!0:n.classList.contains("disabled")?!0:typeof n.disabled!="undefined"?n.disabled:n.hasAttribute("disabled")&&n.getAttribute("disabled")!=="false",te=n=>{if(!document.documentElement.attachShadow)return null;if(typeof n.getRootNode=="function"){const t=n.getRootNode();return t instanceof ShadowRoot?t:null}return n instanceof ShadowRoot?n:n.parentNode?te(n.parentNode):null},fr=()=>{},kt=n=>{n.offsetHeight},ie=()=>{const{jQuery:n}=window;return n&&!document.body.hasAttribute("data-bs-no-jquery")?n:null},ou=[],sl=n=>{document.readyState==="loading"?(ou.length||document.addEventListener("DOMContentLoaded",()=>{ou.forEach(n=>n())}),ou.push(n)):n()},r=()=>document.documentElement.dir==="rtl",h=n=>{sl(()=>{const t=ie();if(t){const i=n.NAME,r=t.fn[i];t.fn[i]=n.jQueryInterface;t.fn[i].Constructor=n;t.fn[i].noConflict=()=>(t.fn[i]=r,n.jQueryInterface)}})},ht=n=>{typeof n=="function"&&n()},re=(n,t,i=true)=>{if(!i){ht(n);return}const f=ol(t)+5;let r=!1;const u=({target:i})=>{i===t&&(r=!0,t.removeEventListener(fu,u),ht(n))};t.addEventListener(fu,u);setTimeout(()=>{r||ne(t)},f)},ue=(n,t,i,r)=>{let u=n.indexOf(t);if(u===-1)return n[!i&&r?n.length-1:0];const f=n.length;return u+=i?1:-1,r&&(u=(u+f)%f),n[Math.max(0,Math.min(u,f-1))]},hl=/[^.]*(?=\..*)\.|.*/,cl=/\..*/,ll=/::\d+$/,su={};let fe=1;const al={mouseenter:"mouseover",mouseleave:"mouseout"},vl=/^(mouseenter|mouseleave)/i,ee=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);const n={on(n,t,i,r){le(n,t,i,r,!1)},one(n,t,i,r){le(n,t,i,r,!0)},off(n,t,i,r){if(typeof t=="string"&&n){const[s,e,f]=ce(t,i,r),h=f!==t,u=se(n),c=t.startsWith(".");if(typeof e!="undefined"){if(!u||!u[f])return;hu(n,u,f,e,s?i:null);return}c&&Object.keys(u).forEach(i=>{wl(n,u,i,t.slice(1))});const o=u[f]||{};Object.keys(o).forEach(i=>{const r=i.replace(ll,"");if(!h||t.includes(r)){const t=o[i];hu(n,u,f,t.originalHandler,t.delegationSelector)}})}},trigger(n,t,i){if(typeof t!="string"||!n)return null;const f=ie(),e=ae(t),c=t!==e,l=ee.has(e);let u,o=!0,s=!0,h=!1,r=null;return c&&f&&(u=f.Event(t,i),f(n).trigger(u),o=!u.isPropagationStopped(),s=!u.isImmediatePropagationStopped(),h=u.isDefaultPrevented()),l?(r=document.createEvent("HTMLEvents"),r.initEvent(e,o,!0)):r=new CustomEvent(t,{bubbles:o,cancelable:!0}),typeof i!="undefined"&&Object.keys(i).forEach(n=>{Object.defineProperty(r,n,{get(){return i[n]}})}),h&&r.preventDefault(),s&&n.dispatchEvent(r),r.defaultPrevented&&typeof u!="undefined"&&u.preventDefault(),r}},rt=new Map,li={set(n,t,i){rt.has(n)||rt.set(n,new Map);const r=rt.get(n);if(!r.has(t)&&r.size!==0){console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(r.keys())[0]}.`);return}r.set(t,i)},get(n,t){return rt.has(n)?rt.get(n).get(t)||null:null},remove(n,t){if(rt.has(n)){const i=rt.get(n);i.delete(t);i.size===0&&rt.delete(n)}}},bl="5.1.3";class v{constructor(n){(n=it(n),n)&&(this._element=n,li.set(this._element,this.constructor.DATA_KEY,this))}dispose(){li.remove(this._element,this.constructor.DATA_KEY);n.off(this._element,this.constructor.EVENT_KEY);Object.getOwnPropertyNames(this).forEach(n=>{this[n]=null})}_queueCallback(n,t,i=true){re(n,t,i)}static getInstance(n){return li.get(it(n),this.DATA_KEY)}static getOrCreateInstance(n,t={}){return this.getInstance(n)||new this(n,typeof t=="object"?t:null)}static get VERSION(){return bl}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!');}static get DATA_KEY(){return`bs.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}}const er=(t,i="hide")=>{const u=`click.dismiss${t.EVENT_KEY}`,r=t.NAME;n.on(document,u,`[data-bs-dismiss="${r}"]`,function(n){if(["A","AREA"].includes(this.tagName)&&n.preventDefault(),!st(this)){const u=tt(this)||this.closest(`.${r}`),f=t.getOrCreateInstance(u);f[i]()}})},kl="alert",ve=`.${"bs.alert"}`,dl=`close${ve}`,gl=`closed${ve}`,na="fade",ta="show";class or extends v{static get NAME(){return kl}close(){const t=n.trigger(this._element,dl);if(!t.defaultPrevented){this._element.classList.remove(ta);const i=this._element.classList.contains(na);this._queueCallback(()=>this._destroyElement(),this._element,i)}}_destroyElement(){this._element.remove();n.trigger(this._element,gl);this.dispose()}static jQueryInterface(n){return this.each(function(){const t=or.getOrCreateInstance(this);if(typeof n=="string"){if(t[n]===undefined||n.startsWith("_")||n==="constructor")throw new TypeError(`No method named "${n}"`);t[n](this)}})}}er(or,"close");h(or);const ia="button",ra=`.${"bs.button"}`,ua="active",ye='[data-bs-toggle="button"]',fa=`click${ra}${".data-api"}`;class sr extends v{static get NAME(){return ia}toggle(){this._element.setAttribute("aria-pressed",this._element.classList.toggle(ua))}static jQueryInterface(n){return this.each(function(){const t=sr.getOrCreateInstance(this);n==="toggle"&&t[n]()})}}n.on(document,fa,ye,n=>{n.preventDefault();const t=n.target.closest(ye),i=sr.getOrCreateInstance(t);i.toggle()});h(sr);const i={setDataAttribute(n,t,i){n.setAttribute(`data-bs-${cu(t)}`,i)},removeDataAttribute(n,t){n.removeAttribute(`data-bs-${cu(t)}`)},getDataAttributes(n){if(!n)return{};const t={};return Object.keys(n.dataset).filter(n=>n.startsWith("bs")).forEach(i=>{let r=i.replace(/^bs/,"");r=r.charAt(0).toLowerCase()+r.slice(1,r.length);t[r]=pe(n.dataset[i])}),t},getDataAttribute(n,t){return pe(n.getAttribute(`data-bs-${cu(t)}`))},offset(n){const t=n.getBoundingClientRect();return{top:t.top+window.pageYOffset,left:t.left+window.pageXOffset}},position(n){return{top:n.offsetTop,left:n.offsetLeft}}},ea=3,t={find(n,t=document.documentElement){return[].concat(...Element.prototype.querySelectorAll.call(t,n))},findOne(n,t=document.documentElement){return Element.prototype.querySelector.call(t,n)},children(n,t){return[].concat(...n.children).filter(n=>n.matches(t))},parents(n,t){const r=[];let i=n.parentNode;while(i&&i.nodeType===Node.ELEMENT_NODE&&i.nodeType!==ea)i.matches(t)&&r.push(i),i=i.parentNode;return r},prev(n,t){let i=n.previousElementSibling;while(i){if(i.matches(t))return[i];i=i.previousElementSibling}return[]},next(n,t){let i=n.nextElementSibling;while(i){if(i.matches(t))return[i];i=i.nextElementSibling}return[]},focusableChildren(n){const t=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map(n=>`${n}:not([tabindex^="-"])`).join(", ");return this.find(t,n).filter(n=>!st(n)&&ci(n))}},we="carousel",e=`.${"bs.carousel"}`,be=".data-api",oa=500,sa=40,ke={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0,touch:!0},ha={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean",touch:"boolean"},ct="next",lt="prev",at="left",ai="right",ca={["ArrowLeft"]:ai,["ArrowRight"]:at},la=`slide${e}`,de=`slid${e}`,aa=`keydown${e}`,va=`mouseenter${e}`,ya=`mouseleave${e}`,pa=`touchstart${e}`,wa=`touchmove${e}`,ba=`touchend${e}`,ka=`pointerdown${e}`,da=`pointerup${e}`,ga=`dragstart${e}`,nv=`load${e}${be}`,tv=`click${e}${be}`,iv="carousel",vt="active",rv="slide",uv="carousel-item-end",fv="carousel-item-start",ev="carousel-item-next",ov="carousel-item-prev",sv="pointer-event",hv=".active",hr=".active.carousel-item",cv=".carousel-item",lv=".carousel-item img",av=".carousel-item-next, .carousel-item-prev",vv=".carousel-indicators",yv="[data-bs-target]",pv='[data-bs-ride="carousel"]',wv="touch",bv="pen";class g extends v{constructor(n,i){super(n);this._items=null;this._interval=null;this._activeElement=null;this._isPaused=!1;this._isSliding=!1;this.touchTimeout=null;this.touchStartX=0;this.touchDeltaX=0;this._config=this._getConfig(i);this._indicatorsElement=t.findOne(vv,this._element);this._touchSupported="ontouchstart"in document.documentElement||navigator.maxTouchPoints>0;this._pointerEvent=Boolean(window.PointerEvent);this._addEventListeners()}static get Default(){return ke}static get NAME(){return we}next(){this._slide(ct)}nextWhenVisible(){!document.hidden&&ci(this._element)&&this.next()}prev(){this._slide(lt)}pause(n){n||(this._isPaused=!0);t.findOne(av,this._element)&&(ne(this._element),this.cycle(!0));clearInterval(this._interval);this._interval=null}cycle(n){n||(this._isPaused=!1);this._interval&&(clearInterval(this._interval),this._interval=null);this._config&&this._config.interval&&!this._isPaused&&(this._updateInterval(),this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))}to(i){this._activeElement=t.findOne(hr,this._element);const r=this._getItemIndex(this._activeElement);if(!(i>this._items.length-1)&&!(i<0)){if(this._isSliding){n.one(this._element,de,()=>this.to(i));return}if(r===i){this.pause();this.cycle();return}const u=i>r?ct:lt;this._slide(u,this._items[i])}}_getConfig(n){return n={...ke,...i.getDataAttributes(this._element),...(typeof n=="object"?n:{})},p(we,n,ha),n}_handleSwipe(){const n=Math.abs(this.touchDeltaX);if(!(n<=sa)){const t=n/this.touchDeltaX;(this.touchDeltaX=0,t)&&this._slide(t>0?ai:at)}}_addEventListeners(){if(this._config.keyboard)n.on(this._element,aa,n=>this._keydown(n));if(this._config.pause==="hover"){n.on(this._element,va,n=>this.pause(n));n.on(this._element,ya,n=>this.cycle(n))}this._config.touch&&this._touchSupported&&this._addTouchEventListeners()}_addTouchEventListeners(){const i=n=>this._pointerEvent&&(n.pointerType===bv||n.pointerType===wv),r=n=>{i(n)?this.touchStartX=n.clientX:this._pointerEvent||(this.touchStartX=n.touches[0].clientX)},f=n=>{this.touchDeltaX=n.touches&&n.touches.length>1?0:n.touches[0].clientX-this.touchStartX},u=n=>{i(n)&&(this.touchDeltaX=n.clientX-this.touchStartX),this._handleSwipe(),this._config.pause==="hover"&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout(n=>this.cycle(n),oa+this._config.interval))};if(t.find(lv,this._element).forEach(t=>{n.on(t,ga,n=>n.preventDefault())}),this._pointerEvent){n.on(this._element,ka,n=>r(n));n.on(this._element,da,n=>u(n));this._element.classList.add(sv)}else{n.on(this._element,pa,n=>r(n));n.on(this._element,wa,n=>f(n));n.on(this._element,ba,n=>u(n))}}_keydown(n){if(!/input|textarea/i.test(n.target.tagName)){const t=ca[n.key];t&&(n.preventDefault(),this._slide(t))}}_getItemIndex(n){return this._items=n&&n.parentNode?t.find(cv,n.parentNode):[],this._items.indexOf(n)}_getItemByOrder(n,t){const i=n===ct;return ue(this._items,t,i,this._config.wrap)}_triggerSlideEvent(i,r){const u=this._getItemIndex(i),f=this._getItemIndex(t.findOne(hr,this._element));return n.trigger(this._element,la,{relatedTarget:i,direction:r,from:f,to:u})}_setActiveIndicatorElement(n){if(this._indicatorsElement){const r=t.findOne(hv,this._indicatorsElement);r.classList.remove(vt);r.removeAttribute("aria-current");const i=t.find(yv,this._indicatorsElement);for(let t=0;t{n.trigger(this._element,de,{relatedTarget:u,direction:l,from:v,to:y})};if(this._element.classList.contains(rv)){u.classList.add(s);kt(u);f.classList.add(e);u.classList.add(e);const n=()=>{u.classList.remove(e,s),u.classList.add(vt),f.classList.remove(vt,s,e),this._isSliding=!1,setTimeout(a,0)};this._queueCallback(n,f,!0)}else f.classList.remove(vt),u.classList.add(vt),this._isSliding=!1,a();h&&this.cycle()}}}_directionToOrder(n){return[ai,at].includes(n)?r()?n===at?lt:ct:n===at?ct:lt:n}_orderToDirection(n){return[ct,lt].includes(n)?r()?n===lt?at:ai:n===lt?ai:at:n}static carouselInterface(n,t){const i=g.getOrCreateInstance(n,t);let{_config:r}=i;typeof t=="object"&&(r={...r,...t});const u=typeof t=="string"?t:r.slide;if(typeof t=="number")i.to(t);else if(typeof u=="string"){if(typeof i[u]=="undefined")throw new TypeError(`No method named "${u}"`);i[u]()}else r.interval&&r.ride&&(i.pause(),i.cycle())}static jQueryInterface(n){return this.each(function(){g.carouselInterface(this,n)})}static dataApiClickHandler(n){const t=tt(this);if(t&&t.classList.contains(iv)){const u={...i.getDataAttributes(t),...i.getDataAttributes(this)},r=this.getAttribute("data-bs-slide-to");r&&(u.interval=!1);g.carouselInterface(t,u);r&&g.getInstance(t).to(r);n.preventDefault()}}}n.on(document,tv,"[data-bs-slide], [data-bs-slide-to]",g.dataApiClickHandler);n.on(window,nv,()=>{const n=t.find(pv);for(let t=0,i=n.length;tn===this._element);i!==null&&f.length&&(this._selector=i,this._triggerArray.push(u))}this._initializeChildren();this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown());this._config.toggle&&this.toggle()}static get Default(){return to}static get NAME(){return ge}toggle(){this._isShown()?this.hide():this.show()}show(){if(!this._isTransitioning&&!this._isShown()){let r=[],u;if(this._config.parent){const n=t.find(ro,this._config.parent);r=t.find(ey,this._config.parent).filter(t=>!n.includes(t))}const f=t.findOne(this._selector);if(r.length){const n=r.find(n=>f!==n);if(u=n?gt.getInstance(n):null,u&&u._isTransitioning)return}const e=n.trigger(this._element,dv);if(!e.defaultPrevented){r.forEach(n=>{f!==n&>.getOrCreateInstance(n,{toggle:!1}).hide(),u||li.set(n,no,null)});const i=this._getDimension();this._element.classList.remove(dt);this._element.classList.add(cr);this._element.style[i]=0;this._addAriaAndCollapsedClass(this._triggerArray,!0);this._isTransitioning=!0;const o=()=>{this._isTransitioning=!1,this._element.classList.remove(cr),this._element.classList.add(dt,lu),this._element.style[i]="",n.trigger(this._element,gv)},s=i[0].toUpperCase()+i.slice(1),h=`scroll${s}`;this._queueCallback(o,this._element,!0);this._element.style[i]=`${this._element[h]}px`}}}hide(){if(!this._isTransitioning&&this._isShown()){const i=n.trigger(this._element,ny);if(!i.defaultPrevented){const t=this._getDimension();this._element.style[t]=`${this._element.getBoundingClientRect()[t]}px`;kt(this._element);this._element.classList.add(cr);this._element.classList.remove(dt,lu);const r=this._triggerArray.length;for(let n=0;n{this._isTransitioning=!1,this._element.classList.remove(cr),this._element.classList.add(dt),n.trigger(this._element,ty)};this._element.style[t]="";this._queueCallback(u,this._element,!0)}}}_isShown(n=this._element){return n.classList.contains(lu)}_getConfig(n){return n={...to,...i.getDataAttributes(this._element),...n},n.toggle=Boolean(n.toggle),n.parent=it(n.parent),p(ge,n,kv),n}_getDimension(){return this._element.classList.contains(ry)?uy:fy}_initializeChildren(){if(this._config.parent){const n=t.find(ro,this._config.parent);t.find(au,this._config.parent).filter(t=>!n.includes(t)).forEach(n=>{const t=tt(n);t&&this._addAriaAndCollapsedClass([n],this._isShown(t))})}}_addAriaAndCollapsedClass(n,t){n.length&&n.forEach(n=>{t?n.classList.remove(io):n.classList.add(io),n.setAttribute("aria-expanded",t)})}static jQueryInterface(n){return this.each(function(){const t={};typeof n=="string"&&/show|hide/.test(n)&&(t.toggle=!1);const i=gt.getOrCreateInstance(this,t);if(typeof n=="string"){if(typeof i[n]=="undefined")throw new TypeError(`No method named "${n}"`);i[n]()}})}}n.on(document,iy,au,function(n){(n.target.tagName==="A"||n.delegateTarget&&n.delegateTarget.tagName==="A")&&n.preventDefault();const i=eu(this),r=t.find(i);r.forEach(n=>{gt.getOrCreateInstance(n,{toggle:!1}).toggle()})});h(gt);var u="top",o="bottom",s="right",f="left",lr="auto",ni=[u,o,s,f],yt="start",ti="end",uo="clippingParents",vu="viewport",ii="popper",fo="reference",yu=ni.reduce(function(n,t){return n.concat([t+"-"+yt,t+"-"+ti])},[]),pu=[].concat(ni,[lr]).reduce(function(n,t){return n.concat([t,t+"-"+yt,t+"-"+ti])},[]),eo="beforeRead",oo="read",so="afterRead",ho="beforeMain",co="main",lo="afterMain",ao="beforeWrite",vo="write",yo="afterWrite",po=[eo,oo,so,ho,co,lo,ao,vo,yo];const wu={name:"applyStyles",enabled:!0,phase:"write",fn:oy,effect:sy,requires:["computeStyles"]};var ft=Math.max,wi=Math.min,vr=Math.round;is=function(n,t){return n=typeof n=="function"?n(Object.assign({},t.rects,{placement:t.placement})):n,ns(typeof n!="number"?n:ts(n,ni))};const rs={name:"arrow",enabled:!0,phase:"main",fn:ly,effect:ay,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};us={top:"auto",right:"auto",bottom:"auto",left:"auto"};const du={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:yy,data:{}};bi={passive:!0};const gu={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:py,data:{}};es={left:"right",right:"left",bottom:"top",top:"bottom"};os={start:"end",end:"start"};const as={name:"flip",enabled:!0,phase:"main",fn:ip,requiresIfExists:["offset"],data:{_skip:!1}};const ps={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:rp};const ws={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:fp};const ff={name:"popperOffsets",enabled:!0,phase:"read",fn:ep,data:{}};const bs={name:"preventOverflow",enabled:!0,phase:"main",fn:sp,requiresIfExists:["offset"]};ef={placement:"bottom",modifiers:[],strategy:"absolute"};var bp=wr(),kp=[gu,ff,du,wu],dp=wr({defaultModifiers:kp}),gp=[gu,ff,du,wu,ws,as,bs,rs,ps],sf=wr({defaultModifiers:gp});const ds=Object.freeze({__proto__:null,popperGenerator:wr,detectOverflow:fi,createPopperBase:bp,createPopper:sf,createPopperLite:dp,top:u,bottom:o,right:s,left:f,auto:lr,basePlacements:ni,start:yt,end:ti,clippingParents:uo,viewport:vu,popper:ii,reference:fo,variationPlacements:yu,placements:pu,beforeRead:eo,read:oo,afterRead:so,beforeMain:ho,main:co,afterMain:lo,beforeWrite:ao,write:vo,afterWrite:yo,modifierPhases:po,applyStyles:wu,arrow:rs,computeStyles:du,eventListeners:gu,flip:as,hide:ps,offset:ws,popperOffsets:ff,preventOverflow:bs}),hf="dropdown",pt=`.${"bs.dropdown"}`,cf=".data-api",br="Escape",gs="Space",nh="Tab",lf="ArrowUp",kr="ArrowDown",nw=2,tw=new RegExp(`${lf}|${kr}|${br}`),iw=`hide${pt}`,rw=`hidden${pt}`,uw=`show${pt}`,fw=`shown${pt}`,th=`click${pt}${cf}`,ih=`keydown${pt}${cf}`,ew=`keyup${pt}${cf}`,ei="show",ow="dropup",sw="dropend",hw="dropstart",cw="navbar",di='[data-bs-toggle="dropdown"]',af=".dropdown-menu",lw=".navbar-nav",aw=".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",vw=r()?"top-end":"top-start",yw=r()?"top-start":"top-end",pw=r()?"bottom-end":"bottom-start",ww=r()?"bottom-start":"bottom-end",bw=r()?"left-start":"right-start",kw=r()?"right-start":"left-start",dw={offset:[0,2],boundary:"clippingParents",reference:"toggle",display:"dynamic",popperConfig:null,autoClose:!0},gw={offset:"(array|string|function)",boundary:"(string|element)",reference:"(string|element|object)",display:"string",popperConfig:"(null|object|function)",autoClose:"(boolean|string)"};class l extends v{constructor(n,t){super(n);this._popper=null;this._config=this._getConfig(t);this._menu=this._getMenuElement();this._inNavbar=this._detectNavbar()}static get Default(){return dw}static get DefaultType(){return gw}static get NAME(){return hf}toggle(){return this._isShown()?this.hide():this.show()}show(){if(!st(this._element)&&!this._isShown(this._menu)){const t={relatedTarget:this._element},u=n.trigger(this._element,uw,t);if(!u.defaultPrevented){const r=l.getParentFromElement(this._element);this._inNavbar?i.setDataAttribute(this._menu,"popper","none"):this._createPopper(r);"ontouchstart"in document.documentElement&&!r.closest(lw)&&[].concat(...document.body.children).forEach(t=>n.on(t,"mouseover",fr));this._element.focus();this._element.setAttribute("aria-expanded",!0);this._menu.classList.add(ei);this._element.classList.add(ei);n.trigger(this._element,fw,t)}}}hide(){if(!st(this._element)&&this._isShown(this._menu)){const n={relatedTarget:this._element};this._completeHide(n)}}dispose(){this._popper&&this._popper.destroy();super.dispose()}update(){this._inNavbar=this._detectNavbar();this._popper&&this._popper.update()}_completeHide(t){const r=n.trigger(this._element,iw,t);r.defaultPrevented||("ontouchstart"in document.documentElement&&[].concat(...document.body.children).forEach(t=>n.off(t,"mouseover",fr)),this._popper&&this._popper.destroy(),this._menu.classList.remove(ei),this._element.classList.remove(ei),this._element.setAttribute("aria-expanded","false"),i.removeDataAttribute(this._menu,"popper"),n.trigger(this._element,rw,t))}_getConfig(n){if(n={...this.constructor.Default,...i.getDataAttributes(this._element),...n},p(hf,n,this.constructor.DefaultType),typeof n.reference=="object"&&!ot(n.reference)&&typeof n.reference.getBoundingClientRect!="function")throw new TypeError(`${hf.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`);return n}_createPopper(n){if(typeof ds=="undefined")throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)");let t=this._element;this._config.reference==="parent"?t=n:ot(this._config.reference)?t=it(this._config.reference):typeof this._config.reference=="object"&&(t=this._config.reference);const r=this._getPopperConfig(),u=r.modifiers.find(n=>n.name==="applyStyles"&&n.enabled===!1);this._popper=sf(t,this._menu,r);u&&i.setDataAttribute(this._menu,"popper","static")}_isShown(n=this._element){return n.classList.contains(ei)}_getMenuElement(){return t.next(this._element,af)[0]}_getPlacement(){const n=this._element.parentNode;if(n.classList.contains(sw))return bw;if(n.classList.contains(hw))return kw;const t=getComputedStyle(this._menu).getPropertyValue("--bs-position").trim()==="end";return n.classList.contains(ow)?t?yw:vw:t?ww:pw}_detectNavbar(){return this._element.closest(`.${cw}`)!==null}_getOffset(){const{offset:n}=this._config;return typeof n=="string"?n.split(",").map(n=>Number.parseInt(n,10)):typeof n=="function"?t=>n(t,this._element):n}_getPopperConfig(){const n={placement:this._getPlacement(),modifiers:[{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"offset",options:{offset:this._getOffset()}}]};return this._config.display==="static"&&(n.modifiers=[{name:"applyStyles",enabled:!1}]),{...n,...(typeof this._config.popperConfig=="function"?this._config.popperConfig(n):this._config.popperConfig)}}_selectMenuItem({key:n,target:i}){const r=t.find(aw,this._menu).filter(ci);r.length&&ue(r,i,n===kr,!r.includes(i)).focus()}static jQueryInterface(n){return this.each(function(){const t=l.getOrCreateInstance(this,n);if(typeof n=="string"){if(typeof t[n]=="undefined")throw new TypeError(`No method named "${n}"`);t[n]()}})}static clearMenus(n){if(!n||n.button!==nw&&(n.type!=="keyup"||n.key===nh)){const i=t.find(di);for(let t=0,r=i.length;tt+n);this._setElementAttributes(rh,"paddingRight",t=>t+n);this._setElementAttributes(uh,"marginRight",t=>t-n)}_disableOverFlow(){this._saveInitialAttribute(this._element,"overflow");this._element.style.overflow="hidden"}_setElementAttributes(n,t,i){const r=this.getWidth(),u=n=>{if(n===this._element||!(window.innerWidth>n.clientWidth+r)){this._saveInitialAttribute(n,t);const u=window.getComputedStyle(n)[t];n.style[t]=`${i(Number.parseFloat(u))}px`}};this._applyManipulationCallback(n,u)}reset(){this._resetElementAttributes(this._element,"overflow");this._resetElementAttributes(this._element,"paddingRight");this._resetElementAttributes(rh,"paddingRight");this._resetElementAttributes(uh,"marginRight")}_saveInitialAttribute(n,t){const r=n.style[t];r&&i.setDataAttribute(n,t,r)}_resetElementAttributes(n,t){const r=n=>{const r=i.getDataAttribute(n,t);typeof r=="undefined"?n.style.removeProperty(t):(i.removeDataAttribute(n,t),n.style[t]=r)};this._applyManipulationCallback(n,r)}_applyManipulationCallback(n,i){ot(n)?i(n):t.find(n,this._element).forEach(i)}isOverflowing(){return this.getWidth()>0}}const nb={className:"modal-backdrop",isVisible:!0,isAnimated:!1,rootElement:"body",clickCallback:null},tb={className:"string",isVisible:"boolean",isAnimated:"boolean",rootElement:"(element|string)",clickCallback:"(function|null)"},fh="backdrop",ib="fade",eh="show",oh=`mousedown.bs.${fh}`;class sh{constructor(n){this._config=this._getConfig(n);this._isAppended=!1;this._element=null}show(n){if(!this._config.isVisible){ht(n);return}this._append();this._config.isAnimated&&kt(this._getElement());this._getElement().classList.add(eh);this._emulateAnimation(()=>{ht(n)})}hide(n){if(!this._config.isVisible){ht(n);return}this._getElement().classList.remove(eh);this._emulateAnimation(()=>{this.dispose(),ht(n)})}_getElement(){if(!this._element){const n=document.createElement("div");n.className=this._config.className;this._config.isAnimated&&n.classList.add(ib);this._element=n}return this._element}_getConfig(n){return n={...nb,...(typeof n=="object"?n:{})},n.rootElement=it(n.rootElement),p(fh,n,tb),n}_append(){if(!this._isAppended){this._config.rootElement.append(this._getElement());n.on(this._getElement(),oh,()=>{ht(this._config.clickCallback)});this._isAppended=!0}}dispose(){this._isAppended&&(n.off(this._element,oh),this._element.remove(),this._isAppended=!1)}_emulateAnimation(n){re(n,this._getElement(),this._config.isAnimated)}}const rb={trapElement:null,autofocus:!0},ub={trapElement:"element",autofocus:"boolean"},fb="focustrap",dr=`.${"bs.focustrap"}`,eb=`focusin${dr}`,ob=`keydown.tab${dr}`,sb="Tab",hb="forward",hh="backward";class ch{constructor(n){this._config=this._getConfig(n);this._isActive=!1;this._lastTabNavDirection=null}activate(){const{trapElement:t,autofocus:i}=this._config;if(!this._isActive){i&&t.focus();n.off(document,dr);n.on(document,eb,n=>this._handleFocusin(n));n.on(document,ob,n=>this._handleKeydown(n));this._isActive=!0}}deactivate(){this._isActive&&(this._isActive=!1,n.off(document,dr))}_handleFocusin(n){const{target:u}=n,{trapElement:i}=this._config;if(u!==document&&u!==i&&!i.contains(u)){const r=t.focusableChildren(i);r.length===0?i.focus():this._lastTabNavDirection===hh?r[r.length-1].focus():r[0].focus()}}_handleKeydown(n){n.key===sb&&(this._lastTabNavDirection=n.shiftKey?hh:hb)}_getConfig(n){return n={...rb,...(typeof n=="object"?n:{})},p(fb,n,ub),n}}const lh="modal",a=`.${"bs.modal"}`,ah="Escape",vh={backdrop:!0,keyboard:!0,focus:!0},cb={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean"},lb=`hide${a}`,ab=`hidePrevented${a}`,yh=`hidden${a}`,ph=`show${a}`,vb=`shown${a}`,wh=`resize${a}`,bh=`click.dismiss${a}`,kh=`keydown.dismiss${a}`,yb=`mouseup.dismiss${a}`,dh=`mousedown.dismiss${a}`,pb=`click${a}${".data-api"}`,gh="modal-open",wb="fade",nc="show",yf="modal-static",bb=".modal.show",kb=".modal-dialog",db=".modal-body";class oi extends v{constructor(n,i){super(n);this._config=this._getConfig(i);this._dialog=t.findOne(kb,this._element);this._backdrop=this._initializeBackDrop();this._focustrap=this._initializeFocusTrap();this._isShown=!1;this._ignoreBackdropClick=!1;this._isTransitioning=!1;this._scrollBar=new vf}static get Default(){return vh}static get NAME(){return lh}toggle(n){return this._isShown?this.hide():this.show(n)}show(t){if(!this._isShown&&!this._isTransitioning){const i=n.trigger(this._element,ph,{relatedTarget:t});if(!i.defaultPrevented){this._isShown=!0;this._isAnimated()&&(this._isTransitioning=!0);this._scrollBar.hide();document.body.classList.add(gh);this._adjustDialog();this._setEscapeEvent();this._setResizeEvent();n.on(this._dialog,dh,()=>{n.one(this._element,yb,n=>{n.target===this._element&&(this._ignoreBackdropClick=!0)})});this._showBackdrop(()=>this._showElement(t))}}}hide(){if(this._isShown&&!this._isTransitioning){const i=n.trigger(this._element,lb);if(!i.defaultPrevented){this._isShown=!1;const t=this._isAnimated();t&&(this._isTransitioning=!0);this._setEscapeEvent();this._setResizeEvent();this._focustrap.deactivate();this._element.classList.remove(nc);n.off(this._element,bh);n.off(this._dialog,dh);this._queueCallback(()=>this._hideModal(),this._element,t)}}}dispose(){[window,this._dialog].forEach(t=>n.off(t,a));this._backdrop.dispose();this._focustrap.deactivate();super.dispose()}handleUpdate(){this._adjustDialog()}_initializeBackDrop(){return new sh({isVisible:Boolean(this._config.backdrop),isAnimated:this._isAnimated()})}_initializeFocusTrap(){return new ch({trapElement:this._element})}_getConfig(n){return n={...vh,...i.getDataAttributes(this._element),...(typeof n=="object"?n:{})},p(lh,n,cb),n}_showElement(i){const r=this._isAnimated(),u=t.findOne(db,this._dialog);this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.append(this._element);this._element.style.display="block";this._element.removeAttribute("aria-hidden");this._element.setAttribute("aria-modal",!0);this._element.setAttribute("role","dialog");this._element.scrollTop=0;u&&(u.scrollTop=0);r&&kt(this._element);this._element.classList.add(nc);const f=()=>{this._config.focus&&this._focustrap.activate(),this._isTransitioning=!1,n.trigger(this._element,vb,{relatedTarget:i})};this._queueCallback(f,this._dialog,r)}_setEscapeEvent(){if(this._isShown)n.on(this._element,kh,n=>{this._config.keyboard&&n.key===ah?(n.preventDefault(),this.hide()):this._config.keyboard||n.key!==ah||this._triggerBackdropTransition()});else n.off(this._element,kh)}_setResizeEvent(){if(this._isShown)n.on(window,wh,()=>this._adjustDialog());else n.off(window,wh)}_hideModal(){this._element.style.display="none";this._element.setAttribute("aria-hidden",!0);this._element.removeAttribute("aria-modal");this._element.removeAttribute("role");this._isTransitioning=!1;this._backdrop.hide(()=>{document.body.classList.remove(gh),this._resetAdjustments(),this._scrollBar.reset(),n.trigger(this._element,yh)})}_showBackdrop(t){n.on(this._element,bh,n=>{if(this._ignoreBackdropClick){this._ignoreBackdropClick=!1;return}n.target===n.currentTarget&&(this._config.backdrop===!0?this.hide():this._config.backdrop==="static"&&this._triggerBackdropTransition())});this._backdrop.show(t)}_isAnimated(){return this._element.classList.contains(wb)}_triggerBackdropTransition(){const u=n.trigger(this._element,ab);if(!u.defaultPrevented){const{classList:t,scrollHeight:f,style:i}=this._element,r=f>document.documentElement.clientHeight;(r||i.overflowY!=="hidden")&&!t.contains(yf)&&(r||(i.overflowY="hidden"),t.add(yf),this._queueCallback(()=>{t.remove(yf),r||this._queueCallback(()=>{i.overflowY=""},this._dialog)},this._dialog),this._element.focus())}}_adjustDialog(){const n=this._element.scrollHeight>document.documentElement.clientHeight,i=this._scrollBar.getWidth(),t=i>0;(!t&&n&&!r()||t&&!n&&r())&&(this._element.style.paddingLeft=`${i}px`);(t&&!n&&!r()||!t&&n&&r())&&(this._element.style.paddingRight=`${i}px`)}_resetAdjustments(){this._element.style.paddingLeft="";this._element.style.paddingRight=""}static jQueryInterface(n,t){return this.each(function(){const i=oi.getOrCreateInstance(this,n);if(typeof n=="string"){if(typeof i[n]=="undefined")throw new TypeError(`No method named "${n}"`);i[n](t)}})}}n.on(document,pb,'[data-bs-toggle="modal"]',function(i){const r=tt(this);["A","AREA"].includes(this.tagName)&&i.preventDefault();n.one(r,ph,t=>{if(!t.defaultPrevented)n.one(r,yh,()=>{ci(this)&&this.focus()})});const u=t.findOne(bb);u&&oi.getInstance(u).hide();const f=oi.getOrCreateInstance(r);f.toggle(this)});er(oi);h(oi);const tc="offcanvas",wt=`.${"bs.offcanvas"}`,ic=".data-api",gb=`load${wt}${ic}`,nk="Escape",rc={backdrop:!0,keyboard:!0,scroll:!1},tk={backdrop:"boolean",keyboard:"boolean",scroll:"boolean"},uc="show",ik="offcanvas-backdrop",fc=".offcanvas.show",rk=`show${wt}`,uk=`shown${wt}`,fk=`hide${wt}`,ec=`hidden${wt}`,ek=`click${wt}${ic}`,ok=`keydown.dismiss${wt}`;class bt extends v{constructor(n,t){super(n);this._config=this._getConfig(t);this._isShown=!1;this._backdrop=this._initializeBackDrop();this._focustrap=this._initializeFocusTrap();this._addEventListeners()}static get NAME(){return tc}static get Default(){return rc}toggle(n){return this._isShown?this.hide():this.show(n)}show(t){if(!this._isShown){const i=n.trigger(this._element,rk,{relatedTarget:t});if(!i.defaultPrevented){this._isShown=!0;this._element.style.visibility="visible";this._backdrop.show();this._config.scroll||(new vf).hide();this._element.removeAttribute("aria-hidden");this._element.setAttribute("aria-modal",!0);this._element.setAttribute("role","dialog");this._element.classList.add(uc);const r=()=>{this._config.scroll||this._focustrap.activate(),n.trigger(this._element,uk,{relatedTarget:t})};this._queueCallback(r,this._element,!0)}}}hide(){if(this._isShown){const t=n.trigger(this._element,fk);if(!t.defaultPrevented){this._focustrap.deactivate();this._element.blur();this._isShown=!1;this._element.classList.remove(uc);this._backdrop.hide();const i=()=>{this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._element.style.visibility="hidden",this._config.scroll||(new vf).reset(),n.trigger(this._element,ec)};this._queueCallback(i,this._element,!0)}}}dispose(){this._backdrop.dispose();this._focustrap.deactivate();super.dispose()}_getConfig(n){return n={...rc,...i.getDataAttributes(this._element),...(typeof n=="object"?n:{})},p(tc,n,tk),n}_initializeBackDrop(){return new sh({className:ik,isVisible:this._config.backdrop,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:()=>this.hide()})}_initializeFocusTrap(){return new ch({trapElement:this._element})}_addEventListeners(){n.on(this._element,ok,n=>{this._config.keyboard&&n.key===nk&&this.hide()})}static jQueryInterface(n){return this.each(function(){const t=bt.getOrCreateInstance(this,n);if(typeof n=="string"){if(t[n]===undefined||n.startsWith("_")||n==="constructor")throw new TypeError(`No method named "${n}"`);t[n](this)}})}}n.on(document,ek,'[data-bs-toggle="offcanvas"]',function(i){const r=tt(this);if(["A","AREA"].includes(this.tagName)&&i.preventDefault(),!st(this)){n.one(r,ec,()=>{ci(this)&&this.focus()});const u=t.findOne(fc);u&&u!==r&&bt.getInstance(u).hide();const f=bt.getOrCreateInstance(r);f.toggle(this)}});n.on(window,gb,()=>t.find(fc).forEach(n=>bt.getOrCreateInstance(n).show()));er(bt);h(bt);const sk=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),hk=/^(?:(?:https?|mailto|ftp|tel|file|sms):|[^#&/:?]*(?:[#/?]|$))/i,ck=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i,lk=(n,t)=>{const i=n.nodeName.toLowerCase();if(t.includes(i))return sk.has(i)?Boolean(hk.test(n.nodeValue)||ck.test(n.nodeValue)):!0;const r=t.filter(n=>n instanceof RegExp);for(let n=0,t=r.length;n
<\/div>
<\/div><\/div>',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:[0,0],container:!1,fallbackPlacements:["top","right","bottom","left"],boundary:"clippingParents",customClass:"",sanitize:!0,sanitizeFn:null,allowList:{"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},popperConfig:null},bk={HIDE:`hide${k}`,HIDDEN:`hidden${k}`,SHOW:`show${k}`,SHOWN:`shown${k}`,INSERTED:`inserted${k}`,CLICK:`click${k}`,FOCUSIN:`focusin${k}`,FOCUSOUT:`focusout${k}`,MOUSEENTER:`mouseenter${k}`,MOUSELEAVE:`mouseleave${k}`},gr="fade",gi="show",nr="show",pf="out",hc=".tooltip-inner",cc=`.${"modal"}`,lc="hide.bs.modal",tr="hover",wf="focus",kk="click",dk="manual";class si extends v{constructor(n,t){if(typeof ds=="undefined")throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");super(n);this._isEnabled=!0;this._timeout=0;this._hoverState="";this._activeTrigger={};this._popper=null;this._config=this._getConfig(t);this.tip=null;this._setListeners()}static get Default(){return wk}static get NAME(){return sc}static get Event(){return bk}static get DefaultType(){return yk}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(n){if(this._isEnabled)if(n){const t=this._initializeOnDelegatedTarget(n);t._activeTrigger.click=!t._activeTrigger.click;t._isWithActiveTrigger()?t._enter(null,t):t._leave(null,t)}else{if(this.getTipElement().classList.contains(gi)){this._leave(null,this);return}this._enter(null,this)}}dispose(){clearTimeout(this._timeout);n.off(this._element.closest(cc),lc,this._hideModalHandler);this.tip&&this.tip.remove();this._disposePopper();super.dispose()}show(){if(this._element.style.display==="none")throw new Error("Please use show on visible elements");if(this.isWithContent()&&this._isEnabled){const e=n.trigger(this._element,this.constructor.Event.SHOW),i=te(this._element),o=i===null?this._element.ownerDocument.documentElement.contains(this._element):i.contains(this._element);if(!e.defaultPrevented&&o){this.constructor.NAME==="tooltip"&&this.tip&&this.getTitle()!==this.tip.querySelector(hc).innerHTML&&(this._disposePopper(),this.tip.remove(),this.tip=null);const t=this.getTipElement(),r=el(this.constructor.NAME);t.setAttribute("id",r);this._element.setAttribute("aria-describedby",r);this._config.animation&&t.classList.add(gr);const s=typeof this._config.placement=="function"?this._config.placement.call(this,t,this._element):this._config.placement,u=this._getAttachment(s);this._addAttachmentClass(u);const{container:h}=this._config;li.set(t,this.constructor.DATA_KEY,this);this._element.ownerDocument.documentElement.contains(this.tip)||(h.append(t),n.trigger(this._element,this.constructor.Event.INSERTED));this._popper?this._popper.update():this._popper=sf(this._element,t,this._getPopperConfig(u));t.classList.add(gi);const f=this._resolvePossibleFunction(this._config.customClass);f&&t.classList.add(...f.split(" "));"ontouchstart"in document.documentElement&&[].concat(...document.body.children).forEach(t=>{n.on(t,"mouseover",fr)});const c=()=>{const t=this._hoverState;this._hoverState=null;n.trigger(this._element,this.constructor.Event.SHOWN);t===pf&&this._leave(null,this)},l=this.tip.classList.contains(gr);this._queueCallback(c,this.tip,l)}}}hide(){if(this._popper){const t=this.getTipElement(),i=()=>{this._isWithActiveTrigger()||(this._hoverState!==nr&&t.remove(),this._cleanTipClass(),this._element.removeAttribute("aria-describedby"),n.trigger(this._element,this.constructor.Event.HIDDEN),this._disposePopper())},r=n.trigger(this._element,this.constructor.Event.HIDE);if(!r.defaultPrevented){t.classList.remove(gi);"ontouchstart"in document.documentElement&&[].concat(...document.body.children).forEach(t=>n.off(t,"mouseover",fr));this._activeTrigger[kk]=!1;this._activeTrigger[wf]=!1;this._activeTrigger[tr]=!1;const u=this.tip.classList.contains(gr);this._queueCallback(i,this.tip,u);this._hoverState=""}}}update(){this._popper!==null&&this._popper.update()}isWithContent(){return Boolean(this.getTitle())}getTipElement(){if(this.tip)return this.tip;const t=document.createElement("div");t.innerHTML=this._config.template;const n=t.children[0];return this.setContent(n),n.classList.remove(gr,gi),this.tip=n,this.tip}setContent(n){this._sanitizeAndSetContent(n,this.getTitle(),hc)}_sanitizeAndSetContent(n,i,r){const u=t.findOne(r,n);if(!i&&u){u.remove();return}this.setElementContent(u,i)}setElementContent(n,t){if(n!==null){if(ot(t)){t=it(t);this._config.html?t.parentNode!==n&&(n.innerHTML="",n.append(t)):n.textContent=t.textContent;return}this._config.html?(this._config.sanitize&&(t=oc(t,this._config.allowList,this._config.sanitizeFn)),n.innerHTML=t):n.textContent=t}}getTitle(){const n=this._element.getAttribute("data-bs-original-title")||this._config.title;return this._resolvePossibleFunction(n)}updateAttachment(n){return n==="right"?"end":n==="left"?"start":n}_initializeOnDelegatedTarget(n,t){return t||this.constructor.getOrCreateInstance(n.delegateTarget,this._getDelegateConfig())}_getOffset(){const{offset:n}=this._config;return typeof n=="string"?n.split(",").map(n=>Number.parseInt(n,10)):typeof n=="function"?t=>n(t,this._element):n}_resolvePossibleFunction(n){return typeof n=="function"?n.call(this._element):n}_getPopperConfig(n){const t={placement:n,modifiers:[{name:"flip",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"arrow",options:{element:`.${this.constructor.NAME}-arrow`}},{name:"onChange",enabled:!0,phase:"afterWrite",fn:n=>this._handlePopperPlacementChange(n)}],onFirstUpdate:n=>{n.options.placement!==n.placement&&this._handlePopperPlacementChange(n)}};return{...t,...(typeof this._config.popperConfig=="function"?this._config.popperConfig(t):this._config.popperConfig)}}_addAttachmentClass(n){this.getTipElement().classList.add(`${this._getBasicClassPrefix()}-${this.updateAttachment(n)}`)}_getAttachment(n){return pk[n.toUpperCase()]}_setListeners(){const t=this._config.trigger.split(" ");t.forEach(t=>{if(t==="click")n.on(this._element,this.constructor.Event.CLICK,this._config.selector,n=>this.toggle(n));else if(t!==dk){const i=t===tr?this.constructor.Event.MOUSEENTER:this.constructor.Event.FOCUSIN,r=t===tr?this.constructor.Event.MOUSELEAVE:this.constructor.Event.FOCUSOUT;n.on(this._element,i,this._config.selector,n=>this._enter(n));n.on(this._element,r,this._config.selector,n=>this._leave(n))}});this._hideModalHandler=()=>{this._element&&this.hide()};n.on(this._element.closest(cc),lc,this._hideModalHandler);this._config.selector?this._config={...this._config,trigger:"manual",selector:""}:this._fixTitle()}_fixTitle(){const n=this._element.getAttribute("title"),t=typeof this._element.getAttribute("data-bs-original-title");(n||t!=="string")&&(this._element.setAttribute("data-bs-original-title",n||""),!n||this._element.getAttribute("aria-label")||this._element.textContent||this._element.setAttribute("aria-label",n),this._element.setAttribute("title",""))}_enter(n,t){if(t=this._initializeOnDelegatedTarget(n,t),n&&(t._activeTrigger[n.type==="focusin"?wf:tr]=!0),t.getTipElement().classList.contains(gi)||t._hoverState===nr){t._hoverState=nr;return}if(clearTimeout(t._timeout),t._hoverState=nr,!t._config.delay||!t._config.delay.show){t.show();return}t._timeout=setTimeout(()=>{t._hoverState===nr&&t.show()},t._config.delay.show)}_leave(n,t){if(t=this._initializeOnDelegatedTarget(n,t),n&&(t._activeTrigger[n.type==="focusout"?wf:tr]=t._element.contains(n.relatedTarget)),!t._isWithActiveTrigger()){if(clearTimeout(t._timeout),t._hoverState=pf,!t._config.delay||!t._config.delay.hide){t.hide();return}t._timeout=setTimeout(()=>{t._hoverState===pf&&t.hide()},t._config.delay.hide)}}_isWithActiveTrigger(){for(const n in this._activeTrigger)if(this._activeTrigger[n])return!0;return!1}_getConfig(n){const t=i.getDataAttributes(this._element);return Object.keys(t).forEach(n=>{vk.has(n)&&delete t[n]}),n={...this.constructor.Default,...t,...(typeof n=="object"&&n?n:{})},n.container=n.container===!1?document.body:it(n.container),typeof n.delay=="number"&&(n.delay={show:n.delay,hide:n.delay}),typeof n.title=="number"&&(n.title=n.title.toString()),typeof n.content=="number"&&(n.content=n.content.toString()),p(sc,n,this.constructor.DefaultType),n.sanitize&&(n.template=oc(n.template,n.allowList,n.sanitizeFn)),n}_getDelegateConfig(){const n={};for(const t in this._config)this.constructor.Default[t]!==this._config[t]&&(n[t]=this._config[t]);return n}_cleanTipClass(){const t=this.getTipElement(),i=new RegExp(`(^|\\s)${this._getBasicClassPrefix()}\\S+`,"g"),n=t.getAttribute("class").match(i);n!==null&&n.length>0&&n.map(n=>n.trim()).forEach(n=>t.classList.remove(n))}_getBasicClassPrefix(){return ak}_handlePopperPlacementChange(n){const{state:t}=n;t&&(this.tip=t.elements.popper,this._cleanTipClass(),this._addAttachmentClass(this._getAttachment(t.placement)))}_disposePopper(){this._popper&&(this._popper.destroy(),this._popper=null)}static jQueryInterface(n){return this.each(function(){const t=si.getOrCreateInstance(this,n);if(typeof n=="string"){if(typeof t[n]=="undefined")throw new TypeError(`No method named "${n}"`);t[n]()}})}}h(si);const gk="popover",d=`.${"bs.popover"}`,nd="bs-popover",td={...si.Default,placement:"right",offset:[0,8],trigger:"click",content:"",template:'